天才一秒记住【狂风中文网】地址:https://www.kfzw.net
为了使用对称密码,通信双方需要一种安全的密钥交换方式。
一直以来,我们默认加密代码有不可避免的原则——要运用一套密码,双方需要用某种方式交换相应的密钥,并对敌人保密。
的确,有人可能把它当作了数学常识。
这种假设恰恰会令一个数学家心生疑惑。
本质上,我们面对的是一个数学问题,因而人们会预期这样一条“原理”
有着坚实的基础,甚至表达成某种形式的数学定理。
然而,并没有这种定理。
之所以没有,是因为这条原理根本就是不对的。
下面这个思想实验可以证明。
从爱丽丝那里传送一条机密信息给鲍勃,这本身并不一定需要交换一份密钥,因为他们可以按下面的程序来操作。
爱丽丝写好她要给鲍勃的明文信息,然后将它放进一个盒子里,再挂上她自己的锁,只有爱丽丝有锁的钥匙。
她接着将盒子寄给了鲍勃。
当然,鲍勃没法打开它,不过他可以给盒子加上第二把锁,而只有他一个人有这把锁的钥匙。
接下来,盒子被寄还给爱丽丝,她会打开自己的锁,再次把盒子寄给鲍勃。
这次,鲍勃便可以打开盒子,读到爱丽丝的信息。
寄送过程中,我们知道伊芙即使想从中作梗,也没办法看到内容,因此信息是安全的。
这样,一条机密信息便可以通过不安全的渠道安全地传送,却不需要爱丽丝和鲍勃交换密钥。
这个假想的情境说明,在密信的传递过程中,没有定律规定密钥必须转手。
在真实系统中,爱丽丝和鲍勃的“锁”
可能是他们各自对信息的编码,而不是一个分隔潜在窃听者和明文的实体设备。
爱丽丝和鲍勃可以利用这个初始的交换来建立一套普通的对称密码,接下来这套密码便可以掩藏未来的所有通信。
其实在真实世界中,安全的通信渠道经常是这样建立起来的。
不过,用个人代码代替实体的锁并不是那么容易。
解读(即解锁)的过程需要爱丽丝在先,鲍勃在后。
不像普通的锁,爱丽丝和鲍勃的编码可能会相互干扰,从而导致这一过程无法进行。
但是,1976年,惠特菲尔德·迪菲(WhitfieldDiffie)和马丁·赫尔曼(MartinHellman)首次公开证明了这个方法是有效的。
另一种方法是不对称密码(asymmetriccipher)或者说公开密钥加密(publickeycryptography)的思想。
在这个方法中,每个人发布他们自己的公开密钥,要发送给另一个人的信息都用他的公开密钥来加密。
但是,每个人还有一份私人密钥。
如果没有私人密钥,使用对应的公开密钥加密的信息就没法解读。
如果接着用挂锁比喻的话,爱丽丝提供给鲍勃一个盒子用来装他的明文信息,外加一只开着的锁(她的公开密钥),而只有她自己手里握着钥匙(她的私人密钥)。
看起来,建立一个实用的公开密钥系统需要满足太多条件,因为安全性和易用性这两个要求密不可分,但似乎又互相矛盾。
不过,快速、安全的加密方法已经在互联网上广为应用了,即便大家很少意识到它的存在和它为人们提供的保护。
让这一切得以实现的,说到底都是数,尤其是素数。
用素数的秘密守护我们的秘密
回忆一下,我们把每条明文信息都看作一个单独的数,我们自然努力想用其他数来掩盖它。
最常用的方法是用所谓的RSA(Rivest-Shamir-Adleman)加密过程,这是由它的创始人罗纳德·李维斯特(Ro)、阿迪·萨莫尔(AdiShamir)和莱昂纳德·艾德曼(LeonardAdleman)在1978年发表的。
在RSA中,每个人的私有密钥由三个数p,q,d组成,p和q是(非常大的)素数,而第三个数d是爱丽丝保密的解密数(degnumber),我们到下面合适的时候再解释它。
爱丽丝公开给大家的是两个秘密素数之积n=pq,以及一个加密数e(这是一个普通的整数,与第2章中提到的特殊常数e没有任何关系)。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!