Esempio n. 1
0
 public static EllipticCurvePoint AffineCoords(EllipticCurvePoint p)
 {
     p.X = BigInteger.Remainder(p.X * Additional.Inverse(p.Z, p.P), p.P);
     p.Y = BigInteger.Remainder(p.Y * Additional.Inverse(p.Z, p.P), p.P);
     p.Z = 1;
     return(p);
 } // Приведение к афинным координатам
        public void Func3()
        {
            for (int i = 3; i < lengtshifr; i += 4)
            {
                Shifr _sh = Sh[i];
                EllipticCurvePoint para2 = _sh.PointB;
                EllipticCurvePoint t     = EllipticCurvePoint.AddPoint(para2, KeyPara1);
                BigInteger         q     = t.X * Additional.Inverse(t.Z, t.P);
                q = BigInteger.Remainder(q, t.P);
                if (_sh.Correct != 0)
                {
                    q += _sh.Correct;
                }

                Message[i] = q.ToByteArray();
            }
        }