CN108768617B - 一种基于传统分组密码的保持格式加密方法 - Google Patents

一种基于传统分组密码的保持格式加密方法 Download PDF

Info

Publication number
CN108768617B
CN108768617B CN201810574634.6A CN201810574634A CN108768617B CN 108768617 B CN108768617 B CN 108768617B CN 201810574634 A CN201810574634 A CN 201810574634A CN 108768617 B CN108768617 B CN 108768617B
Authority
CN
China
Prior art keywords
key
block cipher
encryption
sub
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810574634.6A
Other languages
English (en)
Other versions
CN108768617A (zh
Inventor
谢明明
彭长根
刘波涛
吴睿雪
丁红发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guizhou University
Original Assignee
Guizhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guizhou University filed Critical Guizhou University
Priority to CN201810574634.6A priority Critical patent/CN108768617B/zh
Publication of CN108768617A publication Critical patent/CN108768617A/zh
Application granted granted Critical
Publication of CN108768617B publication Critical patent/CN108768617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于传统分组密码的保持格式加密方法。本发明设计了一种保持数字型和字母型混合格式的加密方法,该加密方法通过构造替换表实现数字和字母与比特串之间的转化,使用了Feistel网络结构,在轮运算中使用了传统的分组密码算法,保障算法的安全性,在轮运算前后设计了压缩映射运算,不但保障了加密后的数据在指定格式范围内,也在整体上保留了Feistel网络结构加密与解密过程一致的特点,最终加密结果的长度与明文保持一致。用户根据实际应用场景需求,可以选择不同的替换表和选择不同的分组密码算法对数据进行加密和解密。该加密方法保障了数据在传输和存储阶段的安全,并且不会破坏数据库结构和业务系统功能。

Description

一种基于传统分组密码的保持格式加密方法
技术领域
本发明属于隐私保护数据加密领域,具体涉及一种基于传统分组密码的保持格式的加密方法,该方法可以应用于电子商务等需要保护数字型和字母型格式数据的场景。
背景技术
随着电子商务平台的快速发展,网上交易、手机银行等服务给人们(用户)的生活带来了许多便利。在这些服务中存在着这样一类敏感数据,其特征是内容少,价值高,是攻击者重点窃取的数据,如电子交易过程中发挥重要的身份认证作用的验证码,在传输和存储阶段需要进行保护,一旦被窃取,极大可能会造成用户财产损失。密码技术是保障数据安全性的最有效方法之一,这类敏感数据往往会包含一定的格式,如:固定长度、纯数字、数字与字母混合等,传统的加密算法(如:AES)会破坏数据的格式,会出现加密后的数据与原有数据长度不等、包含除原有格式之外的其他字符等现象,而且会影响数据库结构和业务系统功能。因此,对这类敏感数据做到保持格式加密不仅可以保证数据的安全传输和存储,而且可以让窃取者无法判断数据的真伪,也为进一步追踪窃取者提供基础技术手段。
发明内容
本发明目的是提供一种基于传统分组密码的保持格式加密方法,它能够解决包含数字和字母的数据在加密之后仍然保持原数据格式的特征。
本发明为实现上述目的,通过以下技术方案实现:一种基于传统分组密码的保持格式加密方法包括以下步骤:
S1:设明文的长度为n,构造替换表T,将明文中的数字、大写字母和小写字母替换成{0,1,2,…,61}中数,并依次将每一位数转化为6位二进制比特串,得到长度为6n的明文m;
S2:选择一种分组长度大于3n的分组密码算法(Block cipher algorithm),记为E,并选取与E对应长度的密钥Key,将密钥Key进行密钥扩展,得到key0,key1,key2,…,keyr共r+1个子密钥,除key0外,每一个子密钥的长度与分组密码算法E的密钥长度相同,并根据子密钥key0计算得到两个校验码check1,check2,校验码不需要进行传输,解密不使用校验码,明文加密之后校验码可销毁;
S3:将明文m与子密钥key0进行f1运算,即m=f1(m,key0),经过轮函数F的运算,即c=F(m),得到密文c,将密文c与子密钥key0进行f2运算,即c=f2(c,key0),然后按每6位转化为十进制,并根据替换表T变换成明文格式,此时完成明文加密,如果得到加密后的结果包含校验码中的一个或两个,则更换密钥重新进行加密操作;
S4:解密过程与加密过程相似,不同之处是在轮运算中解密过程中子密钥使用的顺序与加密过程相反。
进一步,所述步骤S1包括如下步骤:
S11:明文长度为n,表示为X1X2…Xn,Xi∈X={0,1,…,9,a,b,…,z,A,B,…,Z},在这62元素所组成的集合X与集合Y={0,1,…,61}之间构造一个一一映射的关系,即构造替换表
Figure BDA0001687095940000021
S12:明文X1X2…Xn经过替换表T变换后得到Y1Y2…Yn
S13:Y1Y2…Yn中每一个Yi按十进制转二进制的方式转化成6位比特串,从而组合成长度为6n的密文比特串m=(m1m2…m6n),mi∈{0,1},(i=1,2,…,6n)。
进一步,所述步骤S2包括如下步骤:
S21:选择一种分组密码算法,记为E,E的分组长度为nE(nE≥3n),E的密钥长度为mE,E的加密结果表示为cE=EK(mE),其中K为密钥,mE为分组密码E明文,cE为分组密码E对明文mE加密的结果;
S22:选取长度为mE的密钥Key,作为本发明的密钥;
S23:密钥Key进行密钥扩展。
其中S23包括如下步骤:
S231:密钥Key表示为k1k2…kmE,ki∈{0,1}(i=1,2,…,mE),截取前四位与比特串“10”组合构成子密钥key0=k1k2k3k401;
S232:子密钥key1,key2,…,keyr按如下方式进行计算:
Figure BDA0001687095940000022
Figure BDA0001687095940000023
其中<<<表示左循环位移,
Figure BDA0001687095940000024
S233:校验码check1,check2计算公式如下:
Figure BDA0001687095940000025
其中bin2dec(·)表示由二进制转化为十进制。
进一步,所述步骤S3包括如下步骤:
S31:明文m=(m1m2…m6n)与子密钥key0=k1k2k3k410进行f1运算,
m=f1(m,key0),f1运算细节如下:
Figure BDA0001687095940000026
Figure BDA0001687095940000027
S32:将f1运算的结果m=(m1m2…m6n)进行轮函数F运算;
其中S32包括如下步骤:
S321:将m=(m1m2…m6n)划分为两部分,L0=(m1m2…m3n),R0=(m3n+1m3n+2…m6n);
S322:按如下迭代公式进行r轮运算。迭代公式为:
Figure BDA0001687095940000028
其中trunc(Ekeyi(Ri-1),3n)表示为将Ri-1使用密钥keyi和加密算法E进行加密,得到的结果截取前3n位;
S323:经过r轮迭代得到(Lr,Rr),交换左右两边顺序Lr+1=Rr,Rr+1=Lr,从而得到密文c=(Lr+1,Rr+1),记c=(c1c2…c6n)。
S33:密文c=(c1c2…c6n)与子密钥key0=k1k2k3k410进行f2运算,即c=f2(c,key0),f2运算细节如下:
记tci=c1+6ic2+6ic3+6ic4+6ic5+6ic6+6i(i=0,1,…,n-1)
Figure BDA0001687095940000031
S34:密文c=(c1c2…c6n)中每6位依次按二进制转十进制的方式转化成Y1'Y2'…Yn',其中Yi'∈Y(i=1,2,…,n);
S35:Y1'Y2'…Yn'经过替换表T变换成X1'X2'…Xn',其中Xi'∈X(i=1,2,…,n),此时完成了X1X2…Xn到X1'X2'…Xn'的加密过程;
S36:判断X1'X2'…Xn'中是否包含校验码check1,check2中的1个或者2个,若有,则更换密钥重新加密,若无,则X1'X2'…Xn'为加密之后的结果。
进一步,所述步骤S4包括以下步骤
S41:密文X1'X2'…Xn'经过替换表T变换成Y1'Y2'…Yn';
S42:Y1'Y2'…Yn'中每一个Yi'按十进制转二进制的方式转化成6位比特串,变换为c=(c1c2…c6n);
S43:c=(c1c2…c6n)与子密钥key0=k1k2k3k410进行f1运算,即c=f1(c,key0);
S44:c=(c1c2…c6n)经过轮函数F运算,m=F(c),得到m=(m1m2…m6n),此时轮函数F运算中密钥使用顺序与加密过程相反,具体过程为:将c=(c1c2…c6n)划分为左右两部分,L0=(c1c2…c3n),R0=(c3n+1c3n+2…c6n),按如下迭代公式进行r轮运算
Figure BDA0001687095940000032
得到(Lr,Rr),交换左右两边顺序Lr+1=Rr,Rr+1=Lr,从而得到m=(Lr+1,Rr+1);
S45:m经过f2运算,m=f2(m);
S46:m中每6位依次按二进制转十进制的方式转化成Y1Y2…Yn
S47:Y1Y2…Yn经过替换表T,变换成X1X2…Xn,得到解密结果,完成解密过程。
本发明原理是,在一种基于传统分组密码的保持格式加密方法中构造了f1运算和f2运算保证了在加密结果和解密结果在给定的取值范围内;并结合了Feistel网络结构,保证加密过程和解密过程一致;在轮函数F的构造中,使用了传统分组密码算法,让本发明的安全性依托于所选取的传统分组密码算法。
本发明是一种基于传统分组密码的保持格式加密方法,实现了保持数值型和字母型混合格式的加密,解决了传统加密方法会破坏数据库结构和业务系统功能的问题。
由于采用了上述技术方案,本发明设计了一种基于传统分组密码的保持格式加密方法,该加密方法构造了f1运算和f2运算,使得加密结果在指定范围内;并且轮函数的构造使用了Feistel网络结构,结合f1运算和f2运算,使得该加密方法解密过程和解密过程是相同的算法,解密过程不需要消耗额外的资源;在轮函数的设计中,使用了传统的分组密码算法,该加密方法的安全性能够得到保障。本发明可以适用于任何长度的明文,并且用户可以根据实际应用场合需求,在轮函数的设计中可以选着不同的分组密码算法,并且该方法的加解密的速率依赖于所选择的分组密码算的加密速率。该加密方法将成为保持格式加密的研究的转折点,后续研究保持格式加密不仅仅是数值型和字母型,还有特殊符号和中文,乃至自定义的格式。
附图说明
图1为本发明所述方法的加密和解密过程示意图;
图2为本发明所述方法的轮函数F运算过程示意图;
图3为本发明所述方法的密钥扩展示意图;
具体实施方式
为了使本发明的目的、技术方案及其优点更加清楚明白,下面结合附图及具体的实施例,对本发明作进一步详细说明。所述具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的实施例1:使用本发明所述一种基于传统分组密码的保持格式加密方法对长度为6位的数字和字母混合的明文进行加密和解密,并且在轮函数中选取DES分组密码算法,DES的分组长度为64,密钥长度为64,选取轮数为6轮。本发明所述一种基于传统分组密码的保持格式加密方法的加密与解密是相同的算法,不同之处是加密与解密所使用的子密钥的顺序相反。所述基于传统分组密码的保持格式加密方法的加密与解密过程如图1所示。
所述一种基于传统分组密码的保持格式加密方法的加密算法描述:
算法1:实施例1的基于传统分组密码的保持格式加密方法的加密过程
输入:Plaintext[1:6],Key[1:64]
输出:Ciphertext[1:6]
1.state[1:6]←Plaintext[1:6]
2.state[1:12]←T(state[1:6]);
3.state[1:36]←dec2bin(state[1:12]);
Figure BDA0001687095940000041
Figure BDA0001687095940000042
6.for i=1to r do
Figure BDA0001687095940000043
8.end for
Figure BDA0001687095940000044
Figure BDA0001687095940000045
Figure BDA0001687095940000046
Figure BDA0001687095940000047
13.判断Ciphertext[1:6]是否含有校验码check1,check2中1个或2个,若有,则更换密钥跳转到步骤1;若无,返回Ciphertext[1:6]
在算法1中,Plaintext是6位明文,Key是长度为64-bit的密钥,轮数r的取值为6。所述一种基于传统分组密码的保持格式加密方法包括替换表变换、进制转换、密钥扩展、f1运算、轮函数运算、f2运算和校验码比对步骤。
替换表变换:将明文中的数字、大写字母和小写字母按照一定的排列顺序与[0,61]之间的整数一一对应,使得明文与[0,61]中整数之间能够相互转化。替换表针对于实施例1,替换表T构造的方法见表1。
表1.实施例1的替换表T
Figure BDA0001687095940000048
Figure BDA0001687095940000051
进制转换:将十进制与二进制相互转化。具体而言,2位十进制的数转化为6-bit的二进制比特串,该过程在算法1中用dec2bin(·)表示;6-bit的二进制比特串转化为2位十进制数,该过程在算法1中用bin2dec(·)表示。
密钥扩展:本发明的密钥扩展包含两个部分:
第一部分,截取密钥的前4位与“01”组合成一个长度为6-bit的子密钥key0,子密钥key0与传统分组密码算法的子密钥不同,它不参与轮函数运算,在本发明参与f1运算、f2运算和校验码的计算;
第二部分,剩下的子密钥和传统分组密码算法的子密钥作用相同,参与轮函数运算,产生步骤是将前一个子密钥与轮数r异或,然后将右半部分与左半部分异或的结果放在右半部分,最后将整体进行左循环位移r位。所述一种基于传统分组密码的保持格式加密方法的密钥扩展过程如图3所示。下面详细描述密钥扩展算法,并在算法1中用Extend(·)表示密钥扩展。
算法2:一种基于传统分组密码的保持格式加密方法的密钥扩展
输入:Key[1:64],r;
输出:
Figure BDA0001687095940000052
Figure BDA0001687095940000053
Figure BDA0001687095940000054
3.for i=1to r do
Figure BDA0001687095940000055
Figure BDA0001687095940000056
Figure BDA0001687095940000057
7.end for
8.返回
Figure BDA0001687095940000058
f1运算和f2运算:本发明设计f2运算的目的是防止经过轮函数F运算之后按6-bit进行分割时产生“111111”或“111110”,出现无法经过替换表变换的问题;由于轮函数F运算采用Feistel网络结构,为了使整个算法的加密和解密符合Feistel网络结构的特点,所以设计f1运算,用以达到整体上加密和解密的过程一致的效果,不同之处在于加密和解密过程子密钥使用的顺序相反。
由于f1运算和f2运算是一个64-bit到62-bit的压缩映射,这导致明文中将会有两个数字、大写字母或小写字母经过f2运算后无法变换回来,因此将这两个经过f2运算后无法变换回来的数字、大写字母或小写字母作为校验码。下面详细描述f1运算、f2运算和校验码的计算。
算法3:一种基于传统分组密码的保持格式加密方法的f1运算
输入:
Figure BDA0001687095940000059
输出:state[1:6n]
1.for i=1to n do
2.state[1:6]←state[6i-5:6i)]
Figure BDA0001687095940000061
4.if strcmp(state[1:6],111111)||strcmp(state[1:6],111110)
5.state[6i-5:6i)]←state[1:6]
6.end if
7.end for
8.返回state[1:6n]。
算法4:一种基于传统分组密码的保持格式加密方法的f2运算
输入:
Figure BDA0001687095940000062
输出:state[1:6n]
1.for i=1to n do
2.state[1:6]←state[6i-5:6i)]
3.if strcmp(state[1:6],111111)||strcmp(state[1:6],111110)
Figure BDA0001687095940000063
5.end if
6.end for
7.返回state[1:6n]。
校验码的计算是根据子密钥key0和替换T得到的,具体见算法5。
算法5:一种基于传统分组密码的保持格式加密方法的校验码计算
输入:
Figure BDA0001687095940000064
输出:check1,check2
Figure BDA0001687095940000065
Figure BDA0001687095940000066
Figure BDA0001687095940000067
Figure BDA0001687095940000068
Figure BDA0001687095940000069
Figure BDA00016870959400000610
7.返回check1,check2
轮函数F运算:将数据分为左右两个等长度部分,右边部分作为下一轮运算的左边部分;使用传统的分组加密算法E(实施例1使用的是DES)和子密钥对右边部分进行加密操作,所得结果从高位截取,截取的长度与右边部分等长,将截取结果与左边部分进行异或操作,得到结果作为下一轮右边部分。上述过程重复r(实施例1中轮数为6)轮运算,完成整个轮函数F的运算。。
本发明的轮函数F运算的设计是以传统的分组密码算法为基础,其算法的安全性依赖于所使用的分组密码算法的安全性。实施例1在轮函数F运算中使用的分组密码是DES,仅仅用以解释本发明,没有对本发明的安全性做严格要求。所述一种基于传统分组密码的保持格式加密方法的轮函数F运算过程如图2所示。下面详细描述本发明中的轮函数F运算过程。
算法6:一种基于传统分组密码的保持格式加密方法的轮函数F运算
输入:
Figure BDA00016870959400000611
输出:c[1:36]
Figure BDA0001687095940000071
2.for i=1to r do
Figure BDA0001687095940000072
Figure BDA0001687095940000073
5.end for
Figure BDA0001687095940000074
Figure BDA0001687095940000075
Figure BDA0001687095940000076
9.返回c[1:36]
一种基于传统分组密码的保持格式加密方法的解密:本发明所设计的轮函数F运算采用了Feistel网络结构,并设计了f1运算和f2运算,使得解密过程保存了Feistel网络结构加密与解密一致的特点,这样设计可以减少硬件资源。解密过程使用子密钥的顺序是解密过程子密钥使用顺序的逆序。算法6结合实施例给出了解密的详细过程。
算法6:实施例1的基于传统分组密码的保持格式加密方法的解密过程
输入:Ciphertext[1:6],Key[1:64]
输出:Plaintext[1:6]
1.state[1:6]←Ciphertext[1:6]
2.state[1:12]←T(state[1:6]);
3.state[1:36]←dec2bin(state[1:12]);
Figure BDA0001687095940000077
Figure BDA0001687095940000078
6.for i=1to r do
Figure BDA0001687095940000079
8.end for
Figure BDA00016870959400000710
Figure BDA00016870959400000711
Figure BDA00016870959400000712
Figure BDA00016870959400000713
13.返回Plaintext[1:6]
为了对本发明实施例1解释的更加清楚,采用本发明所述一种基于传统分组密码的保持格式加密方法对随机选取的明文“Zc6110”进行加密和解密操作,并展现详细的过程。由于DES算法的密钥长度为64-bit,所以选取密钥为03345799BBCDFF1(十六进制表示),轮数为6轮。
密钥03345799BBCDFF1进行密钥扩展得到子密钥见表2。
表2.密钥03345799BBCDFF1进行密钥扩展的结果
Figure BDA00016870959400000714
Figure BDA0001687095940000081
根据子密钥key0和替换表T计算得到校验码为check1=O和check2=Y;
明文“Zc6110”经过替换表变换操作得到160242111105;
160242111105经过dec2bin(·)操作得到010000000010101010001011001011000101;
010000000010101010001011001011000101经过f1运算之后保持不变;
010000000010101010001011001011000101经过加密F运算得到结果为000010111111110010000110001101101010;
000010111111110010000110001101101010经过f2运算之后得到000010111101110010000110001101101010;
000010111101110010000110001101101010经过bin2dec(·)操作得到026150061342;
026150061342经过替换表变换得到coQfl6;
经过判断,coQfl6不含有校验码O和Y,所以coQfl6为所述一种基于传统分组密码的保持格式加密方法的结果。
解密:密文“coQfl6”经过替换表变换得到026150061342;
026150061342经过dec2bin(·)操作得到000010111101110010000110001101101010;
000010111101110010000110001101101010经过f1运算之后得到000010111111110010000110001101101010;
000010111111110010000110001101101010经过解密F运算得到结果为010000000010101010001011001011000101;
010000000010101010001011001011000101经过f2运算之后保持不变;
010000000010101010001011001011000101经过bin2dec(·)操作得到160242111105;
160242111105经过替换表变换得到Zc6110,此时完成解密。
一种基于传统分组密码的保持格式的加密方法,实现了保持数字型和字母型混合格式的数据加密,通过设计f1运算、f2运算和替换表保证了加密结果在指定的格式内,结合Feistel网络结构,实现加密和解密过程一致,在轮函数中使用传统分组密码保障了算法的安全性。
以上结合具体实施例对本发明进行了详细的说明,这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可以做出许多变形和改进,如在轮函数中采用不同的传统分组密码算法或者为了节约资源使用轻量级分组密码,替换表的更改,以及f1运算和f2运算等均可作出改变,这些改变也视为本发明的保护范围内。

Claims (4)

1.一种基于传统分组密码的保持格式加密方法,其特征在于,包括如下步骤:
步骤1:设明文的长度为n,构造替换表T,将明文中的数字、大写字母和小写字母替换成{0,1,2,…,61}中的数,并依次将每一位数转化为6位二进制比特串,得到长度为6n的明文m;
步骤2:选择一种分组长度大于3n的分组密码算法(Block cipher algorithm),记为E,并选取与E对应长度的密钥Key,将密钥Key进行密钥扩展,得到key0,key1,key2,…,keyr共r+1个子密钥,除key0外,每一个子密钥的长度与分组密码算法E的密钥长度相同,并根据子密钥key0计算得到两个校验码check1,check2,校验码不需要进行传输,解密不使用校验码,明文加密之后校验码可销毁;
步骤3:将明文m与子密钥key0进行f1运算,即m=f1(m,key0),经过轮函数F运算,即c=F(m),得到密文c,将密文c与子密钥key0进行f2运算,即c=f2(c,key0),然后按每6位转化为十进制,并根据替换表T变换成明文格式,此时完成明文加密,如果得到加密后的结果包含校验码中的一个或两个,则更换密钥重新进行加密操作;
步骤4:解密过程与加密过程相似,不同之处是在轮运算中解密过程中子密钥使用的顺序与加密过程相反;
步骤1所述替换表是通过如下方式进行构造:
明文的每一位取值范围为X={0,1,…,9,a,b,…,z,A,B,…,Z},通过与Y={0,1,…,61}之间构造一一映射关系来形成替换表,只要是X与Y的一一映射均可作为替换表;
步骤3所述f1运算、f2运算和轮函数F运算是按如下方法进行设计:
轮函数F运算是将数据m=(m1 m2 … m6n)等长度划分为左右两个部分,L0=(m1 m2 …m3n),R0=(m3n+1 m3n+2 … m6n),并按如下迭代公式进行r轮运算:
Figure FDA0002829808830000011
其中
Figure FDA0002829808830000012
表示为将Ri-1使用密钥keyi和加密算法E进行加密,得到的结果截取前3n位;经过r轮迭代得到(Lr,Rr),交换左右两边顺序Lr+1=Rr,Rr+1=Lr,从而得到c=(Lr+1,Rr+1);
f1运算和f2运算是为了避免经过轮函数F运算后的数据出现“111111”或“111110”,导致无法进行替换表变换操作;m=(m1 m2 … m6n)为待运算数据,子密钥key0=k1k2k3k410,f1运算细节如下:
Figure FDA0002829808830000013
Figure FDA0002829808830000014
c=(c1 c2 … c6n)为待运算数据,子密钥key0=k1k2k3k410,f2运算细节如下:
记tci=c1+6ic2+6ic3+6ic4+6ic5+6ic6+6i(i=0,1,…,n-1)
Figure FDA0002829808830000015
2.根据权利要求1所述基于传统分组密码的保持格式加密方法,其特征在于:步骤2选取传统分组密码算法、密钥扩展和校验码是通过如下算法来实现:
选取传统分组密码算法:选择一种传统分组密码算法E,该分组密码算法可以根据应用场景自行选择合适的分组密码算法,分组长度需要大于明文长度的3倍,该分组密码算法的密钥长度为本发明的密钥长度;
密钥扩展:
Figure FDA0002829808830000021
作为本发明的密钥,其中mE表示密钥的长度,截取Key的前四位和“10”组合构造子密钥key0=k1k2k3k410;将密钥Key与轮数1进行异或运算,所得结果等长度划分为左右两个部分,左边保持不变,右边与左边进行异或操作,从而得到子密钥key1;从子密钥key2开始,将上一轮子密钥keyi-1与轮数i进行异或运算,所得结果等长度划分为左右两个部分,左边保持不变,右边与左边进行异或操作,从而得到子密钥keyi,直至r轮结束,完成子密钥的key1,key2,…,keyr计算;
校验码:校验码check1,check2是根据子密钥key0和替换表计算得到的,计算公式如下
Figure FDA0002829808830000022
其中bin2dec(·)表示由二进制转化为十进制。
3.根据权利要求1所述基于传统分组密码的保持格式加密方法,其特征在于:
步骤4所述解密过程是按如下方法实现:
解密过程与加密过程相似,数据输入的方向相同,不需要设计额外的算法,不同之处在于解密时在轮运算中使用子密钥key1,key2,…,keyr的顺序是加密过程的逆序,具体过程为:将待运算数据c=(c1 c2 … c6n)划分为左右两部分,L0=(c1 c2 … c3n),R0=(c3n+1c3n+2 … c6n),按如下迭代公式进行r轮运算
Figure FDA0002829808830000023
得到(Lr,Rr),交换左右两边顺序Lr+1=Rr,Rr+1=Lr,从而得到m=(Lr+1,Rr+1)。
4.根据权利要求2所述基于传统分组密码的保持格式加密方法,其特征在于:子密钥key0不参与轮函数的运算,用于校验码的计算和f1运算、f2运算,子密钥key1,key2,…,keyr参与轮函数的运算,解密过程中使用子密钥key1,key2,…,keyr的顺序和加密过程相反。
CN201810574634.6A 2018-06-06 2018-06-06 一种基于传统分组密码的保持格式加密方法 Active CN108768617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810574634.6A CN108768617B (zh) 2018-06-06 2018-06-06 一种基于传统分组密码的保持格式加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810574634.6A CN108768617B (zh) 2018-06-06 2018-06-06 一种基于传统分组密码的保持格式加密方法

Publications (2)

Publication Number Publication Date
CN108768617A CN108768617A (zh) 2018-11-06
CN108768617B true CN108768617B (zh) 2021-02-23

Family

ID=63999115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810574634.6A Active CN108768617B (zh) 2018-06-06 2018-06-06 一种基于传统分组密码的保持格式加密方法

Country Status (1)

Country Link
CN (1) CN108768617B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257164A (zh) * 2018-11-12 2019-01-22 常熟理工学院 采用逻辑对称算法的多媒体载体网络信息加密方法及系统
CN110516462B (zh) * 2019-08-30 2021-12-07 京东数字科技控股有限公司 用于加密数据的方法和装置
CN110795762B (zh) * 2019-10-30 2023-04-11 贵州大学 基于流密码的保留格式加密方法
CN111211890A (zh) * 2019-12-31 2020-05-29 江苏省未来网络创新研究院 一种基于sdn的网络安全防御系统及其工作方法
CN113595717B (zh) * 2020-04-30 2023-10-17 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆
CN111753317A (zh) * 2020-05-27 2020-10-09 长沙睿永信息技术有限公司 一种等长数字加密的实现方法
CN113204780B (zh) * 2021-05-20 2022-02-18 郑州信大捷安信息技术股份有限公司 保留格式加密算法的实现方法及装置
CN114826560B (zh) * 2022-05-07 2023-05-05 衡阳师范学院 一种轻量级分组密码cref实现方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595539B (zh) * 2013-11-26 2016-08-24 南开大学 保留格式的数值型个人识别信息的加密方法
CN105959098A (zh) * 2016-04-28 2016-09-21 东港股份有限公司 基于多分割Feistel网络的保留格式加密算法
CN106027227A (zh) * 2016-07-01 2016-10-12 浙江工业大学 一种费马数数论变换与safer密码算法相结合的分组加密方法
CN104518865B (zh) * 2014-12-12 2017-06-16 南京邮电大学 一种基于密码本的数据加密方法
CN107707343A (zh) * 2017-11-08 2018-02-16 贵州大学 加解密一致的sp网络结构轻量级lbt分组密码实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595539B (zh) * 2013-11-26 2016-08-24 南开大学 保留格式的数值型个人识别信息的加密方法
CN104518865B (zh) * 2014-12-12 2017-06-16 南京邮电大学 一种基于密码本的数据加密方法
CN105959098A (zh) * 2016-04-28 2016-09-21 东港股份有限公司 基于多分割Feistel网络的保留格式加密算法
CN106027227A (zh) * 2016-07-01 2016-10-12 浙江工业大学 一种费马数数论变换与safer密码算法相结合的分组加密方法
CN107707343A (zh) * 2017-11-08 2018-02-16 贵州大学 加解密一致的sp网络结构轻量级lbt分组密码实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"An Investigation of an S-box Mechanism in Modern Block Cipher Design";Jiqiang Lu and Hwajung Seo;《IEEE》;20171221 *
基于循环式结构和复合域S-box的AES算法IP设计与验证;夏立冰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140515 *

Also Published As

Publication number Publication date
CN108768617A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108768617B (zh) 一种基于传统分组密码的保持格式加密方法
Ramanujam et al. Designing an algorithm with high avalanche effect
Sarkar A simple and generic construction of authenticated encryption with associated data
US9054857B2 (en) Parallelizeable integrity-aware encryption technique
JP4712017B2 (ja) ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
Saraswat et al. An extended hybridization of vigenére and caesar cipher techniques for secure communication
CN110795762B (zh) 基于流密码的保留格式加密方法
Gautam et al. An enhanced cipher technique using vigenere and modified caesar cipher
Abd Ali et al. Novel encryption algorithm for securing sensitive information based on feistel cipher
Vyakaranal et al. Performance analysis of symmetric key cryptographic algorithms
Joshy et al. Text to image encryption technique using RGB substitution and AES
Kumar et al. A novel approach of symmetric key cryptography
Paragas et al. Hill cipher modification: A simplified approach
Sermeno et al. Modified Vigenere cryptosystem: An integrated data encryption module for learning management system
Sakib ANALYSIS ON FUNDAMENTAL ALGEBRAIC CONCEPTS AND INFORMATION SECURITY SYSTEM
Karale et al. The survey of various techniques & algorithms for SMS security
CN113079021A (zh) 基于无证书的网络编码格环签密方法
Sultana et al. Keyless lightweight encipher using homomorphic and binomial coefficients for smart computing applications
Mokhtari et al. Analysis and design of affine and hill cipher
Gupta et al. ASCII conversion based two keys V4S scheme for encryption and decryption—A four step approach
Parihar et al. Blowfish algorithm: a detailed study
CN114826558A (zh) 一种海量数据快速加密方法及系统
Tarawneh Cryptography: Recent Advances and Research Perspectives
Santhi et al. Study of symmetric-key cryptosystems and implementing a secure cryptosystem with des
CN110941815A (zh) 一种新型密码

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant