张三和李四手上各有一个信息,张三持有信息甲,李四持有信息乙,现在双方都不知道对方手上的信息,但是又想知道对方手上的信息,于是两人想交换信息。
但问题是,张三和李四两人都不信任对方,担心自己把自己手上的信息给对方以后对方拒绝把对方的信息给自己。也就是说,张三担心自己把信息甲给了李四以后,李四拒绝把信息乙告诉张三。李四也是担心同样的情况,担心自己把信息乙给张三以后张三拒绝提供信息甲。
现在的问题是,能否在不依赖第三人的情况下,张三和李四两人就能安全可靠地完成信息交换。即张三和李四都能得到对方的信息,如果其中一人不能得到对方的信息,那么另一人也无法得到对方的信息。
是否有方法能实现这样的信息交换呢?如果不能的话,希望能以数学形式给予严格的证明。
这个问题的来源是,我和樱町上的某人交换照片,交换身高,当然我们对对方都是信任的,于是都是一个人先用手机把信息发过来,另一个人再回复信息过去。不过我就由此想到这个问题了,如果我们两人不互信的话,如何安全地交换照片呢?
这问题我还没仔细想过,仅仅提出来而已,以后想到的话再更新。
———–2009年5月25日更新———-
其实这是没有办法做到的,请看最底楼的评论。
首先在没有看到对方的信息之前,无法验证对方信息的有效性。就照片这个例子来说,如果我没有看到对方的照片,自然不会知道对方给我的这段信息是不是对方的照片,说不定仅仅是一张风景画或者是其他人的照片呢。
于是最后还是要通过第三方确认双方信息的有效性,仅仅靠两个人是没法实现交换信息的。
原以为需要严格的数学证明才能给出一个可靠的答案,不过现在看来不用了嘛。
题外话,如果可以仅仅靠两人就可以完成信息交换的话,这样的一个问题有什么用呢?交换照片这种小事情就不值一提了。在下面的评论我也说了,如果这样的信息交换能实现的话,美苏两国就可以将换各自的核弹数量。可能美苏两国达成协议要停止冷战,但是协议中要求告知对方自己的核弹存量。这时候显然不能靠第三个国家来交换信息,必须要两国直接进行,而且需要做到,如果你不告诉我你有多少核弹的话,你也不会知道我有多少核弹。
其实如果当时想到这个核弹数量信息交换的问题的话就很容易想到,无法验证信息的有效性就是这种信息交换协议的拦路虎,就算你声称你有多少核弹,我又怎么能确认你真的有这么多核弹呢。
不互信的两个人之间如何交换信息
9 thoughts on “不互信的两个人之间如何交换信息”
F-22's Trace
greensea 的个人主页
sky-city
极夜奁
小樱之町
发现其实就算是必须为自己的信息负责,好像也不太好办
比如美苏核弹问题,要是有一方最后给出的数据是,宣称自己有10000000000000颗核弹,对方实际上就没有得到什么有价值的信息了。。
我发现yourname.com这种网站可以免费搞到很多的链接
然后SEO效果应该不错。
其实这个问题如果不要求有效性,只要给出一些数据的话,也未必完全不能解决。
或者说,这个问题变成:每个人都提供一些数据,之后每个人必须为这个数据负责。即使是给出一个很荒唐的完全无意义的数据也必须为它负责。
比如核弹的问题,显然就是每个人写在一张纸上,然后同时打开。
用算法实现的话,由于网络传输总会有个顺序问题,估计只能用某种基于概率的方法
分成多个部分传密钥
参考:http://www.matrix67.com/blog/archives/1179
里面的异或要想保证安全应该改成:用对称加密算法加密。而且这个密钥的编码方式应该充分利用所有的编码空间。
要是需要保证信息真实的话,简单的说必须有一种方法把信息分成若干个部分,每一部分都有办法单独验证是真实的,可以用所有的部分组合成完整的信息,但是单独拿出来却没什么用。
关键是怎么拆这个信息
交换核弹数量,明显没什么好处么
还不如让人在表面上感觉核弹的数量应该还算比较平衡,然后恐慌稍微小一点
拍死楼下两只萝莉(伪,实为小女生)
这问题只是由交换照片这个事情引出来的,但是并不是说这个问题只能用于交换照片
啊信息论这东西用处打着呢,比如说冷战的时候美苏两国交换核弹数量……
想那么多干嘛 囧
那干脆别交换了=。=
既然不信任交换了有什么意思
到最后即使是双方都得到信息了 信息真实性还有待考证不是么 囧
不信任的人给他看到照片也无所谓,因为不在乎,信任的人一般不存在这个问题。所以这个问题没有价值。
仔细想了一下认为不可以,因为你在看到对方的照片之前,完全没有办法确认对方所发的东西是真实的。事实上如果你没见过对方,就算你看到了一张照片,也不能绝对保证这是他本人的。
真要保证安全的话,必须要有一种方法,让人能大概确认对方所发的信息是真实的。
数学问题的解的话,通过转换成其它问题什么的,有可能可以保证绝对的安全。但是照片之类的东西,必须得让人自己来判断这个照片是否真实,也就是说双方必须提前看到一部分数据。所以这个方法的效果最多也就是,当一方中途退出的时候对对方来说还算比较公平。
比如,可以让分辨率越来越高。然后这也不需要什么加密算法了,只要交替的给出更高分辨率的图片就可以了。
当然这个问题可能还有一种情况,比如说,两个人通过其它途径知道了两个文件的hash值,然后索要hash值已知的那个文件的内容。
不过这类hash算法一般是设计成的不可逆的,知道一个hash值几乎没什么用,还是没办法判断没有完全解密的文件的真实性。
但是可以利用一下rsa这类的既可以加密又可以签名的算法,假设两个人通过其它方式已经知道了对方的文件的某个加密密文。具体懒得推了。
还有就是,可以把照片分成几个不同的部分,比如,色调,亮度,饱和度。还可以搞成打乱的拼图,以及原来的顺序。还可以把以上的数字信息加个扯淡的函数转换一下。然后想办法做到,只知道一种信息对人来说没什么用,但是能大概确认照片上是一个人。
……还是先睡觉吧
完全同意,其实偶写完这文第二天早上醒了躺在床上的时候想了想,也发现验证信息的有效性没办法解决
于是这问题没办法解决了,真糟糕,果然还是必须请第三方确认信息的有效性啊