$ H $具有抗碰撞性,即很难找到$ x \ neq y $,使得$ H(x)= H(y)$,而
$ H $是同态的,即$ H( x * y)= H(x)\ star H(y)$。
是否存在此类同构哈希函数甚至同构签名方案的实际实现(即,我们可以“添加“有效签名以获取两个消息的“和”的签名)?
甚至更好,甚至没有实现此功能的库吗?
#1 楼
在这方面有很多研究。我只给您一个小样本:使用GPU加速同态哈希。赵开永ICC2009。
传递签名方案。西尔维奥·米卡利(Silvio Micali),罗纳德·里维斯特(Ronald Rivest)。 CT-RSA2002。
同态签名方案。 Robert Johnson,David Molnar,Dawn Song,David Wagner。 CT-RSA2002。
可消毒签名。朱塞佩·阿泰尼斯(Giuseppe Ateniese),丹尼尔·H·周(Daniel H.Chou),布雷诺·德·梅代罗斯(Breno de Medeiros),吉恩·图迪克(Gene Tsudik)。 ESORICS2005。
二进制域上的线性同态签名和基于格的签名的新工具。丹·博内(Dan Boneh),大卫·弗里曼(David Freeman)。 PKC2011。
多项式函数的同态签名。丹·博内(Dan Boneh),大卫·弗里曼(David Freeman)。 Eurocrypt2011。
同态MAC:用于网络编码的基于MAC的完整性。 Shweta Agrawal,Dan Boneh。 ACNS2009。
关于网络编码的同态签名。 A.云。 IEEE Trans。电脑。
我说过,这只是该领域可用研究的一小部分。在Google学术搜索中,我花了大约5分钟的时间找到了大部分内容。我建议您先进行文献综述,以熟悉该主题的研究文献:搜索以找到尽可能多的相关论文;阅读每篇此类论文;对于找到的每篇论文,请阅读相关的工作部分和参考书目,以尝试识别其他相关的论文,并使用Google学术搜索或其他网站查找引用该论文的其他相关论文。对于找到的每一个其他相关论文,请重复该过程。
完成此过程后,您应该可以更好地提出针对性更窄,具有特定要求集合的问题-或者,如果幸运的话,您可能已经找到了解决文献中已经描述的特定问题的解决方案!
评论
$ \ begingroup $
@sashank:请注意,尽管我已经对您的原始(未编辑)OP进行了评论,但给出了否定的答案。
$ \ endgroup $
–沉莫功
2013年3月2日14:26
#2 楼
我知道至少有一个安全的同态哈希函数。可在以下文件中找到该文件:“用于内容分发的无速率擦除代码的即时验证”:http://pdos.csail.mit.edu/papers/otfvec/paper.pdf
该论文发表在2004年IEEE安全与隐私研讨会上。
第四节介绍了该方案,第四节IV.D和IV.E小节提供了效率改进(分别是计算和空间)。 。它的安全性基于难以在大的组中找到离散对数的困难。该方案是否“实用”取决于所需的安全级别,应用程序域和用户的容忍度。
对于此方案,我没有公开可用的库实现“知道”(作者的网页均未提供任何代码)。在论文中指出,作者自己使用gmp库来实现它。您也许可以联系他们并获得其实现的副本。但是,自从该论文在十年前发表以来,他们仍然不太可能拥有代码
#3 楼
树形列表(例如位串)的散列函数,其列表内容具有每个concat乘以对数的日志数。不论列表内容的内部结构如何,这将为每个相等的树列表分支提供相同的哈希值,并且不考虑其内部结构(并在每个下一个分支中累积乘以2的乘积来计算指数),并且叶可以是bit0 / bit1或任何secureHash的随机素数。我怀疑它的安全cuz subsetSum是nphard。最简单的情况是位列表。给定4192位随机素数(bit0 bit1 x y)和要哈希的位串b,评论
$ \ begingroup $
如果这是一个同态散列,则同形的运算符$ * $和$ \ star $是什么?
$ \ endgroup $
–雨披
17年6月18日在17:28
$ \ begingroup $
列出concat(如加号),如果要进行n次(如乘)操作,则可以对对数的对数进行计数,例如通过平方来进行指数运算。
$ \ endgroup $
– Ben Rayfield
17年6月19日在20:39
评论
据我所知,目前还没有实际有效的完全同态加密的实现方法。因此,对于您的问题,答案显然是负面的,至少对于良好的哈希方案,恕我直言。仅供参考,我不久前在Meta上发布了一个有关此类问题以及是否应允许使用的问题。也许您想权衡一下?
sashank,我认为您可能需要更精确地指定同态哈希的含义。
@ D.W。,sashank:我编辑了问题,以包含对此处搜索内容的解释。
您可能想要添加其他约束;身份功能学徒地满足列出的所有要求;很难(不可能)用$ I(x)= I(y)$来找到$ x \ neq y $,并且对于任何操作$ \ star $,即$ I(A \ star B),它都是同态的= I(A)\ star I(B)$