代码之家  ›  专栏  ›  技术社区  ›  Tom Leys

生成64位签名的某种安全方法是什么?

  •  3
  • Tom Leys  · 技术社区  · 16 年前

    我想 sign 一个设备,我有64位将我的签名存储在设备中。这个设备有一个MAC地址和一些其他细节(大约值30字节),我可以通过修改来创建我的签名。

    谢谢

    编辑 : 谢谢大家的建议。听起来好像没有 保护

    3 回复  |  直到 16 年前
        1
  •  5
  •   Can Berk Güder Pugalmuni    16 年前

    哈希函数和数字签名是 非常 不同的事情。

    数字签名的大小取决于基础哈希函数和密钥长度。所以从理论上讲,您可以创建一个RSA实现来生成64位签名,但这是一个非常弱的签名。

    编辑: 是的,我是个密码学家。

    编辑2: 然而,如果您只需要一个散列函数,您可以按照Fernando MiguÃlez的建议查看elf64或RIPEMD-64。

    编辑3: 进行计算时,您需要在ECC中使用16位密钥来生成64位签名,这是非常弱的。对于ECC,小于128位的任何内容都可视为弱。对于RSA,这是1024位。

        2
  •  3
  •   Fernando Miguélez    16 年前

    基本上,您需要的是64位 cryptographic hash funcion ,如Ripemd-64或elf-64。然后用加密方法加密散列,得到一个64位签名。唯一的问题是,从非密码分析师的角度来看,64位提供的签名要比典型的超128位散列弱得多。尽管如此,它仍然适合您的应用。

        3
  •  0
  •   Martin Beckett    16 年前


    散列函数生成的字节数是相当任意的——这显然是空间和唯一性之间的折衷。他们使用的签名长度没有什么特别之处。

    编辑-抱歉,我认为MD5返回32字节-它实际返回16字节,但通常写为32十六进制数字。