利基,可能天真的数字消息签名

eme*_*ery 1 cryptography digital-signature

我的目标是轻量级的消息签名,与PGP相当,除了只需要一个私钥,没有公钥密钥.目标仅仅是防止在两个可信实体之间篡改字符串.它从受信任的来源开始,通过互联网,然后到达另一个受信任的目的地.

我想知道我的天真方法是否安全.因为签名算法实际上不是强制性的.

1)源和目的地都有一个"私钥",它只是由uuidgen生成的一个非常随机的数字.

2)Source有一个它打算发送到目的地的字符串.

3)Source将有效负载字符串与私钥连接起来,然后sha1是结果,以产生签名.

4)生成的纯文本值+签名成对发送到目的地."你好// SIG:12345ABCDEFG"

5)Desination接收签名变量,用其已知的私钥生成签名,并再次比较与接收的数据配对的签名.如果匹配,则接受.

此变体将包含舍入到小时的unix时间戳,使签名到期.

我担心的是,如果选择一组数据有效载荷并使用这种方法分析得到的签名,那么强制私钥是可行的.

谢谢

dds*_*dso 6

看起来你想要实现的非常类似于HMAC(维基百科上的文章).

对于HMAC,您执行一些额外步骤以将消息和密钥组合到散列中.这使得产生的散列比仅通过简单地连接原始消息和秘密密钥以及散列的散列更难以进行攻击.

如果你想尽可能多地使用加密标准(在我看来 - 几乎总是一件好事),我会按照HMAC定义规定的方式来做.为了使签名过期,我只需将过期日期附加到消息,然后构建该组合字符串的HMAC.