Bitcoin Forum
November 10, 2024, 04:06:07 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 »  All
  Print  
Author Topic: Science Fair Project to trap Bitcoin private keys using Kangaroos!  (Read 8272 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic. (65 posts by 1 users with 3 merit deleted.)
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 07, 2019, 05:00:27 PM
Last edit: September 17, 2019, 03:21:25 PM by BurtW
Merited by DdmrDdmr (3), vapourminer (2), ABCbits (1), LeGaulois (1), itod (1), th3nolo (1), MrFreeDragon (1)
 #1

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 here

The 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:
Code:
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:
Code:
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:
Code:
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):

Quote
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

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 07, 2019, 06:50:03 PM
 #2

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

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.html

You will see that there is not a single vinegar and baking soda volcano in the entire list  Wink

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 08, 2019, 01:25:00 AM
 #3

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:

Code:
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?

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 08, 2019, 02:45:33 AM
 #4

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.

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 08, 2019, 11:26:12 AM
 #5

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.

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 08, 2019, 11:58:48 AM
Last edit: August 08, 2019, 03:36:11 PM by BurtW
 #6

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:

Code:
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.

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
Firebox
Jr. Member
*
Offline Offline

Activity: 59
Merit: 3


View Profile
August 08, 2019, 12:47:44 PM
 #7

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.
BurtW,
You are, guys, doing a very comprehensive and very very important work. Such a tallented kids like your daughter deserves not only the awarded medal in the school but a huge popularity within the scientific comunity, as such kids are the ones who will definetely influence our future.

Personnaly me, I have no any reason to NOT trust your binaries. So if you will publish it I will definetely test it on my PC. Even if it will f**k up my machine I will have NO any complaints to you.

I wish you great success in all what you are doing!
Telariust
Jr. Member
*
Offline Offline

Activity: 38
Merit: 18


View Profile
August 09, 2019, 06:29:16 AM
Last edit: September 07, 2019, 10:43:46 PM by Telariust
 #8

Top useful links:

base
https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/
hand translate to ru/ua (recommend instead translate.google)
https://habr.com/ru/post/335906/

0) best of the best, all in 1, epic,  2012
Chapter 14. Factoring and Discrete Logarithms using Pseudorandom Walks
https://www.math.auckland.ac.nz/~sgal018/crypto-book/ch14.pdf

1) with reference to old
J. M. Pollard, “Kangaroos, monopoly and discrete logarithms,” Journal of Cryptology, №13 (2000).
https://web.northeastern.edu/seigen/11Magic/KruskalsCount/PollardKangarooMonopoly.pdf
(good dir web.northeastern.edu/seigen/11Magic/KruskalsCount/)

2) about parallelism problems
P. C. van Oorschot and M. J. Wiener, Parallel collision search with cryptanalytic applications, J. Cryptology, №12 (1999)
https://people.scs.carleton.ca/~paulv/papers/JoC97.pdf

advice acceleration tips by fernand77
https://github.com/JeanLucPons/VanitySearch/issues/25#issuecomment-509293732

======

Sorry, I can not resist  Grin a little friendly trolling

Quote
Dad, for the new year, I asked Santa to give me Barbie and DVD with the new Winx Club season.
Why did he decide that the “Pollard Kangaroo Algorithm in raw asm” would be better?

======
I would like to test your Pollard Kangaroo program.
(need more examples sources for undestand concept how it work. bin no interest. lang any.)
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 09, 2019, 06:43:24 PM
 #9

I would like to test your program. Grin
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
All added to the list in the OP.

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 19, 2019, 01:44:11 PM
 #10

I would like to test your program.  Smiley
I would like to test your program  Kiss
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

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 19, 2019, 02:50:19 PM
 #11

See chart:  https://imgur.com/M8j5rdl

We 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:

Code:
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

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
supika
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
August 20, 2019, 11:45:58 AM
 #12

Who need some code, I have it for Python 2.7!
This is my own code and I apologize for absolutely no-PEP. And for my English, I apologize too.
The code is not so fast, but my estimation is more optimistic - only 10000 years on average for the problem 105.
Tests with C++ (VS2013) leads to x2..x3 faster calculations only (single-thread), but much more complicated code.

The code is on my WebSite:
http://fe57.org/forum/thread.php?board=4&thema=1#1

This is my main interest. You are now informed that my site exists in the Universe!
To be more interesting: test problem 75 from pickachunakapika to drotika solution:
26970178626862821196031
(decimal)
I guess that the solution can be posted now because all deadlines are finished. Or I miss something and drotika was already posted the answer.

Great contribution @57fe
The script is working only with compressed addresses?
Would be possible to work also with uncompressed addresses?
vimp666
Jr. Member
*
Offline Offline

Activity: 37
Merit: 1


View Profile
August 20, 2019, 12:46:56 PM
Last edit: August 20, 2019, 12:57:53 PM by vimp666
 #13

Quote
Would be possible to work also with uncompressed addresses?
Yes, it's even simpler than for compressed address. All you need is to set X and Y coordinates from an uncompressed record explicitly just before line 188 in the code. No need to calculate Y from X. If I think correctly, uncompressed coordinates in blockchain definitely means uncompressed address. Perhaps, it is actual only for very old blocks.
X = X % (2**256) it turns out after this line need to insert Y = Y % (2**256)?or enter the coordinates in hex format?
vimp666
Jr. Member
*
Offline Offline

Activity: 37
Merit: 1


View Profile
August 20, 2019, 01:03:24 PM
Last edit: August 20, 2019, 01:26:12 PM by vimp666
 #14

X = X % (2**256) it turns out after this line you need to insert Y = Y % (2**256)?

No. First, you need coordinates of EC-point in uncompressed form. See, for example, the transaction:

https://www.blockchain.com/ru/btc/tx/69211d75f7aa8b2bd8f495a672de5cb87d5ce3789cfb0a91407a4b9120405384?show_adv=true

There is uncompressed coordinates in every record starting from words PUSHDATA(65). Let's take the one of them:

Code:
PUSHDATA(65)[0485c26293005c33a5afafada4fd3177767af371927db1c8519402d04072cf9852b3f555474c9cbac1f786141da4bad9fabb4e450dd812a7f1e69ca662caef1796]

You can split this hex number manually, or with Python:
Code:
s = '85c26293005c33a5afafada4fd3177767af371927db1c8519402d04072cf9852b3f555474c9cbac1f786141da4bad9fabb4e450dd812a7f1e69ca662caef1796'
XY = int(s, 16)
X = XY >> 256
Y = XY % (2**256)
Note, that starting two symbols 04 must be deleted, because this is only the flag-byte of uncompressed point coordinates.
Yes, I understand how to divide the public key into x and y points.I want to understand what needs to be added to the code before line 188?
vimp666
Jr. Member
*
Offline Offline

Activity: 37
Merit: 1


View Profile
August 20, 2019, 03:20:37 PM
 #15

Who need some code, I have it for Python 2.7!
This is my own code and I apologize for absolutely no-PEP. And for my English, I apologize too.
The code is not so fast, but my estimation is more optimistic - only 10000 years on average for the problem 105.
Tests with C++ (VS2013) leads to x2..x3 faster calculations only (single-thread), but much more complicated code.

The code is on my WebSite:
http://fe57.org/forum/thread.php?board=4&thema=1#1

This is my main interest. You are now informed that my site exists in the Universe!
To be more interesting: test problem 75 from pickachunakapika to drotika solution:
26970178626862821196031
(decimal)
I guess that the solution can be posted now because all deadlines are finished. Or I miss something and drotika was already posted the answer.

Very nice Smiley

For those who use python3, you may have to change a few things for the code to work:

1) for all print statements you need (), for example line 60
change this > print 'prime must be 3 modulo 4'
to this > print ('prime must be 3 modulo 4')

2) make sure you distinguish between integer division //  and float division /
for example, line 63
change this >  pw = (p + 1) / 4
to this >  pw = (p + 1) // 4

For case 32 I get
P-table prepared
tame and wild herds are prepared
6091.198 h/s
6119.991 h/s
6047.619 h/s
6028.418 h/s
6020.816 h/s
5995.830 h/s
6041.220 h/s
6026.008 h/s
6077.185 h/s
total time: 45.38 sec
SOLVED: 3093472814
Hops: 273742
tame and wild herds are prepared
5995.223 h/s
6044.420 h/s
5966.429 h/s
6050.819 h/s
total time: 68.41 sec
SOLVED: 3093472814
Hops: 137749
tame and wild herds are prepared
6038.017 h/s
5968.435 h/s
total time: 82.83 sec
SOLVED: 3093472814
Hops: 85546
165679.0 +/- 56093.66357263537
Average time to solve: 27.61 sec


I think with  gmpy2 it's a lot faster.I have 145,000h/s

Average time to solve: 0.86 sec
57fe
Newbie
*
Offline Offline

Activity: 8
Merit: 4


View Profile
August 20, 2019, 05:11:03 PM
Last edit: August 20, 2019, 05:36:44 PM by 57fe
 #16

Quote
If you wish to speed up calculations by a factor 15 approximately, install gmpy2 module..
that's great but
Quote
random.randint
this is a very slow function, try to speed up through its analog numpy.random

Functions from random module used only in preliminary stage for placement tame and wild herds. So, there is almost no influence on speed of the algorithm. Only if we try to select a huge number of kangaroos. Also, when the problem is very simple (16 bit, for example) the time of the placement may be significant in comparison with the time of solution. But total time still very small for human.
For pseudorandom hops the coordinate X itself is used.
Main goal of the code presented is a template with minimal dependencies. Numpy is external module which requires installation.
But I can't eliminate gmpy2 at all, it is very efficient.
Anyway, the table with time-to-solve estimations posted by j2002ba2 means GPUs are 3..4-order more efficient than the code presented.
j2002ba2, if you are here, how many hops/sec you have reached on single Tesla V100? Is my estimation of 2 GHops/s correct? At least 1 GHops/s required if authomorphisms taken into account, but I can't beat even half of this value.
57fe
Newbie
*
Offline Offline

Activity: 8
Merit: 4


View Profile
August 21, 2019, 04:52:56 AM
 #17

Anyway, the table with time-to-solve estimations posted by j2002ba2 means GPUs are 3..4-order more efficient than the code presented.
j2002ba2, if you are here, how many hops/sec you have reached on single Tesla V100? Is my estimation of 2 GHops/s correct? At least 1 GHops/s required if authomorphisms taken into account, but I can't beat even half of this value.
For me 4x Tesla V100 on AWS were running at 6515 Mj/s, this gives 1629 Mj/s for a single V100.

This is really cool! j2002ba2, thank you very much for posting this reference point.
itod
Legendary
*
Offline Offline

Activity: 1974
Merit: 1077


^ Will code for Bitcoins


View Profile
August 22, 2019, 12:24:11 PM
 #18

Have anyone experience to change the script for multi thread or cuda GPU? Also for uncompressed public keys?

It's not trivial to implement it in CUDA. Read here about the problems expected: https://github.com/beranm14/pollard_rho/blob/master/report/main.pdf
Darmont33
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
August 22, 2019, 03:30:58 PM
 #19

Who need some code, I have it for Python 2.7!
This is my own code and I apologize for absolutely no-PEP. And for my English, I apologize too.
The code is not so fast, but my estimation is more optimistic - only 10000 years on average for the problem 105.
Tests with C++ (VS2013) leads to x2..x3 faster calculations only (single-thread), but much more complicated code.

The code is on my WebSite:
http://fe57.org/forum/thread.php?board=4&thema=1#1

This is my main interest. You are now informed that my site exists in the Universe!
To be more interesting: test problem 75 from pickachunakapika to drotika solution:
26970178626862821196031
(decimal)
I guess that the solution can be posted now because all deadlines are finished. Or I miss something and drotika was already posted the answer.

Very nice Smiley

For those who use python3, you may have to change a few things for the code to work:

1) for all print statements you need (), for example line 60
change this > print 'prime must be 3 modulo 4'
to this > print ('prime must be 3 modulo 4')

2) make sure you distinguish between integer division //  and float division /
for example, line 63
change this >  pw = (p + 1) / 4
to this >  pw = (p + 1) // 4

For case 32 I get
P-table prepared
tame and wild herds are prepared
6091.198 h/s
6119.991 h/s
6047.619 h/s
6028.418 h/s
6020.816 h/s
5995.830 h/s
6041.220 h/s
6026.008 h/s
6077.185 h/s
total time: 45.38 sec
SOLVED: 3093472814
Hops: 273742
tame and wild herds are prepared
5995.223 h/s
6044.420 h/s
5966.429 h/s
6050.819 h/s
total time: 68.41 sec
SOLVED: 3093472814
Hops: 137749
tame and wild herds are prepared
6038.017 h/s
5968.435 h/s
total time: 82.83 sec
SOLVED: 3093472814
Hops: 85546
165679.0 +/- 56093.66357263537
Average time to solve: 27.61 sec



Hi, how did you change line 160 for python 3?

if you mean this line:

print '%.3f h/s'%((Hops-Hops_old)/(t1-t0))
just add parenthesis
print ('%.3f h/s'%((Hops-Hops_old)/(t1-t0)))
do the same for all print statements.






Now everything works!
I didn’t put it there ()
thank Wink
BurtW (OP)
Legendary
*
Offline Offline

Activity: 2646
Merit: 1137

All paid signature campaigns should be banned.


View Profile WWW
August 24, 2019, 03:24:55 PM
Last edit: August 24, 2019, 05:24:31 PM by BurtW
 #20

We are about to release the first executable of our project for feedback.  There will be a Windows 64 bit cygwin version and a 64 bit Linux version.  The program is written in C using the standard OpenSSL library BIGNUM and EC_POINT objects.  The main thing we are interested in for this release of the program is the number of hops per second on various machines.  It seems to us the OpenSSL library is pretty slow.  Here is what three runs of the program, for a 35 bit key, looks like on my Windows laptop:

Code:
C:\ROO\Debug>roo

ver   = 121 with 128 bit integers
test  = 34
seed  = 1566657361 (randomly selected)
bits  = 35
a     = 0x400000000
b     = 0x7FFFFFFFF
P     = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
ba    = 0x3FFFFFFFF
k0000 = 0x9D8358B56E7B4401A459C0D828A75681
s     = 0x4AED21170
%     =   17.0723
s*G   = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
time  =    9.0817 mins (544899402700 nsecs)
hps   = 1968.057310

C:\ROO\Debug>roo

ver   = 121 with 128 bit integers
test  = 34
seed  = 1566658074 (randomly selected)
bits  = 35
a     = 0x400000000
b     = 0x7FFFFFFFF
P     = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
ba    = 0x3FFFFFFFF
k0000 = 0xC7B9A08889DCE535759804A45AE046BC
s     = 0x4AED21170
%     =   17.0723
s*G   = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
time  =    9.0295 mins (541767121800 nsecs)
hps   = 1986.290418

C:\ROO\Debug>roo

ver   = 121 with 128 bit integers
test  = 34
seed  = 1566658634 (randomly selected)
bits  = 35
a     = 0x400000000
b     = 0x7FFFFFFFF
P     = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
ba    = 0x3FFFFFFFF
k0000 = 0xDF1DD25825020380D574A71285072428
s     = 0x4AED21170
%     =   17.0723
s*G   = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
time  =    9.0542 mins (543253475900 nsecs)
hps   = 1981.294420

C:\ROO\Debug>
And here are three runs on my Linux machine.  Maybe I just need to buy a much faster computer.
Code:
burt@burt-MS-7640:~/ROO1/Debug$ ./ROO.exe

ver   = 121 with 128 bit integers
test  = 34
seed  = 1566661363 (randomly selected)
bits  = 35
a     = 0x400000000
b     = 0x7FFFFFFFF
P     = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
ba    = 0x3FFFFFFFF
k0000 = 0xE6A6C5C436EBA130AD726DC36B710275
s     = 0x4AED21170
%     =   17.0723
s*G   = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
time  =   15.0364 mins (902182961776 nsecs)
hps   = 1225.428980

burt@burt-MS-7640:~/ROO1/Debug$ ./ROO.exe

ver   = 121 with 128 bit integers
test  = 34
seed  = 1566663911 (randomly selected)
bits  = 35
a     = 0x400000000
b     = 0x7FFFFFFFF
P     = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
ba    = 0x3FFFFFFFF
k0000 = 0x1970EBB70E07E6F19E9D0390432AD93C
s     = 0x4AED21170
%     =   17.0723
s*G   = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
time  =   14.6529 mins (879173107944 nsecs)
hps   = 1219.290980

burt@burt-MS-7640:~/ROO1/Debug$ ./ROO.exe

ver   = 121 with 128 bit integers
test  = 34
seed  = 1566665966 (randomly selected)
bits  = 35
a     = 0x400000000
b     = 0x7FFFFFFFF
P     = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
ba    = 0x3FFFFFFFF
k0000 = 0x504A020DE4246A5FF39CD676B27DD5A3
s     = 0x4AED21170
%     =   17.0723
s*G   = 0x2F6A8148A62320E149CB15C544FE8A25AB483A0095D2280D03B8A00A7FEADA13D
time  =   14.7170 mins (883021823424 nsecs)
hps   = 1217.660480

burt@burt-MS-7640:~/ROO1/Debug$

Our family was terrorized by Homeland Security.  Read all about it here:  http://www.jmwagner.com/ and http://www.burtw.com/  Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
Pages: [1] 2 3 4 5 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!