不对称HMAC

Nee*_*asu 5 hash ssl digital-signature hmac

验证HMAC生成的哈希需要验证者知道密钥.所以它的对称性.除了SSL之外,什么是similer非对称解决方案?因为我希望签名像md5哈希一样小.并且生成和验证程序要轻松.我正在通过Rabin的Signature算法但是找不到任何实现或伪代码.

Dav*_*rtz 4

最小的非对称签名来自ECDSA 等椭圆曲线密码系统。ECDSA 签名方案要求签名长度约为同等安全性的对称密钥长度的四倍。因此,安全性与 128 位 AES 相当的方案将具有 512 位签名。这就是目前的最新技术——签名较小但安全性相同或更高的方案尚不清楚。

如果您不需要那么高的安全性,您可以使用 192 位曲线,这将产生 384 位签名。您可以使用 320 位签名(160 位曲线),并且仍然具有与 80 位对称密码相当的安全性。如果您确实不是特别关心安全性,可以使用 112 位曲线,提供与 DES 一样难以破解的 224 位签名。

以下是我为每个安全级别推荐的曲线:

SecP112R1:224 位签名,56 位安全级别
SecP128R1:256 位签名,64 位安全级别
SecP160K1:320 位签名,80 位安全级别
SecP192K1:386 位签名,96 位安全级别
SecP224K1: 448 位签名,112 位安全级别
SecP256K1:512 位签名,128 位安全级别

对于每条曲线,私钥与曲线的大小相同。公钥(压缩形式)比曲线大小大一点。签名是曲线大小的两倍。因此,对于 SecP256K1,私钥是 256 位,公钥是 257 位,签名是 512 位。这些是原始二进制值的最小大小。

注意:对于任何考虑安全性的目的,我认为 160 位曲线是最低限度。如果密钥是在很短的时间内生成、使用然后丢弃的,较小的曲线可能是合适的。为了长期安全,应使用 256 位曲线。在依赖该系统之前,应由有能力的专家对整个系统进行评估。