CN108777614A - 一种加解密装置和基于通用散列函数的加解密方法 - Google Patents
一种加解密装置和基于通用散列函数的加解密方法 Download PDFInfo
- Publication number
- CN108777614A CN108777614A CN201810741522.5A CN201810741522A CN108777614A CN 108777614 A CN108777614 A CN 108777614A CN 201810741522 A CN201810741522 A CN 201810741522A CN 108777614 A CN108777614 A CN 108777614A
- Authority
- CN
- China
- Prior art keywords
- matrix
- hash function
- universal hash
- generator
- key
- 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.)
- Granted
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/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种加解密装置和基于通用散列函数的加解密方法。其中的加解密装置包括:离散化的正态分布产生器、密钥生成器和加/解密器;所述离散化的正态分布产生器,用于生成一个正态分布,并根据该正态分布得到随机变量;所述密钥生成器,用于使用至少一个通用散列函数生成私钥S和公钥A;所述加/解密器,用于根据公钥A和需加密的原文输出加密后的密文,或者用于根据私钥S和需解密的密文输出解密后的原文。应用本发明可以大大降低存储和计算复杂度。
Description
技术领域
本申请涉及数据加解密技术领域,尤其涉及一种加解密装置和基于通用散列函数的加解密方法。
背景技术
随着互联网技术的蓬勃发展,通讯安全的重要性也与日俱增。在众多场合下,通讯双方都希望在利用公共信道的情况下进行保密通讯。例如,当用户向网上银行提交账号和密码时,用户希望这些信息在传递过程中是保密的,即任何第三方都无法窃听。当前正在被广泛使用的加密方法是公钥加密方法,此类方法的安全性是基于某些数学问题的算法复杂度。然而,随着科技的发展,特别是量子计算机的发展,公钥加密方法的安全性已经受到了威胁。因此,亟需开发更加安全可靠的抗量子计算的加密方法。
在拥有量子计算机的条件下依然能够保持安全的密码学方法,即后量子密码学方法,在国内外已经受到广泛的关注。目前,各国政府已经在积极的推进后量子密码方法的标准。后量子密码学主要关注如下的四类方法:基于哈希的(hash-based)密码学方法、基于编码的(code-based)密码学方法、多元的(multivariate)密码学方法和基于格的(lattice-based)密码学方法。其中,当前人们最关注的是基于格的密码学方法。
在基于格的密码学方法的具体实现中,其中的一个核心步骤是产生一个很大(例如,10Kbit*10Kbit)的随机矩阵,并用于加密和解密中。因此,这种方法必然引入了大量的存储要求和很高的计算复杂度要求。因此,事实上,存储和计算复杂度已经成为当前的后量子密码方法得到广泛应用的瓶颈。
发明内容
有鉴于此,本发明提供了一种加解密装置和基于通用散列函数的加解密方法,从而可以大大降低存储和计算复杂度。
本发明的技术方案具体是这样实现的:
一种加解密装置,该装置包括:离散化的正态分布产生器、密钥生成器和加/解密器;
所述离散化的正态分布产生器,用于生成一个正态分布并根据该正态分布得到随机变量;
所述密钥生成器,用于使用至少一个通用散列函数生成私钥S和公钥A;
所述加/解密器,用于根据公钥A和需加密的原文输出加密后的密文,或者用于根据私钥S和需解密的密文输出解密后的原文。
较佳的,所述密钥生成器包括:S矩阵生成器、通用散列函数生成器、E矩阵生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述通用散列函数生成器,用于生成一个通用散列函数,并将该通用散列函数作为矩阵;
所述E矩阵生成器,用于根据正态分布从整数环Zq上取一个l×m的矩阵,生成E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
较佳的,所述密钥生成器包括:通用散列函数生成器、矩阵生成器、E矩阵生成器和密钥器;
所述通用散列函数生成器,用于生成一个通用散列函数,将该通用散列函数作为S矩阵,并将S矩阵作为私钥S;
所述矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×m的矩阵,生成矩阵;
所述E矩阵生成器,用于根据正态分布从整数环Zq上取一个l×m的矩阵,生成E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
较佳的,所述密钥生成器包括:S矩阵生成器、矩阵生成器、通用散列函数生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×m的矩阵,生成矩阵;
所述通用散列函数生成器,用于生成一个通用散列函数,将该通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
较佳的,所述密钥生成器包括:S矩阵生成器、第一通用散列函数生成器、第二通用散列函数生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述第一通用散列函数生成器,用于生成第一通用散列函数,并将所述第一通用散列函数作为矩阵;
所述第二通用散列函数生成器,用于生成第二通用散列函数,将所述第二通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
较佳的,所述密钥生成器包括:第三通用散列函数生成器、第一通用散列函数生成器、第二通用散列函数生成器和密钥器;
所述第三通用散列函数生成器,用于生成第三通用散列函数,并将所述第三通用散列函数作为S矩阵,并将S矩阵作为私钥S;
所述第一通用散列函数生成器,用于生成第一通用散列函数,并将所述第一通用散列函数作为矩阵;
所述第二通用散列函数生成器,用于生成第二通用散列函数,将所述第二通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
本发明中还提供了一种基于通用散列函数的加解密方法,该方法包括:
使用离散化的正态分布产生器生成一个正态分布并根据该正态分布得到随机变量;
在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A;
将公钥A和需加密的原文输入加密器中,输出加密后的密文;或者,将私钥S和需解密的密文输入解密器中,输出解密后的原文。
较佳的,所述使用离散化的正态分布产生器生成一个正态分布,并根据该正态分布得到随机变量包括:
使用离散化的正态分布产生器生成一个均值为0且标准差为并以q为参数离散化的正态分布
从正态分布取出随机变量x;
对随机变量x与1进行取模操作,得到余数r;
对余数r与q的乘积进行取整操作,得到随机变量。
较佳的,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵;其中,n为安全参数,l为待加密的比特向量的长度;
生成一个通用散列函数,将该通用散列函数作为矩阵;
根据正态分布从整数环Zq上取一个l×m的矩阵,得到E矩阵;其中,m为密文的长度;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥S。
较佳的,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
生成一个通用散列函数,将该通用散列函数作为S矩阵;
以均匀分布的方式从整数环Zq上取一个n×m的矩阵,得到矩阵;其中,n为安全参数,m为密文的长度;
根据正态分布从整数环Zq上取一个l×m的矩阵,得到E矩阵;其中,l为待加密的比特向量的长度;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
较佳的,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵;其中,n为安全参数,l为待加密的比特向量的长度;
以均匀分布的方式从整数环Zq上取一个n×m的矩阵,得到矩阵;其中,m为密文的长度;
生成一个通用散列函数,将该通用散列函数作为E矩阵;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
较佳的,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵;其中,n为安全参数,l为待加密的比特向量的长度;
生成一个第一通用散列函数,将该第一通用散列函数作为矩阵;
生成一个第二通用散列函数,将该第二通用散列函数作为E矩阵;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
较佳的,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
生成一个第三通用散列函数,将该第三通用散列函数作为S矩阵;
生成一个第一通用散列函数,将该第一通用散列函数作为矩阵;
生成一个第二通用散列函数,将该第二通用散列函数作为E矩阵;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
较佳的,根据如下的公式计算得到中间矩阵B:
其中,上述的符号“t”表示矩阵的转置。
较佳的,根据如下的公式计算得到公钥A:
较佳的,所述通用散列函数为托普利兹散列矩阵。
较佳的,所述将公钥A和需加密的原文输入加密器中,输出加密后的密文包括:
以均匀分布的方式生成一个二值的m维向量x;
在加密器中使用公钥A和m维向量x对所需加密的原文v进行加密,从而输出加密后的密文c。
较佳的,通过如下公式对所需加密的原文v进行加密,得到加密后的密文c:
其中,0为n维零向量;所得到的c为形如的向量。
较佳的,所述将公钥A和需加密的原文输入加密器中,输出加密后的密文包括:
在解密器中根据私钥S和需解密的密文c,得到l维向量w;
对于l维向量w进行解码,将解码后的向量w作为解密后的原文。
较佳的,通过如下公式得到向量w:
其中,I为l×l的单位矩阵。
较佳的,所述对于l维向量w进行解码包括:
对l维向量w的每一位进行如下操作:.
计算当前位的值;
当当前位的值与0之间的距离小于当前位的值与[q/2]之间的距离时,将该位解码为0;否则,将该位解码为1。
如上可见,在本发明中的加解密装置和基于通用散列函数的加解密方法中,由于使用通用散列函数(例如,Toeplitz散列矩阵)来替代随机矩阵,以计算得到私钥S和公钥A,使得所生成的公钥A的存储量变得比较小,从而可以大大降低存储和计算复杂度,解决后量子密码方法的应用瓶颈,增强后量子密码算法的实用性。
附图说明
图1为本发明实施例中的加解密装置的结构示意图。
图2为本发明实施例中的基于通用散列函数的加解密方法的流程图。
具体实施方式
为使本发明的技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明作进一步详细的说明。
图1为本发明实施例中的加解密装置的结构示意图,如图1所示,本发明中的加解密装置包括:离散化的正态分布产生器11、密钥生成器12和加/解密器13;
所述离散化的正态分布产生器11,用于生成一个正态分布并根据该正态分布得到随机变量i;
所述密钥生成器12,用于使用至少一个通用散列函数生成私钥S和公钥A;
所述加/解密器13,用于根据公钥A和需加密的原文输出加密后的密文,或者用于根据私钥S和需解密的密文输出解密后的原文。
在上述的加解密装置中,由于密钥生成器使用通用散列函数来替代现有技术中的很大的随机矩阵,以生成私钥S和公钥A,使得所生成的公钥A的存储量变得比较小,从而可以大大降低存储和计算复杂度,解决后量子密码方式的应用瓶颈,增强后量子密码方式的实用性。
另外,较佳的,在本发明的一个具体实施例中,所述密钥生成器可以包括:S矩阵生成器、通用散列函数生成器、E矩阵生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述通用散列函数生成器,用于生成一个通用散列函数,并将该通用散列函数作为矩阵;
所述E矩阵生成器,用于根据正态分布从整数环Zq上取一个l×m的矩阵,生成E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
另外,较佳的,在本发明的另一个具体实施例中,所述密钥生成器可以包括:通用散列函数生成器、矩阵生成器、E矩阵生成器和密钥器;
所述通用散列函数生成器,用于生成一个通用散列函数,将该通用散列函数作为S矩阵,并将S矩阵作为私钥S;
所述矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×m的矩阵,生成矩阵;
所述E矩阵生成器,用于根据正态分布从整数环Zq上取一个l×m的矩阵,生成E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
另外,较佳的,在本发明的一个具体实施例中,所述密钥生成器可以包括:S矩阵生成器、矩阵生成器、通用散列函数生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×m的矩阵,生成矩阵;
所述通用散列函数生成器,用于生成一个通用散列函数,将该通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
另外,较佳的,在本发明的一个具体实施例中,所述密钥生成器可以包括:S矩阵生成器、第一通用散列函数生成器、第二通用散列函数生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述第一通用散列函数生成器,用于生成第一通用散列函数,并将所述第一通用散列函数作为矩阵;
所述第二通用散列函数生成器,用于生成第二通用散列函数,将所述第二通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
另外,较佳的,在本发明的一个具体实施例中,所述密钥生成器可以包括:第三通用散列函数生成器、第一通用散列函数生成器、第二通用散列函数生成器和密钥器;
所述第三通用散列函数生成器,用于生成第三通用散列函数,并将所述第三通用散列函数作为S矩阵,并将S矩阵作为私钥S;
所述第一通用散列函数生成器,用于生成第一通用散列函数,并将所述第一通用散列函数作为矩阵;
所述第二通用散列函数生成器,用于生成第二通用散列函数,将所述第二通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
另外,在本发明的技术方案中,还提出了一种基于通用散列函数的加解密方法。
图2为本发明实施例中的基于通用散列函数的加解密方法的流程图。
如图2所示,本发明实施例中的基于通用散列函数的加解密方法包括如下所述步骤:
步骤21,使用离散化的正态分布产生器生成一个正态分布并根据该正态分布得到随机变量i。
在本发明的技术方案中,可以使用多种实现方法来实现上述的步骤21。以下将以其中的一种实现方式为例对本发明的技术方案进行详细的介绍。
例如,较佳的,在本发明的一个具体实施例中,所述步骤21可以包括如下的步骤:
步骤211,使用离散化的正态分布产生器生成一个均值为0且标准差为并以q为参数离散化的正态分布
其中,q为一个质数且位于区间[10,20]·p·m·logn。其中,n为安全参数,m为密文的长度,p为原文的取值范围。
另外,
步骤212,从正态分布取出随机变量x。
步骤213,对随机变量x与1进行取模操作,得到余数r。
例如,较佳的,在本步骤中,可以进行操作:r=x mod 1。
例如,0.3=1.3mod 1;或者,0.1=-0.9mod 1等等。
步骤214,对余数r与q的乘积进行取整操作,得到随机变量i。
例如,较佳的,在本步骤中,可以进行操作:i=[r·q]。其中,[]表示取整操作。
通过上述的步骤211~214,即可生成一个正态分布并从该正态分布中取出随机变量i。
步骤22,在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A。
在现有技术中,一般需要使用3个很大的(例如,10Kbit*10Kbit)随机矩阵来生成私钥S和公钥A。而在本发明的技术方案中,不再全部使用很大的随机矩阵来生成私钥S和公钥A,而是使用至少一个通用散列函数来替代现有技术中的上述很大的随机矩阵,以生成私钥S和公钥A,甚至可以全部使用通用散列函数(例如,使用3个通用散列函数来替换上述很大的3个随机矩阵)来生成私钥S和公钥A,使得所生成的公钥A的存储量变得比较小,从而明显降低后量子密码方法中的存储和计算复杂度。
步骤23,将公钥A和需加密的原文输入加密器中,输出加密后的密文;或者,将私钥S和需解密的密文输入解密器中,输出解密后的原文。
在本发明的技术方案中,在得到私钥S和公钥A之后,即可将公钥A和需加密的原文输入加密器中,在加密器中使用公钥A对所需加密的原文进行加密,从而输出加密后的密文。或者,可以将私钥S和需解密的密文输入解密器中,在解密器中使用私钥S对所需解密的密文进行解密,从而输出解密后的原文。
另外,在本发明的技术方案中,可以使用多种具体实现方法来实现上述的步骤22。以下将以其中的几种具体实现方式为例对本发明的技术方案进行详细的介绍。
具体实施例一、使用一个通用散列函数作为矩阵来生成私钥S和公钥A。
例如,较佳的,在本发明的一个具体实施例中,所述步骤22可以包括如下的步骤:
步骤221a,以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵。
其中,n为安全参数,l为待加密的比特向量的长度。
步骤221b,生成一个通用散列函数,将该通用散列函数作为矩阵。
较佳的,在本发明的一个具体实施例中,所述通用散列函数可以是托普利兹(Toeplitz)散列矩阵。
步骤221c,根据正态分布从整数环Zq上取一个l×m的矩阵,得到E矩阵。
其中,m为密文的长度。例如,m=(12+6c)n logn。
步骤221d,根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到中间矩阵B:
其中,上述的符号“t”表示矩阵的转置。
步骤221e,根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥S。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到公钥A:
因此可知,通过上述的步骤221a~221e,可以使用一个通用散列函数来生成私钥S和公钥A。
具体实施例二、使用一个通用散列函数作为S矩阵来生成私钥S和公钥A。
例如,较佳的,在本发明的一个具体实施例中,所述步骤22可以包括如下的步骤:
步骤222a,生成一个通用散列函数,将该通用散列函数作为S矩阵。
步骤222b,以均匀分布的方式从整数环Zq上取一个n×m的矩阵,得到矩阵。
其中,n为安全参数,m为密文的长度。例如,m=(12+6c)n logn。
步骤222c,根据正态分布从整数环Zq上取一个l×m的矩阵,得到E矩阵。
其中,l为待加密的比特向量的长度。
步骤222d,根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到中间矩阵B:
步骤222e,根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到公钥A:
因此可知,通过上述的步骤222a~222e,可以使用一个通用散列函数来生成私钥S和公钥A。
具体实施例三、使用一个通用散列函数作为E矩阵来生成私钥S和公钥A。
例如,较佳的,在本发明的一个具体实施例中,所述步骤22可以包括如下的步骤:
步骤223a,以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵。
其中,n为安全参数,l为待加密的比特向量的长度。
步骤223b,以均匀分布的方式从整数环Zq上取一个n×m的矩阵,得到矩阵。
其中,m为密文的长度。例如,m=(12+6c)n logn。
步骤223c,生成一个通用散列函数,将该通用散列函数作为E矩阵。
步骤223d,根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到中间矩阵B:
步骤223e,根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到公钥A:
因此可知,通过上述的步骤223a~223e,可以使用一个通用散列函数来生成私钥S和公钥A。
具体实施例四、使用两个通用散列函数来生成私钥S和公钥A。
例如,较佳的,在本发明的一个具体实施例中,所述步骤22可以包括如下的步骤:
步骤224a,以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵。
其中,n为安全参数,l为待加密的比特向量的长度。
步骤224b,生成一个第一通用散列函数,将该第一通用散列函数作为矩阵。
较佳的,在本发明的一个具体实施例中,所述通用散列函数可以是托普利兹(Toeplitz)散列矩阵。
步骤224c,生成一个第二通用散列函数,将该第二通用散列函数作为E矩阵。
步骤224d,根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到中间矩阵B:
步骤224e,根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到公钥A:
因此可知,通过上述的步骤224a~224e,可以使用两个通用散列函数来生成私钥S和公钥A。
上述具体实施例四中,是使用两个通用散列函数来替换现有技术中的矩阵和E矩阵,以生成私钥S和公钥A。在本发明的技术方案中,还可以使用两个通用散列函数来替换现有技术中的S矩阵和E矩阵,或者替换现有技术中的矩阵和S矩阵,以生成私钥S和公钥A,具体实现方式可参照上述的具体实施例一~四,因此在此不再一一赘述。
具体实施例五、使用三个通用散列函数来生成私钥S和公钥A。
例如,较佳的,在本发明的一个具体实施例中,所述步骤22可以包括如下的步骤:
步骤225a,生成一个第三通用散列函数,将该第三通用散列函数作为S矩阵。
较佳的,在本发明的一个具体实施例中,所述通用散列函数可以是托普利兹(Toeplitz)散列矩阵。
步骤225b,生成一个第一通用散列函数,将该第一通用散列函数作为矩阵。
步骤225c,生成一个第二通用散列函数,将该第二通用散列函数作为E矩阵。
步骤225d,根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到中间矩阵B:
步骤225e,根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
例如,较佳的,在本发明的具体实施例中,可以根据如下的公式计算得到公钥A:
因此可知,通过上述的步骤225a~225e,可以使用三个通用散列函数来生成私钥S和公钥A。
另外,在本发明的技术方案中,可以使用多种具体实现方法来实现上述的步骤23。以下将以其中的两种具体实现方式为例对本发明的技术方案进行详细的介绍。
具体实施例六:
例如,较佳的,在本发明的一个具体实施例中,所述将公钥A和需加密的原文输入加密器中,输出加密后的密文可以包括如下的步骤:
步骤231a,以均匀分布的方式生成一个二值的m维向量x。
在本发明的技术方案中,此处的x为加粗的字体,用于表示向量。
例如,该m维向量x可以表示为:x←{0,1}m。
步骤231b,在加密器中使用公钥A和m维向量x对所需加密的原文v进行加密,从而输出加密后的密文c。
例如,较佳的,在本发明的一个具体实施例中,可以通过如下公式对所需加密的原文v进行加密,得到加密后的密文c:
其中,0为n维零向量。所得到的c为形如的向量。
通过上述的步骤231a和231b,即可得到加密后的密文c。
具体实施例七:
例如,较佳的,在本发明的一个具体实施例中,所述将私钥S和需解密的密文输入解密器中,输出解密后的原文可以包括如下的步骤:
步骤232a,在解密器中根据私钥S和需解密的密文c,得到l维向量w。
例如,较佳的,在本发明的一个具体实施例中,可以通过如下公式得到向量w:
其中,I为l×l的单位矩阵。
步骤232b,对于l维向量w进行解码,将解码后的向量w作为解密后的原文。
例如,较佳的,在本发明的一个具体实施例中,所述对于l维向量w进行解码包括:
对l维向量w的每一位进行如下操作:.
计算当前位的值;
当当前位的值距离0更近(即当前位的值与0之间的距离小于当前位的值与[q/2]之间的距离)时,将该位解码为0;否则,将该位解码为1。
因此可知,通过上述的步骤232a和232b,即可得到解密后的原文。
综上所述,在本发明的技术方案中,由于使用通用散列函数(例如,Toeplitz散列矩阵)来替代随机矩阵,以计算得到私钥S和公钥A,使得所生成的公钥A的存储量变得比较小,从而可以大大降低存储和计算复杂度,解决后量子密码方法的应用瓶颈,增强后量子密码算法的实用性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (21)
1.一种加解密装置,其特征在于,该装置包括:离散化的正态分布产生器、密钥生成器和加/解密器;
所述离散化的正态分布产生器,用于生成一个正态分布并根据该正态分布得到随机变量;
所述密钥生成器,用于使用至少一个通用散列函数生成私钥S和公钥A;
所述加/解密器,用于根据公钥A和需加密的原文输出加密后的密文,或者用于根据私钥S和需解密的密文输出解密后的原文。
2.根据权利要求1所述的装置,其特征在于,所述密钥生成器包括:S矩阵生成器、通用散列函数生成器、E矩阵生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述通用散列函数生成器,用于生成一个通用散列函数,并将该通用散列函数作为矩阵;
所述E矩阵生成器,用于根据正态分布从整数环Zq上取一个l×m的矩阵,生成E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
3.根据权利要求1所述的装置,其特征在于,所述密钥生成器包括:通用散列函数生成器、矩阵生成器、E矩阵生成器和密钥器;
所述通用散列函数生成器,用于生成一个通用散列函数,将该通用散列函数作为S矩阵,并将S矩阵作为私钥S;
所述矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×m的矩阵,生成矩阵;
所述E矩阵生成器,用于根据正态分布从整数环Zq上取一个l×m的矩阵,生成E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
4.根据权利要求1所述的装置,其特征在于,所述密钥生成器包括:S矩阵生成器、矩阵生成器、通用散列函数生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×m的矩阵,生成矩阵;
所述通用散列函数生成器,用于生成一个通用散列函数,将该通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
5.根据权利要求1所述的装置,其特征在于,所述密钥生成器包括:S矩阵生成器、第一通用散列函数生成器、第二通用散列函数生成器和密钥器;
所述S矩阵生成器,用于以均匀分布的方式从整数环Zq上取一个n×l的矩阵,生成S矩阵,并将S矩阵作为私钥S;
所述第一通用散列函数生成器,用于生成第一通用散列函数,并将所述第一通用散列函数作为矩阵;
所述第二通用散列函数生成器,用于生成第二通用散列函数,将所述第二通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
6.根据权利要求1所述的装置,其特征在于,所述密钥生成器包括:第三通用散列函数生成器、第一通用散列函数生成器、第二通用散列函数生成器和密钥器;
所述第三通用散列函数生成器,用于生成第三通用散列函数,并将所述第三通用散列函数作为S矩阵,并将S矩阵作为私钥S;
所述第一通用散列函数生成器,用于生成第一通用散列函数,并将所述第一通用散列函数作为矩阵;
所述第二通用散列函数生成器,用于生成第二通用散列函数,将所述第二通用散列函数作为E矩阵;
所述密钥器,用于根据S矩阵、矩阵和E矩阵计算得到公钥A。
7.一种基于通用散列函数的加解密方法,其特征在于,该方法包括:
使用离散化的正态分布产生器生成一个正态分布并根据该正态分布得到随机变量;
在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A;
将公钥A和需加密的原文输入加密器中,输出加密后的密文;或者,将私钥S和需解密的密文输入解密器中,输出解密后的原文。
8.根据权利要求7所述的方法,其特征在于,所述使用离散化的正态分布产生器生成一个正态分布并根据该正态分布得到随机变量包括:
使用离散化的正态分布产生器生成一个均值为0且标准差为并以q为参数离散化的正态分布
从正态分布取出随机变量x;
对随机变量x与1进行取模操作,得到余数r;
对余数r与q的乘积进行取整操作,得到随机变量。
9.根据权利要求7所述的方法,其特征在于,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵;其中,n为安全参数,l为待加密的比特向量的长度;
生成一个通用散列函数,将该通用散列函数作为矩阵;
根据正态分布从整数环Zq上取一个l×m的矩阵,得到E矩阵;其中,m为密文的长度;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥S。
10.根据权利要求7所述的方法,其特征在于,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
生成一个通用散列函数,将该通用散列函数作为S矩阵;
以均匀分布的方式从整数环Zq上取一个n×m的矩阵,得到矩阵;其中,n为安全参数,m为密文的长度;
根据正态分布从整数环Zq上取一个l×m的矩阵,得到E矩阵;其中,l为待加密的比特向量的长度;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
11.根据权利要求7所述的方法,其特征在于,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵;其中,n为安全参数,l为待加密的比特向量的长度;
以均匀分布的方式从整数环Zq上取一个n×m的矩阵,得到矩阵;其中,m为密文的长度;
生成一个通用散列函数,将该通用散列函数作为E矩阵;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
12.根据权利要求7所述的方法,其特征在于,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
以均匀分布的方式从整数环Zq上取一个n×l的矩阵,得到S矩阵;其中,n为安全参数,l为待加密的比特向量的长度;
生成一个第一通用散列函数,将该第一通用散列函数作为矩阵;
生成一个第二通用散列函数,将该第二通用散列函数作为E矩阵;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
13.根据权利要求7所述的方法,其特征在于,所述在密钥生成器中使用至少一个通用散列函数进行计算,生成私钥S和公钥A包括:
生成一个第三通用散列函数,将该第三通用散列函数作为S矩阵;
生成一个第一通用散列函数,将该第一通用散列函数作为矩阵;
生成一个第二通用散列函数,将该第二通用散列函数作为E矩阵;
根据S矩阵、矩阵和E矩阵,计算得到中间矩阵B;
根据中间矩阵B和矩阵,计算得到公钥A,并将S矩阵作为私钥。
14.根据权利要求9至13中任一所述的方法,其特征在于,根据如下的公式计算得到中间矩阵B:
其中,所述符号“t”表示矩阵的转置。
15.根据权利要求14所述的方法,其特征在于,根据如下的公式计算得到公钥A:
16.根据权利要求9至13中任一所述的方法,其特征在于:
所述通用散列函数为托普利兹散列矩阵。
17.根据权利要求8所述的方法,其特征在于,所述将公钥A和需加密的原文输入加密器中,输出加密后的密文包括:
以均匀分布的方式生成一个二值的m维向量x;
在加密器中使用公钥A和m维向量x对所需加密的原文v进行加密,从而输出加密后的密文c。
18.根据权利要求17所述的方法,其特征在于,通过如下公式对所需加密的原文v进行加密,得到加密后的密文c:
其中,0为n维零向量;所得到的c为形如的向量。
19.根据权利要求8所述的方法,其特征在于,所述将公钥A和需加密的原文输入加密器中,输出加密后的密文包括:
在解密器中根据私钥S和需解密的密文c,得到l维向量w;
对于l维向量w进行解码,将解码后的向量w作为解密后的原文。
20.根据权利要求19所述的方法,其特征在于,通过如下公式得到向量w:
其中,I为l×l的单位矩阵。
21.根据权利要求19所述的方法,其特征在于,所述对于l维向量w进行解码包括:
对l维向量w的每一位进行如下操作:.
计算当前位的值;
当当前位的值与0之间的距离小于当前位的值与[q/2]之间的距离时,将该位解码为0;否则,将该位解码为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810741522.5A CN108777614B (zh) | 2018-07-05 | 2018-07-05 | 一种加解密装置和基于通用散列函数的加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810741522.5A CN108777614B (zh) | 2018-07-05 | 2018-07-05 | 一种加解密装置和基于通用散列函数的加解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108777614A true CN108777614A (zh) | 2018-11-09 |
CN108777614B CN108777614B (zh) | 2023-08-18 |
Family
ID=64031156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810741522.5A Active CN108777614B (zh) | 2018-07-05 | 2018-07-05 | 一种加解密装置和基于通用散列函数的加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108777614B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379178A (zh) * | 2018-11-15 | 2019-02-22 | 成都卫士通信息产业股份有限公司 | 加解密装置构建方法、***、介质及设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011002810A (ja) * | 2009-05-19 | 2011-01-06 | Hitachi Ltd | 暗号化装置、プログラム、暗号システム及び暗号化方法 |
CN102393890A (zh) * | 2011-10-09 | 2012-03-28 | 广州大学 | 一种抗物理入侵和旁路攻击的密码芯片***及其实现方法 |
WO2012077818A1 (ja) * | 2010-12-10 | 2012-06-14 | 国立大学法人豊橋技術科学大学 | ハッシュ関数の変換行列を定める方法、該ハッシュ関数を利用するハッシュ型近似最近傍探索方法、その装置及びそのコンピュータプログラム |
US20140068765A1 (en) * | 2009-12-18 | 2014-03-06 | Electronics And Telecommunications Research Institute | Method and apparatus for authenticating user in multiparty quantum communications |
CN104350701A (zh) * | 2012-05-31 | 2015-02-11 | 诺基亚公司 | 安全的无线通信 |
CN104506313A (zh) * | 2015-01-19 | 2015-04-08 | 中国人民解放军国防科学技术大学 | 一种支持大规模动态变化的量子密钥分发保密增强方法 |
US20150193306A1 (en) * | 2014-01-08 | 2015-07-09 | Kabushiki Kaisha Toshiba | Quantum communication device, quantum communication method, and computer program product |
US20150222619A1 (en) * | 2012-08-30 | 2015-08-06 | Los Alamos National Security, Llc | Multi-factor authentication using quantum communication |
CN105071929A (zh) * | 2015-07-15 | 2015-11-18 | 清华大学 | 量子密钥分发的后处理方法 |
CN106452788A (zh) * | 2016-10-17 | 2017-02-22 | 清华大学 | 一种量子信息认证装置及方法 |
CN106452791A (zh) * | 2016-11-11 | 2017-02-22 | 浙江神州量子网络科技有限公司 | 一种无信任中心的量子数字签名方法 |
CN106533673A (zh) * | 2016-12-08 | 2017-03-22 | 浙江神州量子网络科技有限公司 | 一种适用于多方量子通信的隐私放大方法 |
CN107645376A (zh) * | 2016-07-22 | 2018-01-30 | 北京大学 | 一种用于连续变量量子密钥分发中的长码私钥放大方法 |
CN108139888A (zh) * | 2015-07-29 | 2018-06-08 | 洛斯阿拉莫斯国家安全有限责任公司 | 量子随机数生成器 |
-
2018
- 2018-07-05 CN CN201810741522.5A patent/CN108777614B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011002810A (ja) * | 2009-05-19 | 2011-01-06 | Hitachi Ltd | 暗号化装置、プログラム、暗号システム及び暗号化方法 |
US20140068765A1 (en) * | 2009-12-18 | 2014-03-06 | Electronics And Telecommunications Research Institute | Method and apparatus for authenticating user in multiparty quantum communications |
WO2012077818A1 (ja) * | 2010-12-10 | 2012-06-14 | 国立大学法人豊橋技術科学大学 | ハッシュ関数の変換行列を定める方法、該ハッシュ関数を利用するハッシュ型近似最近傍探索方法、その装置及びそのコンピュータプログラム |
CN102393890A (zh) * | 2011-10-09 | 2012-03-28 | 广州大学 | 一种抗物理入侵和旁路攻击的密码芯片***及其实现方法 |
CN104350701A (zh) * | 2012-05-31 | 2015-02-11 | 诺基亚公司 | 安全的无线通信 |
US20150222619A1 (en) * | 2012-08-30 | 2015-08-06 | Los Alamos National Security, Llc | Multi-factor authentication using quantum communication |
US20150193306A1 (en) * | 2014-01-08 | 2015-07-09 | Kabushiki Kaisha Toshiba | Quantum communication device, quantum communication method, and computer program product |
CN104506313A (zh) * | 2015-01-19 | 2015-04-08 | 中国人民解放军国防科学技术大学 | 一种支持大规模动态变化的量子密钥分发保密增强方法 |
CN105071929A (zh) * | 2015-07-15 | 2015-11-18 | 清华大学 | 量子密钥分发的后处理方法 |
CN108139888A (zh) * | 2015-07-29 | 2018-06-08 | 洛斯阿拉莫斯国家安全有限责任公司 | 量子随机数生成器 |
CN107645376A (zh) * | 2016-07-22 | 2018-01-30 | 北京大学 | 一种用于连续变量量子密钥分发中的长码私钥放大方法 |
CN106452788A (zh) * | 2016-10-17 | 2017-02-22 | 清华大学 | 一种量子信息认证装置及方法 |
CN106452791A (zh) * | 2016-11-11 | 2017-02-22 | 浙江神州量子网络科技有限公司 | 一种无信任中心的量子数字签名方法 |
CN106533673A (zh) * | 2016-12-08 | 2017-03-22 | 浙江神州量子网络科技有限公司 | 一种适用于多方量子通信的隐私放大方法 |
Non-Patent Citations (2)
Title |
---|
周泓伊等: "量子随机数发生器", 《信息安全研究》 * |
李默等: "量子密钥分配后处理概述", 《密码学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379178A (zh) * | 2018-11-15 | 2019-02-22 | 成都卫士通信息产业股份有限公司 | 加解密装置构建方法、***、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108777614B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alenezi et al. | Symmetric encryption algorithms: Review and evaluation study | |
CN101977112B (zh) | 一种基于神经网络混沌吸引子的公钥密码加密和解密方法 | |
CN107147484A (zh) | 一种面向隐私保护的浮点数全同态加密方法 | |
JPH08510365A (ja) | データ暗号化のための方法および装置 | |
CN106301759A (zh) | 一种数据加密的方法、解密的方法及装置 | |
Terec et al. | DNA security using symmetric and asymmetric cryptography | |
CN108989049A (zh) | 一种无双线性配对的代理重加密***及加密方法 | |
CN103746805B (zh) | 外部认证密钥的生成方法和*** | |
Venkateswaran et al. | Information Security: Text Encryption and Decryption with poly substitution method and combining the features of Cryptography | |
Najm et al. | A New WoT Cryptography Algorithm Based on GOST and Novel 5d Chaotic System | |
CN109088721B (zh) | 一种可委托揭序加密方法 | |
Gunasundari et al. | A comparative survey on symmetric key encryption algorithms | |
CN108777614A (zh) | 一种加解密装置和基于通用散列函数的加解密方法 | |
Jamaludin et al. | Hybrid Cryptosystem Analysis by Using The Combination of Vigenere Cipher and RSA for Text Security | |
Salam et al. | ShiftMod cipher: A symmetrical cryptosystem scheme | |
Sheela et al. | Secured text communication using chaotic maps | |
CN110650006A (zh) | 一种中英文字符串的加密和解密方法 | |
Rajasekar et al. | Introduction to classical cryptography | |
Mohammed et al. | Implementation of new secure encryption technique for cloud computing | |
Kaur et al. | Multiphase and multiple encryption | |
CN104837131B (zh) | 一种基于批处理指数运算乘积的批Cramer-Shoup密码方法 | |
Shah et al. | Efficient Cryptography for data security | |
CN103746793B (zh) | 一种数形文载加密和解密方法 | |
Hassene et al. | A new hybrid encryption technique permuting text and image based on hyperchaotic system | |
CN103475466A (zh) | 一种USBKey总线保护实现方法 |
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 |