大整数的因数分解问题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即使有了电子计 算机, 用试除 法来 作素性 判定 或 因 数分 解, 也是 无法 实现 的! 例 如, 用一 台每 秒可 作 1000 亿次运算的电子计算 机( 相 当高级的 计算机) , 用 试除法判定一个 20 位数 的素性 需要相 当于一 个优 秀 运动员跑完马拉松全程的时间 , 判定一个 50 位数 的素 性所需要的 时间 竟是 我们 可见 宇宙 的 年龄 的 5 倍 以 上, 判定一个 100 位数的素性要 1 千亿亿亿亿年, 判定 一个 1000 位数的素性则需要 10 万亿亿亿亿亿亿 亿亿 亿亿亿亿亿亿亿亿亿亿亿亿亿 亿亿亿亿亿亿亿亿亿亿 亿亿亿亿亿亿亿亿亿亿亿亿亿 亿亿亿亿亿亿亿亿亿亿 亿亿亿亿年. 宇宙的年龄不足 200 亿年!
数是通信者选定的, 外人不知道, 不知道的人要破 译密
码, 必须将公开的加密密钥( 两素数之积) 作因数分解.
由于此数有 200 位, 利用最 先进的 电子 计算机 也无 法
在有效时间内 实现 分解, 所以 RSA 密码体 制出 现后,
被人们称为 不可破 译的密码 , 在军 事、金融、经济 等
领域有重要应用. 因此大数分解问题更加引人注目.
546 976 801 874 298 166 903 427 690
031 858 186 486 050 853 753 882 811
946 596 946 433 649 006 084 097
= 2 424 833
7 455 602 825 647 884 208 337 395
736 200 454 918 783 366 342 657
因数分解的理论依据 是 算术基 本定 理 : 任 何大 于 1 的自然数都可以分 解成素 因数的 连乘积 形式, 如 果不计素因数在乘积中的顺序, 这种分解还是 惟一的.
例如, 105= 3 5 7= 5 7 3= 7 3 5, 其中因 数的顺序不同, 但只 有 3、5、7 这三个 素因数 这一 点是 惟一的.
人们为此也作了不懈 的努力, 先 后创建 了许 多方 法, 也取得一系列成就 . 如 20 世纪 70 年代 求出了 F 7 = 227+ 1 的分解式
F 7 = 59649589127497217
5 70 46 892 00 68 51 29 05 472 1, 现在可达到分解数十位数的一般合数和更高位数的特 殊形式的合数(如梅森合数 M n= 2 n- 1)的 水平, 但更 多位数的大合数的因数 分解还 是很困 难的. 于是 我们 面临着这样一种现象 我们可以判定一个一二百位 的数是否为素数, 但是, 我们无法有效地分解一个一二 百位的大合数.
不过, 实际利用这种方法分解的数却微乎其微. 大 整数的因数分解最 基本的 困难是 计算. 按前述 方法 分 解整数, 原则上对任何数都是可能的, 但要把可能 变为 现实, 必须经过一系列 的计算, 那就 要耗 费大量 时间, 以至于计算时间太 长而无 法完成. 在电 子计算 机产 生 前, 通过计算对一个十几 位的数 作素性 判定都 是很 困 难的. 19 世纪, 人 们已 确认 简单 的素 数公 式是 不存 在 的, 因而, 高斯认为素性判定是数论中最困难的问 题之 一. 当时, 人们只对某些很特殊的数作了 研究, 或者, 一 般地对素性判定作 了些理 论探讨, 对具 体的大 数的 素 性判定几乎无法进行. 20 世纪 50 年代, 电子 计算机 有 了广泛的应用, 对具体的 大数的 素性判 定和大 整数 的 因数分解才真正提到日程上来 .
数, 就是要找出所有不大于它的素数, 如果它本身 就是 素数, 那么分解已完成; 如果 不是素 数, 可以一 一判 定 比它小的哪些素数是它的因数. 问题归结为寻找素数, 关于此有定理:
n> 1 是素数的充要条件是不大于 n 的素数 都不 能整除 n.
据此定理, 利 用筛 法, 可以 找出 不大 于 n 的所 有 素数, 进而, 可用试除法分解任何整数了 .
过程不可能译出密文. 这一体制依赖于大数分解困难:
我们可 以 很容 易 地 找 出两 个 大 素 数( 如 100 位 的 素
数) , 求它们的乘积 ( 这 在计算 机上是 易于实 现的) , 乘
积作为加密密钥的参数之一公开, 可按此对信息加密.
密码的解密密钥与 原来的 两个素 数有关, 而这 两个 素
( 3394 -
1) ] . 人 们
认为对于一般的数, 目前分解的上限至多 100 位, 不可
破译的密码仍然是不可破译的 .
参考文献
1 梁宗巨. 一万个世界之谜 数学分册. 武汉: 湖北少 年儿
童出版社, 1995
2 基斯 德夫林著, 李文林 等译. 数学: 新 的黄金时代. 上 海:
上海教育出版社, 1997
方法 20 位数 50 位数 100 位数 200 位数 1000 位数
试除法 2 小时 1011年 1036 年 1086年 威廉斯法 5 秒 10 小时 100 年 109 年
10486 年 1044年
艾 鲁法 10 秒 15 秒 40 秒 1 分
1周
这使得对一二百位的大数的素性判定成为可实现 的. 但后两种方法也有一个重要的缺陷: 它们实际上只 是一种 定性 的方法, 即单 纯判定 某数是素 数还 是合 数, 不能像试除法那样同时找出合数的所有素因数 来. 人们知道很多这样的数, 已知它是合数, 但并没有找到 它的素因数(即没 有分解出 全部甚 至一个 素因数 来) . 例如, 1909 年人们就证 明费马 数 F8 = 228+ 1 为合 数, 但 直 到 1975 年 才 找 出 它 的 一 个 素 因 数 12389263615522897, 1981 年 才 找 到它 的 另 一 个素 因 数 93461639715357977769163558199606896584051237 541638188580280321; F14 = 2214 + 1 在 1963 年被 证明 是合数, 但至今尚不知道它的任何一个素因数. 这就是 说, 在引入了比试除 法效率高 得多的 素性判 定方 法之 后, 大数的因 数分 解问 题 并没 有相 应 地得 到解 决. 因 此, 不可能在对某大 数作出素 性判定 的同时 解决 大合 数的因数分解问题. 这样, 就需要单独来探讨大合数的 因数分解问题.
人们有效地利用了这种素性判定和因式分解的不 同步现象. 提出 了 一 种 公 开 密 钥 的 密 钥 体 制, 称 为 RSA 体 制 ( RSA 是他们三人姓氏的 首母合 写) . 在 这个密码 体制
中, 对电文的加密是公开的, 但只知加密过程不知 解密
中学数学教学参考
2000 年第 6 期
63
数学走廊
大整数的因数分解问题
孙宏安
应该说, 整数的因数分解是一个易于理解、清楚明 白的问题, 但并不是一个简单的问题. 较小整数的因数 分解是一个 小 学算 术问 题. 但 充分 大 的数, 例 如 一个 50 位的整数的因 数分解 问题 就是 一个 超级 数学 难题 了, 用小学学过的试 除法, 即使采 用电 子计算 机, 一个 人一辈子也做不出来; 而且, 假设人类从一产生起就一 代接一代地利 用电 了计 算机 用试 除法 来 分解 这 个整 数, 那么, 到现在仍 然无法 分解出 来. 大数的 因数 分解 问题是数学中最基本、最古老, 而至今仍受人们重视但 未能完全解决的问题之 一. 由 于大整 数可能 是素 数也 可能是合数 , 因此, 这一问 题就包 括两 个方面: 判 定给 定的数是否为素数(素性判定) 和将大合数分解为素因 数的乘积(大数分解) .
值得注意的是, 算术 基本定 理虽 然是进 行整 数因 数分解的依 据, 但它 在数学 中只是 一个 存在 性 定理 而不是 构造性 定理. 它只 指出整 数分解因 数的 可能 性, 但并没指出具体的分解方法, 所以数的具体的因数 分解仍然是一个技巧性难题. 对于因数分解, 人们首先 想到的是试 除法: 依 次用素 数( 按从小 到大的 顺序, 即 依次用 2, 3, 5, ) 除 要分解 的数 , 从而 找出 全部 素因 数( 所谓 筛 法 的基本意思) . 这样, 试除法分解某一整
那么大数的素性判定或因数分解怎 么办呢? 人们 对此做了进一步的理论研究, 给出一系列有用的结果, 如费马( Fermat) 小 定 理 ( 1640) , 卢 卡 斯 ( L ucas) 定 理
64
中学数学教学参考
2000 年第 6 期
( 1876) 、威廉 斯( W iliams) 方 法( 1978) , 艾 德列 曼 和鲁 梅利( Adleman & Rumely ) 方法( 1983) 等, 运 用这些 方法极大地提高了素性 判定的 效率. 下表给 出用 上述 计算机采用不同方法判定素性的时间比较:
741 640 062 627 530 801 524 787
141 901 937 474 059 940 781 097 519
023 905 801 316 144 415 759 504 705
008 092 818 711 693 940 737.
这一分解引起很大 的震动, 一是 推动了 大数分 解问 题
这一定理是数论的基础性原理之一, 欧几里得 几 何原本 中可以说用了这个定理, 而且其中的若干命题 似乎也提供了 证明 这一 定理 的若 干 前提, 但 几 何原 本 中没提出这个 定理. 其后很 长时期, 尽管 许多 数论 著述中都用了与这个定 理类似 的命题, 但都 没正 式提 出这 一 定理. 直 到 1801 年, 德 国 数 学家 高 斯 ( K . F . G auss) 在其 算 术研 究 一书 中, 正 式提 出并 证明 了这 一定理.
的进展, 有重要的理论 意义; 二是威 胁到 不可 破译 的
密码 的可靠性, 因而受到关注. 人们发现, 这只是 对某
种特定形式的大数的分解. 这方面后来还有一些工作,
如 1997 年, 美国的瓦 格斯塔 夫( S. W agstaff ) 分 解了 一
个 167 位数, 仍然 是特 殊形式 的[
1 2
1990 年, 美国伦斯特拉 ( A . K . Leustra) 等人 宣布,
他们将一个 155 位数分解为 3 个素数的乘积 2512+ 1
= 13 407 807 929 924 597 099 574
024 998 205 846 127 479 365 820 592
393 377 723 561 446 721 764 030 073
数是通信者选定的, 外人不知道, 不知道的人要破 译密
码, 必须将公开的加密密钥( 两素数之积) 作因数分解.
由于此数有 200 位, 利用最 先进的 电子 计算机 也无 法
在有效时间内 实现 分解, 所以 RSA 密码体 制出 现后,
被人们称为 不可破 译的密码 , 在军 事、金融、经济 等
领域有重要应用. 因此大数分解问题更加引人注目.
546 976 801 874 298 166 903 427 690
031 858 186 486 050 853 753 882 811
946 596 946 433 649 006 084 097
= 2 424 833
7 455 602 825 647 884 208 337 395
736 200 454 918 783 366 342 657
因数分解的理论依据 是 算术基 本定 理 : 任 何大 于 1 的自然数都可以分 解成素 因数的 连乘积 形式, 如 果不计素因数在乘积中的顺序, 这种分解还是 惟一的.
例如, 105= 3 5 7= 5 7 3= 7 3 5, 其中因 数的顺序不同, 但只 有 3、5、7 这三个 素因数 这一 点是 惟一的.
人们为此也作了不懈 的努力, 先 后创建 了许 多方 法, 也取得一系列成就 . 如 20 世纪 70 年代 求出了 F 7 = 227+ 1 的分解式
F 7 = 59649589127497217
5 70 46 892 00 68 51 29 05 472 1, 现在可达到分解数十位数的一般合数和更高位数的特 殊形式的合数(如梅森合数 M n= 2 n- 1)的 水平, 但更 多位数的大合数的因数 分解还 是很困 难的. 于是 我们 面临着这样一种现象 我们可以判定一个一二百位 的数是否为素数, 但是, 我们无法有效地分解一个一二 百位的大合数.
不过, 实际利用这种方法分解的数却微乎其微. 大 整数的因数分解最 基本的 困难是 计算. 按前述 方法 分 解整数, 原则上对任何数都是可能的, 但要把可能 变为 现实, 必须经过一系列 的计算, 那就 要耗 费大量 时间, 以至于计算时间太 长而无 法完成. 在电 子计算 机产 生 前, 通过计算对一个十几 位的数 作素性 判定都 是很 困 难的. 19 世纪, 人 们已 确认 简单 的素 数公 式是 不存 在 的, 因而, 高斯认为素性判定是数论中最困难的问 题之 一. 当时, 人们只对某些很特殊的数作了 研究, 或者, 一 般地对素性判定作 了些理 论探讨, 对具 体的大 数的 素 性判定几乎无法进行. 20 世纪 50 年代, 电子 计算机 有 了广泛的应用, 对具体的 大数的 素性判 定和大 整数 的 因数分解才真正提到日程上来 .
数, 就是要找出所有不大于它的素数, 如果它本身 就是 素数, 那么分解已完成; 如果 不是素 数, 可以一 一判 定 比它小的哪些素数是它的因数. 问题归结为寻找素数, 关于此有定理:
n> 1 是素数的充要条件是不大于 n 的素数 都不 能整除 n.
据此定理, 利 用筛 法, 可以 找出 不大 于 n 的所 有 素数, 进而, 可用试除法分解任何整数了 .
过程不可能译出密文. 这一体制依赖于大数分解困难:
我们可 以 很容 易 地 找 出两 个 大 素 数( 如 100 位 的 素
数) , 求它们的乘积 ( 这 在计算 机上是 易于实 现的) , 乘
积作为加密密钥的参数之一公开, 可按此对信息加密.
密码的解密密钥与 原来的 两个素 数有关, 而这 两个 素
( 3394 -
1) ] . 人 们
认为对于一般的数, 目前分解的上限至多 100 位, 不可
破译的密码仍然是不可破译的 .
参考文献
1 梁宗巨. 一万个世界之谜 数学分册. 武汉: 湖北少 年儿
童出版社, 1995
2 基斯 德夫林著, 李文林 等译. 数学: 新 的黄金时代. 上 海:
上海教育出版社, 1997
方法 20 位数 50 位数 100 位数 200 位数 1000 位数
试除法 2 小时 1011年 1036 年 1086年 威廉斯法 5 秒 10 小时 100 年 109 年
10486 年 1044年
艾 鲁法 10 秒 15 秒 40 秒 1 分
1周
这使得对一二百位的大数的素性判定成为可实现 的. 但后两种方法也有一个重要的缺陷: 它们实际上只 是一种 定性 的方法, 即单 纯判定 某数是素 数还 是合 数, 不能像试除法那样同时找出合数的所有素因数 来. 人们知道很多这样的数, 已知它是合数, 但并没有找到 它的素因数(即没 有分解出 全部甚 至一个 素因数 来) . 例如, 1909 年人们就证 明费马 数 F8 = 228+ 1 为合 数, 但 直 到 1975 年 才 找 出 它 的 一 个 素 因 数 12389263615522897, 1981 年 才 找 到它 的 另 一 个素 因 数 93461639715357977769163558199606896584051237 541638188580280321; F14 = 2214 + 1 在 1963 年被 证明 是合数, 但至今尚不知道它的任何一个素因数. 这就是 说, 在引入了比试除 法效率高 得多的 素性判 定方 法之 后, 大数的因 数分 解问 题 并没 有相 应 地得 到解 决. 因 此, 不可能在对某大 数作出素 性判定 的同时 解决 大合 数的因数分解问题. 这样, 就需要单独来探讨大合数的 因数分解问题.
人们有效地利用了这种素性判定和因式分解的不 同步现象. 提出 了 一 种 公 开 密 钥 的 密 钥 体 制, 称 为 RSA 体 制 ( RSA 是他们三人姓氏的 首母合 写) . 在 这个密码 体制
中, 对电文的加密是公开的, 但只知加密过程不知 解密
中学数学教学参考
2000 年第 6 期
63
数学走廊
大整数的因数分解问题
孙宏安
应该说, 整数的因数分解是一个易于理解、清楚明 白的问题, 但并不是一个简单的问题. 较小整数的因数 分解是一个 小 学算 术问 题. 但 充分 大 的数, 例 如 一个 50 位的整数的因 数分解 问题 就是 一个 超级 数学 难题 了, 用小学学过的试 除法, 即使采 用电 子计算 机, 一个 人一辈子也做不出来; 而且, 假设人类从一产生起就一 代接一代地利 用电 了计 算机 用试 除法 来 分解 这 个整 数, 那么, 到现在仍 然无法 分解出 来. 大数的 因数 分解 问题是数学中最基本、最古老, 而至今仍受人们重视但 未能完全解决的问题之 一. 由 于大整 数可能 是素 数也 可能是合数 , 因此, 这一问 题就包 括两 个方面: 判 定给 定的数是否为素数(素性判定) 和将大合数分解为素因 数的乘积(大数分解) .
值得注意的是, 算术 基本定 理虽 然是进 行整 数因 数分解的依 据, 但它 在数学 中只是 一个 存在 性 定理 而不是 构造性 定理. 它只 指出整 数分解因 数的 可能 性, 但并没指出具体的分解方法, 所以数的具体的因数 分解仍然是一个技巧性难题. 对于因数分解, 人们首先 想到的是试 除法: 依 次用素 数( 按从小 到大的 顺序, 即 依次用 2, 3, 5, ) 除 要分解 的数 , 从而 找出 全部 素因 数( 所谓 筛 法 的基本意思) . 这样, 试除法分解某一整
那么大数的素性判定或因数分解怎 么办呢? 人们 对此做了进一步的理论研究, 给出一系列有用的结果, 如费马( Fermat) 小 定 理 ( 1640) , 卢 卡 斯 ( L ucas) 定 理
64
中学数学教学参考
2000 年第 6 期
( 1876) 、威廉 斯( W iliams) 方 法( 1978) , 艾 德列 曼 和鲁 梅利( Adleman & Rumely ) 方法( 1983) 等, 运 用这些 方法极大地提高了素性 判定的 效率. 下表给 出用 上述 计算机采用不同方法判定素性的时间比较:
741 640 062 627 530 801 524 787
141 901 937 474 059 940 781 097 519
023 905 801 316 144 415 759 504 705
008 092 818 711 693 940 737.
这一分解引起很大 的震动, 一是 推动了 大数分 解问 题
这一定理是数论的基础性原理之一, 欧几里得 几 何原本 中可以说用了这个定理, 而且其中的若干命题 似乎也提供了 证明 这一 定理 的若 干 前提, 但 几 何原 本 中没提出这个 定理. 其后很 长时期, 尽管 许多 数论 著述中都用了与这个定 理类似 的命题, 但都 没正 式提 出这 一 定理. 直 到 1801 年, 德 国 数 学家 高 斯 ( K . F . G auss) 在其 算 术研 究 一书 中, 正 式提 出并 证明 了这 一定理.
的进展, 有重要的理论 意义; 二是威 胁到 不可 破译 的
密码 的可靠性, 因而受到关注. 人们发现, 这只是 对某
种特定形式的大数的分解. 这方面后来还有一些工作,
如 1997 年, 美国的瓦 格斯塔 夫( S. W agstaff ) 分 解了 一
个 167 位数, 仍然 是特 殊形式 的[
1 2
1990 年, 美国伦斯特拉 ( A . K . Leustra) 等人 宣布,
他们将一个 155 位数分解为 3 个素数的乘积 2512+ 1
= 13 407 807 929 924 597 099 574
024 998 205 846 127 479 365 820 592
393 377 723 561 446 721 764 030 073