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属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。
实操指南:如何监控聊天中的敏感信息?这款秘籍软件,轻松掌握微信聊天动态
电影《摩登时代》里,流水线工人就连在吃饭时都要用“自动喂食机”提高效率,这样才能挤出更多时间投入工作。虽然现在打工人不至于此,但有些老板仍然放心不下……像企业聊天记录往往蕴含着大量的敏感信息。为了确保信息安全,监控聊天中的敏感信息成为了一项必要且重要的工作。以下是一款秘籍软件,帮助你轻松掌握微信聊天动态,确保信息安全。...
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过员工上班在干什么?摸鱼?打游戏?老板该怎么管理?如何才能监视怎么监控员工上班情况?监控员工上班情况可以通过多种方式实现,但重要的是要确保这些措施既合法又合规,同时尊重员工的隐私权。以下是一些建议的方法:一、制定明确的行为规范与奖惩制度1、制定行为规范: 企...
怎么监控员工上班情况?快速监控员工状态
怎么监控员工上班情况?快速监控员工状态在企业管理中,如何有效监控员工上班情况,确保工作效率与团队协作,是每位老板都需面对的课题。本文为您揭秘五招快速监控员工状态的实用技巧,不仅能帮助您实时掌握员工动态,还能提升整体管理效率。作为老板,掌握这些技巧,将让您在企业管理中游刃有余,轻松应对各种挑战。一、使用安企神软件实时监控...
安企神桌管软件:提升企业管理效率的全能助力
安企神桌管软件:提升企业管理效率的全能助力在当今竞争激烈的商业环境中,企业必须不断优化管理和运营流程,以提高效率和盈利能力。安企神桌管软件正是这样一款面向中小企业的管理工具,能够帮助企业在多方面提升综合管理水平。本文将详细探讨安企神桌管软件给企业带来的多重价值。一、全方位的管理功能安企神桌管软件是一款集成了多种管理功能...
安企神:揭开终端安全管理软件的神秘面纱
安企神:揭开终端安全管理软件的神秘面纱在数字化日益普及的今天,企业的网络安全问题愈发显得重要。数据泄露、网络攻击等事件层出不穷,如何保障企业内部信息的安全性成为众多企业关心的焦点。安企神终端安全管理软件应运而生,作为一款专业的安全管理工具,它的功能与优势备受关注。本文将全面揭秘安企神软件的核心功能、应用场景及其在终端安...