基于AES-CCM模式的IPsec应用及其安全机制的分析
时间:2015-12-21 01:56:54 所属分类:计算机技术 浏览量:
摘 要 本文就IPsec应用中如何采用AES-CCM模式进行了相关讨论。由于该模式结合AES算法和CCM模式的加密和认证方式各自优点,因而在应用中具有优良的安全性能。另外,本文也对AES-CCM模式如何保证消息的完整性和机密性进行了分析,并提出对网络安全防范的补充见
摘 要 本文就IPsec应用中如何采用AES-CCM模式进行了相关讨论。由于该模式结合AES算法和CCM模式的加密和认证方式各自优点,因而在应用中具有优良的安全性能。另外,本文也对AES-CCM模式如何保证消息的完整性和机密性进行了分析,并提出对网络安全防范的补充见解。 关键词 AES;CCM;加密与认证
1 AES加密算法性能分析 美国标准与技术研究院(NIST)于2002年5月26日制定了新的高级加密标准[5](AES)规范。该标准采用Rijndael算法的设计策略是宽轨迹策略(Wide Trail Strategy), 宽轨迹策略是针对差分分析和线性分析提出的,它的最大优点是可以给出算法的最佳差分特征的概率及最佳线性逼近的偏差的界,由此可以分析算法抵抗差分密码分析及线性密码分析的能力。 Rijndael算法采用的是替代/置换网络。每一轮变换由三层组成:线性混合层,用于在多轮变换上的高度扩散;非线性层,由16个S-盒并置而成,起混淆的作用;密钥加层,子密钥简单的异或到中间状态。S-盒选取的是有限域GF(28)中的乘法逆运算,因此它的差分均匀性和线性偏差都达到了最佳。 Rijndael算法的安全性非常良好。4-轮Rijndael算法的最佳差分特征的概率和最佳线性逼近的偏差分别为2-150和2-76;8-轮Rijndael算法的最佳差分特征的概率和最佳线性逼近的偏差分别为2-300和2-151。此外,“Square”攻击是针对Square算法提出的一种攻击方法,同样适用于Rijndael算法,7-轮以上的Rijndael算法对“Square”攻击是免疫的。 因此,AES加密算法的优点显而易见:有良好的数学理论作为基础,没有明显的缺点和安全漏洞,加密、解密相似但不对称,因而具有更高的安全性,分组(支持128bit、192bit和256bit)和密钥长度(支持128bit、192bit和256bit)的多重选择也体现了该算法的灵活性。2 AES-CCM模式在IPSec中的应用2.1 AES加密算法的CCM模式 对称密码已经广泛应用于数据的保密和数据完整性认证。每一种不同算法的分组密码在具体运用时,都会选择一种具体的操作模式[1][2],如电子密码本模式(ECB)、密码分组链接模式(CBC)或计数模式(CTR)等。这些模式仅提供加密服务而不提供鉴别服务,但有些应用中除了需要加密服务外还要求鉴别服务。 IPSec 是一个负责IP安全协议和密钥管理的安全体系,需要对IP传输提供了数据保密、数据完整性保护、身份认证和反重放保护,以达到保护网络安全通信的目的。由于常规的操作模式仅提供数据加密服务,因此在IPSec应用存在安全漏洞。而数据完整性保护、身份认证和反重放保护都需要鉴别服务。 目前,IPSec只支持正式CBC模式和CTR模式。但是,由Doug Whiting等提出的CCM[5](Counter with Cipher Block Chaining-Message Authentication Code)模式是一种同时提供加密和鉴别服务的全新操作模式。CCM模式具有许多优秀的性质,它提供了带鉴别的加密服务,并且不会发生“错误传播”(Error Propagation)。另外,CCM模式还具有同步性(Synchronization)和一定程度的并行性(Parallelizability)——在加密过程具有并行性而在鉴别过程则没有。因此相对于其他模式,CCM模式在IPSec应用中更具优势。 CCM模式是分组密码一种全新的操作模式,它同时提供了加密与鉴别服务,其中加密服务由计数模式(Counter Mode)提供,而鉴别服务由CBC-MAC(Cipher Block Chaining-Message Authentication Code)算法提供。我们可以理解为CCM模式结合了计数模式与CBC模式两者各自的优点。 使用CCM模式的基本条件包括,发送方和接收方定义相同的分组密码算法(这里为AES算法)、密钥
K、记数器发生函数(Counter Generation Function)、格式化函数
F()(Formatting Function)和鉴别标记长度
Tlen。在CCM模式下,发送者的输入包括随机值Nonce、有效载荷和附加鉴别数据,分别记为
N、
P、
A。计算步骤如下: Step 1. 计算格式化函数
F(N, A, P),产生数据块序列
B0, B1, …, Br (每块为128bit) Step 2.
Y0= EK(B0) Step 3. For
i = 1 to
r, do
Yj =
EK(
Bi⊕
Yi-1) Step 4.
T=MSB
Tlen(
Yr)(取二进制串
Yr的左边
Tlen 个二进制位) Step 5. 计算计数器发生函数,产生计数块(the counter blocks)
Ctr0,
Ctr1,…,
Ctrm,
m =
Plen/128 Step 6. For
j = 0 to
m, do
Sj =
EK(
Ctrj) Step 7. S=
S1 ||
S2 || …||
Sm(“||”表示连接运算) Step 8. Return
C=(
P⊕MSB
Plen(S)) || (
T⊕MSB
Tlen(
S0)) 经过以上步骤后,最终产生发送方加密后发送的密文
C 。一般来说,接受方得到
N、
A和
C后,首先对密文
C 进行解密恢复有效载荷和MAC值
T;然后接受方再利用CBC-MAC算法对
N、
A和解密的有效载荷进行重新计算CBC-MAC值
T1,并与从密文中恢复的MAC值
T进行对比认证。如果认证通过,则接收方从密文中解密得到的有效载荷
P是真实有效的。否则,将得到一个无效的有效载荷,这时就要求发送方重新加密发送该有效载荷。即使后一种情况真的发生,除了一个“错误”的
T值以外接收方将不会泄漏任何其他的信息(包括解密的密文、正确的
T值和其他一些入侵者“感兴趣”的信息)。2.2 AES-CCM模式在IPSec中的应用优势 CCM模式包括两组相关的处理过程:初始化-加密(Generation-Encryption)、解密-鉴别(Decryption- Verification)。在初始化-加密阶段,CCM模式利用CBC-MAC算法产生MAC值,然后再利用计数模式对MAC值和有效载荷进行加密传送。而在解密-鉴别阶段则次序相反,先解密再鉴别。 在CCM模式中由CBC-MAC算法提供的鉴别服务比一般的校验码或错误检测码方式(Checksum or Error Detecting Code)在数据完整性方面具有更强的安全性。校验码或错误检测码方式仅仅被设计用于检测数据传送过程中的意
外错误,而MAC方式不仅可以检测出数据的意外错误,而且也能检测出攻击者故意的、未经授权的数据篡改。 另外,在CCM模式中使用计数模式对数据进行加密和解密,这正是CCM模式另一个优点的本质来源,这一点与纯计数模式一样。计数模式的安全性在理论上已经被证明[6],其本质在于安全的分组加密函数具有伪随机变换特性。在CCM模式中,由于在
转载请注明来自:http://www.zazhifabiao.com/lunwen/gcjs/jsjjs/36809.html