二次筛法EricLandquisi.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二次筛法EricLandquisi

二次筛法 The Quadratic Sieve Factoring Algorithm Eric Landquisi 数学 488: 密码算术 2001年12月14日 1. 介绍 数学家早已开始寻找更快更好的方法去分解一个和数. 一开始, 是不断用更大的质数除, 直到得知它的分解. 这种试除法一直没有被改进, 直到费马应用平方差来分解因数: a2-b2 a-b a+b . 在这种方法中, 我们从被分解数n开始. 找到大于n的最小平方数. 然后检验他们的差是否平方数. 如果是, 就可以用分解平方差的技巧来分解n. 如果不是, 那么找下一个完全平方数, 重复上面的处理. 虽然费马分解法比试除法快很多, 但是在真实应用中, 例如分解一个几百位长的RSA模, 纯粹地用费马分解法太慢了. 一些其他方法已出现, 像椭圆曲线法 Elliptic Curve Method, 简称 ECM 由H. Lenstra在1987发现, 还有两个由 波拉德 Pollard 在上世纪70年代中期发现的概率性的方法: ρ-1方法 ρ-1 method 和ρ方法 ρmethod ρ是希腊字母rho . 最快的运算法则仍然用类似费马的方法, 例如连分数法 the Continued Fraction Method , 二次筛选法 the Quadratic Sieve 及其变种 , 还有数域筛选法 the Number Field Sieve, 简称NFS 及其变种 . 一个例外是几乎与二次筛选法一样快的椭圆曲线法. 本文的中心是二次筛选法. 2. 二次筛选法 以后简称二次筛选法为QS, 它在1981年由卡尔 帕梅让斯 Carl Pomerance 发明,是扩展 克雷契克 Kraitchik 和 狄克逊 Dixon 的思想. QS是最快的分解法直到1993年发现了数域筛选法. 不过对小于110位的数QS还是比NFS快. 3. 它怎样工作? 设n是被分解数,QS试图寻找两个数 x, y 满足 x≠y mod n , 且x2 y2 mod n . 则 x-y x+y 0 mod n , 接着用欧几里德法 辗转相除法求最大公约数 检验 x-y,n 是否一个非平凡约数, 至少有1/2的机会找到非平凡约.我们首先定义Q x x+[sqrt n ] 2-n x~2-n, 然后计算Q x 1 , Q x 2 ,...,Q x k , 下面会解释如何决定 x i . 我们想要集合 Q x 的一个满足 Q x i1 Q x i2 ...Q x ir 是完全平方数y2 的子集. 注意到对所有 x, 有Q x x~^2 mod n . 于是, 我们有 Q xi1 Q xi2 ...Q xir xi1xi2...xir 2 mod n , 并且如果满足上面的条件, 那么我们就有了n的因数. 3.1 设定因数基和筛选区间 我们需要一个有效的方法去确定 xi, 以便得到Q xi 的乘积. 接着检查乘积是否为平方数, 即乘积的质因数的指数必须都是偶数. 为此我们需要分解每一个 Q xi . 所以我们希望它尽可能小且能用固定的被称作因数基的小质数 包括-1 集合分解. 要使 Q xi 小, 需选择接近0的x. 所以我们规定一个范围M, 并且仅仅筛选[-M,M]中的x 或者定义Q x x2-n 然后筛选区间 [[sqrt n ]-M, [sqrt n ]+M] . 现在, 如果x在这个筛选区间, 且一些质数 p 整除 Q x , 那么 x-[sqrt n ] 2 n mod p , 即 n 是一个 mod p 的二次剩余. 所以在因数基中的质数必满足勒让德符号 Legendre symbol n/p 1. 第二个判断这些素数的标准是它们应该小于依赖于n的范围B, 我们分析运行时将讨论这些. 集合中的每个素数相关小,我们也说因数基是平滑的. 3.2 筛选 之前,我们为了因数基有一个素数集合.现在开始从筛选区间取出数x,并且计算 Q x , 然后检查他的因数是否在我们的因数基中.如果是,就是说Q x 是平滑的, 否则,丢弃它.继续处理下一个筛选区间中的元素.如果我们使用一个大的因数基,虽然是难以想象的低效to consider numbers one at a time和用所有在因数基中的素数检查整除性.如果改为在并行工作,将一次筛完全部区间.每一个处理单元会处理一个子区间.这里是它怎样工作.如果 p 是 Q x 的一个质因数, 则 p|Q x+p . 反过来, 如果 x y mod p , 则 Q x Q y mod p . 所以, 对于每一个因数基中的素数, 有: Q x s2 0 m

文档评论(0)

cuotian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档