CN113204779A - 基于对称密码算法的保留格式加密算法的实现方法及装置 - Google Patents

基于对称密码算法的保留格式加密算法的实现方法及装置 Download PDF

Info

Publication number
CN113204779A
CN113204779A CN202110551783.2A CN202110551783A CN113204779A CN 113204779 A CN113204779 A CN 113204779A CN 202110551783 A CN202110551783 A CN 202110551783A CN 113204779 A CN113204779 A CN 113204779A
Authority
CN
China
Prior art keywords
data
character string
round
length
encryption
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.)
Granted
Application number
CN202110551783.2A
Other languages
English (en)
Other versions
CN113204779B (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.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information Technology Co Ltd
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 Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202110551783.2A priority Critical patent/CN113204779B/zh
Publication of CN113204779A publication Critical patent/CN113204779A/zh
Application granted granted Critical
Publication of CN113204779B publication Critical patent/CN113204779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明属于信息安全技术领域,具体涉及一种基于对称密码算法的保留格式加密算法的实现方法及装置,该方法包括将明文字符串进行分段,执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi;执行奇数轮加密时,采用同样类似的过程获得后段数据Bi+1,前段数据为Ai+1=Ai;将前段数据和后段数据进行拼接获得密文字符串;轮函数数据C的构造:将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算Q=[NUMr(A)]m||W⊕[i]z,将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C。

Description

基于对称密码算法的保留格式加密算法的实现方法及装置
技术领域
本发明属于信息安全技术领域,具体涉及一种基于对称密码算法的保留格式加密算法的实现方法及装置。
背景技术
一般的加密方法,密文都是0-1组成的随机数串,不是可见字符;对于数据库中存储的身份证号码、手机号、地理坐标等信息,字段中仅包含数字和字母等可见字符,如果需要加密存储,得到的密文不再是上述可见字符,必须修改原有数据库字段类型和长度,改造的成本巨大。故引申了一种新的加密解决方案,通常称为“保留格式加密”(FPE),格式保留加密机制指明文字符串和密文字符串具有相同的格式和长度,其中格式指字符串取值范围,由于保留格式加密技术保持密文与明文具有相同格式的特性,因此适合于格式敏感的数据加密领域。
以SM4对称密码算法为例,SM4算法采用的是非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出,可知轮函数起着至关重要的作用;基于对称密码算法如何实现保留格式加密和设计轮函数保证算法实现的安全性是目前急需解决的问题。
发明内容
为了解决现有技术中存在的问题,本发明提出了一种基于对称密码算法的保留格式加密算法的实现方法及装置,能够有效实现保留格式加密算法,应用于对附加数据长度有要求的场景,且保障算法的安全性。
为解决上述技术问题,本发明采用以下的技术方案:
本发明提供了一种基于对称密码算法的保留格式加密算法的实现方法,该方法应用于输入包括长度为Tlen的附加数据T的场景,加密过程具体包括:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算
Figure BDA0003075777780000021
将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据,W为附加数据T的分段数据。
进一步地,所述将明文字符串X进行分段包括:
输入长度为n的明文字符串X,输入长度为t的附加数据T,明文字符串X的进制为r;
计算u=(n+1)/2,v=n-u;
置A0=X[1…u],B0=X[u+1…n],i=0。
进一步地,在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure BDA0003075777780000031
Figure BDA0003075777780000032
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003075777780000033
Figure BDA0003075777780000034
表示把数据c按照进制r转换为长度为v的字符串。
进一步地,所述附加数据T的长度Tlen是大于32字节的偶数;将长度为Tlen的附加数据T分段计算获得W包括:计算TL=T[0…Tlen/2],TR=T[Tlen/2…Tlen],在轮数i为偶数时,W=TL,在轮数i为奇数时,W=TR
进一步地,所述保留格式加密算法的实现方法还包括解密过程,解密过程具体包括:
将密文字符串Y进行分段;
在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数;
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数;
将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X;
解密过程中轮函数数据C的构造过程与加密过程相同。
进一步地,所述将密文字符串Y进行分段包括:
输入长度为n的密文字符串Y,输入长度为t的附加数据T,密文字符串Y的进制为r;
计算u=(n+1)/2,v=n-u;
置An=Y[1…u],Bn=Y[u+1…n],i=n。
进一步地,在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure BDA0003075777780000041
Figure BDA0003075777780000042
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003075777780000043
Figure BDA0003075777780000044
表示把数据c按照进制r转换为长度为u的字符串。
本发明还提供了一种基于对称密码算法的保留格式加密算法的实现装置,该装置应用于输入包括长度为Tlen的附加数据T的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算
Figure BDA0003075777780000051
将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据,W为附加数据T的分段数据。
进一步地,所述将明文字符串X进行分段包括:
输入长度为n的明文字符串X,输入长度为t的附加数据T,明文字符串X的进制为r;
计算u=(n+1)/2,v=n-u;
置A0=X[1…u],B0=X[u+1…n],i=0;
在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure BDA0003075777780000052
Figure BDA0003075777780000053
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003075777780000054
Figure BDA0003075777780000055
表示把数据c按照进制r转换为长度为v的字符串;
附加数据T的长度Tlen是大于32字节的偶数;将长度为Tlen的附加数据T分段计算获得W包括:计算TL=T[0…Tlen/2],TR=T[Tlen/2…Tlen],在轮数i为偶数时,W=TL,在轮数i为奇数时,W=TR
进一步地,所述保留格式加密算法的实现装置还包括解密单元,所述解密单元用于:
将密文字符串Y进行分段;
在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数;
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数;
将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X;
解密过程中轮函数数据C的构造过程与加密过程相同;
所述将密文字符串Y进行分段包括:
输入长度为n的密文字符串Y,输入长度为t的附加数据T,密文字符串Y的进制为r;
计算u=(n+1)/2,v=n-u;
置An=Y[1…u],Bn=Y[u+1…n],i=n;
在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure BDA0003075777780000061
Figure BDA0003075777780000062
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003075777780000071
Figure BDA0003075777780000072
表示把数据c按照进制r转换为长度为u的字符串。
与现有技术相比,本发明具有以下优点:
本发明提出的一种基于对称密码算法的保留格式加密算法的实现方法及装置,通过对明文字符串进行分段以及采用偶数轮、奇数轮的加密机制,且通过构造的轮函数,能够应用于对附加数据长度有要求的场景,且能够有效保证保留格式加密算法的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的基于对称密码算法的保留格式加密算法的实现方法中加密过程的示意图;
图2是本发明实施例的基于对称密码算法的保留格式加密算法的实现方法中解密过程的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,为了便于理解,对本发明中出现的相关概念介绍如下:
字符集:定义明文和密文取值的所有字符的集合,比如纯数字字符集{0 1 23 4 56 7 8 9}、纯字母字符集{a b c d e…x y z}。
字符串:上述字符集中任意一个或多个字符组成的集合。
进制:上述字符集包含的字符总数,如字符集{0 1 2 3 4 5 6 7 8 9}的进制为10,字符集{0 1 2 3 4 5 6 7 8 9a b c d e…x y z}的进制为36。
数字:约定字符集中的每个字符均唯一对应一个数字,如字符集{0 1 2 3 4 56 78 9a b c d e…x y z}中a->11b->12c->13z->36。
字符串转数字NUMr(X):长度为Len的字符串X按照指定进制r,转换成数字x,转换规则是:
x初始为0,对于i从1到Len,依次计算:x=x*r+X[i]
如:X=“567”,r=10,
i=1时,X[i]=5,x=0*10+5=5;
i=2时,X[i]=6,x=5*10+6=56;
i=3时,X[i]=7,x=56*10+7=567。
数字转字符串
Figure BDA0003075777780000081
把数字x按照进制r转换为长度为m的字符串,转换规则如下:
对于i从1到m,依次计算:X[m+1-i]=x mod r,x=[x/r]
如:x=567,r=10,m=3
i=1时,X[3]=567mod 10=7,x=56;
i=2时,X[2]=56mod 10=6,x=5;
i=3时,X[1]=5mod 10=5,x=0。
[a]b:表示数字a占用b个字节,不足b字节靠前的字节补0。
SM4K(A):使用密钥K对分组数据A进行SM4加密。
基于此,本实施例提出一种基于对称密码算法的保留格式加密算法的实现方法,该方法应用于输入包括长度为Tlen的附加数据T的场景,加密过程具体包括:
步骤S11,将明文字符串X进行分段,具体包括:
输入长度为n的明文字符串X,输入长度为t的附加数据T,明文字符串X的进制为r;
计算u=(n+1)/2,v=n-u;
置A0=X[1…u],B0=X[u+1…n],i=0。
步骤S12,在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数。
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数。
步骤S13,将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y。
其中,轮函数数据C的构造过程包括:
将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算
Figure BDA0003075777780000091
将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据,W为附加数据T的分段数据。
在本实例中,在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure BDA0003075777780000101
Figure BDA0003075777780000102
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003075777780000103
Figure BDA0003075777780000104
表示把数据c按照进制r转换为长度为v的字符串。
在本实例中,附加数据T的长度Tlen是大于32字节的偶数;将长度为Tlen的附加数据T分段计算获得W包括:计算TL=T[0…Tlen/2],TR=[Tlen/2…Tlen],在轮数i为偶数时,W=TL,在轮数i为奇数时,W=TR
在实际的应用中,加密过程如图1所示,具体包括如下步骤:
步骤S21,计算u=(n+1)/2,v=n-u;
步骤S22,置A0=X[1…u],B0=X[u+1…n],i=0;
步骤S23,计算加密密钥K;
步骤S24,执行轮函数F(A,i,K,n,T)(i=0,1,2,…n);
偶数轮:
计算C=F(Bi,i,K,n,T)
c=NUMr(Ai)+NUMr(C)
Figure BDA0003075777780000105
Bi+1=Bi
奇数轮:
计算C=F(Ai,i,K,n,T)
c=NUMr(Bi)+NUMr(C)
Figure BDA0003075777780000111
Ai+1=Ai
步骤S25,获得最终密文:Y=An|Bn。
进一步的,轮函数的构造过程举例如下:
输入部分要求附加数据必须输入,且长度Tlen是大于32的偶数;
预计算部分:计算TL=T[0…Tlen/2];TR=T[Tlen/2…Tlen];
轮数:本实例中采用8轮(本发明不做具体限制,轮数与安全性相关);
设计轮函数F(A,i,K,n,T),其中A表示轮函数输入数据,T表示附加数据;
当轮数i为偶数时,W=TL,当轮数i为奇数时,W=TR
计算
Figure BDA0003075777780000112
每次构造一个分组数据(16字节),以SM4密码算法为例,这里占用的字节数之和为一个分组16字节,z的典型取值为4;
计算C=SM4K(Q),这里以SM4为例,对称密码算法不做具体限制。
本实例的保留格式加密算法的实现方法还包括解密过程,解密过程具体包括:
步骤S31,将密文字符串Y进行分段,具体包括:
输入长度为n的密文字符串Y,输入长度为t的附加数据T,密文字符串Y的进制为r;
计算u=(n+1)/2,v=n-u;
置An=Y[1…u],Bn=Y[u+1…n],i=n。
步骤S32,在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数。
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数。
步骤S33,将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X。
解密过程中轮函数数据C的构造过程与加密过程相同。
在本例中,在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure BDA0003075777780000121
Figure BDA0003075777780000122
表示把数据c按照进制r转换为长度为v的字符串。
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003075777780000123
Figure BDA0003075777780000124
表示把数据c按照进制r转换为长度为u的字符串。
在实际的应用中,解密过程如图2所示,具体包括如下步骤:
步骤S41,计算u=(n+1)/2,v=n-u;
步骤S42,置An=Y[1…u],Bn=Y[u+1…n],i=n;
步骤S43,计算加密密钥K;
步骤S44,执行轮函数F(A,i,K,n,T)(i=n,n-1,n-2,…1,0);
偶数轮:
计算C=F(Ai,i,K,n,T)
c=NUMr(Bi)-NUMr(C)
Figure BDA0003075777780000131
Ai-1=Ai
奇数轮:
计算C=F(Bi,i,K,n,T)
c=NUMr(Ai)-NUMr(C)
Figure BDA0003075777780000132
Bi-1=Bi
步骤S45,获得最终明文:X=A0|B0
本实例还提出一种基于对称密码算法的保留格式加密算法的实现装置,该装置应用于输入包括长度为Tlen的附加数据T的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y。
其中,所述轮函数数据C的构造过程包括:
将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算
Figure BDA0003075777780000141
将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据,W为附加数据T的分段数据。
在本例中,将明文字符串X进行分段包括:
输入长度为n的明文字符串X,输入长度为t的附加数据T,明文字符串X的进制为r;
计算u=(n+1)/2,v=n-u;
置A0=X[1…u],B0=X[u+1…n],i=0;
在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure BDA0003075777780000142
Figure BDA0003075777780000143
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003075777780000144
Figure BDA0003075777780000145
表示把数据c按照进制r转换为长度为v的字符串;
附加数据T的长度Tlen是大于32字节的偶数;将长度为Tlen的附加数据T分段计算获得W包括:计算TL=T[0…Tlen/2],TR=T[Tlen/2…Tlen],在轮数i为偶数时,W=TL,在轮数i为奇数时,W=TR
所述保留格式加密算法的实现装置还包括解密单元,解密单元用于:
将密文字符串Y进行分段;
在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数;
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数;
将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X;
解密过程中轮函数数据C的构造过程与加密过程相同。
在本例中,所述将密文字符串Y进行分段包括:
输入长度为n的密文字符串Y,输入长度为t的附加数据T,密文字符串Y的进制为r;
计算u=(n+1)/2,v=n-u;
置An=Y[1…u],Bn=Y[u+1…n],i=n;
在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure BDA0003075777780000151
Figure BDA0003075777780000152
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003075777780000153
Figure BDA0003075777780000154
表示把数据c按照进制r转换为长度为u的字符串。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种基于对称密码算法的保留格式加密算法的实现方法,其特征在于,该方法应用于输入包括长度为Tlen的附加数据T的场景,加密过程具体包括:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算
Figure FDA0003075777770000011
将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据,W为附加数据T的分段数据。
2.根据权利要求1所述的基于对称密码算法的保留格式加密算法的实现方法,其特征在于,所述将明文字符串X进行分段包括:
输入长度为n的明文字符串X,输入长度为t的附加数据T,明文字符串X的进制为r;
计算u=(n+1)/2,v=n-u;
置A0=X[1…u],B0=X[u+1…n],i=0。
3.根据权利要求2所述的基于对称密码算法的保留格式加密算法的实现方法,其特征在于,
在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure FDA0003075777770000021
Figure FDA0003075777770000022
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure FDA0003075777770000023
Figure FDA0003075777770000024
表示把数据c按照进制r转换为长度为v的字符串。
4.根据权利要求1所述的基于对称密码算法的保留格式加密算法的实现方法,其特征在于,所述附加数据T的长度Tlen是大于32字节的偶数;将长度为Tlen的附加数据T分段计算获得W包括:计算TL=T[0…Tlen/2],TR=T[Tlen/2…Tlen],在轮数i为偶数时,W=TL,在轮数i为奇数时,W=TR
5.根据权利要求1所述的基于对称密码算法的保留格式加密算法的实现方法,其特征在于,所述保留格式加密算法的实现方法还包括解密过程,解密过程具体包括:
将密文字符串Y进行分段;
在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数;
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数;
将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X;
解密过程中轮函数数据C的构造过程与加密过程相同。
6.根据权利要求5所述的基于对称密码算法的保留格式加密算法的实现方法,其特征在于,所述将密文字符串Y进行分段包括:
输入长度为n的密文字符串Y,输入长度为t的附加数据T,密文字符串Y的进制为r;
计算u=(n+1)/2,v=n-u;
置An=Y[1…u],Bn=Y[u+1…n],i=n。
7.根据权利要求6所述的基于对称密码算法的保留格式加密算法的实现方法,其特征在于,
在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure FDA0003075777770000031
Figure FDA0003075777770000032
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure FDA0003075777770000033
Figure FDA0003075777770000034
表示把数据c按照进制r转换为长度为u的字符串。
8.一种基于对称密码算法的保留格式加密算法的实现装置,其特征在于,该装置应用于输入包括长度为Tlen的附加数据T的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
将长度为Tlen的附加数据T分段计算获得W和设计轮函数F(A,i,K,n,T),计算
Figure FDA0003075777770000041
将Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据,W为附加数据T的分段数据。
9.根据权利要求8所述的基于对称密码算法的保留格式加密算法的实现装置,其特征在于,所述将明文字符串X进行分段包括:
输入长度为n的明文字符串X,输入长度为t的附加数据T,明文字符串X的进制为r;
计算u=(n+1)/2,v=n-u;
置A0=X[1…u],B0=X[u+1…n],i=0;
在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure FDA0003075777770000051
Figure FDA0003075777770000052
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure FDA0003075777770000053
Figure FDA0003075777770000054
表示把数据c按照进制r转换为长度为v的字符串;
附加数据T的长度Tlen是大于32字节的偶数;将长度为Tlen的附加数据T分段计算获得W包括:计算TL=T[0…Tlen/2],TR=T[Tlen/2…Tlen],在轮数i为偶数时,W=TL,在轮数i为奇数时,W=TR
10.根据权利要求8所述的基于对称密码算法的保留格式加密算法的实现装置,其特征在于,所述保留格式加密算法的实现装置还包括解密单元,所述解密单元用于:
将密文字符串Y进行分段;
在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数;
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数;
将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X;
解密过程中轮函数数据C的构造过程与加密过程相同;
所述将密文字符串Y进行分段包括:
输入长度为n的密文字符串Y,输入长度为t的附加数据T,密文字符串Y的进制为r;
计算u=(n+1)/2,v=n-u;
置An=Y[1…u],Bn=Y[u+1…n],i=n;
在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure FDA0003075777770000061
Figure FDA0003075777770000062
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure FDA0003075777770000063
Figure FDA0003075777770000064
表示把数据c按照进制r转换为长度为u的字符串。
CN202110551783.2A 2021-05-20 2021-05-20 基于对称密码算法的保留格式加密算法的实现方法及装置 Active CN113204779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110551783.2A CN113204779B (zh) 2021-05-20 2021-05-20 基于对称密码算法的保留格式加密算法的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110551783.2A CN113204779B (zh) 2021-05-20 2021-05-20 基于对称密码算法的保留格式加密算法的实现方法及装置

Publications (2)

Publication Number Publication Date
CN113204779A true CN113204779A (zh) 2021-08-03
CN113204779B CN113204779B (zh) 2022-04-15

Family

ID=77032147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110551783.2A Active CN113204779B (zh) 2021-05-20 2021-05-20 基于对称密码算法的保留格式加密算法的实现方法及装置

Country Status (1)

Country Link
CN (1) CN113204779B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595539A (zh) * 2013-11-26 2014-02-19 南开大学 保留格式的数值型个人识别信息的加密方法
CN105959098A (zh) * 2016-04-28 2016-09-21 东港股份有限公司 基于多分割Feistel网络的保留格式加密算法
CN107168998A (zh) * 2017-03-30 2017-09-15 广东工业大学 一种基于保留格式的数据库透明加密方法
US20180053008A1 (en) * 2016-01-21 2018-02-22 Experian Health, Inc. Format preserving encryption
CN109768854A (zh) * 2019-03-29 2019-05-17 衡阳师范学院 一种轻量级分组密码算法Wheel的实现方法
CN110750810A (zh) * 2019-10-23 2020-02-04 卓尔智联(武汉)研究院有限公司 数据脱敏方法、装置、计算机设备和存储介质
CN111783112A (zh) * 2020-06-09 2020-10-16 北京三未信安科技发展有限公司 一种保留格式加密的快速实现方法、系统、介质及设备
US10931658B2 (en) * 2014-08-27 2021-02-23 Jonetix Corporation Encryption and decryption techniques using shuffle function

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595539A (zh) * 2013-11-26 2014-02-19 南开大学 保留格式的数值型个人识别信息的加密方法
US10931658B2 (en) * 2014-08-27 2021-02-23 Jonetix Corporation Encryption and decryption techniques using shuffle function
US20180053008A1 (en) * 2016-01-21 2018-02-22 Experian Health, Inc. Format preserving encryption
CN105959098A (zh) * 2016-04-28 2016-09-21 东港股份有限公司 基于多分割Feistel网络的保留格式加密算法
CN107168998A (zh) * 2017-03-30 2017-09-15 广东工业大学 一种基于保留格式的数据库透明加密方法
CN109768854A (zh) * 2019-03-29 2019-05-17 衡阳师范学院 一种轻量级分组密码算法Wheel的实现方法
CN110750810A (zh) * 2019-10-23 2020-02-04 卓尔智联(武汉)研究院有限公司 数据脱敏方法、装置、计算机设备和存储介质
CN111783112A (zh) * 2020-06-09 2020-10-16 北京三未信安科技发展有限公司 一种保留格式加密的快速实现方法、系统、介质及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HAOZHE WANG ET AL.: "Research on encryption technology of sensitive information in reserved format", 《2020 2ND INTERNATIONAL CONFERENCE ON MACHINE LEARNING, BIG DATA AND BUSINESS INTELLIGENCE (MLBDBI)》 *
LIU ZHE-LI ET AL.: "Research on the Format-Preserving Encryption Techniques", 《JOURNAL OF SOFTWARE》 *
陈佳等: "SM4-FPE:基于SM4的数字型数据保留格式加密算法", 《小型微型计算机系统》 *

Also Published As

Publication number Publication date
CN113204779B (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN101764686B (zh) 一种用于网络与信息安全的加密方法
CN110795762B (zh) 基于流密码的保留格式加密方法
Gnatyuk et al. New secure block cipher for critical applications: design, implementation, speed and security analysis
CN110784306B (zh) Sm4算法白盒实现方法、装置、电子设备及计算机介质
CN111866018B (zh) 数据信息加密发送方法、装置、计算机设备及存储介质
CN105916141B (zh) 一种自同步的祖冲之加解密算法的实现系统及其方法
CN113204781B (zh) 用于保留格式加密算法的实现方法及装置
CN113204780B (zh) 保留格式加密算法的实现方法及装置
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
CN114826587A (zh) 一种数据加密方法、解密方法及其装置、设备
CN113204779B (zh) 基于对称密码算法的保留格式加密算法的实现方法及装置
Yi et al. Multidimensional zero‐correlation linear cryptanalysis of the block cipher KASUMI
CN107248914B (zh) 一种iOS设备上新型对称加密系统及加密方法
WO2002054664A2 (en) R-conversion encryption method and system
CN112231718A (zh) 数据加密处理方法、装置、计算机设备和存储介质
JP2001282103A (ja) 暗号化方法
Deepthi et al. Cryptanalysis for reduced round Salsa and ChaCha: revisited
Panda et al. Encryption and Decryption algorithm using two dimensional cellular automata rules in Cryptography
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
CN113890722A (zh) 一种可压缩的六维无简并超混沌图像保密系统及方法
Deepthi et al. Design and analysis of a highly secure stream cipher based on linear feedback shift register
Gundaram et al. Rainbow tables for cryptanalysis of A5/1 stream cipher
CN111859436A (zh) 一种车辆保险反欺诈平台的数据安全加密方法
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
US20140328482A1 (en) Encryption evaluation device, encryption evaluation method, and encryption evaluation program

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