Skip to content

Commit

Permalink
'Refactored by Sourcery'
Browse files Browse the repository at this point in the history
  • Loading branch information
Sourcery AI committed Nov 27, 2023
1 parent c566377 commit c1e6ebe
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 14 deletions.
11 changes: 4 additions & 7 deletions crack_weak_ECDSA_nonces_with_LLL.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
import sys
#import ecdsa
import random
from sage.all_cmdline import *
from sage.all_cmdline import *
import gmpy2

# order is from secp256k1 curve it can be used any other.
order = int(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141)
order = 115792089237316195423570985008687907852837564279074904382605163141518161494337


def modular_inv(a,b):
Expand All @@ -24,7 +24,7 @@ def load_csv(filename, limit = None):
pubs = []
fp = open(filename)
n=0
if limit == None:
if limit is None:
limit = -1
for line in fp:
if (limit == -1) or (n < limit):
Expand Down Expand Up @@ -76,7 +76,6 @@ def privkeys_from_reduced_matrix(msgs, sigs, pubs, matrix):
keys.append(key)
except Exception as e:
sys.stderr.write(str(e)+"\n")
pass
return keys


Expand All @@ -98,11 +97,9 @@ def main():

if run_mode == "LLL":
new_matrix = matrix.LLL(early_red=True, use_siegel=True)
keys = privkeys_from_reduced_matrix(msgs, sigs, pubs, new_matrix)
else:
new_matrix = matrix.BKZ(early_red=True, use_siegel=True)
keys = privkeys_from_reduced_matrix(msgs, sigs, pubs, new_matrix)

keys = privkeys_from_reduced_matrix(msgs, sigs, pubs, new_matrix)
display_keys(keys)

if __name__ == "__main__":
Expand Down
15 changes: 8 additions & 7 deletions weak_signature_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,19 @@

if mode == 'MSB':
# generate n most significant bits, nonce must be less than order
nonces = [fixed_bits + random.randrange(1, 2 ** bits) for i in range(n)]
nonces = [fixed_bits + random.randrange(1, 2 ** bits) for _ in range(n)]
else:
# generate n least significant bits, nonce must be less than order
nonces = [random.randrange(2 ** bits, order) + fixed_bits for i in range(n)]
nonces = [random.randrange(2 ** bits, order) + fixed_bits for _ in range(n)]

msgs = [random.randrange(1, order) for i in range(n)]
msgs = [random.randrange(1, order) for _ in range(n)]
sigs = [priv_key.sign(msgs[i],nonces[i]) for i in range(n)]

def inttohex(i):
tmpstr = hex(i)
hexstr = tmpstr.replace('0x','').replace('L','').zfill(64)
return hexstr
tmpstr = hex(i)
return tmpstr.replace('0x','').replace('L','').zfill(64)

for i in range(0,len(msgs)):
print("%s,%s,%s,%s,%s" % ("1111",inttohex(sigs[i].r),inttohex(sigs[i].s),inttohex(msgs[i]),"0000"))
print(
f"1111,{inttohex(sigs[i].r)},{inttohex(sigs[i].s)},{inttohex(msgs[i])},0000"
)

0 comments on commit c1e6ebe

Please sign in to comment.