1.1. 密码技术
未加密的消息是明文,用M表示,加密的消息是密文,用C表示。
C=E(M)表示加密,M=D(C)表示解密
密钥:C=E{k}(M),M=D{k}(C)
1.2. 对称与不对称加密
若等式M=D{k1}(E{k1}(M)成立,加密和解密函数都使用同一个密钥“k1”,则这个算法是对称的。
常见的对称密钥算法有SDBI(国家密码办公室批准的国内算法,仅硬件中存在)、IDEA、RC4、DES、3DES。
DES采用分组乘积密码,该算法输入64比特明文,经64比特密钥的运算,最后得到64比特密文,64比特密钥中包含了8比特奇偶校验位,实际密钥长度为56比特
3DES是三重DES,3DES密钥长度是128比特(实际为112比特)
IDEA国际数据加密算法,在PGP中采用,该算法中明文和密文分组长度是64比特,密钥长度为128比特。
对称密钥算法优点:加/解密速度快、密钥管理简单、适宜一对一的信息加密传输
缺点:加密算法简单,密钥长度有限(56比特/128比特),加密强度不高、密钥分发困难,不适宜一对多的加密信息传输。
非对称密钥算法,又称为公钥算法,即使用两个不同但是相关的密钥来执行加密和解密。用于加密的密钥称为公钥,用于解密的密钥称为私钥。
设k-priv为私钥,设k-pub为公钥,D{k-priv}(M)为解密函数,E{k-pub}(M)为加加密函数。
则 M=D{k-priv}(E{k-pub}(M))
可以将公钥公之于众,使用公钥加密的消息,只有私钥的持有者才能对它解密
常见的非对称密钥算法:RSA(基于大数分解)、DSA、数字签名算法、ECC(椭圆曲线)等
RSA是迄今为止在理论上和实践检验结果最为成熟完善的公钥密码体制,ECC是为了进一步提高RSA算法的安全性而提出,对比RSA,ECC有以下优点,安全性高,密钥量小,算法灵活性好
非对称密钥算法优点:加密算法复杂,密钥长度任意,加密强度高,适宜一对多的信息加密交换
缺点:加/解密速度慢,密钥管理复杂,明文攻击很脆弱,不适用于数据的加密传输。