c语言实现idea加密算法

本文详细介绍了IDEA(国际数据加密算法)及其C语言实现过程,包括算法的密钥生成、加解密步骤,以及在PGP中的应用。IDEA是一种对称密钥算法,具有128位的密钥长度,旨在提供比DES更高的安全性。文章还提到了IDEA的解密过程与加密过程类似,只是密钥不同。在实现细节中,作者强调了数据在内存中的存储方式和密钥结构体的定义,并提供了部分关键代码片段。
摘要由CSDN通过智能技术生成

  

IDEA数据加密算法及实现

 

 作者:孤独剑

 

IDEA对称数据加密算法,是我写的第一个关于加解密方面的算法,在大学宿舍里弄了差不多将近二十个小时终于搞懂了。刚开始受到了“不良”资料的误导走了很长时间的弯路,后来在图书馆看到了正确的介绍才终于把这个算法给弄出来了。

 

1   简介

 

  IDEA,即国际数据加密算法

 

  是旅居瑞士中国青年学者来学嘉和著名密码专家J.Massey1990年提出的。它在1990年正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于三重DES,和DES一样IDEA也是属于对称密钥算法。发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。

类似于DESIDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。

 

由于IDEA是在美国之外提出并发展起来的,避开了美国法律上对加密技术的诸多限制,因此,有关IDEA算法和实现技术的书籍都可以自由出版和交流,可极大地促进IDEA的发展和完善。但由于该算法出现的时间不长,针对它的攻击也还不多,还未经过较长时间的考验。因此,尚不能判断出它的优势和缺陷。

 

  在PGP(pretty good privacy)中,IDEA算法被采用。

 

2   算法详解:

 

2.1产生密钥

 

算法用了52个子密钥。首先,将128-位源密钥分成816-位子密钥。源密钥再次向左环移25位产生另外8个子密钥,如此进行直到产生完52个密匙。具体是:

 

IDEA总共进行8

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值