IDEA加密算法,被广泛应用于各种领。在某些特定场合,我们基于IDEA加密算法,提出了一种新颖的十进制短分组加密技术。该十进制分组密码采用IDEA密码的轮变换结构,并重新定义其中的三种基本运算以满足十进制加密的需要。与IDEA、AES、DES等分组加密算法不同的是,加解密过程中的明文、密文及各个中间状态都是等长的十进制数分组。
一、基于IDEA加密算法的十进制短分组加密算法原理
由于异或运算对十进制数没有可逆性,所以要对IDEA加密算法中的运算进行重新设计。考虑到加密算法对十进制数的可逆性,同时保证加密算法的性能,此算法采用十进制模加运算、十进制模乘运算和十进制数异或运算三种基本运算。加密算法可以对8位、16位、32位和64位四种长度的十进制明文分组进行加解密,密钥取相应明文长度的两倍。下面我们就以32位长度的明文分组为例,讨论此加密算法的实现原理。
1、加密算法中的三种运算
由于IDEA加密算法中的三种运算:二进制的异或运算、模216整数加法、模216+1整数乘法对十进制数不再适用,所以要对IDEA加密算法中的运算进行重新设计。
(1)十进制模加运算+
十进制模加运算记为+。本文采用模100000000加法。
(2)十进制模乘运算☉
十进制模乘运算记为☉。相乘运算后模比100000000大的素数,本文采用模100000007乘法。
(3)十进制数异或运算⊕
十进制数异或运算记为⊕。A⊕B即B按A的相应位变化,若B的相应位是奇数则A相应位作加5运算,若B的相应位为偶数,则A相应位作加0运算,即:
C=A⊕B<=>C[i]=(A[i]+B[i]*5)%10
2、算法的轮变换
基于IDEA加密算法的十进制短分组加密算法首先进行8轮相似的迭代变换,迭代变换过程如图所示。


3、密钥扩展算法
借鉴了IDEA的密钥扩展流程,解密子密钥与加密子密钥的关系与IDEA一致。由64位原始密钥生成52个8位子密钥,前八轮每轮使用6个子密钥,输出变换的第九轮使用4个子密钥。64位加密密钥被分为8个8位子密钥(前8个子密钥分别记作Z1,Z2,…,Z8)。然后密钥被左移12位,并再次划分为8个子密钥,下一轮左移13位也划分为8个子密钥。上述两个左移方式交替进行,重复这一过程,直到生成所有的52个子密钥。同IDEA一样,解密子密钥与加密子密钥之间的关系如下表所示:

4、算法的加密和解密
基于IDEA的十进制加密算法的加密流程由上述三种运算构成,进行8轮迭代,最后进行末轮输出变换。整个加密算法的具体加密流程和解密流程如下图所示:

在上图中,左边是加密流程,右边是解密流程。在对IDEA中的运算进行重新定义后,必须保证加密运算与解密运算的可逆性。本文加密算法满足这一性质,下面给出理论证明。现在从下往上考虑。对加密过程的最后一个输出变换,以下关系成立:
Y1=W81☉Z49Y2=W83+Z50Y3=W82+Z51Y4=W84☉Z52
解密过程中第1轮的第1步产生以下关系:
J11=Y1☉U1J12=Y2+U2J13=Y3+U3J14=Y4☉U4
将解密子密钥由加密子密钥表达并将Y1,Y2,Y3,Y4代入以下关系,有:
J11=Y1☉Z49-1=W81☉Z49☉Z49-1=W81
J12=Y2+-Z50=W83+Z50+-Z50=W83
J13=Y3+-Z51=W82+Z51+-Z51=W82
J14=Y4☉Z52-1=W84☉Z52☉Z52-1=W84
可见解密过程第1轮第1步的输出等于加密过程最后一步输入中第2个子段和第3个子段交换后的值。可得以下关系:
W81=I81☉MAR(I81☉I83,I82☉I84)
W82=I83☉MAR(I81☉I83,I82☉I84)
W83=I82⊕MAL(I81⊕I83,I82⊕I84)
W84=I84⊕MAL(I81⊕I83,I82⊕I84)
其中,MAR(X,Y)是MA结构输入为X和Y时的右边输出,MAL(X,Y)是左边输出。则有:
V11=J11⊕MAR(J11⊕J13,J12⊕J14)=W81⊕MAR(W81⊕W82,W83⊕W84)=I81⊕MAR(I81⊕I83,I82⊕I84)⊕MAR[I81⊕MAR(I81⊕I83,I82⊕I84)⊕I83⊕MAR(I81⊕I83,I82⊕I84),I82⊕MAL(I81⊕I83,I82⊕I84)⊕I84⊕MAL(I81⊕I83,I82⊕I84)]=I81⊕MAR(I81⊕I83,I82⊕I84)⊕MAR(I81⊕I83,I82⊕I84)=I81
同理,可有V12=I83,V13=I82,V14=I84。
所以解密过程第1轮第2步的输出等于加密过程倒数第2步输入中第2个子段和第3个子段交换后的值。
同理可证上图中每步都有上述类似关系,这种关系一直保持到V81=I11,V82=I13,V83=I12,V84=I14。即除第2个子段和第3个子段交换位置外,解密过程的输出变换与加密过程第1轮第1步的变换完全相同。
综上可知,整个解密过程的输出等于整个加密过程的输入。
二、基于IDEA加密算法的十进制短分组加密算法性能分析
定义1:对于加密函数EK(P)中的参数K和P(解密函数DK(C)中的参数K和C),每次加(解)密只改变其中某个参数的一位,另一个参数保持不变,把多次加(解)密得到的密(明)文相比较,每一位上相异的比率称为加密(解密)扩散率[2]。
由定义1可知,扩散率越大,相同的明文不同的密钥加密得到相同的密文的概率就越小,可以更有效的防止攻击者已知部分密钥相关性攻击。扩散率越大,密码的雪崩效应越好,安全性也就越高。
定义2对于一个加密算法,若扩散率大于等于0.5,则称该加密算法达到了完全扩散。我们对该算法的加密性能进行了软件仿真测试分析。分别以8位、16位、32位、64位十进制数为加密分组,进行1到8轮的加密、解密运算测试。下面是以32位十进制数为加密分组所得的测试结果。加密过程中明文对密文的扩散率,密钥对密文的扩散率如图所示:

解密过程中密文对明文的扩散率,密钥对明文的扩散率如图所示。

从图中可看出,第1轮加密的输出就已经有了很好的扩散性,2轮加密过后所有扩散率均达到了完全扩散。
此加密算法借鉴了IDEA密码的思想,并对其中的运算进行了重新定义,以适应十进制数加密、解密的要求。引入的新的十进制运算能够很好地完成对十进制分组的加密和解密,并对加密与解密的可逆性进行了理论证明。算法实现容易,加密解密速度快,加密强度高,具有较高的安全性,该加密算法可广泛用于各种需要十进制数加密的领域。
小知识之IDEA加密算法:
IDEA(International Data Encryption Algorithm)是瑞士的James Massey,Xuejia Lai等人提出的加密算法,在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。
辛辛苦苦提拔起来的销冠,反手把公司卖了:内部人员泄密如何防范?从行为审计到技术锁死!
2026年硬核干货拆解,企业等保2.0怎么做才能快速通关?企业速通!
离职骨干连夜拷走十几个G,去新公司一双击全成废码:这套图纸加密方法简直绝杀!
研发骨干用几块钱的U盘卷走图纸:员工用U盘拷走图纸怎么办?企业自救方案!
军工软件源代码加密怎么做?五个超顶用的加密方法分享,分分钟教会你!
离职工程师把图纸塞进压缩包带走:图纸防泄密这一记反杀,让他去新公司立功的美梦当场碎掉!
销冠离职带走千万业务大盘?如何防范销售跳槽引发的企业资产与客户流失危机!
源代码加密软件哪个好?安企神软件透明加密+外发管控+权限分级三重守护!
企业数据防泄露措施有哪些?
企业数据防泄露措施有哪些?企业数据防泄露措施有哪些?找谁做?随着信息技术的不断发展,企业数据泄露事件频繁发生,给企业带来了巨大的经济损失和声誉损失。为了保护企业的核心数据,企业需要采取一系列的数据防泄露措施。本文将介绍企业数据防泄露的措施,帮助企业更好地保护数据安全。一、数据加密数据加密是一种常用的数据防泄露措施。通过...
最强干货:企业数据防泄密的26种实战方法
防止内部泄密的方法1、教育员工:不要低估员工教育的力量。CoSoSys的研究显示,60%的员工不知道哪些公司的数据是机密的。因此,他们可能会意外泄漏或使用不当。2、签署法律文件:很多企业在员工入职的时候,都会签署保密协议,尤其是开发人员这样的涉密人员,通过这种方式,可以一定程度上的防止员工主动泄密。3、文件加密:文件加...
如何规范上班时员工行为?
很多公司员工上班期间会打游戏、刷剧、看电影、炒股、干一些与工作无关的事,这极大的影响了公司的业绩和员工的工作效率和氛围。那么应该如何规范员工的行为呢?1、利用安企神软件对员工的办公电脑打游戏、刷剧、看电影、炒股等行为进行禁止。设置方法:打开策略模板管理 > 应用程序管控 > 然后勾选【开启程序黑白名单】然后...
四种屏幕防拍照、截屏、打印等数据泄露水印解决方案
信息媒体的数字化为信息的存取提供了极大的便利性,同时也显著提高了信息表达的效率和准确性。特别是随着计算机网络通讯技术的发展,数据的交换和传输变成了一个相对简单的过程,人们借助于计算机、数字扫描仪、打印机等电子设备可以方便、迅速地将数字信息传输到所期望的任何地方。但随之而来的副作用是这些数字形式的数据文件在流转过程中安全...
商业机密用u盘存储安全吗?
不安全商业机密用u盘存储是不安全的,商场如战场,如今的商业战场竞争越来越激烈,很多公司都会不遗余力的窃取同行的商业机密,而很多的管理者会将企业的重要商业机密存储在u盘中,今天给大家讲一下如何将商业机密更安全的存储起来。1、U盘内数据加密利用安企神可以对公司的机密文件进行加密,然后将加密后的机密文件移到u盘里,这样U盘内...