我想要sign一个设备,我有 64 位来在设备中存储我的签名。该设备有一个 MAC 地址和一些其他详细信息(大约 30 个字节),我可以修改以创建我的签名。
如果可能,我希望该方法是单向的,这样我就可以在不知道如何创建有效签名的情况下验证签名是否有效。大多数公私钥都有此功能,但它们生成的签名长度为 48 字节(我只有 8 字节)。
使用 Python 实现是一个优势。
谢谢
编辑: 谢谢大家的建议。听起来好像没有安全的方法来做到这一点,只有一种对攻击者来说不太方便的方法。我可能会使用加密哈希与 secret 位混洗相结合。这将与我的(非常弱的)“安全性”中的任何其他链接一样安全。
最佳答案
哈希函数和数字签名非常不同。
数字签名的大小取决于底层哈希函数和 key 长度。因此,理论上,您可以创建一个生成 64 位签名的 RSA 实现,但这将是一个极其弱的签名。
对于较小的 key 长度,您可能需要查看椭圆曲线加密技术。
编辑:是的,我是一名密码学家。
编辑2:但是,如果您只需要哈希函数,您可以按照 Fernando Miguélez 的建议查看 elf64 或 RIPEMD-64。
编辑 3:计算一下,您需要使用 ECC 中的 16 位 key 来生成 64 位签名,这是非常弱的。对于 ECC,任何小于 128 位的都可以被认为是弱的。对于 RSA,这是 1024 位。
关于security - 生成 64 位签名的某种安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/279418/