☆「暗号技術 実践活用ガイド」正誤表
略語～目次
頁
位置
11
13

2020/10/28 版

誤選択暗号文攻撃者

正

訳注
CCAは「選択暗号文攻撃」を意味することが多いですが、原著では"chosen-ciphertext attackers"（attackではない）となっているので、「選択暗号文攻撃者」と訳していま
す。

11
12
12
12
13
13
13
13
13

下から5
3
5
下から7
11
12
19
下から8
下から3

決定論的乱数生成器
完全準同型暗号化
フォーマット保持暗号化
多変量二次方程式
四分円
量子乱数発生器

決定論的ランダムビット生成器
完全準同型暗号
フォーマット保持暗号
多変数多項式
四分ラウンド量子乱数生成器

換字-転置ネットワーク
調整値付き暗号有線同等機密換字-置換ネットワーク
調整可能暗号
無線暗号プロトコル

14
14
14
14
14
15
16
17
20
20
20
21
22
22

16
17
23
28
30-34
下から6
17
下から2
3
13
24
19
24
下から8

転置
演算モード
暗号化の安全性
非対称暗号化～暗号化
ビットの安全性を測る

置換
暗号利用モード
暗号の安全性
非対称暗号～暗号
ビットで安全性を測る

換字-転置ネットワーク
記憶証明への欺瞞プロトコル

換字-置換ネットワーク
記憶証明プロトコルへの攻撃

現実世界のPRNG
高速累乗アルゴリズム：平方乗算
決定論的ディフィー・ヘルマン問題

RSAトラップドア付き置換
高速累乗アルゴリズム：繰り返し自乗法
決定的ディフィー・ヘルマン問題

悪いランダムさのあるECDSA
コードを基にした暗号
多変量暗号

悪いランダム性のあるECDSA
符号を基にした暗号
多変数暗号

第1章
頁
23
24

位置
4
1～4

24
27
27
27
27
29
34
35
36
36
36
36
37
38
38
38
38
38

下から5～61115
15
下から4～5
12
1
下から8
7
14～15
21
27
15
17
17～18
19
下から4
下から10

誤
正
訳注
データを理解不能なものへと
半角スペースが不要
データを理解不能 なものへと
この章では、もっとも単純な種類の暗号化である対 この章では、もっとも単純な種類の暗号である対称暗号に
称暗号に焦点を当てます。対称暗号化では、復号用 焦点を当てます。対称暗号では、復号用の鍵と暗号化用のの鍵と暗号用の鍵は同じです。（暗号化と復号とで異 鍵は同じです（暗号化と復号とで異なる鍵を使う非対称暗なる鍵を使う非対称暗号化や公開鍵暗号化とは異な 号や公開鍵暗号とは異なります）。最も弱い形式の対称暗ります）。最も弱い形式の対称暗号化と、～号と、～ビットよりも文字に対してビットではなく文字に対して
暗号家
暗号学者※用語の修正は「用語の統一」欄にまとめました。
転置置換※用語の修正は「用語の統一」欄にまとめました。
演算モード
暗号利用モード※用語の修正は「用語の統一」欄にまとめました。
－－言い換えれば、－言い換えれば、暗号の演算モード
暗号利用モード
暗号化の安全性
暗号の安全性
どんなクエリを行える
どんなクエリを実行できる
暗号文単独攻撃者
単独暗号文攻撃者
暗号化クエリを行い、暗号化クエリを実行し、復号クエリを行えます。
復号クエリを実行できます。
復号クエリの実行を行えるが、復号クエリを実行できるが、その整合性を変化させることはなく、その完全性を変化させることはなく、※用語の修正は「用語の統一」欄にまとめました。
選ばれた平文攻撃者に対する選択平文攻撃者に対する選ばれた暗号文攻撃者に対する選択暗号文攻撃者に対する

39
39
39
39
39
39
39
39
39
39
41
41
41
42
42
43
43
43
43
44
44

2～３
5
5
7
8
11
14
15
22
下から4
11
12
25(下から3)
8
図1-4
9
10
20
23
5
14

"Wireless Encrypted Protocol"ではなく、"Wired
Equivalent Privacy"が正しい

強秘匿性と無作為暗号化：IND-CPA
無作為暗号化を使うことです。
強秘匿性

強秘匿性とランダム化暗号：IND-CPA
ランダム化暗号を使うことです。
※訳注参照

37ページの「安全性のゴール」で紹介した～
Ci=E(K, Pi)
iが1か2か暗号化がランダム化されていないなら、38ページで紹介した～
Ci=E(K, Pi)
iが1か2か
暗号化プロセスがランダム化されていないなら、Ciが無作為暗号化では、
強秘匿性暗号化の達成

Ciがランダム化暗号では、
強秘匿性暗号の達成

決定論的乱数生成器（DRBG）
乱数生成器を利用して決定論的ランダムビット生成器（DRBG）
ランダムビット生成器を利用して任意のPに非対称暗号化
対称暗号化

任意のPに
非対称暗号
対称暗号

「P」は斜体※用語の修正は「用語の統一」欄にまとめました。
※用語の修正は「用語の統一」欄にまとめました。

暗号化の2つの主なタイプで、認証付き暗号化

暗号の2つの主なタイプで、認証付き暗号※用語の修正は「用語の統一」欄にまとめました。

位置をNOTEの上に移動
フォーマット保持暗号※用語の修正は「用語の統一」欄にまとめました。

フォーマット保持暗号化
基本的な暗号は完全準同型暗号化に置き換えられるような暗号化です。
検索可能暗号化
調整可能暗号化

基本的な暗号化は完全準同型暗号に置き換えられるような暗号です。
検索可能暗号調整可能暗号

強秘匿性(semantic security)：平文を隠すだけでなく、部分的な情報も解読が困難であること。SSと略され、INDの定義とは異なりますが、安全性は等価です。

添え字の「i」は斜体。
「i」は斜体。
添え字の「i」は斜体。

※用語の修正は「用語の統一」欄にまとめました。
※用語の修正は「用語の統一」欄にまとめました。
※用語の修正は「用語の統一」欄にまとめました。

1

44
44
44
44
44
44
45
46
46
47
47

第2章
頁
54
54
55
56
56
63
67

15
16
17
18～19
20
下から4
下から4
4
下から4
2,4,7,11,12,139

標準的な暗号化に似ていますが、調整と呼ばれる追加のパラメーターが調整は別の関係者が標準的な暗号に似ていますが、調整値と呼ばれる追加のパラメーターが調整値は別の関係者がTEの主な利用はディスク暗号化です。
低水準な暗号化の一種です。
ディスク暗号化では、最近のモバイル暗号化の暗号化を使う多くの通信プロトコルは、
暗号家は通常暗号化

TEの主な利用はディスクの暗号化です。
低水準な暗号の一種です。
ディスクの暗号化では、最近のモバイル暗号の暗号を使う多くの通信プロトコルは、
暗号学者は通常
暗号

CHES会議の記録がCHES会議の発表論文集がCHES:Conference on Cryptographic Hardware andEmbedded Systems（暗号化ハードウェアと組み込みシス
テムに関する会議）https://ches.iacr.org/

位置
11
19
最終行

誤
量子乱数発生器（QRNG）は
疑似乱数ビット
エントロピープールを変更します。
システムに侵入しエントロピープールの値を正
量子乱数生成器（QRNG）は
疑似ランダムビット
エントロピープールを更新します。
システムに侵入してエントロピープールの値を

訳注

PRNGは攻撃者に知られておらず推測も困難な
DoS状態の生じる可能性があります。
（"Analysis of Intel’s Ivy Bridge Digital Random
Number Generator" 『IntelのIvy Bridgeデジタル乱数
発生器の解析』と題した報告書を参照）
通常係数値が違っていればすべてのpおよびqは異なってPRNGは攻撃者に知られておらず、推測も困難な
DoS状態が生じる可能性があります。
（『Analysis of Intel’s Ivy Bridge Digital Random Number
Generator（IntelのIvy Bridgeデジタル乱数生成器の解析）』と題した報告書を参照）
本来であれば相異なる法（n）の因数であるpやqはすべて異なって

誤Cを満たすものが暗号方式？は(t, ε)安全であると言います。
下限であると言えます。
効率の良い攻撃があるということは暗号に正Cを満たすものが暗号方式は(t, ε)安全であると言います。
下界であると言えます。
効率の良い攻撃があるということは、暗号に安全となっていることがnビット鍵を
この例で測っているのは暗号の評価値であり、テクノロジーに依存してません。
ビットの安全性を測る

安全となっていることが、nビット鍵を
この例で測っているのは暗号を評価する回数であり、テクノロジーに依存していません。
ビットで安全性を測る

最高の安全性はnビット安全性であることをあくまでも安全性レベルの上限、すなわち最高の安全性はnビット安全であることをあくまでも安全性レベルの上界、すなわち

9
11
下から7
3～4

69

6

第3章
頁
75
75
75
76
76
76
76
77
77
77
77
79
81

位置
10
下から13
下から6
2
16
下から4
下から3
7
17
19
21
下から4
下から5

82
83
84

14
20
18

88
89
89

13
18
下から2～3

第4章
頁
91
92
95
97
97
97
98

位置
下から2
4
下から4
14
17
下から3
6

誤
正
組み合わせたタイプの暗号、すなわち一連のデータ 組み合わせたタイプの暗号であり、一連のデータブロック
攻撃技術である、攻撃技術 である、『高度なスライド攻撃』『Advanced Slide Attacks（高度なスライド攻撃）』

訳注

換字-転置ラウンドFを使って、LとRを統合し、64ビットの
LとRを入れ替える代わりに、ラウンドがPRFではF(X)=F(Y)となる値XとYが存在します。

※用語の修正は「用語の統一」欄にまとめました。

98
110
114

16
9
8～9

120

10～11

高レベルの安全性（112ビット安全性）を高レベルの安全性（112ビット安全）を「。」を追加。
～新しいランダムな初期値IVを選択します～新しいランダムな初期値IVを選択します。
ビットを取り込んで吐き出すだけでそれ自体はブロッ ビット列を取り込んでビット列を吐き出し、かつブロックというクの概念を妨げない、ストリーム暗号
概念を損なわない、ストリーム暗号
他にも14のアルゴリズムが競争していました。CAST- 他にも14のアルゴリズム（CAST-256、CRYPTON、DEAL、256、CRYPTON、DEAL、DFC、E2、FROG、HPC、
DFC、E2、FROG、HPC、LOKI97、Magenta、MARS、RC6、
LOKI97、Magenta、MARS、RC6、SAFER+、Serpent、 SAFER+、Serpent、Twofish）が競争していました。
Twofish。

第5章
頁
121
131
136
136

位置
4
10
15
16

訳注
「C」は斜体小さくなる原因は以下の2つのどちらかです。
例えば2G携帯電話暗号に対する256 ビットを超える安全性は、金融機器を除けば実質的に不要です。
複雑性理論の領域に
単一転置アルゴリズムさえあれば、証明を無視して鍵を復元することにほとんど支障はないでしょう。
実際にこのセカンドキーはよく、
暗号学的安全性がに失敗が生じるケースは小さくなる原因は、以下の2つのどちらかです。
例えば2Gモバイル暗号に対する256ビットを超える安全性は、（マーケティングに使う機器としてでなければ）実質的には不要です。
計算複雑性理論の領域に一つの置換アルゴリズムがあれば、※用語の修正は「用語の統一」欄にまとめました。
証明を無視できます。鍵を復元することにほとんど意味はありません。
実用上はこのセカンドキーはしばしば、
暗号学的安全性に問題が生じるケースはその後の新たな証明によって、OAEP は選択暗号文 ※訳注参照
実際に起きたこととは少し違っています。[FOPS02]により攻撃者に対し「ほぼ安全」であるにすぎないことが示
POW-TDP+OAEPでIND-CCA安全になることはROMで示さされました。
れており、暗号学者は既に合意済みです。また、同論文でRSAがOW→POWも示されています。この2つの合わせ技
でRSA-OAEPはRSAがOWという仮定の下、ROMでIND-CCA
安全です。[FOPS02] https://link.springer.com/article/10.
1007/s00145-002-0204-y

換字-置換ラウンド関数Fを使って、LとRをつなげて64ビットの
LとRを入れ替える代わりに、各ラウンドで
※訳注参照

誤
チャンク
キューブ攻撃は、

正
ブロック
キューブ攻撃は、For LFSR1の初期ステートの全219の値について
For LFSR2の初期ステートの全222の値について

For LFSR1の初期ステートの全2^19の値について
For LFSR2の初期ステートの全2^22の値について

半角スペースが不要

置換⊆関数なので、そのようなXとYが存在しない可能性があります。

訳注※用語の修正は「用語の統一」欄にまとめました。
強調2

For 最初の11クロック中のLFSR3のクロックビットの全 For 最初の11クロック中のLFSR3のクロックビットの全2^11の値について211の値について
鍵と値の（鍵：値）組み合わせを
鍵と値の組み合わせを

136

17

137

15

第6章
頁
158
158
158
159
160
162
163
182

位置
12,13
14
17～18
9
14
12
1
4

誤
原像困難性
原像の困難性は、ランダムなハッシュ関数は単方向関数と原像のコスト
衝突困難性

位置
下から12
5～6

誤
正
訳注
整合性
完全性
組み合わせをでっち上げたものは組み合わせを不正な手段で作り出したものはこうした安全の概念の学問的な言い回しは、ランダム こうした安全性の概念は、学問的にはランダム関数との識
関数との識別不可能性です
別不可能性と呼ばれます
PRFは根本的にMACよりも強力であり、その主な理由 PRFは根本的にMACよりも強力であるとされます。その主なはMACの方が安全性要件が弱いということです。
理由は、MACの方が安全性の要件が弱いということです。
であることは、その値を推測できないことをも意味し であるならば、その値を推測することはできません。
ます。
しかし心配は無用です。実際のアプリケーションにそ しかし実際のアプリケーションにそのようなMAC構造が見らのようなMAC構造が見られることはないでしょう。
れることはないので、心配は無用です。
作る方法として単純に考えつくのは、方法として明白に思われるものの1つは、
Hash(K||M1||M2)を計算できません。
Hash(K||M1||M2)を計算できます。
MACやPRFと同じくらいに低くなります。
MACやPRFと同程度まで低くなります。
Hash((K⊕opad) Hash((K⊕ipad)M))
Hash((K⊕opad) || Hash((K⊕ipad) || M))
圧縮
Compress
衝突
圧縮
衝突
Collision

第7章
頁
186
187
188
189

下から3～4
2～3

189

7

189
190
190
190
192
192
194
194
195
196
197
199

下から4
4
18
21
10
図7-1
図7-2
図7-2
22
3,8
最終行

T1とK2を導出します
メッセージチャンク
安全性の目標を達成するのにK1とK2を導出します
メッセージブロック
安全性のゴールを達成するのに幸い、1メッセージ限りの安全性から複数のメッセー
ジの安全性へと移行する方法
加算やワードローテートと一緒にXORの束を使います。
脆弱になる可能性があります。
実装者は固定時間の実装を行う
バッファを固定時間で比較するものです。

幸い、1メッセージ限りではなく複数のメッセージについて安全性を実現する方法
加算やワードローテートと共にXORを使います。

2つのバッファを固定時間で比べる
追跡論文

2つのバッファを定数時間で比較する
後継の論文

位置
下から6
21
下から5
最終行

誤
互いに独立しているのでパケットが送られるごとに増分される
暗号文を作り出します。

正
互いに独立していてパケットが送られるごとにインクリメントされる
暗号文を生成します。

下から6～7

6

202

3～4

203
204
204
205
206

4
下から5
下から5
リスト7-3
3

第8章
頁
208
209
209
209
210
210
211
213
214
215

省メモリー衝突探索：Rhoメソッド
Rhoハッシュ関数の構造。
記憶証明への欺瞞プロトコル

正
原像計算困難性
原像計算困難性とは、ランダムなハッシュ関数は一方向関数と原像計算のコスト
衝突計算困難性
省メモリー衝突探索：ρ（「ロー」と読みます）法ρハッシュ関数の構造。
記憶証明プロトコルへの攻撃

訳注※用語の修正は「用語の統一」欄にまとめました。

※用語の修正は「用語の統一」欄にまとめました。
※用語の修正は「用語の統一」欄にまとめました。

※用語の修正は「用語の統一」欄にまとめました。

脆弱性を抱える可能性があります。
実装者は定数時間の実装を行う
バッファを定数時間で比較するものです。

訳注

MAC(生成)に従ってMAC(K2, P)に従って
7～8
TLS1.3では、化は認証付き暗号にTLS1.3では認証付き暗号に
9
暗号化後MAC下から10～11 選ばれた暗号文クエリ（暗号文を作って対応する平 選択暗号文クエリ（暗号文を作って対応する平文を問い合
文を問い合わせる攻撃）の実行することをを防ぐこと わせる攻撃）の実行を防ぐことができます。
ができます。
AEADの認証部分を取り除けば安全なAEADの認証部分を取り除けば
下から10直接関係しない、に直接関係しない
下から3

216
218
218
219

6
下から7
下から3
下から2

安全なネットワークプロトコルIPSec、SSH、TLS1.2のた インターネット技術特別調査委員会（IETF）の安全なネット
めのインターネット技術特別調査委員会（IETF）のも ワークプロトコル（IPSec、SSH、TLS1.2）の一部でもあります。
あります。
2、3等と増分されえる
2、3等とインクリメントされるすべてがゼロの文字列がノンスとしてゼロだけの文字列がノンスとして暗号化または復号できるという部分です。
暗号化または復号できるという点です。
増えていきますインクリメントします

第9章
頁
231
234
234
241
252
252

位置
2
下から8
下から7
8
17
19

誤
すなわち、現代暗号学の土台です。
複雑性の上限を示します。
アルゴリズムが固定時間で実行される総当たりが対象暗号の鍵を符号化問題は、多変量問題は

第10章
頁
253
253

位置
2
5～7

254

7

誤
正
訳注
最初の公開鍵暗号化方式として最初の公開鍵暗号方式として従来の対称鍵暗号化方式ではメッセージの暗号化と 従来の対称鍵暗号方式ではメッセージの暗号化と復号に同復号に同じ秘密鍵を使うのに対し、公開鍵暗号化 じ秘密鍵を使うのに対し、公開鍵暗号（非対称暗号とも呼ば（非対称暗号化とも呼ばれる）は2つの鍵を使いまれる）では2種類の鍵を使います。
す。
トラップドア（落とし戸）付きとトラップドア（落とし戸）付き置換と正すなわち難問は、現代暗号学の土台です。
複雑性の上界を示します。
アルゴリズムが定数時間で実行される総当たりが対称暗号の鍵を符号問題は、
多変数問題は

訳注

3

256
258

1
15～16

259

10.4-1

262
263
267
268
268
276

下から4
1
2
3
下から5
9

第11章
頁
278
279
279

位置
下から6
6
下から9～10279

下から7～8

281
282

下から4
下から1～2

283
292

2
7～8

294
295
295

9
13
下から5

295

下から4

296
296

8
9

296

11

296

下から4

第12章
頁
305

位置
19～20

306
306

10
11

307
308
308
309

10
13
16～17
17～18

311
311
311

7
9
15

311
312
312

19
4
10～11

312

16～17

312
312
313
313
313
313

18
最終行

313

下から7

314
315
315

9
11
下から2～3

316

2

1
8
10
13

現実世界のPRNG
RSAトラップドア付き置換x^e mod n もしくはnを法とするe乗根からxを計算で x^e mod nからxを計算できる場合、もしくはnを法とするe乗きる場合にも、根を計算できる場合にも、
通常、RSAは対象暗号方式と組み合わせて使われま 通常、RSAは対称鍵暗号方式と組み合わせて使われます。
す。
さらに厄介なのが幻惑攻撃です。
さらに厄介なのが目隠し攻撃です。
標的を説得して標的を誘導して高速累乗アルゴリズム：平方乗算
高速累乗アルゴリズム：繰り返し自乗法※用語の修正は「用語の統一」欄にまとめました。
平方乗算法は指数ビットを繰り返し自乗法は指数ビットをこうした平方乗算累乗アルゴリズムは、
こうした繰り返し自乗アルゴリズムは、
CHESワークショップの記録をCHESワークショップの発表論文集を誤～他も同様に評価に値します。

正～他の研究者も同様に評価に値します。

訳注

すべての算術演算は、係数pで行われます。
すべての算術演算は、pを法とします。
しかしながら、ディフィー・ヘルマンの単純さは欺けま しかしながら、ディフィー・ヘルマンの単純さはしばしば人をす。1つには、これは任意の素数pや基数gだけでは 欺きます。一つには、任意の素数pまたは任意の基数gでう動作しません。
まく動くというわけではありません。
秘密を期待しても、なんらかの値のgは共有される秘 秘密に期待したとしても、gの値によっては共有された秘密
密のg^abを可能な値の小さな部分集合に制限しま g^abのとりうる値が小さな部分集合に含まれてしまいます。
す。
決定論的ディフィー・ヘルマン問題
決定的ディフィー・ヘルマン問題※用語の修正は「用語の統一」欄にまとめました。
基本的により簡単でそれゆえにより低い安全性しか まったく簡単であり低い安全性しか提供しなかったりしま
保証しなかったりします。
す。
DDH
CDH
長期鍵を共有された秘密の計算に統一することで 共有された秘密を計算する際に長期鍵も組み込むことで
す。
す。
対象鍵は
対称鍵は
OpenSSLは小群をOpenSSLは小さな部分群をによる論文『素数位数の部分群を使った離散対数方 による論文『A Key Recovery Attack on Discrete Logbased式による鍵復元攻撃』に遡ります。
Schemes Using a Prime Order Subgroup（素数位数の部分群を使った離散対数方式による鍵復元攻撃）』に遡ります。
群の係数として素数pを受け入れる際に、群Zp*が部 群の法として素数pを受け入れる際に、群Zp*が小さな部分分群を持たないことと、群を持たないこと（ただし位数2の部分群は存在します）と、（未知の鍵共有攻撃や群代理攻撃のような）（未知の鍵共有攻撃や群表現攻撃のような）「群表現」としましたが、数学的な意味とは異なります。
『HMQV：高性能で安全なディフィー・ヘルマンプロトコ 『HMQV : A High-Performance Secure Diffie-Hellman
ル』
Protocol（HMQV：高性能で安全なディフィー・ヘルマンプロト
コル）』『暗黙認証付きディフィー・ヘルマンプロトコルの新し 『A New Family of Implicitly Authenticated Diffie–い仲間』
Hellman Protocols（暗黙認証付きディフィー・ヘルマンプロ
トコルの新しい仲間）』
通常、加算と置き換えられた乗算や、加算と置き換 一般的に言えば、乗算は加算に、累乗は乗算に置き換えらえられた指数を見つけます。その理由は、そうしたプ れています。その理由は、そうしたプロトコルが通常は整数ロトコルが通常は整数群には定義されていません 群上では定義されていませんが、第12章で論じるように楕が、第12章で論じるように楕円曲線には定義されて 円曲線上に定義されているからです。
いるからです。

誤
実際、楕円曲線を元にした暗号システムは、素数p（言い換えると、有限体Zpのs数）を法とする値のxとy座標で動作します。
点に影響して、乗算の代わりに累乗を使います

正訳注
実際、ほとんどの楕円曲線ベースの暗号方式は、素数pを法とする値 (言い換えると有限体Zpの要素) をxy座標としたものを扱います。
点を扱い、累乗ではなく乗算を使います

すべての楕円曲線暗号にはECDLP 問題が組み込ま 全ての楕円曲線暗号はECDLPに基づいています。ECDLPはれていて DLP のように難しい
DLPのように難しい
楕円曲線は少なくとも256ビットの数に拡張します。 楕円曲線は最低でも256ビットの数の上で定義されます。
ECDSAの署名検証
ECDSAの署名生成
座標(x, y)の点kGを計算します。
点kGを計算してその座標を(x, y)とします。
（電子メールアドレスのような個人的な識別子から取 IDベース暗号（電子メールアドレス等の個人的な識別子かり出した暗号化鍵を使う暗号の）本人情報を基にした ら取り出した暗号化鍵を使う暗号）のような、暗号のような、
ハイブリッドな非対称鍵暗号アルゴリズムである、 ハイブリッドな非対称暗号アルゴリズムである、秘密から対象鍵を秘密から対称鍵をランダムな数dを選んで、基点Gが定数の場合にQ = ランダムな数dを選び、基点Gを共通パラメーターとしてQ =dGを計算します。
dGを計算します。
Sから対象鍵Kを取り出します。
Sから対称鍵Kを取り出します。
楕円曲線には数種類ありますが、楕円曲線にはさまざまな種類がありますが、群の次数は小さな数の積であってはなりません、そう 群の位数は小さな数の積であってはなりません。その場でないとECDLPを解くのがとても簡単になります。
合、ECDLPを解くのが非常に簡単になってしまいます。
（曲線が2倍算に特定の式を必要としない場合、統一 （曲線が二倍算に特定の式を必要としない場合、その曲線は統一された加算法を許すと言います）
された加算法を認めていると言います）
曲線の作成者がaとbの原点を説明しないと、他10個のNIST曲線は、二項多項式で動作し、二項多項式は曲線の作成者がaとbの由来を説明しないと、他10種のNIST曲線は二進多項式で動作し、二進多項式は係数bの素性を知っており、係数bの由来を知っており、
P-256の係数bは以下のP-256の係数bは線の素性がなんらかの脆弱性を隠しているとは思っ 線の由来に脆弱性が隠されているとは考えていません。
ていません。
ほぼ2^255通りの256ビットの素数の剰余数で動作し 2^255にかなり近い256ビットの素数の剰余数で動作しまます。
す。
素性不明の定数を使っています。
由来不明の定数を使っています。
悪いランダムさのあるECDSA
ドイツのベルリンでの第27回カオス理論通信会議でfail0verflowチームに示された、2010年にゲーム機
PlayStation3で攻撃が起きたように、
入力点の有効化に失敗すると、悪いランダム性のあるECDSA
2010年にドイツのベルリンでの第27回CCCでfail0verflow
チームが示したPlayStation3への攻撃のように、

CCC:Chaos Communication Congress https://events.ccc.
de/

入力点の検証に失敗すると、

4

316

4～6

316
316

7
13

316

18～20

316

21～23

316
316

24
最終行

第13章
頁
320

位置
11

321
321
322
322

2
9
18
23～24

323
324

15
3～4

324

14～15

324

325
328
331
331

333
333

333

第14章
頁
346～347

347

348

349
349

これの残念な結果は、 実際は異なる曲線上の点を異なる係数bと加算するかもしれないので、2点の加算時に、正しい曲線で動作していることが絶対にわからない可能性があることです。
無効な曲線攻撃

二つの点の加算を行うときに、正しい曲線上で演算しているかどうか確信が持てないという残念な結果になります。なぜなら、実際には異なる係数bを使った別の曲線上の点を加算しているかもしれないからです。
不正曲線攻撃彼女は、kP = Oとなるような、比較的小さいkという低 彼女は位数が小さく、kP = Oとなる小さいkが存在するようない次数の点を選びます。
点を選びます。
結果として、Pは点のより大きな群の中の小さな小群 結果として、点の大きな群の中の小さな部分群に属するようなPが選ばれたので、結果のdBPもその小さな部分群に属しに属するように選ばれたので、結果のdBPもその小さな部分群に属していて、攻撃者がPの次数を知ってい ていて、攻撃者はPの位数を知っていれば共有された秘密
れば効率的に共有された秘密dBPを特定するのを可 dBPを効率的に特定することができます。
能にします。
これを防ぐ1つの方法は、点PとQが正しい曲線に属 これを防ぐ方法の1つは、点の座標が曲線の等式を満足すすることをその座標が曲線の等式を確実に満足する ることを確かめ、点PとQが正しい曲線に属するかどうかを検ことを確認することです。そうすることは、安全な曲線 証することです。そうすることで安全な曲線上での動作を保上で動作できるようにするだけであることを確かに 証し、このような攻撃を回避できます。
し、この攻撃を防ぎます。
無効な曲線攻撃のようなものは
こうした不正曲線攻撃は実践的な無効曲線攻撃
実践的な不正曲線攻撃誤2013年に、エンジニアはオーバーホールされたTLSの新しい暗号の脆弱性を直すのに疲れて、TLS1.3に取り組み始めました。
相互利用性があること、相互利用性があることが必要でした。

正
訳注
2013年、TLSの新しい脆弱性を直すのに疲れたエンジニア
たちは、TLSをオーバーホールしてTLS1.3に取り組み始めました。
相互運用性があること、相互利用性が必要でした。

本来、TLS1.3は成熟したTLSです。
これは人々がよく忘れるシンプルなプロトコルであり、TLSの一部です。
もしくは実体に属する

本質的には、TLS1.3は成熟したTLSであると言えます。
これはTLSの一部であることをしばしば忘れてしまうほどにシンプルなプロトコルです。
もしくは主体に属する

s: で始まる行は主題名の説明で、i: で始まる行は署 s: で始まる行は署名発行先の説明で、i: で始まる行は署名名の発行者の説明です。
発行者の説明です。
～証明書1②は証明書0に署名をした実体に属して ～証明書1②は証明書0に署名をした主体に、証明書2③はいて、証明書2③は証明書1に署名をした実体に属し 証明書1に署名をした主体に属しています。
ています。
信頼に足る実体にのみ証明書を発行せねばならず、 また信頼に足る主体にのみ証明書を発行するものでなくて
20～22
攻撃者が当事者になりすまして（例えば、正規のはなりません。そして攻撃者が当事者になりすまして（例えgoogle.comサーバーになりすますために）証明書を ば、正規のgoogle.comサーバーになりすますために）証明発行するのを防ぐために、書を発行するのを防げるよう、
23
base64で暗号化されたデータブロックとして提供され base64で符号化されたデータのブロックとして提供されま
ています。
す。
最終行
取り出された対象鍵を使って計算されます。
取り出された対称鍵を使って計算されます。
13.3-13
これら3つの特徴、ダウングレード保護、一往復ハン そうした機能のうち、ダウングレード保護、一往復ハンドシェ
イク、セッション再開の3つについて手短に説明していきま
ドシェイク、セッション再開、を手短に説明します。
す。
17～19
TLS1.3のダウングレード保護の特徴は、攻撃者がク TLS1.3のダウングレード保護機能は、攻撃者がクライアント
ライアントとサーバーに1.3よりも脆弱なバージョンの やサーバーに1.3よりも脆弱なバージョンのTLSを使わせる、
TLSを使わせる、ダウングレード攻撃に対する防御と ダウングレード攻撃に対する防御として設計されています。
して設計されていることです。
アルファベットの「オー」ではなく、数字のゼロ
図13-2(キャプ O-RTTデータ
0-RTTデータ
ション)
下から14～19 TLS1.3ハンドシェイクの間、サーバーは証明書システ TLS 1.3のハンドシェイクプロトコルでは、サーバーは証明書
ムを使ってクライアントを認証します。しかしながら、 システムを使ってクライアントに自身を認証させますが、クラクライアントは認証せずに、クライアントはハンドシェ イアントは認証されません。クライアントはハンドシェイク実
イクを行った後、TLSレコードのユーザー名とパスワー 行後にユーザー名とパスワードをTLSのレコードプロトコルでドで（Gmailのような）サーバーを元にしたアプリケー 送ることで、（Gmailのような）サーバーベースのアプリケー
ションで認証できます。クライアントが既にリモートションに認証されます。クライアントが既にリモートサービス
サービスとセッションを確立していると、TLS接続を通 とセッションを確立している場合は、TLSコネクションを通じてしてのみ送れる安全なクッキーを用いて、認証できま のみ送信できるセキュアクッキーを送ることで認証されます。
す。
下から8～最終 ある場合においては、クライアントはサーバーがクラ 場合によっては、クライアントが証明書ベースの方法（サーイアントを認証するために使うものに似た証明書を元 バーがクライアントに認証を受けるときと同様の方法）で行にしたメカニズムを使って、サーバーを認証すること サーバーに認証を受けることもできます。クライアントはクラができます。クライアントはサーバーにクライアント証 イアント証明書をサーバーに送り、サーバーはクライアント
明書を送って、クライアントを認証する前に順番にこ を認可する前にその証明書を検証します。しかしながら双の証明書を検証します。しかしながら、クライアント証 方で物事が複雑になることから、クライアント証明書が使わ
明書はクライアントとサーバー（つまり証明書発行 れることはめったにありません。クライアント側は証明書を者）の両方で物事を複雑にするので、クライアント証 システムに統合し自分の秘密鍵を保護するために複雑な操
明書はほとんど使われません。クライアントは、証明 作を行う必要があり、サーバー側も認可されたクライアント
書をシステムに統合し、秘密鍵を保護するために複 だけが証明書を受け取っていることを確認しなければならな雑な操作を実行する必要がありますが、発行者は認 いなど、さまざまな要件があるのです。
証されたクライアントのみが証明書を受け取ることを確認する必要があります。

位置
誤
正
訳注
下から2～最上 これは古典的なコンピューターでO(2n)のような指数 古典的コンピュータでO(2^n)のような指数関数的時間を要行
関数的な時間がかかるタスクを、量子コンピューター するタスクを、量子コンピュータでは多項式時間―すなわちで多項式の複雑さで行われる場合に起き、つまりkが ある定数kについてO(n^k)―で計算できるとき、指数関数的定数のときにO(nk)となります。
加速が起きていると言えます。
5～8
この計算上の問題において、関数f()は値mがある場 この計算問題では、関数f()は通常nビット文字列をランダム合にf(x) = f(y)とy = x ⊕ mを満足する2つの値xとyがあ に見えるnビット文字列に変換します。ただし、任意のx, yる場合を除いて、f()の出力がランダムに見えるよう （x≠y）についてf(x) = f(y)ならばy = x ⊕ mとなるような値mが存在します。
な、nビットの文字列をnビットの文字列に変換します。
『量子コンピューターにおける素因数分解と離散対数 『Polynomial-Time Algorithms for Prime Factorization and
2～3のための多項式時間アルゴリズム』
Discrete Logarithms on a Quantum Computer（量子コンピューターにおける素因数分解と離散対数のための多項式
時間アルゴリズム）』
下から4～5g^(ω + xω′) mod p = 1を得て、これはx = –ω / ω′から g^(ω + xω') mod p = 1となり、これは ω + xω' mod q = 0と等導くと、ω + xω′ mod q = 0と等価です。
価です。このことから、x = -ω/ω' mod qを得ます。
下から3nがpビット長である場合に、pがnビット長である場合に、

5

353

2～5

353

6～11

353

12

353
353

16
22～23

354

5～10

354

11～16

355
355
355

図14-5キャプ
ション
8
16～20

356
356

1
4

356

356
356

356

356～357

357
357
357
357
359

359

359
359
360
361

耐量子暗号の領域は、量子コンピューターで破ること 耐量子暗号の領域は、量子コンピューターでも破れない公のできない公開鍵アルゴリズムの設計に関するもの 開鍵アルゴリズムの設計に関するものです。つまり量子コン
でです。れは既製の量子コンピューターが4,096ビット ピューターに対しても安全で、既製の量子コンピュータがのRSA係数をすぐに破れてしまう将来、RSAや楕円曲 4,096ビットのRSAを短時間で破ってしまうような未来におい線を基にしたアルゴリズムは量子安全なものに置き て、RSAや楕円曲線ベースのものに取って代わっているであ換えられるということです。
ろうアルゴリズムです。
そのようなアルゴリズムは、素因数分解や離散対数 そのようなアルゴリズムは、因数分解や離散対数の問題の問題の難しさを圧倒する、ショアのアルゴリズムで効 難しさを解消するショアのアルゴリズムによって効率的に解率的に解けることが知られている難しい問題に依存 けることが知られている難問に依存していてはなりません。
するべきではありません。ブロック暗号やハッシュ関 ブロック暗号やハッシュ関数などの対称鍵アルゴリズムは、数のような対称なアルゴリズムは、量子コンピュー 量子コンピューターによって理論的安全性の半分を失うことターに直面して理論的安全性の半分だけを失います になりますが、RSAのようにひどく破られることはないでしょが、RSAのようにひどく破られてしまうことはないでう。したがって、これらは耐量子方式の基礎となりえます。
しょう。これらは、耐量子方式の基礎となるかもしれません。
以下のセクションで、コードを基にしたもの、格子を基 以下のセクションで、符号を基にしたもの、格子を基にしたにしたもの、多変量なもの、～もの、多変数なもの、～
コード
符号※用語の修正は「用語の統一」欄にまとめました。
しかし、ウェブページの平均サイズが2メガバイト前後 しかしウェブページの平均サイズが2メガバイト前後になっの場合、実際に問題ではないでしょうか？
ている時代に、これは問題になるでしょうか？
線形符号の場合、暗号化するワードはn ビットのベ 線形符号の場合、符号化するワードはnビットのベクトルvと vがn次元であれば、Gはn✕m。
クトル v として表され、暗号化は符号ワードw = vGを して表され、符号化はvにm × n行列Gを乗算して、符号ワー計算するための、vとm × n行列Gとの乗算からなりま ドw = vGを計算することから成ります（この例ではmはnよりす（この例ではmはnより大きく、これは符号ワードが も大きいため、符号ワードは元のワードよりも長くなりま
元のワードより長いことを意味しています）。値Gは、 す）。値Gが与えられた数tについて構成されているとき、受与えられた数tに対して、wのうちのtビットの誤りを受 信者はwにtビットの誤りがあっても正しいvを復号できます。
取側が正しいvにデコードできるようにできます。言い 言い換えると、tは訂正可能な誤りの最大数です。
換えると、tは訂正される可能性のある誤りの最大数です。
線形符号を使ってデータを暗号化するために、
線形符号を用いてデータを暗号化するにあたり、McEliece
McEliece暗号システムは3つの行列の秘密の組み合 暗号方式はまず3つの行列の秘密の組み合わせから成るG
わせとしてGを構成して、w = vGに1ビットの固定値で を構成し、w = vGにランダムな誤りe（1ビットの数が固定されあるランダムな値eを加算して計算することで暗号化 ている値）を加算することで暗号化します。Gは公開鍵で、行します。ここで、Gは公開鍵で、秘密鍵はG = ABCとな 列A、B、Cは秘密鍵で、G = ABCとなっています。A、B、Cをるような行列A、B、Cで構成されています。A、B、Cを 知っていればメッセージを復号し、wを復元できます（復元手
知っていることで確実にメッセージをデコードしてwを 順の説明はオンラインで見つけてください）。
読み出せます（オンラインでデコード手順の説明を見つけられます）。
s はが星形の点にもっとも近いベクトルs が星型の点にもっとも近いベクトル
短整数解（SIS）で知られています。
短整数解（SIS）問題として知られています。
SISとLWEはやや等価で、基本ベクトルを結合すること SISとLWEはある程度等価で、どちらも格子上の最近ベクトで、格子上の最近ベクトル問題(CVP)、もしくは与えら ル問題（CVP）のインスタンスとして捉えられます。これは基れた点に最も近い、格子内のベクトルを見つける問 底ベクトルを足し合わせて、与えられた点に最も近い格子
題の例と言い換えられます。図14-5の点ベクトルs上の点を探索する問題です。図14-5の点線ベクトルsは、基は、基本ベクトルvとwを結合することで、星状の点に 本ベクトルvとwを結合することで、星型の点にもっとも近い
最も近いベクトルを見つける方法を示しています。 ベクトルを見つける方法を示しています。
多変量暗号
多変数暗号
※用語の修正は「用語の統一」欄にまとめました。

未知数x1、x2、x3、x4のある方程式の、以下のシステ 未知数x1、x2、x3、x4を含む以下の連立方程式を考えてみムを考えてみましょう。
ましょう。
9～10
これらの方程式は、x4（もしくは一次元の項）のような これらの方程式はx4のような1つの未知数（すなわち一次の1つの未知数か、あるいはx2x3（二次元の項）のよう 項）と、x2x3のような2つの未知数の積（二次の項）の合計でな2つの未知数の積の項の合計で構成されていま 構成されています。
す。
システムを解くには、連立方程式を解くには、
11
方程式はすべて実数か整数だけ、あるいは有限個 方程式の範囲にはすべての実数、整数、有限個の数のセッ12～13の数です。しかしながら暗号においては、方程式は トなどがあります。しかしながら暗号学においては、方程式の範囲は通常なんらかの素数を法とする数、あるいは二進
通常、素数を法とする数か二値（0か1）です。
数（0と1）となります。
ここでの問題は、方程式のランダムな二次元システ ここでの問題は、NP困難で、ランダムな多変数二次連立方
14～17
ムが与えられた、NP困難な解を見つけることです。し 程式の解を求めることです。量子コンピューターはNP困難
たがって、多変量二次（MQ）方程式として知られるこ な問題を効率的に解けないとされているため、多変数多項の難しい問題は量子コンピューターはNP困難な問題 式（MQ）問題として知られるこの難問は、耐量子暗号の基を効率的に解けないので、耐量子システムの潜在的 礎となりえます。
な基盤になります。
下から3～最上 そのような暗号システムで、L1、N、L2はL1とL2が可 そのような暗号方式では、L1、N、L2は以下のように選ばれ
行
逆でNが方程式の二次システムである場合に、線形 ます。L1とL2は可逆な線形変換です（つまり項を乗算せず、変換となるように選ばれます（つまり、項は加算され 加算するだけの方程式からなります）。Nもまた可逆な二次
るだけで乗算されない方程式を持ちます）。これは可 連立方程式です。この構成により、三つを組み合わせた関逆でもある3つの二次システムの組み合わせを作り 数Pも可逆ですが、L1、N、L2の逆関数を知らずにPの逆関数
ますが、その逆は L1、N、L2の逆元を知らずに特定 を特定することは困難となります。
するのは困難です。
署名の検査は、署名の計算では、
2
2～3
L1、N、L2の逆元を計算します。
L1、N、L2を逆計算します。
6
攻撃者がPの逆元を計算したり、PからL1、N、L2を特 攻撃者がPの逆関数を計算したり、PからL1、N、L2を特定で定しようとすると、きるなら、一つ以上の多変量方式が安全性が破られてきまし 安全であると考えられていた複数の多変数方式が破られて
9～10
た。
きました。
9～11
Ring-LWEは、NP困難なRing-LWE問題の最も難しい ring-LWE問題の最も難しいものはNP困難かもしれないとさ例を解くのと同じぐらい原理的に破られにくい暗号シ れており、ring-LWEを活用すればその問題と同程度に破らステムを構築するために活用できるので、暗号家に れにくい暗号システムを構築できるので、暗号学者にとってとって魅力的です。
魅力的です。
これは基本的な格子の次元のように、大量のパラ 例えば基になる格子問題の次元のようなパラメーターが大
12～14メーターがある場合にだけ真実であることを意味して きい場合にのみ、真実であることを意味しています。しかしいます。しかしながら、実際には、とても少ないパラ ながら実際には、とても小さなパラメーターが使われること
メーターが使われています。
もあります。
下から7
すばらしい調査を読んでください
すばらしいサーベイを読んでください
結論として、耐量子暗号は耐量子署名よりも、危機 要点として、耐量子暗号は耐量子署名よりも危機に直面し下から2的であるということです。
ています。
実際には、耐量子方式はコードであってアルゴリズ 実際には、耐量子方式はアルゴリズムではなくコードです。
下から6
ムではなくコードです。
13～14『Quantum Computing Since Democritus)』（デモクリト 『Quantum Computing Since Democritus（デモクリトス以来
ス以来の量子計算）』の量子計算）』

6

その他
位置
裏表紙、カ
バー折り返し表紙側

索引
誤Rhoメソッド
暗号文単独攻撃者
演算モード
落とし戸付き正ρ法
単独暗号文攻撃者
暗号利用モード
トラップドア（落とし戸）付き置換

換字-転置ネットワーク
完全準同型暗号化
決定論的ディフィー・ヘルマン問題
決定論的乱数生成器
原像困難性
検索可能暗号化
幻惑攻撃
公開鍵暗号化
第一原像困難性
対称暗号化
第二原像困難性
多変量暗号
多変量二次方程式
調整可能暗号化
転置
非対称暗号化
ビットの安全性
平文（へいぶん）無効な曲線攻撃
無作為暗号化
量子乱数発生器

換字-置換ネットワーク
完全準同型暗号
決定的ディフィー・ヘルマン問題
決定論的ランダムビット生成器
原像計算困難性
検索可能暗号
目隠し攻撃
公開鍵暗号
第一原像計算困難性
対称暗号
第二原像計算困難性
多変数暗号
多変数多項式問題
調整可能暗号置換
非対称暗号
ビット安全性平文（ひらぶん）不正曲線攻撃ランダム化暗号量子乱数生成器誤認証された暗号正認証付き暗号

7