因此不管怎么替换,只要被截获的密文一多,总会被频率分析法拿捏
因此不管怎么替换,只要被截获的密文一多,总会被频率分析法拿捏
古典密码的巅峰之作恩尼格玛机,是由德国发明并在二战期间广泛使用的加密和解密机器,又称作哑谜机,或"谜"式密码机
古典密码的巅峰之作恩尼格玛机,是由德国发明并在二战期间广泛使用的加密和解密机器,又称作哑谜机,或"谜"式密码机
恩尼格玛机的伟大之处就在于它在进行高度复杂的加密运算的同时,操作的简易性也几乎做到了极致。
操作者只需像使用打字机一样在键盘上输入消息,加密后的字母就会在灯盘上显示出来,这使得即使是未经专业训练的人员也能快速上手。
而且明文中相同的字母也会被加密成不同的密文,这就很好的防止了频率分析法,另外即使知道其运作原理也很难破解。
这是如何做到的?
首先先看下恩尼格玛机的组成部件
键盘:输入明文或者密文用的
灯盘:在键盘上输入一个字母,灯盘上会有一个字母亮起来,代表键盘上输入的字母加密后的结果
转子:这个是恩尼格玛机的核心,是加密元件
插线板:这是在转子进行加密后,为了提高安全性而增加的装置
之所以恩尼格玛机在当时很难破解,主要还是因为它的核心元件"转子"
转子就像是可以旋转的密码锁,比如当你按下"A"键时,"A"通过转子时,它会被替换成另一个字母,比如"D"
但是,神奇的地方在于,当你再次按下"A"键时,由于转子已经旋转,它可能变成"E"或另一个字母,而不是"D"。这是因为每次按键后,转子都会转动,改变内部的连接,所以同一个字母可以被替换成不同的字母
一台恩尼格玛机通常使用了三个转子串联起来,有时更多,当一个转子转完一圈,它会推动下一个转子转动一点
这意味着,随着输入更多的字母,转子的组合方式会变得极其复杂,使得相同的字母在不同的位置被替换成不同的字母
由于每个转子都有26个可能的位置,所以三个转子一共可以提供26 X 26 X 26=17576种可能性
恩格玛机除了转子,还有个重要装置:反射器
除此之外,为了保险起见它的外侧还附加一组交换机制"插线板",也就是说如果连通"O"和"E",当按下"O"时,其实相当于按下了"E",这种连线最多可以有六根
插线板上两两交换6对字母的可能性则是异常庞大,有100,391,791,500种
最终17576 X 100391791500=1764486127404000种
在没有计算机时代,想通过逆向穷举的方式几乎是不可能的!
况且当时的恩尼格玛机每天都会更换一次初始方案
如果当天算不出,第二天就得重新计算,这使得暴力破解又更难了
但了解二战的小伙伴都知道,恩尼格玛机最终还是被破解了,甚至没等到计算机的诞生
1940年,计算机之父英国数学家艾伦·图灵就破解了恩尼格玛机
不是说恩尼格玛机没有计算机就无法破解的吗?
说法虽没错,但遭不住德国人太轴又太飘
这种严谨又白给的操作,很快就让图灵拿到了明密对应的线索
依靠这些线索图灵和他的同事戈登·韦尔奇曼发明了叫做"炸弹机"的解密机
依靠这些线索图灵和他的同事戈登·韦尔奇曼发明了叫做"炸弹机"的解密机
通过"炸弹机"最后硬生生的逆向破解了恩尼格玛机
所以这又一次说明了像古典密码这样,知道怎么加密就能知道怎么解密的对称加密方法,从根本上来说是肯定会被破解的,只不过是时间问题罢了
所以这又一次说明了像古典密码这样,知道怎么加密就能知道怎么解密的对称加密方法,从根本上来说是肯定会被破解的,只不过是时间问题罢了
那有没有哪种加密方式,加密和解密方法不一样?
1976年以前,所有的加密方法都是同一种模式:
1976年以前,所有的加密方法都是同一种模式:
1.甲方选择某一种加密规则,对信息进行加密
1976年以前,所有的加密方法都是同一种模式:
1.甲方选择某一种加密规则,对信息进行加密
2.乙方使用同一种规则,对信息进行解密
1976年以前,所有的加密方法都是同一种模式:
1.甲方选择某一种加密规则,对信息进行加密
2.乙方使用同一种规则,对信息进行解密
由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"
1976年以前,所有的加密方法都是同一种模式:
1.甲方选择某一种加密规则,对信息进行加密
2.乙方使用同一种规则,对信息进行解密
由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"。
常见的"对称加密算法"有DES、3DES、AES
曹操和关羽是笔友
曹操给关羽写信,为了防止外泄,曹操把信锁在了盒子里
关羽想拿到信,就必须拿到开锁的钥匙,于是曹操也把钥匙给了关羽
以上关锁和开锁的过程,就相当于对邮件加密和解密的过程
这种使用同一把钥匙加密和解密的方式,就叫做对称密钥
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,很容易被人窃取
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,很容易被人窃取
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,很容易被人窃取
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,很容易被人窃取
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,很容易被人窃取
1977年,三位数学家Rivest(罗纳德·李维斯特)、Shamir(阿迪·萨莫尔) 和 Adleman(伦纳德·阿德曼) 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。
1977年,三位数学家Rivest(罗纳德·李维斯特)、Shamir(阿迪·萨莫尔) 和 Adleman(伦纳德·阿德曼) 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。
这种新的加密模式被称为"非对称加密算法"
这种新的加密模式被称为"非对称加密算法"
1.乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的
这种新的加密模式被称为"非对称加密算法"
1.乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的
2.甲方获取乙方的公钥,然后用它对信息加密
这种新的加密模式被称为"非对称加密算法"
1.乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的
2.甲方获取乙方的公钥,然后用它对信息加密
3.乙方得到加密后的信息,用私钥解密
这种新的加密模式被称为"非对称加密算法"
1.乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的
2.甲方获取乙方的公钥,然后用它对信息加密
3.乙方得到加密后的信息,用私钥解密
4.如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的
这时候非对称密钥就要登场了
这是一种奇特的钥匙,他们总是以组合的形式出现
一把叫公钥,一把叫私钥
公钥是对外公开的,所有人都可以获得,而私钥是私密的,只有持有人自己知道
公钥上的锁,只有私钥能打开,且私钥只有一把
私钥上的锁只有公钥能开,但公钥不止一把哦
关羽自己持有私钥,而把公钥公之于众,人手一份
这时候曹操写好信,然后用关羽的公钥上锁
即使信件中途被刘备截获,刘备也无法破解信件内容
这就是非对称密钥的能力
这就是非对称密钥的能力
是不是觉得这就很完美了
但是……
有个问题,关羽怎么确信收到的信就是曹操写的呢?有没有一种可能……
刘备冒充曹操给关羽写信
刘备冒充曹操给关羽写信
或者无法解码就搞破坏,比如篡改密文,这样即使解密也不能得到其真正意思
所以为了防止伪冒和篡改事件发生,让曹操也配备一套非对称密钥
这时候,曹操又给关羽写信
但这次我们为曹操准备了个设备
这个过程其实就是对信件原文进行哈希算法,换算为信息摘要,这是独一无二的字符
哈希算法有2个特点
哈希算法有2个特点
具有不可逆性,从信息摘要无法推出原始数据
哈希算法有2个特点
具有不可逆性,从信息摘要无法推出原始数据
原文有微小的不同,则哈希算法输出一定不同。但若是相同的原文,输出的结果必定相同
这时候我们再让曹操用自己的私钥将信息摘要加密,附在信件原文下面
对,只要曹操的公钥能打开,就说明确实是曹操亲自用私钥上的锁,这个效果就相当于签名
所以我们把上面过程叫做数字签名
然后曹操再将附有数字签名的信件用关羽给的公钥上锁
这个时候,若关羽再收到曹操的来信
关羽先用自己的私钥打开第一层锁,然后取下数字签名用曹操的公钥来解锁,若不能解开,就说明信件是伪冒的
若能解开,则得到曹操放在里面的信息摘要,再对信件原文使用哈希算法,得到结果与信息摘要对比
根据哈希算法的特点,关羽计算的结果应该和曹操提供的信息摘要一致,但若两者不一致,则说明文件被篡改了
非对称加密算法在生活中随处可见,比如银行转账、区块链交易等,毫不夸张地说,只要有计算机网络的地方,就有非对称加密算法
非对称加密算法在生活中随处可见,比如银行转账、区块链交易等,毫不夸张地说,只要有计算机网络的地方,就有非对称加密算法