关闭

对称加密和非对称加密

610人阅读 评论(0) 收藏 举报
分类:

需于沙,小有言,终吉。 —— 需九二

对称加密和非对称加密属于密码学的范畴。说到密码学可能会想起二战时期的密码破译,我个人会想起伪装者中军统截获中统的几组电波以及假的密码本。事实上,自古希腊时代就已经有将文字写成密文的事例,叫做斯巴达密码棒,古罗马也有凯撒密码。

密码学,这里指的是密码编码学(cryptology),而不是密码使用学(cryptography)。

这里写图片描述
密码使用学:
为了达到隐藏消息含义目的而使用的密文(密文是指加密后的数据,相应的,明文是指没有加密的原始数据)书写的科学。
密码分析学:
本身是一种科学,在某些情况下也指一种破译密码体制的技巧。这并不是只有情报部门才会做的事,事实上密码分析在现代密码体制中发挥着重要作用,如果没有人尝试破译我们的加密方法,我们永远也不知道这个系统是否安全。

密码协议是针对密码学算法的应用,可以看成是实现安全Internet通信的基础。密码协议的典型应用就是传输层安全(TLS)方案。

我们今天要讲的对称加密和非对称加密,就属于密码使用学的范畴。

对称加密

双方共享一个密钥,使用相同的加密和解密方法,在1976年前都是使用的对称加密。
对称加密方案也称为对称密钥(Symmetric-key)、秘密密钥(secret-key)、单密钥(single-key)算法。

如果a和b通过不安全的信道进行通信:这个信道可以是Internet、无线局域网或者别的通信媒介,如果C此时是同通过入侵Internet路由器或者监听wifi通信的无线电信号,就可能窃听a和b之间的通信。
这时一种做法,就是通过一个安全的信道,传递密钥过去。举个例子,可以通过在无线LAN中wifi保护访问(wi-fi protected access ,WPA)加密所使用的预共享密钥。
对称加密的加密函数和解密函数一般非常相似,在DES中,加密函数和解密函数基本相同。
伪装者中,明镜和中共地下党通过共同的银行保险箱钥匙,打开同一个保险箱来传递重要情报信息。

简单对称加密

即采用替换密码,将一个字母用另一个字母替换,假设我们的替换表是随机的,窃听者就不容易猜出对应的输出。

比如字母的替换,如果用蛮力攻击的话,第一个字母可以从26个字母中随机选1个,第二个有25种选择,总共存在的不同的替换数为:

26*25*…3*2*1 = 26!

这看起来是非常安全的,因为用高端计算机搜索这个结果可能需要几十年的时间,但是,我们可以结合字母频率的分析,采用更强大的攻击算法。

字母频率分析

每个明文符号总是映射相同的密文符号,这就是说明文中的统计属性在密文中得到了很好的保留。
在实际的字母频率分析中,我们可以:
(1)确定每个密文字母的频率,最常用的字母最容易被认出来,比如e是英文中出现频率最高的字母,大概13%,频率第二高的字母是t :9%。
(2)上面提到的方法可以用来推广查看连续两个、三个或四个等密文的字母,比如u几乎总是跟在q后面
(3)利用单词分隔符,找到高频的短单词,比如the,and等,一旦可以确定短单词,就可以确定对应的字母映射。

非对称加密

1976年Martin Hellman 和Ralph Merkle提出了完全不同的密码类型,与对称加密相同的是,用户也拥有一个密钥,但是它同时还拥有一个公钥。
与诸如AES或DES的对称算法完全不同,绝大多数非对称加密算法(公钥算法)都基于数论函数,这一点与对称密码大不相同——对称加密的目标是让输入和输出之间不存在紧凑的数学描述关系。

具有实用性的公钥算法:

  • 整数分解算法 (RSA)
  • 离散对数方案(DSA Elgamal)
  • 椭圆曲线方案 (ECDSA)

同样我们回到a向b传递信息这一点,b公开了一个大家都知道的密钥,就如同一个信箱,每个人都可以向该信箱投信,然而b同时还有一个用于解密的私密的密钥,就如同是这个信箱的钥匙,也就是说只有b才能取信。
这样,我们就可以公钥算法来加密一个对称密钥,比如AES密钥,一旦b解密了该对称密钥,双方就可以通过对称密码来加密和解密信息。

tablehead 对称加密 非对称加密
常用算法 DES, Blowfish, TEA, Base64 RSA,DSA,ElGamal,ECDSA
特点 简单/速度快 运算复杂、速度慢
使用场合 需要大量加密的场合,比如游戏的资源文件 金融、军事等重大机密
缺点 依靠安全的信道,密钥数目会非常多,不具有不可否认性 计算非常大,速度可能不到对称加密的1000分之一

解释一下:
对称加密的缺点的具体内容为:
1. 必须使用安全的信道建立密钥;
2. 在拥有n个用户的网络中,如果每对用户之间都需要一个单独的密钥对,那么整个网络需要的密钥对数为n(n1)2并且每个密钥对都必须通过安全信道进行传输;
3. 对欺骗机制没有预防,比如在电商领域,a下订单购买了b的商品,随后反悔了,由于b拥有和a相同的能力它确实可以伪造,所以不具有不可否认性

对应的非对称加密

  • 允许在不安全的信道上建立密钥,协议有若干种,比如Diffie-Hellman密钥交换(DHKE)协议,或RSA密钥传输协议。
  • 具有不可否认性
  • 在类似银行智能卡或手机等的应用中,可使用质询-响应协议与数字签名相结合的方法

DES:Data Encryption Standard DES 数据加密标准
最主流的分组密码,尽管它的密钥空间太小,但是使用DES连续三次对数据加密(3DES)——可以得到非常安全的密码。

AES: Advanced Encryption Standard 高级加密标准
拥有3种不同密钥长度抵抗蛮力攻击,分别为128位、192位、256位。目前还没有出现成功破译AES分析攻击。


参考文献

Cryptography for Developers 《程序员密码学》
http://book.51cto.com/art/200903/112749.htm
深入浅出密码学——常用加密技术原理与应用

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31915次
    • 积分:953
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:3篇
    • 译文:2篇
    • 评论:3条
    最新评论