大家好,我是轩辕。最近在追一部电视剧:《风起陇西》。虽然这部剧争议多多,评价褒贬不一,收视率翻车,但依然挡不住作为三国迷的我的好奇心。毕竟在这个都市漂浮剧、童话木偶剧、抗日剧泛滥的时代,这已经是一股清流了。以往的三国题材电视剧,主要讲述的是从东汉末年黄巾起义到天下还晋一百年间各路英雄的故事。从宏观上看。但这一篇《风起陇西》将视角转向了特定时期的小人物,以诸葛亮第一次北伐的失败作为介绍魏蜀情报机关斗智斗勇的故事国家。所以,这其实是一部借鉴了三国历史背景的古装谍战剧。故事的开头就是熟悉的迷街阁和杀马谡。电视剧里的设定,造成这个结果的一个重要原因就是蜀汉得到的情报是错误的,取而代之的是潜伏在里面的曹魏奸细。情报内容作为机密中的机密,自然不能直接明文传输,加密是必不可少的一步。剧中情报内容的加密和保护,是通过一种叫做“密语刻印”的东西来完成的。听起来很荒谬,其实就是一块木头,上面的位置挖了一些洞,然后在洞的位置写入要传输的内容,最后在其他空白位置写入不相关的干扰信息,实现“加密”。不同的间谍使用不同的雕刻。作为潜伏在曹魏的奸细“白帝”,自然有着属于自己的专属刻印。或许编剧也觉得这样有些幼稚,于是又加了几块板子,然后打乱了顺序,按照天干地支来确定排列顺序,破译信息内容。但实际上,不管是不是专属秘语刻印,只要有人得到,都可以解密、伪造、替换。因为从源头上看,加密和解密使用的是同一种方法,一旦方法泄露,就无法辨别真伪。从现代密码学的角度来看,这其实是一种对称加密,加密和解密使用同一个秘钥。在我们现代社会,如何证明某物是否被篡改,在计算机领域也有广泛的应用。这个东西就是“数字签名”技术。想一想一个场景:一个男孩给一个女孩发了一封电子邮件,但是网络中可能有一个竞争对手窃取了数据并修改了内容。女生收到邮件后,怎么知道邮件确实是男生发的,有没有被篡改过?你可以这样做:当男孩发送邮件时,计算邮件的哈希值,稍后将其附加到电子邮件中。女孩收到后,也会计算邮件的hash,与后面附上的hash进行比较,就可以知道邮件是否被篡改过。但如果中间的窃取者不仅修改了电子邮件的内容,还修改了附加的哈希值,那么就无法区分了。现在,又需要调入一个神器,下面有一句话:接收方收到密文后,通过秘钥解密还原出原来的内容。这是一个很常见的加解密过程。但是请注意,现在有一种神奇的加密算法,加密所用的密钥与解密所用的密钥是不同的。这就是:非对称加密算法。在非对称加密算法中,两个密钥之一是公开的,另一个是私有的。公钥称为公钥,私钥称为私钥。发送方可以用公钥加密,接收方只能用自己的私钥解密,别的不行,公钥也不行。有了这个神器,我们再来看一开始的场景。男孩事先准备好一对公私钥,把公钥告诉女孩,自己留一把私钥。发送邮件时,在原有基础上加密哈希值,不要裸奔。女孩收到后,用男孩事先给的公钥解密hash值,与邮件本身计算出的hash值进行比对,就知道这封邮件是不是男孩发的。如果有人在下单过程中篡改了内容,女孩将无法使用公钥解密哈希值。这个加密的哈希是一个数字签名!但实际的数字签名并不只有哈希值,还有一些其他信息,但大体原理是类似的。有了数字签名,你再也不用担心你的对手会在中间偷偷交换邮件。当然,如果偷偷更改了姑娘的公钥,那么……这么一想,如果诸葛丞相有了数字签名,北伐就完成了!
