Lattice-attack || If Know 4bit nonce to predict 'd' MSB 4bit or LSB 4bit <reverse> If Know 4bit 'd' to predict nonce MSB 4bit or LSB 4bit
private = 0x
2966130c44669056359323ed640f0d9458a0f82fe0328bdc8ee72599c3602da
epub = private*G
nonce = 0x
1f18f5c6507511b559fb5e6d58b8af0fac075b922acab1acf3ca415de73a628
2message= 0x9765f3ff01c9a476a71d8ae8b452a876e0784a76526f46da7b2de5984f4bf851
r,s,z = sign(private,nonce,message)
r = 0xd57a46d3672b3d428a5d8ccb91ced3400959127f76f15a7d99a1002e690dec20
s = 0x95e836298458e00a6f11e291cd7e45003b3ffd886a0048d52f9665a6a5603ad6
z = 0x9765f3ff01c9a476a71d8ae8b452a876e0784a76526f46da7b2de5984f4bf851
pub= 0x30c7d40d49e6e639ef0a33229420fde736712073c1230513297a637207c54490 0x3331b0b1ef655e237bcc2e6f6664b6f1567a0696c6e7aad4b1d15507ef4f27e5
Only one signature 4-bit use to MSB or LSB accurate guess.MY ENGLISH LITTLE SPEAK
I PAY $1000
Use this code formula to change or modify to achieve this goal.
if bits_type == "LSB":
for i in range(num_sigs):
lattice[i, i] = 2 * kbi * n_order
if hash_val is None:
hash_i = sigs[i]["hash"]
lattice[num_sigs, i] = (
2
* kbi
* (
inv(kbi, n_order)
* (sigs[i]["r"] * inv(sigs[i]["s"], n_order))
% n_order
)
)
lattice[num_sigs + 1, i] = (
2
* kbi
* (
inv(kbi, n_order)
* (sigs[i]["kp"] - hash_i * inv(sigs[i]["s"], n_order))
% n_order
)
+ n_order
)
else:
# MSB
for i in range(num_sigs):
lattice[i, i] = 2 * kbi * n_order
if hash_val is None:
hash_i = sigs[i]["hash"]
lattice[num_sigs, i] = (
2 * kbi * ((sigs[i]["r"] * inv(sigs[i]["s"], n_order)) % n_order)
)
lattice[num_sigs + 1, i] = (
2
* kbi
* (
sigs[i]["kp"] * (curve_card // kbi)
- hash_i * inv(sigs[i]["s"], n_order)
)
+ n_order
)
lattice[num_sigs, num_sigs] = 1
lattice[num_sigs + 1, num_sigs + 1] = n_order
return lattice
Is anyone already trying this?
Puzzle 135: I have the vulnerable signatures 30 MSB or LSB 4 bits I know, but 4 bits need 87 signatures, so my 30 signatures used to predict every balance signature: 4bit MSB or LSB.
My goal is also only one signature 4-bit use to MSB or LSB accurate guess.