Example #1
0
    public void Spawn(int points, Vector3 pos)
    {
        if (ca == null)
        {
            return;
        }
        GameObject g = Instantiate(PopupPrefab, ca.transform);
        PointAdd   p = g.GetComponent <PointAdd>();

        p.position = pos;
        p.points   = points;
        Debug.Log("Spawned");
    }
Example #2
0
            /*public PointAdd(BigInteger x1, BigInteger y1, BigInteger x2, BigInteger y2, BigInteger p, BigInteger a, BigInteger b)
             * {
             *  this.X1 = x1;
             *  this.Y1 = y1;
             *  this.X2 = x2;
             *  this.Y2 = y2;
             *  this.P = p;
             *  this.A = a;
             *  this.B = b;
             * }*/

            public PointAdd Addition(PointAdd punkt, BigInteger x1, BigInteger y1, BigInteger x2, BigInteger y2, BigInteger p, BigInteger a)
            {
                this.P = p;
                this.A = a;

                if ((x1 == x2) && (y1 != y2))
                {
                    this.X3 = 0;
                    this.Y3 = 0;
                    return(punkt);
                }
                else
                {
                    if ((x1 == x2) && (y1 == y2))
                    {
                        BigInteger l2 = (calcLambda2(x1, y1, punkt.A, punkt.P)) % punkt.P;

                        BigInteger resl2x3 = (calcXFinal(l2, x1, x2, punkt.P)) % punkt.P;
                        BigInteger resl2y3 = (calcYFinal(l2, x1, resl2x3, y1, punkt.P)) % punkt.P;

                        this.X3 = resl2x3;
                        this.Y3 = resl2y3;

                        return(punkt);
                    }
                    else
                    {
                        BigInteger l1 = (calcLambda1(y2, y1, x2, x1, punkt.P)) % punkt.P;

                        BigInteger resl1x3 = (calcXFinal(l1, x1, x2, punkt.P)) % punkt.P;
                        BigInteger resl1y3 = (calcYFinal(l1, x1, resl1x3, y1, punkt.P)) % punkt.P;

                        this.X3 = resl1x3;
                        this.Y3 = resl1y3;

                        return(punkt);
                    }
                }
            }
Example #3
0
        static void Main(string[] args)
        {
            //var p = BigInteger.Parse("115792089237316195423570985008687907853269984665640564039457584007908834671663");
            //var b = (BigInteger)7;
            //var a = BigInteger.Zero;
            var Gx  = BigInteger.Parse("55066263022277343669578718895168534326250603453777594175500187360389116729240");
            var Gy  = BigInteger.Parse("32670510020758816978083085130507043184471273380659243275938904335757337482424");
            var Gx1 = BigInteger.Parse("75180862758995183245141392260426345444264403731066658552825576390223923208439");
            var Gy1 = BigInteger.Parse("21885678977978804490012742746158129500179828242668934362874212623347241335110");
            var Gx2 = BigInteger.Parse("0");
            var Gy2 = BigInteger.Parse("0");
            //var p = BigInteger.Parse("0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", NumberStyles.HexNumber);
            //var b = (BigInteger)7;
            //var a = BigInteger.Zero;
            //var Gx = BigInteger.Parse("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", NumberStyles.HexNumber);
            //var Gy = BigInteger.Parse("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", NumberStyles.HexNumber);
            var p = BigInteger.Parse("115792089237316195423570985008687907853269984665640564039457584007908834671663");
            var b = (BigInteger)7;
            var a = BigInteger.Zero;
            //var Gx = BigInteger.Parse("43416641424355550452407462607989419545484660240025292632092983024276950562252"); //g * 1+10zer
            //var Gy = BigInteger.Parse("82258565099148626789977835510040746285752863850369846140886848753132330656544");
            //var order = BigInteger.Parse("115792089237316195423570985008687907852837564279074904382605163141518161494337");
            CurveFp  curve256     = new CurveFp(p, a, b);
            Point    generator256 = new Point(curve256, Gx, Gy);
            PointAdd punktAdd     = new PointAdd();
            //Pointadd generator256add = new Pointadd(curve256, Gx, Gy);
            StreamWriter sw = new StreamWriter("D:\\Text.txt");

            var secret = BigInteger.Parse("1");
            var sum    = BigInteger.Parse("0");
            var n      = BigInteger.Parse("0");
            var last   = BigInteger.Parse("0");
            var first  = BigInteger.Parse("0");
            List <BigInteger> lista    = new List <BigInteger>();
            BigInteger        start    = BigInteger.Parse("5");
            BigInteger        dzielnik = BigInteger.Parse("25");
            BigInteger        calosc   = BigInteger.Parse("50");

            //BigInteger limit = BigInteger.Parse("10000000000");
            lista.Add(start);
            // dla 50
            var pubkeyPoint1 = generator256 * 50;

            Gx2 = pubkeyPoint1.X;
            Gy2 = pubkeyPoint1.Y;

            punktAdd.Addition(punktAdd, Gx1, Gy1, Gx2, Gy2, p, a);

            sum   = 0;
            n     = punktAdd.X3;
            last  = n % 10;
            first = punktAdd.X3;
            while (first >= 10)
            {
                first /= 10;
            }
            while (n != 0)
            {
                sum += n % 10;
                n   /= 10;
            }
            sw.WriteLine(first + " " + last + " " + sum.ToString("X"));

            while (true)
            {
                calosc = calosc + dzielnik;
                //Console.WriteLine(calosc);
                //sw.WriteLine("[" + calosc + "]");
                lista    = tablica(lista, sw, dzielnik);
                dzielnik = dzielnik * 10;
                dzielnik = dzielnik / 2;
                calosc   = calosc * 10;
                sw.WriteLine("[" + calosc + "]");
                Console.WriteLine(Convert.ToString(calosc).Length);
                //var pubkeyPoint = generator256 * secret;

                foreach (BigInteger prime in lista)
                {
                    var pubkeyPoint = generator256 * prime;
                    Gx2 = pubkeyPoint.X;
                    Gy2 = pubkeyPoint.Y;

                    punktAdd.Addition(punktAdd, Gx1, Gy1, Gx2, Gy2, p, a);

                    sum   = 0;
                    n     = punktAdd.X3;
                    last  = n % 10;
                    first = punktAdd.X3;
                    while (first >= 10)
                    {
                        first /= 10;
                    }
                    while (n != 0)
                    {
                        sum += n % 10;
                        n   /= 10;
                    }
                    sw.WriteLine(prime.ToString("X") + " " + first + " " + last + " " + sum);
                }
                //sum = 0;
                //n = pubkeyPoint.X;
                //last = n % 10;
                //first = pubkeyPoint.X;
                //while (first >= 10)
                //{
                //    first /= 10;
                //}
                //while (n != 0)
                //{
                //    sum += n % 10;
                //    n /= 10;
                //}

                //secret = secret + 1;

                //punktAdd.Addition(punktAdd, Gx1, Gy1, Gx2, Gy2, p, a);
                //var pubkeyPoint1 = generator256 * secret1;
                //sw.WriteLine("[" + secret + "] " + pubkeyPoint.X + " " + pubkeyPoint.Y);
                //if (pubkeyPoint.X < increment)
                //{
                //    Console.WriteLine(secret + "found");
                //    sw.WriteLine("[" + secret + "] " + pubkeyPoint.X + " " + pubkeyPoint.Y);
                //}
                //secret = secret + 1;
                //if ((secret % secret1) == 0)
                //{
                //    Console.WriteLine(secret);
                //}
                //secret1 = secret1 + 1;
                //licznik = licznik + 1;

                //Console.WriteLine("koniec");
                //Console.ReadLine();
            }
            sw.Flush();
        }