35

「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で
Page 2: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

「耐量子計算機暗号」

サンプルページ

この本の定価・判型などは,以下の URL からご覧いただけます.

https://www.morikita.co.jp/books/mid/087211

※このサンプルページの内容は,初版 1 刷発行時のものです.

Page 3: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で
Page 4: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

i

まえがき

現代の高度情報化社会の根幹を担う基盤技術の一つが暗号技術である.たとえば,

インターネットにおける安全な通信には公開鍵暗号が不可欠である.その要は,仮

に公開・送信した情報から秘密の情報を「原理的には」特定しうるとしても,その

特定にたとえば数百年もの非現実的な計算量が必要であれば「事実上」安全である,

という方法論である.一例として,本書の執筆時点で推奨されている RSA暗号の

強度設定では,設計に用いられる整数を素因数分解できれば暗号が解読できるもの

の,その整数は二進法で 2048桁(十進法では 600桁強)もの巨大さであり,これは

素因数分解の世界記録の桁数(二進法で 795桁)*1 の倍以上である.こうした暗号

の安全性は,今後余程の驚異的な技術革新がない限りは破られないように思える.

しかし,その「余程の驚異的な技術革新」の可能性を秘めているのが量子計算で

ある.現在の普通の計算機(コンピュータ)では,機器の小型化・高密度化を支える

工学的工夫はさておき,計算の原理自体はいわゆる古典物理学の領域にある.そこ

に古典物理学では実現できない量子物理学的な原理を導入して,現在の計算機より

も「根本的に速い」計算機の実現を目指すのが量子計算の分野である.量子物理学

的な現象は繊細かつ安定した制御が困難なことから,量子計算ではこれまでハード

ウェア的な研究よりもソフトウェア(アルゴリズム)的な研究が先行してきた.そ

の代表例が,ショア(Peter W. Shor)が 1994年に発表した,素因数分解を効率的

に行う量子計算アルゴリズムである.暗号分野の視点ではこの研究結果は,将来的

にショアのアルゴリズムを実装できる大規模な(暗号で用いられる数千ビット規模

の数値を扱える)量子計算機が実現すると,前述した RSA暗号をはじめとする素

因数分解の計算困難性を前提とした暗号の安全性が失われることを意味する.

そこで,現在主流の RSA暗号などとは異なり,大規模量子計算機の実現後も安

全性が損なわれない新しい公開鍵暗号技術の必要性が暗号分野で提唱され,本書の

主題でもある「耐量子計算機暗号」(Post-Quantum Cryptography)という研究分

野が誕生した*2.耐量子計算機暗号は,それを専門に取り扱う国際会議 PQCrypto

*1 2019 年 12 月に樹立された.それ以前の記録は二進法で 768 桁(2009 年 12 月)であった.*2 この分野名は,英語では Post-Quantum の代わりに Quantum-Resistant や Quantum-Safe と

いった語も用いられ,日本語でも「耐量子暗号」「ポスト量子暗号」など呼称のぶれが大きい.本書では原則として,CRYPTREC(1.5 節を参照)が使用している「耐量子計算機暗号」という名称を用いる.

Page 5: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

ii

(International Conference on Post-Quantum Cryptography)が 10 年以上にわ

たり定期開催されているなど,すでに暗号分野で主要な研究分野の一つとなった.

2016年には米国国立標準技術研究所 NISTが耐量子計算機暗号の標準化に向けた

公募を行っている.さらに近年は量子計算のハードウェア的な研究が大幅に進展し,

2017年には小型ではあるが量子計算機の商用サービスが開始され,また 2019年 9

月には量子計算機の性能が(詳細は割愛するが)「量子超越性」と呼ばれる一つの大

きな壁を超えたのではないかとの観測がなされた.こうした量子計算に対する認知

度や期待の高まりも相まって,耐量子計算機暗号はこれまで以上に大きく注目され

ている.

本書はこの耐量子計算機暗号に関する,筆者の調べた限り(包括的かつ技術的内

容に重きを置いた)和書として初の専門書である.耐量子計算機暗号の特徴の一つ

に,その基盤となる知識の多彩さや関連分野の幅広さが挙げられる.暗号分野の知

見を要するのに加えて,RSA暗号という公開鍵暗号の「王道」と異なる構成原理*1

を探る必要上,投入される数学理論の種類や難度も多様である.さらには「耐量子

計算機」暗号であるから,「敵を知る」意味で量子計算の知識も重要となる.逆にい

えば,従来の暗号分野に限らず,数学や量子計算の分野の人々が「うちの分野と関

係するらしいので」とこの分野を訪れることも考えられる(し,そう筆者は願って

いる).そこで本書では,暗号分野や近接分野で比較的共有されているであろう数学

知識(いわゆる理系の大学 1,2年次程度の解析学や線型代数と,集合・写像・確率

など基礎数学的な事項)のみを前提とし,耐量子計算機暗号の設計や安全性評価の

具体例の紹介だけでなく,この分野をさらに深く学ぶために必要と筆者が考える数

学や暗号技術などの基礎知識の整備をも主眼とした.なお,高度な数学を仮定しな

いとはいえ,実際には(筆者自身がもともと数学畑の人間ということもあり)証明

や式変形など数学一般の営みに親しみがあるほうが本書を読み進めやすい.たとえ

ば卒業研究や大学院進学で暗号分野を研究し始める情報科学分野の学生が研究の土

台固めのため最初にじっくり読む本,といった立ち位置を志して本書を執筆した.

本書の構成

第 1章では,暗号分野の歴史や本書で用いる計算量理論の基礎知識,暗号方式の

具体例やその理論的・実用的観点からの安全性評価の実例などを概説している.本

*1 暗号分野に馴染みのある読者向けの注釈として,現代の公開鍵暗号には RSA 暗号以外にもいわゆる楕円曲線暗号という別の主流技術も存在するが,それらもショアのアルゴリズムで破られてしまう.

Page 6: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

iii

書は暗号分野以外の読者も想定しているため,この章は「耐量子計算機」に限らず

暗号分野一般への導入にも役立つよう志した.また最後の第 5章では,量子計算の

数学的モデル化に必要な量子情報理論の基礎の解説*1 から始めて,前述したショア

の量子計算アルゴリズムなど従来型の暗号の安全性と関連する内容を説明し,最後

の節では(技術的詳細を述べる余裕はなかったが)耐量子計算機暗号の安全性評価

にも関連する比較的新しい量子計算アルゴリズムの概要も述べている.

本題である耐量子計算機暗号自体を扱った残り三つの章については,何を書いた

かよりも「何を書か(け)なかったか」を述べるほうが有益であろう.第 2章で耐

量子計算機暗号分野を概観した後,現時点での耐量子計算機暗号の主な種類のうち

「符号ベース暗号」と「多変数多項式暗号」を紹介し,次に「格子暗号」と「同種写

像暗号」をそれぞれ第 3章と第 4章で紹介しているが,たとえば他の重要な種類で

ある「暗号学的ハッシュ関数」に基づく方式は本書では説明できていない.また,

本書で扱っている上記の耐量子計算機暗号の種類についても,(多数存在する方式の

なかでごく限られた)いくつかの方式の具体的設計や(一部を除き)その出力の正

しさは説明しているものの,その数学的な安全性証明の詳細や,実用上の安全性解

析に用いられる各種アルゴリズム(グレブナー基底計算,格子の最短ベクトル計算

など)の詳細な計算量評価については説明する紙面の余裕がなかった.実のところ,

上で挙げた耐量子計算機暗号の主な種類の各々が,本来はそれ単独で専門書になり

うる深みと広がりをもつ題材なのである.こうした本書に欠けている事項について

は,本書を踏み台として,後で紹介するようなより進んだ書籍や学術論文などを参

照してさらに学習や研究を進めていただけると幸いである.

なお,上で「初の専門書」の前に括弧書きで言い訳がされているのは,本書の執

筆開始時点では当該分野の専門的な和書が見当たらなかったところ,以下のように

執筆開始後の 2019年 2月以降に関連書籍が相次いで発刊されたことによる.時系

列順に,岡本龍明(著)『現代暗号の誕生と発展』(近代科学社)([124])は,全体と

しては暗号分野全般を概説する一般向け書籍の体裁であるが,そのなかで一つの章

を耐量子計算機暗号の紹介に割いている.高木剛(著)『暗号と量子コンピュータ』

(オーム社)も比較的一般向けの見た目をした概説書であるが,副題に「耐量子計算

機暗号入門」とあるように耐量子計算機暗号,とくに本書では記載の乏しい標準化動

*1 量子情報理論を真面目に説明するにはどうしても比較的高度な線型代数の理論((半)正定値線型変換や線型空間のテンソル積など)を要するため,それらの予備知識を付録の A 章にまとめている.

Page 7: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

iv

向など実用寄りの事項の紹介に力を入れている.さらに,青野良範,安田雅哉(著)

『格子暗号解読のための数学的基礎』(近代科学社)は,格子暗号の数学的安全性解析

手法に特化した和書では異色の専門書であり,当該分野の第一線の研究者である著

者らによって,本書の第 3章で述べた入門的内容を超えた専門的内容が豊富に解説

されている.一方,洋書ではベルンシュタイン(Daniel J. Bernstein)らが編者の

“Post-Quantum Cryptography”(Springer社)([80])が代表的であり,2010年

出版のため同種写像暗号のような最近の話題は含まないものの専門性の高い内容と

なっている.本書に欠けている事項についてはこういった関連書籍も参照されたい.

まえがきの結びとして,本書の執筆に際してとくにお世話になった以下の方 (々順

不同,本書の執筆時点の情報)に深い感謝の意を表する.本書の執筆には,筆者の

所属研究室*1において教員・学生を問わず日々行われる議論が大いに参考となった.

同研究室教授の高木剛氏には本書の全体にわたり多くのご助言をいただき,特任研

究員の小貫啓史氏には(数学的に本書で最も高度な内容である)第 4章の草稿に対

して技術的に重要なものも含む詳細なご意見をいただいた.また,株式会社MCC

(メダカカレッジ)の梵天ゆとり氏には,本書の想定する平均的読者層に近い視点か

ら,読み取りにくい箇所の指摘や改善案など多くの有益なご意見をいただいた.本

書では専門用語の邦訳や外国人名の日本語読みもわかる範囲で記したが,その一部

は岩田覚氏,松尾真一郎氏,山下剛氏(五十音順)に質問してご意見をいただいた内

容を参考にした.森北出版の福島崇史氏からは,本書の執筆の機会を与えていただ

いただけでなく,執筆中の要所要所で原稿に対し的確なご意見を数多くいただいた.

同社の丸山隆一氏には本書の校正に際してご尽力いただいた.なお当然ながら,本

書が含みうる誤りについてはこれらの方々には責がなくひとえに筆者自身の責任で

あることを明記しておく.そして,筆者の妻・恵梨子は,明るく温かい家庭によっ

て筆者の疲れを和らげてくれたり,研究や本書の執筆に没頭している筆者に世の中

の出来事を伝えてくれたり,何よりも嬉しいこととして筆者の研究や執筆の成功を

心から信じ応援してくれるなど,数多の方法で筆者を支えてくれた.筆者の初めて

の著書となる本書を妻に捧げる.最後に,本書を読んでくださった読者の皆様に対

しても深くお礼申し上げつつ,皆様の専門的技能と知的好奇心の糧として微力なが

ら本書が役立てることを心より祈念する.

2020年 6月 8日 筆者記す

*1 東京大学大学院情報理工学系研究科数理情報学専攻数理情報第 1 研究室.

Page 8: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

v

記号表

def= 左辺の対象を右辺で定義する

a | P (a)および a : P (a)  条件 P (a)を満たす対象 a全体の集合

f−1[A] 写像 f による集合 Aの逆像(= a | f(a) ∈ A)a← X 確率変数 X の値として aを得た

U [S] 集合 S 上の一様分布

Fq 位数 q の有限体

Rm×n 環 R上のm行 n列の行列全体の集合

¬b ビット bの否定(NOT)

b1 ∧ b2 ビット b1, b2 の論理積(AND)

b1 ∨ b2 ビット b1, b2 の論理和(OR)

b1 ⊕ b2 ビット b1, b2 の排他的論理和(XOR)(n

m

)二項係数(= nCm = n!/(m! · (n−m)!))

maxS と minS 順序集合 S の最大の元と最小の元

⌊x⌋ k ≤ xを満たす最大の整数 k

⌈x⌉ k ≥ xを満たす最小の整数 k

⌊x⌉ xに最も近い整数(= ⌈x− 1/2⌉)a mod n aを nで割った余り

a ≡n b aと bが nを法として等しい(a ≡ b (mod n))

(mℓmℓ−1 · · ·m1m0)q 整数m =∑ℓ

i=0miqi の q 進法表示

gcd(m,n)と lcm(m,n) mと nの最大公約数と最小公倍数

exp(a) 指数関数 ea

A(x; r) 確率的アルゴリズム Aの入力 xと乱数 r に対する出力

∆(X,Y ) 確率変数 X と Y の統計距離tv と tA ベクトル v と行列 Aの転置

Page 9: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

vi

目次

まえがき ............................................................................................................................................................................... i

第1 章 暗号分野への導入 1

1.1 計算量的安全性と公開鍵暗号 11.2 アルゴリズムと計算量 71.3 暗号技術の安全性定義の例 141.4 暗号技術の安全性証明の例 211.5 実際の利用における安全性の評価 34

第2 章 耐量子計算機暗号 41

2.1 背景と概要 412.2 符号ベース暗号 462.3 多変数多項式暗号 59

第3 章 格子暗号 79

3.1 格子 793.2 格子暗号の具体例 883.3 格子を用いた高機能暗号 953.4 格子の基底簡約:ガウスのアルゴリズム 1013.5 格子の基底簡約:LLLアルゴリズム 1033.6 格子の最近ベクトル問題 1143.7 格子問題に対するより高度なアルゴリズム 117

Page 10: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

目次 vii

第4 章 同種写像暗号 125

4.1 導入:ディフィー –ヘルマン鍵共有の一般化 1254.2 楕円曲線 1274.3 楕円曲線上の群構造 1324.4 同種写像 1404.5 ベルーの公式と同種写像問題 1474.6 SIDH鍵共有方式 1534.7 暗号学的等質空間と CSIDH鍵共有方式 1604.8 同種写像問題に対するアルゴリズム 167

第5 章 量子計算と暗号の安全性 171

5.1 量子計算の数学的体系 1715.2 サイモンのアルゴリズム 1925.3 グローバーの量子探索アルゴリズム 1985.4 ショアのアルゴリズム 2025.5 ショアのアルゴリズムの一般化と応用 208

付録A 線型代数に関する予備知識 211

A.1 内積空間と随伴写像 211A.2 (半)正定値線型変換 214A.3 テンソル積 217

付録B 定理 4.3.8の証明 226

B.1 点たちが一致する可能性の絞り込み 226B.2 点の重複が少ない場合 227B.3 上記以外の場合 236

参考文献 ....................................................................................................................................................................... 239索引 ................................................................................................................................................................................... 248

Page 11: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で
Page 12: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

1

第 1 章

暗号分野への導入

本書の主題である耐量子計算機暗号とは,大規模な量子計算機が実現しても安全

な暗号技術のことである.では,そもそも「暗号技術が安全である」とはどのよう

な状態を意味するのであろうか.この章では,暗号技術の「安全性」の定義付けを

はじめとする,暗号分野に特有の方法論や基礎的な予備知識を説明する.

1.1 計算量的安全性と公開鍵暗号

大まかにいうと,暗号(cryptography)は情報に関する安全性(security)を保

証する技術の総称である.ここでの「安全性」は,その情報に対して不正な働きか

けがなされないことを意味する.この不正な働きかけをしようとする主体は攻撃者

(adversary,あるいは attackerなど)と呼ばれる.安全性の代表例として,部外者

に知られたくない情報を秘密にしておける「秘匿」が挙げられる.この場合,当人

が秘密にしたい情報を他者(攻撃者)が許可なく知ろうとする行為が,上記の「不

正な働きかけ」にあたる.暗号化(encryption)は情報の秘匿を実現する技術であ

る.暗号化では,文章や数値などのデータを暗号文(ciphertext)へと変換する.そ

の際,鍵(key)あるいは暗号鍵(encryption key)と呼ばれる秘密の値を知らない

第三者が暗号文を入手しても,もとのデータの内容を知ることができないようにす

る.暗号文へ変換する前のデータをひらぶん

平文(plaintext)と呼ぶ.また,鍵を知ってい

る人は暗号文をもとの平文へと戻すことができる.この暗号文から平文への逆変換

を復号(decryption)と呼ぶ.

暗号技術が実現する安全性は秘匿だけではない.情報通信の際に,受信者に届い

たメッセージが本物であることや,メッセージの送信者が本人であることを保証す

Page 13: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

2 第 1 章 暗号分野への導入

る行為を認証(authentication)という.メッセージの認証技術では,送信者が発

信したメッセージが通信の途中で書き換えられた場合にそのことを検出できる.こ

れにより,書き換えられた偽のメッセージを本物だと信じ込まされずにすむ.一方,

送信者の認証技術である署名(signature)もしくは電子署名(digital signature)で

は,送信者本人しか知らない署名鍵(signing key)を用いてメッセージに対する付

加情報を生成する.この付加情報のことも署名と呼ぶ.その際,署名鍵を知らない

第三者は正しい署名を生成できないようにする.受信者は,メッセージとそれに対

する署名を受け取ると,検証鍵(verification key)を用いて,署名が正しいかどう

かを確認する.これにより,メッセージが送信者本人からのものか,送信者に成り

すました偽者から送られたものかを判断できる.インターネットのような不特定多

数との通信の場では,情報を秘匿する暗号化と送信者を認証する署名は,どちらも

安全な通信を実現する上で重要な技術である.

古代ローマのシーザー暗号のように,暗号化の技術は古くから使われてきた.こ

うした伝統的な暗号化技術では,復号に用いる鍵を,受信者だけでなくメッセージの

送信者も知っていないと暗号文を作成できない.このように送信者と受信者が鍵を

共有する必要のある暗号化の方式は,今日的な分類では共通鍵暗号化(symmetric

key encryption)と呼ばれる(図 1.1).(秘密鍵暗号化,対称鍵暗号化といった名称

も用いられる.)共通鍵暗号化の方式のうち,ある観点では究極的な存在といえるの

が,ワンタイムパッド(one-time pad)と呼ばれる方式である.具体的な構成法は

割愛するが,ワンタイムパッドは,暗号文からもとの平文に関する情報を決して得

図 1.1 共通鍵暗号化の概要

Page 14: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

1.1 計算量的安全性と公開鍵暗号 3

られないという完全秘匿(perfect secrecy)と呼ばれる安全性を実現している.

注意 上記の「暗号文から平文の情報が決して得られない」は,「暗号文を得た攻撃者が平文を言い当てることは決してできない」という意味ではない.現実の通信システムで扱える平文の長さには限界があり,したがって平文の種類が有限個に限られる以上は,攻撃者が暗号文を得ていない場合でさえ,でたらめに選んだ候補が本物の平文と偶然一致してしまう可能性はゼロではない.そのため,安全性を「平文が決して言い当てられないこと」と定義するわけにはいかないのである.前述した完全秘匿性の意味合いは,「暗号文をもっている状態ともっていない状態で,攻撃者が平文に関して入手しうる情報に差がない」というものである.シャノン(Shannon)の論文 [103]

ではこの安全性について,「鍵が確率的に選ばれるとき,暗号文と平文の確率変数が互いに独立であること」という数学的な定義を与えた.なお,上記のように安全性を「暗号文をもっていてもいなくても差がない」状態と定める考え方は,暗号分野の他の場面にも通ずる重要な方法論である.

ワンタイムパッドは優れた安全性を実現するが,その一方で効率性や運用のしや

すさの観点では以下のような問題点が知られている.

• 暗号化できる平文の種類は鍵の種類より多くはできない.これはたとえば,1

ギガバイトの(すでに圧縮済みの)データを暗号化通信する際には,同じく 1

ギガバイトもの巨大な鍵データが必要になることを意味する.

• 前項の内容と関連するが,一つの鍵は一つのメッセージの暗号化にしか使用できない.別のメッセージの暗号化に同じ鍵を使うと安全性が保証されない.

• 送信側と受信側で同じ鍵を用いるため,遠隔地への暗号化通信の際にも,事前に何らかの手段で鍵を秘密裏に受け渡しする必要がある.それ自体は他の共通

鍵暗号化の方式でも同じであるが,前述した鍵の大きさや使用回数制限と合わ

さることで,実際の運用上の制約がより厳しくなる.

現在実用化されている共通鍵暗号化方式は,ワンタイムパッドのような完全秘匿

性を備えてはいない.上記の鍵サイズや使用回数制限の問題点を克服するために,

安全性の要件を完全秘匿よりも弱い(けれども実用上は充分な)条件へと緩和した

のである.大まかにいえば,暗号文からもとの平文に関する情報が(「決して」では

なくとも)「現実的な状況で」得られなければ可としている.たとえば,暗号文か

ら平文の情報を得るための計算に 500年掛かるのであれば大抵の状況では問題ない

であろう.このように,(有限ではあるが)膨大な計算量がないと破れない種類の

Page 15: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

4 第 1 章 暗号分野への導入

安全性は計算量的安全性(computational security)と呼ばれる.そのような共通

鍵暗号化方式の代表例として,2001年に NIST*1 により制定された標準暗号 AES

(Advanced Encryption Standard)が挙げられる.なお,1970年代にも共通鍵暗

号化方式に関して標準暗号 DES(Data Encryption Standard)が制定されたが,

現在ではこの方式はもう安全ではないため使用は推奨されていない.

1.1.1 ディフィー –ヘルマン鍵共有と公開鍵暗号

前述の通り,共通鍵暗号化では事前に送信者と受信者が秘密の鍵を共有する必要が

ある.マークル(Merkle)の論文 [78]ではこの点を克服するため,計算量的安全性

の考え方に基づき,送信者と受信者が公開の通信だけを用いて鍵を共有する仕組み

が提案された.公開の通信を用いるので攻撃者も原理的には同じ鍵を入手しうるが,

それに必要な計算量が送受信者たちの計算量よりも大幅に多ければ問題ないという

考え方である.しかし,上記の方式ではこの計算量の差がそれほど大きくないこと

から,現実的に本当に安全といえるか明確でなかった.一方,ディフィー(Diffie)

とヘルマン(Hellman)は 1976年の論文 [32]で,マークルの方式よりも遥かに高

い計算量的安全性をもつと期待できる鍵共有の方式を提案した.ディフィー –ヘル

マン鍵共有(Diffie–Hellman key exchange)と呼ばれるこの方式(「鍵共有」の代

わりに「鍵交換」とも呼ばれる)は以下のように実行される(図 1.2).ここで「甲」

「乙」は一連の手続き(プロトコル)を実行する二人の主体を表す*2.また,pを素

数として,整数の集合 0, 1, . . . , p− 1において加減乗算を「普通に計算してからpで割った余り(0から p− 1まで)をとる」と変えたものを Fp で表す.

1. α = 0を Fp の適切に選んだ元とする*3(この αと素数 pは公開する).

2. 甲は,整数 0 ≤ X1 ≤ p− 2をランダムに選び,Y1 = αX1 ∈ Fp を計算する.乙は,整数 0 ≤ X2 ≤ p− 2をランダムに選び,Y2 = αX2 ∈ Fp を計算する.

3. 甲は Y1 を乙に送り,乙は Y2 を甲に送る.

4. 甲は,受け取った Y2 をもとにK1 = Y2X1 ∈ Fp を計算する.同様に乙は,受

け取った Y1 をもとにK2 = Y1X2 ∈ Fp を計算する.

*1 National Institute of Standards and Technology,和名は「米国国立標準技術研究所」など.アメリカ合衆国の国内機関であるが,(少なくとも)暗号の技術標準化において国際的影響力が強い.

*2 二人の呼び名に意味はないので,たとえば「A さん」「B さん」などとしてもよい.なお,暗号分野の英語文献では,頭文字 A の人名 Alice と頭文字 B の人名 Bob が呼び名に使われることが多い.

*3 より詳しくは,α の Fp× における位数が充分大きな数(できれば素数)となることが望ましい.

Page 16: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

1.1 計算量的安全性と公開鍵暗号 5

図 1.2 ディフィー –ヘルマン鍵共有方式

このプロトコルにより甲が得る元K1 と乙が得る元K2 は以下のように一致する.

K1 = Y2X1 = (αX2)X1 = αX2X1 = αX1X2 = (αX1)X2 = Y1

X2 = K2

こうして後の暗号化に使う鍵K(= K1 = K2)を共有できた.

一方,pと α,および Y1 と Y2 が公開の通信でやり取りされているので,攻撃者

もそれらを入手可能と想定するのが妥当であろう.その上で,秘密の計算結果K を

攻撃者に知られるかが問題となる.ここで,もし α と Y1 をもとに,Fp においてY1 = αZ1 となる整数 Z1を攻撃者が計算できたとすると,上と同様に成り立つ下記

の関係式によって,攻撃者は Y2Z1 を計算することで鍵K を入手できる.

Y2Z1 = (αX2)Z1 = αX2Z1 = αZ1X2 = (αZ1)X2 = Y1

X2 = K2 = K

このような Z1の計算は原理的には(たとえば全探索により)可能であるが,pが充

分に大きければ,Z1の計算が現実的に不可能なほど難しくなるであろう,というの

がディフィー –ヘルマン鍵共有方式の中核にある洞察である.

上記の方法は,暗号鍵の共有は公開の通信に基づくものの,実際の暗号化通信自体

Page 17: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

6 第 1 章 暗号分野への導入

は共通鍵暗号化の方式を用いるという二段構えの通信手順を想定している.前述の

ディフィーとヘルマンの論文では,より直接的な暗号化通信の手法として公開鍵暗号

化(public key encryption)の概念も提唱している.そこでは,暗号化に用いる鍵

と復号に用いる鍵を分離し,暗号化用の鍵を知っていても復号用の鍵の計算が(現実

的に)できないようにする.すると,受信者が秘密鍵(secret key)あるいは復号鍵

(decryption key)と呼ばれる復号用の鍵を秘密に保持したまま,暗号化用の鍵を公

開しても,暗号の安全性が保たれる.これにより送信者は事前に秘密の情報を受信

者と共有せず,公開された鍵(公開鍵(public key)あるいは暗号化鍵(encryption

key)と呼ばれる)を用いて受信者への暗号文を自由に作れる(図 1.3).

図 1.3 公開鍵暗号化の概要

ディフィーとヘルマンの論文では,こうした公開鍵暗号化の方法論を述べている

ものの,具体的な方式の構成は与えていなかった.公開鍵暗号化の具体的方式の候

補は,今日ではRSA暗号と称される,リベスト(Rivest),シャミア(Shamir),ア

ドルマン(Adleman)*1により提案された方式(論文 [96])まで待たれることとなっ

た*2.なお,素因数分解の性質に基づくRSA暗号の構成は,前述のディフィー –ヘ

ルマン鍵共有とはかなり趣を異にしている.一方,ディフィー –ヘルマン鍵共有の

原理をより直接的に公開鍵暗号化へと昇華させた方式として,1.4節で紹介するエ

*1 他にエーデルマン,エイドルマンなどの日本語表記もあり,あまり統一されていないようである.*2 余談であるが,実は,英国政府通信本部GCHQ(Government Communications Headquarters)

において秘密裏に,公開鍵暗号化の方式がより早く考案されていたことが現在では明らかとなっている.この点はカッツ(Katz)とリンデル(Lindell)の著書 [64] を参照した.

Page 18: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

1.2 アルゴリズムと計算量 7

ルガマル(ElGamal)暗号(論文 [37])がある.

前述の通り,暗号技術には暗号化以外にも認証など多くの種類がある.公開鍵暗

号化のように,正規の利用者間で事前の秘密情報の共有を要しない暗号技術は公開

鍵暗号(public key cryptography)と総称される.一方,共通鍵暗号化のような,

事前の共有情報を必要とする暗号技術は共通鍵暗号(secret key cryptography)と

呼ばれる.なお,日本語の文献では「暗号」という語を cryptographyと encryption

の両方に用いることが少なくないためやや紛らわしい場合があるが,本書では区別

のために前者を「暗号」,後者を「暗号化」と呼び分けるようにしている.

1.2 アルゴリズムと計算量

アルゴリズムとは,入力として与えられたデータをもとに,何らかの計算を行っ

て出力結果を得る決められた手順を意味する.他の情報科学分野と同様に,暗号分

野においてもアルゴリズムの概念は不可欠である.とくに,1.1節で述べた計算量

的安全性の概念が「安全性を破るために多大な計算量を要する」という意味合いで

あるため,アルゴリズムの計算量の概念が必須となる.この節では,アルゴリズム

やその計算量の概念に関する基本的事項や使用する記号などについてまとめる.

アルゴリズムの概念の厳密な定義では,アルゴリズムの「決められた手順」を記

述する「正式な文法」として,何らかの計算モデルが用いられる.その伝統的な代

表例に,チューリング機械と呼ばれる仮想的な計算機(コンピュータ)がある.し

かし,チューリング機械の基本機能は極めて限定的であるため,それを用いたアル

ゴリズムの記述は煩雑すぎて現実的なアルゴリズムの議論には適さない.そのため

暗号分野では,よほど深遠な理論に立ち入る場合を除き,もっと「普通の言葉」で

アルゴリズムが記述される.本書でも,チューリング機械の定義は割愛し「普通の

言葉」でアルゴリズムを記述する.チューリング機械の定義を含むアルゴリズムの

概念の「正式な」理論展開は,計算機科学に関するシプサ(Sipser)の著書(訳:太

田,他)[111],ゴールドライヒ(Goldreich)の著書 [52]などを参照されたい.

1.1節で紹介したディフィー –ヘルマン鍵共有では,素数 pや Fp などの数学的対象を用いた.数学的対象は物理的な実体をもたないが,有限個のビット(文字 0ま

たは 1)で表現できるものであれば,基本的にアルゴリズムのなかで自由に扱える.

たとえば個々の整数は,絶対値の二進法表示を与えるビット列と符号の正負を表す

ビットの組で表現でき,通常はとくに問題とならない.一方,一般の実数のように有

Page 19: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

8 第 1 章 暗号分野への導入

限のビット列では表現できない場合には,適切に近似するなどの工夫が必要となる.

アルゴリズムの計算量(computational complexity)あるいは時間計算量(time

complexity)は,その手順をビット単位での基本演算の組み合わせで表したときに,

アルゴリズムの完了までに要する基本演算の回数として算出される.基本演算とし

ては,表 1.1に挙げた否定演算(NOT)¬,論理積(AND)∧,論理和(OR)∨,排他的論理和(XOR)⊕などがよく用いられる*1.なお,具体的なアルゴリズムの

理論的解析では,その計算量を一の位まできっちり算出することは極めて稀である.

通常は,アルゴリズムの入力に関するパラメータ(たとえば入力が整数であれば,そ

の整数のビット列表示の桁数など)の変化に応じて計算量がどう変化するか,とい

う大まかな傾向を考察することが多い.こうした計算量の変化の傾向を取り扱うの

に便利な道具として,ランダウの記号と呼ばれる「O()」などの記号が用いられ,こ

れらは以下のように定義される.

表 1.1 1 ビット基本演算と 2 ビット基本演算

NOT

b ¬b0 1

1 0

AND OR XOR

b1 b2 b1 ∧ b2 b1 ∨ b2 b1 ⊕ b2

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 1 0

定義 1.2.1 xを整数値あるいは実数値の変数とし,ある x′ について,x′ より大きなすべての xにおいて実数値関数 f(x)と g(x)が定義されているとする.

1. ある値 c > 0と x0について「x > x0なら常に f(x) ≤ c ·g(x)」が成り立つとき,x→∞での f(x)のオーダーが g(x)以下であるといい,f(x) ∈ O(g(x))

と書く.またこのとき,x→∞での g(x)のオーダーが f(x)以上であるともいい,g(x) ∈ Ω(f(x))とも書く.

2. どの c > 0についても,それに応じたある値 x0について「x > x0なら常にf(x) ≤ c · g(x)」が成り立つとき,x→∞での f(x)のオーダーが g(x)未満であるといい,f(x) ∈ o(g(x))および g(x) ∈ ω(f(x))と書く.

3. f(x) ∈ O(g(x))かつ f(x) ∈ Ω(g(x))であることを f(x) ∈ Θ(g(x))で表す.

*1 演算 XOR と AND は「mod 2 での和と積」,つまり集合 0, 1 を F2 とみなした場合の F2 における加法と乗法に相当することを注意しておく.

Page 20: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

1.2 アルゴリズムと計算量 9

4. x→∞のとき f(x)/g(x)が 1に収束することを,x→∞で f(x)と g(x)

が漸近的に等しいといい,f(x) ∼ g(x)と書く.

例 1.2.2 1. n→∞のとき

(n

3

)∈ Θ(n3)かつ

(n

3

)∼ n3

6である.

2. x→∞のとき以外の漸近的な評価に関しても同様の定義を適宜用いる.たとえば,x→ +0のとき x2 ∈ o(x)である.

3. 2変数以上の関数についても同様の定義を適宜用いる.たとえば,正整数 nを定数とすると,x, y →∞のとき (x+ y)n ∈ o(maxx, yn+1)である.実際,c > 0

について,x0 = 2n/cとすると,x0 ≤ x ≤ y であれば

(x+ y)n ≤ (2y)n = cx0yn ≤ cyn+1 = c ·maxx, yn+1

であり,x0 ≤ y ≤ xのときも同様の不等式が成り立つ.

定義 1.2.1の記号を援用して,O(g(x))で「f(x) ∈ O(g(x))を満たす何らかの関

数 f(x)」を表す,などといったことも頻繁に行われる.たとえば n → ∞のとき(n

3

)=n3

6+O(n2)が成り立つ,といった具合である.

例 1.2.3 n,mを正整数とする.nの二進法表示の桁数は ⌊log2 n⌋+ 1 = Θ(log n)である(⌊x⌋は k ≤ xを満たす最大の整数 kを表す).筆算の原理による素朴なアルゴリズムについて,加算 n+mと減算 n−mの計算量は O(maxlogn, logm),乗算 n ·mの計算量は O(logn · logm)となる.また除算については,n割るmの商(= ⌊n/m⌋)と余り(これを n mod mで表す)を同時に計算量 O(logn · logm)で得ることができる.(これらの計算量評価は中村の著書 [127]を参照した.)また,べき乗nmについては,素朴に乗算を繰り返すとΘ(m)回の乗算が必要となるが,バ

イナリ法と呼ばれる方法で乗算をΘ(logm)回に削減できる.m = (mℓmℓ−1 · · ·m1m0)2

をmの二進法表示(mℓ = 1)とする.その上から k 桁目までに対応する整数をここでは m[k] と書く.つまり m[k] = (mℓ · · ·mℓ−(k−1))2 である.すると m[1] = mℓ = 1

より nm[1] = nであり,また,関係式

nm[k+1] =

n2·m[k] = (nm[k])2 (mℓ−k = 0のとき)

n2·m[k]+1 = (nm[k])2 · n (mℓ−k = 1のとき)

を用いて nm[2] から nm[ℓ+1] = nm までを順次計算できる.

暗号理論において,ある計算の効率性の理論的な評価では,その計算量のオーダー

が「多項式程度で収まるかどうか」が一つの分水嶺となる.

Page 21: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

10 第 1 章 暗号分野への導入

定義 1.2.4 非負実数値をとる関数 f(x)が xに関して多項式オーダーである(of

polynomial order)とは,ある正整数 kについて,x→∞のとき f(x) ∈ O(xk)

であることと定める(このことは f(x) ∈ xO(1)とも表せることを注意しておく).2変数以上の関数についても同様に定義する.

アルゴリズムAの時間計算量が,入力に関する何らかのパラメータについて多項式オーダーであるとき,Aはそのパラメータに関する多項式時間(polynomial-time)

アルゴリズムであるという.なお,アルゴリズムの計算量が多項式オーダーである

ことと,そのアルゴリズムが現実的な状況で効率的に動作することは必ずしも一致

しない.それでも,アルゴリズムが「効率的かどうか」を「多項式時間アルゴリズ

ムかどうか」で区分けすると,以下のような柔軟さをもち理論的に便利である.た

とえば,この意味で「効率的な」アルゴリズムに定数回の演算を追加したり,「効率

的な」アルゴリズムを二つ続けて実行してもやはり「効率的な」アルゴリズムとな

る.また,ある「効率的な」アルゴリズムの内部で別の「効率的な」アルゴリズム

を実行するようにしても,やはり「効率的な」アルゴリズムが得られる.

1.2.1 確率的(乱択)アルゴリズムと乱数の近似

アルゴリズムは,同じ入力では常に同じ動作をするのが原則である.しかし,ディ

フィー –ヘルマン鍵共有で整数をランダムに選んだように,実行するたびに動作が

異なるほうが望ましいこともある.それには,アルゴリズムの本来の入力に加え

て,充分な長さをもつ一様ランダムかつ互いに独立なビットの列(乱数)を入力と

して受け取り,乱数の値に応じて動作を変えるアルゴリズムを考える.これを確率

的(probabilistic)あるいは乱択(randomized)アルゴリズムと呼ぶ.アルゴリズ

ム Aが確率的でない場合には,記号 A(x)で入力 xに対する Aの出力を表す.ただし,入力 xについてアルゴリズムAが永遠に終了しない可能性もあり,その場合には A(x)は定義されない.一方 Aが確率的なときは,A(x)は入力 xと何らかの

乱数に対する Aの実際の出力を表す場合もあれば,乱数に従って変わる Aの(入力 xでの)出力値を表す確率変数を意味する場合もある.どちらの意味であるかは,

文脈から,または明示的な注釈で正しく読み取れるように記述する必要がある.な

お,確率的アルゴリズムAの実行に用いる乱数を明示し,記号A(x; r)で入力 xと

乱数 rに対する Aの出力を表すこともある.確率的アルゴリズムの乱数は一様ランダムで独立なビットの有限列であるから,

Page 22: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

41

第 2 章

耐量子計算機暗号

耐量子計算機暗号(Post-Quantum Cryptography)*1とは,大規模な量子計算機

が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

は,耐量子計算機暗号の歴史的背景,暗号分野における重要性,いくつかの具体的

な構成手法の候補などについて述べる.

2.1 背景と概要

第 1章で述べたように,公開鍵暗号技術の(計算量的)安全性は「何らかの数学的

な問題を解くのに多大な計算量が必要である」という類の計算量的仮定に基づいて

(相対的に)評価される.たとえば,RSA暗号の安全性は素因数分解の計算量的困

難性に基づいている.また,ディフィー –ヘルマン鍵共有やエルガマル暗号,さら

にはNISTにより標準化された電子署名方式DSA(Digital Signature Algorithm)

の安全性はどれも離散対数問題の計算量的困難性に基づいている.1970年代後半の

公開鍵暗号技術の誕生以降,同分野における代表的な位置にあったこれらの方式の

安全性は,いずれも素因数分解や離散対数問題に関する計算量的仮定に基づくもの

であった.そうした暗号技術が考案された後も,素因数分解や離散対数問題に対す

る(通常の計算機における)アルゴリズムの研究が進められてきたが,本書の執筆

時点ではこれらの問題を解く多項式時間アルゴリズムは与えられていない.

一方で,計算機科学の分野では,従来より用いられている通常の計算機(区別の

*1 「耐量子暗号」や「ポスト量子暗号」などの名称もよく用いられているが,本書ではCRYPTREC(1.5節を参照)で使用されている「耐量子計算機暗号」という呼称に統一する.また英語では,“Post-Quantum”

の代わりに “Quantum-Safe” や “Quantum-Resistant” といった語も用いられている.

Page 23: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

42 第 2 章 耐量子計算機暗号

ために「古典(classical)計算機」と呼ばれる)とは異なる,量子力学を根源的な動

作原理とする量子計算機(quantum computer)も研究されてきた.より一般的に

は,計算だけでなく通信なども含む情報処理を量子力学的原理に基づいて実現しよ

うという営みであり,今日的には量子情報理論(quantum information theory)と

呼ばれる理論体系が構築されてきた.同分野における比較的初期の代表的な成果の

一つに,ベネット(Bennett)とブラサール(Brassard)*1 の論文 [14]で提案され

た量子鍵配送プロトコル,通称 BB84プロトコルがある.ディフィー –ヘルマン鍵

共有などの(古典)鍵共有プロトコルの安全性は計算量的安全性に留まるが,BB84

プロトコルは攻撃者がどれだけ多くの(古典および量子)計算を行っても破られな

いという著しい安全性を実現している*2.このような安全性をもつ鍵共有(鍵配送)

プロトコルは,量子情報理論の枠組みの導入で初めて可能となるものであった.

上記の事例では量子情報理論が安全性の強化に寄与した.一方で逆向きの影響と

して,量子計算機において古典計算機よりも高速な計算が実現される*3 ことで,公

開鍵暗号技術の基盤となる計算量的困難性が脅かされる,という可能性も考慮を要

する.そして,これが単なる一般論としての可能性に留まらない具体的な脅威であ

ることが,ショア(Shor)による 1994年の論文 [104]で明らかとなった.この論文

は量子計算機で実行される量子アルゴリズム(quantum algorithm)に関するもの

であり,素因数分解と離散対数問題に対する多項式時間量子アルゴリズムを与えて

いる.(ショアのアルゴリズムの詳細については 5.4節で紹介する.)前述のように,

素因数分解と離散対数問題は当時の主要な公開鍵暗号技術の安全性を支える計算困

難問題であった.ショアの結果は,これら暗号分野の重要な計算量的仮定が量子計

算の範囲では成立しなくなることを意味している.もちろん,暗号に限らない計算

機科学全般の観点からもこの結果は充分に偉大なのであるが,そのなかでもこの結

果が当時の暗号学者に与えた衝撃の甚大さは想像に難くない.量子計算機には,理

論計算機科学はもちろん,量子力学や構造化学分野の現象シミュレーションなどの

周辺分野を含む幅広い方面から期待が寄せられており,その実現に向けた研究が精

力的に進められることは容易に予測できる.もし仮に,いわゆる永久機関のように

*1 他にブラザード,ブラザールという日本語表記もあり,あまり統一されていないようである.*2 ただし,現在の一般的な通信とは異なる量子通信ネットワークを要し,またたとえば鍵共有相手の認証

は別途考慮が必要であるなど,「BB84 プロトコルさえあれば万事解決」というわけではない.*3 単一の主体が「原理的にどの関数を計算可能であるか」は基本的に古典計算でも量子計算でも違いはな

く(効率および任意に小さな誤差を度外視すれば,量子計算機の動作をすべて古典計算機上で模倣可能であるため),ひとえに計算効率の違いが問題である.一方,複数の主体が絡む鍵共有などの場面では,上記のように「古典情報理論では原理的に不可能なこと」が量子情報理論により可能となる.

Page 24: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

2.1 背景と概要 43

それが原理的に実現不可能であるならば話は別であるが,そうでない限りは量子計

算機の実現,ひいては素因数分解や離散対数問題の困難性に基づく主要な公開鍵暗

号技術の安全性の喪失は「約束された未来」のようにも感じられよう.

上ではショアのアルゴリズムを「具体的な脅威」と称したが,そのアルゴリズム

を実行して現実に RSA暗号を破れるような大規模な量子計算機は,本書の執筆時

点でも未だ実現されていない.そのため,ショアのアルゴリズムは現実の脅威には

「まだ」なっていない.しかし,現実の情報通信システムで用いる暗号技術は,一般

的に「安全性が破られてから対処するのでは遅い」という性質をもつ.それは,新

しい構成原理や計算量的仮定に基づく暗号技術を設計してその安全性を密に評価す

るにも,また現存する膨大な数の情報機器に搭載されている古い暗号技術を余すと

ころなく新しい暗号技術に交換するにも,どちらも長い年数(概算で,少なくとも

10年)を要するからである.そのため,量子アルゴリズムに対しても安全な耐量子

計算機暗号についても,実際に RSA暗号を破れるような大規模な量子計算機の実

現が目前となってから研究開発を始めたのでは手遅れであり,大規模量子計算機が

まだ「夢物語」である頃から対応策を練っておく用心深さが求められる.

なお,古典アルゴリズムの場合と同様に量子アルゴリズムについても,ある問題

を解く時間計算量の自明でない下界を与えることは一般的に極めて困難とされてい

る.そのため,「量子アルゴリズムに対しても安全」というのは,あくまで「現時点

では,それを破る量子アルゴリズムが知られていない」という意味であることを注

意しておく.本書では以降,耐量子計算機暗号の「候補」という表現を用いるが,そ

の理由は上記の事実による.もちろん,古典アルゴリズムによって効率的に破られ

るようでは「耐量子計算機」以前の問題であるから,古典アルゴリズムの範囲では

(既知の方法では)破られないというのが大前提である.

注意 本書の執筆時点では,「耐量子計算機暗号」は量子計算機に対しても安全な公開鍵暗号技術を意味することが多く,本書でも同様である.一方で,共通鍵暗号技術についても,以下のように量子アルゴリズムの影響を考慮する必要がある.最も有名な事実として,グローバー(Grover)が 1996年に発表した論文 [55]によると,量子アルゴリズムを用いることで,N 個のデータに対する検索を O(

√N) のオーダーの計

算量で実行可能となる(詳しくは 5.3節で紹介する).すると,計算量的安全性をもつ共通鍵暗号化方式で 128ビット安全性(1.5節を参照)を実現する際に,古典アルゴリズムの範囲では暗号鍵の全探索への対策として暗号鍵の個数を 2128 個以上にする必要がある一方で,上記の量子アルゴリズムによる探索を考慮すると暗号鍵の個数を

Page 25: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

44 第 2 章 耐量子計算機暗号

そのおよそ 2乗,2256 個以上にする必要がある.(端的にいえば,暗号鍵の鍵長を従来の倍以上にする必要がある.)また,より新しい研究として,サイモン(Simon)が1994年に発表した論文 [109]の量子アルゴリズム(5.2節で紹介する)を用いることで,ある種の共通鍵暗号化方式を破れることが判明している.(この点は 5.2節の最後の注意でもう少し詳しく述べる.)サイモンの結果自体は 1994年のものであるが,共通鍵暗号の安全性への影響は 2010年代になって初めて示されたものであり,本書の執筆時点でもその影響範囲に関する研究が進められている.このように,共通鍵暗号技術についても量子アルゴリズムの影響は決して無視できないが,本書ではあくまで公開鍵暗号技術としての耐量子計算機暗号に焦点を絞る.

耐量子計算機暗号の(大まかな)分類では,その安全性が依拠する計算困難問題

の種類に着目することが多い.ショアのアルゴリズムは 1994年の結果であるが,耐

量子計算機暗号の候補のいくつかはそれ以前に(「耐量子計算機」とは別の動機で)

考案されたものである.たとえば,マクリース(McEliece)が 1978年の論文 [77]

で提案した公開鍵暗号化方式は,ランダムな誤り訂正符号の復号という問題の困

難性に基づいている.同様の原理に基づく暗号技術は符号ベース暗号(code-based

cryptography)などと総称される.また,松本と今井が 1988年の論文 [76]で提案

した公開鍵暗号化方式(松本・今井暗号)は,有限体上の多変数多項式からなる連

立方程式の求解困難性に基づいている.(なお,RSA暗号の仕組みを電子署名に転

用できるのと同様に,松本らの論文でも電子署名への転用を想定している.)同様の

原理に基づく暗号技術は多変数多項式暗号(multivariate cryptography)*1 などと

総称される.これらについてはそれぞれ 2.2節と 2.3節で改めて述べる.

一方,ショアのアルゴリズム以降に提案された耐量子計算機暗号の候補として,

アイタイ(Ajtai)とドワーク(Dwork)*2が 1997年の論文 [4]で提案した公開鍵暗

号化方式は,高次元格子上の最短ベクトル問題という問題の困難性に基づいている.

同様の原理に基づく暗号技術は格子ベース暗号(lattice-based cryptography),あ

るいはより端的に格子暗号と総称される.格子暗号は耐量子計算機暗号の候補とし

て有望であるだけでなく,安全性以外にも望ましい特徴を多く有し,近年の暗号分野

で中心的な研究テーマの一つである.格子暗号については第 3章で詳しく紹介する.

また,より新しい耐量子計算機暗号の候補としては,2006年にクーベニュー(Cou-

veignes)の論文 [29] および,Rostovtsev と Stolbunov の論文 [97] のそれぞれに

*1 英語の名称を直訳すると「多変数暗号」といった具合になるが,日本語での名称としては「多項式」という語が入っているこの名称が標準的に用いられている.

*2 両者の姓の日本語表記については岡本の著書 [124] を参考にした.

Page 26: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

2.1 背景と概要 45

おいて,楕円曲線の間のどうしゅ

同種写像と呼ばれる数学的対象を利用した公開鍵暗号技術

の構成が提案されている*1.このような同種写像を用いた暗号技術は同種写像暗号

(isogeny-based cryptography)と総称される.楕円曲線は暗号分野において,それ

までは耐量子計算機暗号ではない暗号技術(エルガマル暗号など)に対してしか用い

られていなかったが,同種写像暗号によってその耐量子計算機暗号としての活用法

が新たに見出された.これは理論的観点から興味深いだけでなく,実用面でも,暗

号分野で蓄積されてきた楕円曲線の実装技術が転用できる利点もある.こうした利

点の存在に加えて,誕生後まだ歴史が浅いこともあり,同種写像暗号も近年の暗号

分野で活発に研究されている.同種写像暗号については第 4章で詳しく紹介する.

なお,NISTが 2016年に発行した技術レポート [84]では,RSA暗号を実際に破

りうる量子計算機が 2030年頃には実現するかもしれない,との見通しについて言

及している*2.本書の執筆時点における量子計算機の開発状況としては,2001年の

時点では 7量子ビットの実証実験(論文 [120])に留まっていたものの,2017年に

は IBM社により 20量子ビットの量子計算機の商用サービスが開始されるまでに成

長した.(ここでは「量子ビット」の説明は割愛し,量子計算については第 5章で

改めて説明する.)また,複数の企業(Google社,IBM社,Intel社)が 50~70量

子ビット規模の量子計算機の開発に成功したとの報道発表もなされている.実際の

RSA暗号を破るには少なく見積もっても数千量子ビット規模の量子計算機が必要で

あるため,「2030年頃」という見通しの妥当性については意見が分かれるかもしれ

ない.ともあれ,NISTはこうした背景のもと,耐量子計算機暗号の標準化に向け

た方式提案の公募を 2016年に開始した.公募には(最低限の応募要件を満たさな

いものを除いて)69件の方式が応募された.本書の執筆時点において第一次選考が

すでに完了(26件が通過)しており,さらなる絞り込みに向けた評価が進められて

いる.

NISTの標準化公募には,前述した符号ベース暗号,多変数多項式暗号,格子暗

*1 論文の公開時期は [97] のほうが早いものの,クーベニューは [29] の成果を 1997 年にはすでにセミナーで公表していたとの記載がある.一方,[97] では耐量子計算機性について言及されているが,[29]

にはそうした記述は見られない.なお,どちらの論文も査読付きの発表媒体には採録されていないようである.

*2 正確を期すために,同レポートの 6ページより該当箇所を引用すると,“It is unclear when scalable

quantum computers will be available. However, in the past year or so, researchers

working on building a quantum computer have estimated that it is likely that a quan-

tum computer capable of breaking 2000-bit RSA in a matter of hours could be built

by 2030 for a budget of about a billion dollars” との記述がある.

Page 27: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で
Page 28: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

171

第 5 章

量子計算と暗号の安全性

2.1節でも触れたように,状態の重ね合わせ原理をはじめとする量子力学的な性

質を計算に利用する量子計算機および量子アルゴリズムの研究が盛んに進められて

いる.この章では,量子アルゴリズムを記述し解析するための数学的な体系につい

て述べた後,代表的な量子アルゴリズムのいくつかを紹介する.それと同時に,こ

れらの量子アルゴリズムと暗号技術の安全性との関係についても述べる.

5.1 量子計算の数学的体系

この節では量子計算の数学モデルを説明する.それらは(本書の範囲では)線型

代数の言葉を用いて記述される.線型代数の比較的高度な内容は本文中や付録の A

章で補足するが,より基本的な予備知識は [125]などの教科書を参照されたい.

5.1.1 用語や記号の準備

量子計算に限らず従来型の「古典」計算でも,実在の装置である計算機では,内

部の物理的な状態を順次適切に変化させることで計算が実行される.量子計算機の

場合,その内部状態は量子状態(quantum state)と呼ばれる量子力学的な物理状

態である.現代の量子力学の数学モデルでは,量子状態は(複素)ヒルベルト空間

(Hilbert space)と呼ばれる完備な複素内積空間上のある条件を満たす演算子とし

て記述される.「完備」の定義は割愛するが,本書では有限次元の複素内積空間しか

扱わず,その場合は完備性は常に成り立つのでとくに気にする必要はない*1.ここ

*1 量子情報理論では,このような有限次元の場合でも「複素内積空間」ではなく「ヒルベルト空間」という名称が標準的に用いられている.これは,一般の量子力学が無限次元のヒルベルト空間上で展開され,

Page 29: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

172 第 5 章 量子計算と暗号の安全性

で複素内積空間とは,複素数体 C上の線型空間 V のうち,以下の諸条件を満たす

内積演算 ⟨·, ·⟩ : V × V → Cが定められているものを指すのであった.ただし以下では,v, w,w1, w2は V の元であり,a1, a2 ∈ Cである.また複素数 cの複素

きょうやく

共役

を cで表し,零ベクトルを 0で表している.

(線型性) ⟨v, a1w1 + a2w2⟩ = a1⟨v, w1⟩+ a2⟨v, w2⟩ (5.1)

(共役対称性) ⟨w, v⟩ = ⟨v, w⟩ (5.2)

(正定値性) ⟨v, v⟩ ≥ 0 であり, ⟨v, v⟩ = 0 のとき v = 0 (5.3)

内積の正定値性 (5.3)により非負実数 ||v|| =√⟨v, v⟩が定まる.これを vのノルム

と呼ぶ.なお,内積の線型性 (5.1)と共役対称性 (5.2)を合わせると,以下の性質

⟨a1w1 + a2w2, v⟩ = a1⟨w1, v⟩+ a2⟨w2, v⟩ (5.4)

が導かれる.また,線型空間 V 上の線型変換(すなわち,線型写像 V → V)のこ

とを V 上の演算子(operator)と呼んでいる.

次に,量子情報理論で一般的に用いられるディラック(Dirac)のブラケット記法

を紹介する.この記法では,有限次元ヒルベルト空間Hの元 vを表すのに記号

| v ⟩ (5.5)

を用いる.Hの正規直交基底を一つ選び,Hの元を数ベクトルとして表す場合には,| v ⟩は列ベクトルで表すものとする.そのベクトルのことをケット(ket)ベクトル

という*1.一方,v ∈ Hについて,付録のA.1節のようにHの双対空間H∗の元と

して vの随伴(adjoint)v† を考える.vを | v ⟩と表すときは,v† のことを

⟨ v | (5.6)

という記号で表す(⟨v†∣∣ではないことに注意されたい).定義より v† : H → Cで

あるので,w ∈ Hについて写像の値 v†(w)が考えられる.この値を,⟨ v | |w ⟩と書いても良さそうであるが,より簡略化して

⟨ v |w ⟩ def= v†(w) ∈ C

その場合には完備性は決して自明な仮定ではないことを意識した慣習と思われる.*1 ケットベクトルの「向き」について,筆者自身は「この記号は左側面のほうが行列が接しやすい形をし

ているので,ケットベクトルは行列が左から作用する列ベクトル」と憶えた.ともあれ,一旦ケットベクトルの記法に慣れると,式 (5.5) を見ただけで,v がベクトル(ヒルベルト空間の元)であることに加えて v の数ベクトルとしての向きをも読み取れるようになる,という利点がある.

Page 30: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

5.1 量子計算の数学的体系 173

と表す.v, w ∈ Hのとき v†(w)は内積 ⟨v, w⟩に等しい(付録のA.1節を参照)ので

⟨ v |w ⟩ = ⟨v, w⟩

が成り立つ.なお,付録の A.1節のように,w ∈ Hを線型写像 w : C→ Hとみなせる.すると合成写像 v† w : C→ Cの,Cの基底 (1)に関する表現行列は,成分

⟨ v |w ⟩をもつ 1× 1行列となる.この意味で記法 ⟨ v |w ⟩は写像の合成との整合性がとれている.さらに,Hの正規直交基底に関して v ∈ Hを列ベクトル | v ⟩で表すと,同じ基底に関して v†はベクトル | v ⟩の随伴(転置共役)である行ベクトルで表せる.このようにベクトル表示した ⟨ v |(= v†)をブラ(bra)ベクトルと呼んで

いる*1.行ベクトル ⟨ v |と列ベクトル |w ⟩をそれぞれ行列とみなして掛け合わせた結果が vと wの内積 ⟨v, w⟩であるから,やはり上記の記法は整合性がとれている.

5.1.2 量子状態

5.1.1項でも少し述べたが,本書で取り扱う量子アルゴリズムに現れる量子状態

は,その量子系(quantum system)に付随する何らかの有限次元ヒルベルト空間

H上のある種の演算子として記述される.その説明の前に線型代数の予備知識を準備する.K を体とし,Kn×m を K 係数の n行m列の行列全体の集合とする.K

上の有限次元線型空間 V 上の演算子 F : V → V が,V のある基底に関して行列

A = (Aij)ni,j=1 ∈ Kn×n で表されているとする.このとき F のトレース(trace)

を行列 Aのトレース,すなわち tr(F ) = tr(A) =∑ni=1Aii で定義する.ここで行

列 A ∈ Kn×m と B ∈ Km×n の積のトレースが性質 tr(AB) = tr(BA)を満たす

ことから,F のトレースが V の基底の選び方と無関係に定まることがわかる.一

方,有限次元内積空間 V 上の演算子 F が半正定値(positive-semidefinite)である

(F ≥ 0で表す)とは,どの v ∈ V についても ⟨v, F (v)⟩が非負実数であることを意味する.以上の準備のもと,(本書の範囲では)量子状態の概念は以下のように定式

化される.

定義 5.1.1 量子系 S における量子状態は,その量子系に付随する有限次元ヒルベルト空間H = HS 上の演算子 ρのうち,ρ ≥ 0かつ tr(ρ) = 1を満たすものによって記述される.このような ρを密度演算子(density operator)と呼ぶ.H

*1 ケットベクトルと同様に,一旦記法に慣れると,式 (5.6) を見ただけで,v がヒルベルト空間の双対空間の元であり,ベクトル表示の向きは行ベクトルであることを読み取れるという利点がある.

Page 31: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

174 第 5 章 量子計算と暗号の安全性

上の密度演算子全体の集合を S(H)で表す.同一の量子系における量子状態たちについて,対応する密度演算子が互いに等しい場合にそれらの量子状態は互いに等しいとする.

以下では,量子系に付随するヒルベルト空間を一つ決めた状況において,量子状

態とそれに対応する密度演算子とをしばしば同一視する.

注意 定義 5.1.1における量子状態の定義はかなり唐突なものであり,「なぜそのような定義を採用するのか」という理由を推測するのは難しい.こうした数学モデルの背景については,ニールセン(Nielsen)とチャン(Chuang)の著書(訳:木村)[87],石坂らの著書 [123]などの量子情報理論に関する教科書を参照されたい.

密度演算子 ρ1, ρ2 ∈ S(H)と p1 + p2 = 1を満たす非負実数 p1, p2 について,そ

れらの凸結合 p1ρ1 + p2ρ2(これを仮に ρ′ と書く)もまた密度演算子である.(こ

れは幾何学的には,密度演算子の集合が凸集合であることを意味している.)実際,

v ∈ Hについて,ρ1, ρ2 ≥ 0より

⟨v, ρ′(v)⟩ = ⟨v, p1ρ1(v) + p2ρ2(v)⟩ = p1⟨v, ρ1(v)⟩+ p2⟨v, ρ2(v)⟩ ≥ 0

となるので ρ′ ≥ 0である.また,トレースの線型性により

tr(ρ′) = p1tr(ρ1) + p2tr(ρ2) = p1 + p2 = 1

も成り立つ.この密度演算子 ρ′ は,「二つの状態のうち,確率 p1 で状態 ρ1 を,確

率 p2で状態 ρ2を選択する」という確率的な過程に対応する量子状態と考えられる.

三つ以上の(有限個の)量子状態の確率的な選択過程についても同様である.

密度演算子の代表例は,Hの単位ベクトル(ノルム 1の元)| v ⟩を用いて

ρ = | v ⟩⟨ v |

と表せる演算子 ρである.ここで前述のように Hの元 | v ⟩を線型写像 C → Hとみなしており,上記の ρは写像の合成H → C→ Hで得られるH上の演算子となる.この演算子について下記が成り立つ.ここで v, w ∈ Hについて,w が v のス

カラー倍である(つまり,ある α ∈ Cを用いて w = α · vと書ける)ことを

w ∝ v

で表す.

Page 32: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

5.1 量子計算の数学的体系 175

命題 5.1.2 | v ⟩ ∈ Hを単位ベクトルとすると,ρ = | v ⟩⟨ v |は密度演算子である.また,|w ⟩もHの単位ベクトルであるとすると,| v ⟩⟨ v | = |w ⟩⟨w |となることと |w ⟩ ∝ | v ⟩であることは同値である.

証明 主張の前半について,前述したトレースの性質より

tr(ρ) = tr(| v ⟩⟨ v |) = tr(⟨ v | v ⟩) = ⟨ v | v ⟩ = 1

である.また,|u ⟩ ∈ Hについて

⟨ |u ⟩ , ρ |u ⟩ ⟩ = ⟨u | ρ |u ⟩ = ⟨u | v ⟩ ⟨ v |u ⟩

= ⟨ v |u ⟩ ⟨ v |u ⟩ = | ⟨ v |u ⟩ |2 ≥ 0

となるので,ρ ≥ 0である.よって ρは密度演算子である.主張の後半について,まず |w ⟩ = α | v ⟩(α ∈ C)であるとする.| v ⟩も |w ⟩も単位ベクトルであるから |α| = 1である.すると

|w ⟩⟨w | = α | v ⟩ · α ⟨ v | = αα | v ⟩⟨ v | = |α|2 | v ⟩⟨ v | = | v ⟩⟨ v |

となる.逆に ρdef= | v ⟩⟨ v | = |w ⟩⟨w |であるとすると,ρ |w ⟩ = |w ⟩⟨w |w ⟩ = |w ⟩

および ρ |w ⟩ = | v ⟩⟨ v |w ⟩ = ⟨ v |w ⟩ · | v ⟩が成り立つ.両者は等しいので,|w ⟩は| v ⟩のスカラー倍である.以上より主張がすべて成り立つ.

定義 5.1.3 H の単位ベクトル | v ⟩により | v ⟩⟨ v |と表せる密度演算子をもつ量子状態を純粋状態(pure state),それ以外の量子状態を混合状態(mixed state)と呼ぶ.

純粋状態 | v ⟩⟨ v |をHの単位ベクトル | v ⟩としばしば同一視する.命題 5.1.2に

より | v ⟩のスカラー倍である単位ベクトルは量子状態としては | v ⟩と一致する.

例 5.1.4 2次元ヒルベルト空間Hが付随している量子系を量子ビット(quantum bit

もしくは qubit)と呼ぶ.Hの正規直交基底を一つ決めておき,H = C2 と同一視する.Hの標準基底を構成する単位ベクトルを,| 0 ⟩ = t(1, 0)および | 1 ⟩ = t(0, 1)と書く*1

(このような基底はしばしば計算基底(computational basis)と呼ばれる).これらの元に対応する量子状態(の密度演算子)は

| 0 ⟩⟨ 0 | =

(1

0

)(1 0

)=

(1 0

0 0

)および

*1 この | 0 ⟩ は零ベクトル 0 ではなく「0 番目のベクトル」の意味であることを強調しておく.

Page 33: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

248

索引

英字Challenge

Fukuoka MQ — 77Lattice — 117RSA Factoring — 39

Claw Finding 168CRYPTREC 38CSIDH 164enumeration 120EUF-CMA 65EUF-KOA 66Extension Field

Cancellation 62Gaussian Heuristic 118IND-CCA 20IND-CPA 18, 20Information-Set Decoding

53j 不変量 158Kannan’s Embedding

122Meet-in-the-Middle 168NIST 4NTRU 92POVM 180Random Sampling

Reduction 120SIDH 153sieving 120SubSieve 121Unbalanced Oil and

Vinegar 66

あ 行アルゴリズム 7BKZ— 119LLL— 103暗号化— 16ガウスの基底簡約— 101鍵生成— 15, 63確率的— 10

グローバーの— 198検証— 63サイモンの— 192署名— 63多項式時間— 10復号— 16ブッフバーガーの— 73暗号 1アイタイ –ドワーク— 88エルガマル— 6, 23共通鍵— 7公開鍵— 7高機能— 96格子— 44, 79準同型— 95耐量子計算機— 41多変数多項式— 44, 59同種写像— 45, 152ニーダライター— 57パイエ— 32符号ベース— 44, 46マクリース— 50松本・今井— 44暗号化 1共通鍵— 2公開鍵— 6, 15暗号学的等質空間 127暗号文 1—空間 16安全性 1128 ビット— 37計算量的— 4一方向性 52イデアル 71単項— 162演算子 172制御 U— 186密度— 173オラクル 13量子— 193

か 行鍵 1暗号— 1—共有 4検証— 2, 64公開— 6署名— 2, 63ディフィー –ヘルマン鍵共有4秘密— 6

仮定DDH— 25LWE— 97計算量的— 21

環 31自己準同型— 154多項式— 68

簡約 71LLL— 108基底— 101部分— 70

帰着 26, 30基底 80グレブナー— 68, 72計算— 175

行列アダマール— 177生成— 49置換— 50パウリ— 177パリティ検査— 49, 55

行列式 80クエリ 14グラム –シュミットの直交化82

クロネッカー積 184群 21イデアル類— 163乗法— 31

計算量 8空間— 13

Page 34: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で

索引 249

クエリ— 14時間— 8

攻撃サイドチャネル— 40—者 1受動的— 66選択暗号文— 20選択平文— 18選択文書— 65

格子 79—点 80

合成系 182困難性最悪時— 91存在的偽造— 65平均時— 92

さ 行最近平面法 114作用 126識別 24—不可能性 18, 24

自己準同型写像 147次数 147射 141q 乗フロベニウス— 147同型— 141

射影平面 129巡回的 160順序辞書式— 69整列— 70全— 68単項式— 69

状態エンタングル— 184混合— 175縮約— 188純粋— 175積— 184量子— 171

署名 2, 63制御—NOT 187—U 演算子 186—ビット 186

正作用素値測度 179斉次 128

生成 72—系 72—元 72

正当 17, 64セキュリティパラメータ 15双方向探索 168測定 179基底— 180

た 行体 31拡大— 61素— 131

代数閉包 132楕円曲線 128超特異— 153通常— 153

多項式オーダー 10逐次最小値 85挑戦者 18電子署名 →「署名」同型 141統計距離 11同種 142ℓ- — 160—写像 142—写像グラフ 159双対—写像 167

な 行認証 2

は 行バイナリ法 9ハッシュ関数 67判別式 157標数 131平文 1—空間 16

ヒルベルト空間 171復号 1複製不可能性定理 190符号誤り訂正— 47—語 47線型— 47

不等式アダマールの— 84

シュワルツの— 212ヘフディングの— 196部分トレース 188篩法 120平行体 85ベルーの公式 147

ま 行無限遠点 130無視できる 19モジュラー多項式 169モニック 69モンゴメリ曲線 166問題DDH— 24LWE— 97MQ— 59一意近似最短ベクトル—

91隠れシフト— 210隠れ部分群— 208近似最短ベクトル— 91格子— 90最近ベクトル— 114最短ベクトル— 91同種写像— 152離散対数— 30

や 行優位度 19, 24ユークリッドの互除法 31有理関数 140有理点 129—群 139

ら 行ランダムオラクルモデル 68量子—アルゴリズム 42—計算機 42—ビット 175—フーリエ変換 202列挙法 120

わ 行ワイエルシュトラス標準形132

Page 35: 「耐量子計算機暗号」 サンプルページ · 2020. 8. 7. · 耐量子計算機暗号(Post-Quantum Cryptography)*1 とは,大規模な量子計算機 が実現したとしても安全性が損なわれない公開鍵暗号技術の総称である.この章で