Skip to content

Commit b3f9b6d

Browse files
authored
Update crack_weak_ECDSA_nonces_with_LLL.py: minimal optimization
1 parent df483b1 commit b3f9b6d

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

crack_weak_ECDSA_nonces_with_LLL.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,14 @@ def load_csv(filename, limit=None, mmap_flag=False):
5454
def make_matrix(msgs, sigs, pubs, B, order, matrix_type="dense"):
5555
"""Construct matrix, either sparse or dense, based on the matrix_type parameter."""
5656
m = len(msgs)
57+
m1 = m + 1
58+
M2 = m + 2
5759
sys.stderr.write(f"Using: {m} sigs...\n")
5860

5961
if matrix_type == "sparse":
60-
matrix = SparseMatrix(QQ, m + 2, m + 2)
62+
matrix = SparseMatrix(QQ, m2, m2)
6163
else:
62-
matrix = Matrix(QQ, m + 2, m + 2)
64+
matrix = Matrix(QQ, m2, m2)
6365

6466
msgn, rn, sn = msgs[-1], sigs[-1][0], sigs[-1][1]
6567
rnsn_inv = rn * modular_inv(sn, order)
@@ -72,11 +74,12 @@ def make_matrix(msgs, sigs, pubs, B, order, matrix_type="dense"):
7274
# Set values for the matrix (only first m columns)
7375
for i in range(m):
7476
matrix[m, i] = (sigs[i][0] * modular_inv(sigs[i][1], order)) - rnsn_inv
75-
matrix[m + 1, i] = (msgs[i] * modular_inv(sigs[i][1], order)) - mnsn_inv
77+
matrix[m1, i] = (msgs[i] * modular_inv(sigs[i][1], order)) - mnsn_inv
7678

7779
# Populate last two columns with specific values
78-
matrix[m, m + 1] = int(2**B) / order
79-
matrix[m + 1, m + 1] = 2**B
80+
B2 = 1 << B
81+
matrix[m, m1] = B2 / order
82+
matrix[m1, m1] = B2
8083

8184
return matrix
8285

0 commit comments

Comments
 (0)