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

2.2 IDEA子密钥的产生

2.2.1 加密子密钥的产生

IDEA一次完整的加密运算需要52个子密钥,它们都是由一个128位的加密密钥产生的。其产生方法如下:

首先将128位加密密钥分成8份:Z1Z2……、Z8,其中Z1对应加密密钥中的最高有效的16位,而Z8则对应于加密密钥中的最低有效的16位。然后将加密密钥循环左移25位后,用同样的方法得到另外的新的8个子密钥,如此Z1Z52陆续生成52个子密钥。

2.2.2解密子密钥的产生

IDEA的解密过程与加密过程完全相同,即将密文分组作为输入而逐步恢复明文,所不同的是参与迭代运算的解密子密钥的生成方式。解密子密钥U1U2、……、U52是从加密密钥Z1Z2……、Z8导出的。解密过程中的第i轮循环的头4个子密钥是从加密循环的第(10-i)的头4个子密钥导出的,其中变换阶段被记为循环9。解密密钥的第1个和第4个子密钥等于对应的第1个和第4个加密密钥的模216+1乘法逆元。从第2到第8个循环,第2和第3个解密子密钥等于对应的第2个和第3个加密子密钥的模216加法逆元,而第1和第9个循环的第2和第3个解密子密钥等于对应的第2个和第3个加密密钥的模216加法逆元。而对于头8个循环来说,循环i的最后两个解密子密钥等于加密循环(9-i)的最后两个子密钥。

3  源代码解析

3.1  实例使用的简单说明

3.1.1实例运行说明

本实例的开发平台为WindowsVC++8.0。程序运行是需要提供两个输入:一是需要加/解密的文件的文件名,另一个是用户自己提供的128位会话密钥。需要加密的明文数据需要用文本文件(.txt)存放,程序运行的第一步首先就是按用户输入的文件名将需要加/解密的文件打开,若文件打开失败(文件不存在或文件名或扩展名错)则程序自动退出。加密后生成的加密文件的文件名与明文文件名相同,但扩展名为.enc,如果是解密,则解密生成的明文文件名为tempfile.txt
  推荐精品文章

·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