CN1778066B - 参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序 - Google Patents

参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序 Download PDF

Info

Publication number
CN1778066B
CN1778066B CN2004800109780A CN200480010978A CN1778066B CN 1778066 B CN1778066 B CN 1778066B CN 2004800109780 A CN2004800109780 A CN 2004800109780A CN 200480010978 A CN200480010978 A CN 200480010978A CN 1778066 B CN1778066 B CN 1778066B
Authority
CN
China
Prior art keywords
parameter
nonnegative integer
decryption
cause
error
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.)
Expired - Fee Related
Application number
CN2004800109780A
Other languages
English (en)
Other versions
CN1778066A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1778066A publication Critical patent/CN1778066A/zh
Application granted granted Critical
Publication of CN1778066B publication Critical patent/CN1778066B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

一种参数生成设备,用于生成不引起NTRU密码系统解密错误的参数,以便加密通信能够在加密设备和解密设备之间以一种安全可靠的方式进行,该参数生成设备包含:临时参数生成单元,用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及输出参数生成单元,用于使用所述临时参数集,基于由所述临时参数集算出的格(lattice)常数来生成不引起任何解密错误的输出参数。

Description

参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序
技术领域
本发明涉及一种作为信息安全技术的加密技术,特别涉及NTRU(NTRU cryptosystems公司的商标)密码系统的参数生成。
背景技术
使用公钥加密的加密通信是实现发送设备和接受设备之间保密通信的一种方法。在公钥密码系统中,发送设备使用接收设备的公钥对通信内容加密并且将其传送到接收设备,然后,接收设备接收已加密的内容后使用它自己的私钥将其解密得到原文(例如,见文献1:Modern Cryptography.Mathematics in Information Science.Ser.Tatsuaki Okamoto,and Hirosuke Yamamoto,Sangyo Tosho,1997)。在使用这种方法的一般的密码系统中,存在多个发送设备和接收设备。发送设备首先得到目的接收设备的公钥。该公钥与目的接收设备拥有的私钥是配对的,并且在加密系统中是公开的。然后,发送设备使用上述得到的公钥加密并传送要通信的数据,而接收设备接收到这样的已加密通信数据后,使用它自己的私钥对数据解密,并得到原始数据。
注意,加密目的是实现发送设备和接收设备之间的保密通信,当然就需要对于第三方解密确保安全。在公钥密码系统中,可能有以下两种类型的解密:基于已加密通信数据(下文中称为“密文”)来解密通信数据(下文中称为“明文”);私钥,该私钥由接收设备私下拥有、用来从密文得到明文。通常,在公钥加密中,第三方要进行这样的解密必须花足够长的时间(例如,用最新的计算机要1000年),也就是说这样的解密不可能在一个现实的时间周期内进行。
在1996年NTRU密码系统作为一种能够进行高速处理的公钥加密系统出现了(例如,见文献2:Jeffery Hoffstein,Jill Pipher,and Joseph H.Silverman,“NTRU:A ring based public key cryptosystem”,LectureNotes in Computer Science,1423,pp.267-288,Springer-Verlag,1998)。NTRU密码系统在文献2中有详尽的描述,因此在这里就不再详述。在NTRU密码系统中加密和解密是通过多项式操作执行的,通过该多项式操作,NTRU才可能比在RSA(Rivest Shamirh Adleman)加密和ECC(elliptic-curve cryptography椭圆曲线密码编码学)情况下的速度都高,在RSA加密中加密解密是通过幂剩余去对某个自然数求模来执行的,在ECC中通过在椭圆曲线上的点执行数量乘法。所以,NTRU密码系统使用软件使得以比现有公钥加密系统情况下更高的速度执行处理成为可能。
这样,使用NTRU密码系统作为公钥加密的加密系统的优点是发送设备和接收设备之间的处理比使用现有公钥密码系统的加密系统的情况下的执行速度更高。
注意,为了实际使用NTRU执行加密和解密,需要使用非负整数参数N、p、q、df、dg和d(例如,见文献2)。目前,这些参数的具体值已经被给出(例如,见文献5:Joseph H.Silverman,“NTRUCryptosystems Technical Report #011,Wraps,Gaps,and LatticeConstants”,[online],January 21,1999,[searched on April 18,2003],Internet <URL:http://www.ntru.com/cryptolab/pdf/NTRUTech011_v2.pdf>)。
在NTRU密码系统中,第三方使用以下方法解密明文和私钥:采取穷尽搜索明文和密钥;以及使用LLL(Lenstra,Lenstra and Lovasz)算法(例如,见文献2)。然而,文献5中提出的参数的使用在使得NTRU密码系统成为一种安全的方法的同时也使得解密的时间足够长(例如,见文献3:Joseph H.Silverman,“NTRU Cryptosystems TechnicalReport #012,Estimated Breaking Times for NTRU Lattices”,[online],March 9,1999,[searched on February 18,2003],Internet<URL:http://www.ntru.com/cryptolab/pdf/NTRUTech012.pdf,文献4,Joseph H.Silverman,“NTRU Cryptosystems Technical Report #013,Dimension-Reduced Lattices,Zero-Forced Lattices,and the NTRU Public Key Cryptosystem”,[online],March 9,1999,[searched onFebruary 18,2003],Internet <URL:http://www.ntru.com/cryptolab/pdf/NTRUTech013.pdf>,和文献5)。
然而,在NTRU密码系统中有个问题,有时候即使密文是用公钥加密明文生成的,且已解密文本是使用合法的私钥解密上述密文生成的,但是已解密文本与原始文本也并不匹配(例如,见文献2)。这样的不匹配叫做“解密错误”。解密错误发生的可能性取决于NTRU密码系统的参数(下文中也称为“NTRU参数”)(例如,见文献5)。
文献2给出了关于解密错误的描述,为了避免解密错误的出现,通过计算下面的多项式导出的多项式(p·r×g+f×m)中的所有系数必须在从-q/2到q/2的范围内,这些多项式包括:在NTRU密码系统中用来生成公钥多项式h的随机多项式g;随机数多项式r;明文多项式m和私钥多项式f。然而,在以上述方式选择NTRU参数时,执行解密需要的时间是未知的,且对于解密是安全的并且不引起任何解密错误的NTRU参数也仍然是未知的。
如上所述,在能够进行高速处理的NTRU密码系统中,如果发生解密错误,接收设备就不能正确地得到由发送设备加密的明文。换句话说,不能以一种可靠的方式在发送设备和接收设备间进行加密通信。
不必说,在密码系统中,明文能够正确地传送到目的方、并且对于第三方解密能够确保安全是十分必要的。
然而,虽然现有技术给出了用于生成不引起任何解密错误的NTRU参数的条件,但是这样的条件不能用公式表达,这就使得生成不引起任何解密错误的NTRU参数很困难。
此外,用于生成对于第三方解密是安全的并且不引起任何解密错误的NTRU参数的条件仍然是未知的。这使得加密设备和解密设备以一种安全可靠的方式进行加密通信是不可能的。
本发明考虑了上述问题,并且,本发明的首要目的是提供一种参数生成设备,其生成不引起任何解密错误的NTRU密码系统的参数。从而,加密设备和解密设备能够以一种安全可靠的方式进行加密通 信。
本发明的第二个目的是提供一种参数生成设备,其生成对于第三方解密是安全的并且不引起任何解密错误的NTRU密码系统的参数,从而,加密设备和解密设备能够以一种安全可靠的方式进行加密通信。
另外,本发明的第三个目的是提供一种加密系统、加密设备和解密设备,加密设备和解密设备能够用上述参数生成设备生成的参数以一种安全可靠的方式进行加密通信。
发明内容
根据本发明的一个方面的参数生成设备是一种用于生成NTRU密码系统的输出参数的参数生成设备,所述输出参数是不引起任何解密错误的参数集,该参数生成设备包含一个无错误输出参数生成单元,其用于基于预先提供的错误条件信息生成不引起任何解密错误的输出参数,所速错误条件信息指示不引起任何解密错误的条件。
该参数生成设备基于错误条件信息,输出作为不引起任何解密错误的参数集的NTRU密码系统的输出参数。因此,使用生成的输出参数来执行加密解密将不会发生解密错误。这使得提供一种用于生成不引起任何解密错误的NTRU密码系统的参数的参数生成设备成为可能。
优选地,无错误输出参数生成单元包含:临时参数生成单元,其用于基于错误条件信息生成不引起任何解密错误的临时参数集;和输出参数生成单元,其使用所述临时参数集,基于根据所述临时参数集计算出的格(lattice)常数来生成输出参数。此外,优选地,临时参数生成单元基于输入参数和错误条件信息,生成不引起任何解密错误的临时参数集,所述输入参数是从外部输入的NTRU密码系统的参数集。另外,优选地,输出参数生成单元使用临时参数集,基于安全确定信息和安全级别信息来生成输出参数,所述安全确定信息与格常数相关,所述安全级别信息指示防备第三方执行的解密的安全级别。
该参数生成设备能够生成这样的输出参数,以使与格常数相关的安全确定信息满足安全级别信息。因此,提供一种生成对于第三方解密是安全的和不引起任何解密错误的NTRU密码系统的参数的参数生成设备成为可能。
优选地,错误条件信息是用于不引起任何解密错误的条件表达式,其被表示为:
2·p·d+2df-1<q/2,
该条件表达式关于非负整数p、非负整数q、非负整数d和用于指定系数值等于1的私钥多项式f中的系数数目的非负整数df,所述非负整数用于NTRU密码系统。
如上所述,可以用公式表示用于生成不引起任何解密错误的参数的条件。从而,很容易地确定不引起任何解密错误的参数成为可能。
根据本发明的另一方面的加密系统是按照NTRU密码系统通过加密明文来生成密文的加密系统,该加密系统包括:参数生成设备,该设备包含无错误输出参数生成单元,该无错误输出参数生成单元用于基于预先提供的错误条件信息来生成不引起任何解密错误的输出参数,所述错误条件信息指示不引起任何解密错误的条件;公钥生成单元,该单元用于基于参数生成设备所生成的输出参数来生成公钥;和加密单元,该单元用于基于公钥来加密明文。
明文是用由参数生成设备生成的参数所导出的公钥来加密的。因此,在加密系统中能够生成无解密错误的密文。
根据本发明的另一个方面的解密系统是按照NTRU密码系统通过解密密文来生成已解密文本的解密系统,该解密系统包括:参数生成设备,该设备包含无错误输出参数生成单元,该无错误输出参数生成单元用于基于预先提供的错误条件信息来生成不引起任何解密错误的输出参数,所述错误条件信息指示不引起任何解密错误的条件;私钥生成单元,该单元用于基于参数生成设备生成的输出参数来生成私钥;和解密单元,该单元用于基于私钥来解密密文。
密文是使用由参数生成设备生成的参数所导出的私钥来解密的。因此,在解密系统中能够解密密文而不引起任何解密错误。
根据本发明的另一个方面的加密系统是使用NTRU密码系统的 加密系统,该系统包括:参数生成设备,其用于生成和输出作为不引起任何解密错误的参数集的NTRU密码系统的输出参数;密钥生成设备,其用于生成和输出NTRU密码系统的加密密钥和解密密钥;加密设备,其用于按照NTRU密码系统通过加密明文来生成密文;和解密设备,其用于通过解密密文来生成已解密文本。其中参数生成设备包括:临时参数生成单元,其用于基于预先提供的错误条件信息生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起任何解密错误的条件;和输出参数生成单元,其用于使用所述临时参数集、基于根据所述临时参数集计算出的格常数来生成输出参数,并且将所生成的输出参数输出。密钥生成设备包括已生成密钥输出单元,该单元用于使用从参数生成设备输入的输出参数来生成加密密钥和解密密钥,并且将所生成的加密密钥和解密密钥输出,加密设备包括加密单元,该单元用于使用从参数生成设备输入的输出参数和从密钥生成设备输入的加密密钥,通过加密明文来生成密文,且解密设备包括解密单元,该单元用于使用从参数生成设备输入的参数和从密钥生成设备生成的解密密钥,通过解密密文来生成已解密文本。
参数生成设备生成作为不引起任何解密错误的参数集的NTRU密码系统的输出参数。密钥生成设备使用输入的输出参数生成加密密钥和解密密钥。加密设备和解密设备分别使用加密密钥和解密密钥执行加密和解密,这使得可以提供没有解密错误发生的加密系统。
注意,不仅能够将本发明实施为包含上述特征单元的参数生成设备、加密系统、以及解密系统,而且也能够实施为包含上述特征单元的参数生成方法、加密方法、以及解密方法。而且,也能够将本发明实施为使计算机执行这些步骤的程序。还需要注意的是,该程序能够分布在诸如CD-ROM(Compact Disc-Read Only Memory,光盘只读存储器)这样的记录介质和诸如互联网这样的通信网络上。
根据本发明,能够提供一种生成对于第三方解密是安全的并且不引起任何解密错误的参数的参数生成设备,以便让加密设备和解密设备以一种安全可靠的方式进行加密通信。
此外,本发明也能够提供加密系统、加密设备、和解密设备,依 靠这些,加密设备和解密设备能够使用上述参数生成设备或参数转换设备生成的参数以一种安全可靠的方式进行加密通信。
如上所述,本发明能够提供现有技术不能实现的参数生成设备、加密系统、和解密系统,因此本发明非常有用。
作为关于该申请技术背景的进一步的信息,在这里引入2003年4月24日提交的日本专利申请NO.2003-119973作为参考。
附图说明
通过结合说明本发明的特定实施例的附图对本发明进行的下述描述,本发明的这些和其他目的、优点、特性将会变得更加清楚。图中:
图1是示出根据本发明的第一实施例的参数生成设备1的构造的图表;
图2是示出对于参数N所测量的解密时间T的数据的图表;
图3是说明根据本发明的第一实施例的存储在公式存储单元110中的公式和数据的图表;
图4是示出由根据本发明的第一实施例的参数生成设备1执行的处理过程的前半部分的流程图;
图5是示出由根据本发明的第一实施例的参数生成设备1执行的处理过程的后半部分的流程图;
图6是示出根据本发明的第二实施例的参数转换设备2的构造的图表;
图7是示出由根据本发明的第二实施例的参数转换设备2执行的处理过程的前半部分的流程图;
图8是示出由根据本发明的第二实施例的参数转换设备2执行的处理过程的后半部分的流程图;
图9是示出NTRU密码系统的安全级别信息和参数集的图表,其中所述NTRU密码系统达到由这样的安全级别信息所指示的安全级别;
图10是说明本发明的变化(1)的存储在公式存储单元110中的公 式和数据的图表;
图11是示出根据本发明的第三实施例的加密系统3的构造的图表;
图12是示出根据本发明的第三实施例的加密设备31的构造的图表;
图13是示出根据本发明的第三实施例的解密设备32的构造的图表;
图14是示出根据本发明的第三实施例的加密系统3的操作的流程图;
图15是示出根据本发明的第四实施例的加密系统4的构造的图表;
图16是示出根据本发明的第四实施例的加密设备41的构造的图表;
图17是示出根据本发明的第四实施例的解密设备42的构造的图表;以及
图18是示出根据本发明的第四实施例的加密系统4的操作的流程图。
具体实施方式
以下参照附图描述根据本发明的参数生成设备和参数转换设备的实施例。
根据本发明的参数生成设备和参数转换设备处理NTRU密码系统的参数(下文也称为“NTRU参数”)。文献2中详细描述了NTRU密码系统,因此这里只给出简短描述。
(1)NTRU参数
NTRU密码系统使用非负整数参数N、p、q、df、dg和d。以下是文献2中提到的三个NTRU参数的例子:(N,p,q,df,dg和d)=(107,3,64,15,12和5);(N,p,q,df,dg和d)=(167,3,128,61,20和18);和(N,p,q,df,dg和d)=(503,3,256,216,72和55)。
各个参数的意义描述如下。
(i)参数N
NTRU密码系统是用于通过执行多项式操作来执行加密和解密的公钥加密系统。参数N确定了在NTRU密码系统中使用的多项式的次数。
对于参数N,在NTRU密码系统中使用的多项式是次数为(N-1)或更小的整数系数多项式。例如,如果N=5,多项式可以是X^4+X^3+1等。这里“X^a”表示X的“a”次幂。此外,用于加密或解密的公钥h、私钥f、明文m、随机数r、和密文c分别用一个次数等于(N-1)或更小的多项式表示(下文中分别称其为公钥多项式h、私钥多项式f、明文多项式m、随机数多项式r、和密文多项式c)。
使用对于参数N的相关表达式“X^N=1”对多项式进行计算,以便使计算结果总是给出一个次数等于(N-1)或更小的多项式。例如,当N=5时,令“×”表示两个多项式的乘积,令“·”表示一个整数和一个多项式的乘积(或两个整数的乘积),用相关表达式“X^5=1”将多项式X^4+X^2+1和多项式X^3+X的乘积如下所示,这样总是能得到一个次数等于(N-1)或更小的多项式:
(X^4+X^2+1)×(X^3+X)
=X^7+2·X^5+2·X^3+X
=X^2×1+2·1+2·X^3+X
=2·X^3+X^2+X+2
(ii)参数p和q
NTRU密码系统使用非负整数参数p和q。如在文献2中指出的,这些参数p和q必须互质
(iii)参数df、dg和d
在NTRU密码系统中处理的私钥多项式f、在生成公钥多项式时与私钥多项式一起使用的随机多项式g、和用于加密明文的随机数多项式r的选择分别取决于参数df、dg和d。
首先,私钥多项式f选择的是df个系数等于“1”、(df-1)个系数等于“-1”、其他系数等于“0”的多项式。换句话说,随机多项式f是一个具有次数从0(常量)到(N-1)的N个系数的次数为(N-1)或更小 的随机数多项式。随机数多项式f选择的是从上述N个系数中选出的df个系数等于“1”、(df-1)个系数等于“-1”、(N-2df+1)个系数等于“0”的多项式。
同时,随机多项式g选择的是dg个系数等于“1”、dg个系数等于“-1”、其他系数等于“0”的多项式。此外,随机数多项式r选择的是d个系数等于“1”、d个系数等于“-1”、其他系数等于“0”的多项式。
(2)NTRU密码系统中的解密错误
在NTRU密码系统中,如果已加密多项式c是通过对明文多项式m加密生成的,那么通过解密已加密多项式c得到的已解密多项式m’有可能与明文多项式m不匹配。在这种情况下不能够正确地在解密时得到明文多项式m。这种不匹配称为解密错误。
文献2描述了如果多项式(p·r×g+f×m)中任何一个次数项的系数值不在从-q/2到q/2范围内时就会发生解密错误,其中多项式(p·r×g+f×m)是通过计算以下多项式得到的:用于生成公钥多项式h的随机多项式g;随机数多项式r;明文多项式m;和私钥多项式f。像文献5中所描述的一样,使用上述文献2中提到的三个参数可能引起解密错误,尽管其发生的概率很小(10^(-5)级)。
(第一实施例)
以下描述了根据本发明的第一实施例的参数生成设备1。
<参数生成设备1概况>
参照图1,首先描述参数生成设备1概况。
以下是预先提供给参数生成设备1的:格常数GL,用于具有某些参数的NTRU密码系统;解密时间估计公式EF,用于具有上述格常数GL的NTRU密码系统;条件表达式ED,用于生成不引起任何解密错误的参数;和初始安全确定公式IF。
作为从外部的输入,该参数生成设备1接收安全级别信息SLI,该安全级别信息指示NTRU密码系统中要达到的安全级别。该参数生成设备1是能够生成NTRU密码系统的参数集PS、并且将所生成的参数集PS输出到外面的设备,该NTRU密码系统(i)能够达到安全 级别信息SLI指示的安全级别,防备通过穷尽搜索的解密和通过使用LLL算法的解密,和(ii)通过使用预先提供的格常数GL、解密时间估计公式EF、条件表达式ED和初始安全确定公式IF,能够不引起任何解密错误。
这是参数生成设备1的概况,但是在说明怎样给出格常数GL、解密时间估计公式EF、条件表达式ED和初始安全确定公式IF之后,将更详细地说明该参数生成设备1。
<格常数GL、解密时间估计公式EF和条件表达式ED>
这里,首先详细描述格常数GL、解密时间估计公式EF和用于生成不引起任何解密错误的参数的条件表达式ED,接下来再讲述怎样给出它们。
NTRU密码系统中的解密时间估计公式EF是由NTRU参数df、dg和q确定的,并且按照从参数df、dg和q算出的格常数GL的值来分类,其中所述解密时间估计公式EF用于估计使用LLL算法进行解密所需要的解密时间T。按照文献3的描述,格常数GL是如下这样从NTRU参数df、dg和q中导出的:
GL=(4·pi·e·|f|·|g|/q)^(0.5)。
文献3更进一步描述了,在格常数GL固定时,在具有这些参数df、dg和q的NTRU密码系统中存在常数A和B,并且使用LLL算法执行解密所需要的解密时间T对于参数N满足如下解密时间估计公式EF:
EF:log(T)≥A·N+B。
这里,“log(T)”表示解密时间T的自然对数。此外“pi”指圆周率,“e”指自然对数基底,“|f|”指私钥多项式f的范数,“|g|”指随机多项式g的范数。更具体地说,
|f|=(2·df-1)^(0.5),
并且
|g|=(2·df)^(0.5)。
注意,文献3指出,当参数N的值很小时,在上述解密时间估计公式EF中的常数A、B能够通过测量解密时间T,然后求所测量 的数据片的近似值来得到。
同时,文献4指出,随着格常数GL的值的大小的增加,在NTRU密码系统中使用LLL算法解密变得越发困难。这里,假设某个格常数的值为GL1,
EF1:log(T)≥A·N+B(A和B是常数)
被提供为解密时间估计公式EF1,用于估计在有参数df、dg和q的NTRU密码系统中,使用LLL算法执行解密所需要的解密时间T,其中所述参数df、dg和q用来确定格常数GL1的值。根据上述讨论,从其他参数df、dg和q中导出的格常数GL的值如果比上述格常数GL1的值大,可以知道在有这样的其他参数df、dg和q的NTRU密码系统中执行解密所需要的解密时间T至少满足上述解密时间估计公式EF1。
文献2中指出,如果在NTRU密码系统中导出的多项式(p·r×g+f×m)的所有系数都在从-q/2到q/2的范围内,那么就可以正确地执行解密且不会出现解密错误。
首先,确定各个参数df、dg和q的值。这里,假设df=34、dg=34、q=512。然后,使用这些参数df、dg和q导出格常数GL,并且这个格常数GL预先提供给公式存储单元110。在上面的例子中,格常数GL为GL=2.12。
接下来,按照下面的方式确定解密时间估计公式EF,其用于估计在有参数df、dg和q的NTRU密码系统中执行解密所需要的解密时间T,所确定的解密时间T预先存储在公式存储单元110中。
更精确地说,当从参数df、dg和q确定的格常数GL的值为2.12或更大时,解密时间估计公式EF这样的公式,能够借助其来精确估计在NTRU密码系统中使用LLL算法执行解密所需要的解密时间T,而不低估它。
(i)当参数N取小值时导出解密时间T
首先,使用文献3给出的方法,对于所确定的参数df、dg和q,在使用LLL算法的情况下的解密时间T的测量数据片能够用实验方法确定。这里,图2中示出的每一片解密时间T的测量数据都是用处 理速度是1000 MIPS的计算机算出来的,且解密时间T是很短的时间。注意MIPS(Million Instruction Per Second每秒百万条指令)指示计算机的处理能力,1MIPS意味着计算机一秒中能够执行1百万个指令。这个例子指示能够测量当参数N取70~90之间的各个值时的解密时间。
(ii)近似导出解密时间估计公式
接下来,使用(i)中导出的测量数据片来确定下面的解密时间估计公式EF中的常数A和B:
EF:log(T)=A·N+B。
例如,通过用最小二乘法确定Y=A·X+B中的系数A和B来确定这些常数A和B,其中X=N,Y=log(T)。
这里,在图2所示的解密时间T的测量数据的情况中,常数A和B分别近似等于0.093和-3.8。
基本上,用上述方法确定的下面的解密时间估计公式EF可以提供给公式存储单元110:
EF:log(T)=0.093N-3.8。
但是,在下文将详述的第一实施例中,解密时间估计公式EF中的解密时间T的值是一个MIPSyear值。注意,MIPSyear指示计算机的吞吐量,1MIPSyear是一个能够以1MIPS的速度处理的计算机一年的处理量。
这样,上述解密估计公式EF在这里应该变换成其中解密时间T用MIPSyear值表示的公式。根据文献3中描述的方法,代表一个MIPSyear值的解密时间T这样来确定:用指示计算所测量的数据的计算机的处理能力1000MIPS的值乘以解密时间T,然后再将结果除以一年的秒数31557600(1年=365.25天)。
更具体地说,令T’=1000T/31557600,把T’代入上面解密时间估计公式EF得到下面变换后的解密时间估计公式EF:
EF:long(T’)=0.093N-14.2。
这个变换后的解密时间估计公式EF被提供给公式存储单元110。
注意最小二乘法是公知技术,因此这里不再详述。
接下来,将描述怎样给出条件表达式。
首先,假设p=3且dg>d。这里p的值是NTRU参数的典型值。
这时,下面的条件表达式ED预先提供给公式存储单元110。
ED:6·d+2·df-1<q/2。
这个条件表达式是用于生成理论上不引起任何解密错误的参数的表达式。
理由如下。
首先,如上所述,如果多项式p·r×g+f×m中的所有系数都在从-q/2到q/2的范围内,那么就不会出现解密错误。
这里,考虑多项式r×g,如文献2中所述,其乘积表示如下,其中多项式a中k次项的系数用a(k)表示:
(r×g)(k)
=r(0)·g(k)+r(1)·g(k-1)+...
+r(N-1)·g(k-(N-1)(mod N))
并且,随机数多项式r是d个系数等于“1”、d个系数等于“-1”、其他系数等于“0”的多项式。此外,随机多项式g是dg个系数等于“1”、dg个系数等于“-1”、其他系数等于“0”的多项式。
这样,由于多项式r×g中k次项的系数(r×g)(k)的值为dg>d,那么系数(r×g)(k)可以表示成:
(r×g)(k)
=1·g(i1)+1·g(i2)+...+1·g(id)
-1·g(j1)-1·g(j2)-...-1·g(jd)
如上,系数(r×g)(k)用d个1·g(in)项(1≤n≤d)和d个1·g(jn)项(1≤n≤d)表示。
这样,当所有的g(in)等于1(1≤n≤d),所有的g(jn)等于-1(1≤n≤d)时,(r×g)(k)取最大值。此外,该值最大为2d(最小值不超过-2d)。
这里,由于p=3,那么可以很明显从上面看出多项式p·r×g+f×m的最大系数值是3·2d+2df-1。此外,如果这个最大系数值不大于q/2,那么多项式p·r×g+f×m中的所有系数就都在从-q/2到q/2的范围内,且所以没有解密错误发生。
这样,可以导出下面的条件表达式ED:
ED:6·d+2·df-1<q/2。
根据上述讨论,如果满足这个条件表达式,理论上就不会发生解密错误。
<初始安全确定公式IF>
为了选择对于用穷尽搜索来解密是安全的参数df、dg和d,参数生成设备1首先要在第一参数生成单元102中,选择足够大到满足安全级别信息SLI的参数N(后面给出详述)。
为此目的,文献3中说明的一个示例的初始安全确定公式IF是一个估计公式,其用于估计NTRU密码系统中使用LLL算法进行解密所需要的解密时间,这里df=61、dg=20、q=128。更具体地说,初始安全确定公式IF表示如下
IF:log(T)=0.2002N-18.884。
这个初始安全确定公式IF预先提供给公式存储单元110。
初始安全确定公式IF是通过转换log(T)=0.2002N-7.608将得到的公式,log(T)=0.2002N-7.608是一个估计公式,其用于估计NTRU密码系统中使用LLL算法执行解密所需要的解密时间,这里df=61、dg=20、q=128,因此T指示一个MIPSyear值。
接下来详细描述参数生成设备1。
<参数生成设备1的构造>
如图1所示,参数生成设备1包括输入单元101、第一参数生成单元102、第二参数生成单元103、第三参数生成单元104、安全判断单元105、安全增强单元106、输出单元107、第一参数修改单元108、第二参数修改单元109和公式存储单元110。下面对这些组成元件进行说明。
(1)输入单元101
输入单元101从外部接收安全级别信息SLI,并且将这样的安全级别信息输出到第一参数生成单元102、第二参数生成单元103、安全增强单元106和第二参数修改单元109。
这里,安全级别信息SLI是指示在加密中要达到的安全级别、以 及指示例如加密的安全级别相当于1024位的RSA加密的信息。这里,安全级别信息SLI比如说可以是解密算法中执行处理的数量。下面给出的描述都假定SLI等于(10^12)MIPSyear。
(2)第一参数生成单元102
第一参数生成单元102从输入单元101接收安全级别信息SLI,从公式存储单元110读取初始安全确定公式IF,并且选择足够大到满足安全级别信息SLI的NTRU密码系统的参数N。然后,取参数q为p=3,其他参数q、df、dg和d临时取为0,第一参数生成单元102使用所选择的参数N生成参数集PS=(N,p,q,df,dg,和d),并输出该参数集PS到第二参数生成单元103。
更具体地说,选择参数N以便初始安全确定公式IF的值满足安全级别信息SLI所指示的安全级别。
举例来说,令安全级别信息SLI为(10^12)MIPSyear,存储在公式存储单元110中的初始安全确定公式IF为:
IF:log(T)=0.2202N-18.884,
计算以下公式可以得出N=233,其中安全级别信息SLI被代入T:
IF:log(10^12)=0.2002N-18.884。
(3)第二参数生成单元103
第二参数生成单元103从第一参数生成单元102或第一参数修改单元108接收参数集PS,并从输入单元101接收安全级别信息SLI。然后,第二参数修改单元使用下文介绍的方法基于包含在参数集PS中的参数N导出参数候选集DS。然后第二参数生成单元103判断参数候选集DS中是否有足够数目的元素用来选择参数df、dg和d(例如,元素的数目是否为3或更多)。当没有足够数目的元素时,第二参数生成单元103输出参数集PS到第一参数修改单元108。另一方面,当有足够数目的元素时,第二参数生成单元103从参数候选集DS中选择参数df、dg和d。然后,使用这些参数df、dg和d,参数生成单元103新生成参数集PS=(N,p,q,df,dg,和d),并将其输出到第三参数生成单元104。
下面描述导出参数候选集DS的方法和选择参数df、dg和d的方 法。
(i)导出参数候选集DS的方法
第二参数生成单元103导出满足以下关于安全级别信息SLI和参数N的不等式的参数候选集DS:
(C(N,k)·C(N-k,k))^(0.5)≥SLI,
其中整数k是(1≤k≤N)。这里,“C(a,b)”表示从a个数值里选择b个数值的组合模式的数目。
举例来说,参数候选集DS可以以下面描述的方式导出。第二参数生成单元103以升序从k=1到k=N/2里选择k,并将这个k代入上述不等式的左端。第二参数生成单元103将所有满足该不等式的k都作为参数候选集DS的元素。
注意,如文献5中所述,上述不等式的左侧表示当dg=k(或df=k)时,用穷尽搜索来解密NTRU密码系统的私钥所需要的解密时间,然而,它也表示当d=k时,用穷尽搜索来解密NTRU密码系统的明文所需要的解密时间。换句话说,通过在这里从参数候选集DS中选择参数df、dg和d,导出参数候选集DS,使得用穷尽搜索来解密明文和私钥所需要的解密时间能够满足由输入到输入单元101的安全级别信息所指示的安全级别。
(ii)选择参数df、dg和d的方法
第二参数生成单元103从参数候选集DS中随机选择满足dg>d的参数df、dg和d。这里,第二参数生成单元103从参数候选集DS中随机选择满足df>dg>g的参数,并将其赋给df、dg和d。
注意,当N是足够大的值时,参数候选集DS包含足够数目的元素用于选择参数df、dg和d。取SLI=10^12,当N=10时DS不包含任何元素,但当N=30时,DS={8,9,10,11,12}(从8到12的5个数),而当N=100时DS={4,5,6,…,50}(从4到50的47个数)。
(4)第三参数生成单元104
第三参数生成单元104从第二参数生成单元103接收参数集PS,从公式存储单元110读取用于生成不引起任何解密错误的参数的条件表达式ED,然后,第三参数生成单元104选择满足关于包含在参 数集PS中的参数df、dg和d的条件表达式ED并且是2的幂的最小参数q作为q。最后,第三参数生成单元104使用所选择的参数q来新生成参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105。
例如,令df=50、dg=24且d=16,条件表达式ED:
ED:6d+2df-1<(q/2)
给定q>294。因为512是满足条件表达式q>294且q=2^i(i是自然数)的最小值,所以参数q被认为q=512。注意参数q必须是2的幂的原因是要选择的参数p(p=3)和参数q必须互质。如文献2中所述,参数p和q互质是作为NTRU参数p和q的一个条件。
(5)安全判断单元105
安全判断单元105从第三参数生成单元104或第二参数修改单元109接收参数集PS。安全判断单元105使用参数df、dg和q从以下公式中为在参数集PS中有参数N、p、q、df和dg的NTRU密码系统导出格常数SL:
SL:(4·pi·e·|f|·|g|/q)^(0.5)。
这里,“pi”表示圆周率,“e”表示自然对数基底,“|f|”=(2df-1)^(0.5),且“|g|”=(2dg)^(0.5)。
安全判断单元105从公式存储单元110读取格常数GL,当GL≤SL时将参数集PS输出到安全增强单元106。如果GL>SL,安全判断单元105将将参数集PS输出到第二参数修改单元109。
(6)安全增强单元106
安全增强单元106从安全判断单元105接收参数集PS,以及从输入单元101接收安全级别信息SLI,并从公式存储单元110读取解密时间估计公式EF。而且,安全增强单元106从参数集PS中的参数N和解密时间估计公式EF导出在NTRU密码系统中执行解密所需要的解密时间T。
例如,取解密时间估计公式EF为
EF:log(T)=0.0093N-14.2,
当N=400时,解密时间T近似等于9.7×10^9。
安全增强单元106通过判断下面的是否满足,来判断上面导出的解密时间T是否达到安全级别信息SLI所指示的安全级别:
T≥SL1。
若T<SLI,安全增强单元106增大参数N,以便解密时间T满足T≥SLI。并且使用增大了的参数N新生成参数集PS=(N,p,q,df,dg,和d)。
例如,安全增强单元106可以通过计算以下公式来导出参数N从而生成新的参数集PS,该公式是将安全级别信息SLI代入解密时间估计公式EF中的T得到的:
EF:log(SLI)=0.040N-6.2。
安全增强单元106判断参数集PS中的参数N是否为质数。如果参数N不是质数,安全增强单元106增大参数N以便增大后的参数N成为质数,并且使用这个增大了的参数N生成新的参数集PS=(N,p,q,df,dg,和d)。
例如,在PS=(450,3,512,50,24,和16)的情况下,尽管参数N满足N=450,但其不是质数。所以,安全增强单元106使用超过450的所有质数中最小的数451作为参数N的新值并生成新的参数集PS=(451,3,512,50,24,和16)。
众所周知,如果参数N的值是合数,NTRU密码系统中的安全级别将降低,为了避免这种情况,就要进行上述处理。注意,文献1中说明了判断参数N是否是质数的方法,因此这里没有给出该方法的说明。
最后,安全增强单元106将参数集PS输出到输出单元107。
(7)输出单元107
输出单元107从安全增强单元106接收参数集PS,并将其输出到外部。
(8)第一参数修改单元108
第一参数修改单元108从第二参数生成单元103或第二参数修改单元109接收参数集PS,并将该参数集合PS中的参数N增大。这里例如,N可以加10。然后第一参数修改单元108使用增大了的参 数N生成新的参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到第二参数生成单元103。
(9)第二参数修改单元109
第二参数修改单元109从输入单元101接收安全级别信息SLI,以及从安全判断单元105接收参数集PS,并像第二参数生成单元103的情况一样,生成参数候选集DS。第二参数修改单元109比较参数集PS中的参数dg和参数候选集DS中所有元素的最大值M。如果dg<M,第二参数修改单元109将参数dg变成一个比参数候选集DS中包含的最大元素大的值,并使用改变后的参数dg来生成新的参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105。同时,如果dg≥M,第二参数修改单元109将参数集PS输出到第一参数修改单元108。
(10)公式存储单元110
如图3所示,公式存储单元110预先存储了格常数GL、解密时间估计公式EF、用于生成不引起任何解密错误的参数的条件表达式ED、以及初始安全确定公式IF。这里假设
GL=2.12
被给出作为格常数GL,
EF:log(T)=0.93N-14.2
被给出作为解密实践估计公式EF,
ED:6d+2df-1<(q/2)
被给出作为条件表达式ED,以及
IF:log(T)=0.2002N-18.884
被给出作为初始安全确定公式IF。
这里,解密时间估计公式EF,如上所述,是当从参数df、dg和q导出的格常数的值等于或大于前面的格常数GL时(在本例中是2.12或更大),可以用来精确估计使用LLL算法执行解密所需要的解密时间T的公式,而没有低估它。
另外,条件表达式ED,如上所述,是指示不引起任何解密错误的参数的条件的公式。同时,初始安全确定公式IF是用于在第一参 数生成单元102中选择足够大到满足安全级别信息SLI的参数N的公式,为选择参数df、dg和q作准备,其中所述参数df、dg和q对于用穷尽搜索进行解密是安全的。
<参数生成设备1的操作>
参照图4和5中示出的流程图,描述了具有上述构造的参数生成设备1的操作。
参数生成设备1在从外部接收到安全级别信息SLI时执行下面的操作,以下是预先提供给该参数生成设备1的:格常数GL,用于具有某些参数的NTRU密码系统;解密时间估计公式EF,用于具有上述格常数GL的NTRU密码系统,和条件表达式ED,用于生成不引起任何解密错误的参数。
输入单元101从外部接收安全级别信息SLI,并将该安全级别信息SLI输出到第一参数生成单元102、第二参数生成单元103、安全增强单元106和第二参数修改单元109(步骤S101)。
第一参数生成单元102从输入单元101中接收安全级别信息SLI,从公式存储单元110读取初始安全确定公式IF,并选择NTRU密码系统的参数N,该参数N足够大能够满足安全级别信息SLI(步骤S102)。
然后,对于所选择的参数N,取参数P=3,其他参数q、df、dg和d的值临时为0,第一参数生成单元102生成参数集PS=(N,p,q,df,dg,和d),并将该参数集PS输出到第二参数生成单元103(步骤S103)。
第二参数生成单元103从第一参数生成单元102或第一参数修改单元108接收参数集PS,并从输入单元101接收安全级别信息SLI(步骤S104)。
第二参数生成单元103生成参数候选集DS(步骤S105)。
然后,第二参数生成单元103判断DS中是否有足够数目的元素来选择参数df、dg和d(步骤S106)。
当DS元素的数目不足时(步骤S106中为是),第二参数生成单元103将参数集PS输出到第一参数修改单元108(步骤S107)。
第一参数修改单元108从第二参数生成单元103或第二参数修改单元109接收参数集PS,增大包含在该参数集PS中的N,使用增大了的N生成新的参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到第二参数生成单元103,然后处理返回步骤S104(步骤S108)。
当元素的数目足够时(步骤S106中为否),第二参数生成单元103从参数候选集DS中选择参数df、dg和d,然后使用所选择的参数df、dg和d,第二参数生成单元103新生成参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到第三参数生成单元104(步骤S109)。
第三参数生成单元104从第二参数生成单元103接收参数集PS,并从公式存储单元110读取用于生成不引起任何解密错误的参数的条件表达式ED(步骤S110)。
然后,第三参数生成单元104选择满足关于包含在参数集PS中的参数df、dg和d的条件表达式ED并且是2的幂的最小参数q作为参数q。最后,第三参数生成单元104使用所选择的参数q来新生成参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105(步骤S111)。
安全判断单元105从第三参数生成单元104或第二参数修改单元109接收参数集PS,并且为在参数集中有N、p、q、df和dg的NTRU密码系统导出格常数SL(步骤S112)。
安全判断单元105从公式存储单元110中读取格常数GL并判断是否满足GL≤SL(步骤S113)。
若GL≤SL(步骤S113中为是),那么安全判断单元105将参数集PS输出到安全增强单元106(步骤S114)。
安全增强单元106从安全判断单元105接收参数集PS,以及从输入单元101接收安全级别信息SLI,并从公式存储单元110读取解密时间估计公式EF(步骤S115)。
此外,安全增强单元106从参数集PS中的参数N和解密时间估计公式EF导出NTRU密码系统中执行解密所需要的解密时间T(步骤 S116)。
安全增强单元106判断上面导出的解密时间T是否满足T<SLI(步骤S117)。
若T<SLI(步骤S117中为是),安全增强单元106增大参数N,以便解密时间T满足T≥SLI,并使用增大了的N来新生成参数集PS=(N,p,q,df,dg,和d)(步骤S118)。
若T≥SLI(步骤S117中为否),在执行了步骤S118中的处理之后,安全增强单元106判断参数N是否是质数(步骤S119)。
当参数N不是质数时(步骤S119中为否),安全增强单元106增大参数N以便增大了的参数N成为质数,并且使用这样增大了的参数N来生成新的参数集PS=(N,p,q,df,dg,和d)(步骤S120)。
当参数N是质数时(步骤S119中为是),在执行用于将参数N增大为质数的处理(步骤S120)之后,安全增强单元106将参数集PS输出到输出单元107(步骤S121)。
输出单元107从安全增强单元106接收参数集PS,并将该参数集PS输出到外部,并结束处理(步骤S122)。
若GL>SL(步骤S113中为否),第二参数修改单元109从输入单元101接收安全级别信息SLI,以及从安全判断单元105接收参数集PS,并生成参数候选集DS(步骤S123)。
第二参数修改单元109比较参数集PS中的参数dg和参数候选集DS中所有元素的最大值M(步骤S124)。
若dg<M(步骤S124中为是),第二参数修改单元109将参数dg变成比参数候选集DS中包含的最大元素还大的一个值,并使用改变后的参数dg来生成新的参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105(步骤S125)。接下来,处理返回到步骤S112。
若dg≥M(步骤S124中为否),第二参数修改单元109将参数集PS输出到第一参数修改单元108(步骤S 126)。接下来,处理返回到步骤S108。
<参数生成设备1的操作的验证>
下面描述根据第一实施例的参数生成设备1的总体操作。
首先,第一参数生成单元102选择足够大到满足安全级别信息SLI的参数N(步骤S102)。
接下来,第二参数生成单元103生成参数候选集DS,作为用于达到安全级别信息SLI所指示的安全级别的参数候选集(步骤S105)。此外,第二参数生成单元103从参数候选集DS中的元素中选择能够达到安全级别信息SLI所指示的安全级别的参数df、dg和d(步骤S109)。
注意当参数候选集DS中没有足够数目的元素时,第一参数修改单元108增大N(步骤S108)。总的来说,如上所述,因为参数候选集DS中的元素的数目随着参数N的值的增大而变大,所以必定能够选择参数df、dg和d。
此外,通过第三参数生成单元104选择满足条件表达式ED的参数q以生成不引起任何解密错误的参数,参数集PS=(N,p,q,df,dg,和d)的值就确定了(步骤S111)。
如果这里选择满足条件表达式ED的值作为参数q的值,那么这样选择的值通常会比文献2和文献3中描述的NTRU密码系统中的参数q的值大。换句话说,因为格常数GL的值变小,与文献2和3中描述的使用相等数量级的参数df、dg和d的NTRU密码系统相比,对于使用LLL算法来解密,就可能有一个降低的安全级别(更短的解密时间)。
响应于此,基于预先存储的格常数GL,通过使用与该预先存储的格常数GL相关的解密时间估计公式EF,安全判断单元105判断是否能够估计在具有生成的参数集PS的NTRU密码系统中执行解密所需要的解密时间(步骤S113)。如果可以,安全增强单元106增大N以便能够达到安全级别信息SLI所指示的安全级别。
注意,当NTRU密码系统中的解密时间不能够通过基于预先存储的格常数GL的解密时间公式来估计时,第二参数修改单元109试图使得能够通过增大参数dg的值(步骤S125)从而增大具有这样的参数的NTRU密码系统的格常数的值,来用解密时间估计公式EF估计 解密时间。如果解密时间估计公式仍然不能够用于估计解密时间,第一参数修改单元108增大参数N(步骤S108),以再一次生成参数df、dg、d和q(从步骤S109的的后续步骤)。
这里,如果参数N取一个很大的值,通常参数候选集DS就会有更大量的元素。这样,当在步骤S109中再次选择参数df、dg和d时,只有参数dg需要取一个更大的值,其他参数df和d的值保持不变。因为参数dg的值不影响用于决定解密错误发生的条件表达式,因此,就有可能通过增大格常数GL的值,使用解密时间估计公式EF来估计解密时间,同时确保无解密错误的通信。
如上所述,本发明能够通过仅有限次数地重复处理,生成有下述特征的NTRU密码系统的参数集PS:达到由输入的安全级别信息SLI所指出的安全级别的参数集PS对于通过穷尽搜索的解密和使用LLL算法的解密,能够确保安全;参数集PS不引起任何解密错误。
<第一实施例达到的效果>
现有技术不可能生成对于第三方解密是安全的并且不引起任何解密错误的NTRU参数,这是因为生成这样的参数的条件是未知的。这使加密设备和解密设备以一种安全可靠的方式执行加密通信是不可能的。
然而,如上所述,因为根据本发明的参数生成设备确定了理论上不引起任何解密错误的参数q,并确定了达到输入的安全级别的参数N,所以就有可能生成确保安全并在理论上不引起任何解密错误的NTRU参数。
(第二实施例)
以下描述根据本发明的第二实施例的参数转换设备2,主要关注与根据第一实施例的参数生成设备1的不同之处。
<参数转换设备2的概况>
参照图6,首先给出了本实施例的概况的说明。
该参数转换设备2是作为根据本发明的第一实施例的参数生成设备1的变形的一种参数转换设备。其与参数生成设备1的区别是,当接收到NTRU密码系统的参数集IPS作为输入时,参数转换设备2 在将其转换成NTRU密码系统的参数集PS后,输出这个参数集IPS,所述参数集PS(i)达到输入的安全级别信息SLI所指示的安全级别,以确保安全,防止通过穷尽搜索的解密和使用LLL算法的解密,且(ii)不引起任何解密错误。
注意,像根据第一实施例的参数生成设备1的情况一样,以下是预先提供给参数转换设备2的:格常数GL,用于具有某些参数的NTRU密码系统;解密时间估计公式EF,用于具有上述格常数GL的NTRU密码系统;以及条件表达式ED,用于生成不引起任何解密错误的参数。
<参数转换设备2的构造>
如图6所示,参数转换设备2包括:输入单元101b、第二参数生成单元103b、第三参数生成单元104b、安全判断单元105、安全增强单元106、输出单元107、第一参数修改单元108、第二参数修改单元109和公式存储单元110。
参数转换设备2在以下几点不同于根据第一实施例的参数生成设备1:输入单元101b不同;没有第一参数生成单元;第二参数生成单元103b的输入/输出不同;第三参数生成单元104b的输入/输出不同。
下面将描述参数转换设备2,关注其与参数生成设备1的不同。
(1)输入单元101b
输入单元101b从外部接收NTRU密码系统的安全级别信息SLI和参数集IPS,并将这个安全级别信息SLI输出到第二参数生成单元103b和第二参数修改单元109。此外,输入单元101b将参数集IPS作为参数集PS输出到第三参数生成单元104b。
(2)第二参数生成单元103b
第二参数生成单元103b从第一参数修改单元108接收参数集PS,并从输入单元101b接收安全级别信息SLI。然后,第二参数生成单元103b以与第二参数生成单元103相同的方式生成参数候选集DS。然后,第二参数生成单元103b以与第二参数生成单元103相同的方式判断参数候选集DS中是否有足够数目的元素来选择参数df、 dg和d(即,元素数目是否为3或更多)。当没有足够数目的元素时,第二参数生成单元103b将参数集PS输出到第一参数修改单元108。另一方面,当有足够数目的元素时,第二参数生成单元103b从参数集DS中选择参数df、dg和d。然后,第二参数生成单元103b使用所选择的参数df、dg和d来新生成参数集PS=(N,p,q,df,dg,和d),并将其输出到第三参数生成单元104b。
(3)第三参数生成单元104b
第三参数生成单元104b从输入单元101b或第二参数生成单元103b接收参数集PS,并从公式存储单元110读取用于生成不引起任何解密错误的参数的条件表达式ED。然后,第三参数生成单元104b以与第三参数生成单元104相同的方式,选择满足关于包含在参数集PS中的参数df、dg和d的条件表达式ED并且是2的幂的最小参数q作为参数q。最后,第三参数生成单元104b使用所选择的参数q来新生成参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105。
<参数转换设备2的操作>
参照图7和8中所示的流程图,描述了具有上述构造的参数转换设备2的操作。
像根据第一实施例的参数生成设备1一样,以下是预先提供给参数转换设备2的:格常数GL,用于具有某些参数的NTRU密码系统;解密时间估计公式EF,用于具有上述格常数GL的NTRU密码系统;以及条件表达式ED,用于生成不引起任何解密错误的参数。参数转换设备2在从外部接收到安全级别信息SLI和参数集IPS时执行下面的操作。
输入单元101b从外部接收NTRU密码系统的安全级别信息SLI和参数集IPS,并将这个安全级别信息SLI输出到第二参数生成单元103b、安全增强单元106和第二参数修改单元109。此外,输入单元101b将参数集IPS作为参数集PS输出到第三参数生成单元104b,然后处理转到步骤S210(步骤S201)。
第二参数生成单元103b从第一参数修改单元108接收参数集 PS,并从输入单元101b接收安全级别信息SLI(步骤S204)。
第二参数生成单元103b生成参数候选集DS(步骤S205)。
第二参数生成单元103b判断参数候选集DS中是否有足够数目的元素来选择参数df、dg和d(步骤S206)。
当参数集DS中包含足够数目的元素时(步骤S206中为是),第二参数生成单元103b将参数集PS输出到第一参数修改单元108(步骤S207)。
第一参数修改单元108从第二参数生成单元103b或第二参数修改单元109接收参数集PS,增大这个参数集PS中的参数N,使用增大了的参数N来生成新的参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到第二参数生成单元103b。然后处理返回到步骤S204(步骤S208)。
参数集DS中没有足够数目的元素时(步骤S206中为否),第二参数生成单元103b从参数候选集DS中选择参数df、dg和d。然后,使用所选择的参数df、dg和d,参数生成单元103b新生成参数集PS=(N,p,q,df,dg,和d),并将其输出到第三参数生成单元104b(步骤S209)。
第三参数生成单元104b从输入单元101b接收参数集PS并从公式存储单元110读取用于生成不引起任何解密错误的参数的条件表达式ED(步骤S210)。
然后,第三参数生成单元104b选择满足关于参数集PS中的参数df、dg和d的条件表达式ED并且是2的幂的最小参数q作为参数q。最后,第三参数生成单元104b使用所选择的参数q来新生成参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105(步骤S211)。
安全判断单元105从第三参数生成单元104b或第二参数修改单元109接收参数集PS,并为在参数集PS中有参数N、p、q、df和dg的NTRU密码系统导出格常数SL(步骤S212)。
安全判断单元105从公式存储单元110读取格常数GL,并判断GL≤SL是否满足(步骤S213)。
若GL≤SL(步骤S213中为是),安全判断单元105将参数集PS输出到安全增强单元106(步骤S214)。
安全增强单元106从安全判断单元105接收参数集PS,以及从输入单元101b接收安全级别信息SLI,并从公式存储单元110读取解密时间估计公式EF(步骤S215)。
另外,安全增强单元106从参数集PS中的参数N和解密时间估计公式EF导出NTRU密码系统中执行解密所需要的解密时间T(步骤216)。
安全增强单元106判断上面导出的解密时间T是否满足T<SLI(步骤217)。
若T<SLI(步骤S217中为是),安全增强单元106增大参数N,以便解密时间T满足T≥SLI,并使用增大了的参数N来新生成参数集PS=(N,p,q,df,dg,和d)(步骤S218)。
若T≥SLI(步骤S217中为否),在执行了步骤S218中的处理之后,安全增强单元106判断参数N是否是质数(步骤S219)。
当参数N不是质数时(步骤S219中为否),安全增强单元106增大参数N以便增大了的参数N成为质数,并且使用这样增大了的参数N来生成新的参数集PS=(N,p,q,df,dg,和d)(步骤S220)。
当参数N是质数时(步骤S219中为是),在执行了用于使参数N成为质数的处理(步骤S220)之后,安全增强单元106输出参数集PS到输出单元107。
输出单元107从安全增强单元106接收参数集PS,并将该参数集PS输出到外部,并结束处理(步骤S222)。
若GL>SL(步骤S213中为否),第二参数修改单元109从输入单元101b接收安全级别信息SLI,以及从安全判断单元105接收参数集PS,并生成参数候选集DS(步骤S223)。
第二参数修改单元109比较参数集PS中的参数dg和参数候选集DS中所有元素的最大值M(步骤S224)。
若dg<M(步骤S224中为是),第二参数修改单元109将参数dg变成一个比参数候选集DS中包含的最大元素还大的值,并使用改变 后的参数dg来生成新的参数集PS=(N,p,q,df,dg,和d),并将所生成的参数集PS输出到安全判断单元105(步骤S225)。接下来,处理返回到步骤S212。
若dg≥M(步骤S224中为否),第二参数修改单元109将参数集PS输出到第一参数修改单元108(步骤S226)。接下来,处理返回到步骤S208。
<参数转换设备2的操作的验证>
下面描述根据第二实施例的参数转换设备2的总体操作。
首先,输入单元101b将NTRU密码系统的参数集IPS作为参数集PS输出到第三参数生成单元104b(S201)。
然后,就像第一实施例一样,第二参数生成单元103b生成参数候选集DS作为借此达到安全级别信息SLI所指示的安全级别的参数候选集,以对于在NTRU密码系统中通过穷尽搜索进行解密,能够确保安全(步骤S205)。
此外,通过第三参数生成单元104b选择满足用于生成不引起任何解密错误的参数的条件表达式ED的参数q,参数集PS=(N,p,q,df,dg,和d)的值就确定了(步骤S211)。
这里,就像第一实施例一样,如果选择满足条件表达式ED的值作为参数q的值,那么对于使用LLL算法来解密,就可能有一个降低的安全级别(更短的解密时间)。响应于此,基于预先存储的格常数GL,通过使用基于这个预先存储的格常数GL的解密时间估计公式EF,安全判断单元105判断是否能够估计在具有生成的参数集PS的NTRU密码系统中执行解密所需要的解密时间(步骤S213)。如果可以,安全增强单元106增大参数N以便能够达到安全级别信息SLI所指示的安全级别。(步骤S218)。
注意,当不能时,第二参数修改单元109试图使得能够通过增大参数dg的值(步骤S225)从而增大具有这样的参数的NTRU密码系统的格常数的值,来用解密时间估计公式EF估计解密时间。如果解密时间估计公式EF仍然不能够估计解密时间,第一参数修改单元108将增大参数N(步骤S208),以再一次生成参数df、dg、d和q(从步骤 S209的的后续步骤)。
这里,如果参数N取一个很大的值,参数候选集DS就会有更大量的元素。这样,当再一次选择参数df、dg和d时(步骤S209),只有参数dg需要取一个更大的值,其他参数df和d的值保持不变。因为参数dg的值不影响用于决定解密错误发生的条件表达式,因此,就有可能通过增大格常数GL的值,使用解密时间估计公式EF来估计解密时间,同时确保无解密错误的通信。
如上所述,本发明能够通过仅有限次数地重复处理,将输入的NTRU密码系统的参数IPS转换成具有以下特征的NTRU密码系统的参数集PS:达到输入的安全级别信息SLI所指示的安全级别的参数集PS对于通过穷尽搜索的解密和使用LLL算法的解密,能够确保安全;参数集PS不引起任何解密错误。
<第二实施例达到的效果>
现有技术不可能生成对于第三方解密是安全的并且不引起任何解密错误的NTRU参数,因为生成这样的参数的条件是未知的。这使得加密设备和解密设备以一种安全可靠的方式执行加密通信是不可能的。
然而,如上所述,因为根据本发明的参数转换设备为输入的NTRU参数确定了参数q使得理论上不会发生解密错误,并确定了达到输入的安全级别的参数N,所以就有可能生成确保安全并且理论上不引起任何解密错误的NTRU参数。
(第三实施例)
以下描述根据本发明的第三实施例的加密系统3。
<加密系统3的构造>
如图11所示,加密系统3由加密设备31、解密设备32和通信信道33组成,是一个使用NTRU参数执行加密通信的系统,其中所述NTRU参数由根据第一实施例的参数生成设备1或根据第二实施例的参数转换设备2生成,对于第三方解密是安全的并且不引起任何解密错误。
<加密设备31的构造>
参照图12,加密设备31是用于通过加密明文多项式m来生成密文多项式c的设备,由参数存储单元311、公钥存储单元312和加密单元313组成。
(1)参数存储单元311
参数存储单元311预先存储NTRU参数,即参数N、参数p、参数q、参数df、参数dg和参数d,这些参数由根据第一实施例的参数生成设备1或根据第二实施例的参数转换设备2生成。
(2)公钥存储单元312
公钥存储单元312存储已经预先得到的解密设备32的公钥多项式h。
公钥多项式h是由对于参数N,次数为(N-1)或更小的多项式表示的多项式。
(3)加密单元313
加密单元313从参数存储单元311接收参数N、参数p、参数q和参数d,从公钥存储单元312接收公钥多项式h,并从外部接收明文多项式m,其中所述明文多项式m是由对于参数N,次数为(N-1)或更小的多项式表示的多项式。
使用参数N和参数d,加密单元313随机选择一个次数为(N-1)的随机数多项式r,其d个系数等于“1”、d个系数等于“-1”、其他系数等于“0”。
加密单元313使用随机数多项式r、公钥多项式h、参数N、参数p和参数q,对明文多项式m执行NTRU密码系统的加密,以便确定密文多项式c。
在文献2中详细描述了确定密文多项式c的方法,因此这里没有给出说明。加密单元313将密文多项式c通过通信信道33传送给解密设备32。
<解密设备32的构造>
参照图13,解密设备32是用于通过解密密文多项式c来计算已解密文本多项式m’的设备,由参数存储单元321、密钥生成单元322、私钥存储单元323和解密单元324组成。
(1)参数存储单元321
参数存储单元321存储与加密设备31的参数存储单元311中存储的参数相同的NTRU参数。
更具体地说,参数存储单元321预先存储了参数N、参数p、参数q、参数df、参数dg和参数d,这些参数与存储在参数存储单元311中的参数是相同的。
(2)密钥生成单元322
密钥生成单元322从参数存储单元321接收参数N、参数p、参数q、参数df和参数dg,并使用参数N、参数p、参数q、参数df和参数dg来生成均由次数为(N-1)或更小的多项式表示的私钥多项式f和公钥多项式h。注意,在文献2中详细描述了生成私钥多项式f和公钥多项式h的方法,因此这里没有给出说明。
然后,密钥生成单元322通过将公钥多项式h公开来使加密设备31获得该公钥多项式h。此外,公钥生成单元322将私钥多项式f存储到私钥存储单元323中。
(3)私钥存储单元323
私钥存储单元323预先存储解密设备32的私钥多项式f。
该私钥多项式f由对于参数N,次数为(N-1)或更小的多项式来表示。
(4)解密单元324
解密单元324从参数存储单元321接收参数N、参数p和参数q,从私钥存储单元323接收私钥多项式f,通过通信信道33从加密设备31接收密文多项式c。
解密单元324通过使用私钥多项式f、参数N、参数p和参数q,对密文多项式c执行NTRU密码系统的解密,以便确定已解密文本多项式m’。在文献2中详细描述了执行NTRU密码系统的解密的方法,因此这里没有给出说明。
解密单元324将这样生成的已解密文本多项式m’输出到外部。
<加密系统3的操作>
下面描述具有上述构造的加密系统3的操作。图14是示出加密 系统3的操作的流程图。
在加密系统3中,在由第一实施例的参数生成设备1或第二实施例的参数转换设备2生成的NTRU参数中,最后参数N、参数p、参数q和参数d存储在加密设备31的参数存储单元311中,且至少参数N、参数p、参数q、参数df和参数dg存储在解密设备32的参数存储单元321中(步骤S301)。
解密设备32的密钥生成单元322从参数存储单元321接收参数N、参数p、参数q、参数df和参数dg。然后,密钥生成单元322生成私钥多项式f和公钥多项式h,并且将公钥多项式h公开,以使加密单元31获得该公钥多项式h。此外,密钥生成单元322将私钥多项式f存储到私钥存储单元323中(步骤S302)。
加密设备31的公钥存储单元312得到解密设备32的公钥多项式h并将其存储存储(步骤S303)。
加密设备31的加密单元313从参数存储单元311接收参数N、参数p、参数q和参数d,从公钥存储单元312接收公钥多项式h,并从外部接收明文多项式m,其中明文多项式m是由对于参数N,次数为(N-1)或更小的多项式表示的(步骤S304)。
使用参数N和参数d,加密设备31的加密单元313随机选择一个次数为(N-1)的随机数多项式r,其d个系数等于“1”、d个系数等于“-1”、其他系数等于“0”。加密单元313使用随机数多项式r、公钥多项式h、参数N、参数p和参数q,对明文多项式m执行NTRU密码系统的加密,以便确定密文多项式c(步骤S305)。
加密设备31的加密单元313将密文多项式c通过通信信道33传送给解密设备32(步骤S306)。
解密设备32的解密单元324从参数存储单元321接收参数N、参数p和参数q,从私钥存储单元323接收私钥多项式f,并通过通信信道33从加密设备31接收密文多项式c(步骤S307)。
解密设备32的解密单元324使用私钥多项式f、参数N、参数p、参数q,对密文多项式c执行NTRU密码系统的解密,以便确定已解密文本多项式m’(步骤S308)。
然后,解密设备32的解密单元324将已解密文本多项式m’输出到外部。并结束处理(步骤S309)。
<加密系统3的操作的验证>
首先,解密设备32使用由第一实施例的参数生成设备1或第二实施例的参数转换设备2生成的NTRU参数,来生成私钥多项式f和公钥多项式h(步骤S302)。
然后,加密设备31使用由第一实施例的参数生成设备1或第二实施例的参数转换设备2生成的NTRU参数,来加密明文多项式m(步骤S305)。
如上所述,使用由第一实施例的参数生成设备1或第二实施例的参数转换设备2生成的NTRU参数,执行私钥多项式f和公钥多项式h的生成以及加密。因此,可以说根据本实施例的加密通信对于第三方解密是安全的,并且在该加密通信中没有解密错误发生。
<第三实施例达到的效果>
现有技术不可能生成对于第三方解密是安全的并且不引起任何解密错误的NTRU参数,因为生成这样的参数的条件是未知的。这使得加密设备和解密设备以一种安全可靠的方式执行加密通信是不可能的。
然而,如上所述,在根据本发明的加密系统中,因为是使用由第一实施例的参数生成设备1或第二实施例的参数转换设备2生成的NTRU参数来执行私钥多项式f和公钥多项式h的生成以及加密,所以加密设备和解密设备就有可能以一种安全可靠的方式进行加密通信。
(第四实施例)
以下描述根据本发明的第四实施例的加密系统4。
<加密系统4的构造>
如图15所示,加密系统4由加密设备41、解密设备42和通信信道33和43组成。
<加密设备41的构造>
参照图16,加密设备41是用于通过加密明文多项式m来生成密 文多项式c的设备,由参数生成设备1、加密单元313和公钥存储单元411组成。
(1)参数生成设备1和加密单元313
参数生成设备1的构造与第一实施例的参数生成设备1相同,加密单元313的构造与第三实施例的加密单元313相同。
(2)公钥存储单元411
公钥存储单元411是用于接收和存储解密设备42的公钥多项式h的存储单元。
<通信信道43的结构>
通信信道43是一个安全的通信信道,用于在加密设备41和解密设备42之间接收/传送参数集PS。
<解密设备42的构造>
参照图17,解密设备42是用于通过解密密文多项式c来确定已解密文本多项式m’的设备,由参数接收单元421、密钥生成单元422、私钥存储单元323和解密单元324组成。
(1)参数接收单元421
参数接收单元421是接收由加密设备41的参数生成设备1生成的NTRU参数的处理单元。
(2)密钥生成单元422
密钥生成单元422是一个处理单元,除了第三实施例的密钥生成单元322的构造之外,还被构造成通过通信信道33将所生成的公钥多项式h传送给加密设备41。
(3)私钥存储单元323和解密单元324
私钥存储单元323和解密单元324以与第一实施例相同的方式被构造,因此,这里省略其详述。
<加密系统4的操作>
以下描述具有上述构造的加密系统4的操作。图18是示出加密系统4的操作的流程图。
加密设备41的参数生成设备1生成NTRU参数(参数N、参数p、参数q、参数d、参数df和参数dg)(步骤S401)。
解密设备42的参数接收单元421从参数生成设备1接收参数N、参数p、参数q、参数df和参数dg(步骤S402)。
密钥生成单元422从参数接收单元421得到参数N、参数p、参数q、参数df和参数dg,并生成私钥多项式f和公钥多项式h。然后,私钥生成单元422将公钥多项式h传送给加密设备41的公钥存储单元411,而将私钥多项式f存储到私钥存储单元323中(步骤S403)。
加密设备41的公钥存储单元411得到解密设备32的公钥多项式h并将其存储(步骤S404)。
加密设备41的加密单元313从参数生成单元1接收参数N、参数p、参数q和参数d,从公钥存储单元411接收公钥多项式h,并从外部接收明文多项式m。明文多项式m是由对于参数N,次数为(N-1)或更小的多项式表示的(步骤S405)。
使用参数N和参数d,加密设备41的加密单元313随机选择一个次数为(N-1)随机数多项式r,其d个系数等于“1”、d个系数等于“-1”、其他系数等于“0”。然后,加密单元313使用随机数多项式r、公钥多项式h、参数N、参数p和参数q,对明文多项式m执行NTRU密码系统的加密,以便确定密文多项式c(步骤S406)。
加密设备41的加密单元313将密文多项式c通过通信信道33传送给解密设备42(步骤S407)。
解密设备42的解密单元324从参数接收单元421接收参数N、参数p和参数q,从私钥存储单元323接收私钥多项式f,并通过通信信道33从加密设备41接收密文多项式c(步骤S408)。
解密设备42的解密单元324使用私钥多项式f、参数N、参数p和参数q,对密文多项式c执行NTRU密码系统的解密,以便确定已解密文本多项式m’(步骤S409)。
然后,解密设备42的解密单元324将已解密文本多项式m’输出到外部,并结束处理(步骤S410)。
根据本实施例,不像第三实施例的加密系统3,明文多项式m的加密和密文多项式c的解密是通过使用由加密设备1的参数生成设备1动态生成的参数来执行的,而不是通过使用预先生成并存储在参数 存储单元311和421中的参数来执行的。这使得周期性地改变参数是可能的,从而提高了加密通信的安全。
<变化>
尽管本发明是参照附图的实例来描述的,但是应当注意到,很多改变和修改对本领域的技术人员是显而易见的。所以,除非另外这样的改变和修改不在本发明的范围内,否则就应该认为其包括在里面。下述变化也在本发明范围内。
(1)如图10所示,公式存储单元110中可以存储多于一对格常数GL和解密时间估计公式EF,安全判断单元105可以从中读出一对满足GL≤SL的解密时间估计公式EF和格常数GL。
此外,公式存储单元110中存储的格常数GL和解密时间估计公式EF可以在后面发生改变。
(2)第一参数生成单元102选择参数N的方法不局限于上面描述的方法,所以只要能够取足够大的值作为N值的任何方法都是可行的。例如,为单调递增的函数F如F(x)=10·log(x)满足N=L(SLI)的参数N是可选择的。另外,参数N也可以是固定的值。
(3)第二参数生成单元103选择参数df、dg和d的方法不局限于上面描述的方法,所以任何方法都是可行的,只要满足dg>d,并且只要防备用穷尽搜索解密的私钥的安全级别和明文的安全级别等同于安全级别信息SLI指示的安全级别。
(4)此外,作为生成参数集PS中的参数q、df、dg和d的方法,除了其中第二参数生成单元103使用上面描述的方法来选择参数df、dg和d和第三参数生成单元104将这些参数df、dg和d的值代入到条件表达式ED中以便确定参数q的值的方法外,可以使用这样的方法,其中基于从预先从外部提供的条件表达式ED和参数q的值导出的关系表达式,选择参数df、dg和d以便满足df>d。
更具体地说,假设预先从外部提供的q满足q=256的情况。在这种情况下,参数集PS中的参数q、df、dg和d可以通过选择满足从条件表达式ED和参数q的值中导出的下述条件表达式且满足dg>d的参数df、dg和d来生成:
6d+2df-1<128。
在这种情况下,使用这些参数df、dg和d,用穷尽搜索解密私钥和明文所需要的解密时间不满足安全级别信息SLI所指示的安全级别。这样,在安全增强单元106增大参数N,以便用LLL算法执行解密所需要的解密时间T能够达到上述安全级别信息SLI所指示的安全级别之后,可以增大参数N以便用穷尽搜索来解密私钥和明文所需要的解密时间能够达到,就像在第二参数生成单元103的构造说明中所描述的一样。
此外,在增大参数N以便用穷尽搜索来解密私钥和明文所需要的解密时间能够达到上述安全级别信息SLI所指示的安全级别之后,可以增大参数N以便在LLL算法情况下的解密时间T能够达到安全级别信息SLI所指示的安全级别。
(5)第三参数生成单元104选择参数q的方法不局限于上面描述的方法,所以任何方法都可以使用,只要所选择的参数q满足条件表达式ED并且参数q与参数p互质。
(6)第一参数生成单元102生成的参数p和参数转换设备2处理的参数集IPS和PS中包括的参数p并不局限于p=3,所以也可以使用满足其他方程的参数p。
例如,如果要存储在公式存储单元110中的条件表达式ED如下,那么也可以达到相同的效果,对于某个非负整数k,取p=k:
ED:2·k·d+2df-1<q/2。
(7)关于上面的变化(6),也可以对于某个多项式b令p=b。例如,如果要存储在公式存储单元110中的条件表达式ED如下,那么也可以达到相同的效果,取p=(X+2):
ED:6d+2df-1<q/2。
这是因为,如果多项式p×r×g+f×m中的所有系数都介于-q/2到q/2之间,就不会出现解密错误,如上所述。
这里,考虑多项式r×g,最大系数值等于2d(最小值不超过-2d)。
这里,因为p=(X+2),所以使用a(k)来表示多项式a的k次项的系数。
P(0)=2,p(1)=1,P(i)=0(i>1),
那么,
(P×(r×g))(k)
=p(0)·(r×g)(k)+p(1)·(r×g)(k-1)+
…+p(N-1)·(r×g)(k-(N-1)(mod N))
=(r×g)(k)+2·(r×g)(k-1)
所以,多项式p×r×g的最大系数值等于3·2d。同时,多项式f×m的最大系数值是2df-1(最小值不超过-2df+1)。
这样,如同在上面描述的实施例的情况一样,可以知道多项式p×r×g+f×m的最大系数值最大等于3·2d+2df-1,从中可以导出下面的表达式作为用于生成理论上不引起任何解密错误的参数的条件表达式ED:
ED:6d+2df-1<q/2。
注意,多项式b当然不局限于b=(X+2)。在这种情况下,执行上述处理可以导出条件表达式ED,从而达到相同的效果。
(8)除了其中参数转换设备2从外部接收参数集IPS的构造外,参数转换设备2也可以拥有一个达到安全级别信息SLI指示的安全级别的参数集IPS的列表。在这种情况下,从外部输入到输入单元101b的数据只是安全级别信息SLI。换句话说,输入单元101b拥有如图9所示的参数集IPS的列表,并且当从外部接收到安全级别信息SLI时,其将参数集IPS作为参数集PS输出到第三参数生成单元105,所述参数集PS与这样的SLI相关。
(9)文献4描述了如果对于解密使用零段格(Zero-Run Lattice),使用LLL算法情况下缩短解密时间的可能性。因此可以通过使用考虑到了使用这样的零段格的解密的解密时间估计公式EF,来估计使用LLL算法情况下的解密时间。
(10)在加密系统3中,私钥多项式f和公钥多项式h可以不必由解密设备32的密钥生成单元322生成。例如,私钥多项式f和公钥多项式h也可以在解密设备32之外生成,比如由密钥管理服务器生成,然后分别输入到私钥存储单元323和公钥存储单元312中。
(11)加密系统3还可以包括参数生成设备1或者参数转换设备2,并且由参数生成设备1或者参数转换设备2输出的NTRU参数可以被输入到参数存储单元311或321中。
(12)加密系统3也可以有这样的构造,其中加密设备31还配备有参数生成设备1或者参数转换设备2。在这种情况下,加密设备31生成NTRU参数,所述NTRU参数然后被输入到参数存储单元311并通过通信信道33传送给解密设备32。然后,解密设备32接收这些NTRU参数,并将其存储到参数存储单元321中。
(13)要存储在参数存储单元311中的NTRU参数可以是任何参数,只要这些参数至少包含参数N、p、q、df、dg和d中的参数N、参数p、参数q和参数d。要存储在参数存储单元321中的NTRU参数可以是任何参数,只要这些参数至少包含参数N、参数p、参数q、参数df和参数dg。例如,可能p=2。在这种情况下,所有多项式中的所有系数都应该等于1或0。这使得可以在多项式之间以更高速来执行操作,从而以更高速来执行参数生成、参数转换、加密和解密的处理。
(14)在根据第四实施例的加密系统4的加密设备41中,可以使用参数转换设备2而不是参数生成设备1。
(15)第四实施例中提出的加密系统4中的加密设备41可以配备有用于接收同参数生成设备1生成的参数相同的参数的参数接收设备,而不是配备参数生成设备1。
(16)本发明可以被实施为能够达到上述各个实施例提出的效果的方法。此外,本发明可以被实施为包含由计算机执行的这样的方法的计算机程序和由这样的计算机程序组成的数字信号。
此外,本发明也可以被实施为计算机可读的记录介质,诸如半导体存储器、硬盘驱动器、CD-ROM、DVD-ROM(Digital VersatileDisc-ROM,只读型数字多功能光盘)和DVD-RAM,上述计算机程序或数字信号记录在这些介质上。
(17)本发明也能够以上述一些实施例和变化的组合来实施。
工业实用性
本发明适用于加密处理和解密处理,尤其适用于数字签名、电子认证技术和加密通信等等。

Claims (35)

1.一种参数生成设备,用于生成输出参数,所述输出参数是不引起NTRU密码系统解密错误的参数集,所述参数生成设备包括:
无错误输出参数生成单元,该无错误输出参数生成单元用于基于预先提供的错误条件信息来生成不引起任何解密错误的所述输出参数,所述错误条件信息指示不引起解密错误的条件,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
2.根据权利要求1所述的参数生成设备,
其中所述无错误输出参数生成单元包括:
临时参数生成单元,用于基于所述错误条件信息来生成不引起任何解密错误的临时参数集;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数。
3.根据权利要求2所述的参数生成设备,
其中所述临时参数生成单元基于输入参数和所述错误条件信息来生成不引起任何解密错误的所述临时参数集,所述输入参数是从外部输入的所述NTRU密码系统的参数集。
4.根据权利要求2所述的参数生成设备,
其中所述输出参数生成单元使用所述临时参数集,基于安全确定信息和安全级别信息来生成所述输出参数,所述安全确定信息与所述格常数相关,且所述安全级别信息指示防备由第三方执行的解密的安全级别。
5.根据权利要求4所述的参数生成设备,
其中所述输出参数生成单元包括安全确定信息保存单元,该安全确定信息保存单元用于保存所述安全确定信息,以及
其中所述安全确定信息是从外部提供的。
6.根据权利要求4所述的参数生成设备,
其中所述输出参数生成单元包括格常数存储单元,该格常数存储单元用于存储一个或多个格常数和安全确定信息对,以及
其中所述格常数和所述安全确定信息是从外部提供的。
7.根据权利要求6所述的参数生成设备,
其中所述输出参数生成单元还包括安全确定信息选择单元,该安全确定信息选择单元用于基于所述格常数,从存储在所述格常数存储单元中的所述一个或多个格常数和安全确定信息对中选择安全确定信息,以及
所述输出参数生成单元使用所选择的安全确定信息和与所述选择的安全确定信息配对的所述格常数来生成所述输出参数。
8.根据权利要求6所述的参数生成设备,
其中所述输出参数生成单元包括:
修改判断单元,用于基于所述格常数和所述安全确定信息来判断是否要修改所述临时参数集;
临时参数修改单元,用于在所述修改单元判断应当修改所述临时参数集时,使用所述临时参数集来生成已修改临时参数集;以及
生成单元,用于使用所述已修改临时参数集,基于所述安全级别信息来生成所述输出参数。
9.根据权利要求8所述的参数生成设备,
其中所述临时参数修改单元通过修改非负整数dg来生成所述已修改临时参数集,所述非负整数dg包括在所述临时参数集中,用于指定系数值等于1的随机多项式g中的系数数目,所述随机多项式g用于生成公钥多项式。
10.根据权利要求2所述的参数生成设备,
其中所述临时参数集和所述输出参数都由以下部分的集合组成:
NTRU密码系统中的次数N;所述非负整数p;所述非负整数q;所述非负整数df,用于指定系数值等于1的所述私钥多项式f中的系数数目;非负整数dg,用于指定系数值等于1的随机多项式g中的系数数目,所述随机多项式g用于生成公钥多项式;和所述非负整数d,用于指定系数值等于1的随机多项式r中的系数数目,所述随机多项式r用于加密明文。
11.根据权利要求10所述的参数生成设备,
其中所述临时参数生成单元包括初始安全确定信息保存单元,该初始安全确定信息保存单元用于保存与执行解密所需要的时间相关的初始安全确定信息,并且
其中所述临时参数生成单元基于所述安全级别信息和所述初始安全确定信息来生成所述临时参数集中包括的所述次数N。
12.根据权利要求10所述的参数生成设备,
其中所述临时参数生成单元基于所述安全级别信息和所述次数N,生成所述临时参数集中包括的所述非负整数df、所述非负整数dg和所述非负整数d。
13.根据权利要求10所述的参数生成设备,
其中所述临时参数生成单元基于所述错误条件信息来生成所述临时参数集中包括的所述非负整数q。
14.根据权利要求10所述的参数生成设备,
其中所述输出参数生成单元基于所述安全级别信息和所述安全确定信息来生成所述输出参数中包括的所述次数N。
15.根据权利要求1所述的参数生成设备,
其中所述NTRU密码系统是一种用于通过包括下述步骤的方法来加密明文和解密密文的密码系统:
选择步骤,选择环R的理想值p和q,所述环R是一组N维数组,所述数组中定义了加法、减法和乘法;
生成步骤,用于生成所述环R的元素f和g,并且生成作为f(mod q)的逆的元素F.sub.q,并且生成作为f(mod p)的逆的元素F.sub.p;
公钥产生步骤,用于产生包含h的公钥,其中h与能够使用g和F.sub.q所得的乘积对于mod q是同余的;
私钥产生步骤,用于产生从中能够得到f和F.sub.p的信息作为私钥;
加密步骤,用于通过使用所述公钥和从所述环R中随机选择的元素i加密所述明文来产生所述密文;以及
解密步骤,用于通过使用所述私钥解密所述密文来产生已解密文本。
16.一种加密系统,用于按照NTRU密码系统通过加密明文来生成密文,所述加密系统包括:
参数生成设备,该参数生成设备包括无错误输出参数生成单元,该无错误输出参数生成单元用于基于预先提供的错误条件信息来生成不引起任何解密错误的输出参数,所述错误条件信息指示不引起解密错误的条件;
公钥生成单元,用于基于由所述参数生成设备生成的所述输出参数来生成公钥;以及
加密单元,用于基于所述公钥来加密所述明文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
17.一种解密系统,用于按照NTRU密码系统通过解密密文来生成已解密文本,所述解密系统包括:
参数生成设备,该参数生成设备包括无错误输出参数生成单元,该无错误输出参数生成单元用于基于预先提供的错误条件信息来生成不引起任何解密错误的输出参数,所述错误条件信息指示不引起解密错误的条件;
私钥生成单元,用于基于由所述参数生成设备生成的所述输出参数来生成私钥;以及
解密单元,用于基于所述私钥来解密所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
18.一种使用NTRU密码系统的加密系统,所述加密系统包括:
参数生成设备,用于生成输出参数和将其输出,所述输出参数是不引起所述NTRU密码系统解密错误的参数集;
密钥生成设备,用于生成和输出所述NTRU密码系统的加密密钥和解密密钥;
加密设备,用于按照所述NTRU密码系统通过加密明文来生成密文;以及
解密设备,用于通过解密所述密文来生成已解密文本,
其中所述参数生成设备包括:
临时参数生成单元,用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数,并输出所生成的输出参数,
其中所述密钥生成设备包括已生成密钥输出单元,该已生成密钥输出单元用于使用从所述参数生成设备输入的所述输出参数来生成所述加密密钥和所述解密密钥,并输出所生成的加密密钥和解密密钥,
其中所述加密设备包括加密单元,该加密单元用于使用从所述参数生成设备输入的所述输出参数和从所述密钥生成设备输入的所述加密密钥,通过加密所述明文来生成所述密文,
其中所述解密设备包括解密单元,该解密单元用于使用从所述参数生成设备输入的所述输出参数和从所述密钥生成设备输入的所述解密密钥,通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
19.一种使用NTRU密码系统的加密系统,所述加密系统包括:
参数生成设备,用于生成输出参数和将其输出,所述输出参数是不引起所述NTRU密码系统解密错误的参数集;
密钥生成设备,用于生成和输出所述NTRU密码系统的加密密钥;以及
加密设备,用于按照所述NTRU密码系统通过加密明文来生成密文,
其中所述参数生成设备包括:
临时参数生成单元,用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数,并输出所生成的输出参数,
其中所述密钥生成设备包括已生成密钥输出单元,该已生成密钥输出单元用于使用从所述参数生成设备输入的所述输出参数来生成所述加密密钥,并输出所生成的加密密钥,
其中所述加密设备包括加密单元,该加密单元用于使用从所述参数生成设备输入的所述输出参数和从所述密钥生成设备输入的所述加密密钥,通过加密所述明文来生成所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
20.一种加密设备,用于按照NTRU密码系统通过加密明文来生成密文,所述加密设备包括:
临时参数生成单元,用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数,所述输出参数是不引起所述NTRU密码系统解密错误的参数集;
参数传送单元,用于将所述输出参数传送给解密设备;
加密密钥接收单元,用于从所述解密设备接收所述NTRU密码系统的加密密钥,所述加密密钥是基于所述输出参数生成的;以及
密文生成单元,用于基于所述输出参数和所述加密密钥,通过加密所述明文来生成所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
21.一种加密设备,用于按照NTRU密码系统通过加密明文来生成密文,所述加密设备包括:
参数接收单元,用于接收输出参数,所述输出参数不引起任何解密错误并且是基于预先提供的错误条件信息生成的,所述错误条件信息指示不引起解密错误的条件;
公钥生成单元,用于基于由所述参数接收单元接收的所述输出参数来生成公钥;以及
加密单元,用于基于所述公钥来加密所述明文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
22.一种加密方法,用于按照NTRU密码系统通过加密明文来生成密文,所述加密方法包括以下步骤:
基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;
使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
基于所述输出参数生成所述NTRU密码系统的加密密钥;以及
基于所述输出参数和所述加密密钥,通过加密所述明文来生成所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
23.一种加密装置,用于按照NTRU密码系统通过加密明文来生成密文,所述加密装置包括:
用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集的模块,所述错误条件信息指示不引起解密错误的条件;
用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数的模块,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
用于基于所述输出参数生成所述NTRU密码系统的加密密钥的模块;以及
用于基于所述输出参数和所述加密密钥,通过加密所述明文来生成所述密文的模块,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
24.一种使用NTRU密码系统的解密系统,所述解密系统包括:
参数生成设备,用于生成输出参数和将其输出,所述输出参数是不引起所述NTRU密码系统解密错误的参数集;
密钥生成设备,用于生成和输出所述NTRU密码系统的解密密钥;以及
解密设备,用于按照所述NTRU密码系统通过解密密文来生成已解密文本,
其中所述参数生成设备包括:
临时参数生成单元,用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数,并输出所生成的输出参数,
其中所述密钥生成设备包括已生成密钥输出单元,该已生成密钥输出单元用于使用从所述参数生成设备输入的所述输出参数来生成所述解密密钥,并输出所生成的解密密钥,
其中所述解密设备包括解密单元,该解密单元用于使用从所述参数生成设备输入的所述输出参数和从所述密钥生成设备输入的所述解密密钥,通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
25.一种解密设备,用于按照NTRU密码系统通过解密从加密设备接收的密文来生成已解密文本,所述解密设备包括:
参数接收单元,用于从所述加密设备接收输出参数,所述输出参数是不引起所述NTRU密码系统解密错误的参数集;
已生成密钥生成单元,用于使用所输入的输出参数来生成所述NTRU密码系统的加密密钥和解密密钥,并输出所生成的加密密钥和解密密钥;
加密密钥传送单元,用于将所述加密密钥传送给所述加密设备;以及
已解密文本生成单元,用于基于所述输出参数和所述解密密钥通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
26.一种解密方法,用于按照NTRU密码系统通过解密密文来生成已解密文本,所述解密方法包括以下步骤:
基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;
使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
基于所述输出参数来生成所述NTRU密码系统的解密密钥;以及
基于所述输出参数和所述解密密钥,通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
27.一种解密装置,用于按照NTRU密码系统通过解密密文来生成已解密文本,所述解密装置包括:
用于基于预先提供的错误条件信息来生成不引起任何解密错误的临时参数集的模块,所述错误条件信息指示不引起解密错误的条件;
用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数的模块,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
用于基于所述输出参数来生成所述NTRU密码系统的解密密钥的模块;以及
用于基于所述输出参数和所述解密密钥,通过解密所述密文来生成所述已解密文本的模块,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
28.一种使用NTRU密码系统的加密系统,所述加密系统包括:
参数转换设备,用于将输入参数转换成输出参数,所述输入参数是从外部输入的所述NTRU密码系统的参数集,所述输出参数是不引起所述NTRU密码系统解密错误的参数集;
密钥生成设备,用于生成和输出所述NTRU密码系统的加密密钥和解密密钥;
加密设备,用于按照所述NTRU密码系统通过加密明文来生成密文;以及
解密设备,用于通过解密所述密文来生成已解密文本,
其中所述参数生成设备包括:
临时参数生成单元,用于基于预先提供的所述输入参数和错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数,并输出所生成的输出参数,
其中所述密钥生成设备包括已生成密钥输出单元,该已生成密钥输出单元用于使用从所述参数转换设备输入的所述输出参数来生成所述加密密钥和所述解密密钥,并输出所生成的加密密钥和解密密钥,
其中所述加密设备包括加密单元,该加密单元用于使用从所述参数转换设备输入的所述输出参数和从所述密钥生成设备输入的所述加密密钥,通过加密所述明文来生成所述密文,
其中所述解密设备包括解密单元,该解密单元用于使用从所述参数转换设备输入的所述输出参数和从所述密钥生成设备输入的所述解密密钥,通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
29.一种使用NTRU密码系统的加密系统,所述加密系统包括:
参数生成设备,用于根据输入参数生成输出参数,并输出所生成的输出参数,所述输入参数是从外部输入的所述NTRU密码系统的参数集,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
密钥生成设备,用于生成和输出所述NTRU密码系统的加密密钥;以及
加密设备,用于按照所述NTRU密码系统通过加密明文来生成密文,
其中所述参数生成设备包括:
临时参数生成单元,用于基于预先提供的所述输入参数和错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数,并输出所生成的输出参数,
其中所述密钥生成设备包括已生成密钥输出单元,该已生成密钥输出单元用于使用从所述参数生成设备输入的所述输出参数来生成所述加密密钥,并输出所生成的加密密钥,
其中所述加密设备包括加密单元,该加密单元用于使用从所述参数生成设备输入的所述输出参数和从所述密钥生成设备输入的所述加密密钥,通过加密所述明文来生成所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
30.一种加密设备,用于按照NTRU密码系统通过加密明文来生成密文,所述加密设备包括:
临时参数生成单元,用于基于输入参数和错误条件信息来生成不引起任何解密错误的临时参数集,所述输入参数是所述NTRU密码系统的参数集,所述错误条件信息指示不引起解密错误的条件,所述输入参数和所述错误条件信息都是预先提供的;
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
参数传送单元,用于将所述输出参数传送给解密设备;
加密密钥接收单元,用于从所述解密设备接收所述NTRU密码系统的加密密钥,所述加密密钥是基于所述输出参数生成的;以及
密文生成单元,用于基于所述输出参数和所述加密密钥,通过加密所述明文来生成所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
31.一种加密方法,用于按照NTRU密码系统通过加密明文来生成密文,所述加密方法包括以下步骤:
基于输入参数和错误条件信息来生成不引起任何解密错误的临时参数集,所述输入参数是所述NTRU密码系统的参数集,所述错误条件信息指示不引起解密错误的条件,所述输入参数和所述错误条件信息都是预先提供的;
使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
基于所述输出参数来生成所述NTRU密码系统的加密密钥;以及
基于所述输出参数和所述加密密钥,通过加密所述明文来生成所述密文,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
32.一种加密装置,用于按照NTRU密码系统通过加密明文来生成密文,所述加密装置包括:
用于基于输入参数和错误条件信息来生成不引起任何解密错误的临时参数集的模块,所述输入参数是所述NTRU密码系统的参数集,所述错误条件信息指示不引起解密错误的条件,所述输入参数和所述错误条件信息都是预先提供的;
用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数的模块,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
用于基于所述输出参数来生成所述NTRU密码系统的加密密钥的模块;以及
用于基于所述输出参数和所述加密密钥,通过加密所述明文来生成所述密文的模块,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
33.一种使用NTRU密码系统的解密系统,所述解密系统包括:
参数生成设备,用于根据输入参数生成输出参数,并输出所生成的输出参数,所述输入参数是从外部输入的所述NTRU密码系统的参数集,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
密钥生成设备,用于生成和输出所述NTRU密码系统的解密密钥;以及
解密设备,用于按照所述NTRU密码系统通过解密密文来生成已解密文本,
其中所述参数生成设备包括:
临时参数生成单元,用于基于预先提供的所述输入参数和错误条件信息来生成不引起任何解密错误的临时参数集,所述错误条件信息指示不引起解密错误的条件;以及
输出参数生成单元,用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成所述输出参数,并输出所生成的输出参数,
其中所述密钥生成设备包括已生成密钥输出单元,该已生成密钥输出单元用于使用从所述参数生成设备输入的所述输出参数来生成所述解密密钥,并输出所生成的解密密钥,
其中所述解密设备包括解密单元,该解密单元用于使用从所述参数生成设备输入的所述输出参数和从所述密钥生成设备输入的所述解密密钥,通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
34.一种解密方法,用于按照NTRU密码系统通过解密密文来生成已解密文本,所述解密方法包括以下步骤:
基于输入参数和错误条件信息来生成不引起任何解密错误的临时参数集,所述输入参数是所述NTRU密码系统的参数集,所述错误条件信息指示不引起解密错误的条件,所述输入参数和所述错误条件信息都是预先提供的;
使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
基于所述输出参数来生成所述NTRU密码系统的解密密钥;以及
基于所述输出参数和所述解密密钥,通过解密所述密文来生成所述已解密文本,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
35.一种解密装置,用于按照NTRU密码系统通过解密密文来生成已解密文本,所述解密装置包括:
用于基于输入参数和错误条件信息来生成不引起任何解密错误的临时参数集的模块,所述输入参数是所述NTRU密码系统的参数集,所述错误条件信息指示不引起解密错误的条件,所述输入参数和所述错误条件信息都是预先提供的;
用于使用所述临时参数集,基于根据所述临时参数集算出的格常数来生成输出参数,并输出所生成的输出参数的模块,所生成的输出参数是不引起所述NTRU密码系统解密错误的参数集;
用于基于所述输出参数来生成所述NTRU密码系统的解密密钥的模块;以及
用于基于所述输出参数和所述解密密钥,通过解密所述密文来生成所述已解密文本的模块,
其中所述错误条件信息是指示不引起解密错误的条件的条件表达式,并且
其中所述条件表达式被表示为:2·p·d+2df-1<q/2,该条件表达式关于非负整数p、非负整数q、非负整数d和非负整数df,该非负整数df指定了系数值等于1的私钥多项式f中的系数数目,所述非负整数均是用于所述NTRU密码系统的参数。
CN2004800109780A 2003-04-24 2004-04-14 参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序 Expired - Fee Related CN1778066B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003119973 2003-04-24
JP119973/2003 2003-04-24
PCT/JP2004/005528 WO2004095771A1 (en) 2003-04-24 2004-04-14 Parameter generation apparatus, encryption system, decryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program thereof

Publications (2)

Publication Number Publication Date
CN1778066A CN1778066A (zh) 2006-05-24
CN1778066B true CN1778066B (zh) 2011-10-12

Family

ID=33308121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800109780A Expired - Fee Related CN1778066B (zh) 2003-04-24 2004-04-14 参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序

Country Status (5)

Country Link
US (1) US7929688B2 (zh)
EP (2) EP1616405A1 (zh)
KR (1) KR101024768B1 (zh)
CN (1) CN1778066B (zh)
WO (1) WO2004095771A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3761557B2 (ja) * 2004-04-08 2006-03-29 株式会社日立製作所 暗号化通信のための鍵配付方法及びシステム
EP1746561A1 (en) 2004-05-12 2007-01-24 Matsushita Electric Industrial Co., Ltd. Encryption system, encryption device, decryption device, program, and integrated circuit
JP2006127485A (ja) * 2004-09-30 2006-05-18 Sanyo Electric Co Ltd コンテンツ再生装置およびコンテンツ再生方法
FR2899702A1 (fr) * 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
US8117447B2 (en) * 2008-01-10 2012-02-14 Industrial Technology Research Institute Authentication method employing elliptic curve cryptography
US8281143B1 (en) 2008-09-29 2012-10-02 Symantec Operating Corporation Protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
US8271974B2 (en) * 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8479304B1 (en) * 2009-03-31 2013-07-02 Symantec Corporation Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
US20140314229A1 (en) * 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
US20170207918A1 (en) 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
US9690513B2 (en) * 2009-08-27 2017-06-27 International Business Machines Corporation Dispersed storage processing unit and methods with operating system diversity for use in a dispersed storage system
JP5539024B2 (ja) * 2010-05-27 2014-07-02 キヤノン株式会社 データ暗号化装置およびその制御方法
US8677135B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Digital signatures with error polynomials
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
WO2019178312A1 (en) * 2018-03-16 2019-09-19 Iot And M2M Technologies, Llc Configuration systems and methods for secure operation of networked transducers
IL272521B2 (en) * 2020-02-06 2023-05-01 Google Llc Creating sequences of network data while preventing the acquisition or manipulation of time data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2316044A1 (fr) 1975-07-02 1977-01-28 Martelli Antonio Perfectionnements aux polisseuses lustreuses de dallages
US4328645A (en) 1980-06-04 1982-05-11 The Boeing Company Multiple spindle flexible sanding head
DE8702555U1 (zh) 1987-02-19 1987-04-02 Tabori, Franz, 5233 Nuembrecht, De
CA2263588C (en) * 1996-08-19 2005-01-18 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
DE19735936C1 (de) 1997-08-19 1998-09-24 Unislip Gmbh Universal-Schleifkopf für stationäre oder mobile Maschinen
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6832314B1 (en) * 1999-12-15 2004-12-14 Ericsson, Inc. Methods and apparatus for selective encryption and decryption of point to multi-point messages
JP2002133242A (ja) * 2000-10-20 2002-05-10 Nippon Conlux Co Ltd プロモーション方法およびシステム
US7373515B2 (en) * 2001-10-09 2008-05-13 Wireless Key Identification Systems, Inc. Multi-factor authentication system
JP3571018B2 (ja) 2001-10-09 2004-09-29 株式会社新光住設産業 屋根の融雪装置
JP2003124927A (ja) 2001-10-15 2003-04-25 Sony Corp 相互認証システム及び相互認証方法、相互認証装置、並びに記憶媒体
JP4208230B2 (ja) 2001-10-19 2009-01-14 パナソニック株式会社 配列出力装置、配列出力方法、暗号化装置、および復号化装置
EP2148463A3 (en) 2001-10-19 2015-04-22 Panasonic Intellectual Property Management Co., Ltd. A numerical array output device, a numerical array output method, an encryption device, and a decryption device

Also Published As

Publication number Publication date
EP1616405A1 (en) 2006-01-18
KR20060008885A (ko) 2006-01-27
US7929688B2 (en) 2011-04-19
US20060239459A1 (en) 2006-10-26
CN1778066A (zh) 2006-05-24
WO2004095771A1 (en) 2004-11-04
KR101024768B1 (ko) 2011-03-24
EP1914925A1 (en) 2008-04-23

Similar Documents

Publication Publication Date Title
CN1778066B (zh) 参数生成设备,加密系统,解密系统,加密设备,解密设备,加密方法,解密方法,及其程序
JP4786531B2 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
KR101861089B1 (ko) 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
US7664260B2 (en) Signature generation device, key generation device, and signature generation method
EP3198784B1 (en) Public-key encryption system
JPWO2009025220A1 (ja) 秘密情報分散システム、方法及びプログラム並びに伝送システム
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
US20100329447A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, and program
US20140082361A1 (en) Data encryption
EP1873964A1 (en) Signature creation device, and signature verification device
Kuang et al. Performance analysis of the quantum safe multivariate polynomial public key algorithm
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
US7321658B2 (en) Padding application method ensuring security of cryptosystem and encryptor/decryptor
CN113645022B (zh) 一种确定隐私集合交集方法、装置、电子设备及存储介质
JP2011150006A (ja) 暗号化システム、公開鍵暗号化方法、鍵生成装置、計算機および公開鍵秘密鍵生成プログラム
JP4567364B2 (ja) パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム
JP5297918B2 (ja) 暗号化数値二進変換システム及び方法とプログラム
Tan et al. Analysis of RSA based on quantitating key security strength
KR101767939B1 (ko) 양자키 유도 함수를 활용한 암호키 생성 방법 및 이를 수행하는 암호키 생성 장치
Aissa et al. An approach using stream cipher algorithm for image encryption and decryption
AU2021106274A4 (en) A protocol for assuring data integrity in cloud setting by using a fully homomorphic batch encryption scheme with integer and shorter public key (hbeis)
Zhao et al. CRT‐Based Homomorphic Encryption over the Fraction
KR101932032B1 (ko) 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법
JP4955415B2 (ja) 複数の乱数列を用いた情報通信装置及び情報通信方法
CN114297671A (zh) 一种同态加密方法及其在隐私保护分类器上的应用

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111012

Termination date: 20130414