CN116366251A - 基于向量解码的格公钥数据加解密方法和密钥封装方法 - Google Patents
基于向量解码的格公钥数据加解密方法和密钥封装方法 Download PDFInfo
- Publication number
- CN116366251A CN116366251A CN202310188848.0A CN202310188848A CN116366251A CN 116366251 A CN116366251 A CN 116366251A CN 202310188848 A CN202310188848 A CN 202310188848A CN 116366251 A CN116366251 A CN 116366251A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- predetermined
- public key
- determining
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 255
- 238000004806 packaging method and process Methods 0.000 title abstract description 4
- 238000005538 encapsulation Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 62
- 230000002441 reversible effect Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 abstract description 14
- 230000008901 benefit Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- MECHNRXZTMCUDQ-RKHKHRCZSA-N vitamin D2 Chemical compound C1(/[C@@H]2CC[C@@H]([C@]2(CCC1)C)[C@H](C)/C=C/[C@H](C)C(C)C)=C\C=C1\C[C@@H](O)CCC1=C MECHNRXZTMCUDQ-RKHKHRCZSA-N 0.000 description 2
- 235000001892 vitamin D2 Nutrition 0.000 description 2
- 239000011653 vitamin D2 Substances 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于向量解码的格公钥数据加解密方法和密钥封装方法。其中,该方法包括:依据预定明文数据,第一预定加密方法,第一目标公钥,以及预定干扰项,得到第一目标密文数据,能够实现格公钥数据加密。依据第一目标密文数据,第一目标私钥和预定解密方法,得到目标明文数据,能够实现格公钥数据解密。同时本发明也提出了环上带错误学习问题(RLWE)的变种问题,即子集和奇偶性RLWE问题(Subset‑Sum Parity RLWE,sspRLWE),并基于该变种问题进一步优化了本发明中基于向量解码的格公钥数据加密方法。本发明设计的公钥加密方法和密钥封装方法具有可证明安全、抵抗量子计算机攻击、公钥和密文长度短、计算效率高、解密失败率低、参数选取灵活等特点和优势。
Description
技术领域
本发明属于密码学中的公钥加密领域,涉及数据加解密和格密码学中的相关技术,具体而言,表现为一种基于向量解码的格公钥数据加解密方法和密钥封装方法。
背景技术
公钥加密已在电子政务、网上银行等许多实际应用中得到广泛部署。然而大型计算能力的提升和密码分析学的进步,特别是量子计算理论和量子计算机的蓬勃发展,给很多基于RSA或椭圆曲线的公钥加密方法的安全性带来了巨大的威胁和挑战,从而亟需设计抗量子计算攻击安全的公钥加密方法。
目前从效率和安全性上综合来看,基于格的公钥加密方法得到了国内外学者的广泛认可,是当前最有前途的候选方法之一。但是相关技术或方法仍然存在公钥和密文尺寸大,进而导致存储和通信开销增大,以及加解密操作计算效率低、解密失败率高等问题,不能很好地满足实际应用需求。
发明内容
本发明实施例提供了一种基于向量解码的格公钥数据加解密方法和密钥封装方法,以解决相关技术或方法中存在的公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
根据本发明实施例的一个方面,提供了一种基于向量解码的格公钥数据加密方法,包括:确定预定明文数据Ma,其中,所述预定明文数据所述表示消息空间,所述预定明文数据表示所述预定明文数据为l比特长度的明文数据;采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1;发送所述第一目标密文数据c1至第一终端,其中,所述采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1包括:依据预定编码方式编码所述预定明文数据Ma,得到目标编码多项式m,其中,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据中,对应比特数据位上的明文数据确定;依据所述第一目标公钥h1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1。
可选地,依据所述第一目标公钥h1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1,包括:在所述预定编码方式为Msg2poly(M)的情况下,所述目标编码多项式m=M0+M1x+…+Mixi+…+Ml-1xl-1,所述预定干扰项包括随机数r,预定噪声值e,环元素v的逆环元素v-1,依据所述第一目标公钥h1,所述随机数r,所述预定噪声值e,所述逆环元素v-1与所述目标编码多项式m,得到所述第一目标密文数据c1,其中,Mi表示Ma中的第i比特长度上的数据,Mi={0,1},所述环元素v=(1-xn/k),v∈Rq,逆环元素m∈Rq,所述是Rq上所有可逆元素的集合,为预定环结构、表示度数为n-1次的多项式环,所述n是2的幂次,所述q是素数,所述k是满足k|n且n/k≥L的最大整数,所述表示整数的集合,所述表示正整数的集合。
可选地,依据第一目标公钥h1,预定干扰项与所述目标编码多项式m,得到第一目标密文数据c1,包括:在所述预定编码方式为Msg2noise(M,η)的情况下,所述目标编码多项式m=m0+m1x+…+mn-1xn-1,所述预定干扰项包括随机数r;依据所述第一目标公钥h1,所述随机数r与所述目标编码多项式m,得到所述第一目标密文数据c1,其中,所述η表示中心二项分布的参数值,所述目标编码多项式m为系数符合参数值为η的中心二项分布的多项式,确定所述目标编码多项式m=m0+m1x+…+mn-1xn-1包括:确定使得对于所有的i∈[2kη-1]有si∈{0,1}n/k,并确定依据所述s与所述s2kη-1,对于所有i∈[k]和j∈[n/k],确定依据所述min/k+j,确定所述目标编码多项式m=m0+m1x+…+mn-1xn-1。
可选地,采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1之前,还包括:在所述预定编码方式为Msg2poly(M)的情况下,获取初始私钥f′,预定私钥g与环元素v,其中,所述环元素v=(1-xn /k);依据所述初始私钥f′与所述环元素v,确定第一目标私钥f1;依据所述第一目标私钥f1与所述预定私钥g,得到所述第一目标公钥h1。
可选地,采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1之前,还包括:在所述预定编码方式为Msg2noise(M,η)的情况下,获取初始私钥f′,预定私钥g与逆环元素v-1,其中,所述逆环元素依据所述初始私钥f′与所述逆环元素v-1,确定第一目标私钥f1;依据所述第一目标私钥f1与所述预定私钥g,得到所述第一目标公钥h1。
根据本发明实施例的一个方面,提供了一种基于向量解码的格公钥数据解密方法,包括:接收第二终端发送的第一目标密文数据c1,其中,所述第一目标密文数据c1依据第一目标公钥h1,预定干扰项与目标编码多项式m,采用第一预定加密方法PKE.Enc(h,M)得到,所述目标编码多项式m依据所述预定编码方式编码所述预定明文数据Ma得到,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据Ma中,对应比特数据位上的明文数据确定,所述预定明文数据所述表示消息空间,所述预定明文数据表示所述目标明文数据为l比特长度的明文数据;采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb,其中,所述第一目标私钥f1依据所述预定编码方式确定,其中,所述采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb包括:依据所述第一目标密文数据c1以及所述第一目标私钥f1,确定目标解码多项式w;依据预定解码方式解码所述目标解码多项式w,得到所述目标明文数据Mb,其中,所述预定解码方式与所述预定编码方式对应。
可选地,采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb之前,还包括:在所述预定编码方式为Msg2poly(M)的情况下,依据初始私钥f′与环元素v,确定所述第一目标私钥f1;和/或,在所述预定编码方式为Msg2noise(M,η)的情况下,依据初始私钥f′与逆环元素v-1,确定所述第一目标私钥f1,其中,所述环元素v=(1-xn/k),v∈Rq,所述逆环元素所述是Rq上所有可逆元素的集合,为所述预定环结构、表示度数为n-1次的多项式环, 所述n是2的幂次,所述q是素数,所述k是满足k|n且n/k≥L的最大整数,所述表示整数的集合,所述表示正整数的集合,所述η表示中心二项分布的参数值。
可选地,在所述预定编码方式为包括以下至少之一:Msg2poly(M),Msg2noise(M,η)的情况下,所述预定解码方式为Poly2msg(w),依据预定解码方式解码所述目标解码多项式w,得到所述目标明文数据Mb,包括:将所述目标解码多项式w输入至所述Poly2msg(w),其中w=w0+w1x+…+wn-1xn-1,所述w∈Rq;基于所有i∈[n],确定基于所有j∈[l],确定依据得到目标明文数据Mb。
根据本发明实施例的一个方面,提供了一种基于向量解码的格密钥封装方法,包括:确定目标随机数据Mc,其中,所述所述表示消息空间,所述表示所述目标随机数据为L比特长度的数据;依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h),其中,所述第一密码哈希函数H1:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据,所述第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ,用于将特定比特长度的数据转化为两个κ比特长度的数据,所述特定比特长度依据l比特长度的数据与κ比特长度的数据确定;依据所述项数值H1(h)与所述目标随机数据Mc,通过所述第二密码哈希函数H2,确定第一未知数以及第一偏移量ρ;依据所述第二目标公钥h2,所述目标随机数据Mc与所述第一偏移量ρ,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第二目标密文数据c2;依据所述第一未知数以及所述第二目标密文数据c2,通过第三密码哈希函数H3,确定封装密钥K,其中,所述第三密码哈希函数H3:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据。
可选地,依据所述第一未知数以及所述第二目标密文数据c2,通过第三密码哈希函数H3,确定封装密钥K之后,还包括:依据所述第二目标密文数据c2以及第二目标私钥f2,采用预定解密方法PKE.Dec(f,c),得到目标解密数据Md;依据所述项数值H1(h)与所述目标解密数据Md,通过所述第二密码哈希函数H2,确定第二未知数以及第二偏移量ρ′;依据所述第二目标公钥h2,所述目标解密数据Md与所述第二偏移量ρ′,采用所述第二预定加密方法PKE.Enc(h,M;ρ),得到第三目标密文数据c3;在所述第二目标密文数据c2与所述第三目标密文数据c3相同的情况下,输出所述封装密钥K至第三终端。
根据本发明实施例的一个方面,提供了一种基于向量解码的格公钥数据加密装置,包括:第一确定模块,用于确定预定明文数据Ma,其中,所述预定明文数据所述表示消息空间,所述预定明文数据表示所述预定明文数据为l比特长度的明文数据;第一加密模块,用于采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1;发送模块,用于发送所述第一目标密文数据c1至第一终端,其中,所述第一加密模块包括:编码模块,用于依据预定编码方式编码所述预定明文数据Ma,得到目标编码多项式m,其中,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据中,对应比特数据位上的明文数据确定;加密子模块,用于依据所述第一目标公钥h1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1。
根据本发明实施例的一个方面,提供了一种基于向量解码的格公钥数据解密装置,包括:接收模块,用于所述第一目标密文数据c1依据第一目标公钥h1,预定干扰项与目标编码多项式m,采用第一预定加密方法PKE.Enc(h,M)得到,所述目标编码多项式m依据所述预定编码方式编码所述预定明文数据Ma得到,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据Ma中,对应比特数据位上的明文数据确定,所述预定明文数据所述表示消息空间,所述预定明文数据表示所述目标明文数据为l比特长度的明文数据;解密模块,用于采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb,其中,所述第一目标私钥f1依据所述预定编码方式确定,其中,所述解密模块包括:第二确定模块,用于依据所述第一目标密文数据c1以及所述第一目标私钥f1,确定目标解码多项式w;解码模块,用于依据预定解码方式解码所述目标解码多项式w,得到所述目标明文数据Mb,其中,所述预定解码方式与所述预定编码方式对应。
根据本发明实施例的一个方面,提供了一种基于向量解码的格密钥封装装置,包括:第三确定模块,用于确定目标随机数据Mc,其中,所述所述表示消息空间,所述表示所述目标随机数据为l比特长度的数据;第四确定模块,用于依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h),其中,所述第一密码哈希函数H1:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据,所述第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ,用于将特定比特长度的数据转化为两个κ比特长度的数据,所述特定比特长度依据l比特长度的数据与κ比特长度的数据确定;第五确定模块,用于依据所述项数值H1(h)与所述目标随机数据Mc,通过所述第二密码哈希函数H2,确定第一未知数以及第一偏移量ρ;第二加密模块,用于依据所述第二目标公钥h2,所述目标随机数据Mc与所述第一偏移量ρ,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第二目标密文数据c2;第六确定模块,用于依据所述第一未知数以及所述第二目标密文数据c2,通过第三密码哈希函数H3,确定封装密钥K,其中,所述第三密码哈希函数H3:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据。
根据本发明实施例的一个方面,提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述任一项所述的基于向量解码的格公钥数据加密方法,上述任一项所述的基于向量解码的格公钥数据解密方法,上述任一项所述的基于向量解码的格密钥封装方法。
根据本发明实施例的一个方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述任一项所述的基于向量解码的格公钥数据加密方法,如上述任一项所述的基于向量解码的格公钥数据解密方法,如上述任一项所述的基于向量解码的格密钥封装方法。
在本发明实施例中,确定l比特长度的预定明文数据Ma,采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1,达到加密预定明文数据的目的。第一预定加密方法如下:依据预定编码方式编码预定明文数据Ma,得到目标编码多项式m,实现对预定明文数据的编码。再依据第一目标公钥h1,预定干扰项与目标编码多项式m,得到第一目标密文数据c1,即实现了对编码后的预定明文数据的加密操作,加强了对预定明文数据的保护,增强过程中的安全性。最后可以发送第一目标密文数据c1至第一终端,由于第一目标密文数据是对预定明文数据进行编码后加密的,因此,传送第一目标密文数据至第一终端时也能够保护数据不泄露。而且,不同于其他方案仅将明文数据编码到最低有效位的情况,本发明的预定编码方式可以将每个明文数据编码到最高有效位,并且将明文数据进行多次编码,从而大大降低了解密失败率;同时本发明提出的编码和解码方法支持更小的环参数q,从而大幅减少了公钥和密文的尺寸,降低了存储和通信开销;此外,本发明所用的环结构具有支持NTT数论变换操作的性质,从而大大减少了多项式乘法和求逆元等计算的运算次数,因此本发明加解密速度也得到极大的提升,从而解决了相关技术和方法中存在的公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的基于向量解码的格公钥数据加密方法的流程图;
图2是根据本发明实施例的基于向量解码的格公钥数据解密方法的流程图;
图3是根据本发明实施例的基于向量解码的格密钥封装方法的流程图;
图4是根据本发明实施例的基于向量解码的格公钥数据加密装置的结构框图;
图5是根据本发明实施例的基于向量解码的格公钥数据解密装置的结构框图;
图6是根据本发明实施例的基于向量解码的格密钥封装装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
5)符号:=表示赋值,即对于任意两个值α,b,α:=b表示将b赋值作为a;
7)对于一个正偶数α和任意整数r,定义操作r′=rmod±α输出满足r′=rmodα成立;对于一个正奇数α和任意整数r,定义操作r′=rmod±α输出满足r′=rmodα成立。对于任意正整数α和整数r,定义操作r′=rmod+α输出r′∈[0,α)满足r′=rmodα成立。当精确的模约化操作表示不重要的时候,简写为rmodα;
8)以正整数η为参数的中心二项分布Bη定义如下:
其中(a1,...,aη,b1,...,bη)←{0,1}2η表示从集合{0,1}2η中均匀随机选取比特a1,...,aη,b1,...,bη。从Bη中采样一个多项式f∈Rq或多项式向量的意思是从Bη中采样每个多项式的系数。易证,以η为参数的二项分布是以为标准差的亚高斯分布;
Pr[x=1]=Pr[x=-1]=σ且Pr[x=0]=1-2σ,
10)RSA算法:由Rivest、Shamir和Adleman提出的一种公钥加密算法,公钥加密算法使用不同的加密密钥与解密密钥来进行数据的加解密操作;
11)NTRU格公钥加密方法:是格密码的一类重要分支,其安全性建立在1996年Hoffstein、Pipher和Silverman提出的NTRU问题的困难性之上;
12)RLWE:环上带错误学习问题(Ring Learning with Errors Problem,RLWE);
13)sspRLWE:子集和奇偶性环上带错误学习问题(Subset-Sum Parity RLWE,sspRLWE),一种RLWE问题的变种问题;
14)NTT:NumberTheoreticTransform,数论变换,是一种实用的技术,可用于加速算术运算。
实施例1
根据本发明实施例,提供了一种基于向量解码的格公钥数据加密方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的基于向量解码的格公钥数据加密方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102之后,采用第一预定加密方法PKE.Enc(h,M),依据预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1包括:
步骤S104,依据预定编码方式编码预定明文数据Ma,得到目标编码多项式m,其中,目标编码多项式m的项数依据预定明文数据Ma的预定比特长度确定,目标编码多项式m各项上的系数依据预定明文数据中,对应比特数据位上的明文数据确定;
步骤S106,依据第一目标公钥h1,预定干扰项与目标编码多项式m,得到第一目标密文数据c1;
步骤S108,发送第一目标密文数据c1至第一终端。
通过上述步骤,确定l比特长度的预定明文数据Ma,采用第一预定加密方法PKE.Enc(h,M),依据预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1,达到加密预定明文数据的目的。第一预定加密方法如下:依据预定编码方式编码预定明文数据Ma,得到目标编码多项式m,实现对预定明文数据的编码。再依据第一目标公钥h1,预定干扰项与目标编码多项式m,得到第一目标密文数据c1,即实现了对编码后的预定明文数据的加密操作,加强了对预定明文数据的保护,增强过程中的安全性。最后可以发送第一目标密文数据c1至第一终端,由于第一目标密文数据是对预定明文数据进行编码后加密的,因此,传送第一目标密文数据至第一终端时也能够保护数据不泄露。而且,不同于其他方案仅将明文数据编码到最低有效位的情况,本发明的预定编码方式可以将每个明文数据编码到最高有效位,并且将明文数据进行多次编码,从而大大降低了解密失败率;同时本发明提出的编码和解码方法支持更小的环参数q,从而大幅减少了公钥和密文的尺寸,降低了存储和通信开销;此外,本发明所用的环结构具有支持NTT数论变换操作的性质,从而大大减少了多项式乘法和求逆元等计算的运算次数,因此本发明加解密速度也得到极大的提升。从而解决了相关技术或方法中公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
作为一种可选的实施例,依据第一目标公钥h1,预定干扰项与目标编码多项式m,得到第一目标密文数据c1,包括:在预定编码方式为Msg2poly(M)的情况下,目标编码多项式m=M0+M1x+…+Mixi+…+Ml-1xl-1,预定干扰项包括随机数r,预定噪声值e,环元素v的逆环元素v-1,依据第一目标公钥h1,随机数r,预定噪声值e,逆环元素v-1与目标编码多项式m,得到第一目标密文数据c1,其中,Mi表示Ma中的第i比特长度上的数据,Mi={0,1},环元素v=(1-xn/k),v∈Rq,逆环元素m∈Rq,是Rq上所有可逆元素的集合,为预定环结构、表示度数为n-1次的多项式环, n是2的幂次,q是素数,k是满足k|n且n/k≥l的最大整数,表示整数的集合,表示正整数的集合。
在该实施例中,说明了在预定编码方式为Msg2poly(M)情况下的加密方式,在该情况下,目标多项式中的Mi表示Ma中的第i比特长度上的数据明文数据Ma具有l比特长度。不同于其他方案仅将明文数据编码到最低有效位的情况,本发明的编码多项式v-1将每个明文数据编码到了最高有效位,并且将明文数据进行多次编码,从而大大降低了解密失败率;同时本发明提出的编码和解码方法支持更小的环参数q,从而大幅减少公钥和密文的尺寸,降低了存储和通信开销;此外,本发明所用环具有支持NTT数论变换操作的性质,从而大大减少了计算的运算次数,因此本发明加解密速度也得到极大的提升。从而解决了相关技术或方法中公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
需要说明的是,在本发明中所提及的多项式环R,Rq以及环元素等参数具有多种选择,不局限于本发明具体实例中给出的情况。比如也支持NTT操作的环其中d是一个偶数等情况。对于本领域的普通技术人员,在不脱离本发明原理与方法的前提下,还可以做出若干改进或变形,这些改进和变形也视为本发明的保护范围之内。
作为一种可选的实施例,依据第一目标公钥h1,预定干扰项与目标编码多项式m,得到第一目标密文数据c1,包括:在预定编码方式为Msg2noise(M,η)的情况下,目标编码多项式m=m0+m1x+…+mn-1xn-1,预定干扰项包括随机数r;依据第一目标公钥h1,随机数r与目标编码多项式m,得到第一目标密文数据c1,其中,η表示中心二项分布的参数值,目标编码多项式m为系数符合参数值为η的中心二项分布的多项式,确定目标编码多项式m=m0+m1x+…+mn-1xn-1包括:确定使得对于所有的i∈[2kη-1]有si∈{0,1}n/k,并确定依据s与s2kη-1,对于所有i∈[k]和j∈[n/k],确定依据min/k+j,确定目标编码多项式m=m0+m1x+…+mn- 1xn-1。
在该实施例中,说明了在预定编码方式为Msg2noise(M,η)情况下的加密方式。在该情况下,在密文和公钥等存储开销不变的情况下,通过将明文数据编码到噪声之中,整体上减少了密文携带的噪声项,从而进一步降低了噪声对解密失败率的影响,获得了更低的解密失败率。
作为一种可选的实施例,采用第一预定加密方法PKE.Enc(h,M),依据预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1之前,还包括:在预定编码方式为Msg2poly(M)的情况下,获取初始私钥f′,预定私钥g与环元素v,其中,环元素依据初始私钥f′与环元素v,确定第一目标私钥f1;依据第一目标私钥f1与预定私钥g,得到第一目标公钥h1。
在该实施例中,说明了在预定编码方式为Msg2polv(M)情况下的密钥生成的过程,在该情况下,需要依据环元素去生成第一目标私钥与第一目标公钥。
作为一种可选的实施例,采用第一预定加密方法PKE.Enc(h,M),依据预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1之前,还包括:在预定编码方式为Msg2noise(M,η)的情况下,获取初始私钥f′,预定私钥g与逆环元素v-1,其中,逆环元素依据初始私钥f′与逆环元素v-1,确定第一目标私钥f1;依据第一目标私钥f1与预定私钥g,得到第一目标公钥h1。
在该实施例中,说明了在预定编码方式为Msg2noise(M,η)情况下的密钥生成的过程,在该情况下,需要依据逆环元素去生成第一目标私钥与第一目标公钥。
图2是根据本发明实施例1的基于向量解码的格公钥数据解密方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,接收第二终端发送的第一目标密文数据c1,其中,第一目标密文数据c1依据第一目标公钥h1,预定干扰项与目标编码多项式m,采用第一预定加密方法PKE.Enc(h,M)得到,目标编码多项式m依据预定编码方式编码预定明文数据Ma得到,目标编码多项式m的项数依据预定明文数据Ma的预定比特长度确定,目标编码多项式m各项上的系数依据预定明文数据Ma中,对应比特数据位上的明文数据确定,预定明文数据表示消息空间,预定明文数据表示目标明文数据为m∈Rq比特长度的明文数据;
步骤S202之后,采用预定解密方法PKE.Dec(f,c),依据第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb,包括:
步骤S204,依据第一目标密文数据c1以及第一目标私钥f1,确定目标解码多项式w,其中,第一目标私钥f1依据预定编码方式确定;
步骤S206,依据预定解码方式解码目标解码多项式w,得到目标明文数据Mb,其中,预定解码方式与预定编码方式对应。
通过上述步骤,接收第二终端发送的第一目标密文数据,依据第一目标密文数据与第一目标私钥确定目标解码多项式,最后依据预定解码方式解码目标多项式,得到目标明文数据。由于第一目标密文数据是依据第一目标公钥h1,预定干扰项与目标编码多项式m,因此实现的是对编码后的预定明文数据的加密操作,加强了对预定明文数据的保护,增强过程中的安全性。由于第一目标密文数据是对预定明文数据进行编码后加密的,因此,传送第一目标密文数据的过程也能够保护数据不泄露。而且,不同于其他方案仅将明文数据编码到最低有效位的情况,本发明的预定编码方式可以将每个明文数据编码到最高有效位,并且将明文数据进行多次编码,从而大大降低了解密失败率;同时本发明提出的编解码方法支持更小的环参数q,从而大幅减少公钥和密文的尺寸,降低了存储和通信开销;此外,本发明所用的环结构具有支持NTT数论变换操作的性质,从而大大减少了多项式乘法和求逆元等计算的运算次数,因此本发明加解密速度也得到极大的提升。从而解决了相关技术或方法中公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
作为一种可选的实施例,采用预定解密方法PKE.Dec(f,c),依据第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb之前,还包括:在预定编码方式为Msg2poly(M)的情况下,依据初始私钥f′与环元素v,确定第一目标私钥f1;和/或,在预定编码方式为Msg2noise(M,η)的情况下,依据初始私钥f′与逆环元素v-1,确定第一目标私钥f1,其中,环元素v=(1-xn/k),v∈Rq,逆环元素 是Rq上所有可逆元素的集合,为预定环结构、表示度数为n-1次的多项式环, n是2的幂次,q是素数,k是满足k|n且n/k≥l的最大整数,表示整数的集合,表示正整数的集合,η表示中心二项分布的参数值。
在该实施例中,说明了在依据第一目标密文数据以及第一目标私钥,确定目标解码多项式w之前,获取第一目标私钥的操作,在编码过程中使用的预定编码不同时,确定第一目标私钥的过程也是不同的,可以根据实际的应用与场景进行自定义的设置。
作为一种可选的实施例,在预定编码方式为包括以下至少之一:Msg2poly(M),Msg2noise(M,η)的情况下,预定解码方式为Poly2msg(w),依据预定解码方式解码目标解码多项式w,得到目标明文数据Mb,包括:将目标解码多项式w输入至Poly2msg(w),其中w=w0+w1x+…+wn-1xn-1,w∈Rq;基于所有i∈[n],确定基于所有j∈[l],确定依据
在该实施例中,说明了预定编码方式为Msg2poly(M)或Msg2noise(M,η)的情况下的预定解码方式,并依据该预定解码方式进行解码得到目标明文数据的过程,在此过程中,由于进行了精确的模约化操作,因此,对于噪声等数据进行了合适的处理,使得得到的目标明文数据能够以极大的概率与原有的预定明文数据相同,达到还原数据的目的,实现了数据解密的整个过程。
图3是根据本发明实施例1的基于向量解码的格密钥封装方法的流程图,如图3所示,该方法包括如下步骤:
步骤S304,依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h),其中,第一密码哈希函数H1:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据,第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ,用于将特定比特长度的数据转化为两个κ比特长度的数据,特定比特长度依据l比特长度的数据与κ比特长度的数据确定;
步骤S308,依据第二目标公钥h2,目标随机数据Mc与第一偏移量ρ,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第二目标密文数据c2;
需要说明的是,第二预定加密方法与第一预定加密方法相似,区别在于,第二加密方法中的第一偏移量,相当于第一预定加密方法中的预定干扰项,即,第二加密方法中的预定干扰项计算得到的。
即相当于上述采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据Ma,所述第一目标公钥h1,以及所述预定干扰项,得到第一目标密文数据c1的过程中,预定干扰项是依据第一偏移量得到的,计算过程与上述依据预定编码方式编码所述预定明文数据Ma,得到目标编码多项式m,依据所述第一目标公钥h1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1类似。
步骤S310,依据第一未知数以及第二目标密文数据c2,通过第三密码哈希函数H3,确定封装密钥K,其中,第三密码哈希函数H3:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据。
需要说明的是,其中的封装密钥K可适用于对称式加密算法。
通过上述步骤,通过确定目标随机数据,依据第二目标公钥与第一密码哈希函数,第二密码哈希函数,确定用于第二密码哈希函数的项数值,依据项数值与目标随机数据,通过第二密码哈希函数,确定得到第一未知数以及第一偏移量,以依据第二目标公钥、目标随机数据与第一偏移量,采用第二预定加密方法,得到第二密文数据。依据第一未知数与第二密文数据,通过第三密码哈希函数确定出最后的封装密钥,以验证数据传输过程中的安全性。由于在确定第二目标密文数据中,使用了第二预定加密方法,因此实现的是对编码后的目标随机数据的加密操作,加强了对目标随机数据的保护,增强数据传输过程中的安全性。而且,由于本发明中使用了第二预定加密方法和预定的编码方式,不同于其他方案仅将明文数据编码到最低有效位的情况,本发明可以将每个明文数据编码到了最高有效位,并且将明文数据进行多次编码,从而大大降低了解密失败率;同时本发明提出的编解码方法支持更小的环参数q,从而大幅减少公钥和密文的尺寸,降低了存储和通信开销;此外,本发明所用的环结构具有支持NTT数论变换操作的性质,从而大大减少了多项式乘法和求逆元等计算的运算次数,因此本发明加解密速度也得到极大的提升。从而解决了相关技术或方法中公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
作为一种可选的实施例,依据第一未知数以及第二目标密文数据c2,通过第三密码哈希函数H3,确定封装密钥K之后,还包括:依据第二目标密文数据c2以及第二目标私钥f2,采用预定解密方法PKE.Dec(f,c),得到目标解密数据Md;依据项数值H1(h)与目标解密数据Md,通过第二密码哈希函数H2,确定第二未知数以及第二偏移量ρ′;依据第二目标公钥h2,目标解密数据Md与第二偏移量ρ′,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第三目标密文数据c3;在第二目标密文数据c2与第三目标密文数据c3相同的情况下,输出封装密钥K至第三终端。
在该实施例中,说明了验证封装密钥的过程,即在加密得到的第二目标密文数据与第三目标密文数据一致的情况下,能够得到封装密钥去进行数据的加解密数据处理。在此过程中,用到了具备预定环结构,环元素与逆环元素的第二预定加密方法,因此,同样能够达到上述的有益效果。
需要说明的是,上述预定解密方法与在步骤S204-S206中的方法相同,在此不作赘述。
还需要说明的是,上述基于向量解码的格公钥数据加密方法、基于向量解码的格公钥数据解密方法以及基于向量解码的格公钥数据加密装置,其中,共通参数表达的含义是相同的,如,环元素v=(1-xn/k),v∈Rq,逆环元素 是Rq上所有可逆元素的集合,为预定环结构、表示度数为n-1次的多项式环, n是2的幂次,q是素数,k是满足k|n且n/k≥l的最大整数,表示整数的集合,表示正整数的集合,η表示中心二项分布的参数值,在上述中不作赘述。
基于上述实施例及可选实施例,提供了一种可选实施方式,下面具体说明。
在相关技术中,现有基于NTRU的格公钥加密方法、解密方法以及密钥封装方法存在公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。
鉴于此,本发明可选实施方式中提供了一种基于向量解码的格公钥数据加密、解密方法,以及基于向量解码的格密钥封装、解封装方法,其公钥和密文尺寸小,进而存储和通信开销低,同时运用NTT数论变换操作减少多项式乘法和求逆元计算中的运算次数,进而提高了加解密操作的计算效率,解决相关技术中基于NTRU的格公钥加密方法、解密方法以及密钥封装方法存在的公钥和密文尺寸大、加解密操作计算效率低、解密失败率高等问题。下面对本发明可选实施方式进行详细介绍:
本发明可选实施方式包括以下几个方面的内容:
(一)基于向量编解码方法设计一种基于NTRU的格公钥加密方法。
(二)定义环上带错误学习数学困难问题(RLWE)的变种问题子集和奇偶性RLWE问题(Subset-Sum Parity RLWE,sspRLWE),并设计基于sspRLWE问题的改进的基于向量解码的格公钥加密方法。
(三)利用所述公钥加密方法设计高效的密钥封装机制。
下面为上述三个方面分别进行介绍:
(一)一种基于向量解码的格公钥加密方法:
(1)定义数学困难问题:
令为正整数,其中n是2的幂次而q是素数,令为多项式环,是Rq上所有可逆元素的集合,令χf,χg为环上的概率分布。计算性NTRU问题的目标是对于给定样本h=g/f∈Rq,求解秘密向量f′。判定性NTRU问题的目标是区分和Rq上的均匀随机元组
(2)定义消息向量编码和解码方法:
1)定义预定编码方式:
Msg2poly(M):给定消息预定明文数据Ma作为输入,返回目标编码多项式m=M0+M1x+…+Mixi+…+Ml-1xl-1∈Rq,其中,预定明文数据m∈Rq,这里Mi∈{0,l}是M的第i个比特,记m=Msg2poly(M);
2)定义预定解码方式:
(3)实现加解密:
基于上述预定编码方法和预定解码方法,提出基于向量解码的格公钥加密方法,用公钥对明文进行加密获得密文,用私钥解密密文获得明文。
举例说明:基于向量解码的格公钥加密方法由4个正整数参数1个环元素和4个Rq上的概率分布χf,χg,χr,χe来实例化,包括:密钥生成方法PKE.KeyGen(1κ)根据安全参数κ生成公钥pk(也可用h表述)和私钥sk;加密方法PKE.Enc(h,M)根据公钥h对明文M加密输出密文c;解密方法PKE.Dec(sk,c)根据私钥sk对密文c进行解密输出明文M。
1)密钥生成方法PKE.KeyGen(1κ):
S3,输出公私钥对(pk,sk)=(h,f)∈Rq×Rq。
2)加密方法PKE.Enc(pk,M):
S2,在预定编码方式为Msg2poly(M)的情况下,m=Msg2poly(Ma),得到目标编码多项式m=M0+M1x+…+Mixi+…+Ml-1xl-1;
S4,输出目标解密数据c1。
3)解密方法PKE.Dec(sk,c):
S1,获取目标解密数据c1∈Rq。
S2,计算w=f1c1(同上述依据第一目标密文数据c1以及第一目标私钥f1,确定目标解码多项式w);
S3,计算Mb=Poly2msg(w)(同上述依据预定解码方式解码目标解码多项式w,得到目标明文数据Mb);
S4,输出目标明文数据Mb。
(二)定义环上带错误学习数学困难问题(RLWE)的变种问题子集和奇偶性RLWE问题(Subset-Sum Parity RLWE,sspRLWE),并设计基于sspRLWE问题的改进的基于向量解码的格公钥加密方法。
(1)定义sspRLWE数学困难问题:
定义sspRLWE数学困难问题:对于正整数(其中n是2的幂次而q是素数),定义在和上次数为n-1的多项式环和(当n=1时,有),计算性数学困难问题是给定样本(a,b=ar+e)∈Rq,求解vemod2∈R2,其中和都是随机选取的值,v∈Rq是固定的环元素,和分别表示整数和正整数集合,χr,χe为Rq上的概率分布。
(2)定义消息编码和解码方法:
1)定义预定编码方式:
Msg2noise(M,η;ρ):给定消息和整数η作为输入,随机选取将s=(s0,...,s2kη-2)解析为(2kη-1)个n/k比特长的块(即对于所有的i∈[2kη-1]有si∈{0,1}n/k);然后令计算并返回m=m0+m1x+…+mn-1xn-1∈Rq,其中,对于所有的i∈[k]和j∈[n/k]有
2)定义预定解码方式:
Noise2msg(w):给定环元素w=w0+w1x+…+wn-1xn-1∈Rq作为输入,计算并返回消息M=Poly2msg(w)。
(3)实现加解密:
在上述方式下,基于上述预定编码方式与预定解码方法,提出改进的基于向量解码的格公钥加密方法,用公钥对明文进行加密获得密文,用私钥解密密文获得明文。
举例说明,改进的基于向量解码的格公钥加密方法由4个正整数参数3个Rq上的概率分布χf,χg,χr和1个环元素来实例化,包括:密钥生成方法PKE.KeyGen(1κ),根据安全参数κ生成公钥pk和私钥sk;加密方法PKE.Enc(pk,M),根据公钥pk加密明文M输出密文c;解密方法PKE.Dec(sk,c),根据私钥sk对密文c进行解密输出明文M。
1)密钥生成方法PKE.KeyGen(1κ):
S3,输出公私钥对(pk,sk)=(h1,f1),其中(h1,f1)∈Rq×Rq。
2)加密方法PKE.Enc(pk,M):
S2,在预定编码方式为Msg2noise(M,η)的情况下,m=Msg2noise(Mb,η),得到目标编码多项式m=m0+m1x+…+mn-1xn-1∈Rq;
S4,输出目标解密数据c1。
3)解密方法PKE.Dec(sk,c):
S1,获取目标解密数据c1∈Rq。
S2,计算u=f1c1(同上述依据第一目标密文数据c1以及第一目标私钥f1,确定目标解码多项式w);
S3,计算Mb=Noise2msg(u)(同上述依据预定解码方式解码目标解码多项式w,采用预定解密方法PKE.Dec(sk,c),得到目标明文数据Mb);
S4,输出目标明文数据Mb。
(三)利用所述公钥加密方法设计高效的密钥封装机制。
上述公钥加密方法可扩展为基于向量解码的密钥封装机制,令第一密码哈希函数H1:{0,1}*→{0,1}κ,第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ和第三密码哈希函数H3:{0,1}*→{0,1}κ,该密钥封装机制包括以下子方法:
1)密钥生成方法KEM.KeyGen(1κ):输入安全参数κ,输出公钥pk和私钥sk;
2)封装方法KEM.Encaps(pk)用公钥pk封装一个密钥K并输出一个密文c;
3)解封装方法KEM.Decaps(sk,c)根据私钥sk=(sk′,pk,H1(pk),s)对密文c进行解封装和获得密钥K。
下面分别对三种子方法进行介绍:
1)密钥生成方法KEM.KeyGen(1κ):
S2,执行(h,f):=PKE.KeyGen(1κ);
S3,输出公钥h=h2和私钥f=(f,h2H1(h2),s);
2)封装方法KEM.Encaps(pk):
S2,确定H1(h2),(同上述依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h));
S4,计算c2:=PKE.Enc(h2,Mc;ρ),(同上述依据第二目标公钥h2,目标随机数据Mc与第一偏移量ρ,采用第二预定加密方法PKE.Enc(h2,Mc;ρ),得到第二目标密文数据c2);
S6,输出第二目标密文数据c2和封装的密钥K。
3)解封装方法KEM.Decaps(sk,c):
S1,计算Md:=PKE.Dec(f2,c2),(同上述依据第二目标密文数据c2以及第二目标私钥f2,采用预定解密方法PKE.Dec(f,c),得到目标解密数据Md);
S3,计算c3:=PKE.Enc(h2,Md;ρ′),(同上述依据第二目标公钥h2,目标解密数据Md与第二偏移量ρ′,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第三目标密文c3);
因此,可知通过(三)能够实现密钥的封装与解封,本发明提出的选择明文安全的公钥加密方法和选择密文安全的密钥封装机制均可转换为选择密文安全的公钥加密方法。此外,利用已知的通用转换方法,本发明提出的公钥加密方法和密钥封装机制均可转换为密钥交换协议或者带认证的密钥交换协议。
需要说明的是,
对于上述(一),该可选实施方式可以选择正整数n是2的幂次,素数q满足q=1mod2n,多项式环来支持NTT运算。也可以选择正整数d是偶数时,也支持NTT操作的环注意,上述可选实施方式支持的多项式环R,Rq以及环元素等参数具有多种选择,不局限于本具体实例中给出的情况。
在以上基于向量解码的格公钥加密方法中,本发明提供高斯分布作为噪音分布χf,χg,χr,χe的候选。为了便于系统实现,本发明将使用二项分布或三元分布作为NTRU问题中的噪音分布。注意,噪音分布χf,χg,χr,χe的选择也不局限于离散高斯分布、二项分布或三元分布等。表1为本发明提供的2组参数列表,本发明可选实施方式提供以下表1所示的2组参数选择供参考,但不局限于这2组参数选择。
表1
对于上述(二),该可选实施方式也可以选择正整数n是2的幂次,素数q满足q=1mod 2n,多项式环来支持NTT运算。也可以选择正整数d是偶数时,也支持NTT操作的环注意,上述可选实施方式支持的多项式环R,Rq以及环元素等参数具有多种选择,不局限于本具体实例中给出的情况。表2为本发明提供的2组参数列表,本发明可选实施方式提供以下表2所示的2组参数选择供参考,但不局限于这2组参数选择。
表2
表3为本发明在使用表2中2组参数集时的实验数据,如表3所示,表3给出本发明可选实施方式的部分实验数据。实验平台为64位CentOS Linux 7.6系统,搭载Intel Core-i74790芯片,具有3.6GHz CPU和4GB内存,程序语言为C语言。
表3
对于上述(三),表4为本发明可选实施方式在使用表1中2组参数集时的实验数据。实验平台为64位CentOS Linux 7.6系统,搭载Intel Core-i7 4790芯片,具有3.6GHz CPU和4GB内存,程序语言为C语言。
表4
因此可知,通过上述可选实施方式,可以达到至少以下几点有益效果:
1)安全性高:本发明是可证明选择密文攻击安全的,同时能够抵抗未来量子计算机的攻击;
2)公钥和密文长度短:与格上同类方案比较,具有更短的公钥和密文长度;
3)计算效率高:提供计算速度非常快的密钥生成、加密和解密、封装和解封装子方法;
4)解密失败率低:提出的编码和解码方法使得本发明具有更低的解密失败率;
5)参数选取灵活:支持更加灵活细粒度的参数选取,易于达到安全性与性能的平衡;
6)抵抗多目标攻击:阻止了攻击者以恢复一个用户私钥的代价来恢复多个用户的私钥;
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述基于向量解码的格公钥数据加密方法的装置,图4是根据本发明实施例的基于向量解码的格公钥数据加密装置的结构框图,如图4所示,该装置包括:第一确定模块402,第一加密模块404和发送模块406,下面对该装置进行详细说明。
第一确定模块402,用于确定预定明文数据Ma,其中,预定明文数据表示消息空间,预定明文数据表示预定明文数据为l比特长度的明文数据;第一加密模块404,连接于上述第一确定模块402,用于采用第一预定加密方法PKE.Enc(h,M),依据预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1;发送模块406,连接于上述第一加密模块404,用于发送第一目标密文数据c1至第一终端,
其中,第一加密模块404包括:
编码模块,用于依据预定编码方式编码预定明文数据Ma,得到目标编码多项式m,其中,目标编码多项式m的项数依据预定明文数据Ma的预定比特长度确定,目标编码多项式m各项上的系数依据预定明文数据中,对应比特数据位上的明文数据确定;加密子模块,连接于编码模块,用于依据第一目标公钥h1,预定干扰项与目标编码多项式m,得到第一目标密文数据c1。
此处需要说明的是,上述第一确定模块402,第一加密模块404和发送模块406对应于实施基于向量解码的格公钥数据加密方法中的步骤S102至步骤S108,多个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
实施例3
根据本发明实施例,还提供了一种用于实施上述基于向量解码的格公钥数据解密方法的装置,图5是根据本发明实施例的基于向量解码的格公钥数据加密装置的结构框图,如图5所示,该装置包括:接收模块502和解密模块504,下面对该装置进行详细说明。
接收模块502,用于接收第二终端发送的第一目标密文数据c1,其中,第一目标密文数据c1依据第一目标公钥h1,预定干扰项与目标编码多项式m,采用第一预定加密方法PKE.Enc(h,M)得到,第一预定加密方法PKE.Enc(h,M)依据预定环结构确定,目标编码多项式m依据预定编码方式编码预定明文数据Ma得到,目标编码多项式m的项数依据预定明文数据Ma的预定比特长度确定,目标编码多项式m各项上的系数依据预定明文数据Ma中,对应比特数据位上的明文数据确定,预定明文数据表示消息空间,预定明文数据表示目标明文数据为m∈Rq比特长度的明文数据;
解密模块504,连接于上述接收模块502,用于采用预定解密方法PKE.Dec(f,c),依据第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb,其中,第一目标私钥f1依据预定编码方式确定,
其中,解密模块504包括:
第二确定模块,用于依据第一目标密文数据c1以及第一目标私钥f1,确定目标解码多项式w;解码模块,连接于第二确定模块,用于依据预定解码方式解码目标解码多项式w,得到目标明文数据Mb,其中,预定解码方式与预定编码方式对应。
此处需要说明的是,上述接收模块502和解密模块504对应于实施基于向量解码的格公钥数据加密方法中的步骤S202至步骤S206,多个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
实施例4
根据本发明实施例,还提供了一种用于实施上述基于向量解码的格公钥密钥封装方法的装置,图6是根据本发明实施例的基于向量解码的格公钥数据加密装置的结构框图,如图6所示,该装置包括:第三确定模块602,第四确定模块604,第五确定模块606,第二加密模块608和第六确定模块610,下面对该装置进行详细说明。
第三确定模块602,用于确定目标随机数据Mc,其中,表示消息空间,表示目标随机数据为l比特长度的数据;第四确定模块604,连接于上述第三确定模块602,用于依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h),其中,第一密码哈希函数H1:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据,第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ,用于将特定比特长度的数据转化为两个κ比特长度的数据,特定比特长度依据l比特长度的数据与κ比特长度的数据确定;第五确定模块606,连接于上述第四确定模块604,用于依据项数值H1(h)与目标随机数据Mc,通过第二密码哈希函数H2,确定第一未知数以及第一偏移量ρ;第二加密模块608,连接于上述第五确定模块606,用于依据第二目标公钥h2,目标随机数据Mc与第一偏移量ρ,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第二目标密文数据c2;第六确定模块610,连接于上述第二加密模块608,用于依据第一未知数以及第二目标密文数据c2,通过第三密码哈希函数H3,确定封装密钥K,其中,第三密码哈希函数H3:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据。
此处需要说明的是,上述第三确定模块602,第四确定模块604,第五确定模块606,第二加密模块608和第六确定模块610对应于实施基于向量解码的格公钥数据加密方法中的步骤S302至步骤S310,多个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
实施例5
根据本发明实施例的另外一个方面,还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器,其中,处理器被配置为执行指令,以实现上述任一项的基于向量解码的格公钥数据加密方法,上述任一项的基于向量解码的格公钥数据解密方法,上述任一项的基于向量解码的格密钥封装方法。
实施例6
根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项的基于向量解码的格公钥数据加密方法,上述任一项的基于向量解码的格公钥数据解密方法,上述任一项的基于向量解码的格密钥封装方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种基于向量解码的格公钥数据加密方法,其特征在于,包括:
采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据Ma,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1;
发送所述第一目标密文数据c1至第一终端,
其中,所述采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据Ma,所述第一目标公钥h1,以及所述预定干扰项,得到第一目标密文数据c1包括:
依据预定编码方式编码所述预定明文数据Ma,得到目标编码多项式m,其中,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据中,对应比特数据位上的明文数据确定;
依据所述第一目标公钥h1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1。
2.根据权利要求1所述的方法,其特征在于,依据所述第一目标公钥h1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1,包括:
在所述预定编码方式为Msg2poly(M)的情况下,所述目标编码多项式m=M0+M1x+…+Mixi+…+Ml-1xl-1,所述预定干扰项包括随机数r,预定噪声值e,环元素v的逆环元素v-1;
3.根据权利要求1所述的方法,其特征在于,依据第一目标公钥h1,预定干扰项与所述目标编码多项式m,得到第一目标密文数据c1,包括:
在所述预定编码方式为Msg2noise(M,η)的情况下,所述目标编码多项式m=m0+m1x+…+mn-1xn-1,所述预定干扰项包括随机数r;
依据所述第一目标公钥h1,所述随机数r与所述目标编码多项式m,得到所述第一目标密文数据c1,其中,所述η表示中心二项分布的参数值,所述目标编码多项式m为系数符合参数值为所述η的中心二项分布的多项式,
确定所述目标编码多项式m=m0+m1x+…+mn-1xn-1包括:
依据所述min/k+j,确定所述目标编码多项式m=m0+m1x+…+mn-1xn-1。
4.根据权利要求1所述的方法,其特征在于,采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据Ma,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1之前,还包括:
在所述预定编码方式为Msg2poly(M)的情况下,获取初始私钥f′,预定私钥g与环元素v,其中,所述环元素v=(1-xn/k);
依据所述初始私钥f′与所述环元素v,确定第一目标私钥f1;
依据所述第一目标私钥f1与所述预定私钥g,得到所述第一目标公钥h1。
6.一种基于向量解码的格公钥数据解密方法,其特征在于,包括:
接收第二终端发送的第一目标密文数据c1,其中,所述第一目标密文数据c1依据第一目标公钥h1,预定干扰项与目标编码多项式m,采用第一预定加密方法PKE.Enc(h,M)得到,所述目标编码多项式m依据所述预定编码方式编码所述预定明文数据Ma得到,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据Ma中,对应比特数据位上的明文数据确定,所述预定明文数据所述表示消息空间,所述预定明文数据表示所述目标明文数据为l比特长度的明文数据;
采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb,其中,所述第一目标私钥f1依据所述预定编码方式确定;
其中,所述采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb包括:
依据所述第一目标密文数据c1以及所述第一目标私钥f1,确定目标解码多项式w;
依据预定解码方式解码所述目标解码多项式w,得到所述目标明文数据Mb,其中,所述预定解码方式与所述预定编码方式对应。
7.根据权利要求6所述的方法,其特征在于,采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb之前,还包括:
在所述预定编码方式为Msg2poly(M)的情况下,依据初始私钥f′与环元素v,确定所述第一目标私钥f1;和/或,
在所述预定编码方式为Msg2noise(M,η)的情况下,依据初始私钥f′与逆环元素v,确定所述第一目标私钥f1,
9.一种基于向量解码的格密钥封装方法,其特征在于,包括:
依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h),其中,所述第一密码哈希函数H1:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据,所述第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ,用于将特定比特长度的数据转化为两个κ比特长度的数据,所述特定比特长度依据l比特长度的数据与κ比特长度的数据确定;
依据所述第二目标公钥h2,所述目标随机数据Mc与所述第一偏移量ρ,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第二目标密文数据c2;
依据所述第二目标密文数据c2以及第二目标私钥f2,采用预定解密方法PKE.Dec(f,c),得到目标解密数据Md;
依据所述第二目标公钥h2,所述目标解密数据Md与所述第二偏移量ρ′,采用所述第二预定加密方法PKE.Enc(h,M;ρ),得到第三目标密文数据c3;
在所述第二目标密文数据c2与所述第三目标密文数据c3相同的情况下,输出所述封装密钥K至第三终端。
11.一种基于向量解码的格公钥数据加密装置,其特征在于,包括:
第一加密模块,用于采用第一预定加密方法PKE.Enc(h,M),依据所述预定明文数据,第一目标公钥h1,以及预定干扰项,得到第一目标密文数据c1;
发送模块,用于发送所述第一目标密文数据c1至第一终端;
其中,所述第一加密模块包括:
编码模块,用于依据预定编码方式编码所述预定明文数据Ma,得到目标编码多项式m,其中,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据中,对应比特数据位上的明文数据确定;
加密子模块,用于依据所述第一目标公钥f1,所述预定干扰项与所述目标编码多项式m,得到所述第一目标密文数据c1。
12.一种基于向量解码的格公钥数据解密装置,其特征在于,包括:
接收模块,用于接收第二终端发送的第一目标密文数据c1,其中,所述第一目标密文数据c1依据第一目标公钥h1,预定干扰项与目标编码多项式m,采用第一预定加密方法PKE.Enc(h,M)得到,所述目标编码多项式m依据所述预定编码方式编码所述预定明文数据Ma得到,所述目标编码多项式m的项数依据所述预定明文数据Ma的所述预定比特长度确定,所述目标编码多项式m各项上的系数依据所述预定明文数据Ma中,对应比特数据位上的明文数据确定,所述预定明文数据所述表示消息空间,所述预定明文数据表示所述目标明文数据为l比特长度的明文数据;
解密模块,用于采用预定解密方法PKE.Dec(f,c),依据所述第一目标密文数据c1以及第一目标私钥f1,得到目标明文数据Mb,其中,所述第一目标私钥f1依据所述预定编码方式确定,
其中,所述解密模块包括:
第二确定模块,用于依据所述第一目标密文数据c1以及所述第一目标私钥f1,确定目标解码多项式w;
解码模块,用于依据预定解码方式解码所述目标解码多项式w,得到所述目标明文数据Mb,其中,所述预定解码方式与所述预定编码方式对应。
13.一种基于向量解码的格密钥封装装置,其特征在于,包括:
第四确定模块,用于依据第二目标公钥h2与第一密码哈希函数H1,确定用于第二密码哈希函数H2的项数值H1(h),其中,所述第一密码哈希函数H1:{0,1}*→{0,1}κ,用于将任意比特长度的数据转化为κ比特长度的数据,所述第二密码哈希函数H2:{0,1}l+κ→{0,1}κ×{0,1}κ,用于将特定比特长度的数据转化为两个κ长度的数据,所述特定比特长度依据l比特长度的数据与κ比特长度的数据确定;
第二加密模块,用于依据所述第二目标公钥h2,所述目标随机数据Mc与所述第一偏移量ρ,采用第二预定加密方法PKE.Enc(h,M;ρ),得到第二目标密文数据c2;
14.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的基于向量解码的格公钥数据加密方法,如权利要求6至8中任一项所述的基于向量解码的格公钥数据解密方法,如权利要求9至10中任一项所述的基于向量解码的格密钥封装方法。
15.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至5中任一项所述的基于向量解码的格公钥数据加密方法,如权利要求6至8中任一项所述的基于向量解码的格公钥数据解密方法,如权利要求9至10中任一项所述的基于向量解码的格密钥封装方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310188848.0A CN116366251A (zh) | 2023-02-21 | 2023-02-21 | 基于向量解码的格公钥数据加解密方法和密钥封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310188848.0A CN116366251A (zh) | 2023-02-21 | 2023-02-21 | 基于向量解码的格公钥数据加解密方法和密钥封装方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116366251A true CN116366251A (zh) | 2023-06-30 |
Family
ID=86931989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310188848.0A Pending CN116366251A (zh) | 2023-02-21 | 2023-02-21 | 基于向量解码的格公钥数据加解密方法和密钥封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116366251A (zh) |
-
2023
- 2023-02-21 CN CN202310188848.0A patent/CN116366251A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9172529B2 (en) | Hybrid encryption schemes | |
KR101809386B1 (ko) | 인증 암호 장치, 인증 암호 방법 및 컴퓨터 판독가능한 기록 매체 | |
CN110138752B (zh) | 一种基于格的公钥加密方法 | |
Toorani et al. | A secure cryptosystem based on affine transformation | |
RU2459276C1 (ru) | Способ шифрования сообщения м, представленного в виде многоразрядного двоичного числа | |
CN115242372B (zh) | 一种基于批打包编码的密态纵向联邦逻辑回归训练方法 | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
CN117527223B (zh) | 一种基于格的抗量子密码的分布式解密方法及系统 | |
Ajmal et al. | Cloud computing platform: Performance analysis of prominent cryptographic algorithms | |
CN112398646B (zh) | 理想格上具有短公共参数的身份基加密方法及系统 | |
CN111817853B (zh) | 一种后量子安全的签密算法 | |
CN112468284A (zh) | 基于she安全外包的方法 | |
CN110677238B (zh) | 广播加密方法和装置 | |
CN109525385B (zh) | 一种共享密钥的封装方法、第一节点和第二节点 | |
CN116488806A (zh) | 一种密钥封装方法、装置、设备及存储介质 | |
EP2571192A1 (en) | Hybrid encryption schemes | |
CN115632765A (zh) | 加密方法、解密方法、装置、电子设备及存储介质 | |
CN113315628B (zh) | 密钥封装方法、装置、设备及存储介质 | |
CN115102689A (zh) | 两方协同的s盒生成方法、加密方法和存储介质 | |
CN116366251A (zh) | 基于向量解码的格公钥数据加解密方法和密钥封装方法 | |
CN114826551A (zh) | 一种智能电网全生命周期数据的保护方法和系统 | |
Jasra et al. | Mapping images over elliptic curve for encryption | |
WO2024174108A1 (zh) | 基于向量解码的格公钥数据加解密方法和密钥封装方法 | |
US8462940B2 (en) | Public key cryptosystem and associated method utilizing a hard lattice with O(n log n) random bits for security | |
Ghehioueche et al. | Performance evaluation and analysis of encryption schemes for wireless sensor networks |
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 |