ESP CBC模式加密算法( 三 )

<=80bits,12
key>80bits,16
-------------------- ------------ ----------------------
RC5No16
-------------------- ------------ ----------------------
IDEANo8
-------------------- ------------ ----------------------
BlowfishNo16
-------------------- ------------ ----------------------
3DESNo48(16x3)
-------------------- ------------ ----------------------
2.6背景
CAST-128:
CAST设计程序最初是由CarlisleAdams和StaffordTavares在Queen大学(位于加拿
大的安大略省的Kingston)提出的 , 后来的改进工作由CarlisleAdams和MichaelWiener
用了几年时间完成 。CAST-128是在[Adams97]中应用CAST设计程序作为大纲的结果 。
RC5:
RC5加密算法是由RonRivest为RSA数据安全公司开发的 。为了满足更高的加密软硬件
性能要求 , 还是选择DES 。RC5是有专利的(pat.no.5,724,428) 。关于RC5的描述可以在[MOV]
和[Schneier]中找到 。
IDEA:
XuejiaLai和JamesMassey提出了IDEA算法(InternationalDataEncryption
Algorithm) 。算法在[Lai],[Schneier]和[MOV]有具体的描述 。
IDEA算法在欧洲和美国是有专利的而在日本的专利申请还没有批准 。商业应用需要向
IDEA购买许可 。
关于专利和许可信息 , 请参考:
AscomSystecAG,Dept.CMVV
Gewerbepark,CH-5506
Magenwil,Switzerland
Phone: 4164565983
Fax: 4164565990
idea@ascom.ch
http://www.ascom.ch/Web/systec/policy/normal/exhibit1.Html
Blowfish:
BrUCeSchneier提出了Blowfish块加密算法 。在[Schneier93],[Schneier95]和
[Schneier]中有关于算法的具体描述 。
3DES:
这个DES的变形 , 通俗的说就是“TripleDES”或是“DES-EDE3” , 处理每个块三次 , 每
次都使用不同的密钥 。这种使用多余一个DES过程的技术在[Tuchman79]被中提议的 。
P1P2Pi
IV->->(X) >->->->(X) >->->->(X)
v^v^v
----- ^ ----- ^ -----
k1->E^k1->E^k1->E
----- ^ ----- ^ -----
^^
v^v^v
----- ^ ----- ^ -----
k2->D^k2->D^k2->D
----- ^ ----- ^ -----
^^
v^v^v
----- ^ ----- ^ -----
k3->E^k3->E^k3->E
----- ^ ----- ^ -----
^^
>->->>->->>->->
C1C2Ci
DES-EDE3-CBC算法是DES-CBC算法[FIPS-46]的一种简单变形 。“outer”链接技术被使用 。
在DES-EDE3-CBC中 , 一个初始化向量(IV)和第一个64位(8字节)的明文块(P1)进
行“XOR”运算 。键控的DES函数被反复是使用三次 , 先是一次加密(EK1)然后是一次解密
(DK2)最后又是一次加密(EK3) , 这样就产生了这个块的密文 。每次反复都使用互不相关的
密钥:K1 , K2 , K3 。
对于后续的块 , 前一个加密密文块和当前的明文块进行“XOR”运算 , 键控的DES-EDE3
加密函数为这个块产生密文(Ci) 。
关于解密 , 函数的执行顺序被翻转:用K3解密 , K2加密 , K1解密 , 并和前一个密文块进
行“XOR”运算 。
注重当三个密钥(K1 , K2 , K3)相同时 , DES-EDE3-CBC就等同于DES-CBC 。这种特性使
DES-EDE3的不用更改硬件就可以执行DES模式 。
2.7性能
关于比较评估这些或是其他加密算法的运行速度的表 , 请查看[Schneier97]或是关于最新
的性能比较请查看[Bosseleaers] 。
3.ESP载荷
ESP载荷由IV , 要保护数据密文组成 。因此在[Kent98]中定义的载荷区依照下面的图表被
分割:
--------------- --------------- --------------- ---------------
初始化向量(8octets)
--------------- --------------- --------------- ---------------
~加密载荷(长度可变)~
---------------------------------------------------------------

推荐阅读