CN108270564A - 一种rsa加密算法中的大素数生成方法及装置 - Google Patents

一种rsa加密算法中的大素数生成方法及装置 Download PDF

Info

Publication number
CN108270564A
CN108270564A CN201611254464.0A CN201611254464A CN108270564A CN 108270564 A CN108270564 A CN 108270564A CN 201611254464 A CN201611254464 A CN 201611254464A CN 108270564 A CN108270564 A CN 108270564A
Authority
CN
China
Prior art keywords
prime
pseudoprime
generation
cryptographic algorithms
rsa cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201611254464.0A
Other languages
English (en)
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.)
Guangdong Fine Point Data Polytron Technologies Inc
Original Assignee
Guangdong Fine Point Data Polytron Technologies Inc
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 Guangdong Fine Point Data Polytron Technologies Inc filed Critical Guangdong Fine Point Data Polytron Technologies Inc
Priority to CN201611254464.0A priority Critical patent/CN108270564A/zh
Publication of CN108270564A publication Critical patent/CN108270564A/zh
Pending legal-status Critical Current

Links

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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开一种RSA加密算法中的大素数生成方法及装置,其方法包括:步骤S1,进行大素数的搜索,生成伪素数;步骤S2,预处理单元2,其对所述伪素数进行预处理;步骤S3,检测单元3,其对预处理后的所述伪素数的素性进行检测,得到大素数;其装置包括对应的搜索单元、预处理单元和检测单元。这样,可以快速生成大素数,时间短,效率高。

Description

一种RSA加密算法中的大素数生成方法及装置
技术领域
本发明涉及加密技术领域,具体涉及一种RSA加密算法中的大素数生成方法及装置。
背景技术
随着互联网的飞速发展和计算机技术的广泛应用,网络时代确保信息安全至关重要。信息加密技术是保证网络中数据安全的最主要最基本的措施之一,其中RSA加密算法被认为是最优秀、最完善,同时也是应用最为广泛的算法。
RSA加密算法是一种典型的公钥密码算法,具有加密密钥和解密密钥两个相关但是不同的密钥。在公钥密码算法中,加密密钥可以公开作为公钥,而解密密钥作为保密的私钥。在RSA加密算法中,公钥和密钥都可以用来进行数据的加密。而另外一个可以作为相应的解密密钥,并且可以保证无法从公钥中推导出私钥,也无法从密文中推导出明文。
在RSA加密算法中,需要生成数量级很大的素数,目前能预测保证在2030年之前足够安全的RSA密钥长度是2048bit,但生成这种长度的大素数(即数量级很大的素数)是很困难的事情。目前生成素数的方法主要有概率性生成素数和确定性生成素数两种;但概率性生成素数由于素数分布的不确定性,生成时很是耗时,且生成的很可能只是一个接近于素数的伪素数;确定性生成的素数可以保证所生成的数一定是素数,但是这种方法所生成的素数具有一定的规律,而攻击者可以使用较小的代价来推导出素数生成的规律。
因此,需要一种高效率的大素数生成方法及装置。
鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本发明。
发明内容
为解决上述技术缺陷,本发明采用的技术方案在于,首先提供一种RSA加密算法中的大素数生成方法,其包括:
步骤S1,进行大素数的搜索,生成伪素数;
步骤S2,对所述伪素数进行预处理;
步骤S3,对预处理后的所述伪素数的素性进行检测,得到大素数。
较佳的,所述步骤S2包括:
步骤S22,使用小素数整除法排除所述伪素数中能被小素数整除的数;
步骤S23,使用Miller-Rabin算法对所述伪素数进行5次检测,保留通过检测的所述伪素数。
较佳的,所述步骤S2还包括:
步骤S21,使用偶数排除法排除所述伪素数中的偶数。
较佳的,所述步骤S3包括:
步骤S31,通过p=a×2i+1(1<i<1000),求p,并且采用Miller-Rabin算法来检测p的素性,如果通过,则执行步骤S32,否则,i=i+1,继续执行步骤S31;
步骤S32,通过q×2j=p+1(1<j<1000),求q,并且采用Miller-Rabin算法来检测q的素性,如果通过,则p为安全的大素数,否则,j=j+1,继续执行步骤S32;
其中,a表示预处理后的所述伪素数。
较佳的,还包括:
步骤S4,使用Pocklington定理对所述大素数进行验证。
较佳的,所述步骤S4包括:
步骤S41,对p-1进行分解,使得
步骤S42,对F进行分解,使得
步骤S43,a=1;
步骤S44,a=a+1;
步骤S45,如果存在ap-1modp=1,则执行步骤S46,否则,p不是素数;
步骤S46,如果则表明p是素数;否则跳转到步骤S44。
较佳的,所述步骤S1中,使用随机递增搜索法进行所述大素数的搜索。
其次提供一种与上述所述的RSA加密算法中的大素数生成方法对应的RSA加密算法中的大素数生成装置,其包括:
搜索单元,其进行大素数的搜索,生成伪素数;
预处理单元,其对所述伪素数进行预处理;
检测单元,其对预处理后的所述伪素数的素性进行检测,得到大素数。
较佳的,所述预处理单元包括:
小素数排除子单元,其使用小素数整除法排除所述伪素数中能被小素数整除的数;
检测排除子单元,其使用Miller-Rabin算法对所述伪素数进行5次检测,保留通过检测的所述伪素数。
较佳的,还包括验证单元,其使用Pocklington定理对所述大素数进行验证。
与现有技术比较本发明的有益效果在于:这样,通过素性检测的伪素数即为素数,这样,可以快速生成大素数,时间短,效率高;在对伪素数的检测过程中,使用5次Miller-Rabin算法进行检测,提高了伪素数为素数的可行度;使用小素数整除法,则需要进行测试的整数比lnn个更少,这样在使用Miller-Rabin算法进行检测的时候就不需要检测lnn个伪素数了,这就减少了使用Miller-Rabin算法进行检测的时间,进一步提高了大素数的生成效率;使用偶数排除法,则只需要对其中大约0.5lnn个整数进行测试即可,进一步提高了大素数的生成效率;先用偶数排除法,则在小素数整除排除法中只需要对剩余大约0.5lnn个整数进行小素数整除排除即可,减少了需要进行测试的整数数量,大大提高了检测效率,也进一步提高了大素数的生产效率。
附图说明
为了更清楚地说明本发明各实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是RSA加密算法的流程图;
图2是本发明RSA加密算法中的大素数生成方法的流程图;
图3是本发明RSA加密算法中的大素数生成方法中步骤S2的流程图;
图4是本发明RSA加密算法中的大素数生成方法中实施例3的流程图;
图5是本发明RSA加密算法中的大素数生成方法中预处理的流程图;
图6是本发明RSA加密算法中的大素数生成方法中步骤S3的流程图;
图7是本发明RSA加密算法中的大素数生成方法实施例5的流程图;
图8是本发明RSA加密算法中的大素数生成方法中步骤S4的流程图;
图9是本发明RSA加密算法中的大素数生成装置的结构图;
图10是本发明RSA加密算法中的大素数生成装置预处理单元的结构图;
图11是本发明RSA加密算法中的大素数生成装置实施例8的结构图;
图12是本发明RSA加密算法中的大素数生成装置检测单元的结构图;
图13是本发明RSA加密算法中的大素数生成装置实施例10的结构图。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
图1为RSA加密算法的流程图,具体步骤如下:
(1)随机生成两个大素数p和q;
(2)计算n和其中n=p×q, 表示n的欧拉函数;
(3)生成一个随机数e作为加密密钥,e满足
(4)求解d作为解密密钥,其中d满足
(5)进行数据的加密,假设m表示明文,c表示密文,则明文和密文满足c≡memodn。
由该流程图可以看出,生成大素数是整个RSA加密算法的关键部分。
实施例1
如图2所示,其为本发明RSA加密算法中的大素数生成方法的流程图,其中,所述RSA加密算法中的大素数生成方法包括:
步骤S1,进行大素数的搜索,生成伪素数;
大素数的分布不均匀,而且密度较小,为提高对素数素性的检测效率,需要选择一个较好的搜索方法。目前,常见的搜索方法主要有随机递增搜索和随机搜索两种。而随机递增搜索次数要小于随机搜索法,因此,本发明中采用随机递增搜索法来进行大素数的搜索。
随机递增搜索法,即随机产生一个数,对以该数为起点的数依次进行测试,直至找到一个素数。这样,采用了随机递增搜索方法进行大素数的搜索,从而提高了伪素数素性的检测效率。
步骤S2,对所述伪素数进行预处理;
直接进行伪素数的素性检测需要耗费大量的时间。为此,首先通过使用预处理的方法对伪素数的素性进行简单检验,使用较少的时间排除掉一部分伪素数,这样可以减少后续素性检测耗费的时间(检验较少的伪素数),从而提高大素数生成的效率。
步骤S3,对预处理后的所述伪素数的素性进行检测,得到大素数。
这样,通过素性检测的伪素数即为素数,这样,可以快速生成大素数,时间短,效率高。
实施例2
如上述所述的RSA加密算法中的大素数生成方法,本实施例与其不同之处在于,如图3所示,所述步骤S2包括:
步骤S22,使用小素数整除法排除所述伪素数中能被小素数整除的数;
所述小素数整除法,即是通过100中的小素数来整除所述伪素数,如果某个小素数能整除某个伪素数,说明该伪素数不是素数,将其排除。
步骤S23,使用Miller-Rabin算法对所述伪素数进行5次检测,保留通过检测的所述伪素数。
Miller-Rabin算法是基于概率的素数测试算法,其本质上是一种概率算法,存在误判的可能性,但是出错的概率非常小。要了解Miller-Rabin算法,需要先了解以下两个定理:
费尔马小定理:
如果p是质数且(a,p)=1,则有ap-1≡1(modp)。
当然反过来不一定成立。即当ap-1%p=1时,p未必是质数。但是这个概率比较小。所以利用费尔马小定理来检测素数,不能保证时刻都对,只能保证出错的概率比较小。
给定正整数n,问n是否为质数(显然只需判断正奇数),最基本的做法就是计算2n -1%n是否为1。如果不是1,n肯定为合数;否则,n可能为质数。
有限域上的平方根定理:
如果p是一个奇质数且e≥1,则方程
x2≡1(modpe)
仅有两个根x=1或者x=-1,注意到在模p的意义下,x=-1等价于x=p-1,±1也称为1的平凡平方根。
利用上面两个定理,就可以构造出Miller-Rabin算法。考虑到n肯定是奇数,则n一定可以表示为n-1=2s*d,其中s≥1且d是奇数。则
an-1=a2s*d=(((ad)2)...)2
也就是说,an-1相当于ad平方若干次。例如当n=7时,an-1就是a6,就是a3的平方。当n=13时,an-1就是a12,就是a3的平方的平方。
以n=13的情况进行说明(所有运算都是在模n的意义下,以下的文字说明省略了这一点),任取一个a,1<a<13,计算a3,再将其平方一次得到a6,注意到a3是a6的平方根(废话),根据平方根定理的推论,如果a6=1且a3≠±1,则n肯定是合数。将a6平方一次得到a12,同样,如果a12=1且a6≠±1,则n肯定是合数。最后,根据费尔马小定理,如果a12≠1,则n肯定是合数。否则,n有极大概率为质数。
为了增加得到正确判断的概率,可以将a重复取不同的值,对每一个a验证一次ad到an-1的过程。
由于Miller-Rabin算法实际上不能确定所输出的就是真正的素数,所以为了提高准确程度,可以将测试过程进行多次,每进行一次都可以将非素数削减至原有数量的四分之一。
在对伪素数的检测过程中,使用5次Miller-Rabin算法进行检测,提高了伪素数为素数的可行度。若设伪素数为素数的不确定性小于α,选取k个不同的伪素数进行素性检测,如果k足够大,那么αk就会无限趋近于零,即基本上可以确定n为素数。
素数的生成代价如下:根据素数定理,在任何一个整数n周围的素数分布情况为即在整数n周围,大约每lnn个连续的整数就存在一个素数,也就是仅需要对其中lnn个整数进行测试即可,大大提高了大素数的生成效率;使用小素数整除法,则需要进行测试的整数比lnn个更少,这样在使用Miller-Rabin算法进行检测的时候就不需要检测lnn个伪素数了,这就减少了使用Miller-Rabin算法进行检测的时间,进一步提高了大素数的生成效率。
实施例3
如上述所述的RSA加密算法中的大素数生成方法,本实施例与其不同之处在于,如图4所示,所述步骤S2还包括:
步骤S21,使用偶数排除法排除所述伪素数中的偶数;
使用偶数排除法,则只需要对其中大约0.5lnn个整数进行测试即可,进一步提高了大素数的生成效率;先用偶数排除法,则在小素数整除排除法中只需要对剩余大约0.5lnn个整数进行小素数整除排除即可,减少了需要进行测试的整数数量,大大提高了检测效率,也进一步提高了大素数的生产效率。
这样,预处理的具体的过程如图5所示:
(1)首先通过一个高位和低位都设置为1的随机二进制数来滤除掉伪素数a中的偶数;
(2)通过100中的小素数来整除a,如果某一个小素数能够被a整除,则执行第(4)步,否则执行第(3)步;
(3)使用Miller-Rabin算法对伪素数的素性进行5次检测,如果检测通过,则表明a为伪素数,完成预处理;否则,执行第(4)步;
(4)a=a+2,执行第(2)步。
这样,减少了需要进行测试的整数数量,大大提高了检测效率,也进一步提高了大素数的生产效率。
实施例4
如上述所述的RSA加密算法中的大素数生成方法,本实施例与其不同之处在于,如图6所示,所述步骤S3包括:
其中,步骤S2中通过检测的所述伪素数,以a表示:
步骤S31,通过p=a×2i+1(1<i<1000),求p,并且采用Miller-Rabin算法来检测p的素性,如果通过,则执行步骤S32,否则,i=i+1,继续执行步骤S31;
步骤S32,通过q×2j=p+1(1<j<1000),求q,并且采用Miller-Rabin算法来检测q的素性,如果通过,则p为安全的大素数,否则,j=j+1,继续执行步骤S32。
在以上两个过程中,p、q均为整数,由于p=a×2i+1,且q×2j=p+1,可知a是p-1的大素数因子,且q是p+1的大素数因子,从而可知p是一个安全的大素数。
其中,安全的素数是满足2p+1形式的一类数,在这里p也应是素数。之所以叫它们是“安全”素数,是因为它们在加密算法中的运用:某些因子分解的算法的计算时间的部份取决于被分解数的质因子减去一的因子大小,而若被分解的数以一个安全素数2p+1作为因子,由于此素数减去一有一个大素数p做为因子,计算时间将会变多。
实施例5
如上述所述的RSA加密算法中的大素数生成方法,本实施例与其不同之处在于,如图7所示,所述RSA加密算法中的大素数生成方法还包括:
步骤S4,使用Pocklington定理对所述大素数进行验证。
同时通过使用Pocklington定理,可以进一步地提高素数的生成和检测效率。
主要采用Pocklington定理来验证所求的素数。在Pocklington定理的确定性素数生成方法中,必须要获得p-1的一部分因子。如图8所示,所述步骤S4包括:
步骤S41,对p-1进行分解,使得
步骤S42,对F进行分解,使得
步骤S43,a=1;
步骤S44,a=a+1;
步骤S45,如果存在ap-1modp=1,则执行步骤S46,否则,p不是素数;
步骤S46,如果则表明p是素数;否则跳转到步骤S44。
其中,qj(j=1,2,...,r)是一些不同的素数,βi代表不同素数的指数,本实施例中a是用于迭代的自然数,不是伪素数,从1开始,逐个增加,每次增加1,此举的目的是用于寻找素数p。
其中,确定a是p-1大素数因子,且q是p+1的大素数因子这两个条件,才能确定p是一个安全的大素数。
这样,可以进一步地提高大素数的生成和检测效率。
实施例6
如上述所述的RSA加密算法中的大素数生成方法,本实施例与其不同之处在于,为一种与所述的RSA加密算法中的大素数生成方法对应的RSA加密算法中的大素数生成装置,如图9所示,其为本发明RSA加密算法中的大素数生成装置的结构图,其中,所述RSA加密算法中的大素数生成装置包括:
搜索单元1,其进行大素数的搜索,生成伪素数;
预处理单元2,其对所述伪素数进行预处理;
检测单元3,其对预处理后的所述伪素数的素性进行检测,得到大素数。
这样,通过素性检测的伪素数即为素数,这样,可以快速生成大素数。
搜索单元1中,大素数的分布不均匀,而且密度较小,为提高对素数素性的检测效率,需要选择一个较好的搜索方法。目前,常见的搜索方法主要有随机递增搜索和随机搜索两种。而随机递增搜索次数要小于随机搜索法,因此,本发明中采用随机递增搜索法来进行大素数的搜索。
随机递增搜索法,即随机产生一个数,对以该数为起点的数依次进行测试,直至找到一个素数。这样,采用了随机递增搜索方法进行大素数的搜索,从而提高了伪素数素性的检测效率。
预处理单元2中,直接进行伪素数的素性检测需要耗费大量的时间。为此,首先通过使用预处理的方法对伪素数的素性进行简单检验,使用较少的时间排除掉一部分伪素数,这样可以减少后续素性检测耗费的时间(检验较少的伪素数),从而提高大素数生成的效率。
这样,通过素性检测的伪素数即为素数,这样,可以快速生成大素数。
实施例7
如上述所述的RSA加密算法中的大素数生成装置,本实施例与其不同之处在于,如图10所示,所述预处理单元2包括:
小素数排除子单元22,其使用小素数整除法排除所述伪素数中能被小素数整除的数;
检测排除子单元23,其使用Miller-Rabin算法对所述伪素数进行5次检测,保留通过检测的所述伪素数。
小素数排除子单元22中,所述小素数整除法,即是通过100中的小素数来整除所述伪素数,如果某个小素数能整除某个伪素数,说明该伪素数不是素数,将其排除。
检测排除子单元23中,由于Miller-Rabin算法实际上不能确定所输出的就是真正的素数,所以为了提高准确程度,可以将测试过程进行多次,每进行一次都可以将非素数削减至原有数量的四分之一。
在对伪素数的检测过程中,使用5次Miller-Rabin算法进行检测,提高了伪素数为素数的可行度。若设伪素数为素数的不确定性小于α,选取k个不同的伪素数进行素性检测,如果k足够大,那么αk就会无限趋近于零,即基本上可以确定n为素数。
素数的生成代价如下:根据素数定理,在任何一个整数n周围的素数分布情况为即在整数n周围,大约每lnn个连续的整数就存在一个素数,也就是仅需要对其中lnn个整数进行测试即可,大大提高了大素数的生成效率;使用小素数整除法,则需要进行测试的整数比lnn个更少,这样在使用Miller-Rabin算法进行检测的时候就不需要检测lnn个伪素数了,这就减少了使用Miller-Rabin算法进行检测的时间,进一步提高了大素数的生成效率。
实施例8
如上述所述的RSA加密算法中的大素数生成装置,本实施例与其不同之处在于,如图11所示,所述预处理单元2还包括:
偶数排除子单元21,其使用偶数排除法排除所述伪素数中的偶数;
使用偶数排除法,则只需要对其中大约0.5lnn个整数进行测试即可,进一步提高了大素数的生成效率;先用偶数排除法,则在小素数整除排除法中只需要对剩余大约0.5lnn个整数进行小素数整除排除即可,减少了需要进行测试的整数数量,大大提高了检测效率,也进一步提高了大素数的生产效率。
实施例9
如上述所述的RSA加密算法中的大素数生成装置,本实施例与其不同之处在于,如图12所示,所述检测单元3包括:
其中,预处理单元2中通过检测的所述伪素数,以a表示:
第一素性检测子单元31,其通过p=a×2i+1(1<i<1000),求p,并且采用Miller-Rabin算法来检测p的素性,如果通过,则执行第二素性检测子单元32,否则,i=i+1,继续执行第一素性检测子单元31;
第二素性检测子单元32,其通过q×2j=p+1(1<j<1000),求q,并且采用Miller-Rabin算法来检测q的素性,如果通过,则p为安全的大素数,否则,j=j+1,继续执行第二素性检测子单元32。
在以上两个单元中,p、q均为整数,由于p=a×2i+1,且q×2j=p+1,可知a是p-1的大素数因子,且q是p+1的大素数因子,从而可知p是一个安全的大素数。
其中,安全的素数是满足2p+1形式的一类数,在这里p也应是素数。之所以叫它们是“安全”素数,是因为它们在加密算法中的运用:某些因子分解的算法的计算时间的部份取决于被分解数的质因子减去一的因子大小,而若被分解的数以一个安全素数2p+1作为因子,由于此素数减去一有一个大素数p做为因子,计算时间将会变多。
实施例10
如上述所述的RSA加密算法中的大素数生成装置,本实施例与其不同之处在于,如图13所示,所述RSA加密算法中的大素数生成装置还包括:
验证单元4,其使用Pocklington定理对所述大素数进行验证。
同时通过使用Pocklington定理,可以进一步地提高素数的生成和检测效率。
以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限制性的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其进行许多改变,修改,甚至等效,但都将落入本发明的保护范围内。

Claims (10)

1.一种RSA加密算法中的大素数生成方法,其特征在于,包括:
步骤S1,进行大素数的搜索,生成伪素数;
步骤S2,对所述伪素数进行预处理;
步骤S3,对预处理后的所述伪素数的素性进行检测,得到大素数。
2.如权利要求1所述的RSA加密算法中的大素数生成方法,其特征在于,所述步骤S2包括:
步骤S22,使用小素数整除法排除所述伪素数中能被小素数整除的数;
步骤S23,使用Miller-Rabin算法对所述伪素数进行5次检测,保留通过检测的所述伪素数。
3.如权利要求2所述的RSA加密算法中的大素数生成方法,其特征在于,所述步骤S2还包括:
步骤S21,使用偶数排除法排除所述伪素数中的偶数。
4.如权利要求1所述的RSA加密算法中的大素数生成方法,其特征在于,所述步骤S3包括:
步骤S31,通过p=a×2i+1(1<i<1000),求p,并且采用Miller-Rabin算法来检测p的素性,如果通过,则执行步骤S32,否则,i=i+1,继续执行步骤S31;
步骤S32,通过q×2j=p+1(1<j<1000),求q,并且采用Miller-Rabin算法来检测q的素性,如果通过,则p为安全的大素数,否则,j=j+1,继续执行步骤S32;
其中,a表示预处理后的所述伪素数。
5.如权利要求1-4中任一所述的RSA加密算法中的大素数生成方法,其特征在于,还包括:
步骤S4,使用Pocklington定理对所述大素数进行验证。
6.如权利要求5所述的RSA加密算法中的大素数生成方法,其特征在于,所述步骤S4包括:
步骤S41,对p-1进行分解,使得
步骤S42,对F进行分解,使得
步骤S43,a=1;
步骤S44,a=a+1;
步骤S45,如果存在ap-1modp=1,则执行步骤S46,否则,p不是素数;
步骤S46,如果则表明p是素数;否则跳转到步骤S44。
7.如权利要求1-4中任一所述的RSA加密算法中的大素数生成方法,其特征在于,所述步骤S1中,使用随机递增搜索法进行所述大素数的搜索。
8.一种与上述任一权利要求所述的RSA加密算法中的大素数生成方法对应的RSA加密算法中的大素数生成装置,其特征在于,包括:
搜索单元,其进行大素数的搜索,生成伪素数;
预处理单元,其对所述伪素数进行预处理;
检测单元,其对预处理后的所述伪素数的素性进行检测,得到大素数。
9.如权利要求8所述的RSA加密算法中的大素数生成装置,其特征在于,所述预处理单元包括:
小素数排除子单元,其使用小素数整除法排除所述伪素数中能被小素数整除的数;
检测排除子单元,其使用Miller-Rabin算法对所述伪素数进行5次检测,保留通过检测的所述伪素数。
10.如权利要求8或9所述的RSA加密算法中的大素数生成装置,其特征在于,还包括验证单元,其使用Pocklington定理对所述大素数进行验证。
CN201611254464.0A 2016-12-30 2016-12-30 一种rsa加密算法中的大素数生成方法及装置 Pending CN108270564A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611254464.0A CN108270564A (zh) 2016-12-30 2016-12-30 一种rsa加密算法中的大素数生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611254464.0A CN108270564A (zh) 2016-12-30 2016-12-30 一种rsa加密算法中的大素数生成方法及装置

Publications (1)

Publication Number Publication Date
CN108270564A true CN108270564A (zh) 2018-07-10

Family

ID=62754401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611254464.0A Pending CN108270564A (zh) 2016-12-30 2016-12-30 一种rsa加密算法中的大素数生成方法及装置

Country Status (1)

Country Link
CN (1) CN108270564A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116484443A (zh) * 2023-06-19 2023-07-25 深圳市优博生活科技有限公司 一种基于鸿蒙系统的可信安全存储方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902331A (zh) * 2009-05-28 2010-12-01 质子世界国际公司 用于rsa算法的素数生成的保护
US20140258353A1 (en) * 2013-03-08 2014-09-11 Qualcomm Incorporated Methods and devices for prime number generation
US20150063565A1 (en) * 2013-08-30 2015-03-05 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
CN105515770A (zh) * 2015-11-23 2016-04-20 南京邮电大学 一种改进的快速生成大素数的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902331A (zh) * 2009-05-28 2010-12-01 质子世界国际公司 用于rsa算法的素数生成的保护
US20140258353A1 (en) * 2013-03-08 2014-09-11 Qualcomm Incorporated Methods and devices for prime number generation
US20150063565A1 (en) * 2013-08-30 2015-03-05 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
CN105515770A (zh) * 2015-11-23 2016-04-20 南京邮电大学 一种改进的快速生成大素数的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
石井等: ""RSA数据加密算法的分析与改进"", 《济南大学学报(自然科学版)》 *
程晓蓉,马力,何壮壮: "公钥RSA加密算法的分析与改进", 《网络安全技术与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116484443A (zh) * 2023-06-19 2023-07-25 深圳市优博生活科技有限公司 一种基于鸿蒙系统的可信安全存储方法及装置
CN116484443B (zh) * 2023-06-19 2023-09-15 深圳市优博生活科技有限公司 一种基于鸿蒙系统的可信安全存储方法及装置

Similar Documents

Publication Publication Date Title
CA2594670C (en) Elliptic curve random number generation
CN105488422B (zh) 基于同态加密隐私数据保护的编辑距离计算系统
CN104919754B (zh) 篡改检测装置、篡改检测方法、以及程序
Machicao et al. Improving the pseudo-randomness properties of chaotic maps using deep-zoom
CN105262843A (zh) 一种针对云存储环境的数据防泄漏保护方法
CN104380245A (zh) 随机数生成器和流密码
CN106464483B (zh) 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统
Gutub et al. Smart expansion of target key for more handlers to access multimedia counting-based secret sharing
CN101925875A (zh) 用于非对称加密的对策方法和设备
Hong The cost of false alarms in Hellman and rainbow tradeoffs
Walter Simple power analysis of unified code for ECC double and add
CN101911009B (zh) 用于以签名方案进行非对称加密的对策方法和设备
Das et al. A novel proxy signature scheme based on user hierarchical access control policy
CN105359455A (zh) 电子签名系统
Campos et al. Trouble at the CSIDH: protecting CSIDH with dummy-operations against fault injection attacks
Kuznetsov et al. Statistical Testing of Blockchain Hash Algorithms.
TW200939114A (en) Modular reduction using a special form of the modulus
CN112887096B (zh) 用于签名和密钥交换的素数阶椭圆曲线生成方法及系统
CN108270564A (zh) 一种rsa加密算法中的大素数生成方法及装置
Dürmuth Useful password hashing: how to waste computing cycles with style
TW200810486A (en) Apparatus for performing a fault detection operation and method thereof
Askoxylakis et al. Computer Security--ESORICS 2016
Kovalenko et al. Asymmetric cryptographic algorithms
Renauld et al. Representation-, leakage-and cipher-dependencies in algebraic side-channel attacks
Pomykała et al. On reducing factorization to the discrete logarithm problem modulo a composite

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180710