代码之家  ›  专栏  ›  技术社区  ›  Michael

sha的sha作为复合对象的签名

  •  2
  • Michael  · 技术社区  · 7 年前

    我有一堆大的物体,它们的结构和向量。有时检查复合对象的完整性很重要;因为我使用的是sha256对象的“签名”。

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

    也就是说,向量的第一个方法签名 Object0, Object1, Object2 将是 sha(Object0 Object1 Object2) 第二种方法是 sha(sha(Object0) sha(Object1) sha(Object2)) .

    用第二种方法对复合对象进行签名要快得多。问题是,这种方法是不是计算 S的 S,增加碰撞的可能性?我是否因为散列对象而牺牲了任何安全性?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Hauleth    7 年前

    你所描述的是众所周知的 Merkle tree or hash tree . Git存储库基本上是巨大的Merkle树。

    这种结构的安全性和您所选择的哈希函数的图像前抵抗力一样强。

        2
  •  0
  •   Golo Roden    7 年前

    虽然我不能提供一个数学证明,但我会说:不,没关系。