CN119402186B - 数据序列加解密方法、装置、设备及存储介质 - Google Patents
数据序列加解密方法、装置、设备及存储介质Info
- Publication number
- CN119402186B CN119402186B CN202411522756.2A CN202411522756A CN119402186B CN 119402186 B CN119402186 B CN 119402186B CN 202411522756 A CN202411522756 A CN 202411522756A CN 119402186 B CN119402186 B CN 119402186B
- Authority
- CN
- China
- Prior art keywords
- key
- bit string
- round
- sequence
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据序列加解密方法、装置、设备及存储介质。该方法包括:生成用户初始密钥,以及生成格基矩阵;根据用户初始密钥和格基矩阵,生成至少一个轮密钥;获取待加密明文数据,并基于预设的明文数据单位长度,对待加密明文数据进行数据切分,得到至少一个明文序列;根据明文序列的序列数量,确定序列加密密钥的密钥生成轮数;针对任一轮的序列加密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥;根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列;根据各密钥生成轮分别对应的密文序列,生成待加密明文数据的加密密文数据。
Description
技术领域
本发明涉及数据序列加密技术领域,尤其涉及一种数据序列加解密方法、装置、设备及存储介质。
背景技术
序列加密是现代密码学的最常见概念,是近似一次一密的密码技术,具备理论安全性高、易于实现、开销小、扩散性低等优点,广泛应用于特种行业保密通信、数据安全加密等场景中。
现有的序列加密算法包括RC4(Rivest Cipher 4,流加密算法)、SEAL(SimpleEncrypted Arithmetic Library,简单加密算术库)和SM7(SM7Cryptographic Algorithm,对称加密算法)等。
现有的序列加密算法的抗量子攻击能力较弱,从而导致量子加密安全性不高,且密钥扩展和生成,与数据加解密计算之间存在较强的耦合性,从而导致密钥加解密阶段灵活性和可重构性不高。
发明内容
本发明提供了一种数据序列加解密方法、装置、设备及存储介质,以提高序列加密的抗量子攻击能力,提高序列加密安全性,以及实现序列加密过程可重构,提高加解密过程灵活性。
根据本发明的一方面,提供了一种数据序列加解密方法,应用于数据加密方,所述方法包括:
生成用户初始密钥,以及生成格基矩阵;
根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
获取待加密明文数据,并基于预设的明文数据单位长度,对所述待加密明文数据进行数据切分,得到至少一个明文序列;
根据所述明文序列的序列数量,确定序列加密密钥的密钥生成轮数;
针对任一轮的序列加密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥;
根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列;
根据各所述密钥生成轮分别对应的密文序列,生成所述待加密明文数据的加密密文数据。
根据本发明的另一方面,提供了一种数据序列加解密方法,应用于数据解密方,所述方法包括:
生成用户初始密钥,以及生成格基矩阵;
根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
获取加密密文数据,并基于预设的密文数据单位长度,对所述加密密文数据进行数据切分,得到至少一个密文序列;
根据所述密文序列的序列数量,确定序列解密密钥的密钥生成轮数;
针对任一轮的序列解密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列解密密钥;
根据该密钥生成轮下的序列解密密钥和密文序列,生成该密钥生成轮下的明文序列;
根据各所述密钥生成轮分别对应的明文序列,生成所述加密密文数据的明文数据。
根据本发明的另一方面,提供了一种数据序列加解密装置,配置于数据加密方,所述装置包括:
初始密钥生成模块,用于生成用户初始密钥,以及生成格基矩阵;
轮密钥生成模块,用于根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
明文序列生成模块,用于获取待加密明文数据,并基于预设的明文数据单位长度,对所述待加密明文数据进行数据切分,得到至少一个明文序列;
生成轮数确定模块,用于根据所述明文序列的序列数量,确定序列加密密钥的密钥生成轮数;
对应密钥确定模块,用于针对任一轮的序列加密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
序列密钥生成模块,用于根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥;
密文序列生成模块,用于根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列;
密文数据生成模块,用于根据各所述密钥生成轮分别对应的密文序列,生成所述待加密明文数据的加密密文数据。
根据本发明的另一方面,提供了一种数据序列加解密装置,配置于数据解密方,所述装置包括:
初始密钥生成模块,用于生成用户初始密钥,以及生成格基矩阵;
轮密钥生成模块,用于根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
密文序列生成模块,用于获取加密密文数据,并基于预设的密文数据单位长度,对所述加密密文数据进行数据切分,得到至少一个密文序列;
生成轮数确定模块,用于根据所述密文序列的序列数量,确定序列解密密钥的密钥生成轮数;
对应密钥生成模块,用于针对任一轮的序列解密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
序列密钥生成模块,用于根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列解密密钥;
明文序列生成模块,用于根据该密钥生成轮下的序列解密密钥和密文序列,生成该密钥生成轮下的明文序列;
明文数据生成模块,用于根据各所述密钥生成轮分别对应的明文序列,生成所述加密密文数据的明文数据。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据序列加解密方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据序列加解密方法。
本发明实施例技术方案使用了基于格问题框架的密钥扩展方法,并且,密钥扩展过程和加解密过程完全解耦,密钥生成和扩展模块、加解密模块可以部署在不同的部件中,便于在物联网等场景中应用。此外,上述技术方案的数据加解密方式提高了序列加密的抗量子攻击能力,以及提高了序列加密安全性,并且,实现了序列加密过程可重构,提高了加解密过程灵活性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种数据序列加解密方法的流程图;
图2是根据本发明实施例二提供的一种数据序列加解密方法的流程图;
图3是根据本发明实施例三提供的一种数据序列加解密装置的结构示意图;
图4是根据本发明实施例四提供的一种数据序列加解密装置的结构示意图;
图5是实现本发明实施例的数据序列加解密方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种数据序列加解密方法的流程图,本实施例可适用于对待加密明文数据有保留原格式需求,如长度一致、占用内存近似,加密过程具备抗量安全性的数据加解密情况,该方法可以由数据序列加解密装置来执行,该基于数据序列加解密装置可以采用硬件和/或软件的形式实现,该数据序列加解密装置可配置于数据加密方的电子设备中。如图1所示,该方法包括:
S110、生成用户初始密钥,以及生成格基矩阵。
具体的,用户可以使用密钥协商或随机数发生器等方式,按照指定的长度生成用户初始密钥。用户初始密钥的比特长度可以为128、192、256和512等,具体可以根据实际需求进行长度设定,本实施例对此不进行限制。用户初始密钥可以预先生成并以比特串形式存储,也可以进行数据加密任务时生成。
其中,格基矩阵的由随机生成的整数模q组成。格基矩阵B的表达方式如下:
其中,M和N的维度大小由相关技术人员预先设定。N的大小与用户初始密钥的密钥长度相关,用户初始密钥长度由相关技术人员根据实际需求进行预先设定。
S120、根据用户初始密钥和格基矩阵,生成至少一个轮密钥。
可以将用户初始密钥转换为矩阵形式表示,将用户初始密钥的密钥矩阵与格基矩阵进行矩阵相乘,得到目标矩阵;将目标矩阵中的元素确定为轮密钥。
为进一步提高轮密钥的生成安全性和可靠性,使得密钥更加具备抗量子攻击能力,在一个可选实施例中,根据用户初始密钥和格基矩阵,生成至少一个轮密钥,包括:
步骤a1、获取加密相关信息,并根据加密相关信息和用户初始密钥,生成初始密钥比特串。
其中,加密相关信息可以为与本次加密有关的信息,如任务信息、通信信息和账户信息等。将加密相关信息按照指定长度的比特串进行合并;将合并后的加密相关信息和用户初始密钥进行合并,得到初始密钥比特串。
具体的,将加密相关信息记为Auc,用户初始密钥记为Key,将加密相关信息Auc和用户初始密钥Key进行比特拼接,合并成指定长度W的初始密钥比特串String:
String=Key||Auc;
其中,“||”表示比特拼接;其中,初始密钥比特串String的比特长度为W。
步骤a2、根据预设的密钥数据单位长度,对初始密钥比特串进行切分,得到至少一个初始密钥子比特串。
若预设的密钥数据单位长度为T,需要说明的是,初始密钥比特串String的比特长度为W要求能够被预设的密钥数据单位长度T整除。若初始密钥比特串String的比特长度W除预设的密钥数据单位长度T为N,则可以生成N各初始密钥子比特串。其中,初始密钥比特串String的切分方式如下:
String=S1||S2||…||SN;
其中,S1,S2,…,SN为初始密钥子比特串,每个初始密钥子比特串的长度均为T。
步骤a3、根据格基矩阵和各初始密钥子比特串,生成至少一个中间密钥子比特串。
在一个可选实施例中,根据格基矩阵和各初始密钥子比特串,生成至少一个中间密钥子比特串,包括:
步骤a31、对各初始密钥子比特串进行进制转换操作,得到初始整数密钥。
将每个初始密钥子比特串S1,S2,…,SN转换为整数(十进制)形式,得到初始整数密钥a1,…,aN,也即:(S1,S2,…,SN)=(a1,…,aN)。
步骤a32、根据初始整数密钥,生成初始密钥矩阵。
其中,初始矩阵密钥中的元素由初始整数密钥构成,初始密钥矩阵a如下:
(a1,…,aN)=a;
步骤a33、将格基矩阵和初始密钥矩阵的转置矩阵进行矩阵相乘操作,得到目标密钥矩阵。
其中,目标密钥矩阵Q的生成方式如下:
Q=Bat=(b1,b2,…,bM)t;
其中,B为格基矩阵;at为初始密钥矩阵的转置矩阵;(b1,b2,…,bM)t为目标密钥矩阵的转置矩阵。
步骤a34、根据目标密钥矩阵,生成至少一个中间密钥子比特串。
将目标密钥矩阵中的元素b1,b2,…,bM转化为M个二进制的中间密钥子比特串T1,T2,…,TM。
步骤a4、根据各中间密钥子比特串,生成中间加密比特串。
具体的,将各个中间密钥子比特串T1,T2,…,TM进行合并,得到中间加密比特串String*=T1||T2||…||TM。
步骤a5、根据中间加密比特串,生成至少一个轮密钥。
基于预设的比特抽取规则,从中间加密比特串String*中抽取有效比特,形成预设数量R个轮密钥Key1,…,KeyR。其中,每个轮密钥的长度为L。
其中,比特抽取规则可以由相关技术人员预先设定,例如,每三个比特间隔抽取L个,或者随机抽取L个,或者随机抽取L个后互相进行异或操作,本实施例对此不进行限制。
S130、获取待加密明文数据,并基于预设的明文数据单位长度,对待加密明文数据进行数据切分,得到至少一个明文序列。
若预设的明文数据单位长度为P,对待加密明文数据Plaintext按照单位长度P进行序列切分,得到至少一个明文序列Plaini:
Plaintext=Plain1||…||Plaink;
其中,每个明文序列Plaini的比特长度为P。
S140、根据明文序列的序列数量,确定序列加密密钥的密钥生成轮数。
可以采用计数器设定密钥生成轮数,密钥生成轮数与明文序列的序列数量相同。若序列数量为K,则序列加密密钥的密钥生成轮数为K轮。
S150、针对任一轮的序列加密密钥的生成方式,确定与该密钥生成轮对应的轮密钥。
针对K轮中的任意一轮的序列加密密钥的生成方式,确定该轮密钥生成轮对应的轮密钥。例如,若第i轮密钥生成轮对应的轮密钥为Keyi。
S160、根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥。
在一个可选实施例中,根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥,包括:
步骤b1、生成该密钥生成轮的初始加密比特串;初始加密比特串包括至少一个初始加密子比特串。
根据该密钥生成轮的计数器状态i,基于随机数(i,Ni),生成预设数量C个初始加密比特串Z1,…,ZC;其中,每个Zi的长度为L。
步骤b2、根据各初始加密子比特串中的第一预设数量下的前序子比特串,生成第一加密比特串。
其中,第一预设数量为1~C-1,例如,若初始加密比特串长度为C,则第一预设数量为C-1。
具体的,将初始加密比特串Z1,…,ZC转换为整数形式X1,…,XC。第一加密整数串Y的计算方式及如下:
Y=X1+X2+…XC-1;
其中,“+”表示模加计算。
将第一加密整数串Y转化为比特串的形式,得到第一加密比特串。
步骤b3、根据该密钥生成轮对应的轮密钥和第一加密比特串,生成第二加密比特串。
将第一加密比特串进行循环移位,例如,可通过循环右移位将地位比特转化到高位比特,得到新的第一加密比特串Y*,并将新的第一加密比特串转化为整数形式。
根据该密钥生成轮i轮下的轮密钥Keyi和新的第一加密比特串的整数形式的Y*,生成第二加密比特串U:
U=Y*+Keyi;
其中,“+”表示模加计算。
步骤b4、根据第二加密比特串和各初始加密子比特串中的第二预设数量下的末尾子比特串,生成头部子比特串。
其中,第二预设数量为最后一位比特串。例如,若初始加密子比特串为X1,…,XC,则第二预设数量下的末尾子比特串为XC。
具体的,头部子比特串X0的确定方式如下:
X0=U⊕XC;
其中,U表示第二加密比特串,XC表示末尾子比特串。
步骤b5、采用头部子比特串更新初始加密子比特串,得到目标加密比特串。
具体更新方式为Xj=Xj-1,j=1,2,…C,并将更新后的结果作为目标加密比特串。
步骤b6、根据目标加密比特串,生成该密钥生成轮的序列加密密钥。
经过R轮循环计算,每一轮的区别仅为轮密钥key不同,使用轮密钥的顺序为Key1,Key2,…,KeyR。根据最后一轮(也即第R轮)得到的目标加密比特串X1,…,XC,对最后一轮(也即第R轮)得到的目标加密比特串X1,…,XC进行拼接,得到该密钥生成轮的序列加密密钥Stream1=X1||…||XC。
需要说明的是,在上述R轮循环计算时,每一轮初始加密比特串X1,…,XC为上一轮结束得到的目标加密比特串X1,…,XC。
S170、根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列。
根据该密钥生成轮下的序列加密密钥Streami和明文序列Plaini,生成该密钥生成轮i下的密文序列Cipheri=Plaini⊕Streami。
S180、根据各密钥生成轮分别对应的密文序列,生成待加密明文数据的加密密文数据。
待加密明文数据的加密密文数据Ciphertext为各个密钥生成轮分别对应的密文序列的拼接:
Ciphertext=Cipher1||…||Cipherk
将上述得到的待加密明文数据的加密密文数据发送至数据需求方,一共数据需求方进行解密处理。
本发明实施例技术方案使用了基于格问题框架的密钥扩展方法,并且,密钥扩展过程和加解密过程完全解耦,密钥生成和扩展模块、加解密模块可以部署在不同的部件中,便于在物联网等场景中应用。此外,上述技术方案的数据加解密方式提高了序列加密的抗量子攻击能力,以及提高了序列加密安全性,并且,实现了序列加密过程可重构,提高了加解密过程灵活性。
实施例二
图2为本发明实施例二提供的一种数据序列加解密方法的流程图,本实施例可适用于对待加密明文数据有保留原格式需求,如长度一致、占用内存近似,加密过程具备抗量安全性的数据加解密情况,该方法可以由数据序列加解密装置来执行,该基于数据序列加解密装置可以采用硬件和/或软件的形式实现,该数据序列加解密装置可配置于数据解密方的电子设备中。如图2所示,该方法包括:
S210、生成用户初始密钥,以及生成格基矩阵。
具体的,用户可以使用密钥协商或随机数发生器等方式,按照指定的长度生成用户初始密钥。用户初始密钥的比特长度可以为128、192、256和512等,具体可以根据实际需求进行长度设定,本实施例对此不进行限制。用户初始密钥可以预先生成并以比特串形式存储,也可以进行数据加密任务时生成。
其中,格基矩阵的由随机生成的整数模q组成。格基矩阵B的表达方式如下:
其中,M和N的维度大小由相关技术人员预先设定。N的大小与用户初始密钥的密钥长度相关,用户初始密钥长度由相关技术人员根据实际需求进行预先设定。
S220、根据用户初始密钥和格基矩阵,生成至少一个轮密钥。
可以将用户初始密钥转换为矩阵形式表示,将用户初始密钥的密钥矩阵与格基矩阵进行矩阵相乘,得到目标矩阵;将目标矩阵中的元素确定为轮密钥。
为进一步提高轮密钥的生成安全性和可靠性,使得密钥更加具备抗量子攻击能力,在一个可选实施例中,根据用户初始密钥和格基矩阵,生成至少一个轮密钥,包括:
步骤c1、获取加密相关信息,并根据加密相关信息和用户初始密钥,生成初始密钥比特串。
其中,加密相关信息可以为与本次加密有关的信息,如任务信息、通信信息和账户信息等。将加密相关信息按照指定长度的比特串进行合并;将合并后的加密相关信息和用户初始密钥进行合并,得到初始密钥比特串。
具体的,将加密相关信息记为Auc,用户初始密钥记为Key,将加密相关信息Auc和用户初始密钥Key进行比特拼接,合并成指定长度W的初始密钥比特串String:
String=Key||Auc;
其中,“||”表示比特拼接;其中,初始密钥比特串String的比特长度为W。
步骤c2、根据预设的密钥数据单位长度,对初始密钥比特串进行切分,得到至少一个初始密钥子比特串。
若预设的密钥数据单位长度为T,需要说明的是,初始密钥比特串String的比特长度为W要求能够被预设的密钥数据单位长度T整除。若初始密钥比特串String的比特长度W除预设的密钥数据单位长度T为N,则可以生成N各初始密钥子比特串。其中,初始密钥比特串String的切分方式如下:
String=S1||S2||…||SN;
其中,S1,S2,…,SN为初始密钥子比特串,每个初始密钥子比特串的长度均为T。
步骤c3、根据格基矩阵和各初始密钥子比特串,生成至少一个中间密钥子比特串。
在一个可选实施例中,根据格基矩阵和各初始密钥子比特串,生成至少一个中间密钥子比特串,包括:
步骤c31、对各初始密钥子比特串进行进制转换操作,得到初始整数密钥。
将每个初始密钥子比特串S1,S2,…,SN转换为整数(十进制)形式,得到初始整数密钥a1,…,aN,也即:(S1,S2,…,SN)=(a1,…,aN)。
步骤c32、根据初始整数密钥,生成初始密钥矩阵。
其中,初始矩阵密钥中的元素由初始整数密钥构成,初始密钥矩阵a如下:
(a1,…,aN)=a;
步骤c33、将格基矩阵和初始密钥矩阵的转置矩阵进行矩阵相乘操作,得到目标密钥矩阵。
其中,目标密钥矩阵Q的生成方式如下:
Q=Bat=(b1,b2,…,bM)t;
其中,B为格基矩阵;at为初始密钥矩阵的转置矩阵;(b1,b2,…,bM)t为目标密钥矩阵的转置矩阵。
步骤c34、根据目标密钥矩阵,生成至少一个中间密钥子比特串。
将目标密钥矩阵中的元素b1,b2,…,bM转化为M个二进制的中间密钥子比特串T1,T2,…,TM。
步骤c4、根据各中间密钥子比特串,生成中间加密比特串。
具体的,将各个中间密钥子比特串T1,T2,…,TM进行合并,得到中间加密比特串String*=T1||T2||…||TM。
步骤c5、根据中间加密比特串,生成至少一个轮密钥。
基于预设的比特抽取规则,从中间加密比特串String*中抽取有效比特,形成预设数量R个轮密钥Key1,…,KeyR。其中,每个轮密钥的长度为L。
其中,比特抽取规则可以由相关技术人员预先设定,例如,每三个比特间隔抽取L个,或者随机抽取L个,或者随机抽取L个后互相进行异或操作,本实施例对此不进行限制。
S230、获取加密密文数据,并基于预设的密文数据单位长度,对加密密文数据进行数据切分,得到至少一个密文序列。
其中,预设的密文数据单位长度与预设的明文数据单位长度相同。若预设的密文数据单位长度为P,对加密密文数据Ciphertext按照预设的密文数据单位长度P进行序列切分,得到至少一个密文序列Cipheri:
Ciphertext=Cipher1||…||Cipherk
其中,每个密文序列Cipheri的比特长度为P。
S240、根据密文序列的序列数量,确定序列解密密钥的密钥生成轮数。
序列解密密钥的密钥生成轮数与密钥序列的序列数量相同。若序列数量为K,则序列解密密钥的密钥生成轮数为K轮。
S250、针对任一轮的序列解密密钥的生成方式,确定与该密钥生成轮对应的轮密钥。
针对K轮中的任意一轮的序列解密密钥的生成方式,确定该轮密钥生成轮对应的轮密钥。例如,若第i轮密钥生成轮对应的轮密钥为Keyi。
S260、根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列解密密钥。
在一个可选实施例中,根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列解密密钥,包括:
步骤d1、生成该密钥生成轮的初始解密比特串;初始解密比特串包括至少一个初始解密子比特串。
根据该密钥生成轮的计数器状态i,基于随机数(i,Ni),生成预设数量C个初始解密比特串Z1,…,ZC;其中,每个Zi的长度为L。
需要说明的是,初始解密比特串与初始加密比特串相同,可以预先生成并在加密方和解密方中分别存储。
步骤d2、根据各初始解密子比特串中的第一预设数量下的前序子比特串,生成第一解密比特串。
其中,第一预设数量为1~C-1,例如,若初始解密比特串长度为C,则第一预设数量为C-1。
具体的,将初始解密比特串Z1,…,ZC转换为整数形式X1,…,XC。第一解密整数串Y的计算方式及如下:
Y=X1+X2+…XC-1;
其中,“+”表示模加计算。
将第一解密整数串Y转化为比特串的形式,得到第一解密比特串。
步骤d3、根据该密钥生成轮对应的轮密钥和所述第一解密比特串,生成第二解密比特串。
将第一解密比特串进行循环移位,例如,可通过循环右移位将地位比特转化到高位比特,得到新的第一解密比特串Y*,并将新的第一解密比特串转化为整数形式。需要说明的是,对第一解密比特串的循环移位方式与第一加密比特串的循环移位方式相同。
根据该密钥生成轮i轮下的轮密钥Keyi和新的第一解密比特串的整数形式的Y*,生成第二解密比特串U:
U=Y*+Keyi;
其中,“+”表示模加计算。
步骤d4、根据第二解密比特串和各初始解密比特串中的第二预设数量下的末尾子比特串,生成头部子比特串。
其中,第二预设数量为最后一位比特串。例如,若初始解密子比特串为X1,…,XC,则第二预设数量下的末尾子比特串为XC。
具体的,头部子比特串X0的确定方式如下:
X0=U⊕XC;
其中,U表示第二解密比特串,XC表示末尾子比特串。
步骤d5、采用头部子比特串更新所述初始解密子比特串,得到目标解密比特串。
具体更新方式为Xj=Xj-1,j=1,2,…C,并将更新后的结果作为目标解密比特串。
步骤d6、根据目标解密比特串,生成该密钥生成轮的序列加密密钥。
经过R轮循环计算,每一轮的区别仅为轮密钥key不同,使用轮密钥的顺序为Key1,Key2,…,KeyR。根据最后一轮(也即第R轮)得到的目标解密比特串X1,…,XC,对最后一轮(也即第R轮)得到的目标解密比特串X1,…,XC进行拼接,得到该密钥生成轮的序列解密密钥Stream1=X1||…||XC。
需要说明的是,在上述R轮循环计算时,每一轮初始解密比特串X1,…,XC为上一轮结束得到的目标解密比特串X1,…,XC。
S270、根据该密钥生成轮下的序列解密密钥和密文序列,生成该密钥生成轮下的明文序列。
根据该密钥生成轮下的序列解密密钥Streami和密文序列Cipheri,生成该密钥生成轮i下的明文序列Plain1=Cipher1⊕Stream1。
S280、根据各密钥生成轮分别对应的明文序列,生成加密密文数据的明文数据。
加密密文数据的明文数据Plaintext为各密钥生成轮分别对应的明文序列的序列拼接:
Plaintext=Plain1||…||Plaink
本发明实施例技术方案使用了基于格问题框架的密钥扩展方法,并且,密钥扩展过程和加解密过程完全解耦,密钥生成和扩展模块、加解密模块可以部署在不同的部件中,便于在物联网等场景中应用。此外,上述技术方案的数据加解密方式提高了序列加密的抗量子攻击能力,以及提高了序列加密安全性,并且,实现了序列加密过程可重构,提高了加解密过程灵活性。
本实施例在以上述实施例为基础上,提供了一种优选实例。本方案包含算法初始化、数据初始化、密钥生成、密钥扩展、序列加密和序列解密等主要步骤,下面分别对每个步骤进行详细介绍:
一、算法初始化
确定算法的基础参数:包含密钥长度=K,通常为128,256,512等;序列单位长度=P,通常为128,256,512等;分组长度=L,也称为字长,通常为16、32等;分组数量P/L=C;模数=D,通常为2^16、2^32等;迭代轮数=R,通常为16、32、48、64等。本实施例对参数无特殊限制和约束,方案内容中的参数仅作为参考。
二、数据初始化
1、每次调用序列密码对数据加密,需要重置计数器和随机数,可使用伪随机数发生器等方式,生成计数器和随机数组,形如(1,N1),(2,N2),…,(j,Nj),通过哈希或其他随机化方法,基于计数器和随机数(1,N1)生成C个初始分组比特串Z1,…,ZC,每个串的长度为L。需要指出的是,随机数在每次调用时不能相同,需要重新生成以确保安全。
2、随机生成整数模q的格基矩阵B生成后作为序列加密算法的初始化数据长期保存,如果更新此初始化数据则代表序列加密算法发生变化更新。
三、密钥生成
用户使用密钥协商、随机数发生器等方式,按照指定的长度生成密钥,一般情况下,密钥比特串长度为128、192、256、512等,本实施例对参数无特殊限制和约束,方案内容中的参数仅作为参考。用户初始密钥记为Key,密钥Key在系统内以比特串的形式进行保存。
四、密钥扩展(轮密钥的生成)
1、用户将密钥Key,以及与本次加密有关的信息(任务ID、通信ID、账户信息等,统称为附加信息,记为Auc),合并为指定长度W的比特串,记为String=Key||Auc。“||”表示比特拼接,可知String的比特长度为W。
2、将String按照单位长度=T,切分成W/T=N个子比特串,要求是W能被T整除,子比特串记为S1,S2,…,SN,满足String=S1||S2||…||SN。每个子比特串的长度均为T。
3、将每个子比特串(二进制)转化为成整数(十进制),则(S1,S2,…,SN)=(a1,…,aN)=a。
4、随机生成整数模q的格基矩阵
5、计算矩阵乘以向量Bat=(b1,b2,…,bM)t。t表示矩阵转置,非幂次含义。
6、将整数b1,b2,…,bM转化为M个二进制比特串(T1,T2,…,TM)=(b1,…,bM)。
7、合并上面的比特串,得到长比特串String*=T1||T2||…||TM。
8、按照指定规则,在String*中抽取有效比特,形成R个轮密钥,记为Key1,…,KeyR,每个轮密钥的比特长度为L。
需要说明的是,本实施例加密模式可分为计数器模式和反馈模式两类,下面分别进行介绍:
五、数据加密(计数器模式)
1、计数器状态设定为1,基于计数器和随机数(1,N1)生成C个初始分组比特串Z1,…,ZC,读取初始比特串Z1,…,ZC,每个Zi的长度L。
2、令(X1,…,XC)=(Z1,…,ZC),且每个Xi都转化为整数的形式。
3、计算整数模加Y=X1+X2+…XC-1(其中,“+”表示模计算(mod D))。
4、将Y转换为比特串的形式。
5、将上一步计算得到的比特串进行循环移位,例如可通过循环右移将低位比特转化到高位比特,得到新的比特串Y*,并将比特串Y*转为整数。
6、计算模加U=Y*+Key1(其中,“+”表示模计算(mod D))。
7、更新计算X0=U⊕XC(其中,“⊕”表示异或运算)。
8、更新计算Xj=Xj-1,j=1,2,…C。
9、输出更新后的X1,…,XC作为第一轮循环的计算结果。
10、经过R轮循环计算,每一轮的区别仅为轮密钥不同(使用轮密钥的顺序为Key1,Key2,…,KeyR),最终得到R轮循环计算完成之后的结果比特串X1,…,XC(该结果为第R轮的结果),拼接合并后得到伪随机比特串(计数器状态为1)为Stream1=X1||…||XC(拼接为对第R轮的结果进行拼接),总比特长度为P。需要说明的是,针对R轮循环中除初始轮的任意一轮,该轮的初始密钥X1,…,XC即为上一轮更新计算输出的X1,…,XC。
11、将明文Plaintext按照单位长度P进行分割,得到明文序列串为Plaintext=Plain1||…||Plaink,每个Plaini的比特长度为P。
12、对于计数器状态为1,计算比特异或Cipher1=Plain1⊕Stream1。
13、对于计数器状态设定为2,完成同样的操作。需要指出的是基于计数器和随机数(2,N2)生成C个初始分组比特串Z1,…,ZC,该初始比特串与上一轮的比特串不同,最终得到Cipher2=Plain2⊕Stream2。
14、计数器状态++,最终完成全部k个密文计算,得到密文Ciphertext=Cipher1||…||Cipherk。
六、数据加密(反馈模式)
1、反馈模式无计数器概念,基于伪随机机制,直接随机生成C个初始分组比特串Z1,…,ZC,读取初始比特串Z1,…,ZC,每个Zi的长度L。
2、令(X1,…,XC)=(Z1,…,ZC),且每个Xi都转化为整数的形式。
3、计算整数模加Y=X1+X2+…XC-1(其中,“+”表示模计算(mod D))。
4、将Y转换为比特串的形式。
5、将上一步计算得到的比特串进行循环移位,例如可通过循环右移将低位比特转化到高位比特,得到新的比特串Y*,并将比特串Y*转为整数。
6、计算模加U=Y*+Key1(其中,“+”表示模计算(mod D))。
7、更新计算X0=U⊕XC(其中,“⊕”表示异或运算)。
8、更新计算Xj=Xj-1,j=1,2,…C。
9、输出更新后的X1,…,XC作为第一轮循环的计算结果。
10、经过R轮循环计算,每一轮的区别仅为轮密钥不同(使用轮密钥的顺序为Key1,Key2,…,KeyR),最终得到R轮循环计算完成之后的结果比特串X1,…,XC(该结果为第R轮的结果),拼接合并后得到伪随机比特串(计数器状态为1)为Stream1=X1||…||XC(拼接为对第R轮的结果进行拼接),总比特长度为P。需要说明的是,针对R轮循环中除初始轮的任意一轮,该轮的初始密钥X1,…,XC即为上一轮更新计算输出的X1,…,XC。
11、将明文Plaintext按照单位长度P进行分割,得到明文序列串为Plaintext=Plain1||…||Plaink,每个Plaini的比特长度为P。
12、对于计数器状态为1,计算比特异或Cipher1=Plain1⊕Stream1。
13、启动第二轮大循环,总共k轮大循环,直接将第一轮大循环计算得到的比特串X1,…,XC作为初始比特串,完成同样的操作,最终得到Cipher2=Plain2⊕Sream2。
14、完成全部k轮大循环,完成全部k个密文计算,得到密文Ciphertext=Cipher1||…||Cipherk。
七、数据解密(计数器模式)
1、计数器状态设定为1,基于计数器和随机数(1,N1)生成C个初始分组比特串Z1,…,ZC,读取初始比特串Z1,…,ZC,每个Zi的长度L。
2、令(X1,…,XC)=(Z1,…,ZC),且每个Xi都转化为整数的形式。
3、计算整数模加Y=X1+X2+…XC-1(mod D)。
4、将Y转换为比特串的形式。
5、将上一步计算得到的比特串进行循环移位,例如可通过循环右移将低位比特转化到高位比特,得到新的比特串Y*,并将比特串Y*转为整数。
6、计算模加U=Y*+Key1(mod D)。
7、更新计算X0=U⊕XC。
8、更新计算Xj=Xj-1,j=1,2,…C。
9、输出更新后的X1,…,XC作为第一轮循环的计算结果。
10、经过R轮循环计算,每一轮的区别仅为轮密钥不同(使用轮密钥的顺序为Key1,Key2,…,KeyR),最终得到R轮循环计算完成之后的结果比特串X1,…,XC,拼接合并后得到伪随机比特串(计数器状态为1)为Stream1=X1||…||XC,总比特长度为P。
11、将密文Ciphertext先按照单位长度P,划分为k组,得到:Cipher1||…||Cipherk;然后对于每一个Cipher1,根据分组长度L,再划分为C组,记为Cipheri=W1,i||…||WC,i。
12、对于计数器状态为1,计算比特异或Plain1=Cipher1⊕Stream1。
13、计数器状态设定为2,完成同样的操作,需要指出的是基于计数器和随机数(2,N2)生成C个初始分组比特串Z1,…,ZC,该初始比特串与上一轮的比特串不同,最终得到Plain2=Cipher2⊕Stream2。
14、计数器状态++,最终完成全部k次解密计算,得到明文Plaintext=Plain1||…||Plaink。
八、数据解密(反馈模式)
1、无计数器概念,基于伪随机机制,直接生成C个初始分组比特串Z1,…,ZC,与加密过程生成的初始比特串一致,读取初始比特串Z1,…,ZC,每个Zi的长度L。
2、令(X1,…,XC)=(Z1,…,ZC),且每个Xi都转化为整数的形式。
3、计算整数模加Y=X1+X2+…XC-1(mod D)。
4、将Y转换为比特串的形式。
5、将上一步计算得到的比特串进行循环移位,例如可通过循环右移将低位比特转化到高位比特,得到新的比特串Y*,并将比特串Y*转为整数。
6、计算模加U=Y*+Key1(mod D)。
7、更新计算X0=U⊕XC。
8、更新计算Xj=Xj-1,j=1,2,…C。
9、输出更新后的X1,…,XC作为第一轮循环的计算结果。
10、经过R轮循环计算,每一轮的区别仅为轮密钥不同(使用轮密钥的顺序为Key1,Key2,…,KeyR),最终得到R轮循环计算完成之后的结果比特串X1,…,XC,拼接合并后得到伪随机比特串为Stream1=X1||…||XC,总比特长度为P,完成第一轮大循环(总共k轮大循环)。
11、将密文Ciphertext先按照单位长度P,划分为k组,得到:Cipher1||…||Cipherk;然后对于每一个Cipher1,根据分组长度L,再划分为C组,记为Cipheri=W1,i||…||WC,i。
12、计算第一轮大循环的比特异或Plain1=Cipher1⊕Stream1。
13、启动第二轮大循环,直接将第一轮大循环计算得到的比特串X1,…,XC作为初始比特串,完成同样的操作,最终得到Plain2=Cipher2⊕Stream2。
14、完成全部k轮大循环,完成全部k次解密计算,得到明文Plaintext=Plain1||…||Plaink。
本方案使用了基于格问题框架的密钥扩展方法,使用随机矩阵计算扩展密钥和轮密钥,采用分组密码结合序列密码的设计方法,加解密过程计算简单,且具备较高的抗量子攻击能力;密钥扩展过程和加解密过程完全解耦,密钥生成和扩展模块、加解密模块可以部署在不同的部件中,便于在物联网等场景中应用。
实施例三
图3为本发明实施例三提供的一种数据序列加解密装置的结构示意图。本发明实施例所提供的一种数据序列加解密装置,该装置可适用于对待加密明文数据有保留原格式需求,如长度一致、占用内存近似,加密过程具备抗量安全性的数据加解密情况,该数据序列加解密装置可以采用硬件和/或软件的形式实现,该数据序列加解密装置可配置于数据加密方中,如图3所示,该装置具体包括:初始密钥生成模块301、轮密钥生成模块302、明文序列生成模块303、生成轮数确定模块304、对应密钥确定模块305、序列密钥生成模块306、密文序列生成模块307和密文数据生成模块308。
其中,
初始密钥生成模块301,用于生成用户初始密钥,以及生成格基矩阵;
轮密钥生成模块302,用于根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
明文序列生成模块303,用于获取待加密明文数据,并基于预设的明文数据单位长度,对所述待加密明文数据进行数据切分,得到至少一个明文序列;
生成轮数确定模块304,用于根据所述明文序列的序列数量,确定序列加密密钥的密钥生成轮数;
对应密钥确定模块305,用于针对任一轮的序列加密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
序列密钥生成模块306,用于根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥;
密文序列生成模块307,用于根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列;
密文数据生成模块308,用于根据各所述密钥生成轮分别对应的密文序列,生成所述待加密明文数据的加密密文数据。
本发明实施例技术方案使用了基于格问题框架的密钥扩展方法,并且,密钥扩展过程和加解密过程完全解耦,密钥生成和扩展模块、加解密模块可以部署在不同的部件中,便于在物联网等场景中应用。此外,上述技术方案的数据加解密方式提高了序列加密的抗量子攻击能力,以及提高了序列加密安全性,并且,实现了序列加密过程可重构,提高了加解密过程灵活性。
可选的,轮密钥生成模块302,包括:
相关信息获取单元,用于获取加密相关信息,并根据所述加密相关信息和所述用户初始密钥,生成初始密钥比特串;
密钥切分单元,用于根据预设的密钥数据单位长度,对所述初始密钥比特串进行切分,得到至少一个初始密钥子比特串;
密钥子比特串生成单元,用于根据所述格基矩阵和各所述初始密钥子比特串,生成至少一个中间密钥子比特串;
中间比特串生成单元,用于根据各所述中间密钥子比特串,生成中间加密比特串;
轮密钥生成单元,用于根据所述中间加密比特串,生成至少一个轮密钥。
可选的,密钥子比特串生成单元,具体用于:
对各所述初始密钥子比特串进行进制转换操作,得到初始整数密钥;
根据所述初始整数密钥,生成初始密钥矩阵;
将所述格基矩阵和所述初始密钥矩阵的转置矩阵进行矩阵相乘操作,得到目标密钥矩阵;
根据所述目标密钥矩阵,生成至少一个中间密钥子比特串。
可选的,序列密钥生成模块306,具体用于:
生成该密钥生成轮的初始加密比特串;所述初始加密比特串包括至少一个初始加密子比特串;
根据各所述初始加密子比特串中的第一预设数量下的前序子比特串,生成第一加密比特串;
根据该密钥生成轮对应的轮密钥和所述第一加密比特串,生成第二加密比特串;
根据所述第二加密比特串和各所述初始加密子比特串中的第二预设数量下的末尾子比特串,生成头部子比特串;
采用所述头部子比特串更新所述初始加密子比特串,得到目标加密比特串;
根据所述目标加密比特串,生成该密钥生成轮的序列加密密钥。
本发明实施例所提供的数据序列加解密装置可执行本发明任意实施例所提供的数据序列加解密方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种数据序列加解密装置的结构示意图。本发明实施例所提供的一种数据序列加解密装置,该装置可适用于对待加密明文数据有保留原格式需求,如长度一致、占用内存近似,加密过程具备抗量安全性的数据加解密情况,该数据序列加解密装置可以采用硬件和/或软件的形式实现,该数据序列加解密装置可配置于数据解密方中,如图3所示,该装置具体包括:初始密钥生成模块401、轮密钥生成模块402、密文序列生成模块403、生成轮数确定模块404、对应密钥确定模块405、序列密钥生成模块406、明文序列生成模块407和明文数据生成模块408。
其中,
初始密钥生成模块401,用于生成用户初始密钥,以及生成格基矩阵;
轮密钥生成模块402,用于根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
密文序列生成模块403,用于获取加密密文数据,并基于预设的密文数据单位长度,对所述加密密文数据进行数据切分,得到至少一个密文序列;
生成轮数确定模块404,用于根据所述密文序列的序列数量,确定序列解密密钥的密钥生成轮数;
对应密钥生成模块405,用于针对任一轮的序列解密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
序列密钥生成模块406,用于根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列解密密钥;
明文序列生成模块407,用于根据该密钥生成轮下的序列解密密钥和密文序列,生成该密钥生成轮下的明文序列;
明文数据生成模块408,用于根据各所述密钥生成轮分别对应的明文序列,生成所述加密密文数据的明文数据。
本发明实施例技术方案使用了基于格问题框架的密钥扩展方法,并且,密钥扩展过程和加解密过程完全解耦,密钥生成和扩展模块、加解密模块可以部署在不同的部件中,便于在物联网等场景中应用。此外,上述技术方案的数据加解密方式提高了序列加密的抗量子攻击能力,以及提高了序列加密安全性,并且,实现了序列加密过程可重构,提高了加解密过程灵活性。
可选的,序列密钥生成模块406,具体用于:
生成该密钥生成轮的初始解密比特串;所述初始解密比特串包括至少一个初始解密子比特串;
根据各所述初始解密子比特串中的第一预设数量下的前序子比特串,生成第一解密比特串;
根据该密钥生成轮对应的轮密钥和所述第一解密比特串,生成第二解密比特串;
根据所述第二解密比特串和各所述初始解密比特串中的第二预设数量下的末尾子比特串,生成头部子比特串;
采用所述头部子比特串更新所述初始解密子比特串,得到目标解密比特串;
根据所述目标解密比特串,生成该密钥生成轮的序列加密密钥。
本发明实施例所提供的数据序列加解密装置可执行本发明任意实施例所提供的数据序列加解密方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5示出了可以用来实施本发明的实施例的电子设备50的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备50包括至少一个处理器51,以及与至少一个处理器51通信连接的存储器,如只读存储器(ROM)52、随机访问存储器(RAM)53等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器51可以根据存储在只读存储器(ROM)52中的计算机程序或者从存储单元58加载到随机访问存储器(RAM)53中的计算机程序,来执行各种适当的动作和处理。在RAM 53中,还可存储电子设备50操作所需的各种程序和数据。处理器51、ROM 52以及RAM 53通过总线54彼此相连。输入/输出(I/O)接口55也连接至总线54。
电子设备50中的多个部件连接至I/O接口55,包括:输入单元56,例如键盘、鼠标等;输出单元57,例如各种类型的显示器、扬声器等;存储单元58,例如磁盘、光盘等;以及通信单元59,例如网卡、调制解调器、无线通信收发机等。通信单元59允许电子设备50通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器51可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器51的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器51执行上文所描述的各个方法和处理,例如数据序列加解密方法。
在一些实施例中,数据序列加解密方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元58。在一些实施例中,计算机程序的部分或者全部可以经由ROM 52和/或通信单元59而被载入和/或安装到电子设备50上。当计算机程序加载到RAM 53并由处理器51执行时,可以执行上文描述的数据序列加解密方法的一个或多个步骤。备选地,在其他实施例中,处理器51可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据序列加解密方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (8)
1.一种数据序列加解密方法,其特征在于,应用于数据加密方,包括:
生成用户初始密钥,以及生成格基矩阵;
根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
获取待加密明文数据,并基于预设的明文数据单位长度,对所述待加密明文数据进行数据切分,得到至少一个明文序列;
根据所述明文序列的序列数量,确定序列加密密钥的密钥生成轮数;
针对任一轮的序列加密密钥的生成方式, 确定与该密钥生成轮对应的轮密钥;
生成该密钥生成轮的初始加密比特串;所述初始加密比特串包括至少一个初始加密子比特串;
根据各所述初始加密子比特串中的第一预设数量下的前序子比特串,生成第一加密比特串;
根据该密钥生成轮对应的轮密钥和所述第一加密比特串,生成第二加密比特串;
根据所述第二加密比特串和各所述初始加密子比特串中的第二预设数量下的末尾子比特串,生成头部子比特串;
采用所述头部子比特串更新所述初始加密子比特串,得到目标加密比特串;
根据所述目标加密比特串,生成该密钥生成轮的序列加密密钥;
根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列;
根据各所述密钥生成轮分别对应的密文序列,生成所述待加密明文数据的加密密文数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥,包括:
获取加密相关信息,并根据所述加密相关信息和所述用户初始密钥,生成初始密钥比特串;
根据预设的密钥数据单位长度,对所述初始密钥比特串进行切分,得到至少一个初始密钥子比特串;
根据所述格基矩阵和各所述初始密钥子比特串,生成至少一个中间密钥子比特串;
根据各所述中间密钥子比特串,生成中间加密比特串;
根据所述中间加密比特串,生成至少一个轮密钥。
3.根据权利要求2所述的方法,其特征在于,所述根据所述格基矩阵和各所述初始密钥子比特串,生成至少一个中间密钥子比特串,包括:
对各所述初始密钥子比特串进行进制转换操作,得到初始整数密钥;
根据所述初始整数密钥,生成初始密钥矩阵;
将所述格基矩阵和所述初始密钥矩阵的转置矩阵进行矩阵相乘操作,得到目标密钥矩阵;
根据所述目标密钥矩阵,生成至少一个中间密钥子比特串。
4.一种数据序列加解密方法,其特征在于,应用于数据解密方,包括:
生成用户初始密钥,以及生成格基矩阵;
根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
获取加密密文数据,并基于预设的密文数据单位长度,对所述加密密文数据进行数据切分,得到至少一个密文序列;
根据所述密文序列的序列数量,确定序列解密密钥的密钥生成轮数;
针对任一轮的序列解密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
生成该密钥生成轮的初始解密比特串;所述初始解密比特串包括至少一个初始解密子比特串;
根据各所述初始解密子比特串中的第一预设数量下的前序子比特串,生成第一解密比特串;
根据该密钥生成轮对应的轮密钥和所述第一解密比特串,生成第二解密比特串;
根据所述第二解密比特串和各所述初始解密比特串中的第二预设数量下的末尾子比特串,生成头部子比特串;
采用所述头部子比特串更新所述初始解密子比特串,得到目标解密比特串;
根据所述目标解密比特串,生成该密钥生成轮的序列加密密钥;
根据该密钥生成轮下的序列解密密钥和密文序列,生成该密钥生成轮下的明文序列;
根据各所述密钥生成轮分别对应的明文序列,生成所述加密密文数据的明文数据。
5.一种数据序列加解密装置,其特征在于,配置于数据加密方,包括:
初始密钥生成模块,用于生成用户初始密钥,以及生成格基矩阵;
轮密钥生成模块,用于根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
明文序列生成模块,用于获取待加密明文数据,并基于预设的明文数据单位长度,对所述待加密明文数据进行数据切分,得到至少一个明文序列;
生成轮数确定模块,用于根据所述明文序列的序列数量,确定序列加密密钥的密钥生成轮数;
对应密钥确定模块,用于针对任一轮的序列加密密钥的生成方式, 确定与该密钥生成轮对应的轮密钥;
序列密钥生成模块,用于根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列加密密钥;
密文序列生成模块,用于根据该密钥生成轮下的序列加密密钥和明文序列,生成该密钥生成轮下的密文序列;
密文数据生成模块,用于根据各所述密钥生成轮分别对应的密文序列,生成所述待加密明文数据的加密密文数据;
所述序列密钥生成模块,具体用于:
生成该密钥生成轮的初始加密比特串;所述初始加密比特串包括至少一个初始加密子比特串;
根据各所述初始加密子比特串中的第一预设数量下的前序子比特串,生成第一加密比特串;
根据该密钥生成轮对应的轮密钥和所述第一加密比特串,生成第二加密比特串;
根据所述第二加密比特串和各所述初始加密子比特串中的第二预设数量下的末尾子比特串,生成头部子比特串;
采用所述头部子比特串更新所述初始加密子比特串,得到目标加密比特串;
根据所述目标加密比特串,生成该密钥生成轮的序列加密密钥。
6.一种数据序列加解密装置,其特征在于,配置于数据解密方,包括:
初始密钥生成模块,用于生成用户初始密钥,以及生成格基矩阵;
轮密钥生成模块,用于根据所述用户初始密钥和所述格基矩阵,生成至少一个轮密钥;
密文序列生成模块,用于获取加密密文数据,并基于预设的密文数据单位长度,对所述加密密文数据进行数据切分,得到至少一个密文序列;
生成轮数确定模块,用于根据所述密文序列的序列数量,确定序列解密密钥的密钥生成轮数;
对应密钥生成模块,用于针对任一轮的序列解密密钥的生成方式,确定与该密钥生成轮对应的轮密钥;
序列密钥生成模块,用于根据该密钥生成轮对应的轮密钥,生成该密钥生成轮的序列解密密钥;
明文序列生成模块,用于根据该密钥生成轮下的序列解密密钥和密文序列,生成该密钥生成轮下的明文序列;
明文数据生成模块,用于根据各所述密钥生成轮分别对应的明文序列,生成所述加密密文数据的明文数据;
所述序列密钥生成模块,具体用于:
生成该密钥生成轮的初始解密比特串;所述初始解密比特串包括至少一个初始解密子比特串;
根据各所述初始解密子比特串中的第一预设数量下的前序子比特串,生成第一解密比特串;
根据该密钥生成轮对应的轮密钥和所述第一解密比特串,生成第二解密比特串;
根据所述第二解密比特串和各所述初始解密比特串中的第二预设数量下的末尾子比特串,生成头部子比特串;
采用所述头部子比特串更新所述初始解密子比特串,得到目标解密比特串;
根据所述目标解密比特串,生成该密钥生成轮的序列加密密钥。
7. 一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3和/或5中任一项所述的数据序列加解密方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-3和/或5中任一项所述的数据序列加解密方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411522756.2A CN119402186B (zh) | 2024-10-29 | 2024-10-29 | 数据序列加解密方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411522756.2A CN119402186B (zh) | 2024-10-29 | 2024-10-29 | 数据序列加解密方法、装置、设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119402186A CN119402186A (zh) | 2025-02-07 |
| CN119402186B true CN119402186B (zh) | 2025-09-05 |
Family
ID=94423986
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411522756.2A Active CN119402186B (zh) | 2024-10-29 | 2024-10-29 | 数据序列加解密方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119402186B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115694796A (zh) * | 2022-10-08 | 2023-02-03 | 国网江苏省电力有限公司电力科学研究院 | 物联网安全加密方法、装置、存储介质和电子设备 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10742405B2 (en) * | 2016-12-16 | 2020-08-11 | The Boeing Company | Method and system for generation of cipher round keys by bit-mixers |
| CN113824547B (zh) * | 2021-04-06 | 2025-03-18 | 京东科技控股股份有限公司 | 保留格式的加密和解密方法、装置、电子设备和介质 |
| CN115459950A (zh) * | 2022-08-08 | 2022-12-09 | 视联动力信息技术股份有限公司 | 一种迭代加密的方法和装置 |
| CN117714054B (zh) * | 2024-02-01 | 2024-04-23 | 山东大学 | 基于数论变换的密钥封装轻量化方法、系统、介质及设备 |
| US12052355B1 (en) * | 2024-02-23 | 2024-07-30 | Circle Internet Financial Limited | Broadcast-free threshold post-quantum key generation and verification over unencrypted channels from hardware-based correlated randomness |
| CN118473636B (zh) * | 2024-05-28 | 2024-11-12 | 北京电子科技学院 | 一种支持分组密码sm4算法的全同态加密方法及装置 |
| CN118555061A (zh) * | 2024-05-30 | 2024-08-27 | 南京邮电大学 | 一种格上基于口令满足后量子安全的密钥协商方法及系统 |
| CN118748588A (zh) * | 2024-07-17 | 2024-10-08 | 中国电信股份有限公司 | 一种密钥分发方法、装置、系统、电子设备及存储介质 |
-
2024
- 2024-10-29 CN CN202411522756.2A patent/CN119402186B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115694796A (zh) * | 2022-10-08 | 2023-02-03 | 国网江苏省电力有限公司电力科学研究院 | 物联网安全加密方法、装置、存储介质和电子设备 |
Non-Patent Citations (1)
| Title |
|---|
| Quantum-Safe Lattice-Based Certificateless Anonymous Authenticated Key Agreement for Internet of Things;Guanglu Wei;《IEEE INTERNET OF THINGS JOURNAL》;20231013;第3节 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119402186A (zh) | 2025-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106997606B (zh) | 一种基于超混沌系统投影同步的图像加密方法 | |
| CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
| US8345861B2 (en) | Sharing a secret using polynomial division over GF(Q) | |
| CN111464308A (zh) | 一种实现多种哈希算法可重构的方法和系统 | |
| KR102154164B1 (ko) | 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법 | |
| CN112199696B (zh) | 基于白盒分组密码的加解密方法 | |
| Pisarchik et al. | Chaotic map cryptography and security | |
| JP2006317802A (ja) | 擬似乱数発生システム、暗号化システム及び復号化システム | |
| CN114124359B (zh) | 保留格式加密数据的方法、装置、电子设备及存储介质 | |
| CN103400072A (zh) | 哈希值密码的恢复方法和装置 | |
| CN114021173B (zh) | 基于sm9密钥交换的量子密钥扩展方法、系统、介质及终端 | |
| CN119402186B (zh) | 数据序列加解密方法、装置、设备及存储介质 | |
| CN120378089A (zh) | 一种非平衡场景下多方隐私集合求交方法及系统 | |
| JP5427117B2 (ja) | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム | |
| JP5207153B2 (ja) | 擬似乱数発生システム | |
| CN114826551B (zh) | 一种智能电网全生命周期数据的保护方法和系统 | |
| CN118764209A (zh) | 一种基于sm3消息摘要的新型加密方法 | |
| KR101076747B1 (ko) | 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치 | |
| CN119402185B (zh) | 基于杂凑算法的数据加密方法、装置、设备及存储介质 | |
| CN111052206A (zh) | 秘密计算装置、秘密计算方法、程序以及记录介质 | |
| JP2018092010A (ja) | 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム | |
| Xiaolin et al. | POTA: A Pipelined Oblivious Transfer Acceleration Architecture for Secure Multi-Party Computation | |
| JP5268011B2 (ja) | 暗号化システム及び復号化システム | |
| JP5818768B2 (ja) | マスク生成装置、情報処理装置、及びその方法、プログラム | |
| CN116388963B (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 |