君信一直都知道,佩利教授是一个非常守时的人,就像是一个机械表一样,到什么时间该干什么事情,一分一毫都不会差,很少有空闲的时间。所以对于他能够挤出半个小时的时间来和自己交谈,并粗略的接收了自己的论文,君信还是非常的感谢的。所以在时间到了之后,也没有按照中国的习俗挽留,而是将其送到了门口,看着他上了车之后,才回到了这间会客室里面。今天晚上,他要接待的可不是一批,还有另外的三个人。
不过君信比较庆幸的是,接下来的时间还是相对比较宽裕的,所以不用像和佩利教授交流的时候那样,全神贯注的注视着佩利教授的一举一动,而且也未见得会有什么作用,因为全程交谈下来,话语的主动权依旧在佩利教授那里。
不到十分钟的时间,约定好了的罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人就匆匆忙忙的来到了这里。
不等君信发问,作为三人之中带头的李维斯特就迫不及待的说道:“尊敬的先生,据数学系令人尊敬的奎伦教授说,你在我们三人研发的a公钥里面找到了一些错漏,这是真的吗?”
君信能够理解他的想法,所以也没浪费时间,直接点头应了下来,“没错,a码确实有一点的缺陷,虽然现在不是很明显,不过我在研究的时候,还是注意到了一些比较特别的情况。”
“可以谈一谈你的想法吗?”带着眼镜的伦纳德问道。
君信点了点头道:“正好现在有时间,我就简单的说一下我的想法吧。”
“请!”
“a公钥由三个部分组成,一个是是密钥长度,剩下的两个是一对相关的数。在产生密钥时,首先要使用概率算法来验证随机产生的大的整数是否质数,这样的算法比较快而且可以消除掉大多数非质数。假如有一个数通过了这个测试的话,那么要使用一个精确的测试来保证它的确是一个质数。”
“你的意思是,a算法的缺点在于它的随机质数的产生方****纳德扶了扶眼镜,神情严肃的问道。
“是的,对于产生随机大质数,其寻找质数的算法需要不能给攻击者任何信息,所以产生随机数的软件必须非常好。要求是随机和不可预测。当然,这两个要求并不相同。一个随机过程可能可以产生一个不相关的数的系列,但假如有人能够预测或部分地预测出这个系列的话,那么这个随机的程序就已经不可靠了。比如有一些非常好的随机数算法,但它们都已经被发表,因此它们不能被使用,因为假如一个攻击者可以猜出两个质数一半的话,那么他们就已经可以轻而易举地推算出另一半。”君信解释道,不过在他看来,这些东西完全是照本宣科。
“那么,你的方法呢?”一直没有说话的萨莫尔忽然开口问道。
君信挑了挑眉头说道:“严格的来说,我并没有什么办法。事实上,我在做统计学计算的时候,发现了a公钥算法的缺点的。我发现,不管我是怎么通过改变算法来达到改变产生随机大质数的产生方式,总会出现这样的问题:在700万个实验样本中有2.7万个公钥并不是按理论随机产生的。也就是说,或许有人可以找出产生公钥的秘密质数。虽然我发现绝大多数公钥都是按理论产生的,但是每一千个公钥中会有两个存在安全隐患。这给了攻击者极大的便利。”
“你是怎么做到的?”李维斯特问道。
“我在接触到了你们三人发表在计算机杂志上的相关论文,经过研究后,对你们采用的大质数的因素分解的算法产生了一定的兴趣,于是在学习了一段时间计算机理论之后,尝试着自己编写了几个能够产生随机大质数的算法,在借助了普林斯顿高等研究所的电子计算机进行数据处理后,总是发现这个问题。这些是我在做相关计算的时候罗列的一些算法和计算机出具的判断报告!”
说着,君信将自己早就放在手边的计算算法代码和计算机判断的报告递给了离自己最近的伦纳德。一边解释说道:“关于算法的问题,我是通过了计算机进行了验证,目前来说并不存在问题,至少在我使用这些大质数的时候是不存在问题的,但是其结果仍然有无法改变的偏差,确实很让我惊讶。”
“确实存在这样的问题,我们在研究的时候只是算法本身考虑了问题,并没有去看算法之外的统计学上的问题,这是我们的失误。”李维斯特满怀歉意的说道。
君信摇了摇头说道:“就我所知,a公钥固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用one-ion对文档作hash处理,或同时使用不同的签名算法。”
“所以我并不认为统计学上的问题不可以避免,或者总能找到办法解决不安全密码所带来的风险。但是现在的问题:算法之外的a公钥该怎么办?”君信摇了摇头说道。
“我们最近研究的课题就是于此相关的!”李维斯特在听完了君信的话之后,终于开始拿出干货来了,“不过我倒是觉得你是在和我们推销你的量子通讯问题,是吧?”
“香农先生提出过一次一密是最