ESP DES-CBC变换(RFC 1829)
(2006-08-16 10:23:50)
译者:李智(loxu@163.com),2004-6-8,翻译版本0.1,中文翻译版权采用GPL。
Network Working Group P. Karn
Request for Comments: 1829 Qualcomm
Category: Standards Track P. Metzger
Piermont
W. Simpson
Daydreamer
August 1995
ESP DES-CBC变换
The ESP DES-CBC Transform
本备忘录的现状
本文档为Internet社团规定了一个Internet标准系列的协议,并且欢迎为了改
进而提出的讨论和各种建议。要了解本协议的标准化进程和现状,请参考当前
版本的“Internet官方协议标准”(STD 1)。分发本文档没有限制。
摘要
本文档描述了用于IP封装安全载荷(Encapsulating Security Payload (ESP))
的DES-CBC安全变换。
目录
1. 介绍 .................................................. 1
1.1 密钥(Keys) .................................... 1
1.2 初始向量(Initialization Vector) ............... 1
1.3 数据大小(Data Size) ........................... 2
1.4 性能 ............................................ 2
2. 载荷格式(Payload Format) ............................ 3
3. 算法 .................................................. 5
3.1 加密 ............................................ 5
3.2 解密 ............................................ 5
安全考虑 ..................................................... 6
感谢 ......................................................... 7
参考.......................................................... 8
作者地址 ..................................................... 10
1. 介绍
封装安全载荷(Encapsulating Security Payload (ESP))[RFC-1827]通过加
密要被保护的载荷数据而给IP数据包提供了机密性。本规范描述了ESP如何使用
美国数据加密标准(Data Encryption Standard (DES))算法的密码块链接
(Cipher Block Chaining (CBC))模式。
所有声称与封装安全载荷规范相一致或兼容的实现(MUST)实现这种DES-CBC变
换。
本文档假设读者已经熟悉相关的“Internet协议安全体系结构”[RFC-1825]文
档,该文档为IP定义了全面的安全计划,并且提供了关于该协议的重要背景。
1.1. 密钥(Keys)
在通信参与者之间共享的秘密DES密钥是八字节长的。这个密钥由一个被DES算
法所使用的56个比特位数量组成。这个56比特密钥是以一个64比特(8个字节)
数量存储,其每个字节的最低有效比特位被用作一个奇偶校验位。
1.2. 初始向量(Initialization Vector)
DES的这种模式需要一个初始向量(IV),该向量是8字节长的。
每个数据包都包含它自己的IV。这种在每个数据包中都包含IV的方法,确保能
够对每个收到的数据包进行解密,即使当其它的数据包丢失了,或者数据包在
传输过程中顺序颠倒了。
选择IV值的方法是由实现决定的。
注意:
一个普遍可接受的技术是一个简单的计数器,其开始于一个随机选择的值。
虽然这样提供了一个防止重复的容易的方法,并且对于实际使用也是足够强
壮了,但是密码分析学可能利用非常罕见发生的事件,即在第一个DES块中
一个相应的比特位置以完全相同的方式增加。
其它的实现显示出不可预知性,因为其通常通过一个伪随机数生成器。应该
小心的是,数字生成器的周期要足够长,以防止其在在会话密钥的生存期内
重复。
1.3. 数据大小(Data Size)
DES算法操作于8字节的块上。这经常要求在没有加密的载荷数据的结尾之后进
行填充。
输入和输出结果都有相同的字节数,这有利于在原处(in-place)加密和解密。
对接收方,如果要被解密的数据的长度不是8字节的整数倍,那么要显示一个错
误,如在[RFC-1825]中的描述。
1.4. 性能
在撰写本文档时,至少一个硬件实现能够以1Gbps的速度加解密
[Schneier94, p. 231]。
2. 载荷格式
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 安全参数索引 (SPI) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ 初始向量 (IV) ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ 载荷数据 ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... 填充 | 填充长度 | 载荷类型 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
安全参数索引(Security Parameters Index (SPI))
一个32比特的值,标识这个数据包的安全参数。这个值不能(MUST NOT)为
零。
初始向量(Initialization Vector (IV))
这个字段的大小是可变的,尽管它对所有具有相同SPI和IP目的地的
DES-CBC数据包来说是恒定的。该值以网络字节序发送(最高位在前)
[RFC-1700]。
其大小必须(MUST)是32比特的整数倍。32比特和64比特的大小都要求被支
持。其它大小的使用不在本规范的讨论范围内。该大小指望由密钥管理机制
来指定。
当大小是32比特时,一个64比特的IV是从32比特值紧跟(连接)32比特值的
位补码而形成。这个字段大小很普遍,因为它能为32比特和64比特的处理都
对齐载荷数据。
所有一致的实现必须(MUST)也正确的处理一个64比特的字段大小。这为已
存在的硬件实现提供了严格的兼容性。
为了在加密会话密钥的生存期内不重复这个值。即使当使用了一个完整
的64比特IV时,会话密钥应该(SHOULD)至少每到2**32数据包的周期就
更换一次。
载荷数据(Payload Data)
这个字段的大小是变长的。
在加密之前和解密之后,这个字段以载荷类型字段中指定的IP协议/载荷头
开始。注意,在IP-in-IP封装(载荷类型为4)的情况下,这将是另外一个
IP头。
填充(Padding)
这个字段的大小是变长的。
在加密之前,其使用没有指明的由实现决定的(最好随机的)值来填,以使
填充长度和载荷类型字段以8字节边界对齐。
解密之后,必须(MUST)忽略这个填充。
填充长度(Pad Length)
这个字段标识了填充字段的大小。它并不包括填充长度和载荷类型字段。这
个字段的值典型的是从0到7,但是也可以一直到255,以允许隐藏实际的数
据长度。
这个字段是不透明的。也就是,这个值在加密之前设置,并且只在解密之后
检查。
载荷类型(Payload Type)
这个字段标识了载荷数据字段的内容,其使用表示IP协议/载荷的值。表示
IP协议/载荷的最新值在最近的“分配数字(Assigned Numbers)”
[RFC-1700]中规定。
这个字段是不透明的。也就是,这个值在加密之前设置,并且只在解密之后
检查。
例如,当加密一个完整的IP数据包时(隧道模式),这个字段将包含值
4,标识是IP-in-IP封装。
3. 算法(Algorithm)
在DES-CBC中,基础DES加密函数是对每个明文文本和先前的密文块进行异或
(XOR),来产生当前块的密文。当数据包丢失时这提供了再同步。
关于DES的更多说明和实现信息,请参考[Schneier94]。
3.1. 加密(Encryption)
添加零和更多字节的(最好是随机的)填充给明文,使明文长度对8取模的结果
是6。例如,如果明文长度是41,就添加5个字节的填充。
添加一个填充长度(Pad Length)字节,其包含刚才添加的填充字节的数目。
添加一个字节的载荷类型(Payload Type),其包含IP协议/载荷值,该值标识
了载荷开始的协议头。
提供一个初始向量(IV),其大小由SPI指定。
用DES以CBC模式加密载荷,产生一个相同长度的密文。
字节串以网络字节序(最高位在前)映射成DES块[RFC-1700]。载荷的字节0
(以8为模)对应64比特DES输入块的1-8比特位,而字节7(以8为模)对应DES
输入块的57-64比特位。
给目标地址构建一个正确的IP数据包,其带有指定的SPI、IV、和载荷。
封装IP头(外部IP头)中的总/载荷长度反映了加密数据的长度,加上SPI、
IV、填充、填充长度、和载荷类型的字节。
3.2. 解密(Decryption)
首先,SPI字段被移除并检查。当一个指向本地安全参数表的索引找到了协商的
参数和解密密钥,这个SPI才有用。
协商的IV形式决定了IV字段的大小。这些值被移除,并且构建一个正确的64比
特IV值。
使用DES以CBC模式解密载荷的加密部分。
载荷类型(Payload Type)被移除并检查。如果其值不被承认,则载荷被丢弃,
并附带一个适当ICMP消息。
载荷长度(Pad Length)被移除并检查。指定数目的填充字节从被解密的载荷
结尾处移除掉,并且对IP总/载荷长度作相应的调整。
IP头和被解密载荷的剩余部分被传递给由载荷类型字段指定的协议接受例程。
安全考虑
用户需要了解的是,本规范提供的安全质量完全依赖于DES算法的健壮性、算法
实现的正确性、密钥管理机制及其实现的安全性、密钥的健壮性[CN94]、以及
所有参与节点中的实现的正确性。
在其它的考虑之中,应用程序可能希望不对选择弱密钥太小心,尽管胡乱的就碰
到一个弱密钥的概率很低[Schneier94, p 233]。
[Bell95]描述的剪切和复制粘接攻击(cut and paste attack)利用了所有密
码块链接(Cipher Block Chaining)算法的本质特点。当一个块在传输过程中
被破坏了时,在解密时,该块和随后的一个块都将被解密处理混淆,但是所有
后来的块又将正确解密。如果一个攻击者可以合法访问相同的密钥,这个特性
能被用来插入和重放先前的具有相同引擎用户的加密数据,而暴露出明文。通
常的(ICMP、TCP、UDP)传输校验和(transport checksum)能够检测出这种
攻击,但是它本身并不考虑机密性强度。在这种情形下,就需要面向用户或面
向连接的完整性检查。
在撰写本文档的时候,[BS93]示范了一个不同的密码分析术,其基于需要2^47
明文密文对的选择明文攻击(chosen-plaintext attack),而且[Matsui94]示
范了一个线性的密码分析术,其基于只需要2^43明文密文对的已知明文攻击
(known-plaintext attack)。尽管这些攻击被认为是不可行的,但它们必须
被纳入到考虑之中。
更令人不安的,[Wiener94]已经展示了一种只花费1百万美元的DES破解机器的
设计,该机器能够每3.5小时破解一个密钥。这是一种非常可行的攻击。
一块或两块已知明文足够恢复一个DES密钥。因为IP数据包典型的开始于一块已
知和/或可猜出来的头正文,定期的更换密钥不能保证不受这种攻击。
建议,面对这样的设备,DES用于保护中等价值的信息来说不是一个好的加密算
法。对此3DES(Triple DES)大概是个更好的选择。
然而,尽管有这些潜在的风险,在Internet环境中使用ESP DES-CBC提供的秘密
级别还是比以明文方式发送数据包高多了。
感谢
本文档由Internet工程任务组织(Internet Engineering Task Force (IETF))
的IP安全工作组(IP Security Working Group)审核。有意见应该提交到
邮件列表。
本规范的一些正文来自于为SIP、SIPP和IPv6工作组工作的Randall Atkinson的
成果。
为机密性而使用DES严密地模仿为SNMPv2所做的工作。
Steve Bellovin, Steve Deering, Karl Fox, Charles Lynn, Craig Metz,
Dave Mihelcic和Jeffrey Schiller为本草案的早期版本提供了有价值的建议。
参考
[Bell95] Bellovin, S., "An Issue With DES-CBC When Used Without
Strong Integrity", Proceedings of the 32nd IETF, Danvers,
MA, April 1995.
[BS93] Biham, E., and Shamir, A., "Differential Cryptanalysis of
the Data Encryption Standard", Berlin: Springer-Verlag,
1993.
[CN94] Carroll, J.M., and Nudiati, S., "On Weak Keys and Weak Data:
Foiling the Two Nemeses", Cryptologia, Vol. 18 No. 23 pp.
253-280, July 1994.
[FIPS-46]
US National Bureau of Standards, "Data Encryption Standard",
Federal Information Processing Standard (FIPS) Publication
46, January 1977.
[FIPS-46-1]
US National Bureau of Standards, "Data Encryption Standard",
Federal Information Processing Standard (FIPS) Publication
46-1, January 1988.
[FIPS-74]
US National Bureau of Standards, "Guidelines for
Implementing and Using the Data Encryption Standard",
Federal Information Processing Standard (FIPS) Publication
74, April 1981.
[FIPS-81]
US National Bureau of Standards, "DES Modes of Operation"
Federal Information Processing Standard (FIPS) Publication
81, December 1980.
[Matsui94]
Matsui, M., "Linear Cryptanalysis method dor DES Cipher,"
Advances in Cryptology -- Eurocrypt '93 Proceedings, Berlin:
Springer-Verlag, 1994.
[RFC-1446]
Galvin, J., and McCloghrie, K., "Security Protocols for
Version 2 of the Simple Network Management Protocol
(SNMPv2)", RFC-1446, DDN Network Information Center, April
1993.
[RFC-1700]
Reynolds, J., and Postel, J., "Assigned Numbers", STD 2,
RFC-1700, USC/Information Sciences Institute, October 1994.
[RFC-1800]
Postel, J., "Internet Official Protocol Standards", STD 1,
RFC-1800, USC/Information Sciences Institute, July 1995.
[RFC-1825]
Atkinson, R., "Security Architecture for the Internet
Protocol", RFC-1825, Naval Research Laboratory, July 1995.
[RFC-1826]
Atkinson, R., "IP Authentication Header", RFC-1826, Naval
Research Laboratory, July 1995.
[RFC-1827]
Atkinson, R., "IP Encapsulating Security Protocol (ESP)",
RFC-1827, Naval Research Laboratory, July 1995.
[Schneier94]
Schneier, B., "Applied Cryptography", John Wiley & Sons, New
York, NY, 1994. ISBN 0-471-59756-2
[Weiner94]
Wiener, M.J., "Efficient DES Key Search", School of Computer
Science, Carleton University, Ottawa, Canada, TR-244, May
1994. Presented at the Rump Session of Crypto '93.
作者地址
对本备忘录的问题也能被定向到:
Phil Karn
Qualcomm, Inc.
6455 Lusk Blvd.
San Diego, California 92121-2779
Perry Metzger
Piermont Information Systems Inc.
160 Cabrini Blvd., Suite #2
New York, NY 10033
William Allen Simpson
Daydreamer
Computer Systems Consulting Services
1384 Fontaine
Madison Heights, Michigan 48071