在各种介绍密码学与协议的教材里都有关于零知识证明的话题——如何让你相信我已经找到了一个解,但又不告诉你这个解是什么。最经典的例子便是关于Hamilton回路的问题——存在这样一种巧妙的协议,可以让你相信我已经找到了某个图的Hamilton回路,而你却完全得不到关于这个Hamilton回路本身的任何信息。今天我又看到了一个非常不错的零知识证明实例。给定一个平面图,你需要给每个区域染一种颜色,使得任两个相邻的区域颜色不同。如果你仅用三种颜色就能做到这一点,我们就说这个图是可以三染色的。目前我们还没有一个判断平面图可否三染色的好办法,寻找一个平面图的三染色方案并不是一件容易的事。现在,假如你已经找到了某个给定平面图的三染色方案,你想向别人炫耀自己的成果,但又不想透露关于你的染色方案的任何信息。你能否设计一种协议使得对方能够相信你确实找到了一种三染色方案而又不告诉他这种方案是什么呢?
假设平面图一共有n个区域,从1到n分别编号。注意,如果你有了一种三染色方案,置换原方案中的颜色,你会立即得到另外五种染色方案。从六种(本质相同的)染色方案中随机选一种染色方案,用防欺骗的承诺协议对每个区域各自用的什么颜色进行加密(比如“区域编号+随机字符串+颜色代码”的md5值),然后把n份密文一同发给对方。对方选取原图中的相邻两块区域,要求查看它们的颜色。把他所选的两个区域编号所对应的原始信息告诉他,让他验证其颜色确实是合法的,并且这两个字符串的md5值正好与预先给他的相同。反复执行上述操作,直到对方确信你的确掌握有一种三染色的方案。
来源:http://math.ias.edu/~virgi/greatcs/Digitalenvelopecrypto.pdf
沙发
没怎么明白
板凳?
仍然没看懂
so NB
82还骗我说最近很忙。。
是我,lee超
现汉〖不错〗:不坏;好。
“不错”和“好”的程序有区别吗?
好:不错;
很好:很不错;
挺好:挺不错;
顶好:顶不错;
最好:?不错;
似乎没有“最不错”的说法。
我看了好几遍,请问博主是不是这样:
我每次都从6种等价的图中选一种,做md5,发给测试人,测试人问我某相邻两个区域,我把位置、随机码、颜色都告诉他
然后,从6种等价图中换一个图,换随机码,再重复上述过程
是这样吗?
森哥,麻烦复一下我之前的留言啊~~~~
这个容易hack掉吧
不错,顶了!
贵站很不错啊,比我的强多了哈,佩服佩服。
可以换一下内页的友情链接吗?
我的网址是 http://www.romembrane.cn 百科全书
现在是PR2,收录还不错。
呵呵 好像很有想法!再试下