1.Signer
阅读源码,同时nc一下我们会发现,该题是ECDSA签名。选项1是使用ECDSA对一个当前时间戳+salt进行签名,输出(R,S,HASH),。选项2是让我i们输入使用ECDSA对一个当前时间戳+get_flag进行签名的结果,输入正确获得flag。我们发现在签名过程中除了明文以外所用的参数都没有发生更改,所以我们可以使用k共享的方式对改签名进行攻击。其原理如下
已知ECDSA的签名过程是,所以当我们有两组同参数的签名明文hash1,hash2和签名值(r,s1),(r,s2),那么
,
。

所以我们首先拿到两组签名(R,S1,HASH1),(R,S2,HASH2),解出ECDSA签名的k,d。然后使用解出的k,d对当前时间戳+get_flag的hash值加密返回即可
import os
import random
from ecdsa import ecdsa as ec
from datetime import datetime
RNG = ra

最低0.47元/天 解锁文章
1448

被折叠的 条评论
为什么被折叠?



