예제 #1
0
        public Fp2 Inverse()
        {
            Fp t0 = a.Squared();
            Fp t1 = b.Squared();
            Fp t2 = t0.Sub(Fp.NON_RESIDUE.Mul(t1));
            Fp t3 = t2.Inverse();

            Fp ra = a.Mul(t3);          // ra = a * t3
            Fp rb = b.Mul(t3).Negate(); // rb = -(b * t3)

            return(new Fp2(ra, rb));
        }
예제 #2
0
 public Fp2 Sub(Fp2 o)
 {
     return(new Fp2(a.Sub(o.a), b.Sub(o.b)));
 }