十分钟读懂加密技术(一)----对称加密技术
加密技术包括加密和解密两个运算过程。
加密是指将特定可读的信息或数据(明文)转化为不可读的内容(密文)的过程,这个过程一般需要算法和密钥两个元素,具体过程对于不同的加密技术来说有所不同。
解密是加密过程的逆运算,是将不可读的密文恢复为明文的过程,这个过程也需要密钥的参与。
加密技术依据加密过程和解密过程使用的密钥是否一致可以分为两类:对称加密和非对称加密,也称私钥加密和公钥加密。
本文主要介绍对称加密技术。
一、对称加密技术的原理
对称加密(私钥加密),顾名思义,即加密和解密两个过程使用的密钥相同。
双方(或多方)使用相同的密钥来对需要传递的信息或数据进行加密或解密以构建一个信息通道从而达到交流传输的目的。
如下图所示,如果Alice想要通过互联网发送信息给Bob,但是又怀疑互联网不是一个安全的信息通道,很可能存在第三方恶意机构会拦截她发送的信息。
利用对称加密技术,Alice可以用她事先和Bob商量好的密钥先对要发送的消息进行加密,把消息转化为不可读的密文,再将密文通过互联网发送给Bob。
这样即使被第三方拦截,得到的也只是密文,难以解读Alice原本要发送的消息。
在Bob接收到密文后,再使用与Alice一致的密钥对密文进行解密,将密文恢复到明文。
而当Bob想发送消息给Alice时,他的做法也是一样。
在这个消息传递中,只要恶意机构无法得到Alice和Bob使用的密钥,那么便无法轻松地对密文进行解密,这种加密技术就是安全的。
图1 对称加密技术
二、早期的对称加密技术
早期的加密技术都是对称加密技术,最早1可以追溯到古希腊时期斯巴达城使用的斯巴达密码棒(Scytale )2。
到了古罗马时期,出现了非常著名的凯撒密码(CaesarCipher )。
斯巴达密码棒是古希腊时期斯巴达城邦主要运用的一种加密工具。
其原理是利用木棍对信息字母进行简单地位移,只有将写有信息的长条皮革缠绕在特定直径的木棍上时,才能阅读出信件的真实信息,否则只是一堆无意义的字母组合。
凯撒密码与斯巴达密码棒的原理基本相同,也是对原信息进行简单的数位偏移,将明文转化为密文的加密方式。
比如偏移数位是3,那么字母A 就被替换为字母D ,以此类推。
这种加密方式据说最早是用于凯撒和将军之间的交流。
1有关于密码学的历史发展,参见Kahn D 在1996年出版的“The Codebreakers ”。
该书全面介绍了从4000年前到20世纪有关密码学的重大发展事件。
2
Kelly T. The myth of the skytale[J]. Cryptologia, 1998, 22(3):244-260. 加密 解密
Key
Alice Bob
737909666C0288596DBF116
A10DDF14ACE3078D70F7134
E325EFBC497272F6BA
三、现代社会的对称加密技术
到了现代社会,根据著名信息理论学家Claude Shannon 提出的理论,加密算法都是基于以下两种思想:一是混淆(Confusion),即尽可能使得密钥与密文之间的关系模糊。
二是扩散(Diffusion),即隐藏明文的统计属性,将一个明文符号的影响尽可能扩散到多个密文符号中。
现代社会的著名对称加密算法,DES(Data Encryption Standard)就充分地应用了上述的两种思想。
DES 在1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS ),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。
DES 使用的密钥长度是56位,而明文长度是固定的64位。
在其算法中,首先将明文的数据进行初始置换,对64位的数据按位重新组合。
之后,对置换后的明文进行16轮加密,这个加密过程解释起来相对比较复杂。
简单来说,就是将置换后的明文分成左右两部分(L,R ),每一轮的L 和R 由上一轮的L 和R 决定,其中下一轮的L 就是上一轮的R ,而下一轮的R 则由上一轮的L 、R 、密钥以及一个特殊函数共同决定。
最后再将经16轮加密完后的数据进行逆初始置换,得到密文:
图2 DES 加密结构
DES 的解密过程与其加密过程在本质上是完全相同的,只需要将之前执行的加密过程的反向运算一遍。
初始置换
16轮加密 逆初始置换 明文
密文
密钥
四、对称加密技术的缺陷
除了DES之外,其他常用的对称加密算法还有3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。
对称加密技术的优点是算法公开、计算量小、加密速度快、加密效率高。
但是从安全性的角度考虑,对称加密技术存在着几项缺陷:
●密钥分享。
在安全加密的信息通道建立前,无法相信其他媒介未加密的
通道。
用户之间难以安全地分享密钥,特别是在用户之间距离较远的情
况下。
●密钥储存。
各用户的密钥都是相同的,如果其中一个用户出现问题,密
钥会被第三方利用来发送不利于通道的信息或者获取用户的隐私信息,
可能都会对整个信息通道造成严重威胁。
●消息验证。
对称加密无法对发送的消息或数据进行签名认证,因此无法
确认消息或数据是否真正来自于特定发送方。
安全性方面的缺陷使得对称加密技术慢慢被淘汰,而另外一种加密技术:非对称加密技术慢慢登上历史舞台。