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"); }
/*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); } } }
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(); }