SHA of SHA 作为复合对象的签名

3
我有许多大型对象、结构体和向量。有时检查复合对象的完整性很重要,为此我使用对象的Sha256“签名”。

定义复合对象的签名至少有两种方法:通过计算组件连接的sha或通过计算组件的sha连接的sha。

也就是说,对于向量Object0、Object1、Object2的第一种方法签名将是sha(Object0 Object1 Object2),而第二种方法将是sha(sha(Object0) sha(Object1) sha(Object2))。

在我所做的工作中,使用第二种方法给复合对象签名更快。问题是,这种计算sha的sha方法是否增加了碰撞的可能性?因为我哈希的不是对象本身,而是对象的哈希,所以是否会牺牲任何安全性?

2个回答

2
您所描述的是Merkle树或哈希树的已知结构。Git存储库基本上是一个巨大的Merkle树。
这种结构的安全性取决于您选择的哈希函数的预像抗性。

0

虽然我无法提供数学证明,但我认为:不,这并不重要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接