多摘要印证链(刍议)
本帖最后由 Sakarwei 于 2026-3-31 20:25 编辑验证身份构议:多摘要印证链:
这个方法用到了三个不同的摘要算法(当然可以自由选择摘要算法,只要安全即可)
- SHA256-HMAC
- SHA512
- SHA384
为了确保我的内容不被篡改,除了上述三个摘要结果以外,我还会额外提供三摘要搭配原文获得的摘要,比如“内容加三摘要的SHA256”。
我可以公开说明的是,上述三个摘要来自同一段文本,这段文本是人类可读的内容,来自书籍。这段话的语言可能是中文、英文、日语、德语、俄语和阿拉伯语中的一种,HMAC密码将会是一个词,可能是英文、日语罗马音或者汉语拼音(不包含空格和音调)
当我需要公开某些内容,签名,并且隐去作者署名信息,我就可以提供三个摘要结果,如下:
- SHA256-HMAC: ………………
- SHA512: ………………
- SHA384: ………………
- SHA256 of Content and hashes above: ………………
当我需要追加、更新或者修正这段内容,我将会提供三个摘要的原文及计算过程中用到的 HMAC 密码,用以描述我获得摘要组的方式,以此声明我的身份。我还会提供全新的摘要组,除非我认为这不再必要。
——————
众所周知的,最早的内容只能由最早内容作者编写。但当有人想要伪造更新或者修正,或者冒充作者发表撤销声明,在作者自身不遭遇窃密的情况下,找出摘要组的原文和HMAC密码将会是一个巨大的挑战,毕竟凭借当下的技术手段,想要破解这三个哪怕一个摘要算法,都是非常困难的,更何况还有另外两串摘要,以及HMAC密码,以及确保破解获得结果是同一段人类可读文本的这一关键限定条件。
当然,多摘要的目的是为了防止破解和形成相互印证,避免哈希碰撞。当有必要的时候,更多的摘要算法,可能会更安全,不过暂时不必要。以及,千万不要使用已被破解的摘要算法,比如MD5——使用这类算法可以为伪造者打开方便之门。
不过,这个方法只适用于单次认证,因为这一方法尚未设计验证上一层关联性和真实性的设计——如果在作者发表更新后,另外一个人模仿作者推出了更新,再去通过上一个来验证更新之真伪,这是行不通的。在这个时候,提交时序是关键——作者不遭遇窃密的情况下,只有作者知道上一段内容的摘要组原文,第二个提交的,就有可能参考了第一个摘要组的原文获得的。
我发现我似乎很难通过独立的信息证明上一条信息的真伪,因为不论我采用何种手段,冒充者可以使用同一种手段发表冒充内容,目前只能靠时序保证内容安全,如果能够篡改时序的话就很危险。
页: [1]