公開鍵暗号とshorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/zh30301-001.pdf ·...

51
公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻 自然系コース 1 論文の目的 暗号の技術は,歴史的には軍事・外交などの世 界で,当事者以外にはわからないように情報を変 換するために使用された.つまり特定の二者の問 で,悪意の第三者に分からないように,盗聴の危 険のある通信路を介し情報を交換するために暗号 が用いられてきた. ところが近年インターネットを代表とするネッ トワーク社会の発達により,暗号が情報を守る手 段として重要視されるようになった.なかでも鍵 情報の一部を公開する公開鍵暗号は暗号史の上で 画期的な発明で,不特定多数者の間での秘密情報 の交換を可能とし,電子商取引など現代社会に必 須の技術となっている. 暗号理論は,数学のなかでも特に初等整数論に 基づいている.また多くの公開鍵暗号は,大きな 数に対する素因数分解または離散対数の計算の困 難さを安全性の根拠にしている 一方,次世代コンピュータの一つである量子 コンピュータは,暗号理論とはまったく関係なく 提案され研究されてきた.ところが1994年Shor が,量子コンピュータで大きな数に対する素因数 分解と離散対数を高速に計算するアルゴリズム を示し,その物理的実現に向けての研究に拍車が かかった.しかし,量子ゴジピュータの実用化に は,なお多くの難題がある. 本論文の前半では,暗号理論と公開鍵暗号の概 要について述べる.後半では,Shorの因数分解 アルゴリズムをとりあげる. 2 論文の構成 第0章 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1。7 第2章 2.1 2.2 2.2.1 2.22 2.2.3 第3章 3.1 3.2 3.2.1 3.2.2 3.2.3 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 第4章 4.1 序文 整数論 約数と素数 Euclidの互除法 合同式と剰余類 Fermatの定理とEulerの定理 中国式剰余定理 繰り返し二乗法による法べき乗計算 法ηの線形代数 暗号理論 暗号の基本概念 簡単な暗号系 シフト暗号 アフィン暗号 Hill暗号 公開鍵暗号 秘密鍵暗号と公開鍵暗号 Di缶e-Hellman鍵交換システム 離散対数問題 一方向性関数 Di缶e-Hellman鍵交換システムの仕組み RSA暗号 素因数分解問題 落とし戸つき一方向性関数 素数の生成 RSA暗号の仕組み RSA暗号の安全性 量子コンピュータ 量子力学とコンピュータ

Upload: others

Post on 12-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

公開鍵暗号とShorのアルゴリズム

教科・領域教育専攻

自然系コース福 元 裕 樹

1 論文の目的

暗号の技術は,歴史的には軍事・外交などの世

界で,当事者以外にはわからないように情報を変

換するために使用された.つまり特定の二者の問

で,悪意の第三者に分からないように,盗聴の危

険のある通信路を介し情報を交換するために暗号

が用いられてきた.

ところが近年インターネットを代表とするネッ

トワーク社会の発達により,暗号が情報を守る手

段として重要視されるようになった.なかでも鍵

情報の一部を公開する公開鍵暗号は暗号史の上で

画期的な発明で,不特定多数者の間での秘密情報

の交換を可能とし,電子商取引など現代社会に必

須の技術となっている.

暗号理論は,数学のなかでも特に初等整数論に

基づいている.また多くの公開鍵暗号は,大きな

数に対する素因数分解または離散対数の計算の困

難さを安全性の根拠にしている

一方,次世代コンピュータの一つである量子

コンピュータは,暗号理論とはまったく関係なく

提案され研究されてきた.ところが1994年Shor

が,量子コンピュータで大きな数に対する素因数

分解と離散対数を高速に計算するアルゴリズム

を示し,その物理的実現に向けての研究に拍車が

かかった.しかし,量子ゴジピュータの実用化に

は,なお多くの難題がある.

本論文の前半では,暗号理論と公開鍵暗号の概

要について述べる.後半では,Shorの因数分解

アルゴリズムをとりあげる.

2 論文の構成

第0章

第1章

1.1

1.2

1.3

1.4

1.5

1.6

1。7

第2章

2.1

2.2

2.2.1

2.22

2.2.3

第3章

3.1

3.2

3.2.1

3.2.2

3.2.3

3.3

3.3.1

3.3.2

3.3.3

3.3.4

3.3.5

第4章

4.1

序文

整数論

約数と素数

Euclidの互除法

合同式と剰余類

Fermatの定理とEulerの定理

中国式剰余定理

繰り返し二乗法による法べき乗計算

法ηの線形代数

暗号理論

暗号の基本概念

簡単な暗号系

シフト暗号

アフィン暗号

Hill暗号

公開鍵暗号

秘密鍵暗号と公開鍵暗号

Di缶e-Hellman鍵交換システム

離散対数問題

一方向性関数

Di缶e-Hellman鍵交換システムの仕組み

RSA暗号

素因数分解問題

落とし戸つき一方向性関数

素数の生成

RSA暗号の仕組み

RSA暗号の安全性

量子コンピュータ

量子力学とコンピュータ

Page 2: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

4.2

4.3

4.4

4.5

第5章

5.1

5.2

5.3

5.4

付録

引用文献

量子回路

量子並列計算

量子フーリエ計算

法べき乗計算

Shorのアルゴリズム

因数分解法

周期を見つけるアルゴリズム

Shorの因数分解アルゴリズム

Shorのアルゴリズムの具体例

プログラム

論文の中心は第3章の公開鍵暗号と第5章の

Shorのアルゴリズムである.第1章と第2章は

第3章の,また第4章は第5章の準備である.第

1章では,暗号理論に必要な初等整数論の基本事

項をまとめた.第2章では,古典的な暗号であ

る秘密鍵暗号をとりあげ,暗号の基本概念を説明

し,シフト暗号,アフィン暗号,Hill暗号を例示

した.第3章では,公開鍵暗号の概念を説明し,

離散対数問題に基づくDifEe-Hellmaa鍵交換シス

テムと素因数分解問題に基づくRSA暗号をとり

あげた.第4章では,次世代コンピュータの一つ

である量子コンピュータの基本概念についてまと

めた.量子回路を量子コンピュータの数学的モデ

ルとし,いくつかの量子回路を例示した.第5章

では,Shorの因数分解アルゴリズムについて詳

しく考察し,具体的に素因数分解例を示した.付

録では,Shorのアルゴリズムをプログラミング

し紹介した.

3 論文の概要

1976年Di伍eとHellmanは,それまでの「秘

密鍵暗号」とはまったく違ったタイプの暗号系で

ある「公開鍵暗号」を提案した.これは誰でも暗

号化できるが,本人以外の第三者が復号化するの

は難しい暗号系である.

なかでも最も有名なRSA暗号は,1978年

Rives七, Shamir, Adlemanによって考案された最

初の実用公開鍵暗号である.これまでに多くの解

読法が提案されたが,現在最も有効とされるのは

素因数分解問題を解く方法である.

素因数分解問題とは「大きな整数を素因数分解

する」という歴史的な難問の一つで,1999年現

在,最も強力な因数分解アルゴリズムと高速計

算を得意とする現在のコンピュータを用いても,

200桁以上の整数については特殊な形を除いて一

般には素因数分解できない.RSA暗号では,こ

の事実を安全性の根拠にする.

ところが,1994年Shorが次世代コンピュータ

のひとつである量子コンピュータで素因数分解問

題を高速に計算するアルゴリズムを示した.

1980年代のはじめFeynmanは,量子系のシ

ミュレーションでは量子力学的な計算機(量子コ

ンピュータ)が,古典力学的な計算機(現在のコ

ンピュータ)に比べて速くなる可能性を示唆した.

さらに1985年Deu七schは,量子コンピュータの

数学的モデルを定義し,量子並列計算によって高

速計算が可能になることを示した.

この量子コンピュータによる最も有名な量子ア

ルゴリズムがShorのアルゴリズムで,因数分解

を目的とする.量子フーリエ変換が重要な役割を

もち,2次合同式を導いて,うまくいけば因数分

解できる確率的アルゴリズムである.現在のコン

ピュータでは動作が遅く実用的でないが,このア

ルゴリズムをシミュレートするプログラムを作成

して,実際に素因数分解を実行しその結果をまと

めた.

主任指導教官 矢吹治一

指導教官矢吹治一

Page 3: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

平成11年度学位論文

公開鍵暗号とShorのアルゴリズム

兵庫教育大学大学院学校教育研究科

教科・領域教育専攻 自然系コース

Page 4: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

目次第0章

第1章

1.1

1.2

1.3

1.4

1.5

1.6

1.7

第2章

2.1

2.2

第3章

3.1

3.2

3.3

序文

整数論

約数と素数 ....................

Euclidの互除法....._......。...

合同式と剰余類_.......

Fermatの定理とEulerの定理.

中国式剰余定理..........。....

繰り返し二乗法による法べき乗計算.

法ηの線形代数..........。....

暗号理論

暗号の基本概念。.................

簡単な暗号系 .....,....

2.2.1 シフト暗号 .......

2.2.2 アフィン暗号............

2.2.3 Hi11暗号...

公開鍵暗号

秘密鍵暗号と公開鍵暗号_...........

Di伍e-Hellman鍵交換システム.........

3.2.1 離散対数問題.._.....

3.2.2 一方向性関数...............

3.2.3 Dif巳e-Hellman鍵交換システムの仕組み.

RSA暗号 ..................

3.3.1 素因数分解問題..。........

3.3.2 落とし戸つき一方向性関数.......

3.3.3 素数の生成 _.............

3.3.4 RSA暗号の仕組み .........

i

1

3

3

3

4

5

6

6

7

8

8

9

9

10

11

13

13

14

14

14

15

15

15

16

17

18

Page 5: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

3.3.5 RSA暗号の安全性 19

第4章

4.1

4.2

4.3

4.4

4.5

量子コンピュータ

量子力学とコンピュータ

量子回路.........

量子並列計算.....

量子フーリエ変換..

法べき乗計算......

21

21

22

23

25

26

第5章

5.1

5.2

5.3

5.4

Shorのアルゴリズム

因数分解法

周期を見つける量子アルゴリズム

Shorの因数分解アルゴリズム

Shorのアルゴリズムの具体例.

28

28

29

32

34

付録 プログラム 39

引用文献 45

ii

Page 6: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

暗号の技術は,歴史的には軍事・外交などの世界で,当事者以外にはわからない

ように情報を変換するために使用された.つまり特定の二者の間で,悪意の第三者

に分からないように,盗聴の危険のある通信路を介し情報を交換するために暗号が

用いられてきた[6].

ところが近年インターネットを代表とするネットワーク社会の発達により,暗号が

情報を守る手段として重要視されるようになった.さらに1976年Di伍eとHellman

が,それまでの「秘密鍵暗号」とはまったく違ったタイプの暗号系である「公開鍵暗

号」を提案した.これは誰でも暗号化できるが,本人以外の第三者が復号化するの

は難しい暗号系である.鍵情報の一部を公開する公開鍵暗号は暗号史の上で画期的

な発明で,不特定多数者の間での秘密情報の交換を可能とし,電子商取引など現代

社会に必須の技術となっている.

暗号理論は,数学のなかでも特に初等整数論に基づいている.また多くの公開鍵暗

号は,大きな数に対する素因数分解または離散対数の計算の困難さを安全性の根拠

にしている.なかでも最も有名なRSA暗号は,素因数分解の困難さを利用し,1978

年Rivest, Shamir, Adlemanによって考案された最初の実用公開鍵暗号である.これ

までに多くの解読法が提案されたが,現在最も有効とされるのは素因数分解問題を

解く方法である.しかし,素因数分解問題は「大きな整数を素因数分解する」とい

う歴史的な難問の一つで,1999年現在,最も強力な因数分解アルゴリズムと高速計

算を得意とする現在のコンピュータを用いても,200桁以上の整数については特殊な

形を除いて一般には素因数分解できない.RSA暗号では,この事実を安全性の根拠

にする.

一方,量子コンピュータは次世代コンピュータの一つで,暗号理論とはまったく

関係なく別の目的で提案され研究されてきた.ところが,1994年Shorが量子コン

ピュータで素因数分解問題を高速に計算するアルゴリズムを示し[19],暗号理論との

関連で注目を集め,その物理的実現に向けての研究に拍車がかかった.しかし,量

1

Page 7: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第0章序文 2

子コンピュータの実用化には,なお多くの難題がある.

本論文の前半では,暗号理論と公開鍵暗号の概要について述べる.後半では,Shor

のアルゴリズムをとりあげる.

第1章では,暗号理論に必要な初等整数論の基本事項をまとめた.第2章では,古

典的な暗号である秘密鍵暗号をとりあげ,暗号の基本概念を説明し,シフト暗号,ア

フィン暗号,Hi11暗号を例示した.第3章では,公開鍵暗号の概念を説明し,離散対

数問題に基づくDif巨e-Hellman鍵交換システムと素因数分解問題に基づくRSA暗号

をとりあげた.第4章では,次世代コンピュータの一つである量子コンピュータの

基本概念についてまとめた.量子回路を量子コンピュータの数学的モデルとし,い

くつかの量子回路を例示した.第5章では,Shorの因数分解アルゴリズムについて

詳しく考察し,具体例として15の素因数分解を実行しその結果をまとめた.付録で

は,現在のコンピュータでは動作が遅く実用的でないが,Shorのアルゴリズムをプ

ログラミングし紹介した.第5章の15の素因数分解は,このプログラムにより計算

された.

なお,本論文はおもに,暗号理論については[8,21],量子コンピュータとShorの

アルゴリズムについては[14,17]の内容を元にしている.また,初等整数論について

は,兵庫教育大学の修士論文で過去何度もとりあげられ研究されている.ここで詳

しくとりあげなかった内容については,素数定理[11,13,15],連分数[3,10],素数

判定法または因数分解法[4,12]でそれぞれ丁寧に説明されている.

最後に,この論文の作成にあたり,最後まで懇切丁寧な指導をいただいた矢吹治一

教授および兵庫教育大学数学教室の諸先生方に心から感謝します.

Page 8: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

数学のなかでも整数論は重要な分野の一つでありながら実用的でないと考えられ

ていた.ところが,暗号理論では,この整数論が重要な役割を担い注目を集めてい

る.この章では暗号理論に必要な初等整数論について要約する.

1.1 約数と素数

二つの整数α,6に対して,6>0ならば,

α=9・b十r, 0≦γ<δ

となる整数qと7がただ一つ定まる.このとき,gを商, rを余りという.特にγ=0

のとき,δをαの因数または約数(αをわの倍数,あるいは6はαを割り切る)とい

い,記号酬αで表す.bがαを割り切らないとき酎αで表す.

素数とは,1と自分自身以外正の約数をもたない1より大きな数である.素数につ

いては,次のような定理がある.

定理1.1(初等整数論の基本定理)

2以上の自然数ηは素数の積として一意に表される.

定理1.2(素数定理)

正整数η以下の素数の個数をπ(η)と表すとき,

十分に大きなηに対して,π(η)~η/log避が成り立つ.

1.2 Euclidの互除法

二つの正整数α,う>0に対してclα,c16を満たす正整数。をαとわの公約数,公

約数の中で最大の数を最大公約数といい,記号gcd(α,う)で表す.最大公約数を求め

3

Page 9: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第1章整数論 4

る高速な方法が,Euclidの互除法である. Euclidの互除法は以下のように実行する.

α〉わ>0に対し

α = q1δ+γ1, 0<71<6,

δ = 92γ1+72, 0<r2〈γ1,

r1 = 93γ2+γ3 0<T3〈72,

Tm_2=q飢γm_1+γm,0〈㌦<Tm_1,

γm-1 = (1m+17’肌・

この手続きは余りが0となれば終了し,gcd(α,6)=γmである.さらに%α+”b=

gcd(α,のとなるような駕と”が計算できる.

また,gcd(α,6)=1のとき,すなわち1より大きい公約数がないとき,二つの整数

αとわは互いに素であるという.

1.3 合同式と剰余類

二つの整数α,わが自然数ηを法として合同とは,πがα一bを割り切ることをいい,

記号α≡わmodπで表す,αをπで割ったときの余りをαmodηと表す.ηを法と

する合同は同値関係で,各同値類は0とη一1の間の整数と1対1対応をもつ.この

同値類は剰余類ともいい,その集合を記号Z/πZまたはZηで表す.Z/πZは,加法

と乗法について閉じており,結合法則,交換法則,加法に関する逆元が存在するな

どの性質を満たすので環となる.

さらに,gcd(α,γL)=1であることと数αがηを法とする乗算についての逆元α一1

modπをもっことは同値である.

1.1例法676で159の乗算の逆元α’,すなわち159α’≡1mod 676を満たすα’を求

めるには,Euclidの互除法を用いて,

676=4・159十40,

159=3・40十39,

40==1・39十1.

よって,GCD(676,159)=1.

Page 10: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第1章整数論 5

この手続きを下から上へたどると,

1蒙40-1・39=40-1(159-3・40)

ニ4・40-159=4(676-4・159)一159

=4・676-17・159

≡≡一17・159 皿od 676.

ゆえにα’=159-1=一17≡659mod 676. □

また,πと互いに素な法πでの剰余類の集合を記号(Z/πZ)*で表す.言い換えれ

ば,(Z/πZ)*はπを法とする乗算についての逆元をもつ元全体の集合である.さら

に素数pに対して0でないすべての剰余類は逆元をもち,Z/pZは体となる.これを

p溶体といい,記号Fpで表す.

1.4 Fermatの定理とEulerの定理

定理1.3(Fermatの定理)

pを素数とする.このとき任意の整数αに対し,αρ≡αmod pが成り立つ.また, p

で割り切れない任意の整数αに対し,αρ4≡1mod pが成り立つ.

正整数πに対して,Euler関数妖π)は,自然数1,2,...,ηの中でηと互いに素な

数の個数を与える.素数pに対して,¢(p)=p-1,ψ(pα)=pα一pα一1=pα(1-1)

が成り立つ.

また,gcd(η包,γ乙)=1のとき,ψ@η)=妖m)ψ@)なので,η=p望1p穿2…pg・と素

数べきの積で表されるとき,

ψ@)一P警( 11一一 1)1)P穿(・一部)一・P艶(・一跨)一π嘉(・一1)

が成り立つ.特に二つの素数p,gに対して,ψ(pg)=(p-1)(g-1)である.

次のEulerの定理は, Fermatの定理の一般化である.

定理1.4(Eulerの定理)

gcd(αラγ乙)=1ならば,αψ@)≡1modηが成り立つ.

Page 11: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第1章整数論 6

1.5 中国式剰余定理

中国式剰余定理は,連立合同式を解く方法を与える.

定理1.5(中国式剰余定理)

α1,α2,...,α.を整数として,m1,m2,...,m.をそれぞれ互いに素であるQ≠ゴに対

してgcd(m歪,γηゴ)=1)ような正整数と仮定する.このとき連立合同式,

忽 ≡ α1 mod m1,

∬ ≡ α2 皿odm2,

灘 ≡ αT mod物.

を満足する同時解ωがM幽二mlm2...m.を法として唯一存在する.さらに,磁=

ハ4/砺と磁璃≡1mod砺を満たす鵡に対して,劣=ΣL1α2平瓦で与えられる.

1.6 繰り返し二乗法による法べき乗計算

m,ηが大きい場合に研mod mを計算する効率的な方法として,繰り返し二乗法

がある.

指数ηが二進表現n=Σ冒η溜=πo+η12+η222+…+編一12た一1で表せると

する.ここで各η¢は,0か1である.まずα=1とする.ηo=1ならばαを6に変え

る,そうでなければα=1のままにしておく.次に6を二乗してわ1=62mod mを

計算する.η1=1ならばαをα×わ1mod皿に変える,そうでなければαはそのま

まにしておく.次にわ1を二乗して62=δlmod鵬を計算する.π2=1ならばαを

α×わ2mod mに変える,そうでなければαはそのままにしておく.これを続けて,

第乞ステップでは,b琶=b2乞mod mが計算され,π2=1ならばαをα×b乞mod mに

変える,そうでなければαはそのままにしておく.最後に第鳶ステップで得られるα

がδηmod皿である.

1.2例176224177mod 20989を繰り返し二乗法により求める.

4177 ニ 1.20十〇・21十〇・22十〇・23十1・24

→一〇。25十1・26十〇・27十〇・28十〇・29十〇・210十〇・211十1・212

Page 12: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第1章整数論 7

と表され,各ステップは20989を法として次のように計算される.

0 1 17622

1 176222≡2629 0 17622

2 26292≡6260 0 17622

3 62602≡1137 0 17622

4 11372≡12440 1 17622×12440≡85645 124402…≡1703 0 8564

6 17032…≡3727 1 8564×3727≡≡14748

7 37272…16800 0 14748

8 168002≡917 0 14748

9 9172≡1329 0 14748

10 13292≡3165 0 14748

11 31652≡5472 0 14748

12 54722≡12470 1 14748×12470≡1942

よって,176224177…1942mod 20989. □

1.7 法ηの線形代数

ルら(Z/ηZ)をZ/ηZの元を要素とする2×2行列全体の集合とする.このとき,次

の定理が成り立つ.

定理1.6

遵=(αわ。4)∈鰯(Z/πZ),D=α4-bcとするとき, gcd(D,π)=1であることと,且

に逆行列が存在することは同値である.

1.3例み=(2378)∈.M2(Z/26Z)の逆行列を求める. D=2・8-3・7=一5≡21

mod 26で, gcd(21,26)=1なので,21-1≡5mod 26.よって,

パー i響の一(響)≡幅)一d2a □

Page 13: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第2章 暗号理論

2.1 暗号の基本概念

暗号は,第三者が受け取っても分からないように当事者間で情報を送受する目的

で使われる.扱う情報はテキストに限らず,音声,画像などあらゆるものが考えら

れる.暗号とは,情報を別の形に変換して送り,当事者だけが逆変換できて情報を

読めるようにする方法のことである.

送りたい情報を平文,変換した情報を暗号文といい,平文を暗号文に変換する過

程を暗号化,逆の過程を復号化,その変換手順を暗号アルゴリズムという.暗号化に

使うパラメータを暗号化鍵,復号化に使うパラメータを復号化鍵といい,暗号化鍵

と復号化鍵を総称して単に鍵という.鍵を知らされずに暗号文を復号すること,つ

まり暗号を破ることを解読という.

[亜]暗薫化[壷]復毒化「亜]

↓解読

暗号では,扱う文字や各種データに対して,数を対応させる.例えば,AからZ

までの26種類の各々の文字に0から25までの数字でラベルをつけると次のように

表される.

O 1 2 ・・ 18 … 24 25

8

Page 14: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第2章暗号理論 9

この整数を同義数という.

平文と暗号文は文書単位ごとに分割して扱われる.文書単位は1文字であったり

複数文字のブロックであったりする.例としてAからZに空白を加えた27種類の文

字の同義数を0から26(26は空白の同義数)として,文書単位を3文字ブロックと

すれば,3つの文字¢,〃,之∈{0,1,2,…,26}の3文字ブロックに,整数

謬×272+〃×27+・∈{0,1,3,…,273-1}

のラベルをつけ,各々の3文字ブロックを27進数とみなし扱う.例えば,“YES”の3

文字ブロックは整数24x272+4×27+18=17622に対応する.つまり3文字ブロッ

ク“YES”の同義数は17622である.一般に,π種類の文字で書かれた鳶文字ブロッ

クは,鳶桁のπ進数とみなすことで,0からηL1までの整数を対応させ同義数と

する.

暗号化変換∫とは,平文の文書単位全体の集合Pから暗号文の文書単位Cへの1

対1対応のことである.このとき復号化変換は関数ノー1で表される.つまり

ア4cごア

となり,このような仕組みを暗号系という.

2.2 簡単な暗号系

2.2.1 シフト暗号

2.1例26文字のアルファベットAからZまでの同義数を0から25として,文字

P∈{0,1,_,25}が平文の文書単位で,文字0∈{0,1,_,25}が暗号文の文書単位

とする.このとき暗号化変換と復号化変換をそれぞれ,

0二∫(P)≡P十3 mod 26, P=メー1(σ)…≡σ一3 mod 26

で与えると,例えば平文“help=7,4,11,15”と暗号文“KHOS=10,7,14,18”が対

応し,次のように変換される.

h,lp暗撃KHOS復単h。1P

7,4,11,15410,7,14,18な7,4,11,15

Page 15: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第2章暗号理論 10

この暗号は,シフト暗号といい,古代ローマのJulius Caes鍵が用いたことからシー

ザー暗号としても有名である. □

一般にシフト暗号は,π種類の文字の同義数を0からη一1として,暗号化鍵とな

るシフトパラメータを6とすると

0=!(P)≡P十b modη, P=!一1(0)≡0一わ modπ

で表される.その構成から分かるように,シフト暗号は鍵がη通りしかないため全

部の鍵を試す全数鍵探索などによって簡単に解読される.

2.2.2 アフィン暗号

アフィン暗号は,Z/πZでのアフィン関数!@)=α躍+わmodηを利用する.た

だし,アフィン暗号では復号化を可能にするためアフィン関数に逆関数が存在する

条件が必要である.gcd(α,γL)=1,つまりαとπが互いに素のとき,α一1 modηが

存在し,逆関数!一1(コじ)=α一1∬一α}1わmodπが存在する.

一般にπ種類の文字を使い,文書単位をん文字ブロックとし,α∈(Z加たZ)*と

わ∈(Z/η舟Z)の2つの数で構成される暗号化鍵K=(α,b)をもつアフィン暗号系は,

0=!(P)≡αP十わ mod諮, P=!一1(0)…α’0了う’modπた

ただし,α’=(α一1modη勺,δL(一α一1わmodηり

で表される.

2.2例26文字のアルファベットAからZまでの同義数を0から25として,文書単

位を2文字ブロックとすれば,2文字組AA,AB,…,ZZまでの同義数は0,1,…,675

で与えられる.暗号化鍵をα=159,わ=580とすると,このアフィン暗号の暗号化

変換は,

0…159P十580 mod 676

で表される.例えば平文“book”を暗号化する.最初の2文字ブロック“bo”は,同

義数1×26+14=40で,0ニ159×40+580=6940≡180mod 676と計算され,

180=6x26+24なので“GY”と暗号化される.後ろの2文字ブロック“ok”は,同

Page 16: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第2章暗号理論 11

義数14×26+10=374で,0=159×374+580=60046≡558mod 676と計算

され,558=21×26+12なので“VM”と暗号化される.つまり,

・b。,,,触・暗郵・GY∵・VM・

40,374ム180,558

となり,平文“book”は,暗号文“GYVM”へ変換される.

復号化鍵は,α一1=159-1≡659mod 676,わノ=一159-1・580…≡396 mod 676

と計算できるので,復号化変換は,

P≡6590→一396 mod 676

と表され,暗号化と同様にして,

・GΨ,・v醗復婁㌔♂,聴・

180,558な40,374

となり,暗号文“GWM”は,平文“book”へ変換される. □

アフィン暗号のとりうる鍵の個数は,αの選び方が¢(7詐)通り,わの選び方がη鳶通

りあるので,全部でψ(ηり×η髭個ある[8].上の例では,ψ(676)×676=312×676=

210912個の鍵がある.

アフィン暗号の解読には,暗号文に出現する文字の頻度と統計から得られる新聞

や雑誌などで扱われる文字の頻度を比較する頻度解析などの手法が用いられる.

2.2.3 Hill暗号

η種類の文字を使い,文書単位をκ文字ブロックとするHi11暗号は,ん×ん行列

.4∈.砥(Z/ηZ)を暗号化行列として利用する.ただし,復号化を可能にするため,A

がηを法として逆行列をもつこと,つまり五の行列式をDとするときgcd(D,η)=1

の条件が必要である.平文Pはた次元ベクトル,つまりた個の整数の組(p1,p2,。..,pの,

暗号文0も同様に(c1,c2,...,cのと表される.このとき暗号化変換は,0=AP,復

号化変換は,P=.4-10で与えられる.ここで,すべての演算はηを法として行わ

れる.

Page 17: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第2章暗号理論 12

2.3例26種類の文字を使い,文書単位を2文字ブロックとし,行列孟=(2378)∈

鰯(Z/26Z)とする.このとき,平文“no”=(1珪)は,

儒)(11)一(鋤≡cl)

より,暗号文(1621)=“QV”と変換される.

復号化は孟の逆行列(14111710)を用いて,

mod 26

幅)(ll)一倒≡Gl)一d26

より,平文G葦)=“no”が得られる. □

Hi11暗号のとりうる鍵の騰は♂n。1。(・一岩(・一歩)・(・一歩)である[8]・

上の例では,264(1一圭)(1一壷)(1「≒)(1「塵)=157248個の鍵がある.

Hill暗号の解読は,暗号文だけからでは難しいが,平文と対応する暗号文が一組で

も得られれば容易である.

Page 18: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

1976年,Di伍eとHellmanは,それまでの「秘密鍵暗号」とはまったく違ったタイ

プの暗号系である「公開鍵暗号」を提案した.これは暗号化する方法を知っていて

も,その暗号化鍵から復号化鍵を求めることはできない暗号系である.そのなかで

も有名なものが,1978年Rivest, Shamir, Adlemanによって考案された暗号で,3人

の名前をとってRSA暗号と呼ばれている.

その後,公開鍵暗号として,かなりの数:の方式が提案されたが,解読されていな

い公開鍵暗号の多くは大きな数に対する素因数分解または離散対数の計算が困難で

あるという事実を利用している.

3.1 秘密鍵暗号と公開鍵暗号

第2章で述べた暗号系では,暗号化鍵と復号化鍵のどちらか一方から他方が容易

に導き出せた.つまり暗号化鍵または復号化鍵の一方が知られれば暗号文は容易に

解読されるため暗号化鍵と復号化鍵はともに秘密とされる秘密鍵暗号である.この

ような暗号系は鍵情報を共有する特定少数者の間でしか利用できない欠点を持って

いる.

これに対して公開鍵暗号とは,暗号化鍵が与えられても膨大な計算量をこなさい

と復号化鍵が求められないという性質を持つ.つまり暗号化鍵を公開しても暗号系

の安全性は(計算量の意味で)確保できることから公開鍵暗号と名付けられた.こ

のような暗号系は不特定多数者の間で暗号が利用できる利点があり,ネットワーク

社会における秘密保持のための重要な技術となっている.

13

Page 19: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 14

3.2 Di伍e-Hellman鍵交換システム

1976年,Di缶eとHellmanは,はじめて公開鍵暗号の概念を示し,離散対数問題

の困難さにもとつく単純な鍵交換システムを提案した.秘密鍵暗号では,送信者と

受信者の間で事前に秘密の通信路を確保し鍵の交換をしなければならず,安全性を

確保するのに相当の注意を必要とする.このときDi缶e-Hellman鍵交換システムを利

用すれば,安全でない通信路を介しても鍵の生成が可能である.

Dif駐e-Hellman鍵交換システムは公開鍵暗号を鍵交換の目的に利用している.公開

鍵暗号系の処理は秘密鍵暗号系に比べて時間がかかるため,鍵交換に公開鍵暗号を使

い,実際のメッセージは交換された鍵を用いた秘密鍵暗号で行うのが実用的である.

3.2.1 離散対数問題

問題3.1(離散対数問題)

pを大きな素数,gを乗法群F養の生成元とする.〃∈Fφに対して,〃≡プmod pを

満たす∬を求める.

この問題の解法には,Silver-Pohlig-Hellman法や指数計算法などがある[8].しか

しpが大きければ,現在の最も効率的なアルゴリズムを用いても実際上は計算困難

である.

問題3.2(Di伍e-Hellman問題)

乗法群F声において,gαとg6からgαbを求める.

この問題も,その群において離散対数問題が計算困難であるのと同様に計算困難

であると経験上予想されていて,この予想をDi伍e』ellman予想という.

3.2.2 一方向性関数

順方向の計算は簡単であるが,逆方向の計算は困難である性質をもつ関数を一方

向性関数という.つまり,関数〃=!(④において,ωから彩を求めるのは簡単であ

るが,逆に〃からエを求めるのは困難であるような関数をいう.

DifEe-Hellman鍵交換システムでは,離散対数問題から構成された一方向性関数を

Page 20: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 15

用いる.

3.1例pを大きな素数,gを生成元とする乗法群稀において,!(④=グmod pと

定義すると,!は一方向性関数である. □

3.2.3 Di伍e一且ellman鍵交換システムの仕組み

pを素数,gを乗法群F声における生成元とし, pとgを公開する.ユーザーAは

α∈Z/(p-1)Zを選び,〃、=gαmod pを計算して,αを秘密とし彩、を公開す

る.ユーザーBも同様にしてbを秘密としッbを公開する.このときユーザーAは

躍=(gりα=gbαが計算でき,ユーザーBも銘=(gα)b=gαbが計算できる.ここで

gわα=gαbなので,どちらもgαゐを計算できる.ところが第三者は,〃、と〃6つまりgα

とg6の値しか分からないので, Di伍e-Hellman予想より, gαbを計算できない.つま

りgα6は,ユーザーAとユーザーBの共通の鍵情報として秘密鍵暗号に利用される.

3.2例F奪3で2は生成元である.ユーザーAは,α=29を選び,229≡45mod 53

を公開する.ユーザーBは,6=19を選び,219≡12mod 53を公開する.このと

き共通秘密鍵は,1229=4519≡21mod 53である.

もちろん,このように小さな素数53に対しては,安全性は保証されないことは明

らかである. □

3.3 RSA暗号

素因数分解問題の難しさにもとつくRSA暗号は,1978年Rivest, Shamir, Adleman

によって考案された最初の実用公開鍵暗号である.

3.3.1 素因数分解問題

問題3.3(素因数分解問題)

未知の素因数をもつ大きな整数を完全に素因数分解する.

この問題も,歴史的な問題で,現在最も強力な素因数分解アルゴリズムは,数体ふ

るい法である[9].また有力な素因数分解アルゴリズムとしては,二次ふるい法,楕

Page 21: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 16

円曲線法があり,その他有名なものとして,試行割算法,ρ法,連分数法などがある

[8,23,7].しかしηが200桁以上の場合,どのアルゴリズムを用いても素因数分解は

現時点では不可能である.

素因数分解の現状

大きな正整数を素因数分解する問題は,公開鍵暗号との関連で近年重要視され,

コンピュータを用いた数値解析が盛んに行われるようになった[23,7].特にRSA

Laboratoriesから出題されているほぼ同じ桁数の二つの大きな素数の積を素因数分解

する問題は,RSA-dとして知られている.ここでdは素数の積の桁数でチャレンジ

ナンバーと呼ばれる.

現時点での最新結果は,1999年8月,RSA-155が数体ふるい法を用いて解かれ

た.この際160台のSGIとSunのworkstation(175-400 MHz),8台のSGI Origin

2000processor(250 MHz),120台のPentium II PC(300-450 MHz),4台のDig-

ital/Compaq box(500 MHz)の合計292台のコンピュータが使用され,7ヵ月半を

要した.

これまでの実績とコンピュータの性能向上や新しい解読法の登場を考慮したRSA

Laboratoriesによる予想は,以下の表のようになる(日本経済新聞1999年9月27日

付記事から引用).計算量の単位はMIPS・Ybar,ここで1MIPS・Yearは1秒間に100

万回の基本演算を実行する計算機が1年間でこなす計算量である.

暗号鍵長 計算量 実績・予想

429bit(129桁) 5×103 94年,二次ふるい法,コンピュータ600台,8ヶ月

512bit(155桁) 3×104 99年,数体ふるい法,コンピュータ292台,7ヶ月半

1024bit(309桁) 3×1010 2004年以降

1536bit(463桁) 5×1016 2014年以降

3.3.2 落とし戸つき一方向性関数

一方向性関数をそのまま暗号化関数:としても,その逆関数である復号化関数を求

めることは不可能で,暗号文は正規の受け手も含めて誰も復号化できないことにな

り,暗号系に利用できない.

そこで,暗号文の正規の受け手だけは秘密の情報を知っており,それを用いれば

Page 22: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 17

逆関数が容易に計算できるようにする.この秘密情報を落とし戸といい,そのよう

な落とし戸をもつ一方向性関数を落とし戸つき一方向性関数という.落とし戸には

長い研究に基づく信頼性のあるものが利用される.

RSA暗号ではこの落とし戸に素因数分解問題を利用する.

3.3例πを二つの大きな素数p,qの積,わを正整数とする.このとき,!:Z/πZ→

Z/πZを∫(∬)=♂modπと定義すると, RSA暗号で利用されるp, gを落とし戸と

する一方向性関数である. □

3.3.3 素数の生成

RSA暗号では,非常に大きな素数を必要とする.そのような素数を生成するには,

まず非常に大きな乱数mを生成する.もしmが偶数ならばmを奇数m+1で置き

換える.そこでその奇数が素数であるか判定し,素数でなければm+2,m+4と試

して,素数が見つかるまで繰り返す.素数定理によれば,m以下の数が素数である

確率は1古なので,奇数に制限すればおよそ学個のうちひとつは素数である.つ

まり,学回程度の試行で素数を発見できる.

与えられた数が素数であるか判定する方法は,確率的な判定法としてSolovay-

Strassen法やMiller-Ravin法などがあり[8],確定的な判定法として1980年に

Adleman-Rumely法が開発され,100桁の整数も1分以内に素数か否か判定されるよ

うになった[23].

Page 23: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 18

3.3.4 RSA暗号の仕組み

RSA暗号の仕組みは,次のようなアルゴリズムで表される.

1. 暗号の受け手が準備し暗号化鍵を公開する.

(1) 10進数で100桁程度の大きな素数p,gを生成する.

η=pgとψ@)=(p-1)(g-1)を計算する.(ψ@)はEulerの関数)

(2) ψ@)と互いに素で恢π)より小さい整数eをランダムに選ぶ.

(3) 法ψ@)でeの乗法逆元dを計算する.つまりe4=1mod妖η)である.

(4) 暗号化鍵@,e)を公開する. p,g,g@),dは秘密とする.

2.暗号の送り手は,暗号化鍵(η,e)を用いて,0=pe modηで暗号化して

送る.

3. 暗号の受け手は,復号化鍵@,のを用いて,P=Od modπで復号化で

きる.

このとき,暗号文から平文が得られるのは,次の定理による.

定理3.4

任意の3じ∈Z/ηZに対して,@e)d=ωmodηが成り立つ.

証明pを素数とするとき,任意のω∈Z/πZに対して,のed≡竃mod pを示す.

pl¢ならば,両辺が≡Omodpなので成り立つ.

p俘ならば,pと∬は互いに素なのでフェルマーの定理より,

¢P-1≡1 mod p.

またed≡…1mod(P-1)(9-1)より, e4≡1mod(P-1)なので

ed=オ(P-1)十1.

よって,

飢ed = のt(P-1)+1

=(∬P-1)%

…≡ 1% mod p

… ∬ mod p.

Page 24: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 19

ゆえに,¢ed≡コじmod pが成り立つことが示された.

さらに,p,gを素数とするとき,任意のω∈Z/ηZに対して

げd≡コじ mod p, ∬ed≡∬ mod q

で,pとgは互いに素なので,中国式剰余定理より(∬e)d=餌ed≡ωmod pgが成り

立つ. ■

3.4例アリスからボブへ平文の同義数17622を暗号化して送る状況を考える.ま

ず暗号の受け手であるボブは,二つの素数p=139,g=151を選ぶ.このとき

%=139×151=20989で,Euler関数の性質よりψ@)=138×150=20700と計算

される.さらにこの20700と互いに素な整数e=4177を選ぶとEuclidの互除法より

4=e-1≡11413mod 20700となる.ボブは,暗号化鍵(20989,4177)を公開し,復

号化鍵11413を秘密にする.暗号の送り手であるアリスは,公開された暗号化鍵を

用いて平文17622を繰り返し二乗法による法べき乗計算を用いて176224177≡1942

mod 20989へ変換し,暗号文としてボブに送る.ボブは,復号化鍵11413を用いて

暗号文1942を194211413…≡17622mod 20989と変換し,平文を得る. □

この例では,二つの素数p,qが小さくπが容易に因数分解されψ@)が計算でき,

暗号化鍵から復号化鍵が求められるので簡単に解読される.そのため二つの素数p,g

は100桁程度の非常に大きな素数を選ぶ必要がある.

3.3.5 RSA暗号の安全性

RSA暗号の安全性は完全ではない.つまり知られていない何らかの方法で今後解

読される可能性があるが,ここでは,知られている有名な解読法をいくつか紹介し

RSA暗号の解読の困難性について述べる[16】.

1. 素因数分解問題

ηが二つの素数p,gの積に素因数分解できれば,ψ(η)=(p-1)(g-1)が求まる

ことから,ψ(η)を法とするeの逆元4が計算でき,暗号文を解読できる.この

問題は素因数分解問題であり,ηが大きいならば実際には計算困難である.

2. ψ(η)を求める

藪η)を直接計算できれば,ψ(η)を法とするeの逆元4が計算でき,暗号文を解

Page 25: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第3章公開鍵暗号 20

読できるが,ψ(π)を得ることは,ηの素因数分解と同様に困難である.なぜな

ら,もし妖π)が計算できれば,pg=η, p+α=η一妖η)+1なので,二次方程

式認2一@一ψ(η)+1)+η=0を解の公式で解いたときの二つの解がηの素因数

p,gになる.つまり,ηの素因数分解が困難ならば,ψ(η)を直接計算することも

困難である.

3. 離散対数問題

公開されている暗号化鍵を利用して適当な平文Pとそれに対応する暗号文0を

生成することで,PニOd modηからdを求めれば,暗号文は解読できるが,こ

の問題は離散対数問題であり,ηが大きいならば実際には計算困難である.

RSA暗号の安全性が素因数分解の困難さと等価であるかどうかは証明されておら

ず,素因数分解以外の方法で解読される可能性もあるが,これまでの解読法は,い

ずれも素因数分解と同等以上の困難さであることが分かっている.

Page 26: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ

1980年代のはじめFeynmanは,量子系のシュミレーションでは量子力学的な計算

機が古典力学的な計算機に比べて速くなる可能性を示唆した.さらに1985年Deutsch

は,量子並列計算によって高速計算が可能になることを示した[1].

4.1 量子力学とコンピュータ

現在のコンピュータ(本章以降ではこれを古典コンピュータと称する)は,古典

力学の原理に基づいて動作する.コンピュータが登場して50年,その集積技術は著

しく進歩した.いずれ集積度は原子のレベルに達し,その尺度では古典力学は適用

できなくなる.さらなる集積化を望めば,全く新しい理論と新技術が必要とされる.

そこで量子力学の原理に基づいて動作する量子コンピュータが提案された.さらに

量子コンピュータは古典コンピュータに比べて,ある種の計算を劇的に高速化でき

ることが示され注目されている[19].それ以外にも量子系の効率的なシュミレーショ

ンが可能で,また少ないエネルギーで動作する発熱量の小さいコンピュータが実現

できると期待されている.しかし,量子コンピュータの物理的実現には,なお多く

の難題があり,実用化される見込みは立っていない.

量子力学では,系の状態はHilbert空間の単位ベクトルで表され,状態変化はユニ

タリ変換で与えられる.そこで,正規直交基底10>,11>,12>,…,Ig-1>で張られるg

次元空間を考える.ここで1>は,ベクトルをDiracの記号で表すもので,計算基底

と呼ぶ.lb>にユニタリ変換σを適用すると

9-1 σ16>一Σ・・1κ〉

た=0

と計算基底の状態の重ね合わせになる.このとき,Ckを陶の振幅といい,計算基底

を観測すれば量子力学の原理から観測値んが確率1副2で得られる.量子アルゴリズ

21

Page 27: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ 22

ムとは,初期状態にユニタリ変換を作用させ終了状態に至る一連の手順のことであ

る.以下で3つの具体例を示す.

なお,量子コンピュータに関する日本語の総合報告としては團がある.

4.2 量子回路

量子コンピュータの数学的モデルとして量子回路があげられる.つまり量子コン

ピュータは,量子回路を用いて説明できる.量子回路は,量子ゲートとそれを結ぶ

量子ワイヤで構成される.

古典コンピュータでは,情報量の単位はbitで与えられ,0あるいは1の状態だけ

を保持できる.一方,量子コンピュータでは,情報量の単位は古典的な状態0と1を

表す10>と11>だけでなく10>と11>の任意の重ね合わせ状態α「0>+β11>(α,β∈C)

を保持できqubit(quantum bit)といわれる.ここで,10>=(る)で11>=(♀)を表し,

1α12は10>が観測される確率,1β12は11>が観測される確率で1α12+iβ12=1である.

このqubitの列をN個並べた

{1わN一、>16N-2>_iわ。>[b¢∈{0,1},乞=0,1,…,!V-1}

で表される集合全体は,複素数滝上の2N次元線形空間の10>から12N-1>までの2N

個の計算基底をN個の2状態系によって表したもので,古典的な状態0から2N-1

の数6が対応している.つまり,わ=伽一1・2N-1+わN-2・2N-2+…+わ1・2+boと2

進法で表されるとき,lb>=i純一1>lbN-2>...1わ0>が対応する.このようにいくつかの

qubitによって構成された状態lb>をレジスターという.また, i 6N_1>1わN_2>_1わ。>は

1伽_16N_2_わG>とも表される.

N個のqubitそれぞれが量子ワイヤで,0から2N-1の数を入出力する.例えば,

3-qubitの場合では,6ニ110(2)なので16>ニ11>11>iO>としてそれぞれ3本の量子ワイ

アを通して入出力される.

量子ゲートは,何本かのワイア上に配置され,そこにかかわるワイヤの問で絡み合

いを起こしその状態を変化させる働きをし,数学的にはユニタリ変換で与えられる.

4.1例(Hadamard変換)∬∈{0,1}とするとき,1qubitに作用するユニタリ変換

丑・レ〉一お訟一1陶

Page 28: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ 23

は,Hadamard変換といわれ,量子回路では,

【の一一回一一おΣ“∈{。・}(一・)偲制

と表される.具体的には,

1 1 10>→弱(10>+11>),11>→弱(10>一11>)

と変換されるので,状態10>とi1>を絶対値が等しい振幅で重ね合わせた状態になる.

いずれも右辺の状態を観測すると,10>または11>であることが確率1/2で観測され

る.また,この変換は,2×2ユニタリ行列

でも表される. □

4.3 量子並列計算

重ね合わせ状態の入力に対して行われる計算を量子並列計算という.ある関数!の

値を計算する問題が与えられたとき,古典的な計算では!の計算プログラムを1回

実行すれば一つの入力に対する!の値しか求められないが,量子並列計算では1回

実行するだけですべての入力に対するノの値の重ね合わせを得られる.ただし観測

を行えば,量子力学の法則により,これらの数値のただ一つだけしか明らかにでき

ず他の数値は消えてしまうため古典的な計算より優れているとは言えない.

ところが,次の例のように,量子並列計算を用いればどの数値も明らかにするこ

となく,これらの数値のある結合性質を計算できる.

4.2例(Deutchのアルゴリズム)関数ノ:{0,1}→{0,1}が定数関数(!(0)=!(1))

か平衡関数(ア(0)≠!(1))か区別する問題(Deutschの問題)を考える.!(勾を計算

する量子ブラックボックス(量子オラクル)が与えられれば,2-qubitのユニタリ変換

σ∫:i∬>1〃〉→1:む〉紗eノ(ω)〉

Page 29: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ 24

が定まる.この変換は!(第1のqubit)=1のときかつそのときに限り第2のqubit

を反転させている.

もし“古典的な”入力p>と11>に制限された場合は,答を得るのにボックスに2回

アクセスする吻を0に固定して認=0との=1をそれぞれ入力する)必要がある.

それに対して,量子並列計算の場合は,次のようにだた1回の計算で答を得る.

量子オラクルには,10>とμ〉の重ね合わせの状態を入力できるので,第2のqubit

にお(10>一μ〉)を入力すれば・

1 1ひ∫:1の万(10>■1>)→i∬〉弱(1ノ(∫)〉一11e∫@)〉)

一1・〉(一・)綱お(1・〉一1・〉)

へ変換される.そこで,量子回路として,

lo> H 観測

11> H σ∫

を用意して(ただしEはHa曲mard変換),10>11>を入力すると,

1 111>11>→泥(10>+11>)万(10>一11>)

一お((一・)∫(o)1・〉+(一・)∫(1)1・〉)お(1・〉一1・〉)

一1[((一1)ノ(o)+(一1)∫(1))1・〉+((一・)∫(o)一(一・)’(1))1・〉]毒(1・〉一1・〉)

へ変換される.ここで,第1のqubitを観測すると,!(0)=!(1)ならば確率1で出

力10>(定数関数)すなわちノ(0)①ノ(1)=0が得られ,!(0)≠ア(1)ならば確率1で

出力11>(平衡関数)すなわち!(0)(D!(1)=1が得られる. □

これが量子並列計算と呼ばれるものの一例で10>と11>の重ね合わせをつくり,たっ

た1回実行するにもかかわらず出力は!(0)と!(1)の両方の値に反応する.

まとめると,古典的な計算では!(0)と!(1)をそれぞれ計算して!(0)e!(1)を求

めるが,量子並列計算では直接!(0)e!(1)すなわちXORを求められる.この意味

で,量子並列計算は古典的な計算より優れていると言える.

Page 30: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ 25

4.4 量子フーリエ変換

Shorのアルゴリズムで中心的な役割を果たす離散フーリエ変換も量子回路によっ

て以下のように記述できる.特に,この量子回路によって実行される離散フーリエ

変換(DFT)を量子フーリエ変換(QFT)という.

q=2Nに対して,

飢 = ωN_1・2N-1十∬1v_2・21v-2十一・十一1・2十餌0

9ノ = 〃N_1・2N『1十2/N_2・2N-2十… 十91・2十2/o

と2進表現すると,

鍔一轍+〃N一・C・・)+〃N一・(・・…)+翫一・(鋤・・)+

…+雪、(・コじN-2コじN-3。。。コじ0)+雪。(.¢N一、ωN-2_コじ。)

(ただし・・∬畝一・…・・一誓+諮1琴2+…+舞)

と表される.このとき,量子フーリエ変換は,

Q叫〉一「~勲1ツ〉

毒(P>+e2撫・)11>)お(1・〉+~鷹圃1・〉)

・お(1・〉+~撫・一圃1・〉)

によって計算基底に作用するユニタリ変換である.

4.3例(QFTを実行する量子回路)ノ〉;3の場合,

1¢〉=i¢2>1ω1>i¢o>,[〃〉=1ツ2>1〃1>1〃。>とすると,QFTを実行する量子回路は,

iの2> 1〃2>

[灘、〉

1τo>

11 RI R2

∬ 丑1

1㌢、〉

1〃。>

Page 31: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ 26

で与えられる.ここで∬はHadamard変換

H一一お(1・〉+~咽11>)・

Rdは, qubitの回転

埼一

のことで,dは関係するん番目とブ番目の2本のqubit間の“距離”すなわち差1ん一ゴ1

である.この回路が量子フーリエ変換を実現することは,実際に計算して確かめら

れる. □

この量子回路は,3本の量子ワイヤに対して1+2+3=6個の量子ゲートによっ

て構成される.一般に量子フーリエ変換を実行する量子回路は,N本の量子ワイヤ

に対して1+2+…+NニN(1V+1)/2個の量子ゲートが必要になる.

4.5 法べき乗計算

量子コンピュータで♂modπを計算する方法は,古典的な繰り返し二乗法を利

用して事前に計算(1.6参照)し,量子回路に組み込むことで実現できる.

4.4例(法べき乗計算を実行する量子回路)α〈2Nとして,

αニαN_12N-1十α1v_22N-2十・。・十αo

とαを二進表現できたと仮定すると,法べき乗計算を実行する量子回路は,

1αN一、〉 …

1αN-2>

1α。〉

lc> 2N-2Q :●

2N-1フ :●

}1・9・藤

Page 32: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第4章量子コンピュータ 27

で与えられる.この図で,まず。=1とする.αo=1のとき。を。×∬modηに変

え,αo=0のとき何もしない.次にα1=1のとき。を。×♂modηに変え,α1=0

のとき何もしない.これを続けて,αゴ=1のとき。を。×∬2ゴmodηに変え,αゴ=0

のとき何もしない.最後にαN-1=1のとき。を。×¢2N-1 modηに変え,αN-1=0

のとき何もしない.こうして得られる。ががmodηである. □

この量子回路は,N個の量子ゲートで構成され, g=2Nに対して量子並列計算を

用いて0からq-1(ニ2N-1)までの∬のべき乗の重ね合わせを得られる.

Page 33: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム

現在のコンピュータでは素因数分解問題や離散対数問題を効率的に解くことはで

きず,それが公開鍵暗号の安全性の重要な前提条件となっている.ところが,1994

年Shorが「量子コンピュータで素因数分解問題(と離散対数問題)が高速に解ける」

ことを示した[19].

5.1 因数分解法

正整数ηの因数を見つける問題を考える.2以上の任意の整数∬〈ηに対しても,

ユークリッドの互除法を用いて最大公約数gcd@,η)を効率的に計算することができ

る.もしgcd@,η)≠1ならば, gcd@,η)は非自明な因数となる.

そこでgcd侮,η)=1と仮定すれば,πと互いに素な数諾くπはnを法とする乗法

について有限群を生成する.このようなωは有限な位数γをもつ.つまりγはか≡1

modηを満たす最小の正整数である.さらにπを法とする∬の位数は関数ムμ(α)=♂

modπの周期である.んμは繰り返し二乗法を用いて効率的に計算でき,もし関数の

周期を発見する効率的なアルゴリズムがあれば,コじの位数7を見つけることができる.

そのようなアルゴリズムがありコじの位数γが見つかったと仮定する.γが偶数なら

ば,げ≡1modπより.(コじ忌引1)(が一1)≡Omodηで,もしη1が一1とする

と∬の位数は≦参となり仮定に反するので,η†コじ舞一1である.さらにη十が+1

つまり,誘≠一1modπならば,ηは頚±1と非自明な共通因数をもつ.つまり

gcd@,頚±1)はπの因数である.

まとめると,もしπが異なる二つの素数p,gの積で与えられ,πと互いに素な数

のくηについての周期rが見つかっているときは,「Tが奇数」または「7が偶数で

が≡一1modη」の場合を除いて,ηの素因数分解に成功する.この成功確率は少

なくとも1/2であることが知られている[19,2].

28

Page 34: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 29

5.2 周期を見つける量子アルゴリズム

g=2Nとおく.このときγを1《r《qを満たす正整数とする.周期rを

もつ関数!を計算する量子オラクルが与えられているとする.鵬をαとα+mγが

{0,1,2,_,2N-1}にあるような任意の整数とすると,

ノ(α)一!(α+mり

である.ここで,周期γを求める問題を考える.古典的にはこの問題は難しい.しか

し,Shorは量子フーリエ変換(QFT)による量子並列計算を利用して効率的に周期

を見つけることができることを示した.

最初に10>にE(N)を作用させて用意された士Σ。1α〉をオラクルに入力して状態

礁脚〉

を作成する.ここでもし第2のレジスターを観測して観測値んが得られたとすると,

第1のレジスターには,んに写されるαの値全体の干渉された重ね合わせが作成され

る.つまり,五をんに写されるαの個数,αoを0≦αo<γかつん=!(αo)を満たす

値とすると,第1のレジスターは,

となっている.ここで,q-T≦αo+(.4-1)r<gなので,

盛_1<旦く孟+1

である。この状態式にQFTを作用させると

を得る.ここで,計算基底で観測すれば,出力。を得る確率は,

2 Prob(c)一左』[緯e2一励

である.

Page 35: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 30

特に,この分布はq/γが整数(したがって孟と等しい)ならば,

叫)尠ヲ2一{差・=み.(整数) (5.、0その他の場合)

を得る.

一般的には,この分布は,以下の理由でrc/gが整数に近いような(γcmodgが十

分小さいような)cの値に対して大きくなる.

もしγcmodgが

一菱≦{・c}繭≦量

を満たす程度に小さいならば,そのような。の値は{0,1,...,q-1}にちようどγ個

ある(数直線上の0からγq-1の範囲にrとgの倍数の点を考えると,γ個あるgの

各倍数の点に対して,r/2よりも離れない位置にγの倍数が1個ずつ存在する).こ

れらの各。の値に対して,

2π(Tc modα) θc= 9

とすると,

ヅ ゾ 一π一≦θc≦π一 9 9

が成り立つ.このとき,Prob(c)の式における等比級数Σ街1 e吻のすべての項は

A-1〈宴なので,複素平面の単位円1之1=1のある半円弧の上に分布する.これら

の項を複素平面上のベクトルとみなすと方向にばらつきが小さくなり,その和は正

の干渉を引き起こす,ここでθ=±貯/qのとき,総和のベクトルの大きさが最小と

なるので,小さな誤差を無視して,蓋駕g/T,sin解/2g駕πT/2gとすれば,

2

一¢)≧

⊥e¢θA-12

9ノ生 e2θ一1

2 .と・蓋θA(e差θ4_e一蓋θA)

9・4 e多θ(e巷θ一e一多θ)

1・in2書θ

9オ・in2圭θ

Page 36: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 31

1・in2努

9且・in2髪

弼(47r2)1

つまりrc mod gが十分小さいような。の値に対して確率Prob(c)が高くなる.

γ個それぞれの。の値に対して,

㎞b¢)≧(4π2)1

なので,

一二≦{・c}一・・≦量

を満たすようないずれかの。の値を観測する確率は最低4/π2で,このとき,

c λ 1 一__ <一 9 7 -29

を満たすλ∈{0,1,_,7-1}が存在する.

二つの異なる有理数がπより小さい分母をもてば,暑一妾=撃なので,ともに

1/η2以下に近づくことはできない.そこでg≧η2と仮定すれば,γ<ηに対して,

c λ 1 1 一一一 く一<_ 9 γ・ 一 2(1一 2η,2

を満たす唯一の値λ/γが存在する.

最後に,λ/γは。/gを連分数展開して,ηより小さい最大の分母まで近似すること

で効率よく計算できる.こうして求められる分数は,連分数の性質よりηより小さ

い最大の分母をもつ。/gの最良近似分数である[22].

さらに,λがγと互いに素であればγを見つけるのに成功する.λがγと互いに素

である確率ψ(γ)/7は,素数定理より妖γ)/r≧π(γ)/r~1/logγ>1/10g gなので,

このアルゴリズムを最初からlog g回程度繰り返せば,高い確率でγを見つけるのに

成功する.

Page 37: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 32

5.3 Shorの因数分解アルゴリズム

これまでのことから,大きな数ηの因数を見つけるShorのアルゴリズムは以下の

ようにまとめられる[24].

1. π2≦g≦2η2を満たす2のべき乗で与えられる自然数gを選ぶ.

2. 自然数ω〈ηを選ぶ.もしgcd(ω,η)≠1ならば, gcd@,π)は非自明な因数と

なり作業は終了する.ηと互いに素ならば,以下を継続する

3. 各回ごとに同じ数コじを使って,次の(1)から(7)までのステップをlog g回繰り

返す.

(1) 量子メモリーのレジスターをつくりqibitを2つの集合に分け,レジスター1

とレジスター2とする.レジスター1のqubitがreg1の状態にありレジスター2

のqubitがreg2の状態のあるとき,両方のレジスターの結合状態をlTeg 1>1γeg2>

として表す.

(2) レジスター1に0からg-1までの整数,レジスター2にすべて0を用意す

る.完成したレジスターの状態は

1ψ〉一翼>1・〉

によって与えられる.

(3) ここで(量子並列計算を用いて)変換∬αmodηをレジスター1にある各数

に適用し,結果をレジスター2におく.作られた全レジスターの状態は

1ψ〉一嵩脚dゆ

となる.

(4) レジスター2の状態を観測し,何らかの結果んが得られる.このときレジ

スター1の状態は♂modπ=んを満たすようなαの値の重なり合わせになつ

ている.このようにして作られた全レジスターは

1ψ〉一滴裁剛た〉

となり,ここで孟={α’:〆modη=緋でll孟llはこの集合の要素の個数で

ある.

Page 38: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 33

(5) レジスター1の投影された状態の量子フーリエ変換を計算する.量子フー

リエ変換は各状態1α’〉を

圃〉一

によって与えられる重ねあわせに写像する.このように量子フーリエ変換の

あらゆることを考慮した最終の結果はレジスター1に投影された状態を

1ψ〉一

によって与えられる重ね合わせに写像することになる.

(6) レジスター1の状態を観測するとg/γのλ倍であるような数。’を返し,ここ

でγは目標の周期である.つまりある正の整数λに対して。’/q魁λ/γである.

(7) 周期γは,c’/qの連分数展開して,πより小さい最大の分母まで近似するこ

とで得られる.

4 いったんγがわかれば,ηの因数は,gcd@/2-1,π)とgcd@/2+1,π)から

得られる可能性が高い.うまくいかなければ,再びωを選ぶ所から繰り返す.

さらに,見つかったηの因数が素数でない場合は,その因数に対してこのアルゴ

リズムの適用を繰り返し,最終的にηの素因数分解が可能である.

ステップ数

量子コンピュータのアルゴリズムのステップ数は,おおまかには量子回路のゲー

トの個数によって計られるとすると,このアルゴリズムで時間がかかる箇所は,3(3)

の法べき乗計算と3(5)の量子フーリエ変換の部分である.そのゲートの個数は,法

べき乗計算では0(10gg)で,量子フーリエ変換では0((logg)2)である(4.4,4.5参

照).log g回の繰り返しを考えると, g≦2η2なので,このアルゴリズムのおおま

かなステップ数は0((10gπ)3)である.なお, Shor[20]のより正確な分析によれば,

0((logπ)2(log logπ)(log log logη))である.つまり,このアルゴリズムは多項式時間

で終了し効率的に実行できる.

Page 39: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 34

5.4 Shorのアルゴリズムの具体例

Shorの因数分解アルゴリズムを用いて15を素因数分解する.

● 7(〈15)を選ぶ.(15と互いに素)

● 目標は,15を法とする7の位数を求めることである。位数が4であることが

求まれば,74≡1、(mod 15)タり, gcd(72-1,15)ニ3, gcd(72+1,15)=5

として15の素因数分解に成功する.

・ 小さな因数をもち152≦q≦2・152を満たす自然数として9=243を選び,

log 243傷5.5なので以下の位数を求める操作を5回繰り返す.うまくいけば,

ある回で7の位数4が分かる.

補足gとして2のべき乗,つまりq=28=256とすれば,256は位数4で割

り切れるための特別な結果(p30の式5.1)を導く.このためこの具体例ではg

は小さな因数をもつ自然数としてg=35=243とした.もともとShorの1994

年の論文[19]ではgは小さな因数をもつ自然数としていたが,その後qubitの

考えを取り入れ,改訂版[20]でgを2のべき乗に変更している.いずれも量子

フーリエ変換を効率良く適用するための条件である. ■

1. レジスター1に0から242までの整数を用意し,レジスター1の各数αに対し

て7αmod 15をレジスター2に作成する.完成したレジスターの状態は,

1ψ〉一諾髄d15>

となる.

α 0 1 2 3 4● ● o 242

7αmod 15 1 7 4 13 1・ ● ・ 4

2. レジスター2の状態を観測し,結果4が得られたとする.このとき全レジス

ターは

1ψ〉一瞬ン>14>

となり,ここで.4={α’:7α’mod 15=4}で61はこの集合の要素の個数である.

Page 40: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 35

α’ 2 6 10 … 242

これより,α’=2+プ4(ゴ=0,1,_,60)と表せる.

3. レジスター1の各状態1α’〉に量子フーリエ変換を適用すると,

同〉一概Σ溜1の

c=0

が作成される.こうして全レジスターの状態は,

1ψ〉一規三三趣>14>

によって与えられる重ね合わせになる.

4. レジスター1の状態を観測して出力。が得られる確率は,

2 P・・b(・)一6、漏Σ~辮

α’∈/1 2 一6、漏Σ・励藁

ゴ=0

となる.ここで,e2π乞α’o/243の各項を複素平面上のベクトルと考えると,各項と

その総和のベクトルは,例えば,図5.1,5.2のように表される.このようにし

て,全体の分布は図5。3で表され,確率が0。1より高い。は,

c 0 61 121 122 182

Pr・b(c) 0.251029 0ξ203128 0.100924 0.100924 0.203128

である.つまり,

論整数(λ)一P・・b(・)が大

なので,c=0,61,121,122,182を観測する確率が高く,これらの。の値に対して,

c λ 243 4

が成り立っている.

5.仮にレジスター1の観測から出力61を得られたとする.61/243を連分数展開

すると,15より小さい最大分母をもつ最良近似分数は1/4で,これより位数が

4と推定でき,このとき素因数分解に成功する.

Page 41: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 36

おもな出力についての結果をまとめると以下のようになる.

.出力。の場合,⊥舶 243

●出力61の場合,」延側主 4 243

.出力121の場合,塑駕三=1 243 4 2

.出力122の場合,塑弼三=主 243 4 2

●出力182の場合,璽駕三 243 4

位数の推定不可→失敗

位数4と推定→成功

位数2と推定→失敗

位数2と推定→失敗

位数4と推定→成功

Page 42: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 37

一1

一1 0

40

30

20

10

0

一10

一20

・30

葡1 -40 -30 -20 -10 0 10 20 30 40

図5.1:c=61の場合,強い正の干渉が起こり総和(右図)の大きさは大きくなる

0

・1

一1 0

40

30

20

10

0 ・

一10

・20

・30

1 同40 -30 -20 -10 0 10 20 30 40

図5.2:c=62の場合,負の干渉により総和(右図)の大きさは小さくなる

Page 43: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

第5章Shorのアルゴリズム 38

1

0.1

0.01曾

9雪 αoo1

§

9 0.0001

1e-005

1e-0060 50 100 150 200 250

「egister 1

図5.3:出力。が観測される確率(対数スケール)

Page 44: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

付録 プログラム

Shorのアルゴリズムにもとつく15の素因数分解プログラム.量子コンピュータの動作をC言語によりシミュレートする.

// Program na皿e 四quantum.c闘

〃begin#include <stdio.h>#include <math.h>#inc:Lude <stdlib.h>

#defille CN 15

#define PCA 7#define PSQ 243#defille PI#define SEED 1993

3.14159265358979

プログラムの本体は“quantum.c”である.

// Composite Number lln四 = target for farctoring//Pick a ra皿dom integer 闘a曾l co-prime to n// Pick a smooth 脇q曾8

//Pi

// Seed for rand function

int find_period_quantumO,find_period_classicO,measure_reg20, greatest.c。㎜。n.divis。rO;

void initialize O,fourier_transfor皿0,measure_regiO,. ~:ontinued_fraction_expansion O;■nt t■mes● タunsigned long int reg1[PSQ],reg2[PSQ],f:Lug[PSQ],q[PSQ],samp=Le;

float ra豆0;lo丑g idum;

double prob[PSQ];F工LE *fp;

// begin of 皿ain

int main( void ) {

int TIMES,period,counter,idum;

TIMES=(i且t)log(PSQ);

idum=SEED. ウ ran(&idum);

fp=fopen(鯛data.tx七曾8,鱒wll);

printf(㈹Composit n1』nber = %8d\旦

Co-prime intege:r冨%8d\n

Slnooth number = %8d\n seed = %8d\n

fp。i。t垂(茎講。鑑P織n≧躍・P三A織SEED・TエMES);

Co-prime integer = %8d\n

Smooth number =%8d\n seed 富 %8d\nt imes = %8d\n\n量。,CN,PCA,PSQ,SEED,T工MES);

39

Page 45: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

付録プログラム 40

// repeat log(q) times belov

for(times=0;times〈T工MES;times++){ printf Cl[%4d]\n謄㌧times+1);

fprintf(fp,曾1[%4d]\n曹㌧times+1);

iロitializeO; priLtf(IIPeriod classic 3 %d \丑量㌧find_period_classicO); fprintf(fp,脚Period c:Lassic = %d \nI㌧find_period_classicO);

counter羅measure_reg20; fourier_transform(counter); measure_reg10; printf(闘Measure reg1 = %d\1ゴ㌧sa皿ple);

fprintf(fp,鴨Measure reg1 =%d\n,㌧sample); if(sample==O){

printf(loFailed l (Measured value is O)\n四);

fprintf(fp,瞬Fai:Led豊 (Measured va].ue is O)\nll); }

else{

continued_fraction_expaロsion(sample,PSQ); period=find_period_quantum O; printf(量lPeriod.quantum = %d \n四,period);

fprintf(fp,llPeriod quantum = %d \n薯㌧period);

if(period%2==1){

priロtf(11Failed璽 (Period is odd)\n四);

fprintf(fp,四Failed! (Period is odd)\nl,); }

else if(reg2[period/2]==一1){

printf(巳1Failedl (a^{Period/2}=一1)\n鱒);

fprintf(fp,四Failed! (a^{Period/2}=一1)\n睡);

else{

printf(慶1a^{Period/2} = %d\nl㌧reg2[period/2]);

fprintf(fp,鱒a^{Period/2} = %d\n8㌧reg2[period/2]);

printf(願1GCD( %d , %d ) = %d\n睡,

CN,reg2[(int)(period/2)]一1,

greatest.co㎜on-divisor(CN,reg2[(int)(peri。d/2)]一1));

fprintf(fp,胴GCD( %d , %d ) = %d\n四,

CN,reg2[(int)(period/2)]一1,

greatest_common_divisor(CN,reg2[(int)(period/2)]一1)); printf(11GCD( %d , %d ) .= %d\n四,

CN,reg2[(int)(period/2)]+1,

greatest.co㎜on-divisor(CN,reg2[(int)(period/2)]+1)); fprintf(fp,mGCD( %d , %d ) = %d\n四,

CN,reg2[(iロt)(period/2)]+1,

greates七.co㎜on.divisor(CN,reg2[(int)(period/2)]+1)); }

printf(1へn唖1);

fpri且tf(fp,鱒\1ゴ馨);

fclose(fp);}

// end of main

Page 46: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

付録プログラム 41

// initialize reg1, reg2, probvoid initialize O{

■nt ■’ ,

for(i=O;i〈PSQ;i++){ reg1[i]=i;

reg2[O]=1;

for(i=1;i〈PSQ;i++){

reg2[i]=re g2[i-1]*PCA%CN;

/*

for(i=O;i<PSQ;i++){ prob[i]=1/PSQ;

*/

int measure_reg20{

//皿easure the state of reg2

int i,rd,counter; rd竃(int)(PSQ*ran(&idum));

fprintf(fp,11⊃4easure reg2 = counter=O・ り fo「(1;ぞ麟呈1≧}l12[。d]){

counter++. つ f=Lug[i]=1;

else{ f=Lug[i]=O;

return(C◎un七er);

%d\n量1,reg2[rd]);

// fourier transform & resultvoid fourier_transform(int couロter){

int i,j,ac;

double re,im,tota:L;

//

total=0;for(i=O;i〈PSQ;i++){ re=0;im=0; fprintf(fp,量1[reg1 = %4d]\n闘,i);

for(j冨O;j〈PSQ;j++){

if(flug[j]==i){

ac=2*(j*i%PSQ);

re=re+cos((P工*ac)/PSQ);

止山呈ll懸蓋/ES舞乙;/%d Pi,。。.%f, im.%f\nll,

ac,PSQ,cos((PI*ac)/PSQ),sin((PI*ac)/PSQ));

fprintf(fp,量1%f %f\nl蓼,

cos((PI*ac)/PSQ),sin((PI*ac)/PSQ)); }

Page 47: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

付録プログラム

//

prob[i]=(re*re+im*im)/(counter*PSQ).;

total冨total+prob[i];

if(prob[‡]〉=0.00){

fp士intf(fp,鵠reg1 冨%4d, prob = %f\nu,i,prob[i]);

fprintf(fp,11%4d %f\nll,i,prob[i]);

fprintf(fp,鱒Total of re & im %f %f\n曾㌧re,im);}

printf(四Total of Probabi:Lity 罧%f\n巳㌧total);

fprintf(fp,朋Total of Probability = %f\n曹㌧tota1);}

v◎id measure_reg10 //measure the state of reg1{

illt i・ り double pr,subtota1;

pr=(double)(ran(&idum));

subtotal=0・ り for(i冨O;i<PSQ;i++){

subtQta1=subtotal+prQb[i];

if(subtotal>pr){ samp:Le=i;

break; }

// continued fraction exPansionv◎id continued_fract ion_expansion(int numerator,int deno皿inato:r){

illt i,residue;

for(i=O;i<PSQ;i++)q[i]=o;

f。「(と〒91皇ぞ撒盆臓9δ諾1蓋。minat。r)、

residue=numerator%denominator; numerator=denominator; denominator=residue; // printf(1露q[%d]=%d\nl㌧i,q[i]);

//

int{

find period 曾lr闘 by quantum methodfind._period_quantum O

と器b圭6P9:9}・P2・qO・q1・q2・pe「’od;

b=(double)1/(double)(2*PSQ);1§illlll!lo];

for(i冨1;q[i]1=O;i++){

P2=q[i]*P1+pO;

q2=q[i]*qi+qO;

if(q2>=CN) break;

pO=p1;p1=p2;

42

Page 48: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

付録プログラム 43

//

//

//

qO=q1;q1=q2;printf(llP/Q = %d / %d\nI㌧P2,q2);

printf(Ilc/q=%d \n,1,sample[times]);printf(唖1:Lambda/r = %f \ロu,(doub:Le)P2/q2);

a=(double)p2./q2一(double)sa皿ple/PSQ;pri豆tf(量1%10f %10f %10f %10f四,

a,b,(double)1/(2*CN*CN),(double)1/(2*period*period));

fprintf(fp,四%10f %10f %10f %10f亀1,

a,b,(double)1/(2*CN*CN),(double)1/(2*period*period));

if(一a〈b && aくb){

printf(四 〇\nll);fpri且tf(fp,曾l o\n闘);}

e工se{ . 一 printf(四 x\1ゴ1);fpri且tf(fp,四 x\n簡);}

period冨q2;}

return(period);}

// find period 響Irll by classical method,// i.e. find first 駐1r鱒 such that 闘a^r = 1, r l= OI1

// which will be used for checking the answer.

int find_period_classicO{

iロt i,periodclassic;

fo「(1;1麟呈1≧11!

periodclassic=i;

return(periodclassic); }

// greates’t;common divisorint greatest.co㎜on.divis。r(int c,int d){

int residue;

while(d!=0){

residue=c%d; c=d;

d=residue; }

return(C);}

//elld

乱数発生には次の関数“ran.c”を利用した[18].

// Progra皿name 四ran.c四

//begin

#define 工A 16807#defille IM 2147483647

Page 49: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

付録プログラム 44

#defiコe AM (1.0/工M)

#define IQ 127773#define 工R 2836#define NTAB 32#define ND工V (1+(IM-1)/NTAB).

#defiロe EPS 1.2e-7#define RNMX (1.0-EPS)

float 「aL(long *idu阻){

int j;

10ngk; static lo且g iy=0;

static long iv[NTAB]; float temp;

if (*idum 〈= O ll liy){

if (一(*idum) 〈 1) *idum=1;

else *idum = 一(*idum);

for (j=NTAB+7;j>=O;j一一){

k=(*idum)/IQ;

*idum=工A*(*idu皿一k*工Q)一一工R*k;

if (*idum < 0) *idum += 工M;

if (j 〈 NTAB) iv[j] = *idum;

iy=iv[0];

k=(*idum)/工Q;

*idum=工A*(*idum-k*IQ)一工R*k; if (*idu皿 〈 0) *idum += IM;

」=iy/NDIV;

iy器iv[j];

iv[j]= *idu皿;

if ((temp=AM*iy) > RNMX) returロ RNMX;

else return te皿P;}

//end

Page 50: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

引用文献

[1]D.Deutsch,‘(~駕αη施m 77}εoη1,舌んεα協rcん一理r伽g Pr¢ηc¢μeαη4診んeση勿er3αZ

9錫αη伽mOom郷オe〆, Proc. R. Soc. Lond., Vo1.A400, pp.96-117,1985。

[2]A.Ekert and R. Jozsa,‘(2駕αη施m com郷診α伽ηαη43ん。而ル。診。幅πgαな10短孟んm,,

Reviews of Modem Physics, Vb168, No.3, pp.733-753,1996.

[3]福元信之,「連分数の研究」,兵庫教育大学修士論文,平成8年度.

國濱頼光,「因数分解と素数判定」,兵庫教育大学修士論文,平成3年度.

[5】井桁和浩,小澤正直,西野哲朗,細谷暁夫,竹内繁樹,北川勝浩,「特集量子コン

ピュータ」,数理科学10月号,サイエンス社,1998.

[6]D.Kahn,‘Tゐe Oo4e6reαたer5,, Revised and Updated, Scribner,1996.

[7]木田祐司,牧野潔夫,「コンピュータ整数論」,日本評論社,1994.

[8](原著)Neal Koblitz,‘オOour8e 2π1鴨励eγ跣eo卿侃d O瑠p舌og脚吻’, Second

Edition, Springer,1994.

(邦訳)櫻井幸一訳,「数論アルゴリズムと楕円暗号理論入門」,シュブリンガー・

フェアラーク東京,1997.

[9]A.K Lenstra, H.W. Lenstra,Jr.(eds.),‘The Dθ勿e勿㎜e漉。弗んε亙錫勅er F鰯

3伽e,,Lect. Notes Math.1554, Springer-Vbrlag,1993.

[10]圓井大介,「連分数と恥rey数列」,兵庫教育大学修士論文,平成10年度

[11]水上勉,「素数定理とふるい法」,兵庫教育大学修士論文,平成9年度.

[12]中山泰和,「Lucas数列と素数判定」,兵庫教育大学修士論文,昭和62年度.

[13エ西川史郎,「Riema皿nのζ関数について」,兵庫教育大学修士論文,平成6年度.

[14]西野哲朗,「量子コンピュータ入門」,東京電機大学出版局,1997.

45

Page 51: 公開鍵暗号とShorのアルゴリズムrepository.hyogo-u.ac.jp/dspace/bitstream/10132/2258/1/ZH30301-001.pdf · 公開鍵暗号とShorのアルゴリズム 教科・領域教育専攻

引用文献 46

[15]融裕治,「 b獅獅.,兵庫鞘木学修士論文,脚51年度

[16]岡本栄司,「暗号理論入門」,.共立出版,1993.

[17]J・hn P・e・kill;‘伽α伽m. v・・痂伽・η4伽P噸・η’, Lec㌻u・e N・t・・, d・1%r-

hia Institute of Technology,1998.

[18](原著)Williρm. H. Press, Saul A. Tehkolsk酷William Tl V6tterling and Brian P.

Flannery,‘ハ砲m爾。αZ Re吻θ3伽0’, Cambridge University Press,1988.

(邦訳)丹慶勝市,奥村晴彦,佐藤俊郎,小林誠訳,「ニューメリカルレシピ・イン・

シー」,技術評論社,1994.

[19]Peter W. Shor,‘鋤。渤m5三三α伽m Oo卿漁伽πD乞5creα島og翻d 1竜。一

孟oT伽g,, Proceedings of the 35th Annual IEEE SympQsium on R)undations of

qom画ter Science,1994.

[20]Peter W. Shor,‘Po伽。禰α1一乃me孟lgo短オん鵬3かP励e翫。オor翻¢oηα翻伽.

cγeα麺ogαr伽鵬50ηα(~制αη施m Ooηη初ε〆, SIAM Journal on Computing 26:5,

pp.1484-1509,1997 and also available at LANL qu包nt-ph archive 9508027.

[21](原著)D.R. Stinson,‘Or塵og即ん〃」跳eo概則4 P㎜c伽e’, CRC Press,1995.

(邦訳)櫻井幸一監訳,「暗号理論の基礎」,共立出版,1996.

[22]高木貞治,「初等整数論講義」,第2版,共立出版,1971.

[23]和田秀男,「コンピュータと素因子分:解」,遊星社,1987.

[24]Colin P. Williams and Scott H. Clearwater,‘E卿lor醐。η52η伽α伽m Oo即雛

¢η9,,Springer-V6rlag,1998.