适用于密码学应用的素数生成方法

文档序号:7546767阅读:497来源:国知局
专利名称:适用于密码学应用的素数生成方法
技术领域
本发明涉及信息加密及数字签名领域,特别是涉及一种适用于密码学应用的素 数生成方法。
背景技术
公钥算法——例如RSA,EL Gamal,Schnorr 和 Fiat Schamir 等,都需要一
个或者多个大素数来运算得到算法协议中的密钥。一般来说,这些大素数的位数为 512-2048bits(比特位)。因此素数生成算法是公钥算法中必不可少的流程之一。在不考虑效率的情况下,素数生成最简单的方法就是选择一个随机数r,然后用 素性测试(例如费马检测或者Miller-Rabin检测)检测其是否为素数。由于所有的素数 除2之外都是奇数,因此一种直接简单的改进,就是选择随机的奇数r,这样就能够减少 一半的素性检测循环。更进一步的改进就是在选择r时,使其不为一系列素数中任何一 个的倍数,这样就能够减少更多的素性检测循环。下表为512位的数中,某些集合中平均多少个数中有一个为素数的理论值
权利要求
1.一种适用于密码学应用的素数生成方法,其特征在于步骤1,选取一系列素数Pl,PfPn ;η步骤2,将所选取的素数相乘M = ;Qa,/V··凡;1步骤3,生成需要检测的数r;步骤4,计算M和r的最大公约数gcd ;步骤5,如果最大公约数gcd等于1,那么需要检测的数r通过素数预检测,即需要检 测的数r无法整除Ρι,ρ^··ρη中的任何一个素数,能够对该数r进行素性检测;如果最大 公约数gcd不等于1,说明需要检测的数!·能够整除Ρι,ρζ··ρη中的一个或者多个素数, 则返回步骤3重新生成需要检测的数r ;步骤6,对需要检测的数r进行公知的概率素性检测;步骤7,如果需要检测的数!·通过素性检测,那么认为需要检测的数r就是素数;如 果需要检测的数r没有通过素性检测,那么需要检测的数r一定为合数,则返回步骤3重 新生成需要检测的数r。
2.如权利要求1所述的素数生成方法,其特征在于步骤3中首次生成r的方法包括 随机选取一个随机数r。
3.如权利要求1所述的素数生成方法,其特征在于步骤4中所述的最大公约数采用 欧几里德算法进行计算。
4.如权利要求1所述的素数生成方法,其特征在于步骤6中所述的公知的概率素性 检测包括费马检测。
5.如权利要求1所述的素数生成方法,其特征在于步骤6中所述的公知的概率素性 检测包括Miller-Rabin检测。
6.如权利要求1所述的素数生成方法,其特征在于步骤6中所述的公知的概率素性 检测包括Solovag-Strassen检测。
7.如权利要求1所述的素数生成方法,其特征在于如果r没有通过步骤5的素数预 检测或者步骤7的素性检测,返回步骤3重新生成需要检测的数r的方法包括对r递加一 个自然数。
8.如权利要求1所述的素数生成方法,其特征在于如果r没有通过步骤5的素数预 检测或者步骤7的素性检测,返回步骤3重新生成需要检测的数r的方法包括生成新的随 机数。
全文摘要
本发明公开了一种适用于密码学应用的素数生成方法,将随机数和一系列小素数通过求最大公约数的方法进行素数预检测,仅当该随机数与这些小素数都互素时能够通过素数预检测,再将通过素数预检测的随机数进行素性检测。由于通过预检测的方法能够排除掉一部分合数,因而使得预检测之后的素性检测的循环次数能够大大减少。传统的素数生成方法为直接对随机数进行素性检测,因此需要进行大量的素性检测运算;在通常实现情况下,素性检测的时间要远远大于求最大公约数的时间,因此本发明的方法能够大幅改善素数生成的运算速度和时间。
文档编号H04L9/30GK102023962SQ20091005788
公开日2011年4月20日 申请日期2009年9月10日 优先权日2009年9月10日
发明者柴佳晶 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1