我需要使用非对称密钥加密方案签署一个小字符串。 签名将与签名字符串一起存储在一个小芯片上。我没有多余的空间(约60字节用于签名+字符串),因此生成的签名应该尽可能小。 我四处寻找如何做到这一点,我发现我可以使用RSA-SHA1,但生成的带有512位密钥的签名是64字节。这有点多了。 我可以使用什么安全算法来生成小的非对称签名? 如果我存储RSA-SHA1签名的SHA1总和,然后再验证它是否仍然是安全的?
答案 0 :(得分:0)
你在这里碰到的是good hash function的一个属性 - 返回值应该很长以防止birthday attacks(其中两个不同的输入导致相同的输出哈希) 。通常优选128-512位,因此SHA-1签名为您提供512位。
与密码学中的所有内容一样,安全性是一种权衡。在使用非对称签名时,您是否考虑过使用RSA-MD5作为签名选项?这将给你一个更短的128位返回,但这需要注意MD5被认为是破碎的,并且通常会被移走。