CN1381782A - 信息安全装置,质数生成装置,和质数生成方法 - Google Patents

信息安全装置,质数生成装置,和质数生成方法 Download PDF

Info

Publication number
CN1381782A
CN1381782A CN02105566A CN02105566A CN1381782A CN 1381782 A CN1381782 A CN 1381782A CN 02105566 A CN02105566 A CN 02105566A CN 02105566 A CN02105566 A CN 02105566A CN 1381782 A CN1381782 A CN 1381782A
Authority
CN
China
Prior art keywords
prime number
prime
generation unit
mod
generate
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
Application number
CN02105566A
Other languages
English (en)
Other versions
CN1267816C (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 CN1381782A publication Critical patent/CN1381782A/zh
Application granted granted Critical
Publication of CN1267816C publication Critical patent/CN1267816C/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • 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/3033Public 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 details relating to pseudo-prime or prime number generation, e.g. primality test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7204Prime number generation or prime number testing
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/80Wireless

Abstract

信息安全装置接收质数q的输入,以及生成大于质数q的质数N。在信息安全装置中,部分信息生成单元生成满足2×u×q+1≠0modLi(i=1,2…,n)的数u。随机数生成单元生成随机数R′。判断目标生成单元通过使用数u和随机数R′生成一个数R=u+L1×L2×…×Ln×R′和N=2×R×q+1。质数性判决单元通过使用由判决目标生成单元生成的数N和数R来判决数N的质数性。

Description

信息安全装置,质数生成装置, 和质数生成方法
                  发明背景
技术领域
本发明涉及使用质数生成的信息安全技术。
背景技术
本专利申请是基于在日本提交的专利申请No.2001-117842,该专利申请的内容在此引用,以供参考。
近年来,使用计算机和通信技术的数据通信变得很盛行。保密通信或数字签名技术被使用于这样的数据通信。
保密通信技术允许进行通信而不把通信内容泄漏给第三方。同时,数字签名技术使得接收机能够验证通信内容是否正确,或信息是否来自所说明的发送者。
1.公共密钥密码
这样的保密通信或数字签名技术使用被称为公共密钥加密的密码。公共密钥加密提供一种用于管理许多用户的单独的加密密钥的方便方法,所以它成为用于与大量用户进行通信的基本技术。在基于公共密钥加密的保密通信中,不同的密钥被使用于加密和解密,其解密密钥保持为秘密的,以及加密密钥被做成为公共的。此后,被保持为秘密的解密密钥被称为“秘密密钥”,而被做成为公共的加密密钥被称为“公共密钥”。
RSA(Rivest-Shamir-Adelman)密码系统是一种公共密钥密码。RSA密码系统的安全性依赖于整数的因子分解(factorize)的计算困难性。质数因子分解问题为如下。当给定整数n=p×q(其中p和q是质数)时,可以求出p和q。这里,“×”代表通常的乘法。
在T.Okamoto和K.Ohta(1990)的“Encryption,ZeroKnowledge Proofs,and Number Theory(加密,零点知识证明和数论)”,Kyoritsu出版,pp.144-151中详细地描述了质数因子分解问题。(使用质数因子分解问题的RSA密码系统)
使用质数因子分解问题的RSA密码系统被说明如下。
(1)密钥的生成
公共密钥和秘密密钥按以下的方式生成。
(a)随机选择两个大的质数p和q,以及形成它们的乘积n=p×q。
(b)找出p-1和q-1的最小公倍数,即,L=LCM(p-1,q-1)。
(c)随机选择小于L并与L为互质的整数e:
              1≤e≤L-1,GCD(e,L)=1
其中GCD(e,L)表示e和L的最大公因子。
(d)计算d=e-1mod L。
整数对n和e是公共密钥,而整数对n和d是秘密密钥。
(2)加密文本的生成
普通文本通过使用公共密钥(n,e)被加密,以得到加密文本c:
                    c=me mod n
(3)解密的文本的生成
加密文本通过使用秘密密钥(n,d)被解密,以得到解密的文本m′:
                  m′=cd mod n
这里,
                  m′=cd mod n
                     =(me)d mod n
                     =m**(e×d mod L)mod n
                     =m1 mod n
                     =m mod n
所以,解密的文本m′与明码文本m相一致。
应当指出,在本说明书中,算子“**”代表指数,即,A**x=Ax,其中A被自乘x次。
在T.Okamoto和H.Yamamoto的“Modern Encryption(现代加密法)”,(1997)Sangyo Tosho出版,pp.110-113中详细地描述了RSA密码系统。
2.相关技术1-概率性的质数生成算法
为了在以上的使用质数因子分解问题的RSA密码系统中生成公共密钥,执行质数的生成。在A.J.Menezes,P.C.van Oorschot和S.A.Vanstone的“Handbook of Applied Cryptograph(应用密码手册)”,(1997)CRC Press出版,pp.145-154中详细描述了质数的生成。
作为传统技术的概率性的质数生成算法被说明如下。概率性的质数生成算法应用Rabin-Miller测试法来确定数的质数性。在A.J.Menezes,P.C.van Oorschot和S.A.Vanstone的“Handbook ofApplied Cryptograph(应用密码手册)”,(1997)CRC Press出版,pp.138-140中详细描述了Rabin-Miller测试法。Rabin-Miller测试法确定一个具有高的质数概率的数为质数。这并不意味着,该数肯定是质数。
假设事先给定自然数x和小的质数L1,L2,…,Ln。作为一个例子,L1,L2,…,Ln是2,3,5,7。
概率性的质数生成算法通过重复以下的步骤而生成一个质数。
(步骤1)分配一个自然数给变量N作为初始值。
(步骤2)找出不能被在大于变量N的数之间的、L1,L2,…,Ln的任意一个数整除的最小的数。把这个数分配给变量N。
(步骤3)测试变量N的质数性。这里,质数性测试是通过重复Rabin-Miller测试十次而完成的。如果变量能通过质数性测试,则输出该变量N为质数。如果变量N通不过质数性测试,则回到步骤2,重复处理过程,直至输出一个质数为止。
这里,在步骤2找出不能被小的质数2,3,5,7的任一个数整除的数,具有减少进行质数性测试的次数的效果。换句话说,步骤2把要测试其质数性的数限制为不能被2,3,5,7的任一个数整除的那些数。有47个数,其中2xx+1 mod 210不能被2,3,5,7的任一个数整除。因此,如果把要测试其质数性的数限制为不能被2,3,5,7的任一个数整除的那些数,则进行质数性测试的次数可被减小47/210倍。
另一方面,即使在步骤2得到的变量N是复合数(即,不是质数),变量N至多具有1/4机会能通过Rabin-Miller测试。也就是说,即使变量N是复合数,它也可能通过Rabin-Miller测试。因此,以上的概率性的质数生成算法可以只是概率性地(而不是肯定地)生成一个质数。(概率性的质数生成算法的计算复杂性)
接着,说明使用以上的概率性的质数生成算法生成一个质数的计算复杂性。这里,计算复杂性是按模数的取幂(modularexponentiation)的次数来度量的。
按照以上的概率性的质数生成算法,对于一个可能是质数的数的Rabin-Miller测试重复进行十次。下面计算对于一个复合数执行Rabin-Miller测试的平均次数。
令Pi是执行第i次测试的概率。那麽,执行第(i+1)次测试的概率Pi+1不大于执行第i次测试的概率Pi与通过该第i次测试的概率1/4的乘积。这就是说,执行第(i+1)次测试的概率是
                    Pi+1≤Pi×1/4
因为第一次测试被肯定地执行,执行第一次测试的概率是1,也就是,P1=1。因此,
                   Pi≤(1/4)**(i-1)
对于一次Rabin-Miller测试执行一次模数的取幂。以上的概率性的质数生成算法在步骤3至多进行十次Rabin-Miller测试。所以,对于一个复合数执行的模数的取幂的平均次数是 Σ i = 1 10 P i ≤ Σ i = 1 10 ( 1 / 4 ) * * ( i - 1 ) = 1.33
通常,当N被任意选择时,N作为质数的概率约为1/(ln N)。这意味着,当平均进行(ln N)次质数性测试时,可以找到一个质数。这里,(ln N)是N的自然对数。因为那些能被2,3,5,7中的任一个数整除的数已事先被排除,为找到一个质数要进行质数性测试的平均次数可被减小 (2×3×5×7)/210=48/210。其中 (2×3×5×7)是在小于210的自然数中间、相对于小质数2,3,5,7为互质的数的个数。所以,在直到找到一个质数之前对于其质数性进行测试的数的个数,也就是被判断为复合数与最后被判断为质数的数的总共的数目是,
                  8/35×(ln N)
因为最后的数是质数,所以经受质数性测试的复合数的数目是
                  8/35×(ln N)-1
为此,为找到一个质数要执行的模数的取幂的次数不大于 ( 8 / 35 × ( ln N ) - 1 ) × ( Σ i = 1 10 1 / ( 4 * * ( n - 1 ) ) ) + 10
作为平均.例如,当N是512比特时,模数的取幂的次数至多是116.8。另一方面,如果质数性测试不限于不能被2,3,5,7的任一个数整除的数,也就是,如果所有的数都经受质数性测试,则为找到一个质数要执行的模数的取幂的次数不大于 ( ( ln N ) - 1 ) × ( Σ i = 1 10 1 / ( 4 * * ( n - 1 ) ) ) + 10
作为平均.当N是512比特时,模数的取幂的次数至多是481.9。因此,按照相关技术1,模数的取幂的次数可被减小到约1/4。然而,这个方法具有上述不能生成肯定的质数的问题。
3.相关技术2-确定的质数生成算法
下面说明使用能生成具有绝对确定性的质数的Maurer算法的一种确定的质数生成算法。在A.J.Menezes,P.C.van Oorschot,和S.A.Vanstone的“Handbook of Applied Cryptograph(应用密码手册)”,(1997)CRC Press出版,pp.152-153中详细描述了Maurer算法。
确定的质数生成算法通过重复以下步骤而生成一个质数。这里,事先给定其比特长度用1enq表示的质数q。
(步骤1)选择(1enq-1)比特的随机数R,其中随机数R的第一比特被设置为肯定是1。
(步骤2)按照以下公式计算数N:
                   N=2×q×R+1
(步骤3)查看以下的第一和第二准则是否满足,以及如果这两个准则都满足,判断数N是质数。否则,判断数N不是质数。
        2N-1=mod N              (第一准则)
        GCD(22R-1,N)=1         (第二准则)
如果数N被判断为质数,则输出数N作为一个质数。否则,回到步骤1以及重复程序过程直至输出一个质数为止。
这个质数性测试被称为Pocklington测试,以及在在A.J.Menezes,P.C.van Oorschot和S.A.Vanstone的“Handbook of AppliedCryptograph(应用密码手册)”,(1997)CRC Press出版,pp.144中详细地进行描述。
按照Pocklington测试,如果在公式N=2×q×R+1中的q是质数以及第一和第二准则被满足,则N肯定是质数。这使得质数性能够被确定地判断,通过它有可能生成一个肯定的质数。
因此,Maurer的确定的质数生成算法根据尺寸为1enq的质数q来生成尺寸为2×1enq的质数。
换句话说,为了通过使用Maurer的确定的质数生成算法来生成预定的长度的质数,需要重复进行生成不大于预定的长度的质数的生成。例如,为了生成512比特的质数,首先根据事先给定的8比特质数生成16比特的质数。接着根据16比特质数生成32比特的质数,然后根据32比特质数生成64比特的质数。质数生成可以这样地重复进行,使得结果可得到512比特的质数。
这里应当指出,以上的第二准则可以用下式代替:
             22R≠1mod N(确定的质数生成算法的计算复杂性)
使用Maurer的确定的质数生成算法来生成一个质数的计算复杂性为如下。
这里,计算复杂性是按对于512比特的数的模数的取幂的次数来度量的。这就是说,考虑使用256比特的数生成512比特的质数的情形。
通常,当任意选择正整数R时,该正整数R是质数的概率约为1/(1n R)。为此,为找到一个512比特的质数进行Pocklington测试的次数可被估计为ln 2512。由于在相关技术2中质数测试只对于奇数进行,Pocklington测试的次数是(ln 2512)/2。
满足第一准则的概率至多为1/4,这等于能通过Rabin-Miller测试的概率。因此,对于一个复合数执行的模数的取幂的次数不大于1+1/4。同时,对于一个质数执行的模数的取幂的次数是2。
所以,从256比特的质数生成512比特的质数所执行的512比特模数的取幂的次数不大于
              (1+1/4)((ln 2512)/2-1)+2=222.6
同样地,在从128比特的质数生成256比特质数的情形下,Pocklington测试的次数是(ln 2256)/2。所以,为生成256比特的质数所执行的256比特模数的取幂的次数不大于
             (1+1/4)((ln 2256)/2-1)+2
模数的取幂的计算复杂性取决于模数N,它是处在N3的量级。所以,八次256比特模数的取幂可被看作为等价于一次512比特模数的取幂。
当以相同的方式考虑其它情形时(诸如从64比特的质数生成128比特质数)时,相关技术2的总的计算复杂性可以按512比特的模数的取幂的次数来度量。
这里,生成16比特或32比特质数的计算复杂性比起生成64比特、128比特、256比特或512比特质数的计算复杂性小得多,这样,对于16比特和32比特质数的计算复杂性可被忽略。为此,当被表示为512比特模数的取幂的次数时,相关技术2的总的计算复杂性不大于
         (1+1/4)×{((ln 264)/2-1)/512
                  +((ln 2128)/2-1)/64
                  +((ln 2256)/2-1)/8
                  +((ln 2512)/2-1)}
          +2(1/512+1/64+1/8+1)
          =237.4
相关技术2的计算复杂性至少是相关技术1的计算复杂性(它不大于116.8)的两倍。因此,相关技术2比起相关技术1具有更高的计算复杂性,虽然它能确定地生成质数。
总之,质数生成具有以下的问题。如果采用小的计算复杂性的算法,则不能确定地生成质数。另一方面,如果采用能够确定地生成质数的算法,则计算复杂性增加。
                    发明内容
本发明的目的是解决以上的问题,以及提供能够以小的计算复杂性来确定地生成质数的质数生成装置、质数生成方法、质数生成程序、存储质数生成程序的记录媒体、以及信息安全装置。
所述目的可以由一种信息安全装置来达到,该信息安全装置通过生成两个质数以及使用对于该两个质数的乘法,从而基于因子分解的难操作性而安全和可靠地处理预定的信息,该装置包括:获取单元,用于获取一个已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 modLi(i=1,2,…,n);生成单元,用于生成一个其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数被排除在数N的生成以外;以及判断单元,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
通过这样的构造,质数可被确定地生成。另外,当与传统的技术相比较时,计算时间可以缩短。
这里,生成单元可包括:随机数生成单元,用于生成一个其长度为(Lenq-LenL-1)的随机数R′,其中Lenq是质数q的比特长度,以及LenL是(L1×L2×…×Ln)的比特长度;以及判断目标生成单元,用于:
(a)通过使用随机数R′和质数L1,L2,…,Ln生成一个数R
             R=L1×L2×…×Ln×R′
以及(b)通过使用质数q和数R,生成一个数N
             N=2×R×q+1
其中判决单元通过使用由判决目标生成单元生成的数N和数R来判决数N的质数性。
通过这样的构造,计算时间可以缩短。
这里,生成单元可包括:
部分信息生成单元,用于通过使用质数q,生成一个满足下式的数u:
         2×u×q+1≠0mod Li(i=1,2,…,n)
随机数生成单元,用于生成随机数R′;
判断目标生成单元,用于:(a)通过使用质数L1,L2,…,Ln、数u和随机数R′生成一个数R
         R=u+L1×L2×…×Ln×R′,以及(b)通过使用质数q和数R,生成一个数N
         N=2×R×q+1,其中判决单元通过使用由判决目标生成单元生成的数N和数R来判决数N的质数性。
通过这样的构造,计算时间可以缩短,而不限制可被生成的质数的类型。
                  附图说明
从结合显示了本发明的具体实施例的附图作出的本发明的以下的说明,能了解本发明的这些和其它目的、优点和特性。
其中:
图1是显示内容传递系统的方框图;
图2是显示图1所示的存储卡的结构的方框图;
图3是显示图2所示的质数生成单元的结构的方框图;
图4是显示图1所示的PC的结构的方框图;
图5是显示图1所示的传递服务器装置的结构的方框图;
图6是显示内容传递系统的运行的流程图;
图7是显示质数生成单元的运行的流程图;
图8是显示另一个质数生成单元的结构的方框图;
图9是显示图8所示的质数生成单元的运行的流程图;以及
图10是显示加密通信系统的运行的流程图。
              具体实施方式
1.第一实施例
下面说明本发明的一个实施例的内容传递系统1。
1.1内容传递系统1的结构
内容传递系统1包括存储器卡10、个人数字助理(PDA)20、头戴式耳机21、个人计算机(PC)30、传递服务器装置40、和移动电话50,如图1所示。
传递服务器装置40加密音乐的数字作品,以及把加密的数字作品通过互联网60发送到PC 30。PC 30接收加密的数字作品。
用户把存储器卡10插入到PC 30。PC 30把加密的数字作品写入到存储器卡10。存储器卡10解密已加密的数字作品,得到原先的数字作品,以及存储得到的数字作品。用户把存储器卡10插入到PDA 20。PDA 20被连接到头戴式耳机21。PDA 20把被写入到存储器卡10的数字作品变换成电信号,以及把电信号输出到头戴式耳机21。头戴式耳机21把电信号变换成声音以及输出该声音。
另外,传递服务器装置40加密音乐的数字作品,以及把加密的数字作品通过互联网60、移动电话网62和无线基站61发送到移动电话50。移动电话50接收加密的数字作品。
用户把存储器卡10插入到移动电话50。移动电话50把加密的数字作品写入到存储器卡10。存储器卡10解密已加密的数字作品,得到原先的数字作品,以及存储得到的数字作品。移动电话50把被存储在存储器卡10的数字作品变换成电信号,把电信号变换成声音以及输出该声音。
因此,用户可以从传递服务器装置40接收音乐的数字作品,以及收听播放音乐。
1.2存储器卡10
存储器卡10包括质数生成单元101、生成控制单元102、质数存储单元103、随机数生成单元104、秘密密钥存储单元105、公共密钥生成单元106、公共密钥存储单元107、解密单元108、存储器单元109、控制单元112、鉴权单元113、以及发送/接收单元114、如图2所示。
存储器卡10实际上由计算机系统(主要由微处理器、ROM和RAM组成)实现。计算机程序被存储在RAM中,微处理器按照这个计算机程序运行,达到存储器卡10的作用。
(1)秘密密钥存储单元105
秘密密钥存储单元105具有一个区域,用于存储作为秘密密钥的一对数n和d。
(2)公共密钥存储单元107
公共密钥存储单元107具有一个区域,用于存储作为公共密钥的一对数n和e。
(3)存储器单元109
存储器单元109由通用区域111和保密区域110组成。通用区域111和保密区域110被使用来存储信息。通用区域111可被外部装置自由地读出/写入。另一方面,保密区域110只有在鉴权单元113鉴权一个其中插入存储器卡10的装置时才可被读出/写入。
(4)质数存储单元103
质数存储单元103具有一个区域,用于存储质数Pa和Pb
(5)生成控制单元102
生成控制单元102把质数q、质数q的比特长度Lenq、不同于2的小的质数L1,L2,…,Ln、以及(L1×L2×…×Ln)的比特长度LenL输出到质数生成单元101。生成控制单元102然后从质数生成单元101接收质数p,以及把质数p写入到质数存储单元103作为质数pa
接着,生成控制单元102再次把质数q、质数q的比特长度Lenq、不同于2的小的质数L1,L2,…,Ln、以及(L1×L2×…×Ln)的比特长度LenL输出到质数生成单元101。生成控制单元102然后从质数生成单元101接收质数p,以及把质数p写入到质数存储单元103作为质数pb
质数q、质数q的比特长度Lenq、不同于2的小的质数L1,L2,…,Ln、以及(L1×L2×…×Ln)的比特长度LenL在后面详细描述。
因此,生成控制单元102控制质数生成单元101两次,以便生成两个质数。因为质数生成单元101使用随机数来生成质数,正如后面描述的,所以由质数生成单元101生成的第二质数与由质数生成单元101生成的第一质数具有非常低的相符合的概率。然而,如果第二质数碰巧与第一质数相一致,则生成控制单元102可以控制质数生成单元101去重新生成第二质数,以确保这两个质数肯定是互相不同的。
并且,生成控制单元102在两个质数生成操作过程中的每一个过程中使用一组由于质数q、比特尺寸Lenq、质数L1,L2,…,Ln和比特尺寸LenL等组成的参数,但是生成控制单元102可以在这两个质数生成操作过程中的每一个过程中使用一组不同的参数。
更详细地,生成控制单元102在第一质数生成操作过程中使用一组由质数q、质数q的比特长度Lenq、n个质数L1,L2,…,Ln、以及比特长度LenL等组成的参量,以及在第二质数生成操作过程中使用一组由质数q′、质数q′的比特长度Lenq′、j个不同于2的质数L1′,L2′,…,Lj′、以及(L1′×L2′×…×Lj′)的比特长度LenL等组成的参量。
这里,q≠q′以及n≠j。另外,(L1,L2,…,Ln)≠(L1′,L2′,…,Lj′)意味着(L1,L2,…,Ln)中至少一个质数不同于(L1′,L2′,…,Lj′)中的任一个质数。
(6)质数生成单元101
质数生成单元101包括随机数生成单元131、判断目标生成单元132、第一质数性判断单元133、第二质数性判断单元134、以及控制单元135,如图3所示。
当连同质数q的比特长度Lenq给定满足下式的质数q:
                  q=1 mod L1
                  q=1 mod L2
                  …
                  q=1 mod Ln时,
质数生成单元101输出一个其比特长度是质数q的比特长度的两倍的质数p。
这里,L1,L2,…,Ln是不同于2的、小的质数。
另外,(L1×L2×…×Ln)的比特长度LenL是事先给定的。
例如,L1,L2,…,Ln是小于输入质数q的预期的比特长度的质数,诸如L1=3和L2=5。(随机数生成单元131)
随机数生成单元131从生成控制单元102接收比特长度Lenq和比特长度LenL,以及使用它们来生成一个其比特长度是(Lenq-LenL-1)的随机数R′。随机数生成单元131把随机数R′输出到判断目标生成单元132。
随机数生成单元131也从第一质数性判断单元133接收第一判断信息,以及从第二质数性判断单元134接收第二判断信息(第一和第二判断信息在后面详细描述)。在接收第一或第二判断信息后,随机数生成单元131通过使用比特长度Lenq和比特长度LenL来重新生成一个其比特长度是(Lenq-LenL-1)的随机数R′。随机数生成单元131把随机数R′输出到判断目标生成单元132。(判断目标生成单元132)
判断目标生成单元132从生成控制单元102接收质数q,以及从随机数生成单元131接收随机数R′。
判断目标生成单元132使用质数q和随机数R′来生成满足以下公式的数R和N:
              R=L1×L2×…×Ln×R′
              N=2×R×q+1
判断目标生成单元132把数R输出到第二质数性判断单元134,以及把数N输出到第一质数性判断单元133和第二质数性判断单元134。(第一质数性判断单元133)
第一质数性判断单元133从判断目标生成单元132接收数N,以及判断以下的判断公式1是否成立:
              2N-1=1 mod N    (判断公式1)
如果判断公式1成立,则第一质数性判断单元133把表示判断公式1成立的第一判断信息输出到第二质数性判断单元134。否则,第一质数性判断单元133把表示判断公式1不成立的第一判断信息输出到随机数生成单元131。(第二质数性判断单元134)
第二质数性判断单元134从判断目标生成单元132接收数N和R。第二质数性判断单元134也从第一质数性判断单元133接收表示判断公式1成立的第一判断信息。
在接收到第一判断信息后,第二质数性判断单元134使用数N和R来判断以下的判断公式2是否成立:
            22R≠1 mod N    (判断公式2)
如果判断公式2成立,则第二质数性判断单元134把数N作为质数p输出到生成控制单元102。否则,第二质数性判断单元134把表示判断公式2不成立的第二判断信息输出到随机数生成单元131。(控制单元135)
控制单元135控制质数生成单元101的每个构成元件。(质数生成单元101的验证)
由第一和第二质数性判断单元133和134所作出的判断是Pocklington测试。在E.Okamoto的“An Introduction toEncryption Theory(加密理论导论)”,(1993)Kyoritsu出版,p.21中和A.J.Menezes,P.C.van Oorschot,和S.A.Vanstone的“Handbook of Applied Cryptograph(应用密码手册)”,(1997)CRCPress出版,p.144中详细描述了Pocklington测试。
如果在N=2×R×q+1中的q是质数,以及以下二式成立:
                 2N-1=1 mod N
                 22R≠1 mod N
则N是质数。因此,质数生成单元101输出数N作为质数。另外,由于随机数R′的比特长度是(Lenq-LenL-1),数R的比特长度是Lenq-1。所以数N的比特长度是2×Lenq。
(7)公共密钥生成单元106
公共密钥生成单元106从质数存储单元103读出质数pa和pb。公共密钥生成单元106把pa和pb相乘,以求出整数n=pa×pb,以及把整数n写入到秘密密钥存储单元105和公共密钥存储单元107。公共密钥生成单元106也计算数(pa-1)和(pb-1)的最小公倍数,即,L=LCM(pa-1,pb-1)。
公共密钥生成单元106从随机数生成单元104接收随机数e,以及计算数d=e-1mod L。公共密钥生成单元106把数d写入到秘密密钥存储单元105,以及把随机数e写入到公共密钥存储单元107。
(8)随机数生成单元104
随机数生成单元104生成随机数e,以及把随机数e输出到公共密钥生成单元106。
(9)发送/接收单元114
发送/接收单元114从公共密钥存储单元107读出整数n和随机数e,以及把它们输出到PC 30。
另外,发送/接收单元114通过互联网60和PC 30从传递服务器装置40接收加密文本c,以及把加密文本c写入到存储器单元109的通用区域111。
(10)解密单元108
解密单元108从通用区域111读出加密文本c,以及从秘密密钥存储单元105读出数d和整数n。解密单元108通过使用数d和整数n按照以下的公式解密加密文本c,以便以得到解密的文本m′
                   m′=cdmod n
解密单元108把解密的文本m′写入到存储器单元109的保密区域110。
(11)鉴权单元113
鉴权单元113鉴权一个其中插入了存储器卡10的装置。如果鉴权成功,则鉴权单元113许可该装置读/写存储器单元109的保密区域110。
(12)控制单元112
控制单元112控制存储器卡10的每个构成元件。
1.3 PC 30
PC 30包括发送/接收单元301、鉴权单元302、控制单元303、发送/接收单元304、输入单元305、和显示单元306,如图4所示。
PC 30实际上由计算机系统实现,其主要由微处理器、ROM、RAM、硬盘单元、LCD(液晶显示)单元、键盘、和鼠标组成。计算机程序被存储在RAM或硬盘单元中,微处理器按照这个计算机程序运行,达到PC 30的作用。
PC 30从存储器卡10接收整数n和随机数e,通过互联网60把它们发送到传递服务器装置40。PC 30也通过互联网60从传递服务器装置40接收加密文本c,以及把它发送到存储器卡10中的发送/接收单元114。
1.4传递服务器装置40
传递服务器装置40包括包括发送/接收单元401、公共密钥存储单元402、加密单元403、控制单元404、和信息存储单元405,如图5所示。
像PC 30一样,传递服务器装置40是一个计算机系统,其中包括微处理器,它按照计算机程序运行,完成传递服务器装置40的作用。
(1)信息存储单元405
信息存储单元405事先存储明码文本m。具体地,明码文本m是数字音乐信息。
(2)公共密钥存储单元402
公共密钥存储单元402具有一个区域,用于存储一对整数n和随机数e作为公共密钥。
(3)发送/接收单元401
发送/接收单元401通过互联网60从PC 30接收整数n和随机数e,以及把它们写入到公共密钥存储单元402。
发送/接收单元401也从加密单元403接收加密文本c,以及通过互联网60把它发送到PC 30。
(4)加密单元403
加密单元403从信息存储单元405读出明码文本m,以及从公共密钥存储单元402读出整数n和随机数e。加密单元403通过使用整数n和随机数e按照以下的公式加密明码文本m,以生成加密文本c
               c=me mod n
加密单元403把加密文本c输出到发送/接收单元401。
(5)控制单元404
控制单元404控制传递服务器装置40的每个构成元件。
1.5 PDA 20和头戴式耳机21
PDA 20从在存储器卡10中的存储器单元109的保密区域110读出解密的文本m′,把解密的文本m′变换成模拟音频信号,以及把它输出到头戴式耳机21。
头戴式耳机21把音频信号变换成声音,以及输出该声音。
1.6移动电话50
移动电话50具有能够通过使用无线电波与另一个电话通信的移动电话的结构,以及它也具有与PC 30和PDA 20相同的结构。
移动电话50实际上由一个计算机系统实现,它主要由微处理器、ROM、RAM、LCD单元、输入单元、通信单元、话筒和扬声器组成。计算机程序被存储在RAM中,并且微处理器按照这个计算机程序运行,以实现移动电话50的作用。
移动电话50从存储器卡10接收整数n和随机数e,以与PC 30相同的方式,通过互联网60把它们发送到传递服务器装置40。移动电话50也通过互联网60从传递服务器装置40接收加密文本c,以及把它发送到存储器卡10中的发送/接收单元114。
另外,移动电话50以与PDA 20相同的方式,把被存储在存储器卡10中数字作品变换成电信号,把电信号变换成声音,以及输出该声音。
1.7内容传递系统1的运行
(1)内容传递系统1的总的运行
下面参照图6说明内容传递系统1的运行。
在存储器卡10中的质数生成单元101随机地生成质数pa和pb,以及把它们写入到质数存储单元103(S101)。公共密钥生成单元106从质数存储单元103读出pa和pb,以及把它们互相相乘,以形成n=pa×pb。公共密钥生成单元106把整数n写入到秘密密钥存储单元105和公共密钥存储单元107。公共密钥生成单元106也计算数(pa-1)和(pb-1)的最小公倍数,即,L=LCM(pa-1,pb-1)(S102)。随机数生成单元104生成随机数e,以及把它输出到公共密钥生成单元106(S103)。公共密钥生成单元106接收随机数e,以及计算数d=e-1modL。公共密钥生成单元106把数d写入到秘密密钥存储单元105,以及把随机数e写入到公共密钥存储单元107(S104)。发送/接收单元114从公共密钥存储单元107读出整数n和随机数e,以及把它们输出到PC 30(S105)。PC 30通过互联网60把整数n和随机数e发送到传递服务器装置40。
在传递服务器装置40中的公共密钥存储单元402通过互联网60和发送/接收单元401从PC 30接收整数n和随机数e,以及存储它们(S106)。加密单元403从信息存储单元405读出明码文本m,从公共密钥存储单元402读出整数n和随机数e,以及通过使用整数n和随机数e,按照以下的公式加密明码文本m,以生成加密文本c(S107):
                  c=me mod n
(S107)。加密单元403把加密文本c通过发送/接收单元401和互联网60输出到PC 30(S108)。PC 108接收加密文本c,把它发送到存储器卡10中的发送/接收单元114。发送/接收单元114把加密文本c写入到存储器单元109的通用区域111(S109)。解密单元108从通用区域111读出加密文本c,从秘密密钥存储单元105读出数d和整数n,以及通过使用数d和整数n按照以下的公式解密加密文本c,以得到解密的文本m′
                   m′=cd mod n
解密单元108把解密的文本m′写入到存储器单元109的保密区域(S110)。
PDA 20从在存储器卡10中的存储器单元109的保密区域110读出解密的文本m′(S111),以及把它变换成模拟音频信号。PDA 20把音频信号输出到头戴式耳机21。头戴式耳机21把音频信号变换成声音,以及输出该声音(S112)。
这里应当指出,以上的存储器卡10的运行是通过控制单元112控制存储器卡10的每个构建元件而完成的。
(2)质数生成单元101的运行
下面参照图7说明质数生成单元101的运行。
随机数生成单元131生成(Lenq-LenL-1)比特的随机数R′,以及把它输出到判断目标生成单元132(S132)。判断目标生成单元132计算数R和N,把数N输出到第一质数性判断单元133,以及把数R和N输出到第二质数性判断单元134(S133)。第一质数性判断单元133判断2N-1=1 mod N(判断公式1)是否成立。如果判断公式1不成立(S134:NG),则运行回到步骤S132。
如果判断公式1成立(S134:OK),则第二质数性判断单元134判断22R≠1 mod N(判断公式2)是否成立。如果判断公式2不成立(S135:NG),则运行回到步骤S132。如果判断公式2成立(S135:OK),则第二质数性判断单元134把数N作为质数p输出到生成控制单元102,由此,完成运行。
这里,应当指出,以上的质数生成单元101的运行是通过控制单元135控制质数生成单元101的每个构建元件而完成的。
1.8计算复杂性的评估
下面说明质数生成单元101的计算复杂性。
令L1=3,L2=5,L3=7,n=3,以及Lenq是256比特。在这种情形下,对于2×Lenq(=512比特)的模数的取幂的次数被如下地估计。
通常,当随机地选择数R时,R是质数的概率约为1/(ln R)。所以,为了生成512比特的质数要执行的Pocklington测试的次数可被估计为ln(2512)。这里,ln R是R的自然对数。
在第一实施例中,
                 N=2×R×q+1
                  =2×L1×L2×…×Ln×R′×q+1
所以,
                 N=1 mod 2
                 N=1 mod L1
                 N=1 mod L2
                 …
                 N=1 mod Ln
因此,N不能被L1,L2,…,Ln中的任一个数整除。
不能被2,L1,L2,…,Ln的任一个数整除的、作为Mod(2×L1×L2×…×Ln)的数的概率是
    =(2-1)×(L1-1)×(L2-1)×…×(Ln-1)
      /(2×L1×L2×…×Ln)
这里,
Figure A0210556600252
被称为欧拉函数,以及在S.Tsujii和M.Kasahara的“Cryptograph and Information Security(密码与信息安全)”,(1990)Shokodo出版,pp.11-12中被详细描述。
所以,为了找到一个质数,这些数经受Pocklington测试的次数可被减小的倍数为:
             (2-1)×(L1-1)×(L2-1)×…×(Ln-1)
             /(2×L1×L2×…×Ln)
由于L1=3,L2=5,L3=7,和n=3,
          (2-1)×(3-1)×(5-1)×(7-1)/(2×3×5×7)
          =48/210
          =8/35
这是与相关技术1相同的。
同时,能通过第一质数性判断单元133的测试的概率是与能通过Rabin-Miller测试的概率相同的,也就是,1/4或更小。因此,对于一个复合数执行的模数的取幂的次数不大于1+1/4。另一方面,对于一个质数执行的模数的取幂的次数是2。
所以,为了从256比特质数生成512比特的质数所执行的512比特模数的取幂的次数不大于
        (1+1/4)((ln 2512)×8/35-1)+2=89.5
在第一实施例中,512比特(2×Lenq)的质数是从256比特(Lenq)的质数生成的。这里,通过循环使用质数生成单元101,512比特的质数可以从很容易找到的16比特的质数中得到。
因此,当以相同的方式考虑从128比特的质数生成256比特的质数的情形时,为了生成256比特的质数所执行的256比特模数的取幂的次数不大于
            (1+1/4)((ln 2256)×8/35-1)+2=45.1
模数的取幂的计算复杂性取决于模数N,以及它大约是N3的量级。所以,八次256比特模数的取幂可被看作为等价于一次512比特模数的取幂。
当以相同的方式考虑诸如从64比特的质数生成128比特的质数的其它情形时,质数生成单元101的总的计算复杂性可以按512比特模数的取幂的次数来度量。这里,生成16比特或32比特质数的计算复杂性比起生成64比特、128比特、256比特或512比特质数的计算复杂性小得多,所以可被忽略。为此,当被表示为512比特模数的取幂的次数时,质数生成单元101的总的计算复杂性不大于
           (1+1/4){((ln 264)×8/35-1)/512
                  +((ln 2128)×8/35-1)/64
                  +((ln 2256)×8/35-1)/8
                  +((ln 2512)×8/35-1)}
          +2(1/512+1/64+1/8+1)
          =109.0
这小于相关技术1的计算复杂性(它是116.8或更小)。另外,不同于相关技术1,按照这种方法,质数可被确定地生成。而且,这个方法比起相关技术2(这是传统的确定的质数生成方法)快2.2倍。
如上所述,当与传统的技术相比较时,第一实施例呈现出可以缩短确定的质数生成的计算时间的优良效果。
然而,按照第一实施例,质数生成被限制于满足以下公式的质数N:
              N=1 mod 2
              N=1 mod L1
              N=1 mod L2
              …
              N=1 mod Ln
这造成限制可以生成的质数的类型的问题。
对于质数类型的这样的限制,在某些密码应用中在保密性方面是不希望的。
下面的第二实施例目的是解决这个问题。
2.第二实施例
下面说明本发明的另一个实施例的内容传递系统1b(未示出)。
内容传递系统1b具有类似于内容传递系统1的结构。然而,存储器卡10具有质数生成单元101b以代替质数生成单元101。以下的说明集中在与内容传递系统1的差别上。
2.1在存储器卡10中的生成控制单元102
生成控制单元102把质数q、质数q的比特长度Lenq、不同于2的小的质数L1,L2,…,Ln、(L1×L2×…×Ln)的比特长度LenL、以及q modL1,q mod L2,…,q mod Ln输出到质数生成单元101b。生成控制单元102然后从质数生成单元101b接收质数p,以及把质数p写入到质数存储单元103作为质数pa
接着,生成控制单元102再次把质数q、质数q的比特长度Lenq、不同于2的小的质数L1,L2,…,Ln、(L1×L2×…×Ln)的比特长度LenL、以及q mod L1,q mod L2,…,q mod Ln输出到质数生成单元101b。生成控制单元102然后从质数生成单元101b接收质数p,以及把质数p写入到质数存储单元103作为质数pb
2.2在存储器卡10中的质数生成单元101b
当给定质数q,q mod L1,q mod L2,…,q mod Ln(其中L1,L2,…,Ln是不同于2的小的质数),和质数q的比特长度Lenq时,质数生成单元101b生成和输出其比特长度为质数q的两倍的质数p。
这里,L1,L2,…,Ln和(L1×L2×…×Ln)的比特长度LenL已事先给定。例如,L1,L2,…,Ln是小于输入质数q的预期的比特长度的质数。
质数生成单元101b包括部分信息设置单元136b、随机数生成单元131b、判断目标生成单元132b、第一质数性判断单元133b、第二质数性判断单元134b、以及控制单元135b,如图8所示。
(1)部分信息设置单元136b
部分信息设置单元136b从生成控制单元102接收质数q,q modL1,q mod L2,…,q mod Ln,以及计算满足以下公式的数u:
              2×u×q+1≠0 mod L1
              2×u×q+1≠0 mod L2
              …
              2×u×q+1≠0 mod Ln
部分信息设置单元136b把数u输出到判断目标生成单元132b。
下面更详细地描述部分信息设置单元136b。
如图8所示,部分信息设置单元136b包括整数生成单元141b和信息组合单元142b。(整数生成单元141b)
整数生成单元141b生成随机数N1(1≤N1≤L1-1),N2(1≤N2≤L2-1),…,Nn(1≤Nn≤Ln-1),以及计算:
        ui=(Ni-1)/(2×(q mod Li))mod Li
                                 (i=1,2,…,n)
整数生成单元141b把数ui(i=1,2,…,n)输出到信息组合单元142b。(信息组合单元142b)
信息组合单元142b从整数生成单元141b接收数ui(i=1,2,…,n),以及按照中国剩余定理找出满足下式的u mod(L1×L2×…×Ln):
             u=ui mod Li(i=1,2,…,n)
在E.Okamoto的“An Introduction to Encryption Theory(加密理论导论)”,(1993)Kyoritsu出版,p.10中详细地描述中国剩余定理。
更详细地,信息组合单元142b计算:
   u′2=((L1)-1 mod L2)×((u2-u1)mod L2)+u1
   u′3=((L1×L2)-1 mod L3)×((u3-u′2)mod L3)+u′2
   u′n=((L1×L2×…×Ln-1)-1 mod Ln)
           ×((un-u′n-1)mod Ln)+u′n-1
信息组合单元142b然后设置u=u′n
此后,信息组合单元142b把u输出到判断目标生成单元132b。
(2)随机数生成单元131b
随机数生成单元131b从生成控制单元102接收Lenq和LenL,计算(Lenq-LenL-1)比特的随机数R′,以及把随机数R′输出到判断目标生成单元132b。
随机数生成单元131b也从第一质数性判断单元133b接收第三判断信息,以及从第二质数性判断单元134b接收第四判断信息(第三和第四判断信息在后面详细描述)。在接收第三或第四判断信息后,随机数生成单元131b再次生成(Lenq-LenL-1)比特的随机数R′,以及把随机数R′输出到判断目标生成单元132b。
(3)判断目标生成单元132b
判断目标生成单元132b从生成控制单元102接收质数q和小的质数L1,L2,…,Ln,从部分信息设置单元136b接收数u,以及从随机数生成单元131b接收随机数R′。
判断目标生成单元132b然后生成满足以下公式的数R和N:
           R=u+L1×L2×…×Ln×R′
           N=2×R×q+1
判断目标生成单元132b把数R和N输出到第二质数性判断单元134b,以及把数N输出到第一质数性判断单元133b。
(4)第一质数性判断单元133b
第一质数性判断单元133b从判断目标生成单元132b接收数N,以及判断以下的判断公式3是否成立:
              2N-1=1 mod N    (判断公式3)
如果判断公式3成立,则第一质数性判断单元133b把表示判断公式3成立的第三判断信息输出到第二质数性判断单元134b。否则,第一质数性判断单元133b把表示判断公式3不成立的第三判断信息输出到随机数生成单元131b。
(5)第二质数性判断单元134b
第二质数性判断单元134b从判断目标生成单元132b接收数N和R。第二质数性判断单元134b也从第一质数性判断单元133b接收表示判断公式3成立的第三判断信息。
在接收到第三判断信息后,第二质数性判断单元134b判断以下的判断公式4是否成立:
         22R≠1 mod N    (判断公式4)
如果判断公式4成立,则第二质数性判断单元134b把数N作为质数p输出到生成控制单元102。
如果判断公式4不成立,则第二质数性判断单元134b把表示判断公式4不成立的第四判断信息输出到随机数生成单元131b。
(6)控制单元135b
控制单元135b控制质数生成单元101b的每个构成元件。
2.3对质数生成单元101b的验证
第一和第二质数性判断单元133b和134b是分别与第一和第二质数性判断单元133和134相同的。因此,质数生成单元101b以与质数生成单元101相同的方式输出质数。
另外,因为随机数R′的比特长度是(Lenq-LenL-1),R的比特长度是Lenq-1。所以,N的比特长度是2×Lenq。
2.4质数生成单元101b的运行
下面参照图9说明质数生成单元101b的运行。
部分信息设置单元136b计算u,以使得2×u×q+1≠0 mod(L1×L2×…×Ln)。部分信息设置单元136b把数u输出到判断目标生成单元132b(S152)。随机数生成单元131b生成(Lenq-LenL-1)比特的随机数R′,以及把它输出到判断目标生成单元132b(S153)。判断目标生成单元132b计算数R和N,把数N输出到第一质数性判断单元133b,以及把数R和N输出到第二质数性判断单元134b(S154)。第一质数性判断单元133b判断:判断公式3是否成立。如果判断公式3不成立(S155:NG),则运行回到步骤S153。
如果判断公式3成立(S155:OK),则第二质数性判断单元134b判断:判断公式4是否成立。如果判断公式4不成立(S156:NG),则运行回到步骤S153。如果判断公式4成立(S156:OK),则第二质数性判断单元134b把数N作为质数p输出到生成控制单元102(S157),由此,完成运行。
2.5计算复杂性的评估和效果
第二实施例的计算复杂性几乎与第一实施例的计算复杂性相同。
严格地说,第二实施例的计算复杂性大于第一实施例的计算复杂性,因为它包含部分信息设置单元136b的计算复杂性。然而,部分信息设置单元136b只执行mod L1,mod L2,…,mod Ln的计算和中国剩余定理的计算,这样,它的计算复杂性比2×Lenq比特的计算小得多。所以,部分信息设置单元136b的计算复杂性可被看作为几乎等于0。
所以,在计算复杂性方面,第二实施例具有与第一实施例相同的效果。
另外,N=N1 mod L1,N2 mod L2,…,Nn mod Ln,其中L1,L2,…,Ln是随机数。换句话说,由质数生成单元101b产生的质数类型不受限制。这消除与所生成的质类型的限制有关的安全性问题。
因此,质数生成单元101b具有优良的效果:(1)不限制质数类型,(2)确定地生成质数,以及(3)比起传统的技术更快速地生成质数。
如上所述,与传统的技术相比较,按照本发明的第二实施例,确定的质数生成的计算时间可被缩短,以及质数类型不受限制。这消除与质数类型的限制有关的安全性问题,有可能改进密码安全性。结果,可以提供具有高的实际价值的、实现高速加密和签名方案的质数生成单元。
3.修正
下面描述应用第一和第二实施例中说明的质数生成的密码通信系统(未示出)。
密码通信系统主要由管理中心设备、用户A设备、和用户B设备组成。管理中心设备、用户A设备、和用户B设备通过网络被连接在一起。
管理中心设备包括第一实施例的生成控制单元102和质数生成单元101,通过使用它们,生成两个质数pa和pb。这里,管理中心设备可以代替地包括第二实施例的生成控制单元102和质数生成单元101b。
下面参照图10,说明密码通信系统的运行。这个密码通信系统采用RSA密码系统,它依赖于用于它的安全性的因子分解的计算困难性。在T.Okamoto和H.Ymamoto的“Modern Encryption(现代加密)”,(1997)Sangyo Tosho出版,pp.110-113中详细地描述了RSA密码系统。
(1)由管理中心设备进行公共密钥的生成
管理中心设备通过使用生成控制单元102和质数生成单元101随机地生成质数pa和pb(S171)。管理中心设备然后计算n=pa×pb和L=LCM(pa-1,pb-1)(S172)。
接着,管理中心设备随机地生成随机数e(1≤e≤L-1,GCD(e,L)=1),以及计算d=e-1mod L(S173)。这里,GCD(e,L)是e和L的最大公因子。
此后,管理中心设备把质数pa和pb和数d秘密地发送到用户A设备作为秘密密钥(S174)。管理中心设备把数n和e展现给用户B设备作为用户A设备的公共密钥(S175)。
(2)由用户B设备进行加密文本的生成
用户B设备计算c=memod n(S176)。这里,m是用户B设备正在发送给用户A设备的消息。用户B设备把加密文本c发送到用户A设备(S177)。
(3)由用户A设备进行加密文本的解密
用户A设备计算m′=cdmod n,以便得到解密的消息m′(S178)。这里,
                 cd=(me)dmod n
                   =m**(e×d mod L)mod n
                   =m1 mod n
                   =m mod n
所以,很明显,解密的消息m′等同于消息m。
在以上的运行中,在步骤S171,生成质数,以便得到公共密钥。
这个质数生成步骤利用第一或第二实施例的生成控制单元和质数生成单元,有可能达到在第一或第二实施例中说明的效果。
4.结论
如上所述,当输入质数q和小于q的、不同于2的小质数L1,L2,…,Ln(n≥2)时,质数生成单元输出大于质数q的质数N。这个质数生成单元生成质数N,以使得q满足方程q=1 mod Li(i=1,2,…,n)以及N满足方程N=1 mod Li(i=1,2,…,n)。
这里,质数生成单元生成随机数R′,以及生成R=L1×L2×…×Ln×R′和N=2×R×q+1。质数生成单元通过使用生成的数R和N来判断N的质数性。
另外,当输入质数q和小于q的、不同于2的小质数L1,L2,…,Ln(n≥2)时,质数生成单元输出大于质数q的质数N。这个质数生成单元生成输出u,它满足2×u×q+1≠0 mod Li(i=1,2,…,n)。质数生成单元然后生成随机数R′,以及生成R=u+L1×L2×…×Ln×R′和N=2×R×q+1。质数生成单元通过使用生成的数R和N来判断N的质数性。
这里,质数生成单元生成整数N1(1<N1<L1-1),N2(1<N2<L2-1),…,Nn(1<Nn<Ln-1),以及计算ui=(Ni-1)/(2×(q mod Li))modLi(i=1,2,…,n)。质数生成单元然后通过使用ui(i=1,2,…,n),找出u,满足u=ui mod Li(i=1,2,…,n)。
为了判断N的质数性,判断2N-1=1 mod N和22R≠1 mod N是否成立。
按照本发明,不单可以肯定地生成质数,而且与传统的技术相比,计算时间也可以缩短。而且,通过消除对生成的质数类型的限制,则与对质数类型的这样的限制有关的安全性问题可被解决,有可能改进安全性。
所以,可以提供具有高的实际价值的、实现高速加密和签名方案的信息安全装置和质数生成装置。
5.其它修正
本发明是通过以上的实施例来描述的,然而应当看到,本发明并不限于以上实施例。下面给出示例的修正。
(1)每个以上的实施例中的质数生成单元可以接收整数Len的输入,以及输出Len比特的质数。
(2)每个以上的实施例中的质数生成单元可以作为独立的装置被提供。
(3)本发明可以是配备有第一或第二实施例的质数生成单元的质数应用装置。质数应用装置的具体的例子包括由加密装置和解密装置组成的密码通信系统、以及由数字签名装置和数字签名验证装置组成的数字签名系统。这些系统是保密地和可靠地处理信息的信息安全系统。
(4)第一质数性判断单元133、第二质数性判断单元134、第一质数性判断单元133b、和第二质数性判断单元134b可以使用与以上的实施例中描述的判断公式不同的判断公式。
作为一个例子,第一质数性判断单元133和第一质数性判断单元133b可以使用以下的判断公式:
                 aN-1=1 mod N
其中a是满足1≤a≤N-1的整数。
另外,第二质数性判断单元134和第二质数性判断单元134b可以使用以下的判断公式:
                 b2R≠1 mod N
                 GCD(b2R-1,N)=1
其中b是满足1≤b≤N-1的整数。
(5)以上的实施例描述其中数字作品是音乐的情形,但也可以应用于其它类型的数字作品。具体的例子包括话音、活动图象,静止图象、文本、表格数据、和计算机程序的数字信息。
(6)以上的实施例描述其中质数生成单元被使用于采用RSA密码系统的安全系统的情形,但质数生成单元的使用并不限于这一点。例如,质数生成单元可被使用于椭圆曲线密码系统。椭圆曲线密码系统生成和利用一个质数。
(7)本发明也适用上述的方法。这些方法可以用由计算机执行的计算机程序来实现。这样的计算机程序可以作为数字信号被分发。
另外,本发明可以通过其上记录上述的计算机程序和/或数字信号的计算机可读的记录媒体来实现,诸如,软盘、硬盘、CD-ROM(软盘-只读存储器)、MO(磁-光)盘、DVD(数字通用盘)、DVD-ROM、DVD-RAM、或半导体存储器。反之,本发明也可以通过被记录在记录媒体上的计算机程序和/或数字信号来实现。
实现本发明的计算机程序或数字信号也可以通过网络(诸如,电子通信网、有线或无线通信网、或互联网)被传输。
本发明也可以通过包括微处理器和存储器的计算机系统来实现。在这种情形下,计算机程序可被存储在存储器中,并且其中微处理器按照这个计算机程序运行。
计算机程序和/或数字信号可以通过分发其上记录了计算机程序和/或数字信号的记录媒体、或通过网络发送计算机程序和/或数字信号而被提供给独立的计算机系统
(8)在实施例中描述的限制和修正可以自由地组合。
虽然已参照附图通过例子全面地描述了本发明,但应当指出,本领域技术人员将会看到各种改变和修正。
所以,除非这样的改变和修正背离本发明的范围,它们都应当被看作为被包括在本发明的范围内。

Claims (12)

1.一种信息安全装置,通过生成两个质数和使用对于该这两个质数的乘法,从而基于因子分解的难操作性而安全地和可靠地操纵预定的信息,包括:
获取装置,用于获取一个已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 mod Li(i=1,2,…,n);
生成装置,用于生成一个其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数被排除在数N的生成以外;以及
判断装置,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
2.权利要求1的信息安全装置,
其中生成装置生成满足N=1 mod Li(i=1,2,…,n)的数N。
3.权利要求2的信息安全装置,
其中生成装置包括:
随机数生成单元,用于生成其比特长度为(Lenq-LenL-1)的随机数R′,其中Lenq是质数q的比特长度,以及LenL是(L1×L2×…×Ln)的比特长度;以及
判断目标生成单元,用于:(a)通过使用随机数R′和质数L1,L2,…,Ln生成一个数R
              R=L1×L2×…×Ln×R′以及(b)通过使用质数q和数R,生成该数N
              N=2×R×q+1其中判决装置通过使用由判决目标生成单元生成的数N和数R,判决数N的质数性。
4.权利要求3的信息安全装置,
其中判断装置(a)对于数N,判断以下的第一判断公式是否成立:
                     2N-1=1 mod N
(b)对于数N和数R,判断以下的第二判断公式是否成立:
                     22R≠1 mod N
以及(c)如果第一判断公式和第二判断公式成立,则判断数N是质数。
5.权利要求1的信息安全装置,
其中生成装置包括:
部分信息生成单元,用于通过使用质数q,生成满足下式的数u:
    2×u×q+1≠0 mod Li(i=1,2,…,n)
随机数生成单元,用于生成随机数R′;
判断目标生成单元,用于:(a)通过使用质数L1,L2,…,Ln,数u和随机数R′生成一个数R
            R=u+L1×L2×…×Ln×R′以及(b)通过使用质数q和数R,生成该数N
               N=2×R×q+1其中判决装置通过使用由判决目标生成单元生成的数N和数R来判决数N的质数性。
6.权利要求5的信息安全装置,
其中部分信息生成单元包括:
整数生成单元,用于(a)生成整数N1(1≤N1≤L1-1),N2(1≤N2≤L2-1),…,Nn(1≤Nn≤Ln-1),以及(b)计算满足下式的数ui
ui=(Ni-1)/(2×(q mod Li))mod Li(i=1,2,…,n)以及
信息组合单元,用于通过使用由整数生成单元计算的数ui(i=1,2,…,n),计算满足下式的数u:
u=ui mod Li(i=1,2,…,n)。
7.权利要求6的信息安全装置,
其中判断装置(a)对于数N,判断以下的第一判断公式是否成立:
         2N-1=1 mod N
(b)对于数N和数R,判断以下的第二判断公式是否成立:
         22R≠1 mod N
以及(c)如果第一判断公式和第二判断公式成立,则判断数N是质数。
8.一种IC卡,该IC卡通过生成两个质数和使用这两个质数的乘法,基于因子分解的难操作性而安全地和可靠地操纵预定的信息,包括:
获取装置,用于获取已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 modLi(i=1,2,…,n);
生成装置,用于生成其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数不能用于数N的生成;以及
判断装置,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
9.一种用于生成质数的质数生成装置,包括:
获取装置,用于获取已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 modLi(i=1,2,…,n);
生成装置,用于生成其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数不能用于数N的生成;以及
判断装置,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
10.在用于生成质数的质数生成装置中使用的一种质数生成方法,包括:
获取步骤,用于获取已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 modLi(i=1,2,…,n);
生成步骤,用于生成其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数不能用于数N的生成;以及
判断步骤,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
11.在用于生成质数的计算机中使用的一种质数生成方法,包括:
获取步骤,用于获取已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 modLi(i=1,2,…,n);
生成步骤,用于生成其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数不能用于数N的生成;以及
判断步骤,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
12.用来存储在用于生成质数的计算机中使用的质数生成程序的计算机可读记录媒体,该程序包括:
获取步骤,用于获取已知的质数q和n个已知的质数L1,L2,…,Ln,其中L1,L2,…,Ln是不同于2、且小于q的质数,以及质数q满足q=1 modLi(i=1,2,…,n);
生成步骤,用于生成其比特长度为质数q的比特长度的两倍的数N,其中与质数L1,L2,…,Ln中任一个数有关的数不能用于数N的生成;以及
判断步骤,用于判断数N的质数性,以及如果数N被判断为质数则输出该数N作为一个质数。
CNB021055661A 2001-04-17 2002-04-17 信息安全装置,质数生成装置,和质数生成方法 Expired - Fee Related CN1267816C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP117842/01 2001-04-17
JP2001117842 2001-04-17

Publications (2)

Publication Number Publication Date
CN1381782A true CN1381782A (zh) 2002-11-27
CN1267816C CN1267816C (zh) 2006-08-02

Family

ID=18968317

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021055661A Expired - Fee Related CN1267816C (zh) 2001-04-17 2002-04-17 信息安全装置,质数生成装置,和质数生成方法

Country Status (6)

Country Link
US (1) US7130422B2 (zh)
EP (2) EP1251654B1 (zh)
KR (1) KR20020081120A (zh)
CN (1) CN1267816C (zh)
DE (2) DE60220717T2 (zh)
TW (1) TWI244610B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105493437A (zh) * 2013-08-30 2016-04-13 高通股份有限公司 用于质数产生及存储的方法及设备
CN108055128A (zh) * 2017-12-18 2018-05-18 数安时代科技股份有限公司 Rsa密钥的生成方法、装置、存储介质及计算机设备

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2841411B1 (fr) * 2002-06-19 2004-10-29 Gemplus Card Int Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede
EP1699160A1 (en) * 2003-12-26 2006-09-06 Matsushita Electric Industries Co., Ltd. Prime calculation device, method, and key issuing system
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
JP2006155393A (ja) * 2004-11-30 2006-06-15 Toshiba Corp サーバ融通装置、サーバ融通方法およびサーバ融通プログラム
FR2879866B1 (fr) * 2004-12-22 2007-07-20 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US7945784B1 (en) * 2005-08-19 2011-05-17 Adobe Systems Incorporated Method and system to perform secret sharing
CN101622817B (zh) * 2007-02-27 2012-03-28 汤姆森许可贸易公司 产生压缩rsa模数的方法和设备
US8472620B2 (en) * 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key
US8433064B2 (en) * 2009-12-15 2013-04-30 Microsoft Corporation Secret encryption with public or delegated comparison
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
CN104067217A (zh) * 2011-12-15 2014-09-24 英赛瑟库尔公司 生成被验证适用于芯片卡的素数的方法
CN102591618B (zh) * 2011-12-23 2014-12-10 飞天诚信科技股份有限公司 一种在嵌入式系统中生成大素数的方法
CN106023040B (zh) * 2016-06-03 2021-09-14 奥奈斯特(宁波)软件技术有限公司 一种积分管理系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3626340B2 (ja) 1996-12-26 2005-03-09 株式会社東芝 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法
JP3835896B2 (ja) * 1997-07-30 2006-10-18 富士通株式会社 素数生成装置,B−smooth性判定装置及び記録媒体
US20020099746A1 (en) * 1999-07-26 2002-07-25 Tie Teck Sing T-sequence apparatus and method for general deterministic polynomial-time primality testing and composite factoring
US7120248B2 (en) * 2001-03-26 2006-10-10 Hewlett-Packard Development Company, L.P. Multiple prime number generation using a parallel prime number search algorithm

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105493437A (zh) * 2013-08-30 2016-04-13 高通股份有限公司 用于质数产生及存储的方法及设备
CN108055128A (zh) * 2017-12-18 2018-05-18 数安时代科技股份有限公司 Rsa密钥的生成方法、装置、存储介质及计算机设备

Also Published As

Publication number Publication date
DE60212248T2 (de) 2006-10-05
EP1465366B1 (en) 2007-06-13
KR20020081120A (ko) 2002-10-26
EP1251654A2 (en) 2002-10-23
DE60220717D1 (de) 2007-07-26
EP1251654B1 (en) 2006-06-14
EP1251654A3 (en) 2003-07-16
DE60212248D1 (de) 2006-07-27
DE60220717T2 (de) 2007-10-04
TWI244610B (en) 2005-12-01
EP1465366A1 (en) 2004-10-06
US20020176573A1 (en) 2002-11-28
CN1267816C (zh) 2006-08-02
US7130422B2 (en) 2006-10-31

Similar Documents

Publication Publication Date Title
CN1267816C (zh) 信息安全装置,质数生成装置,和质数生成方法
CN1242587C (zh) 高速、灵活的加密系统的方法及设备
CN1278245C (zh) 信息存储器件、存储器存取控制系统及方法
CN1914649A (zh) 认证系统, 认证设备,以及记录介质
CN1306425C (zh) 信息存储器件、存储器存取控制系统和方法
CN1947372A (zh) 个人信息管理装置、分散密钥存储装置、个人信息管理系统
CN101080897A (zh) 鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质
CN1266876C (zh) 数据通信系统、加密装置及解密装置
CN1303065A (zh) 数据库管理装置和加密/解密系统
CN1531241A (zh) 密码重构方法、分散密码重构装置及密码重构系统
CN1922643A (zh) 加密系统、加密装置、解密装置、程序和集成电路
CN1396568A (zh) 数字作品保护系统、记录媒体装置、发送装置和重放装置
CN1535451A (zh) 可证实的秘密洗牌及其对于电子表决的应用
CN1157020C (zh) 提高了安全性的密码处理装置
CN1292357C (zh) 信息存储设备、存储器存取控制方法
CN1941699A (zh) 密码方法、主机系统、可信平台模块和计算机安排
CN1682499A (zh) 内容分发系统
CN1736082A (zh) 分组许可系统以及其服务器及客户端
CN1460225A (zh) 数据处理系统、存储设备、数据处理装置、及数据处理方法、以及程序
CN1665185A (zh) 内容提供系统、用户系统、跟踪系统、装置及方法
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1668471A (zh) 打印机以及打印系统、数据接收装置以及数据发送接收系统
CN1822538A (zh) 加密方法,加密装置,解密方法和解密装置
CN1645791A (zh) Rsa公开密钥生成装置、rsa解密装置及rsa署名装置
CN1977250A (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: 20060802

Termination date: 20100417