CN116707804B - 增强ff1格式保留加密安全性的方法及设备 - Google Patents

增强ff1格式保留加密安全性的方法及设备 Download PDF

Info

Publication number
CN116707804B
CN116707804B CN202310982388.9A CN202310982388A CN116707804B CN 116707804 B CN116707804 B CN 116707804B CN 202310982388 A CN202310982388 A CN 202310982388A CN 116707804 B CN116707804 B CN 116707804B
Authority
CN
China
Prior art keywords
key
radix
data
algorithm
intermediate quantity
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
CN202310982388.9A
Other languages
English (en)
Other versions
CN116707804A (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.)
China Telecom Quantum Technology Co ltd
Original Assignee
China Telecom Quantum 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 China Telecom Quantum Technology Co ltd filed Critical China Telecom Quantum Technology Co ltd
Priority to CN202310982388.9A priority Critical patent/CN116707804B/zh
Publication of CN116707804A publication Critical patent/CN116707804A/zh
Application granted granted Critical
Publication of CN116707804B publication Critical patent/CN116707804B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种增强FF1格式保留加密安全性的方法及设备,方法包括随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;在采用格式保留加密FF1算法对明文数据进行加密处理时,对数据B进行带所述派生密钥的杂凑值,作为中间量R,其中所述明文数据包括数据A和数据B;采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;基于所述中间量S和数据A,生成密文数据;本发明可提升格式保留加密的破解难度。

Description

增强FF1格式保留加密安全性的方法及设备
技术领域
本发明涉及密码应用技术领域,具体涉及一种增强FF1格式保留加密安全性的方法及设备。
背景技术
格式保留加密(Format Preserving Encryption,FPE)是一种特殊对称加密算法,它可以保证加密后的密文格式与加密前的明文格式完全相同。它常用于数据脱敏项目中,可以保持加密后的数据格式不变,从而具有无需更改数据库范式以及对上层应用透明的优势。FPE算法可以保证加密后的数据长度不变,加密过程可逆,加密后的数据可以通过密钥解密还原出原始数据。一些FPE算法方案被提出并开始走向应用,比如在2011年,美国NIST曾经推荐将源自FFX方案的保留格式加密算法FF1和FF3确立为AES标准工作模式。
由于格式保留加密方案允许明密文空间较小,当攻击者获得了很多个明密对以后,有可能因为密文组碰撞导致更多报文的明文泄露,甚至攻击者有条件尝试一些针对密钥的已知明文攻击。
在相关技术中,公布号为CN110768797A的专利申请文献中采用对称分组密码算法进行的密钥分散方式来生成派生密钥,派生的密钥用于对数据的全程加密,每轮加密运算采用的密钥是相同的。公布号为CN111783112A的专利申请文献中提出利用轮密钥Key_Loop对需要重复加密的固定数据P进行单独的加密运算,但每轮加密运算采用的密钥相同。公布号为CN115174039A的专利申请文献中提出通过HMAC-SM3/CMAC-SM4的方法来产生中间量S,但该方案一次性产生足够长的中间量,每轮调用依次取用。而且上述相关方案均未在每一轮加解密迭代中都调用派生密钥。
发明内容
本发明所要解决的技术问题在于如何提升格式保留加密的破解难度。
本发明通过以下技术手段解决上述技术问题的:
第一方面,本发明提出了一种增强FF1格式保留加密安全性的方法,所述方法包括:
随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
在采用格式保留加密FF1算法对明文数据进行每一轮加密运算时,对数据B进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述明文数据包括数据A和数据B;
采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
基于所述中间量S和数据A,生成密文数据。
进一步地,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
进一步地,所述密钥采用密钥ID进行标识。
进一步地,所述随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,包括:
随机选择标识为IDk的密钥IDk_Key;
利用基于SM3算法的带密钥密码杂凑算法对所述密钥IDk_Key进行变换,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为密钥派生的迭代次数,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9。
进一步地,对于长度为n的明文数据X,令,v=n-u,A=X[1…u],B=X[u+1,n],所述在采用格式保留加密FF1算法明文数据进行加密处理时,对数据B进行带所述派生密钥的杂凑值,作为中间量R,公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(B)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节字符串表示的s。
进一步地,所述采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S,包括:
采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
将所述分组结果的前d个字节作为所述中间量S。
进一步地,所述基于所述中间量S和数据A,生成密文数据,包括:
令C= STRradix m(c),其中c=(NUMradix(A)+y)mod radixm,y=NUM(S),i为偶数时m=u,i为奇数时m=v,,v=n-u,n为所述明文数据的长度,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串,mod表示取模运算符;
令数据A=B,数据B=C,得到所述密文数据Y=A||B,||表示串联。
第二方面,本发明提出了一种基于FF1格式保留算法的数据解密方法,所述方法包括:
获取密文数据,并基于所述密文数据中携带的密钥标识选择密钥;
利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
在采用格式保留解密FF1算法对所述密文数据进行每一轮解密运算时,对密文A`进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述密文数据包括密文A`和密文B`;
采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
基于所述中间量S和密文B`,生成明文数据。
进一步地,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
进一步地,所述利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为密钥派生的迭代次数,IDk_Key为密钥,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9。
进一步地,对于长度为n的密文数据Y,令,v=n-u,A`=Y[1…u],B`=Y[u+1,n],所述在采用格式保留解密FF1算法所述密文数据进行解密处理时,对密文A`进行带所述派生密钥的杂凑值,作为中间量R,公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(A`)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串。
进一步地,所述采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S,包括:
采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
将所述分组结果的前d个字节作为所述中间量S。
进一步地,所述基于所述中间量S和密文B`,生成明文数据,包括:
令C= STRradix m(c),其中c=(NUMradix(B`)-x)mod radixm,x=NUM(S),i为偶数时m=u,i为奇数时m=v,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串;
令数据A`=B`,数据B`=C,得到所述明文数据X=A`||B`,||表示串联。
第三方面,本发明提出了一种增强FF1格式保留加密安全性的设备,所述设备包括:
密钥选取模块,用于随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
第一加密模块,用于在采用格式保留加密FF1算法对明文数据进行每一轮加密运算时,对数据B进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述明文数据包括数据A和数据B;
第二加密模块,用于采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
密文生成模块,用于基于所述中间量S和数据A,生成密文数据。
第四方面,本发明提出了一种基于FF1格式保留算法的数据解密设备,所述设备包括:
密文获取模块,用于获取密文数据,并基于所述密文数据中携带的密钥标识选择密钥;
密钥派生模块,用于利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
第一解密模块,用于在采用格式保留解密FF1算法对所述密文数据进行每一轮解密运算时,对密文B`进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述密文数据包括密文A`和密文B`;
第二解密模块,用于采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
明文生成模块,用于基于所述中间量S和密文A`,生成明文数据。
第五方面,本发明提出了一种基于FF1格式保留算法的数据加解密系统,所述系统包括第一用户节点、第二用户节点,所述第一用户节点和所述第二用户节点均与量子密钥分发网络连接,其中:
所述量子密钥分发网络,用于生成并在全网的量子网络节点同步多支密钥,并经安全存储介质将密钥导入到所述第一用户节点和所述第二用户节点中;
所述第一用户节点,用于采用如上所述的增强FF1格式保留加密安全性的方法对明文数据进行加密,得到密文数据并发送至所述第二用户节点;
所述第二用户节点,用于对所述密文数据进行解密,得到所述明文数据。
本发明的优点在于:
(1)本发明在对明文进行格式保留加密时,对随机选择的某支密钥基于SM3算法的带密钥密码杂凑算法进行安全派生,产生多个符合前后向安全性的派生密钥,并在格式保留加密每一轮的加密运算中调用不同的派生密钥,随机化扩充密钥空间,提高了算法的复杂度和信息冗余度,提升格式保留加密的破解难度。
(2)本发明在每轮调用中根据本轮特征数据(包括轮密钥)实时调用并结合使用SM3和SM4产生中间量。
(3)通过量子密钥分发网络(Quantum Key Distribution,QKD)为用户节点分发大量具有统一的密钥标识号索引的预共享密钥,可安全共享大容量密钥。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明一实施例提出的一种增强FF1格式保留加密安全性的方法的流程示意图;
图2是本发明一实施例提出的一种基于FF1格式保留算法的数据解密方法的流程示意图;
图3是本发明一实施例提出的一种增强FF1格式保留加密安全性的设备的结构示意图;
图4是本发明一实施例提出的一种基于FF1格式保留算法的数据解密设备的结构示意图;
图5是本发明一实施例提出的一种基于FF1格式保留算法的数据加解密系统的结构示意图;
图6是本发明一实施例提出的一种基于FF1格式保留算法的数据加解密系统的工作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明第一实施例提出了一种增强FF1格式保留加密安全性的方法,所述方法包括:
S101、随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
S102、在采用格式保留加密FF1算法对明文数据进行每一轮加密运算时,对数据B进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述明文数据包括数据A和数据B;
S103、采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
S104、基于所述中间量S和数据A,生成密文数据。
本实施例在对明文进行格式保留加密时,基于SM3算法的带密钥密码杂凑算法对随机选择的某支密钥进行安全派生,产生多个符合前后向安全性的派生密钥,并在格式保留加密每一轮的加密运算中调用派生密钥,随机化扩充密钥空间,提高了算法的复杂度和信息冗余度,提升格式保留加密的破解难度。
在一实施例中,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
在一实施例中,所述密钥采用密钥ID进行标识。
具体地,本实施例通过量子密钥分发网络QKD生成并在全网的量子网络节点同步多支使用32比特位密钥ID进行标识的128比特位的新鲜密钥,并使用安全SIM卡、安全TF卡或安全U盾等安全存储介质进行密钥充注并导入到用户节点的本地存储和运行空间,供用户节点在进行明文加密时调用。
在一实施例中,所述步骤S101:随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,具体包括以下步骤:
S111、随机选择标识为IDk的密钥IDk_Key;
S112、利用基于SM3算法的带密钥密码杂凑算法对所述密钥IDk_Key进行变换,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为密钥派生的迭代次数,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9。
需要说明的是,number为可指定的迭代次数,salt0~salt9为512比特位盐值,可以来源于随机数或预定义字符串,在同一加解密域内用户间共享。
在一实施例中,对于长度为n的明文数据X,对于长度为n的明文数据X, 2≤n≤232且对于基radix∈[2,216],radixn≥1000000,令,v=n-u,A=X[1…u],B=X[u+1,n],所述步骤S102:在采用格式保留加密FF1算法明文数据进行加密处理时,对数据B进行带所述派生密钥的杂凑值,作为中间量R,公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(B)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串。
在一实施例中,所述步骤S103:采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S,包括以下步骤:
S131、采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
S132、将所述分组结果的前d个字节作为所述中间量S。
在一实施例中,所述步骤S104:基于所述中间量S和数据A,生成密文数据,包括以下步骤:
S141、令C= STRradix m(c),其中c=(NUMradix(A)+y)mod radixm,y=NUM(S),i为偶数时m=u,i为奇数时m=v,,v=n-u,n为所述明文数据的长度,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串,mod表示取模运算符;
S142、令数据A=B,数据B=C,得到所述密文数据Y=A||B,||表示串联。
实施例2
如图2所示,本发明第二实施例提出了一种基于FF1格式保留算法的数据解密方法,所述方法包括以下步骤:
S201、获取密文数据,并基于所述密文数据中携带的密钥标识选择密钥;
S202、利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
S203、在采用格式保留解密FF1算法对所述密文数据进行每一轮解密运算时,对密文A`进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述密文数据包括密文A`和密文B`;
S204、采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
S205、基于所述中间量S和密文B`,生成明文数据。
在一实施例中,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
在一实施例中,所述步骤S02:利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为迭代次数,IDk_Key为密钥,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9。
在一实施例中,对于长度为n的密文数据Y,令,v=n-u,A`=Y[1…u],B`=Y[u+1,n],所述步骤S203:在采用格式保留解密FF1算法所述密文数据进行解密处理时,对密文A`进行带所述派生密钥的杂凑值,作为中间量R,公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(A`)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串。
在一实施例中,所述步骤S204:采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S,包括以下步骤:
S241、采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
S242、将所述分组结果的前d个字节作为所述中间量S。
在一实施例中,所述步骤S205:基于所述中间量S和密文B`,生成明文数据,包括以下步骤:
S251、令C= STRradix m(c),其中c=(NUMradix(B`)-x)mod radixm,x=NUM(S),i为偶数时m=u,i为奇数时m=v,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串;
S252、令数据A`=B`,数据B`=C,得到所述明文数据X=A`||B`,||表示串联。
需要说明的是,本实施例提出的对称解密过程为上述实施例1提出的对称加密的逆过程,通过在每轮解密运算中使用不同的派生密钥,每轮解密运算过程中使用SM3算法对重要参数进行变换,密钥空间增大,整体的算法复杂度和安全性增强。
实施例3
如图3所示,本发明第三实施例提出了一种增强FF1格式保留加密安全性的设备,所述设备包括:
密钥选取模块11,用于随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
第一加密模块12,用于在采用格式保留加密FF1算法对明文数据进行每一轮加密运算时,对数据B进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述明文数据包括数据A和数据B;
第二加密模块13,用于采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
密文生成模块14,用于基于所述中间量S和数据A,生成密文数据。
本实施例在对明文进行格式保留加密时,基于SM3算法的带密钥密码杂凑算法对随机选择的某支密钥进行安全派生,产生多个符合前后向安全性的派生密钥,并在格式保留加密每一轮的加密运算中调用派生密钥,随机化扩充密钥空间,提高了算法的复杂度和信息冗余度,提升格式保留加密的破解难度。
在一实施例中,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
在一实施例中,所述密钥采用密钥ID进行标识。
在一实施例中,所述密钥选取模块11,具体包括:
密钥随机选择单元,用于随机选择标识为IDk的密钥IDk_Key;
密钥派生单元,用于利用基于SM3算法的带密钥密码杂凑算法对所述密钥IDk_Key进行变换,所述密钥派生函数公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为密钥派生的迭代次数,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9。
在一实施例中,对于长度为n的明文数据X,令,v=n-u,A=X[1…u],B=X[u+1,n],所述第一加密模块12,具体用于:在采用格式保留加密FF1算法明文数据进行加密处理时,对数据B进行带所述派生密钥的杂凑值,作为中间量R,公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(B)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串。
在一实施例中,所述第二加密模块13,具体包括:
加密单元,用于采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
中间量S生成单元,用于将所述分组结果的前d个字节作为所述中间量S。
在一实施例中,所述密文生成模块14,具体用于:
令C= STRradix m(c),其中c=(NUMradix(A)+y)mod radixm,y=NUM(S),i为偶数时m=u,i为奇数时m=v,,v=n-u,n为所述明文数据的长度,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串,mod表示取模运算符;
令数据A=B,数据B=C,得到所述密文数据Y=A||B,||表示串联。
实施例4
如图4所示,本发明第四实施例提出了一种基于FF1格式保留算法的数据解密设备,所述设备包括:
密文获取模块21,用于获取密文数据,并基于所述密文数据中携带的密钥标识选择密钥;
密钥派生模块22,用于利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥;
第一解密模块23,用于在采用格式保留解密FF1算法对所述密文数据进行每一轮解密运算时,对密文B`进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述密文数据包括密文A`和密文B`;
第二解密模块24,用于采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
明文生成模块25,用于基于所述中间量S和密文A`,生成明文数据。
在一实施例中,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
在一实施例中,所述密钥派生模块22,具体用于:利用密钥派生函数对所述密钥进行变换,所述密钥派生函数公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为密钥派生的迭代次数,IDk_Key为密钥,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9。
在一实施例中,对于长度为n的密文数据Y,令,v=n-u,A`=Y[1…u],B`=Y[u+1,n],所述第一解密模块23,具体用于:
采用格式保留解密FF1算法对所述密文数据进行每一轮解密处运算时,对密文A`进行带所述派生密钥的杂凑值计算,得到中间量R,公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(A`)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串。
在一实施例中,所述第二解密模块24,具体包括:
解密单元,用于采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
中间量S生成单元,用于将所述分组结果的前d个字节作为所述中间量S。
在一实施例中,所述明文生成模块25,具体用于:
令C= STRradix m(c),其中c=(NUMradix(B`)-x)mod radixm,x=NUM(S),i为偶数时m=u,i为奇数时m=v,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串;
令数据A`=B`,数据B`=C,得到所述明文数据X=A`||B`,||表示串联。
实施例5
如图5所示,本发明第五实施例提出了一种基于FF1格式保留算法的数据加解密系统,所述系统包括第一用户节点1、第二用户节点2,所述第一用户节点1和所述第二用户节点2均与量子密钥分发网络3连接,其中:
所述量子密钥分发网络3,用于生成并在全网的量子网络节点同步多支密钥,并经安全存储介质将密钥导入到所述第一用户节点1和所述第二用户节点2中;
所述第一用户节点1,用于采用如上实施例1所述的增强FF1格式保留加密安全性的方法对明文数据进行加密,得到密文数据并发送至所述第二用户节点;
所述第二用户节点2,用于采用如上实施例2所述的解密方法对所述密文数据进行解密,得到所述明文数据。
具体地,用户节点用于使用量子密钥分发网络分发的密钥和FF1-SM4格式保留算法进行数据加解密处理,使用安全SIM卡、安全TF卡或安全U盾等安全存储介质进行密钥充注并导入到本地存储和运行空间。
密钥代理用于在通信参与方不能直接在量子密钥分发网络的节点进行密钥充注和密钥分发的情况下提供密钥充注和密钥分发的代理功能。
量子密钥分发网络包含量子网络节点和量子网络链路控制中心,实现量子密钥生成和分发、量子密钥中继、量子密钥提供等服务;量子网络节点用于存储生成的量子密钥,接收密钥代理的密钥申请,向密钥代理提供密钥或直接提供密钥充注和密钥分发服务;量子网络链路控制中心用于按照量子网络节点ID建立节点间的量子密钥分发及中继链路。
需要说明的是,基于FF1格式保留算法的数据加解密系统的工作流程如图6所示:
(1)通过量子密钥分发网络QKD生成并在全网的量子网络节点同步多支使用32比特位密钥ID进行标识的128比特位的新鲜密钥并使用安全SIM卡、安全TF卡或安全U盾等安全存储介质进行密钥充注并导入到第一用户节点和第二用户节点的本地存储和运行空间;
(2)对某个数据进行加密的用户节点随机选择密钥标识为IDk的预共享密钥,并对IDk标识的密钥IDk_Key进行如下变换:
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”);
P2=HMAC_SM3(IDk_Key, P1);
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
对于i从0到9:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
其中,number为可指定的迭代次数,salt0~salt9为512比特位盐值,可以来源于随机数或预定义字符串,在同一加解密域内用户间共享,HMAC_SM3为基于SM3算法的带密钥密码杂凑(HMAC)算法。
(3)对于长度为n的明文数据X,2≤n≤232且对于基radix∈[2,216],radixn≥1000000,[s]N表示s重复N次,第一用户节点对明文数据进行加密过程为:
,v=n-u,A=X[1…u],B=X[u+1,n],T为长度为t的预设字符串,,/>,P=[1]||[2]||[1]||[radix]3||[10]||[u mod256]||[n]4||[t]4
以NUMradix()表示以radix为基的数字,NUM( )表示字节串到整数的转化,STRradix m(N)表示将整数N表示为radix为基的m长字符串,SM3(k,data)表示采用SM3计算data的带密钥k的杂凑值,SM4(k,data)表示采用SM4算法对data进行对称分组密码运算,则对于i从0到9:
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(B)]b
R=SM3(pkeyi,P||Q)
取S为下面分组的前d个字节:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
y=NUM(S)
m=u(i=偶数)/v(i=奇数)
c=(NUMradix(A)+y)mod radixm
C= STRradix m(c)
A=B
B=C
返回加密结果Y=A||B。
(4)第二用户节点对于密文数据Y进行解密的过程包括:
对于长度为n的密文数据Y,令A`=Y[1…u],B`=Y[u+1,n],则对于i从9到0:
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(A`)]b
R=SM3(pkeyi,P||Q)
取S为下面分组的前d个字节
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
x=NUM(S)
m=u(i=偶数)/v(i=奇数)
c=(NUMradix(B`)-x)mod radixm
C= STRradix m(c)
B`=A`
A`=C
返回解密结果X=A`||B`。
本实施例通过量子密钥分发网络QKD为用户节点分发大量具有统一的密钥标识号索引的预共享密钥,可安全共享大容量密钥;并基于SM3的带密钥杂凑算法产生多个符合前后向安全性的派生密钥进行FF1-SM4格式保留加密每一轮的加解密运算,在密钥派生之外,在格式保留加密过程中也使用了带密钥的密码杂凑函数HMAC进行相关数据的变换和派生,随机化扩充密钥空间,提高了算法的复杂度和信息冗余度,提升格式保留加密的破解难度。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种增强FF1格式保留加密安全性的方法,其特征在于,所述方法包括:
随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,包括:
随机选择标识为IDk的密钥IDk_Key;
利用基于SM3算法的带密钥密码杂凑算法对所述密钥IDk_Key进行变换,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为迭代次数,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9;
在采用格式保留加密FF1算法对明文数据进行每一轮加密运算时,对数据B进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述明文数据包括数据A和数据B,对于长度为n的明文数据X,令,v=n-u,A=X[1…u],B=X[u+1,n],中间量R的公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(B)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串;
采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
基于所述中间量S和数据A,生成密文数据。
2.如权利要求1所述的增强FF1格式保留加密安全性的方法,其特征在于,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
3.如权利要求1所述的增强FF1格式保留加密安全性的方法,其特征在于,所述密钥采用密钥ID进行标识。
4.如权利要求1所述的增强FF1格式保留加密安全性的方法,其特征在于,所述采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S,包括:
采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
将所述分组结果的前d个字节作为所述中间量S。
5.如权利要求1所述的增强FF1格式保留加密安全性的方法,其特征在于,所述基于所述中间量S和数据A,生成密文数据,包括:
令C= STRradix m(c),其中c=(NUMradix(A)+y)mod radixm,y=NUM(S),i为偶数时m=u,i为奇数时m=v,,v=n-u,n为所述明文数据的长度,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串,mod表示取模运算符,/>表示向上取整;
令数据A=B,数据B=C,得到所述密文数据Y=A||B,||表示串联。
6.一种基于FF1格式保留算法的数据解密方法,其特征在于,所述方法包括:
获取密文数据,并基于所述密文数据中携带的密钥标识选择密钥;
利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为迭代次数,IDk_Key为密钥,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9;
在采用格式保留解密FF1算法对所述密文数据进行每一轮解密运算时,对密文A`进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述密文数据包括密文A`和密文B`,对于长度为n的密文数据Y,令,v=n-u,A`=Y[1…u],B`=Y[u+1,n],中间量R公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(A`)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串;
采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
基于所述中间量S和密文B`,生成明文数据。
7.如权利要求6所述的基于FF1格式保留算法的数据解密方法,其特征在于,所述密钥为经量子密钥分发网络生成并在全网的量子网络节点同步的多支新鲜密钥,且在同一加解密域内用户间共享。
8.如权利要求6所述的基于FF1格式保留算法的数据解密方法,其特征在于,所述采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S,包括:
采用SM4算法对所述中间量R和所述派生密钥进行处理,得到分组结果,公式表示为:
R||SM4(pkeyi,R[1]16)||SM4(pkeyi,R/>[2]16)…||SM4(pkeyi,R/>[/>-1]16)
式中,SM4(k,data)表示采用SM4算法对数据data进行带密钥k的对称分组密码运算,pkeyi为派生密钥,||表示串联,表示异或操作,/>,/>表示向下取整,,LOG(radix)表示对基数radix求以2为底的对数;
将所述分组结果的前d个字节作为所述中间量S。
9.如权利要求6所述的基于FF1格式保留算法的数据解密方法,其特征在于,所述基于所述中间量S和密文B`,生成明文数据,包括:
令C= STRradix m(c),其中c=(NUMradix(B`)-x)mod radixm,x=NUM(S),i为偶数时m=u,i为奇数时m=v,NUMradix( )表示以radix为基的数字表示,NUM( )表示字节串到整数的转化,STRradix m(c)表示将整数c表示为以radix为基数且长度为m的字符串;
令数据A`=B`,数据B`=C,得到所述明文数据X=A`||B`,||表示串联。
10.一种增强FF1格式保留加密安全性的设备,其特征在于,所述设备包括:
密钥选取模块,用于随机选取密钥,并利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,包括:
随机选择标识为IDk的密钥IDk_Key;
利用基于SM3算法的带密钥密码杂凑算法对所述密钥IDk_Key进行变换,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为迭代次数,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9;
第一加密模块,用于在采用格式保留加密FF1算法对明文数据进行每一轮加密运算时,对数据B进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述明文数据包括数据A和数据B,对于长度为n的明文数据X,令,v=n-u,A=X[1…u],B=X[u+1,n],中间量R的公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(B)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串;
第二加密模块,用于采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
密文生成模块,用于基于所述中间量S和数据A,生成密文数据。
11.一种基于FF1格式保留算法的数据解密设备,其特征在于,所述设备包括:
密文获取模块,用于获取密文数据,并基于所述密文数据中携带的密钥标识选择密钥;
密钥派生模块,用于利用基于SM3算法的带密钥密码杂凑算法对所述密钥进行变换,得到派生密钥,公式表示为:
pkeyi= KF(IDk_Key,IDk,salti,n`,i)
KF(IDk_Key,IDk,salti,n`,i)= P1 P2/>……/>Pn`
P1=HMAC_SM3(IDk_Key,IDk||salti||i||“FF1 key derivation”)
P2=HMAC_SM3(IDk_Key, P1
……
Pn`= HMAC_SM3(IDk_Key, Pn`-1);
式中,pkeyi为派生密钥,salti为盐值,n`为迭代次数,IDk_Key为密钥,KF( )为密钥派生函数,P1~Pn`为密钥派生函数计算的中间量,“FF1 key derivation”为固定字符串,HMAC_SM3为基于SM3算法的带密钥密码杂凑算法,||表示串联,表示异或操作,i=0,1,2...,9;
第一解密模块,用于在采用格式保留解密FF1算法对所述密文数据进行每一轮解密运算时,对密文B`进行带所述派生密钥的杂凑值计算,得到中间量R,其中所述密文数据包括密文A`和密文B`,对于长度为n的密文数据Y,令,v=n-u,A`=Y[1…u],B`=Y[u+1,n],中间量R公式表示为:
R=SM3(pkeyi,P||Q)
P=[1]||[2]||[1]||[radix]3||[10]||[u mod 256]||[n]4||[t]4
Q=T||[0](-t-b-1)mod16||[i]||[NUMradix(A`)]b
式中,SM3(k,data)表示采用SM3算法计算数据data的带密钥k的杂凑值,pkeyi为派生密钥,||表示串联,radix表示基数,NUMradix( )表示以radix为基的数字表示,[ ]表示单字节的字符,i表示格式保留加密算法的迭代次数,mod表示取模运算符,,LOG(radix)表示对基数radix求以2为底的对数,/>表示向上取整,表示向下取整,T为长度为t的预设字符串,[s]N表示N个字节的字符串;
第二解密模块,用于采用对称分组密码运算,对所述中间量R和所述派生密钥进行处理,生成中间量S;
明文生成模块,用于基于所述中间量S和密文A`,生成明文数据。
12.一种基于FF1格式保留算法的数据加解密系统,其特征在于,所述系统包括第一用户节点、第二用户节点,所述第一用户节点和所述第二用户节点均与量子密钥分发网络连接,其中:
所述量子密钥分发网络,用于生成并在全网的量子网络节点同步多支密钥,并经安全存储介质将密钥导入到所述第一用户节点和所述第二用户节点中;
所述第一用户节点,用于采用如权利要求1~5任一项所述的增强FF1格式保留加密安全性的方法对明文数据进行加密,得到密文数据并发送至所述第二用户节点;
所述第二用户节点,用于对所述密文数据进行解密,得到所述明文数据。
CN202310982388.9A 2023-08-07 2023-08-07 增强ff1格式保留加密安全性的方法及设备 Active CN116707804B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310982388.9A CN116707804B (zh) 2023-08-07 2023-08-07 增强ff1格式保留加密安全性的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310982388.9A CN116707804B (zh) 2023-08-07 2023-08-07 增强ff1格式保留加密安全性的方法及设备

Publications (2)

Publication Number Publication Date
CN116707804A CN116707804A (zh) 2023-09-05
CN116707804B true CN116707804B (zh) 2023-10-31

Family

ID=87824342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310982388.9A Active CN116707804B (zh) 2023-08-07 2023-08-07 增强ff1格式保留加密安全性的方法及设备

Country Status (1)

Country Link
CN (1) CN116707804B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603232A (zh) * 2017-01-22 2017-04-26 安徽大学 一种基于不经意量子密钥分配的最近隐私查询方法
CN109474425A (zh) * 2018-12-25 2019-03-15 国科量子通信网络有限公司 一种基于多个共享密钥获得任意指定长度派生密钥的方法
CN110768797A (zh) * 2019-11-13 2020-02-07 西北师范大学 一种基于身份格式保留加密的数据脱敏方法
CN111783112A (zh) * 2020-06-09 2020-10-16 北京三未信安科技发展有限公司 一种保留格式加密的快速实现方法、系统、介质及设备
CN113037488A (zh) * 2021-04-19 2021-06-25 工业信息安全(四川)创新中心有限公司 基于国密密码杂凑算法的保留格式加密方法及解密方法
CN113824547A (zh) * 2021-04-06 2021-12-21 京东科技控股股份有限公司 保留格式的加密和解密方法、装置、电子设备和介质
CN113852466A (zh) * 2021-09-29 2021-12-28 福建师范大学 基于国密sm9的用户撤销方法
CN114338047A (zh) * 2022-03-08 2022-04-12 科大天工智能装备技术(天津)有限公司 基于国密的区块链工业数据加密方法、装置及存储介质
CN115567206A (zh) * 2022-09-29 2023-01-03 中电信量子科技有限公司 采用量子分发密钥实现网络数据报文加解密方法及系统
CN115865319A (zh) * 2022-11-11 2023-03-28 矩阵时光数字科技有限公司 一种基于国密sm3算法的密钥扩展方法及其系统和介质
CN116032655A (zh) * 2023-02-13 2023-04-28 杭州天谷信息科技有限公司 一种可抵御计时攻击的身份鉴别方法以及系统
CN116305197A (zh) * 2023-02-17 2023-06-23 成都国科微电子有限公司 一种数据加密方法、装置及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361617B2 (en) * 2008-06-17 2016-06-07 Verifone, Inc. Variable-length cipher system and method
US8958562B2 (en) * 2007-01-16 2015-02-17 Voltage Security, Inc. Format-preserving cryptographic systems
US11488134B2 (en) * 2008-05-02 2022-11-01 Micro Focus Llc Format-preserving cryptographic systems
US20130168450A1 (en) * 2011-12-30 2013-07-04 Clay W. von Mueller Format preserving cipher system and method

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603232A (zh) * 2017-01-22 2017-04-26 安徽大学 一种基于不经意量子密钥分配的最近隐私查询方法
CN109474425A (zh) * 2018-12-25 2019-03-15 国科量子通信网络有限公司 一种基于多个共享密钥获得任意指定长度派生密钥的方法
CN110768797A (zh) * 2019-11-13 2020-02-07 西北师范大学 一种基于身份格式保留加密的数据脱敏方法
CN111783112A (zh) * 2020-06-09 2020-10-16 北京三未信安科技发展有限公司 一种保留格式加密的快速实现方法、系统、介质及设备
CN113824547A (zh) * 2021-04-06 2021-12-21 京东科技控股股份有限公司 保留格式的加密和解密方法、装置、电子设备和介质
CN113037488A (zh) * 2021-04-19 2021-06-25 工业信息安全(四川)创新中心有限公司 基于国密密码杂凑算法的保留格式加密方法及解密方法
CN113852466A (zh) * 2021-09-29 2021-12-28 福建师范大学 基于国密sm9的用户撤销方法
CN114338047A (zh) * 2022-03-08 2022-04-12 科大天工智能装备技术(天津)有限公司 基于国密的区块链工业数据加密方法、装置及存储介质
CN115567206A (zh) * 2022-09-29 2023-01-03 中电信量子科技有限公司 采用量子分发密钥实现网络数据报文加解密方法及系统
CN115865319A (zh) * 2022-11-11 2023-03-28 矩阵时光数字科技有限公司 一种基于国密sm3算法的密钥扩展方法及其系统和介质
CN116032655A (zh) * 2023-02-13 2023-04-28 杭州天谷信息科技有限公司 一种可抵御计时攻击的身份鉴别方法以及系统
CN116305197A (zh) * 2023-02-17 2023-06-23 成都国科微电子有限公司 一种数据加密方法、装置及可读存储介质

Also Published As

Publication number Publication date
CN116707804A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
CN109379182B (zh) 支持数据去重的高效数据重加密方法及系统、云存储系统
CN109726567B (zh) 一种基于全同态加密的移动目标加密方法
CN113162751B (zh) 具备加同态性的加密方法、系统及可读存储介质
CN107113314A (zh) 用于云计算中的异构数据存储管理的方法和装置
CN112382376A (zh) 基于区块链的医疗器械管理追溯系统
CN112737764A (zh) 一种轻量级多用户多数据的全同态数据加密封装方法
CN112291179B (zh) 一种实现设备认证的方法、系统及装置
Yang Application of hybrid encryption algorithm in hardware encryption interface card
CN116707804B (zh) 增强ff1格式保留加密安全性的方法及设备
US20130058483A1 (en) Public key cryptosystem and technique
CN114928440A (zh) 基于sm9的认证可搜索加密方法及系统
CN113792315A (zh) 一种支持块级加密去重的云数据访问控制方法及控制系统
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program
CN113965319A (zh) 一种基于量子密钥分配系统的密钥管理系统和方法
CN112954388A (zh) 一种数据文件的获取方法、装置、终端设备和存储介质
CN112907247A (zh) 一种区块链授权计算控制方法
CN116886298A (zh) 增强ff3格式保留加密安全性的方法及设备
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
CN111865578A (zh) 一种基于sm2的多接收方公钥加密方法
CN111431721A (zh) 一种智能医疗环境下基于ibe的物联网设备加密方法
Al-Attab et al. Hybrid data encryption technique for data security in cloud computing
CN114039725B (zh) 一种基于sm9的模糊身份基加密方法
CN115442102B (zh) 一种基于sm9算法的等式测试方法
CN117318943B (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