你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
IDEA对称密码算法剖析(一)
 

    学习算法的一种非常有效的方法就是分析经典算法的代码实现。IDEA算法是一种典型的对称密钥密码算法,是一种密钥长度为128位的分组密码算法,这种算法既可以用于加密,也可以用于解密,具有代码量少、运行速度快、安全性高等特点。本文首先剖析了IDEA算法原理,然后对基于VC++IDEA算法的C++实例进行了解析。

关键词  IDEA;对称密码;分组密码;C语言

 

 

1  引言

IDEA International Data Encryption Algorithm:国际数据加密算法)是1990年由瑞士联邦技术学院的X.J.Lai Massey提出的PESProposed Encryption Standard:建议标准算法)的改进版本。于1992年命名为IDEAIDEAPES的抗差分分析的能力进行了强化处理,其安全性非常高,同一种算法既可以用于加密,又可以用于解密,其唯一的区别仅仅在于子密钥的生成方法不同。IDEA算法在诸如邮件加密系统PGP等多种商业产品中被广泛使用。

IDEA是一种分组长度为64位的分组密码算法,密钥长度为128位。128位的密钥用于产生52个子密钥。在整个加密过程中,总共需要进行8轮迭代运算,整个迭代过程需要48个子密钥,另外4个子密钥用于最终的64位密文的输出变换。

IEDA算法基于“相异代数群上的混合运算”的设计思想,其迭代运算中采用了三种数学运算:16位整数的模216加法运算、16位分组的按位异或运算和16位整数的模216+1乘法运算。为了叙述简洁,在后文中将直接称这三种运算为加法、乘法和异或运算。这三种运算中的任何一对运算都不满足分配律,也不满足结合律,这让它们的组合能对输入作出复杂的变换,从而使得攻击者无法使用化简的方式来分析明文及密钥之间的关系,因此,对IDEA算法的密码分析要比对只使用异或运算的DES算法的分析要困难得多。

2  算法原理及框架

IDEA的加密过程包括两个部分:明文到密文加密的8轮迭代运算和子密钥的产生。

2.1 IDEA加密迭代运算

IDEA加密迭代运算过程如图1所示。输入的64位明文数据分组被分成416位的子分组,分别记为X1X2X3X4。这四个分组作为算法的第一轮的输入,整个加密过程总共进行8轮迭代运算,最终产生64位的密文输出。

在图1中,每轮运算分为两部分。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089