See chart: https://imgur.com/M8j5rdlWe are still fine tuning the algorithm. Using just one thread on a PC and an algorithm which uses almost no luck we predict it would take 101 million years to find #105. This is using a small number of very careful and "thorough" tame kangaroos. Next we will try to get better results using a larger number of more luck based tame kangaroos. Data collected by the latest algorithm: bits ==== 1 8.3905 milliseconds 2 20.9155 milliseconds 3 19.8591 milliseconds 4 37.3427 milliseconds 5 51.0067 milliseconds 6 78.4731 milliseconds 7 87.5237 milliseconds 8 136.0477 milliseconds 9 140.6669 milliseconds 10 298.3345 milliseconds 11 283.3537 milliseconds 12 509.9002 milliseconds 13 516.9761 milliseconds 14 1.984 seconds 15 2.1595 seconds 16 2.0624 seconds 17 2.1664 seconds 18 4.261 seconds 19 9.1044 seconds 20 27.1053 seconds 21 17.9858 seconds 22 16.4732 seconds 23 57.0384 seconds 24 1.3351 minutes 25 1.2272 minutes 26 2.6514 minutes 27 2.2304 minutes 28 4.3598 minutes 29 4.4495 minutes 30 8.6276 minutes 31 12.9661 minutes 32 25.6822 minutes 33 36.0675 minutes 34 1.1545 hours 35 51.3179 minutes 36 1.7085 hours 37 1.7121 hours 38 4.5732 hours 39 2.263 hours 40 9.1259 hours
|
|
|
I would like to test your program. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) I would like to test your program ![Kiss](https://bitcointalk.org/Smileys/default/kiss.gif) If you need more testers i would like to participate and help out I have been following the 100BTC challenge thread and just recently tried working with bitcrack
I would like to test your program, BurtW.
All added to the list in the OP
|
|
|
I would like to test your program. ![Grin](https://bitcointalk.org/Smileys/default/grin.gif) I would like to test your Pollard Kangaroo program. (need more examples sources for undestand concept how it work. bin no interest. lang any.)
I would like to become a tester, but I have a very weak AMD laptop.
I would like to test your program. ![Roll Eyes](https://bitcointalk.org/Smileys/default/rolleyes.gif) All added to the list in the OP.
|
|
|
BurtW-do not trust. removes all messages from your topic.
I delete posts in our thread just to keep it clean. In other words, once I quote a post and answer it then I delete the original post. Your post and the answer I gave are still in the thread. I just think the thread stays shorter and cleaner this way. Please remove your post here where you say you do not trust me. I did not think this would be an issue. It is just to keep the thread clean. Sorry about the misunderstanding.
|
|
|
This shows that luck is a major factor in the total run time. In general it should take about twice as much time to find the next key but the run times are all over the map because of the luck factor: Bits in the Number of tame Time to find private key kangaroos used the key (secs) ----------- -------------- -------------- 33 1 270.912048 34 15 7882.658203 35 1 1026.184082 36 3 5582.397949 37 7 25962.619141 38 3 22675.375000
We are still optimizing the code so the absolute values of these run time will go down over time as the program is improved.
|
|
|
BurtW You give source code or binary file?
We have not decided yet on that. If you would trust me I can give you the executable much sooner. If you would not trust an executable from me then you would have to wait for us to decide to give out the source code. We are still making great strides in making it faster so we are not ready to publish it as an executable or as source yet. We are also waiting to see if drotika actually publishes their code and what it looks like when it is published.
|
|
|
Yes and no. One of the bits in your private keys is always 1, so it can't count toward entropy. If your range goes from 0x20 to 0x3f, then there are 32 possible values, so 5 bits of entropy. If it goes to 0x40, then there are 33 possible values and slightly more than 5 bits.
Also, what I know about the algorithm is what I got from skimming the wikipedia article. A couple questions:
1. Is there a reason for not setting a to 0? 2. What is your mapping function?
OK, we will fix the terminology issue. bits = the number of bits in the private key, not the entropy (which is one less). There are two conditions that can happen when you run the wild kangaroo portion of the algorithm: there is a collision with the tame kangaroo and the private key is found, or, the two fail to collide. The termination condition for a failure to collide is test (b - a + c) so if a is zero then it will cause the algorithm to run longer than necessary in the failure to collide case.
|
|
|
bits = number of BITS of entropy in the private key a = lower bound for the private key search b = upper bound for the private key search
I think your number of bits of entropy value is off by one, unless bounds are inclusive and you are rounding up. Thanks for the feedback. Here is an example from the output: test = 5 bits = 6 a = 0x20 b = 0x40 The first private key that has 6 bits is 0x20, the last one that has 6 bits would be 0x3F. So, yes, I need to subtract one from the value of b being displayed. Is that what you are referring to?
|
|
|
Work 6 hours a day for a few years, maybe it will work ![Roll Eyes](https://bitcointalk.org/Smileys/default/rolleyes.gif) I do not understand your comment. The program is written and it works. I just coded it from the the description here. I admit it is very slow compared to a how fast a GPU version will be. That is part of the project: getting the program to run on a GPU. to prevent further fraud I decided to publish it on github available to everyone in less than a few days
What do you mean by "it"? Are you planning to publish a GPU version of the algorithm?
|
|
|
just make a volcano like everyone else she will get a good grade on the project. It looks cool to and she will have fun. ![Grin](https://bitcointalk.org/Smileys/default/grin.gif) Combine the vinegar, water, dish soap and 2 drops of food coloring into the empty soda bottle. Use a spoon to mix the baking soda slurry until it is all a liquid. Eruption time! … Pour the baking soda slurry into the soda bottle quickly and step back! She actually did that for here kindergarten science fair project. Here is a list of the 2018 Colorado Science & Engineering Fair entries. Take a look at the titles of the projects. This will give you some idea of the quality of the projects she is competing against: http://www.csef.colostate.edu/2018CSEF/2018_Finalists.htmlYou will see that there is not a single vinegar and baking soda volcano in the entire list ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
My daughter and I have created our own thread to discuss her Science Fair Project to trap Bitcoin private keys using Kangaroos! All of our results will be posted there. If you are interested in our implementation and optimization of the Pollard Kangaroo algorithm give the thread a visit: https://bitcointalk.org/index.php?topic=5173445.0
|
|
|
My daughter and I have created our own thread to discuss the Science Fair Project to trap Bitcoin private keys using Kangaroos!All of our results will be posted there. Please move the discussion of the science fair project to the new thread. We may want to have people help us test the program. We will track everyone who has volunteered or will volunteer to help test the program in the OP in the new thread and contact you when the program is ready for that phase of development. So far we have: Firebox supika miningforprofit agatazit
Thanks!
|
|
|
Please note that since this thread will be used as reference material in a science fair project we delete most posts in this thread just to keep it clean.
In other words, once we quote a post and answer it then we delete the original post.
Your post and the answers we gave or questions from us will all still be in the thread.
The thread stays shorter and cleaner this way.
I hope this is not an issue for anyone. It is just to keep the thread as short and clean as possible. It is not because we do not appreciate your posts.
We do!
Thanks!
My middle school daughter and I are working together on a science fair project related to using the Pollard Kangaroo algorithm to find low entropy private keys when the public key is known. So far we have written the basic code and it works. We are using the results from the "Private Key Entropy Test Transactions" (best thread here) (other thread here) as our known answer unit test for the program. Found a lot of good information hereThe current "record" for the largest private keys found by the program is shown below. Note how slow the program is compared to the state of the art GPU based programs: ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 56 seed = none (default value) b = 2 ^ 57 = 0x0200000000000000 a = 2 ^ 56 = 0x0100000000000000 P = 0x02A521A07E98F78B03FC1E039BC3A51408CD73119B5EB116E583FE57DC8DB07AEA (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01EB25C90795D61C s*G = 0x02A521A07E98F78B03FC1E039BC3A51408CD73119B5EB116E583FE57DC8DB07AEA (33 bytes) numt = 0x8 (8) mem = 0x4BE00 (310784) bytes cmps = 0x34C9808B (885620875) hops = 0x39144058 (957628504) hps = 153790.653757 time = 1.7297 hours (6226831609100 nsecs)
The unit test results from the latest version of the code, version 186. The unit test consists of running the program 57 times to find the private keys which contain from 1 bit to 57 bits: ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 0 seed = none (default value) b = 2 ^ 1 = 0x02 a = 2 ^ 0 = 0x01 P = 0x0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01 s*G = 0x0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x3 (3) hops = 0x1 (1) hps = 1167.678655 time = 0.8564 msecs (856400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 1 seed = none (default value) b = 2 ^ 2 = 0x04 a = 2 ^ 1 = 0x02 P = 0x02F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BCE036F9 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x03 s*G = 0x02F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BCE036F9 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x3 (3) hops = 0x1 (1) hps = 1337.077149 time = 0.7479 msecs (747900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 2 seed = none (default value) b = 2 ^ 3 = 0x08 a = 2 ^ 2 = 0x04 P = 0x025CBDF0646E5DB4EAA398F365F2EA7A0E3D419B7E0330E39CE92BDDEDCAC4F9BC (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x07 s*G = 0x025CBDF0646E5DB4EAA398F365F2EA7A0E3D419B7E0330E39CE92BDDEDCAC4F9BC (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x3 (3) hops = 0x1 (1) hps = 1632.120124 time = 0.6127 msecs (612700 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 3 seed = none (default value) b = 2 ^ 4 = 0x10 a = 2 ^ 3 = 0x08 P = 0x022F01E5E15CCA351DAFF3843FB70F3C2F0A1BDD05E5AF888A67784EF3E10A2A01 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x08 s*G = 0x022F01E5E15CCA351DAFF3843FB70F3C2F0A1BDD05E5AF888A67784EF3E10A2A01 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0xA (10) hops = 0x8 (8) hps = 925.443924 time = 8.6445 msecs (8644500 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 4 seed = none (default value) b = 2 ^ 5 = 0x20 a = 2 ^ 4 = 0x10 P = 0x02352BBF4A4CDD12564F93FA332CE333301D9AD40271F8107181340AEF25BE59D5 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x15 s*G = 0x02352BBF4A4CDD12564F93FA332CE333301D9AD40271F8107181340AEF25BE59D5 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0xD (13) hops = 0xB (11) hps = 6757.171816 time = 1.6279 msecs (1627900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 5 seed = none (default value) b = 2 ^ 6 = 0x40 a = 2 ^ 5 = 0x20 P = 0x03F2DAC991CC4CE4B9EA44887E5C7C0BCE58C80074AB9D4DBAEB28531B7739F530 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x31 s*G = 0x03F2DAC991CC4CE4B9EA44887E5C7C0BCE58C80074AB9D4DBAEB28531B7739F530 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x11 (17) hops = 0xF (15) hps = 7703.368940 time = 1.9472 msecs (1947200 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 6 seed = none (default value) b = 2 ^ 7 = 0x80 a = 2 ^ 6 = 0x40 P = 0x0296516A8F65774275278D0D7420A88DF0AC44BD64C7BAE07C3FE397C5B3300B23 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x4C s*G = 0x0296516A8F65774275278D0D7420A88DF0AC44BD64C7BAE07C3FE397C5B3300B23 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x36 (54) hops = 0x34 (52) hps = 4226.886248 time = 12.3022 msecs (12302200 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 7 seed = none (default value) b = 2 ^ 8 = 0x0100 a = 2 ^ 7 = 0x80 P = 0x0308BC89C2F919ED158885C35600844D49890905C79B357322609C45706CE6B514 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0xE0 s*G = 0x0308BC89C2F919ED158885C35600844D49890905C79B357322609C45706CE6B514 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x22 (34) hops = 0x20 (32) hps = 15992.803239 time = 2.0009 msecs (2000900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 8 seed = none (default value) b = 2 ^ 9 = 0x0200 a = 2 ^ 8 = 0x0100 P = 0x0243601D61C836387485E9514AB5C8924DD2CFD466AF34AC95002727E1659D60F7 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01D3 s*G = 0x0243601D61C836387485E9514AB5C8924DD2CFD466AF34AC95002727E1659D60F7 (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x2F (47) hops = 0x2D (45) hps = 13742.136444 time = 3.2746 msecs (3274600 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 9 seed = none (default value) b = 2 ^ 10 = 0x0400 a = 2 ^ 9 = 0x0200 P = 0x03A7A4C30291AC1DB24B4AB00C442AA832F7794B5A0959BEC6E8D7FEE802289DCD (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0202 s*G = 0x03A7A4C30291AC1DB24B4AB00C442AA832F7794B5A0959BEC6E8D7FEE802289DCD (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x200 (512) hops = 0x1FE (510) hps = 47568.414573 time = 10.7214 msecs (10721400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 10 seed = none (default value) b = 2 ^ 11 = 0x0800 a = 2 ^ 10 = 0x0400 P = 0x038B05B0603ABD75B0C57489E451F811E1AFE54A8715045CDF4888333F3EBC6E8B (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0483 s*G = 0x038B05B0603ABD75B0C57489E451F811E1AFE54A8715045CDF4888333F3EBC6E8B (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x37F (895) hops = 0x37D (893) hps = 48783.419100 time = 18.3054 msecs (18305400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 11 seed = none (default value) b = 2 ^ 12 = 0x1000 a = 2 ^ 11 = 0x0800 P = 0x038B00FCBFC1A203F44BF123FC7F4C91C10A85C8EAE9187F9D22242B4600CE781C (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0A7B s*G = 0x038B00FCBFC1A203F44BF123FC7F4C91C10A85C8EAE9187F9D22242B4600CE781C (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0x587 (1415) hops = 0x585 (1413) hps = 53594.796033 time = 26.3645 msecs (26364500 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 12 seed = none (default value) b = 2 ^ 13 = 0x2000 a = 2 ^ 12 = 0x1000 P = 0x03AADAAAB1DB8D5D450B511789C37E7CFEB0EB8B3E61A57A34166C5EDC9A4B869D (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x1460 s*G = 0x03AADAAAB1DB8D5D450B511789C37E7CFEB0EB8B3E61A57A34166C5EDC9A4B869D (33 bytes) numt = 0x1 (1) mem = 0x4D0 (1232) bytes cmps = 0xBA2 (2978) hops = 0xBA0 (2976) hps = 37949.163932 time = 78.4207 msecs (78420700 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 13 seed = none (default value) b = 2 ^ 14 = 0x4000 a = 2 ^ 13 = 0x2000 P = 0x03B4F1DE58B8B41AFE9FD4E5FFBDAFAEAB86C5DB4769C15D6E6011AE7351E54759 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x2930 s*G = 0x03B4F1DE58B8B41AFE9FD4E5FFBDAFAEAB86C5DB4769C15D6E6011AE7351E54759 (33 bytes) numt = 0x8 (8) mem = 0x5580 (21888) bytes cmps = 0x152 (338) hops = 0x346 (838) hps = 61841.823670 time = 13.5507 msecs (13550700 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 14 seed = none (default value) b = 2 ^ 15 = 0x8000 a = 2 ^ 14 = 0x4000 P = 0x02FEA58FFCF49566F6E9E9350CF5BCA2861312F422966E8DB16094BEB14DC3DF2C (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x68F3 s*G = 0x02FEA58FFCF49566F6E9E9350CF5BCA2861312F422966E8DB16094BEB14DC3DF2C (33 bytes) numt = 0x8 (8) mem = 0x5B40 (23360) bytes cmps = 0x26 (38) hops = 0x2BE (702) hps = 45441.893283 time = 15.4483 msecs (15448300 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 15 seed = none (default value) b = 2 ^ 16 = 0x010000 a = 2 ^ 15 = 0x8000 P = 0x029D8C5D35231D75EB87FD2C5F05F65281ED9573DC41853288C62EE94EB2590B7A (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0xC936 s*G = 0x029D8C5D35231D75EB87FD2C5F05F65281ED9573DC41853288C62EE94EB2590B7A (33 bytes) numt = 0x8 (8) mem = 0x66C0 (26304) bytes cmps = 0x8F (143) hops = 0x43D (1085) hps = 48378.107234 time = 22.4275 msecs (22427500 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 16 seed = none (default value) b = 2 ^ 17 = 0x020000 a = 2 ^ 16 = 0x010000 P = 0x033F688BAE8321B8E02B7E6C0A55C2515FB25AB97D85FDA842449F7BFA04E128C3 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01764F s*G = 0x033F688BAE8321B8E02B7E6C0A55C2515FB25AB97D85FDA842449F7BFA04E128C3 (33 bytes) numt = 0x8 (8) mem = 0x7DC0 (32192) bytes cmps = 0x131 (305) hops = 0x393 (915) hps = 36355.834217 time = 25.1679 msecs (25167900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 17 seed = none (default value) b = 2 ^ 18 = 0x040000 a = 2 ^ 17 = 0x020000 P = 0x020CE4A3291B19D2E1A7BF73EE87D30A6BDBC72B20771E7DFFF40D0DB755CD4AF1 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x03080D s*G = 0x020CE4A3291B19D2E1A7BF73EE87D30A6BDBC72B20771E7DFFF40D0DB755CD4AF1 (33 bytes) numt = 0x8 (8) mem = 0xABC0 (43968) bytes cmps = 0x8D (141) hops = 0x2EB (747) hps = 24050.380234 time = 31.0598 msecs (31059800 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 18 seed = none (default value) b = 2 ^ 19 = 0x080000 a = 2 ^ 18 = 0x040000 P = 0x0385663C8B2F90659E1CCAB201694F4F8EC24B3749CFE5030C7C3646A709408E19 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x05749F s*G = 0x0385663C8B2F90659E1CCAB201694F4F8EC24B3749CFE5030C7C3646A709408E19 (33 bytes) numt = 0x8 (8) mem = 0x107C0 (67520) bytes cmps = 0x854 (2132) hops = 0xA91 (2705) hps = 60975.884658 time = 44.3618 msecs (44361800 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 19 seed = none (default value) b = 2 ^ 20 = 0x100000 a = 2 ^ 19 = 0x080000 P = 0x033C4A45CBD643FF97D77F41EA37E843648D50FD894B864B0D52FEBC62F6454F7C (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0D2C55 s*G = 0x033C4A45CBD643FF97D77F41EA37E843648D50FD894B864B0D52FEBC62F6454F7C (33 bytes) numt = 0x8 (8) mem = 0x1BFC0 (114624) bytes cmps = 0x3B5 (949) hops = 0x5EB (1515) hps = 23866.874826 time = 63.4771 msecs (63477100 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 20 seed = none (default value) b = 2 ^ 21 = 0x200000 a = 2 ^ 20 = 0x100000 P = 0x031A746C78F72754E0BE046186DF8A20CDCE5C79B2EDA76013C647AF08D306E49E (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x1BA534 s*G = 0x031A746C78F72754E0BE046186DF8A20CDCE5C79B2EDA76013C647AF08D306E49E (33 bytes) numt = 0x8 (8) mem = 0x32FC0 (208832) bytes cmps = 0xC38 (3128) hops = 0xF07 (3847) hps = 32010.291221 time = 120.1801 msecs (120180100 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 21 seed = none (default value) b = 2 ^ 22 = 0x400000 a = 2 ^ 21 = 0x200000 P = 0x023ED96B524DB5FF4FE007CE730366052B7C511DC566227D929070B9CE917ABB43 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x2DE40F s*G = 0x023ED96B524DB5FF4FE007CE730366052B7C511DC566227D929070B9CE917ABB43 (33 bytes) numt = 0x8 (8) mem = 0x60FC0 (397248) bytes cmps = 0x1419 (5145) hops = 0x1501 (5377) hps = 26854.198235 time = 200.2294 msecs (200229400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 22 seed = none (default value) b = 2 ^ 23 = 0x800000 a = 2 ^ 22 = 0x400000 P = 0x03F82710361B8B81BDEDB16994F30C80DB522450A93E8E87EEB07F7903CF28D04B (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x556E52 s*G = 0x03F82710361B8B81BDEDB16994F30C80DB522450A93E8E87EEB07F7903CF28D04B (33 bytes) numt = 0x8 (8) mem = 0xBCFC0 (774080) bytes cmps = 0x2DDC (11740) hops = 0x2FE2 (12258) hps = 30810.188827 time = 397.8554 msecs (397855400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 23 seed = none (default value) b = 2 ^ 24 = 0x01000000 a = 2 ^ 23 = 0x800000 P = 0x036EA839D22847EE1DCE3BFC5B11F6CF785B0682DB58C35B63D1342EB221C3490C (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0xDC2A04 s*G = 0x036EA839D22847EE1DCE3BFC5B11F6CF785B0682DB58C35B63D1342EB221C3490C (33 bytes) numt = 0x8 (8) mem = 0x9FC0 (40896) bytes cmps = 0x169C (5788) hops = 0x22FD (8957) hps = 97635.683842 time = 91.7390 msecs (91739000 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 24 seed = none (default value) b = 2 ^ 25 = 0x02000000 a = 2 ^ 24 = 0x01000000 P = 0x03057FBEA3A2623382628DDE556B2A0698E32428D3CD225F3BD034DCA82DD7455A (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01FA5EE5 s*G = 0x03057FBEA3A2623382628DDE556B2A0698E32428D3CD225F3BD034DCA82DD7455A (33 bytes) numt = 0x8 (8) mem = 0xA580 (42368) bytes cmps = 0x302 (770) hops = 0xF5F (3935) hps = 60897.758313 time = 64.6165 msecs (64616500 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 25 seed = none (default value) b = 2 ^ 26 = 0x04000000 a = 2 ^ 25 = 0x02000000 P = 0x024E4F50A2A3ECCDB368988AE37CD4B611697B26B29696E42E06D71368B4F3840F (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0340326E s*G = 0x024E4F50A2A3ECCDB368988AE37CD4B611697B26B29696E42E06D71368B4F3840F (33 bytes) numt = 0x8 (8) mem = 0xB100 (45312) bytes cmps = 0x2757 (10071) hops = 0x378E (14222) hps = 108573.670847 time = 130.9894 msecs (130989400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 26 seed = none (default value) b = 2 ^ 27 = 0x08000000 a = 2 ^ 26 = 0x04000000 P = 0x031A864BAE3922F351F1B57CFDD827C25B7E093CB9C88A72C1CD893D9F90F44ECE (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x06AC3875 s*G = 0x031A864BAE3922F351F1B57CFDD827C25B7E093CB9C88A72C1CD893D9F90F44ECE (33 bytes) numt = 0x8 (8) mem = 0xC800 (51200) bytes cmps = 0x1B36 (6966) hops = 0x2601 (9729) hps = 92489.780397 time = 105.1900 msecs (105190000 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 27 seed = none (default value) b = 2 ^ 28 = 0x10000000 a = 2 ^ 27 = 0x08000000 P = 0x03E9E661838A96A65331637E2A3E948DC0756E5009E7CB5C36664D9B72DD18C0A7 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0D916CE8 s*G = 0x03E9E661838A96A65331637E2A3E948DC0756E5009E7CB5C36664D9B72DD18C0A7 (33 bytes) numt = 0x8 (8) mem = 0xF600 (62976) bytes cmps = 0x3684 (13956) hops = 0x44F2 (17650) hps = 115979.245957 time = 152.1824 msecs (152182400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 28 seed = none (default value) b = 2 ^ 29 = 0x20000000 a = 2 ^ 28 = 0x10000000 P = 0x026CAAD634382D34691E3BEF43ED4A124D8909A8A3362F91F1D20ABAAF7E917B36 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x17E2551E s*G = 0x026CAAD634382D34691E3BEF43ED4A124D8909A8A3362F91F1D20ABAAF7E917B36 (33 bytes) numt = 0x8 (8) mem = 0x15200 (86528) bytes cmps = 0x11D3 (4563) hops = 0x1EF0 (7920) hps = 76613.379095 time = 103.3762 msecs (103376200 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 29 seed = none (default value) b = 2 ^ 30 = 0x40000000 a = 2 ^ 29 = 0x20000000 P = 0x030D282CF2FF536D2C42F105D0B8588821A915DC3F9A05BD98BB23AF67A2E92A5B (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x3D94CD64 s*G = 0x030D282CF2FF536D2C42F105D0B8588821A915DC3F9A05BD98BB23AF67A2E92A5B (33 bytes) numt = 0x8 (8) mem = 0x20A00 (133632) bytes cmps = 0x3BEFE (245502) hops = 0x3D2C4 (250564) hps = 190967.538171 time = 1.3121 secs (1312076400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 30 seed = none (default value) b = 2 ^ 31 = 0x80000000 a = 2 ^ 30 = 0x40000000 P = 0x0387DC70DB1806CD9A9A76637412EC11DD998BE666584849B3185F7F9313C8FD28 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x7D4FE747 s*G = 0x0387DC70DB1806CD9A9A76637412EC11DD998BE666584849B3185F7F9313C8FD28 (33 bytes) numt = 0x8 (8) mem = 0x37A00 (227840) bytes cmps = 0x23D68 (146792) hops = 0x24D86 (150918) hps = 175329.717642 time = 860.7668 msecs (860766800 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 31 seed = none (default value) b = 2 ^ 32 = 0x0100000000 a = 2 ^ 31 = 0x80000000 P = 0x0209C58240E50E3BA3F833C82655E8725C037A2294E14CF5D73A5DF8D56159DE69 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0xB862A62E s*G = 0x0209C58240E50E3BA3F833C82655E8725C037A2294E14CF5D73A5DF8D56159DE69 (33 bytes) numt = 0x8 (8) mem = 0x65A00 (416256) bytes cmps = 0x13DDFB (1302011) hops = 0x1407D6 (1312726) hps = 194092.676405 time = 6.7634 secs (6763397900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 32 seed = none (default value) b = 2 ^ 33 = 0x0200000000 a = 2 ^ 32 = 0x0100000000 P = 0x03A355AA5E2E09DD44BB46A4722E9336E9E3EE4EE4E7B7A0CF5785B283BF2AB579 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01A96CA8D8 s*G = 0x03A355AA5E2E09DD44BB46A4722E9336E9E3EE4EE4E7B7A0CF5785B283BF2AB579 (33 bytes) numt = 0x8 (8) mem = 0xC1A00 (793088) bytes cmps = 0x184BA6 (1592230) hops = 0x187FCE (1605582) hps = 195437.098767 time = 8.2153 secs (8215338900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 33 seed = none (default value) b = 2 ^ 34 = 0x0400000000 a = 2 ^ 33 = 0x0200000000 P = 0x033CDD9D6D97CBFE7C26F902FAF6A435780FE652E159EC953650EC7B1004082790 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x034A65911D s*G = 0x033CDD9D6D97CBFE7C26F902FAF6A435780FE652E159EC953650EC7B1004082790 (33 bytes) numt = 0x8 (8) mem = 0x13200 (78336) bytes cmps = 0x43797 (276375) hops = 0x544E2 (345314) hps = 136228.949723 time = 2.5348 secs (2534806300 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 34 seed = none (default value) b = 2 ^ 35 = 0x0800000000 a = 2 ^ 34 = 0x0400000000 P = 0x02F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x04AED21170 s*G = 0x02F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D (33 bytes) numt = 0x8 (8) mem = 0x137C0 (79808) bytes cmps = 0x2021 (8225) hops = 0x13156 (78166) hps = 62445.531121 time = 1.2517 secs (1251746900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 35 seed = none (default value) b = 2 ^ 36 = 0x1000000000 a = 2 ^ 35 = 0x0800000000 P = 0x02B3E772216695845FA9DDA419FB5DACA28154D8AA59EA302F05E916635E47B9F6 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x09DE820A7C s*G = 0x02B3E772216695845FA9DDA419FB5DACA28154D8AA59EA302F05E916635E47B9F6 (33 bytes) numt = 0x8 (8) mem = 0x14340 (82752) bytes cmps = 0xA83FE (689150) hops = 0xB992D (760109) hps = 163879.391715 time = 4.6382 secs (4638222000 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 36 seed = none (default value) b = 2 ^ 37 = 0x2000000000 a = 2 ^ 36 = 0x1000000000 P = 0x027D2C03C3EF0AEC70F2C7E1E75454A5DFDD0E1ADEA670C1B3A4643C48AD0F1255 (33 bytes) k0000 = 0x2DCF462904B478D8 k0001 = 0x68A7FF3F2BF1FCD9 s = 0x1757756A93 s*G = 0x027D2C03C3EF0AEC70F2C7E1E75454A5DFDD0E1ADEA670C1B3A4643C48AD0F1255 (33 bytes) numt = 0x8 (8) mem = 0x15C40 (89152) bytes cmps = 0x6AA0A9 (6987945) hops = 0x6D2105 (7151877) hps = 187772.773393 time = 38.0879 secs (38087934000 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 37 seed = none (default value) b = 2 ^ 38 = 0x4000000000 a = 2 ^ 37 = 0x2000000000 P = 0x03C060E1E3771CBECCB38E119C2414702F3F5181A89652538851D2E3886BDD70C6 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x22382FACD0 s*G = 0x03C060E1E3771CBECCB38E119C2414702F3F5181A89652538851D2E3886BDD70C6 (33 bytes) numt = 0x8 (8) mem = 0x18840 (100416) bytes cmps = 0x326522 (3302690) hops = 0x33AD16 (3386646) hps = 182235.685408 time = 18.5839 secs (18583879400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 38 seed = none (default value) b = 2 ^ 39 = 0x8000000000 a = 2 ^ 38 = 0x4000000000 P = 0x022D77CD1467019A6BF28F7375D0949CE30E6B5815C2758B98A74C2700BC006543 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x4B5F8303E9 s*G = 0x022D77CD1467019A6BF28F7375D0949CE30E6B5815C2758B98A74C2700BC006543 (33 bytes) numt = 0x8 (8) mem = 0x1E440 (123968) bytes cmps = 0x462142 (4596034) hops = 0x47824B (4686411) hps = 183080.898076 time = 25.5975 secs (25597487500 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 39 seed = none (default value) b = 2 ^ 40 = 0x010000000000 a = 2 ^ 39 = 0x8000000000 P = 0x03A2EFA402FD5268400C77C20E574BA86409EDEDEE7C4020E4B9F0EDBEE53DE0D4 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0xE9AE4933D6 s*G = 0x03A2EFA402FD5268400C77C20E574BA86409EDEDEE7C4020E4B9F0EDBEE53DE0D4 (33 bytes) numt = 0x8 (8) mem = 0x29C40 (171072) bytes cmps = 0x814EB5 (8474293) hops = 0x72B2DE (7516894) hps = 160988.917056 time = 46.6920 secs (46691996800 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 40 seed = none (default value) b = 2 ^ 41 = 0x020000000000 a = 2 ^ 40 = 0x010000000000 P = 0x03B357E68437DA273DCF995A474A524439FAAD86FC9EFFC300183F714B0903468B (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0153869ACC5B s*G = 0x03B357E68437DA273DCF995A474A524439FAAD86FC9EFFC300183F714B0903468B (33 bytes) numt = 0x8 (8) mem = 0x40C40 (265280) bytes cmps = 0x18135 (98613) hops = 0x28F92 (167826) hps = 95305.543521 time = 1.7609 secs (1760925900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 41 seed = none (default value) b = 2 ^ 42 = 0x040000000000 a = 2 ^ 41 = 0x020000000000 P = 0x03EEC88385BE9DA803A0D6579798D977A5D0C7F80917DAB49CB73C9E3927142CB6 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x02A221C58D8F s*G = 0x03EEC88385BE9DA803A0D6579798D977A5D0C7F80917DAB49CB73C9E3927142CB6 (33 bytes) numt = 0x8 (8) mem = 0x6EC40 (453696) bytes cmps = 0x26347AB (40060843) hops = 0x21C092F (35391791) hps = 163432.918870 time = 3.6092 mins (216552401100 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 42 seed = none (default value) b = 2 ^ 43 = 0x080000000000 a = 2 ^ 42 = 0x040000000000 P = 0x02A631F9BA0F28511614904DF80D7F97A4F43F02249C8909DAC92276CCF0BCDAED (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x06BD3B27C591 s*G = 0x02A631F9BA0F28511614904DF80D7F97A4F43F02249C8909DAC92276CCF0BCDAED (33 bytes) numt = 0x8 (8) mem = 0xCAC40 (830528) bytes cmps = 0xEE15186 (249647494) hops = 0xEEF75A3 (250574243) hps = 181027.446695 time = 23.0696 mins (1384178187200 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 43 seed = none (default value) b = 2 ^ 44 = 0x100000000000 a = 2 ^ 43 = 0x080000000000 P = 0x025E466E97ED0E7910D3D90CEB0332DF48DDF67D456B9E7303B50A3D89DE357336 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0E02B35A358F s*G = 0x025E466E97ED0E7910D3D90CEB0332DF48DDF67D456B9E7303B50A3D89DE357336 (33 bytes) numt = 0x8 (8) mem = 0x253E0 (152544) bytes cmps = 0x45511C (4542748) hops = 0x65AF2A (6663978) hps = 113200.466316 time = 58.8688 secs (58868821100 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 44 seed = none (default value) b = 2 ^ 45 = 0x200000000000 a = 2 ^ 44 = 0x100000000000 P = 0x026ECABD2D22FDB737BE21975CE9A694E108EB94F3649C586CC7461C8ABF5DA71A (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x122FCA143C05 s*G = 0x026ECABD2D22FDB737BE21975CE9A694E108EB94F3649C586CC7461C8ABF5DA71A (33 bytes) numt = 0x8 (8) mem = 0x259A0 (154016) bytes cmps = 0xDB72EF (14381807) hops = 0xFC9832 (16554034) hps = 148273.059015 time = 1.8608 mins (111645595700 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 45 seed = none (default value) b = 2 ^ 46 = 0x400000000000 a = 2 ^ 45 = 0x200000000000 P = 0x03FD5487722D2576CB6D7081426B66A3E2986C1CE8358D479063FB5F2BB6DD5849 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x2EC18388D544 s*G = 0x03FD5487722D2576CB6D7081426B66A3E2986C1CE8358D479063FB5F2BB6DD5849 (33 bytes) numt = 0x8 (8) mem = 0x26520 (156960) bytes cmps = 0x119F8DF (18479327) hops = 0x13BAE5B (20688475) hps = 154316.344166 time = 2.2344 mins (134065352000 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 46 seed = none (default value) b = 2 ^ 47 = 0x800000000000 a = 2 ^ 46 = 0x400000000000 P = 0x023A12BD3CAF0B0F77BF4EEA8E7A40DBE27932BF80B19AC72F5F5A64925A594196 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x6CD610B53CBA s*G = 0x023A12BD3CAF0B0F77BF4EEA8E7A40DBE27932BF80B19AC72F5F5A64925A594196 (33 bytes) numt = 0x8 (8) mem = 0x27C20 (162848) bytes cmps = 0x1E74E4 (1996004) hops = 0x3AE4E1 (3859681) hps = 83000.365225 time = 46.5020 secs (46501976100 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 47 seed = none (default value) b = 2 ^ 48 = 0x01000000000000 a = 2 ^ 47 = 0x800000000000 P = 0x0291BEE5CF4B14C291C650732FAA166040E4C18A14731F9A930C1E87D3EC12DEBB (33 bytes) k0000 = 0x2DCF462904B478D8 k0001 = 0x68A7FF3F2BF1FCD9 s = 0xADE6D7CE3B9B s*G = 0x0291BEE5CF4B14C291C650732FAA166040E4C18A14731F9A930C1E87D3EC12DEBB (33 bytes) numt = 0x8 (8) mem = 0x2AC20 (175136) bytes cmps = 0x1E1F1EFA (505356026) hops = 0x1E982AC6 (513288902) hps = 176154.639028 time = 48.5642 mins (2913854013900 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 48 seed = none (default value) b = 2 ^ 49 = 0x02000000000000 a = 2 ^ 48 = 0x01000000000000 P = 0x02591D682C3DA4A2A698633BF5751738B67C343285EBDC3492645CB44658911484 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0174176B015F4D s*G = 0x02591D682C3DA4A2A698633BF5751738B67C343285EBDC3492645CB44658911484 (33 bytes) numt = 0x8 (8) mem = 0x30620 (198176) bytes cmps = 0xA8440D4 (176439508) hops = 0xABE8B80 (180259712) hps = 174174.276996 time = 17.2490 mins (1034938770000 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 49 seed = none (default value) b = 2 ^ 50 = 0x04000000000000 a = 2 ^ 49 = 0x02000000000000 P = 0x03F46F41027BBF44FAFD6B059091B900DAD41E6845B2241DC3254C7CDD3C5A16C6 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x022BD43C2E9354 s*G = 0x03F46F41027BBF44FAFD6B059091B900DAD41E6845B2241DC3254C7CDD3C5A16C6 (33 bytes) numt = 0x8 (8) mem = 0x3BE20 (245280) bytes cmps = 0xE6FCB63 (242207587) hops = 0xEAE1EB5 (246292149) hps = 175194.304007 time = 23.4304 mins (1405822811400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 50 seed = none (default value) b = 2 ^ 51 = 0x08000000000000 a = 2 ^ 50 = 0x04000000000000 P = 0x028C6C67BEF9E9EEBE6A513272E50C230F0F91ED560C37BC9B033241FF6C3BE78F (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x075070A1A009D4 s*G = 0x028C6C67BEF9E9EEBE6A513272E50C230F0F91ED560C37BC9B033241FF6C3BE78F (33 bytes) numt = 0x8 (8) mem = 0x52E20 (339488) bytes cmps = 0xB3CD1A4 (188535204) hops = 0xA08C6AE (168347310) hps = 151963.044975 time = 18.4636 mins (1107817430400 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 51 seed = none (default value) b = 2 ^ 52 = 0x10000000000000 a = 2 ^ 51 = 0x08000000000000 P = 0x0374C33BD548EF02667D61341892134FCF216640BC2201AE61928CD0874F6314A7 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x0EFAE164CB9E3C s*G = 0x0374C33BD548EF02667D61341892134FCF216640BC2201AE61928CD0874F6314A7 (33 bytes) numt = 0x8 (8) mem = 0x80E20 (527904) bytes cmps = 0x2428A69D (606643869) hops = 0x1FF09B95 (535862165) hps = 153719.989373 time = 58.0994 mins (3485962802800 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 52 seed = none (default value) b = 2 ^ 53 = 0x20000000000000 a = 2 ^ 52 = 0x10000000000000 P = 0x020FAAF5F3AFE58300A335874C80681CF66933E2A7AEB28387C0D28BB048BC6349 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x180788E47E326C s*G = 0x020FAAF5F3AFE58300A335874C80681CF66933E2A7AEB28387C0D28BB048BC6349 (33 bytes) numt = 0x8 (8) mem = 0xDCE20 (904736) bytes cmps = 0x1549AA0D (357149197) hops = 0x12D22679 (315762297) hps = 153038.793388 time = 34.3880 mins (2063282714200 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 53 seed = none (default value) b = 2 ^ 54 = 0x40000000000000 a = 2 ^ 53 = 0x20000000000000 P = 0x034AF4B81F8C450C2C870CE1DF184AFF1297E5FCD54944D98D81E1A545FFB22596 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x236FB6D5AD1F43 s*G = 0x034AF4B81F8C450C2C870CE1DF184AFF1297E5FCD54944D98D81E1A545FFB22596 (33 bytes) numt = 0x8 (8) mem = 0x495C0 (300480) bytes cmps = 0xD4FAB0C (223324940) hops = 0x115BFA9F (291240607) hps = 120565.996454 time = 40.2602 mins (2415611495500 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 54 seed = none (default value) b = 2 ^ 55 = 0x80000000000000 a = 2 ^ 54 = 0x40000000000000 P = 0x0385A30D8413AF4F8F9E6312400F2D194FE14F02E719B24C3F83BF1FD233A8F963 (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x6ABE1F9B67E114 s*G = 0x0385A30D8413AF4F8F9E6312400F2D194FE14F02E719B24C3F83BF1FD233A8F963 (33 bytes) numt = 0x8 (8) mem = 0x49B80 (301952) bytes cmps = 0xDFD088B (234686603) hops = 0x1208ECAE (302574766) hps = 121698.729941 time = 41.4377 mins (2486260671300 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 55 seed = none (default value) b = 2 ^ 56 = 0x0100000000000000 a = 2 ^ 55 = 0x80000000000000 P = 0x033F2DB2074E3217B3E5EE305301EEEBB1160C4FA1E993EE280112F6348637999A (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x9D18B63AC4FFDF s*G = 0x033F2DB2074E3217B3E5EE305301EEEBB1160C4FA1E993EE280112F6348637999A (33 bytes) numt = 0x8 (8) mem = 0x4A700 (304896) bytes cmps = 0x16736A19 (376662553) hops = 0x1A8F0CBE (445582526) hps = 135532.375726 time = 54.7941 mins (3287646391600 nsecs)
ver = 186, sizeof(unsigned) 4, 128 bit integers, scalar 4x64, field 5x52, 8 processors, 8 available test = 56 seed = none (default value) b = 2 ^ 57 = 0x0200000000000000 a = 2 ^ 56 = 0x0100000000000000 P = 0x02A521A07E98F78B03FC1E039BC3A51408CD73119B5EB116E583FE57DC8DB07AEA (33 bytes) k0000 = 0x2DCF462904B478D8 s = 0x01EB25C90795D61C s*G = 0x02A521A07E98F78B03FC1E039BC3A51408CD73119B5EB116E583FE57DC8DB07AEA (33 bytes) numt = 0x8 (8) mem = 0x4BE00 (310784) bytes cmps = 0x34C9808B (885620875) hops = 0x39144058 (957628504) hps = 153790.653757 time = 1.7297 hours (6226831609100 nsecs)
Where: ver = the subversion VERsion of the code test = the TEST number seed = the SEED used for seeding the rand() function b = upper bound for the private key search a = lower bound for the private key search P = the Public key kXXXX = the tame Kangaroo IDs used (needed if more than one tame kangaroo is required) s = the Secret (private) key found s*G = calculate the public key to double check the results numt = the NUMber of Threads mem = total amount of dynamically allocated MEMory cmps = total number of point CoMParisonS hops = total number of HOPS hps = Hops Per Second time = TIME it took to find the private key
People who have volunteered to help with testing (listed in alphabetical order): agatazit AirShark AndreuSmetanin Angelo1710 arulbero asher1101 ayiphelmy bulleteyedk byyuans Darmont33 dextronomous Firebox iparktur JDScreesh johan11 miningforprofit PietCoin97 sanhwy stivensons supika Telariust ultramen vimp666 ZafotheNinja zielar
|
|
|
We made progress today and got our first positive test results. Thanks for the help in posting the public keys. That saved us some time. bits = 30 a = 0x20000000 b = 0x40000000 P = 0x30D282CF2FF536D2C42F105D0B8588821A915DC3F9A05BD98BB23AF67A2E92A5B s = 0x3D94CD64
bits = 31 a = 0x40000000 b = 0x80000000 P = 0x387DC70DB1806CD9A9A76637412EC11DD998BE666584849B3185F7F9313C8FD28 s = 0x7D4FE747
bits = 32 a = 0x80000000 b = 0x100000000 P = 0x209C58240E50E3BA3F833C82655E8725C037A2294E14CF5D73A5DF8D56159DE69 s = 0xB862A62E
Written in C using OpenSSL, very slow, we will work on efficiency later... bits is the number of bits of entropy in the private key a is the lower bound of the private key b is the upper bound of the private key P is the public key s is the private key found Still to do: add the CPU cycle timers
|
|
|
Thanks to JDScreesh and almightyruler, merit sent.
|
|
|
Hey,
Once my daughter gets this written she would like to run it against every cracked address in this "puzzle" for timing and test purposes. In order to do that we will need a list of every public key, in whatever form is handy (compressed, uncompressed, binary, encoded, etc.) with preference to uncompressed binary in hex.
Has anyone already done this? I would hate to have to go into the block chain to recover all the public keys if someone has already done that and can just publish it here.
Also, this would be a great thing to add to the OP of this thread: A complete listing of all the public keys known for the cracked and still to be cracked addresses.
Thanks.
Burt
|
|
|
Nice idea, but you can simplify it by ignoring Y coordinate, since X is much more important and effectively defining the point on the curve. Then you can stay in 256 bit range instead of venturing to 512 bits, and use this version I've written for you: struct xorshift256_state { uint64_t a, b, c, d; };
/* The state array should be initialized to X coordinate */ uint64_t xorshift256(struct xorshift256_state *state) { uint64_t t = state->d;
uint64_t const s = state->a; state->d = state->c; state->c = state->b; state->b = s;
t ^= t << 11; t ^= t >> 8; return state->a = t ^ s ^ (s >> 19); } Thanks, that looks great (fast). BTW there is already a 512 bit state version of xoshiro in case we/anyone wants to try it.
|
|
|
They say this fastest pseudo-random generator that is any good: XorshiftYou need few lines of code to vary the mask, why not do this instead? I read about and was intrigued by the two xoshiro256 algorithms and i think a great idea would be to create a xoshiro512 version that would be perfect for this application. 1) Expand the PRNG state from 256 bits to 512 bits 2) Seed the PRNG with all 512 bits of the point X that have been modified in a yet TBD way in order to create the various kangaroos 3) have the PRNG output a 256 bit pseudo random number based on the 512 bit state. This might give better pseudo random coverage of the search space than my ultra simple (but faster) masking system.
|
|
|
What PRF is generally used?
i am not really familiar with this algorithm but yesterday when i saw your comment mentioning SHA256 as the PRF i did some search on the algorithm and i haven't yet seen anybody use this. one option is what was posted ( f(x) = 2x%k) each choosing k differently from random k in [1,20] to a k based on curve order, here is one in python: https://github.com/crypto-class/random-modnar/blob/master/set8/58/main.pyothers use something similar to what you said here with SHA256 but they simply use their language's Random() function which uses a bunch of hashes under the hood. another thing i've seen was finding α based on prime (p-1) factors and define f(x) = xα %nin the end it seems like there is no good answer to the pseudorandom map function that they use. each one is trying to come up with the most efficient function while reducing the cycles to make the algorithm run faster. As far as this PRF: def f(Z): (x, y) = Z.coords() return pow(2, (y % k)) where k is varied to create new kangaroos To quote King Crimson: The more I look at it The more I like it Heh, I do think it's good The fact is.. No matter how closely I study it No matter how I take it apart No matter how I'll break it down It remains consistent I wish you were here to see it! Anyway I am going to try the simplest fastest possible thing I can think of and test it to see if it will work: def f(Z): (x, y) = Z.coords() return (y & M) where M is a bit mask and is varied to create new kangaroos
|
|
|
|