第三十七个知识点: The Number Field Sieve

数域筛法(The Number Field Sieve ,NFS)是已知的分解算法中最有效率的。它的运行时间取决于被分解的数的大小而不是它的因子的大小。NFS算法的分解基于平方同余理论:给定一个大整数\(N\),我们想要找到两个不同的整数\(x\)和\(y\)使得\(x^2 = y^2 \mod N\)。然后我们希望\(gcd(x-y,N)\)是一个非平凡的A的因子。

我们大致描述一下NFS的工作原理。算法的第一步是选择两个yi'yuan不可约一元\(f_1\)和\(f_2\)分别有度\(d_1\)和\(d_2\)。让\(m \in Z\)是两个多项式共同的根\(f_1(m) = f_2(m) = 0 \mod N\)。让\(\theta_1,\theta_2 \in C\)是分别是\(f_1\)和\(f_2\)的复数根,我们构造两个代数域\(Z[\theta_i] = Q(\theta_i),i = 1,2\)。实际上这给出了两个乘法定义的多项式环。然后我们定义同态\(\phi_i : Z[\theta_i] \rightarrow Z_N\),将\(\theta_i\)映射到\(m\)。NFS算法就是希望能从两个代数环中找出两个平方\(\gamma_1^2\)和\(\gamma_2^2\),使得\(\gamma_1^2 = \Pi_{(a,b) \in S}(a-b*\theta_1)\)和\(\gamma_2^2 = \Pi_{(a,b) \in S}(a-b*\theta_2)\),其中\(\gamma_1 \in Z[\theta_1],\gamma_2 \in Z[\theta_2]\)那么\(S\)是一个互素整数对的有限集合\((a,b)\)。为了找到这样的集合,我们将会对\(a-b*\theta_i\)进行筛选,通过观察\(a-b*\theta_i\)是否是在一些代数基数上平滑的进行筛选。我们多快发现集合\(S\)是算法效率的关键。接下来我们对\(\gamma_i^2\)进行开方,方法有[1]和[2]。一旦两个平方根被确定了,我们通过同态的性质\(\phi_1(\gamma_1)^2 = \phi_2(\gamma_2)^2 \mod N\),同时期望\(gcd(N,\phi_1(\gamma_1)-\phi_2(\gamma_2)) \neq 1\)且\(gcd(N,\phi_1(\gamma_1)-\phi_2(\gamma_2)) \neq N\)是非平凡的因数。

[1] Couveignes, Jean-Marc. "Computing a square root for the number field sieve." The development of the number field sieve. Springer Berlin Heidelberg, 1993. 95-102.

[2] Montgomery, Peter L. "Square roots of products of algebraic numbers." Mathematics of Computation (1993): 567-571. APA

第三十七个知识点: The Number Field Sieve的更多相关文章

  1. 第十七个知识点:描述和比较DES和AES的轮结构

    第十七个知识点:描述和比较DES和AES的轮结构 这是密码学52件事中的第17篇.本周我们描述和比较DES和AES的结构. DES和AES都是迭代分组密码的例子.分组密码通过重复使用一个简单的轮函数来 ...

  2. 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索

    第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...

  3. NeHe OpenGL教程 第三十七课:卡通映射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. Java进阶(三十七)java 自动装箱与拆箱

    Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...

  5. Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  6. SQL注入之Sqli-labs系列第三十六关(基于宽字符逃逸GET注入)和三十七关(基于宽字节逃逸的POST注入)

    0X1 查看源码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string ...

  7. “全栈2019”Java多线程第三十七章:如何让等待的线程无法被中断

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  8. 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...

  9. centos shell编程3【告警系统】 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七节课

    centos shell编程3[告警系统]  没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh  disk.sh  第三十七 ...

随机推荐

  1. 【leetcode】122.Best Time to Buy and Sell Stock II(股票问题)

    You are given an integer array prices where prices[i] is the price of a given stock on the ith day. ...

  2. 容器的分类与各种测试(三)——deque

    deque是双端队列,其表象看起来是可以双端扩充,但实际上是通过内存映射管理来营造可以双端扩充的假象,如图所示 比如,用户将最左端的buff用光时,map会自动向左扩充,继续申请并映射一个新的buff ...

  3. SpringBoot让测试类飞起来的方法

    单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...

  4. 编译安装haproxy2.0

    先解决lua环境,(因为centos自带的版本不符合haproxy要求的最低版本(5.3)先安装Lua依赖的包 [root@slave-master lua-5.3.5]# yum install  ...

  5. 【Java 8】Stream中flatMap方法

    在java 8 Stream中,flatMap方法是一个维度升降的方法 举例说明 给 定 单 词 列 表["Hello","World"] ,要返回列表 [&q ...

  6. shell脚本 查看cpu的温度

    一.简介 源码地址 日期:2018/8/24 介绍:查看主板上单个多核CPU中温度最高的一个内核 效果图: 二.使用 适用:centos6+ 语言:英文 注意:需要先安装lm_sensors,不支持虚 ...

  7. 车载以太网第二弹|测试之实锤-AVB测试实践

    背景 AVB(Audio Video Bridging)音视频桥接,是由IEEE 802.1标准委员会的IEEE AVB任务组制定的一组技术标准,包括精确时钟同步.带宽预留和流量调度等协议规范,用于构 ...

  8. WebRTC音频通话升级为视频通话

    我们有时候在音频通话过程中,想要改成视频通话.如果挂断当前通话再重新发起视频通话就会显得比较麻烦. 因此很多app提供了将音频通话升级成视频通话的功能,同时也有将视频通话降为音频通话的功能. 本文演示 ...

  9. CF658A Bear and Reverse Radewoosh 题解

    Content 一场比赛有 \(n\) 道题目,其中第 \(i\) 道题目的分值为 \(p_i\),需要花费的时间为 \(t_i\).需要说明的是,\(t_i\) 越大,这道题目的难度越大.在第 \( ...

  10. 背水一战——CSP2021/NOIP2021 游记

    洛谷 version 转载本文章的其他链接: 1(S00021 提供) 2(Ew_Cors 提供) \[\texttt{2021.9.10} \] 终于开坑了. 笑死,初赛根本还没开始复习,反正初赛也 ...