Exemplo n.º 1
0
 private static bool IsSquare(uint[] x)
 {
     uint[] z         = Nat224.Create();
     uint[] numArray2 = Nat224.Create();
     Nat224.Copy(x, z);
     for (int i = 0; i < 7; i++)
     {
         Nat224.Copy(z, numArray2);
         SecP224R1Field.SquareN(z, ((int)1) << i, z);
         SecP224R1Field.Multiply(z, numArray2, z);
     }
     SecP224R1Field.SquareN(z, 0x5f, z);
     return(Nat224.IsOne(z));
 }
 private static bool IsSquare(uint[] x)
 {
     uint[] z     = Nat224.Create();
     uint[] array = Nat224.Create();
     Nat224.Copy(x, z);
     for (int i = 0; i < 7; i++)
     {
         Nat224.Copy(z, array);
         SecP224R1Field.SquareN(z, 1 << i, z);
         SecP224R1Field.Multiply(z, array, z);
     }
     SecP224R1Field.SquareN(z, 95, z);
     return(Nat224.IsOne(z));
 }
        private static bool IsSquare(uint[] x)
        {
            uint[] t1 = Nat224.Create();
            uint[] t2 = Nat224.Create();
            Nat224.Copy(x, t1);

            for (int i = 0; i < 7; ++i)
            {
                Nat224.Copy(t1, t2);
                SecP224R1Field.SquareN(t1, 1 << i, t1);
                SecP224R1Field.Multiply(t1, t2, t1);
            }

            SecP224R1Field.SquareN(t1, 95, t1);
            return(Nat224.IsOne(t1));
        }