数学之美:谈谈密码学的数学原理

最初的密码其实很简单,就是将一个符号映射成另一个符号:

但是这种密码其实很容易破解,如果单纯看映射表,确实没办法知道映射关系。但是语言在使用过程中各个词是有特定频率的,因此只要多截获密报使用统计学就能破解这种密码。后来有经验的编码者就把一个词映射成多个密码,这样就难以呈现出明显的统计规律。

好的编码函数不应该仅凭几个自变量和函数值就被推断出函数本身。这样就不会出现破解几次密码就导致所有密码都被破解出来。密码的最高境界应该是即使敌人截获密码后,对我方所知也没有任何增加。一般来讲密码间分布均匀,并且统计独立时所提供的信息最少。均匀分布导致难以统计,统计独立确保敌人看到一份密码和明码后仍然不能破解另一份密码。

公开密钥是常用的加密方式,原理如下:

其中E为公钥,谁都可以用来加密,D为私钥,用于解密。乘积N是公开的。现在可以用如下公式加密解密:

公开密钥好处是简单,而且N和E可以用于他人加密,但是没有D,是无法解密的。还可以多个E和D进行组合,形成更加复杂的形式。世界上没有永远破解不了的密码,但是我们需要它在有效期内无法破解就行了。要想破解公开密钥,最好办法还是对N进行因式分解,通过N找到P和Q。但目前只有把所有数字试一遍才能找到P和Q,这就考验计算机的速度了。

猜你喜欢

转载自blog.csdn.net/qq_16234613/article/details/82721067