密码技术
未加密的消息是 明文,用 M 表示,加密的消息是 密文,用 C 表示。
C=E(M)表示加密,M=D(C)表示解密
密钥: C=E{k}(M),M=D{k}(C)
对称与不对称加密
若等式 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 有以下优点,安全性高,密钥量小,算法灵活性好
非对称密钥算法
优点:加密算法复杂,密钥长度任意,加密强度高,适宜一对多的信息加密交换
缺点:加/解密速度慢,密钥管理复杂,明文攻击很脆弱,不适用于数据的加密传输。