密码技术 

未加密的消息是  明文,用  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 有以下优点,安全性高,密钥量小,算法灵活性好 


非对称密钥算法

优点:加密算法复杂,密钥长度任意,加密强度高,适宜一对多的信息加密交换 

缺点:加/解密速度慢,密钥管理复杂,明文攻击很脆弱,不适用于数据的加密传输。