I have one (or depends of messages from you ,maybe more):
I have impelemented Lattice attack for signatures ( I would like to try solve puzzle where privatekeys is in 2**129 and 2**130)
Of course from one signature it is problem, but I have implemented " zero knowledge signature for targeting pubkey"
at the moment it works when privatekey is less than 2**130 and nonce is less than 2**130
the problem is that normal "LLL attack " with and without BKZ, work only with additional implementatation as enumeration as below:
the question : could anyone of you explain why?
where _list_ouputs is a list of possible_key from LLL as output.
enumeration algo:
def alg_1(list_outputs):
results = []
for number1 in list_outputs:
for number2 in list_outputs:
for number3 in list_outputs:
result = (number1 - number2 + number3)%modulo
if result not in results:
results.append(result)
print("result additional alg_1:=",result)
if result==privatekey:
print("FOUNDED privatekey",result)
def alg_2(list_outputs):
results = []
for number1 in list_outputs:
for number2 in list_outputs:
result = (number1 + number2)%modulo
if result not in results:
results.append(result)
print("result additional alg_2:=",result)
if result==privatekey:
print("FOUNDED privatekey",result)
def alg_3(list_outputs):
results = []
for number1 in list_outputs:
for number2 in list_outputs:
result = (number1 - number2)%modulo
if result not in results:
results.append(result)
print("result additional alg_3:=",result)
if result==privatekey:
print("FOUNDED privatekey",result)
example of work:
private key is 794092922831784592461093938556654640141
TEST1
bits -256
k_weights = [X]*self.m 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
X 1
possible key: 132057058005024418619288405064413771225 115792089237316195423570985008687907852705507221069879963985874736453747723112
possible key: 115792089237316195423570985008687907852378245048447086459530312018845818113371 459319230627817923074851122672343380966
possible key: 115792089237316195423570985008687907852713018740651053128916554834730129372546 124545538423851253688608306788032121791
result additional alg_1:= 132057058005024418619288405064413771225
result additional alg_1:= 459319230627817923074851122672343380966
result additional alg_1:= 124545538423851253688608306788032121791
result additional alg_1:= -195205114617769085836274312543515838516
result additional alg_1:= -202716634198942250766954410819897487950
result additional alg_1:= 139568577586197583549968503340795420659
result additional alg_1:= 466830750208991088005531220948725030400
result additional alg_1:= 786581403250611427530413840280272990707
result additional alg_1:= 451807711046644758144171024395961731532
result additional alg_1:= 794092922831784592461093938556654640141
FOUNDED privatekey 794092922831784592461093938556654640141
result additional alg_1:= 117034018842678088757928208511650472357
result additional alg_1:= -210228153780115415697634509096279137384
result additional alg_2:= 264114116010048837238576810128827542450
result additional alg_2:= 591376288632842341694139527736757152191
result additional alg_2:= 256602596428875672307896711852445893016
result additional alg_2:= 918638461255635846149702245344686761932
result additional alg_2:= 583864769051669176763459429460375502757
result additional alg_2:= 249091076847702507377216613576064243582
result additional alg_3:= 0
result additional alg_3:= -327262172622793504455562717607929609741
result additional alg_3:= 7511519581173164930680098276381649434
result additional alg_3:= 327262172622793504455562717607929609741
result additional alg_3:= 334773692203966669386242815884311259175
result additional alg_3:= -7511519581173164930680098276381649434
result additional alg_3:= -334773692203966669386242815884311259175