Beispiel #1
0
        public static int[] CalculateSum(int[] P, int a, int p)
        {
            int lambda = CalculateLambda(P, a, p);
            int x      = GCD.Mod(lambda * lambda - P[0] - P[0], p);
            int y      = GCD.Mod(lambda * (P[0] - x) - P[1], p);

            return(new int[] { x, y });
        }
Beispiel #2
0
 private static int CalculateLambda(int[] P, int[] Q, int p)
 {
     return(GCD.Mod(GCD.Mod(Q[1] - P[1], p) * GCD.Mod(GCD.ModInverse(Q[0] + GCD.Mod(-P[0], p), p), p), p));
 }
Beispiel #3
0
 private static int CalculateLambda(int[] P, int a, int p)
 {
     return(GCD.Mod(GCD.Mod(3 * (P[0] * P[0]) + a, p) * GCD.ModInverse(2 * P[1], p), p));
 }