• 検索結果がありません。

コンピューターによる素因数分解

N/A
N/A
Protected

Academic year: 2021

シェア "コンピューターによる素因数分解"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

コンピューターによる素因数分解

ふるい

( s i e v e )

系のアルゴリズム

攻 一

専 コ 育 ) 教 学 域 数 領 ( 享

・系

科 然 上 教 自 村

はじめに

初等整数論の基本定理に基づき,長年にわたり 素因数分解法が研究され実践されてきた.この分 野の研究は,コンビューターによる演算能力の発 達に伴い, 1970年代より盛んに研究が進められ てきた.その以前でも理論は確立されていたが,

従来の計算法は物理的な限界を持っていたので,

実際に大きな自然数の素因数分解を示すことは困 難を極めていた.今ある素因数分解法の発展は,

古くからの理論の積み重ねと,最新の演算処理技 術によって支えられている.そして,その発展の 根幹には,現在の研究に至るまでに考案されてき た様々な方法があることを忘れてはならない.

素因数分解法の発展には大きく分けて2つの流 れがある.ひとつは『群論系』の流れで,その名 のとおり群論的手法が利用されている.ここでは 詳しく取り上げないが,既約剰余群を利用したp

‑ 1法や,近年研究の可能性が注目されている楕 円曲線法などが,この代表的な方法としてあげら れる.この楕円曲線法は, RSA暗号と並んで暗号 理論の分野でも応用されている.

もう一方の流れは『ふるい

( s i e v e )

系』と呼ば れるもので,フェルマ一法から発展していったも のであるといえる.フェルマ一法とは, Lehman  が1974年に提案した方法で,中学校で扱う初歩 的な因数分解を利用したものである.一見単純だ が極めて効果的な素因数分解法であるといえるだ ろう.このフェルマー法に様々なアイデアを盛り 込むことによって,従来の試行割算法より効率的 な方法が次々と提案された.

ここでは後者のふるい系について取り上げ,古 典的な方法から比較的新しい複数多項式2次ふる い法まで、を流れを追って示すこととする.また,

現在最高速のアルゴ、リズムである一般数体ふるい 法,そしてLehman予想の仮説を用いない世界初 のアノレゴリズムであるA K S判定法, この分野の 最先端である2つの理論についても紹介する.

指導教員

丸 林 英 俊

初等整数論からの準備

本論文で活用する初等整数論の基本的用語およ び定理を述べている.

。定義(素数) 自然数nに対して, :t 1と土n 以外の約数を真の約数という.真の約数をもっn を合成数といい n*lかっ真の約数をもたない nを素数という.つまり,正の約数が3個以上な ら合成数 2個ならば素数というわけで、ある. 1  個しかない 1は特別扱いして,合成数とも素数と

も考えない.

定理(素因数分解と分解の一意性)

合成数nは素数の積に分解される.また,その 分解の仕方は素数のJI慎序を除いては一意的である.

定 理1.1 5 (ブエノレマーの小理) 素数pと整数aに対しては

①aP a (mod  p) 

②(a, p)=1 a(pl)三 1 (mod  p)  が成り立つ.

2 古典的素数判定方法 試行割算法

試行割算法とは

r

nが自然数かつ合成数であ れ ば nはF nより大きくない素因数pをもって

1るJという定理を用いている.小さい素数から 順にわっていき nを割り切る素因数を見つける という最も素朴な方法である.極めて小さい素因 数を見つけるのに有効な方法である.

エラトステネスのふるい

( E r a t o s t h e n e s 'S i e v e )  

素数の研究には,あらかじめ素数を調べておき,

それらを表にした素数表を作っておくと便利であ る.素数か否か,また特定範囲の素数の分布も調 べることができる.たいへん素朴な方法であるが,

いまでも素数表を効率よく作るには,この方法し かないようだ¥

‑ 400‑

(2)

確率的素数判定法

素数判定法の中には,与えられた自然数nを

「合成数であるJまたは「良く分からなしリと判 別するアルゴリズムがある.この判定法を確率的 素数判定法(probabilistic primality test)とし1

うことがある.これに対して「素数である」ある いは否と判定するアルゴリズムは決定的素数判定 法(deterministicprimality test)という.次の フェルマ一法は代表的な確率的素数半Ij定法で、ある.

ブエノレマー法

フェルマーの小定理の対偶をとることで,次の 結果が得られる.

(a, n) 

1 かっ a (n

l ) 手

1 (mod n)  となる整数aが存在すれば nは合成数である.

すなわち,あるnが与えられたとき, (a, n)= 

1となる aに対してa(nl)を計算し,それがnを 法として 1と合同でなければ nはただちに合成 数であることが分かる.このような合成数判定法 をフェルマーテストといい この操作を複数回重 ねて行うことで素数を確率的に判定する方法をフ ェルマー法という.

4 ふるい ( s i e v e ) 系の素因数分解

ふるい(sieve)系の素因数分解は,フェルマー 法から発展していったものである.中学校で扱う 初歩的な因数分解を利用したものであるが,極め て効果的な素因数分解法であるといえるだろう.

このフェルマ一法に様々なアイデアを盛り込む ことによって,従来の試行割算法より効率的な方 法が次々と提案された.

基 本 原 理 一 般 にnの素因数分解には X2 y2 (mod n) 

となる x,yを見つければよい.当然だが,最初 からx三 士yとすればこの合同式は得られるが無 意味である.

Xi Yi (mod n)  かつ 科 学Yi

となる Xi' Yiを集めて組み合わせて平方数を作 る.そして, mod nでの代表元を異なるようにと って,その分解の違いを利用するのである.

く平方数作成> たくさんの整数 r0' 

 

l' 

… .

しが与えられたとき

・まず適当な個数の素数の集合{p1'P2' . . , PB} 

を決める.

次にその集合に属する素数のみで因数分解で きてしまうものをsmoothな数という.つまり

Y

=  T I  

e(i.j) 

となる YiをB+l個さがす.これらをあらた めて r0' l' • .  ,. r Bとおく.

これらのべき指数部分に注目し,さらにそれ をmod2で考えて次のような (2/22上の) B次元ベクトルにする.

i= (e (i, 1) mod 2, e (i,  2) mod 2,...,  e i(,  B) mod 2)  自明でない関係式を求める.

COVO+C1V

+ ・ ・ ・

+CBVB

o

(mod 2)  元に戻した式は平方数である.

直筆量

発想、・・・分解したいnに対して 1,2,3,...  にnを加えて代表元を変える.

定数倍法

発想・・・分解したいnに対して, n/2の近 くの数を 2倍してnを引けば代表元がずれる.

連分数法 (ContinuedFraction Method) 

発想・・・ベル方程式より得られる式を利用す れば,求めたい平方数をつくることができる.

2次ふるい法(Quadratic Sieve) 

発想・・・分解したい奇数nに対して, F nの 近くの数を2乗してnを引けば代表元がずれる.

複 数 多 項 式2次ふるい法(MultiplePolynomial  Quadratic Sieve) 

発想・・・ 2次ふるい法と原理は同じだが 2 次式を複数利用することで,より効率的に求める

ことができる.

数体ふるい法(NumberField Sieve) 

発想・・・代数方程式の複素数体での解を

e

,  mod nでの解をM,とすると 0とM の式はmod

nで異なる代表元を与える.

A K S判 定 法

発想・・・特定の定義に基づき,十分にたくさ んのパラメーターについての合同式を確かめれば,

素数性を厳密に判定することができる. (これは 自明ではないが,証明できる. ) 

‑401 ‑

参照

関連したドキュメント

のピークは水分子の二つの水素に帰属できる.温度が上が ると水分子の 180° フリップに伴う水素のサイト間の交換

これまた歴史的要因による︒中国には漢語方言を二分する二つの重要な境界線がある︒

この 文書 はコンピューターによって 英語 から 自動的 に 翻訳 されているため、 言語 が 不明瞭 になる 可能性 があります。.. このドキュメントは、 元 のドキュメントに 比 べて

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

非自明な和として分解できない結び目を 素な結び目 と いう... 定理 (

これらの定義でも分かるように, Impairment に関しては解剖学的または生理学的な異常 としてほぼ続一されているが, disability と

東京都は他の道府県とは値が離れているように見える。相関係数はこう

しかし , 特性関数 を使った証明には複素解析や Fourier 解析の知識が多少必要となってくるため , ここではより初等的な道 具のみで証明を実行できる Stein の方法