CN1153404C - 具有增强保护以防选择的密文攻击的公钥密码系统 - Google Patents

具有增强保护以防选择的密文攻击的公钥密码系统 Download PDF

Info

Publication number
CN1153404C
CN1153404C CNB991192664A CN99119266A CN1153404C CN 1153404 C CN1153404 C CN 1153404C CN B991192664 A CNB991192664 A CN B991192664A CN 99119266 A CN99119266 A CN 99119266A CN 1153404 C CN1153404 C CN 1153404C
Authority
CN
China
Prior art keywords
output
value
jacobian symbol
ciphertext
pki
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
CNB991192664A
Other languages
English (en)
Other versions
CN1253437A (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.)
Ricoh System Development Co Ltd
Original Assignee
Ricoh System Development 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 Ricoh System Development Co Ltd filed Critical Ricoh System Development Co Ltd
Publication of CN1253437A publication Critical patent/CN1253437A/zh
Application granted granted Critical
Publication of CN1153404C publication Critical patent/CN1153404C/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
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

公开一种具有增强保护不受选择性密文攻击的公用密码方法。加密设备使用公钥N加密明文M以便产生密文C,其中公钥N具有其雅可比符号(2|p)是-1的一个素数的第一私钥p和其雅可比符号(2|q)是1的一个素数的第二私钥q的乘积值pq。一种解密设备使用私钥p,q和公钥N解密密文C以便恢复原始明文M。因为不使用(x|p)(x|q)=1中的x,所以由解密设备产生的数字签名不能由选择性密文攻击破坏。

Description

具有增强保护以防选择的 密文攻击的公钥密码系统
技术领域
本发明涉及使用将数字信息变换为密文的密钥作为公钥和将密文解密为原始数字信息的密钥作为秘密密钥的公钥加密的方法,设备和系统。
背景技术
随着因特网和其他网络的广泛使用,人们经常具有将数字信息的各种项目通过电话线发送到所需一方的机会。如果一个人希望将秘密信息通过电话线安全地发送到收信方,则该秘密信息需要被保护不被第三方使用。迄今为止已经提出各种加密信息的方法以便提供保护不被使用。
根据密码系统的基本方法,使用一个加密密钥加密发送的数字信息,并且加密的数字数据发送到收信方。在收信方,使用一个解密密钥将加密的数字数据解密为原始数字信息。
在下文,将数字信息变换为加密数据和发送加密数据的处理将叫做加密,而从加密数据恢复原始数字信息的处理叫做解密。发送的数字信息将叫做明文,而加密的数据叫做密文。因为数字信息或数据可以由数字值表达,所以将平等地处理代表明文和密文的数字信息或数据和数字值。
使用单独的密钥同时作为加密密钥和解密密钥的加密方法叫做共享密钥密码系统,而使用不同密钥作为加密密钥和解密密钥的加密方法叫做公钥密码系统,其中公布加密密钥作为公钥和保持保密解密密钥作为专用密钥。
根据共享密钥加密系统,因为加密和解密密钥是相同的,所以它们二者必须保持保密。但是,根据公钥密码系统,希望发送数字信息给收信方的人使用公钥加密数字信息为密文,和发送该密文给收信方。在收信方,接收者利用它自己的专用密钥解密该密文。公钥密码系统在任何人可以产生密文,该密文可以只由某一个接收者解密,不需要发送者与接收者关于该专用密钥通信方面是有利的。
下面将详细描述常规的公钥密码系统。在描述常规公钥密码系统之前,下面首先简要描述对于其理解所必需的数学基础。这些数学细节由1982年Addison-Wesley发行公司,Dorothy Elizabeth Robling Denning的“密码系统和数据安全”的第一章,第6节所覆盖。
首先,下面描述余数。当“a”被N除时产生的余数“r”叫做“a”关于N的余数“r”,并且表示为“amod N=r”。“a”关于N的余数等于“b”关于N的余数的事实被表示为“a=b(mod N)”。
gcd(P,Q)代表P和Q的最大公约数。(P|Q)代表P关于Q的雅可比符号值。雅可比值是这样的即如果P1=P2(mod Q),则等式(P1|Q)=(P2|Q)满足和等式(1|P)=1,(-1|P)=1,(P1P2|Q)=(P1|Q)(P2|Q),(P|Q1Q2)=(P|Q1)(P|Q2)满足。在上面的篇幅中详细描述了雅可比符号的具体计算方法。虽然雅可比符号(P|Q)通常仅关于gcd(P,Q)=1的P和Q确定,但是根据本发明(P|Q)=0关于gcd(P,Q)≠1的P和Q确定。
在1980年的IEEE信息理论事物处理第IT-26卷,第6号,第726-729页的H.C.Williams的“RSA公钥加密过程修改”中详细描述了雅可比符号定义的延伸。
计算延伸的雅可比符号的处理将从Denning的书,Williams的文章第106页和雅可比符号的定义描述中变得清楚。具体地,为计算延伸的雅可比符号(P|Q),在确认gcd(P,Q)值的同时执行计算雅可比符号的普通处理并且如果发现gcd(P,Q)不等于1,则终止正常的计算处理,并且计算的结果置为0。
如果存在满足x2=a(modp)的一个整数“x”,则“a”叫做模数p的两次剩余,并且如果不存在这样的整数,则“a”叫做模数p的两次非剩余。公知如果“p”是一个素数,则满足x2=a(mod p)的整数x的数最大是2,并且如果解彼此不同,则(a|p)=1,如果它们是多重根,则(a|p)=0,并且如果没有解,则(a|p)=-1。
公知如果N是两个素数的乘积,则满足x2=a(mod N)的整数x的个数最多是4,和如果有4个不同的解,则(a|p)=1,如果有两个不同的解,则(a|p)=0,a≠0,如果只有一个解,则a=0,和如果没有解则(a|p)=-1。
Rabin加密方案已经公知作为公钥密码体系。这种加密方案是计算机科学的麻省理工学院实验室,Tech.Rep.LCS/TR212,剑桥MA:计算机科学的麻省理工学院实验室,1979年在M.O.Rabin“如因数分解一样难处理的数字化签名和公钥功能”提出的密码通信处理。Rabin加密方案是在Denning的书中第128页详细描述的。
根据Rabin加密方案,素数p,q用作私钥和N=pq作为公钥,和根据C=M2modN执行加密,此处M代表明文和C代表密文。P,q,N,M,C是从几百比特到一千几百比特范围变化的数。如果N是从几百比特到一千几百比特范围变化的数,则将N因式分解为素数将由于包括的计算量实际变为不可能的,并且公知破坏Rabin密文将和将N因式分解为素数一样困难。
为根据Rabin加密方案将密文解密为明文,可以解决关于“x”的二次同余表达式X2=C(mod N)。为解出这个二次同余表达式,两个二次同余表达式X2=C(modp),X2=C(mod q)解出“x”。计算对于上面两个叠和表达式的解的处理在Denning的书第116页作了描述。一旦发现对于两个二次同余表达式X2=C(mod p),X2=C(mod q)的解Xp,Xq,根据XN=qbp Xp+pbqXqmodN可以发现对于二次同余表达式X2=C(mod N)的一个解XN,此处bp,bq满足qbp=1(modp),pbq=1(mod q)的值。解XN可以以上述的方式发现的事实可以通过替换二次同余表达式的解确认。
解Xp,Xq的每一个可以最多具有两个值,并且因此解XN可以最多具有四个值。公知C的雅可比符号和XN可以具有的值的个数(即,二次同余表达式X2=C(mod N)的解的个数,和XN的雅可比符号彼此如下相关:如果((C|p),(C|q))=(0,0),则解的个数是1,和解XN的雅可比符号是((XN|p),(XN|q))=(0,0)。如果((C|p),(C|q))=(0,1),则解的个数是2,和解XN的雅可比符号可以取由((XN|p),(XN|q))=(0,1),(0,-1)表示的两个值。如果((C|p),(C|q))=(1,0),则解的个数是2,和解XN的雅可比符号可以取由((XN|p),(XN|q))=(1,0),(-1,0)表示的两个值。如果((C|p),(C|q))=(1,1),则解的个数是4,和解XN的雅可比符号可以取由((XN|p),(XN|q))=(1,1),(-1,-1),(-1,1),(1,-1)表示的四个值。
如上所述,Rabin方案在四个明文的最大值变换为一个密文C中存在问题,并且因此不可能从密文唯一地恢复明文。迄今,已经习惯使用在1992年11月5日电子信函,第28卷,第23号,第2146-2147页的.Shimada的“另一个实用的公钥密码系统”中提出的Rabin密码系统。根据提出的改进的Rabin密码系统,取{0,1,...N-1}的一个值的密文C根据操作C=t(M)u(M)M2(modN)从取{0,1,...N-1}的一个值的明文M中产生,此处t(M)是如果M≥(N+1)/2和t(M)=1则其值是t(M)=-1的一个函数,另外,u(M)是其值是如果(M|N)=-1则u(M)=2和否则u(M)=1的函数。在上面的文章中描述了这种加密方案能够产生一一对应的功能。
但是,该改进的Rabin密码系统在易受选择性的密文攻击上是不利的。具体地,如果四个密文C,-C mod N,2C mod N和-2C mod N利用关于密文C的公钥解密,则得到二次同余表达式x2=C(mod N)的四个解作为各个相应的明文。当关于(x1|N)=-1的解x1和(x2|N)=1的解x2计算gcd(x1-x2,N)时,得到那四个解的p或q的值作为最大公约数。
在普通的密码通信中,密码分析人员不可能得到这四个明文。在解密结果对任何人都公然可得到的数字签名中,因为密码分析人员可以自由地选择对于解密设备的输入(相应于密文),所以密码分析人员可以进行选择性的密文攻击。为此,改进的Rabin密码系统在它不能与数字签名结合使用时是不利的。
发明内容
因此本发明的一个目的是提供能够从一个密文唯一地恢复明文并且得到对于选择性密文攻击的增强保护因此使它们可以用于数字签名的方法、设备和系统。
为实现上述目的,根据下面描述的加密方法使用公钥N加密明文M产生密文C,公钥N具有其雅可比符号(2|p)是-1的一个素数的第一私钥p和其雅可比符号(2|q)是1的一个素数的第二私钥q的乘积值pq,和发送产生的密文C。根据下面描述的解密方法,使用第一私钥p,第二私钥q和公钥N解密接收的密文C以便恢复原始明文M。
首先,加密方法将在下面描述。计算明文M的雅可比符号(M|N)和公钥N的值。如果雅可比符号(M|N)的值是“-1”,输出x被设置为明文M的值的两倍值2M,和如果雅可比符号(M|N)的值是除“-1”以外的值时,输出x被设置为明文M。接着,计算当输出x的平方除以公钥N时产生的余数x2 modN和输出y被设置为计算的余数。计算当输出y乘以2除以公钥N时的余数2ymodN。如果雅可比符号(M|N)的值是“-1”,选择余数2ymod N作为输出z和如果雅可比符号(M|N)的值是除“-1”以外的值时,输出z被设置为输出y。公钥N右移一位和计算通过移动公钥N产生的输出值(N-1)/2。计算当输出z乘以-1除以公钥N时的余数-zmodN。互相比较输出(N-1)/2和输出z。如果z≤(N-1)/2选择和输出输出z作为密文C,并且如果z>(N-1)/2,则密文C被设置为余数-z mod N。
下面将描述解密方法。计算密文C的雅可比符号(C|p)的值和第一私钥p的值,并且计算密文C的雅可比符号(C|q)的值和第二私钥q的值。计算雅可比符号(C|p)和雅可比符号(C|q)的乘积(C|p)(C|q)。如果雅可比符号(C|q)的值被设置为“0”,则输出s(C)被设置为雅可比符号(C|p)和如果雅可比符号(C|q)的值是除“0”以外的值,则输出s(C)被设置为雅可比符号(C|q)。接着,计算当密文C的值乘以-1除以公钥N时的余数-C modN。如果输出s(C)是“-1”,则输出z被置为余数-CmodN和如果输出s(C)不是“-1”,则输出z被置为密文c。计算当输出z乘以1/2除以公钥N时的余数z/2 mod N。如果乘积(C|p)(C|q)的值是“-1”,则输出y被置为余数z/2 mod N和如果乘积(C|p)(C|q)的值不是“-1”,则输出y被置为输出z。如果输出y不是0,则关于x的二次同余表达式x2的解中满足(x|p)(x|q)≠1和其值等于或小于(N-1)/2的解和满足(x|p)(x|q)≠1和其值等于或大于(n+1)/2的解,被输出分别作为第一输出xL和第二输出xG,和如果输出y是“0”,则输出“0”作为第一输出xL和第二输出xG。计算当第二输出xG除以2时产生的商xG/2。如果乘积(C|p)(C|q)的值是“-1”,则选择和输出商xG/2作为明文M和如果乘积(C|p)(C|q)不是“-1”,则选择和输出第一输出xL作为明文M。
因为没有使用(x|p)(x|q)=-1中的x,所以由解密设备产生的数字签名将不会被选择性密文破坏。因为明文和密文可以保持一一对应,所以可以从密文c中唯一恢复明文M。
附图说明
本发明的上面和其他目的,特点和优点将从参照附图的下面描述中变得清楚,附图示出本发明的一个例子。
图1是根据本发明的公钥密码系统中的加密设备的方框图;
图2是根据本发明的公钥密码系统中的解密设备的方框图;
图3是图1所示的加密设备的操作序列的流程图;
图4是图2所示的解密设备的操作序列的流程图;
图5是图3所示的步骤310中执行的变换的示意图;
图6是图3所示的步骤320中执行的变换的示意图;
图7是图3所示的步骤330中执行的变换的示意图;和
图8是图3所示的步骤340中执行的变换的示意图。
具体实施方式
根据本发明的公钥密码系统包括用于利用公钥N从明文M产生密文c的加密设备和用于利用私钥P,q通过解密密文c重放原始明文M的解密设备。
如上所述,私钥P,q是满足((2/p),(2/q))=(-1,1)的一组素数,和公钥N是N=pq(x|y)表示关于“y”的雅可比符号“x”。
如图1所示,该加密设备包括一个雅可比符号计算电路111,乘法器112,131,143,选择器113,132,144,平方电路120,移位器141,和比较器142。
从输入终端151输入明文M,和提供给雅可比符号计算电路111,选择器113和乘法器112。从输入终端151输入公钥N,并且提供给雅可比符号计算电路111,移位器141,平方电路120,乘法器131和乘法器143。雅可比符号计算电路111计算雅可比符号(M|N)的值,并且将计算的值提供给选择器113和选择器132。乘法器112将明文M的值乘以2,并且输出乘法结果2M。如果(M|N)=-1,则选择器113选择和输出来自乘法器112的输出,即乘法结果2M。否则,选择器113选择和输出明文M。
为了示例性目的,来自选择器113的输出将在下文由“x”表示。平方电路120计算当来自选择器113的输出x的平方除以N,即x2 modN计算产生的余数,并且输出该计算的结果。即,平方电路120执行Rabin密文的加密。
为了示例性的目的,来自平方电路120的输出在下文将由“y”表示。乘法器131计算当来自平方电路120的输出y乘以2除以N时产生的余数,即2ymod N,并且输出计算的结果。如果(M|N)=-1,则选择器132选择并输出来自乘法器131的输出,即乘法结果2ymodN。否则,选择器113选择和输出平方电路120的输出y。为了示例性目的,来自选择器132的输出将在下文由“z”表示。移位器141将N向右移一位,并且输出得到的值,即(N-1)/2,(由于公钥N是一个奇数)。比较器142比较来自移位器141的输出,即(N-1)/2,和来自选择器132的输出z,并且将比较的结果提供给选择器144。乘法器143计算当来自选择器132的输出z乘以-1除以N时产生的余数,即,-z mod N,并且输出计算的结果。虽然-z mod N可能正是(N-z)mod N,但是它将在下文叫做-z mod N。
如果来自比较器142的输出表示z>(N-1)/2,则选择器144选择和输出来自乘法器143的输出-zmodN。否则,选择器144选择和输出来自选择器132的输出z。输出来自选择器144的输出作为来自输出终端153的密文C。
如图2所示,解密设备包括雅可比计算电路211,212,乘法器213,221,选择器214,222,252,和除法器231,251。
从输入终端263输入密文C,并且提供给雅可比计算电路211,雅可比计算电路212,选择器222,和乘法器221。从输入终端264输入公钥N,并且提供给乘法器221,除法器231,和提取电路240。从输入终端261输入私钥p,并且提供给雅可比计算电路211和提取电路240。从输入终端262输入私钥q,并且提供给雅可比计算电路212和提取电路240。
雅可比计算电路211计算雅可比符号(C|p)的值,并且提供该计算的结果给乘法器213和选择器214。雅可比计算电路212计算雅可比符号(C|q)的值,并且提供该计算的结果给乘法器213和选择器214。乘法器213计算雅可比符号(C|p)和雅可比符号(C|q)的乘积,并且将计算的结果(C|p)(C|q)提供给选择器232和选择器252。如果来自雅可比计算电路212的输出(C|q)是0,则选择器214选择并输出来自雅可比计算电路211的输出(C|p)。否则,选择器214选择和输出来自雅可比计算电路212的输出(C|q)。
为了示例性目的,来自选择器214的输出将在下文叫做s(C)。如果(C|q)=0,则来自选择器214的输出s(C)是s(C)=(C|p),和如果(C|q)≠0,则来自选择器214的输出s(C)是s(C)=(C|q)。乘法器221计算当密文C乘以-1除以N时产生的余数,即-C mod N,并且输出计算结果。虽然-C modN正是(N-c)mod N,但是它将在下文叫做-C mod N。如果来自选择器214的输出s(C)是-1,则选择器222选择和输出来自乘法器221的输出,即-CmodN。否则,选择器222选择和输出密文C。
为了示例性目的,来自选择器222的输出将在下文叫做“z”。除法器231计算当输出z乘以1/2除以公钥N时产生的余数z/2,并且输出计算结果。将输出z乘以1/2被公钥N除意味着如果输出z是一个偶数,则输出z被2除,和如果输出z是一个奇数,则输出z被输出z和公钥N的和除。
如果来自乘法器213的输出(C|p)(C|q)是-1,则选择器232选择和输出来自除法器231的输出,即z/2modN。否则,选择器232选择和输出z。
为了示例性目的,来自选择器232的输出将在下文叫做“y”。提取电路240确定关于x的二次同余表达式x2=C(mod N)的解,并且输出满足(x|p)(x|q)≠-1的解(那些解的个数最多是2)中的那些解。在输出的解中,其值是(N-1)/2或小于(N-1)/2的值的解由xL表示,并且其值是(N+1)/2或大于xG的解由xG表示。如果y=0,则因为x2=C(mod N)只有一个解,即x=0,所以解是xL=xG=0。
除法器251计算当来自平方电路240的输出xG被2除时产生的商,即,xG/2,并且输出计算结果。如果来自乘法器213的输出(C|p)(C|q)是-1,则选择器252选择和输出来自除法器251的输出,即xG/2。否则,选择器252选择和输出xL。输出来自选择器252的输出作为来自输出终端265的明文M。
乘法器112,131,143,221和除法器231,251的具体安排将不在下面详细描述,由于它们可以根据数学和逻辑电路111的基础知识被容易地理解并且因此对本领域技术人员是显而易见的,并且雅可比符号计算电路111,211,212和提取电路240的具体安排将不详细描述,由于它们与在常规加密和解密设备中使用的电路是相同的并且因此对本领域技术人员显而易见。
根据本发明的公钥密码系统的操作将在下面参照图3和图4描述。
图3是图1所示的加密设备的操作的示意图。
在步骤311,雅可比符号计算电路111使用明文M计算雅可比符号(M|N)的值。如果雅可比符号(M|N)的值是-1,则控制进到步骤313。否则,控制进到步骤312。选择器113根据雅可比符号(M|N)的值操作以便在步骤312设置x为x=M并且在步骤313设置x为x=2M。此后,步骤311,312,313将共同称为步骤310。
在步骤320,平方电路120设置y为y=x2mod N。接着,选择器113根据雅可比符号(M|N)的值操作。如果在步骤331雅可比符号(M|N)的值是-1,则控制进到步骤333。否则,控制进到步骤332。在步骤332,选择器113设置z为z=2 modN。此后,步骤331,332,333将共同称为步骤330。
在步骤341,比较器142比较来自移位器141的输出(N-1)/2和z。选择器144根据来自比较器142的比较结果操作。如果z>(N-1)/2,则控制进到步骤343。否则,控制进到步骤342。在步骤342,选择器144设置C为C=z。在步骤343,选择器144设置C为C=-zmod N。选择器144输出C作为密文。此后,步骤341,342,343将共同称为步骤340。
图4是图2所示的解密设备操作序列的示意图。
在步骤411,选择器222根据来自选择器214的输出s(C)操作。如果s(C)是-1,则控制进到步骤413。否则,控制进到步骤412。如果(C|p)=0则S(C)是定义为s(C)=(C|p)的值和如果(C|q)≠0则s(C)=(C|q)。在步骤412,选择器222设置z为z=C。在步骤413,选择器222设置z为z=-C modN。此后,步骤411,412,413将共同称为步骤410。
在步骤421,选择器232根据从乘法器213输出的雅可比符号的乘积(C|p)(C|q)操作。如果(C|p)(C|q)是-1,则控制进到步骤423。否则,控制进到步骤422。在步骤422,选择器232设置y为y=z。在步骤423,选择器232设置y为y=z/2 modN。此后,步骤421,422,423将共同称为步骤420。
在步骤430,提取电路240使用y确定对关于x的二次同余表达式x2=y(mod N)的解。在满足(x|p)(x|q)≠1的解中,其值是(N-1)/2或小于该值的解由x表示,和其值是(N+1)/2或大于该值的解由xG表示。如果在步骤430满足(x|p)(x|q)≠1的只有一个解,则解xL=xG=0。
在步骤411,选择器242根据从乘法器213输出的雅可比符号的乘积(C|p)(C|q)操作。如果(C|p)(C|q)是-1,则控制进到步骤443。否则,控制进到步骤442。在步骤442,选择器242设置M为M=xL。在步骤443,选择器242设置M为M=xG/2。此后,步骤441,442,443将共同称为步骤440。
图5是图3所示的步骤310中执行的变换的示意图。在图5中,垂直安排在左侧的方框组表示明文M可以取的值组。对于矢量(I,j)表示的组,属于((M|p),(M|q))=(i,j)的明文M的值。
对于从上面数的第一到第八方框,属于M≥(N+1)/2的明文M的值。对于从下数的第一到第九方框,属于M≤(N-1)/2的明文M的值。由虚线表示的方框指示属于那些方框的值将不作为明文使用。由实线表示的方框指示属于那些方框的值将作为明文使用。
垂直安排在右侧的方框组表示来自选择器113的输出x可以取的值。这些方框以如明文M可以取的值组的相同方式定义。对于向量(i,j)表示的组,属于((x|p),(x|q))=(i,j)的x的值。
在步骤310,如果关于明文M的雅可比符号(M|N)的值是-1,则x被置为x=2M。否则,x被置为x=M。如上所述,本实施例使用((2|p),(2|q))=(-1,1)的私钥。因此,在步骤310,((M|p,(M|q))=(1,-1)的组和((M|p),(M|q))=(-1,1)的组分别映射到((x|p),(x|q))=(1,1)的组和((x|p),(x|q))=(-1,-1)的组。其他明文组直接映射到右侧的组。
如图5所示,其他的组将不映射到相同的单独组。因此可以看到在步骤310从M到x的变换是一对一的变换。应该注意关于x的((x|p),(x|q))=(1,1)或((x|p),(x|q))=(-1,-1)的x的值组,如A所示的,等于或大于(N+1)/2,(M|N)=-1是满足对应x的M,关于等于或小于(N-1)/2的x,如B所示,(M|N)=1满足对应x的M。
图6是图3所示的步骤320中执行的变换的示意图。在图6中,垂直安排在左侧的方框组表示来自选择器113的输出x可以取的值组。对于矢量(I,j)表示的组,属于((x|p),(x|q))=(i,j)的x的值。由虚线表示的方框指示属于那些方框的值x将不使用。由实线表示的方框指示属于那些方框的值可以使用。垂直安排在右侧的方框组表示来自平方电路120的输出y可以取的值。这些方框以如x可以取的值组的相同方式定义。对于向量(i,i)表示的组,属于((y|p),(y|q)=(i,j)的y的值。
应该注意到图6不象图5,除了组(0,0)以外的每个组包括等于或大于(N+1)/2的值和等于或小于(N-1)/2的值。因为由y=x2mod N表示的变换在步骤320执行,所以(y|p)和(y|q)的值是0或1,并且不能取-1。因此,除了对应于x=0的组,即,组(0,0),在x侧的两组映射到y侧的单独的组。
在y侧的组中,如图6的D所示,x侧的两组重叠和映射到组(0,1),(1,0),但是x的两个值没有映射到相同的y值。这是因为如果(y|p)和(y|q)之一是0,则关于x的二次同余表达式x2=y(mod N)可以最多具有两个解,一个解是x0,而另一个解是N-x0。
具体地说,如果两个解之一等于或小于(N-1)/2,则另一个解等于或大于(N+1)/2。由于可以从图5看出,在这个实施例中,只有等于或小于(N-1)/2的一个值,用作对应于((y|p),(y|q))=(0,1),(1,0)的一个x值。关于y侧的组的(1,1),如图6所示,x的两个值映射到相同的y值,并且如从图5可以理解的,它们可以利用(M|N)的值区别。
一个x值可以如下从图6中的一个y值恢复:
关于x的二次同余表达式的解中,由于如图5所示,不使用(x|p)(x|q)=-1的x值,即(x|p)(x|q))=(-1,1),(1,-1)的x值,所以可以确定满足(x|p)(x|q)≠-1的一个解。但是,存在满足(x|p)(x|q)≠-1的两个解的最大值。那些解中,其值等于或小于(N-1)/2的解将在下文由xL表示,并且其值等于或大于(N+1)/2的解将在下文由xG表示。
对于y=0,因为对于x2=y(mod N)只有一个解x=0,xL=xG=0。为了恢复x的原始值,有必要识别这两个解中的哪个解是原始x值。由于从图5可以看出,可以利用(M|N)的值识别它。具体地,如果(M|N)=-1,则x的原始值是xG,并且否则,原始x值是xL
图7是说明图3所示的步骤330中执行的变换的示意图。在图7中,垂直安排在左侧的方框组表示来自平方电路120的输出y可以取的值组。对于矢量(I,j)表示的组,属于((y|p),(y|q))=(i,j)的y的值。由虚线表示的方框指示属于那些方框的值y将不使用。由实线表示的方框指示属于那些方框的y值可以使用。垂直安排在右侧的方框组表示来自选择器132的输出z可以取的值。这些方框以如y可以取的值组的相同方式定义。对于向量(i,j)表示的组,属于((y|p),(y|q))=(i,j)的z的值。如果在步骤330关于y的雅可比符号(M|N)的值是-1,,则z如E所示的被设置为z=2y(mod N)。否则,z被设置为z=y。
如上所述,本实施例使用((2,p),(2,q))=(-1,1)的一个私钥。如图7所示,通过被设置z=2y(mod N),((y|p),(y|q))=(1,1)的y被映射到((z|p),(z|q))=(-1,1)的z。在图6中,关于y侧的组(1,1),x的两个值重叠和映射到相同的y值。通过这个操作,重叠的y值被映射到两个不同的x值。因此,可以理解x和y保持一一对应。
图8是说明图3所示的步骤340中执行的变换的示意图。在图8中,垂直安排在左侧的方框组表示来自选择器132的输出z可以取的值组。对于矢量(I,j)表示的组,属于((z|q),(z|q))=(i,j)的z的值。对于从上面数的第一到第八方框,属于z≥(N+1)/2的z值。对于从下数的第一到第九方框,属于z≤(N-1)/2的z值。由虚线表示的方框指示属于那些方框的值将不作为z值使用。由实线表示的方框指示属于那些方框的值可以作为z值使用。垂直安排在右侧的方框组表示来自选择器144的输出x可以取的值,即密文C可以取的值。这些方框以如明文M可以取的值组的相同方式定义。对于向量(i,j)表示的组,属于((C|p),(C|q))=(i,j)的C的值。
在步骤340,如果z取等于或大于(N+1)/2的值,则C被置为C=-z(modN),并且否则,C被置为C=z。因此,如图8所示,取等于或大于(N+1)/2的值和((z|p)(z|q))=(1,1),(-1,1),(0,1),(1,0)的z组映射到取等于或大于(N-1)/2和((C|p)(C|q)=(-1,-1),(1,-1),(0,-1),(-1,0)的C组。Z的其他组直接映射到右侧的C组。如图8中F所示,只有当C取值(1,-1),(-1,1)时,才满足(C|p)(C|q)=-1。只有关于对应于C的M,才满足(M|N)=-1。
由于可以从图8中可以看出,另一个组将不映射到同一单独的图。因此可以看出在步骤340从z到C的变换是一对一变换。因此可以从上面的描述中理解明文M和密文C通过根据本发明的加密处理保持一一对应。
为了从密文C恢复原始明文M,可以基本执行上面加密处理的一个逆处理。但是,加密处理根据(M|N)的值和z的值是否等于或大于(N+1)/2改变。然而在解密处理中,因为M和z的值事先不知道,(M|N)的值和z的值是否等于或大于(N+1)/2必需从密文C中确定。
回顾图5到图8,表示满足(M|N)=(C|p)(C|q)。根据这个事实可以从密文C中确定(M|N)的值。也可以从图8看出如果s(C)=-1,则z的值是否等于或大于(N+1)/2。这个事实对于从密文C中决定z的值是否等于或大于(N+1)/2是有效的。
如果(C|q)=0,则s(C)是定义为s(C)=(C|p)的值和如果(C|q)≠0,则s(C)=(C|q)。因此,图2所示的解密设备能够从图1所示的加密设备中输出的密文中恢复原始明文,和图4所示的解密处理能够从由图3所示的加密处理产生的密文中恢复原始明之。
虽然已经使用具体项目描述本发明的优选实施例,但是这种描述只是用于说明目的,并且应该理解在不脱离下面权利要求书的精神或范围的情况下可以作出改变和变化。

Claims (6)

1、一种使用公钥N加密明文M以便产生密文C的方法,其中公钥N具有其雅可比符号(2|p)是-1的一个素数的第一私钥p和其雅可比符号(2|q)是1的一个素数的第二私钥q的乘积值pq,该方法包括步骤:
计算所述明文M的雅可比符号(M|N)和所述公钥N的值;
如果雅可比符号(M|N)的值是“-1”,则输出x被设置为所述明文M的值的两倍值2M,和如果雅可比符号(M|N)的值是除“-1”以外的值时则输出x被设置为所述明文M;
计算当所述输出x的平方被所述公钥N除时产生的余数x2mod N和输出y被设置为计算的余数;
计算当所述输出y乘以2被公钥N除时的余数2ymodN;
如果雅可比符号(M|N)的值是“-1”,则选择余数2y mod N作为输出z和如果雅可比符号(M|N)的值是除“-1”以外的值时输出z被设置为所述输出y;
将所述公钥N右移一位和计算通过移动所述公钥N产生的值输出(N-1)/2;
计算当所述输出z乘以-1除以所述公钥N时的余数-z mod N;和
互相比较所述输出(N-1)/2和所述输出z,如果z≤(N-1)/2则选择和输出所述输出z作为所述密文C和输出,并且如果z>(N-1)/2,则设置密文C为所述余数-z mod N。
2、一种使用所述第一和第二私钥p,q和所述公钥N解密由使用公钥N加密明文M产生的密文C以便恢复明文M的方法,其中公钥N具有其雅可比符号(2|p)是-1的一个素数的第一私钥p和其雅可比符号(2|q)是1的一个素数的第二私钥q的乘积值pq,该方法包括步骤:
计算所述密文C的雅可比符号(C|p)的值和所述第一私钥p的值;
计算所述密文C的雅可比符号(C|q)的值和所述第二私钥q的值;
计算所述雅可比符号(C|p)和所述雅可比符号(C|q)的乘积(C|p)(C|q);
如果所述雅可比符号(C|q)的值是“0”则设置输出s(C)为雅可比符号(C|p)和如果所述雅可比符号(C|q)的值是除“0”以外的值则设置输出s(C)为所述雅可比符号(C|q);
计算当所述密文C的值乘以-1除以所述公钥N时的余数-C mod N;
如果所述输出s(C)是“-1”,则设置输出z为所述余数-c modN和如果所述输出s(C)不是“-1”,则设置输出z为所述密文c;
计算当所述输出z乘以1/2除以公钥N时的余数z/2 modN;
如果所述乘积(C|p(C|q)的值是“-1”则设置输出y为所述余数z/2 mod N和如果所述乘积(C|p)(C|q)的值不是“-1”则设置输出y为所述输出z;
如果所述输出y不是0,则输出关于x的二次同余表达式x2=y(mod N)的解中满足(x|p)(x|q)≠1和其值等于或小于(N-1)/2和满足(x|q)(x|q)≠1和其值等于或大于(n+1)/2的解,分别作为第一输出xL和第二输出xG,和如果所述输出y是“0”,则输出“0”作为所述第一输出xL和所述第二输出xG
计算当所述第二输出xG除以2时产生的商xG/2;和
如果所述乘积(C|p)(C|q)的值是“-1”,则选择和输出所述商xG/2作为明文M和如果所述乘积(C|p)(C|q)不是“-1”,则选择和输出所述第一输出xL作为明文M。
3、一种公钥密码方法,包括步骤:
使用根据权利要求1的方法加密明文M为密文C和发送该密文C;和
使用根据权利要求2的方法解密该发送的密文C以便恢复明文M。
4、一种使用公钥N加密明文M以便产生密文C的加密设备,其中公钥N具有其雅可比符号(2|p)是-1的一个素数的第一私钥p和其雅可比符号(2|q)是1的一个素数的第二私钥q的乘积值pq,该加密设备包括:
一个雅可比符号计算电路,用于计算所述明文M的雅可比符号(M|N)和所述公钥N的值;
一个第一乘法器,用于加倍所述明文M的值和输出加倍的结果作为输出2M;
一个第一选择器,用于选择来自所述第一乘法器的输出2M和如果由所述雅可比符号计算电路计算的雅可比符号(M|N)的值是“-1”,则输出该选择的输出作为一个输出x和如果雅可比符号(M|N)的值是除“-1”以外的值时则选择和输出所述M作为一个输出x;
一个平方电路,用于计算当来自所述选择器的所述输出x的平方被所述公钥N除时产生的余数x2mod N和输出计算的余数作为输出y;
一个第二乘法器,用于计算当来自所述平方电路的所述输出y乘以2被公钥N除时产生的余数2y mod N和输出计算的余数;
一个第二选择器,用于如果由所述雅可比符号计算电路计算的雅可比符号(M|N)的值是“-1”,则选择和输出余数2y mod N作为输出z和如果雅可比符号(M|N)的值是除“-1”以外的值时,则选择和输出来自所述平方电路的输出y作为输出z;
一个移位器,用于将所述公钥N右移一位和输出通过移动所述公钥N产生的值的输出(N-1)/2;
一个比较器,用于互相比较来自所述移位器的所述输出(N-1)/2和来自所述第二选择器的所述输出z并且输出比较的结果;
一个第三乘法器,用于计算当所述输出z乘以-1除以所述公钥N时的余数-zmodN;和
一个第三选择器,用于如果如由来自所述比较器的比较结果表示的那样z≤(N-1)/2,则选择和输出来自所述第二选择器的所述输出z作为所述密文C和如果如由来自所述比较器的比较结果表示的那样z>(N-1)/2,则选择和输出来自所述第三乘法器的输出-zmod N作为所述密文C。
5、一种使用所述第一和第二私钥p,q和所述公钥N解密由使用公钥N加密明文M产生的密文C以便恢复明文M的解密设备,其中公钥N具有其雅可比符号(2|p)是-1的一个素数的第一私钥p和其雅可比符号(2|q)是1的一个素数的第二私钥q的乘积值pq,该解密设备包括:
第一雅可比符号计算电路,用于计算所述密文C的雅可比符号(C|p)的值和所述第一私钥p的值;
第二雅可比符号计算电路,用于计算所述密文C的雅可比符号(C|q)的值和所述第二私钥q的值;
第一乘法器,用于计算由雅可比符号计算电路计算的所述雅可比符号(C|p)和由雅可比符号计算电路计算的所述雅可比符号(C|q)的乘积(C|p)(C|q);
第一选择器,用于如果由所述第二雅可比符号计算电路计算的所述雅可比符号(C|q)的值是“0”,则选择和输出由所述第一雅可比符号计算电路计算的雅可比符号(C|p)和如果由所述第二雅可比符号计算电路计算的所述雅可比符号(C|q)的值是除“0”以外的值,则选择和输出由所述第一雅可比符号计算电路计算的所述雅可比符号(C|q)作为输出s(C);
第二乘法器,用于计算当所述密文C的值乘以-1除以所述公钥N时的余数-C mod N;
第二选择器,用于如果来自第一选择器的所述输出s(C)是“-1”,则选择和输出由所述第二乘法器计算的所述余数-c mod N作为输出z和如果来自第一选择器的所述输出s(C)不是“-1”,则选择和输出所述密文C作为输出z;
第一除法器,用于计算当来自所述第二选择器的所述输出z乘以1/2除以所述公钥N时的余数z/2 mod N并且输出该计算的余数;
第三选择器,用于如果由所述第一乘法器计算的所述乘积(C|p)(C|q)的值是“-1”,则选择和输出来自所述第一除法器的所述余数z/2 mod N作为输出y和如果由所述第一乘法器计算的所述乘积(C|p)(C|q)的值不是“-1”,则选择和输出来自所述第二选择器的输出z作为输出y;
一个提取电路,用于如果来自所述第三选择器的所述输出y不是0,则输出关于x的二次同余表达式x2=y(mod N)的解中满足(x|p)(x|q)≠1和其值等于或小于(N-1)/2和满足(x|p)(x|q)≠1和其值等于或大于(N+1)/2的解,分别作为第一输出xL和第二输出xG,和如果来自所述第三选择器的所述输出y是“0”,则输出“0”作为所述第一输出xL和所述第二输出xG
第二除法器,用于计算当来自所述提取电路的所述第二输出xG除以2时产生的商xG/2;和
第四选择器,用于如果由所述第一乘法器计算的所述乘积(C|p)(C|q)的值是“-1”,则选择和输出所述商xG/2作为明文M和如果由所述第一乘法器计算的所述乘积(C|p)(C|q)的值不是“-1”,则选择和输出所述第一输出xL作为明文M。
6、一种公钥密码系统,包括:
根据权利要求4的加密设备;和
根据权利要求5的解密设备。
CNB991192664A 1998-07-16 1999-07-16 具有增强保护以防选择的密文攻击的公钥密码系统 Expired - Fee Related CN1153404C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP20200598A JP3396693B2 (ja) 1998-07-16 1998-07-16 暗号化/復号化装置と公開鍵暗号化システム
JP202005/1998 1998-07-16

Publications (2)

Publication Number Publication Date
CN1253437A CN1253437A (zh) 2000-05-17
CN1153404C true CN1153404C (zh) 2004-06-09

Family

ID=16450357

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991192664A Expired - Fee Related CN1153404C (zh) 1998-07-16 1999-07-16 具有增强保护以防选择的密文攻击的公钥密码系统

Country Status (3)

Country Link
EP (1) EP0973293A3 (zh)
JP (1) JP3396693B2 (zh)
CN (1) CN1153404C (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4117969C2 (de) * 1991-05-31 2000-11-09 Balzers Ag Liechtenstein Vakuumkammer
KR100396740B1 (ko) * 2000-10-17 2003-09-02 학교법인 한국정보통신학원 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법
GB2370471B (en) * 2000-12-20 2004-06-23 Director Government Comm Headq Directoryless Public Key Cryptographic System and Method
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US20080260153A1 (en) * 2007-04-20 2008-10-23 John Almeida Symmetric and asymmetric cryptography using shadow numbers
US8811606B2 (en) * 2007-04-20 2014-08-19 Unoweb Inc. Asymmetric cryptography using shadow numbers
CN111130785B (zh) * 2018-10-31 2022-11-29 中国移动通信集团浙江有限公司 基于实时客流模型生成rsa加密算法密钥的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3055636B2 (ja) * 1991-09-20 2000-06-26 日本電気株式会社 暗号通信符号化装置および復号化装置

Also Published As

Publication number Publication date
JP2000035757A (ja) 2000-02-02
JP3396693B2 (ja) 2003-04-14
EP0973293A3 (en) 2001-04-04
CN1253437A (zh) 2000-05-17
EP0973293A2 (en) 2000-01-19

Similar Documents

Publication Publication Date Title
AU677269B2 (en) A cryptographic method
US6396926B1 (en) Scheme for fast realization of encrytion, decryption and authentication
CN102521785B (zh) 用于图像共享的基于EC-ElGamal算法的同态图像加密和解密方法
CN107086912B (zh) 一种异构存储系统中的密文转换方法、解密方法及系统
WO2001084766A2 (en) System and method for encryption using transparent keys
CN115065555A (zh) 一种信息安全处理方法、系统
Abusukhon et al. Secure network communication based on text-to-image encryption
CN107104796A (zh) 一种基于非交换群上的对称乘法同态加密方法及装置
Arboleda Secure and fast chaotic el gamal cryptosystem
JunLi et al. Email encryption system based on hybrid AES and ECC
CN100452695C (zh) 椭圆曲线加密解密方法和装置
CN1153404C (zh) 具有增强保护以防选择的密文攻击的公钥密码系统
US20080019508A1 (en) Public key cryptographic methods and systems with rebalancing
CN110912673B (zh) 具有双解密机制的加性同态加解密方法
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
Dawson et al. An enhanced RSA algorithm using Gaussian interpolation formula
CN108270565A (zh) 一种数据混合加密方法
Pinch Extending the Wiener attack to RSA-type cryptosystems
US20020064278A1 (en) High speed RSA public key cryptographic apparatus and method
US20020025034A1 (en) Cryptographic encryption method using efficient elliptic curve
Rushdi et al. A pedagogical multi-key multi-stage package to secure communication channels
Al Saffar Steganography Algorithm Based RSA Cryptosystem
Cidjeu et al. Some elliptic curve based crypto-compression schemes for medical images
Hasan et al. Digital Image Encryption Based On Elliptic Curve Cryptography
CN113708925B (zh) 一种普通密码算法密钥的群组使用方法及系统

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: RICOH SYSTEMDEVELOPMENT CO., LTD.

Free format text: FORMER OWNER: NIPPON ELECTRIC CO., LTD.

Owner name: NONE

Free format text: FORMER OWNER: RICOH SYSTEMDEVELOPMENT CO., LTD.

Effective date: 20030109

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20030109

Address after: Tokyo, Japan

Applicant after: Ricoh System Development Co., Ltd

Applicant before: NEC Corp.

Co-applicant before: Ricoh System Development Co., Ltd

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: 20040609

Termination date: 20100716