今日启发:
Elton:
《码书》(Ⅸ)
[英]西蒙·辛格
智能时代
在智能时代字母不再是加密的最小单位了,因为不论是手工的还是机械的,都是用字母来替换字母,但是计算机是二进制的,一切的信息都可以用0和1来表示。每个字母在计算机里边其实也是一串0和1组成的代码,目前通用的代码叫「美国标准信息交换码」,每个字母都是用7位0101的代码来表示。比如小写的a是1100001,大写的A是1000001。
我们用计算机加密的时候,面对的就不再是一个个字母,而是一个个的0和1,这7位数的代码,我们可以只加密前3位,或者只加密奇数位,因此,加密的方法就更加五花八门。
开诚布公
计算机的出现将信息数字化,打破了语言规律的底层结构,所以说,数字化使得密码学进入了新的时代。
除此之外,在智能时代,加密的过程可以不再保密了,因为智能时代之前的加密方法都有一个特点,那就是千万不能让别人知道我们是用什么规则加密的,到了恩尼格玛密码机的时代,德军还要想方设法保密,不让敌人搞到机器的内部结构和使用说明。
进入智能时代之后,今天的加密手段,可以完全把自己的技术细节公开。打个比方来说,我给我认识的所有朋友都发了一把锁,跟他们说,你们以后给我写信,就寄个盒子过来,用这个锁把盒子锁上。
锁有无数把,但是钥匙只在我手里,而且我有自信,别的人不管怎么研究我的锁,也没法配出开锁的钥匙。
现在有一个关键的问题:你要怎么做,才能保证别人看到了你的锁,却还是配不出你的钥匙呢?
「分解质因数」
这其中最核心的原理,叫做「分解质因数」。所谓质数,就是除了1和自己以外,没法被别的自然数整除的数。举个例子,12可以表示为3乘以4,那它就不是质数。13只能表示为1乘以13,所以13是个质数。同样,22不是个质数,23是个质数。
那如果我们用13乘以23,可以得到299,这个很容易计算。但是如果反过来,要算出299是哪两个数的乘积,这个计算就非常麻烦,甚至只能用笨办法一遍遍地试。这个过程就是分解质因数。
数学家就发现,把两个质数乘起来,这个计算很容易,但是拿着结果反推,这个过程要难得多。新一代的加密手段就是利用了这个原理,两个质数相乘得到的那个大数,就是公开的「锁」,具体是哪两个数的乘积,就是那个保密的钥匙。