Пример #1
0
 static void Main(string[] args)
 {
     Point p1 = new Point(1, 2);
     Point p2 = new Point();
     Console.WriteLine("p1=" + p1);
     Console.WriteLine("p2=" + p2);
     Console.WriteLine("p1.E = " + p1.E);
     Console.WriteLine("p2.E = " + p2.E);
     Console.WriteLine("8=" + Program.getBitString(8));
     Console.WriteLine("39=" + Program.getBitString(39));
     char[] c = Program.getBitString(39).ToArray();
     for (int i = 0; i < c.Length; i++)
     {
         if (c[i] == '1')
         {
             Console.Write("x");
         }
         else
         {
             Console.Write("o");
         }
     }
     for (int i = 1; i < 17; i++)
     {
         Console.WriteLine(i + ":" + Program.modInverse(i, 17));
     }
     User user = new User(0);
     EllipticCurve ec = user.EC;
     Point p = ec.G;
     for (int i = 1; i < 31; i++)
     {
         Console.WriteLine(i+": "+ec.multiply(i,ec.G));
         //Console.WriteLine(i + ": " + p);
         //p = ec.add(p,ec.G);
     }
     user.process(1);
     string str;
     while ((str = Console.ReadLine()) != null)
     {
         int index = Int32.Parse(str);
         EllipticCurve e = new EllipticCurve(index);
         Console.WriteLine(e);
     }
     while (true) ;
 }
Пример #2
0
 public Signer(EllipticCurve ec)
 {
     s0 = 4;
     q = 23;
     this.ec = ec;
 }
Пример #3
0
 public User(int index)
 {
     ec = new EllipticCurve(index);
     m = ec.multiply(3, ec.G);
     signer = new Signer(ec);
 }