CN113204781B - 用于保留格式加密算法的实现方法及装置 - Google Patents
用于保留格式加密算法的实现方法及装置 Download PDFInfo
- Publication number
- CN113204781B CN113204781B CN202110553661.7A CN202110553661A CN113204781B CN 113204781 B CN113204781 B CN 113204781B CN 202110553661 A CN202110553661 A CN 202110553661A CN 113204781 B CN113204781 B CN 113204781B
- Authority
- CN
- China
- Prior art keywords
- data
- character string
- round
- encryption
- num
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明属于信息安全技术领域,具体涉及一种用于保留格式加密算法的实现方法及装置,该方法包括将明文字符串进行分段,执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi;执行奇数轮加密时,采用同样类似的过程获得后段数据Bi+1,前段数据为Ai+1=Ai;将前段数据和后段数据进行拼接获得密文字符串;轮函数数据C的构造:预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种用于保留格式加密算法的实现方法及装置。
背景技术
一般的加密方法,密文都是0-1组成的随机数串,不是可见字符;对于数据库中存储的身份证号码、手机号、地理坐标等信息,字段中仅包含数字和字母等可见字符,如果需要加密存储,得到的密文不再是上述可见字符,必须修改原有数据库字段类型和长度,改造的成本巨大。故引申了一种新的加密解决方案,通常称为“保留格式加密”(FPE),格式保留加密机制指明文字符串和密文字符串具有相同的格式和长度,其中格式指字符串取值范围,由于保留格式加密技术保持密文与明文具有相同格式的特性,因此适合于格式敏感的数据加密领域。
以SM4对称密码算法为例,SM4算法采用的是非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出,可知轮函数起着至关重要的作用;基于对称密码算法如何实现保留格式加密和设计轮函数保证算法实现的安全性是目前急需解决的问题。
发明内容
为了解决现有技术中存在的问题,本发明提出了一种用于保留格式加密算法的实现方法及装置,能够有效实现保留格式加密算法,应用于输入包括进制为tr的附加数据T的场景,且保障算法的安全性。
为解决上述技术问题,本发明采用以下的技术方案:
本发明提出了一种用于保留格式加密算法的实现方法,该方法应用于输入包括进制为tr的附加数据T的场景,加密过程具体包括:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据。
进一步地,所述将明文字符串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。
进一步地,所述数据P由固定字符、r、n、t和T预先计算获得,t为附加数据T的数据长度;加密密钥J通过对称密码算法使用预先计算的加密密钥K对数据P进行加密获得。
进一步地,所述用于保留格式加密算法的实现方法还包括解密过程,解密过程具体包括:
将密文字符串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。
本发明还提出了一种用于保留格式加密算法的实现装置,该装置应用于输入包括进制为tr的附加数据T的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据。
进一步地,所述将明文字符串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;
所述数据P由固定字符、r、n、t和T预先计算获得,t为附加数据T的数据长度;加密密钥J通过对称密码算法使用预先计算的加密密钥K对数据P进行加密获得。
进一步地,所述用于保留格式加密算法的实现装置还包括解密单元,所述解密单元用于:
将密文字符串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;
与现有技术相比,本发明具有以下优点:
本发明提出的一种用于保留格式加密算法的实现方法及装置,通过对明文字符串进行分段以及采用偶数轮、奇数轮的加密机制,且通过构造的轮函数,能够应用于输入包括进制为tr的附加数据T的场景,且能够有效保证保留格式加密算法的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的用于保留格式加密算法的实现方法中加密过程的示意图;
图2是本发明实施例的用于保留格式加密算法的实现方法中解密过程的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,为了便于理解,对本发明中出现的相关概念介绍如下:
字符集:定义明文和密文取值的所有字符的集合,比如纯数字字符集{0 1 2 3 45 6 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 5 67 8 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。
对于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加密。
基于此,本实施例提出一种用于保留格式加密算法的实现方法,该方法应用于输入包括进制为tr的附加数据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的构造过程包括:
预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据。
可以理解的是,m的取值一般为1。
在本实例中,数据P由固定字符、r、n、t和T预先计算获得,t为附加数据T的数据长度;加密密钥J通过对称密码算法使用预先计算的加密密钥K对数据P进行加密获得。
在实际的应用中,加密过程如图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)
Bi+1=Bi
奇数轮:
计算C=F(Ai,i,K,n,T)
c=NUMr(Bi)+NUMr(C)
Ai+1=Ai
步骤S25,获得最终密文:Y=An|Bn。
进一步的,轮函数的构造过程举例如下:
输入部分新增进制为tr的附加数据T。
预计算部分:计算P=78||64||6A||62||[r]1||[.]1||[t]1|[NUMtr(T)]2,其中78、64、6A、62为固定字符,占用的字节数与数据长度、进制相关;计算加密密钥J=SM4K(P)。
轮数:本实例中采用10轮(本发明不做具体限制,轮数与安全性相关)。
设计轮函数F(A,i,K,n,T),其中A表示轮函数输入数据,T表示附加数据。
计算Q=[i]1||[NUMr(A)]15,以SM4密码算法为例,这里占用的字节数之和为一个分组16字节;i占用字节数与轮数有关,10轮一个字节足够,尽可能多的字节数分给数据A使用。
计算C=SM4J(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的构造过程与加密过程相同。
在实际的应用中,解密过程如图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)
Ai-1=Ai
奇数轮:
计算C=F(Bi,i,K,n,T)
c=NUMr(Ai)-NUMr(C)
Bi-1=Bi
步骤S45,获得最终明文:X=A0|B0。
本实例还提出一种用于保留格式加密算法的实现装置,该装置应用于输入包括进制为tr的附加数据T的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据。
在本实例中,将明文字符串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。
所述数据P由固定字符、r、n、t和T预先计算获得,t为附加数据T的数据长度;加密密钥J通过对称密码算法使用预先计算的加密密钥K对数据P进行加密获得。
所述用于保留格式加密算法的实现装置还包括解密单元,解密单元用于:
将密文字符串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。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种用于保留格式加密算法的实现方法,其特征在于,该方法应用于输入包括进制为tr的附加数据T的场景,加密过程具体包括:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C;其中,加密密钥J为通过对称密码算法使用预先计算的加密密钥K对数据P进行加密获得,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据;
所述偶数轮加密包括:在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据 表示把数据c按照进制r转换为长度为u的字符串;
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.根据权利要求1所述的用于保留格式加密算法的实现方法,其特征在于,所述数据P由固定字符、r、n、t和T预先计算获得,t为附加数据T的数据长度。
4.根据权利要求1所述的用于保留格式加密算法的实现方法,其特征在于,所述用于保留格式加密算法的实现方法还包括解密过程,解密过程具体包括:
将密文字符串Y进行分段;
在执行偶数轮解密时,通过将密文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi-1,前段数据为Ai-1=Ai,i的取值为当前轮数;
在执行奇数轮解密时,通过将密文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行减法运算,并将减法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai-1,后段数据为Bi-1=Bi,i的取值为当前轮数;
将偶数轮和奇数轮解密获得的前段数据和后段数据进行拼接后获得明文字符串X;
解密过程中轮函数数据C的构造过程与加密过程相同。
5.根据权利要求4所述的用于保留格式加密算法的实现方法,其特征在于,所述将密文字符串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.一种用于保留格式加密算法的实现装置,其特征在于,该装置应用于输入包括进制为tr的附加数据T的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P、加密密钥J和设计轮函数F(A,i,J,n,T),计算Q=[i]m||[NUMr(A)]z,将Q通过对称密码算法使用加密密钥J计算获得轮函数数据C;其中,加密密钥J为通过对称密码算法使用预先计算的加密密钥K对数据P进行加密获得,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,m和z之和为对称密码算法的一个分组数据;
所述偶数轮加密包括:在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据 表示把数据c按照进制r转换为长度为u的字符串;
8.根据权利要求7所述的用于保留格式加密算法的实现装置,其特征在于,所述将明文字符串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;
所述数据P由固定字符、r、n、t和T预先计算获得,t为附加数据T的数据长度。
9.根据权利要求7所述的用于保留格式加密算法的实现装置,其特征在于,所述用于保留格式加密算法的实现装置还包括解密单元,所述解密单元用于:
将密文字符串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;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110553661.7A CN113204781B (zh) | 2021-05-20 | 2021-05-20 | 用于保留格式加密算法的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110553661.7A CN113204781B (zh) | 2021-05-20 | 2021-05-20 | 用于保留格式加密算法的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113204781A CN113204781A (zh) | 2021-08-03 |
CN113204781B true CN113204781B (zh) | 2022-04-15 |
Family
ID=77032223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110553661.7A Active CN113204781B (zh) | 2021-05-20 | 2021-05-20 | 用于保留格式加密算法的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113204781B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722742B (zh) * | 2021-09-13 | 2024-04-16 | 青岛海信宽带多媒体技术有限公司 | 终端及终端对光模块mcu的固件文件加密存储方法 |
CN118101169B (zh) * | 2024-04-25 | 2024-06-21 | 北京炼石网络技术有限公司 | 一种分组密码的保留格式加解密算法的实现方法及系统 |
Citations (6)
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网络的保留格式加密算法 |
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 |
CN112597480A (zh) * | 2020-12-28 | 2021-04-02 | 北京炼石网络技术有限公司 | 一种可扩展的格式保留加密方法的实现方式 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10009169B2 (en) * | 2014-12-02 | 2018-06-26 | Zettaset, Inc. | Format-preserving cipher |
US9830464B2 (en) * | 2016-01-21 | 2017-11-28 | Passport Health Communications, Inc. | Format preserving encryption |
-
2021
- 2021-05-20 CN CN202110553661.7A patent/CN113204781B/zh active Active
Patent Citations (6)
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 |
CN105959098A (zh) * | 2016-04-28 | 2016-09-21 | 东港股份有限公司 | 基于多分割Feistel网络的保留格式加密算法 |
CN110750810A (zh) * | 2019-10-23 | 2020-02-04 | 卓尔智联(武汉)研究院有限公司 | 数据脱敏方法、装置、计算机设备和存储介质 |
CN111783112A (zh) * | 2020-06-09 | 2020-10-16 | 北京三未信安科技发展有限公司 | 一种保留格式加密的快速实现方法、系统、介质及设备 |
CN112597480A (zh) * | 2020-12-28 | 2021-04-02 | 北京炼石网络技术有限公司 | 一种可扩展的格式保留加密方法的实现方式 |
Non-Patent Citations (3)
Title |
---|
Research on encryption technology of sensitive information in reserved format;HaoZhe Wang et al.;《2020 2nd International Conference on Machine Learning, Big Data and Business Intelligence (MLBDBI)》;20210226;全文 * |
Research on the Format-Preserving Encryption Techniques;Liu Zhe-Li et al.;《Journal of Software》;20120131;第23卷(第1期);全文 * |
SM4-FPE:基于SM4的数字型数据保留格式加密算法;陈佳等;《小型微型计算机系统》;20190630;第40卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113204781A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113204781B (zh) | 用于保留格式加密算法的实现方法及装置 | |
US20210135839A1 (en) | Format-preserving encryption method based on stream cipher | |
CN104811298B (zh) | 一种实现加密的方法及装置 | |
CN110784306B (zh) | Sm4算法白盒实现方法、装置、电子设备及计算机介质 | |
CN101764686A (zh) | 一种用于网络与信息安全的加密方法 | |
CN109921899B (zh) | 一种完全雪崩4×4的s盒实现方法 | |
CN108768620A (zh) | 一种数据处理方法及装置 | |
CN108768617A (zh) | 一种基于传统分组密码的保持格式加密方法 | |
US10505715B2 (en) | Method and system of synchronous encryption to render computer files and messages impervious to pattern recognition and brute force attacks | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
CN113204780B (zh) | 保留格式加密算法的实现方法及装置 | |
CN113726512A (zh) | 密钥生成和分发方法、密钥生成装置、密钥管理系统 | |
CN108270545A (zh) | 一种基于移动互联网的改进的des数据加密算法 | |
Tunga et al. | A new modified Playfair algorithm based on frequency analysis | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
CN113204779B (zh) | 基于对称密码算法的保留格式加密算法的实现方法及装置 | |
WO2002054664A2 (en) | R-conversion encryption method and system | |
JP2009169316A (ja) | ハッシュ関数演算装置及び署名装置及びプログラム及びハッシュ関数演算方法 | |
CN112231718A (zh) | 数据加密处理方法、装置、计算机设备和存储介质 | |
JP2001282103A (ja) | 暗号化方法 | |
Angelova et al. | Plaintext recovery in des-like cryptosystems based on s-boxes with embedded parity check | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
Deepthi et al. | Design and analysis of a highly secure stream cipher based on linear feedback shift register | |
CN112910626A (zh) | 一种基于幂次运算的数据加密及解密方法 | |
EP1043863A1 (en) | Method for the cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks |
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 |