CN113204780B - 保留格式加密算法的实现方法及装置 - Google Patents

保留格式加密算法的实现方法及装置 Download PDF

Info

Publication number
CN113204780B
CN113204780B CN202110553649.6A CN202110553649A CN113204780B CN 113204780 B CN113204780 B CN 113204780B CN 202110553649 A CN202110553649 A CN 202110553649A CN 113204780 B CN113204780 B CN 113204780B
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
Application number
CN202110553649.6A
Other languages
English (en)
Other versions
CN113204780A (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 CN202110553649.6A priority Critical patent/CN113204780B/zh
Publication of CN113204780A publication Critical patent/CN113204780A/zh
Application granted granted Critical
Publication of CN113204780B publication Critical patent/CN113204780B/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Bioethics (AREA)
  • Mathematical Optimization (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (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和设计轮函数F(A,i,K,n,T),计算Q=T||i||[NUMr(A)]b|0(‑t‑b‑1)mod z,将P和Q通过对称加密算法使用加密密钥K计算获得轮函数数据C。

Description

保留格式加密算法的实现方法及装置
技术领域
本发明属于信息安全技术领域,具体涉及一种保留格式加密算法的实现方法及装置。
背景技术
一般的加密方法,密文都是0-1组成的随机数串,不是可见字符;对于数据库中存储的身份证号码、手机号、地理坐标等信息,字段中仅包含数字和字母等可见字符,如果需要加密存储,得到的密文不再是上述可见字符,必须修改原有数据库字段类型和长度,改造的成本巨大。故引申了一种新的加密解决方案,通常称为“保留格式加密”(FPE),格式保留加密机制指明文字符串和密文字符串具有相同的格式和长度,其中格式指字符串取值范围,由于保留格式加密技术保持密文与明文具有相同格式的特性,因此适合于格式敏感的数据加密领域。
以SM4对称密码算法为例,SM4算法采用的是非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出,可知轮函数起着至关重要的作用;基于对称密码算法如何实现保留格式加密和设计轮函数保证算法实现的安全性是目前急需解决的问题。
发明内容
为了解决现有技术中存在的问题,本发明提出了一种保留格式加密算法的实现方法及装置,能够有效实现保留格式加密算法,应用于对明文数据长度和附加数据格式没有要求的场景,且保障算法的安全性。
为解决上述技术问题,本发明采用以下的技术方案:
本发明提出了一种保留格式加密算法的实现方法,该方法应用于对明文数据长度和附加数据格式没有要求的场景,加密过程具体包括:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P和设计轮函数F(A,i,K,n,T),计算Q=T||i||{NUMr(A)]b|0(-t-b-1)mod z,将P和Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,z为模数,t为附加数据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 BDA0003076287400000031
Figure BDA0003076287400000032
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003076287400000033
Figure BDA0003076287400000034
表示把数据c按照进制r转换为长度为v的字符串。
进一步地,所述数据P由固定字符、r、n和t预先计算获得。
进一步地,所述保留格式加密算法的实现方法还包括解密过程,解密过程具体包括:
将密文字符串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 BDA0003076287400000041
Figure BDA0003076287400000042
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003076287400000043
Figure BDA0003076287400000044
表示把数据c按照进制r转换为长度为u的字符串。
本发明还提供了一种保留格式加密算法的实现装置,该装置应用于对明文数据长度和附加数据格式没有要求的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P和设计轮函数F(A,i,K,n,T),计算Q=T||i||[NUMr(A)]b|0(-t-b-1)mod z,将P和Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,z为模数,t为附加数据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 BDA0003076287400000051
Figure BDA0003076287400000052
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003076287400000053
Figure BDA0003076287400000054
表示把数据c按照进制r转换为长度为v的字符串;
所述数据P由固定字符、r、n和t预先计算获得。
进一步地,所述保留格式加密算法的实现装置还包括解密单元,所述解密单元用于:
将密文字符串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 BDA0003076287400000061
Figure BDA0003076287400000062
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003076287400000063
Figure BDA0003076287400000064
表示把数据c按照进制r转换为长度为u的字符串。
与现有技术相比,本发明具有以下优点:
本发明提出的一种保留格式加密算法的实现方法及装置,通过对明文字符串进行分段以及采用偶数轮、奇数轮的加密机制,且通过构造的轮函数,能够应用于对明文数据长度和附加数据格式没有要求的场景,且能够有效保证保留格式加密算法的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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。
数字转字符串
Figure BDA0003076287400000081
把数字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加密。
基于此,本实施例提出一种保留格式加密算法的实现方法,该方法应用于对明文数据长度和附加数据格式没有要求的场景,加密过程具体包括:
步骤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和设计轮函数F(A,i,K,n,T),计算Q=T||i||[NUMr(A)]b|0(-t-b-1)mod z,将P和Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,z为模数,t为附加数据T的数据长度。
可以理解的是,z的取值和使用的分组算法、分组长度有关。
在本实例中,在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure BDA0003076287400000091
Figure BDA0003076287400000092
表示把数据c按照进制r转换为长度为u的字符串;
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003076287400000101
Figure BDA0003076287400000102
表示把数据c按照进制r转换为长度为v的字符串。
在本实例中,数据P由固定字符、r、n和t预先计算获得。
在实际的应用中,加密过程如图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 BDA0003076287400000103
Bi+1=Bi
奇数轮:
计算C=F(Ai,i,K,n,T)
c=NUMr(Bi)+NUMr(C)
Figure BDA0003076287400000104
Ai+1=Ai
步骤S25,获得最终密文:Y=An|Bn。
进一步的,轮函数的构造过程举例如下:
预计算部分:计算P=78||64||6A||61||[r]3||[vmod 256]||[n]5||[6]3,其中78、64、6A、61为固定字符,占用的字节数与数据长度、进制相关。
轮数:本实例中采用10轮(本发明不做具体限制,轮数与安全性相关)。
设计轮函数F(A,i,K,n,T),其中A表示轮函数输入数据,T表示附加数据。
计算Q=T||i||[NUMr(A)]b|0(-t-b-1)mod 16,以SM4密码算法为例,这里占用的字节数之和为一个分组16字节的倍数。
计算
Figure BDA0003076287400000111
这里以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 BDA0003076287400000121
Figure BDA0003076287400000122
表示把数据c按照进制r转换为长度为v的字符串。
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003076287400000123
Figure BDA0003076287400000124
表示把数据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 BDA0003076287400000125
Ai-1=Ai
奇数轮:
计算C=F(Bi,i,K,n,T)
c=NUMr(Ai)-NUMr(C)
Figure BDA0003076287400000126
Bi-1=Bi
步骤S45,获得最终明文:X=A0|B0
本实例还提出一种保留格式加密算法的实现装置,该装置应用于对明文数据长度和附加数据格式没有要求的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数。
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数。
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y。
其中,所述轮函数数据C的构造过程包括:
预先计算数据P和设计轮函数F(A,i,K,n,T),计算Q=T||i||[NUMr(A)]b|0(-t-b-1)mod z,将P和Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,z为模数,t为附加数据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 BDA0003076287400000141
Figure BDA0003076287400000142
表示把数据c按照进制r转换为长度为u的字符串。
在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure BDA0003076287400000143
Figure BDA0003076287400000144
表示把数据c按照进制r转换为长度为v的字符串。
所述数据P由固定字符、r、n和t预先计算获得。
所述保留格式加密算法的实现装置还包括解密单元,解密单元用于:
将密文字符串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 BDA0003076287400000151
Figure BDA0003076287400000152
表示把数据c按照进制r转换为长度为v的字符串。
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure BDA0003076287400000153
Figure BDA0003076287400000154
表示把数据c按照进制r转换为长度为u的字符串。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种保留格式加密算法的实现方法,其特征在于,该方法应用于对明文数据长度和附加数据格式没有要求的场景,加密过程具体包括:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P和设计轮函数F(A,i,K,n,T),计算Q=T||i||[NUMr(A)]b|0(-t-b-1)mod z,将P和Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为明文字符串X的数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,z为模数,t为附加数据T的数据长度;
所述执行偶数轮加密包括:在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure FDA0003446104740000011
Figure FDA0003446104740000012
表示把数据c按照进制r转换为长度为u的字符串;
所述执行奇数轮加密包括:在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure FDA0003446104740000021
Figure FDA0003446104740000022
表示把数据c按照进制r转换为长度为v的字符串,u+v=n。
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预先计算获得。
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。
6.根据权利要求5所述的保留格式加密算法的实现方法,其特征在于,
在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure FDA0003446104740000031
Figure FDA0003446104740000032
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure FDA0003446104740000033
Figure FDA0003446104740000034
表示把数据c按照进制r转换为长度为u的字符串。
7.一种保留格式加密算法的实现装置,其特征在于,该装置应用于对明文数据长度和附加数据格式没有要求的场景,包括加密单元,所述加密单元用于:
将明文字符串X进行分段;
在执行偶数轮加密时,通过将明文字符串Ai、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得前段数据Ai+1,后段数据为Bi+1=Bi,i的取值为当前轮数;
在执行奇数轮加密时,通过将明文字符串Bi、构造的轮函数数据C分别执行字符串转数字操作后再进行加法运算,并将加法运算后获得的数据c执行数字转字符串操作后获得后段数据Bi+1,前段数据为Ai+1=Ai,i的取值为当前轮数;
将偶数轮和奇数轮加密获得的前段数据和后段数据进行拼接后获得密文字符串Y;
其中,所述轮函数数据C的构造过程包括:
预先计算数据P和设计轮函数F(A,i,K,n,T),计算Q=T||i||[NUMr(A)]b|0(-t-b-1)mod z,将P和Q通过对称密码算法使用加密密钥K计算获得轮函数数据C;其中,A为轮函数输入数据,T为附加数据,i为轮数,n为明文字符串X的数据长度,NUMr()为字符串转数字操作,r为进制,[a]b为数字a占用b个字节,不足b字节靠前的字节补0,z为模数,t为附加数据T的数据长度;
所述执行偶数轮加密包括:在执行偶数轮加密时,构造的轮函数数据C=F(Bi,i,K,n,T),加法运算后获得的数据c=NUMr(Ai)+NUMr(C),前段数据
Figure FDA0003446104740000043
Figure FDA0003446104740000044
表示把数据c按照进制r转换为长度为u的字符串;
所述执行奇数轮加密包括:在执行奇数轮加密时,构造的轮函数数据C=F(Ai,i,K,n,T),加法运算后获得的数据c=NUMr(Bi)+NUMr(C),后段数据
Figure FDA0003446104740000041
Figure FDA0003446104740000042
表示把数据c按照进制r转换为长度为v的字符串,u+v=n。
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预先计算获得。
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;
在执行偶数轮解密时,构造的轮函数数据C=F(Ai,i,K,n,T),减法运算后获得的数据c=NUMr(Bi)-NUMr(C),后段数据
Figure FDA0003446104740000051
Figure FDA0003446104740000052
表示把数据c按照进制r转换为长度为v的字符串;
在执行奇数轮解密时,构造的轮函数数据C=F(Bi,i,K,n,T),减法运算后获得的数据c=NUMr(Ai)-NUMr(C),前段数据
Figure FDA0003446104740000061
Figure FDA0003446104740000062
表示把数据c按照进制r转换为长度为u的字符串。
CN202110553649.6A 2021-05-20 2021-05-20 保留格式加密算法的实现方法及装置 Active CN113204780B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110553649.6A CN113204780B (zh) 2021-05-20 2021-05-20 保留格式加密算法的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110553649.6A CN113204780B (zh) 2021-05-20 2021-05-20 保留格式加密算法的实现方法及装置

Publications (2)

Publication Number Publication Date
CN113204780A CN113204780A (zh) 2021-08-03
CN113204780B true CN113204780B (zh) 2022-02-18

Family

ID=77032050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110553649.6A Active CN113204780B (zh) 2021-05-20 2021-05-20 保留格式加密算法的实现方法及装置

Country Status (1)

Country Link
CN (1) CN113204780B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826587B (zh) * 2022-05-13 2023-03-24 北京海泰方圆科技股份有限公司 一种数据加密方法、解密方法及其装置、设备

Citations (5)

* 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网络的保留格式加密算法
CN108768617A (zh) * 2018-06-06 2018-11-06 贵州大学 一种基于传统分组密码的保持格式加密方法
CN109768854A (zh) * 2019-03-29 2019-05-17 衡阳师范学院 一种轻量级分组密码算法Wheel的实现方法
CN110750810A (zh) * 2019-10-23 2020-02-04 卓尔智联(武汉)研究院有限公司 数据脱敏方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005151529A (ja) * 2003-10-20 2005-06-09 Sony Corp データ伝送方法、データ伝送装置及びデータ受信装置

Patent Citations (5)

* 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网络的保留格式加密算法
CN108768617A (zh) * 2018-06-06 2018-11-06 贵州大学 一种基于传统分组密码的保持格式加密方法
CN109768854A (zh) * 2019-03-29 2019-05-17 衡阳师范学院 一种轻量级分组密码算法Wheel的实现方法
CN110750810A (zh) * 2019-10-23 2020-02-04 卓尔智联(武汉)研究院有限公司 数据脱敏方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113204780A (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
CN1139221C (zh) 数据的加密方法及设备
CN110795762B (zh) 基于流密码的保留格式加密方法
CN104811298B (zh) 一种实现加密的方法及装置
CN108768620A (zh) 一种数据处理方法及装置
CN108768617A (zh) 一种基于传统分组密码的保持格式加密方法
Mi et al. A novel chaotic encryption scheme based on arithmetic coding
Dumas et al. Foundations of coding: compression, encryption, error correction
CN113204780B (zh) 保留格式加密算法的实现方法及装置
CN110543778A (zh) 一种字符数据线性随机加密和解密算法
Zhang et al. Fault attack on ACORN v3
US10505715B2 (en) Method and system of synchronous encryption to render computer files and messages impervious to pattern recognition and brute force attacks
CN113204781B (zh) 用于保留格式加密算法的实现方法及装置
Shi et al. A correlation attack on full SNOW-V and SNOW-Vi
Li et al. Meet-in-the-middle attacks on reduced-round QARMA-64/128
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
US20020136400A1 (en) R-conversion encryption method and system
CN113204779B (zh) 基于对称密码算法的保留格式加密算法的实现方法及装置
JP2009169316A (ja) ハッシュ関数演算装置及び署名装置及びプログラム及びハッシュ関数演算方法
JP2001282103A (ja) 暗号化方法
Deepthi et al. Cryptanalysis for reduced round Salsa and ChaCha: revisited
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
Deepthi et al. Design and analysis of a highly secure stream cipher based on linear feedback shift register
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
Pal et al. A novel block cipher technique using binary field arithmetic based substitution (BCTBFABS)
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных

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