Clear it in 3 steps
-
Start the environment
-
Investigate the target
-
Submit the flag
signatures.json contains two DSA signatures that reused the same nonce. Recover nonce k and private key x from the signature difference, then decrypt the flag using repeated SHA256(str(x)) as an XOR key.
Equal r values indicate nonce reuse; all arithmetic is modulo q
k=(h1-h2)*inverse(s1-s2,q) mod q
x=(s1*k-h1)*inverse(r,q) mod q; verify pow(g,x,p)==y