暗号技術のすべて


暗号技術のすべて


翔泳社


著者:IPUSIRON


まえがき
本書の特徴
目次
ダウンロード特典について

CHAPTER 1 セキュリティと暗号技術
1.1 情報セキュリティの構成要素
1.1.1 情報セキュリティの6要素
1.1.2 6要素と暗号技術の関係
1.2 セキュリティを実現する暗号技術
1.2.1 暗号の基礎技術
1.3 暗号技術のアルゴリズムを意識する
1.3.1 アルゴリズムを分けて考える
1.3.2 暗号技術をアルゴリズムとしてとらえる理由
1.3.3 本書におけるアルゴリズムの表現

CHAPTER 2 古典暗号
2.1 古典暗号の概要
2.1.1 古典暗号とは
2.1.2 古典暗号の平文空間
2.2 シーザー暗号
2.2.1 シーザー暗号とは
2.2.2 シーザー暗号のアルゴリズム
2.2.3 シーザー暗号の改良
2.3 コード
2.3.1 コードとは
2.3.2 コードのアルゴリズム
2.3.3 コードの解読
2.4 スキュタレー暗号
2.4.1 スキュタレー暗号とは
2.4.2 スキュタレー暗号のアルゴリズム
2.4.3 すきゅレター暗号の解読
2.5 転置式暗号
2.5.1 転置式暗号とは
2.5.2 転置式暗号のアルゴリズム
2.5.3 転置式暗号の解読
2.6 単一換字式暗号
2.6.1 換字式暗号とは
2.6.2 単一換字式暗号のアルゴリズム
2.6.3 単一換字式暗号の鍵数
2.6.4 アルベルティの暗号円盤
2.6.5 頻度分析による暗号解読
2.6.6 頻度分析への対策
2.7 多表式暗号
2.7.1 多表式暗号とは
2.7.2 トマス・ジェファーソンの暗号筒
2.7.3 ヴィジュネル暗号
2.7.4 多表式暗号の解読
2.7.5 ヴィジュネル暗号の改良

CHAPTER 3 共通鍵暗号
3.1 古典暗号から現代暗号へ
3.1.1 現代暗号の発展
3.2 共通鍵暗号の概要
3.2.1 共通鍵暗号とは
3.3 共通鍵暗号の定義
3.3.1 共通鍵暗号の構成
3.4 共通鍵暗号の仕組み
3.4.1 共通鍵暗号のやり取り
3.4.2 共通鍵暗号の性質
3.4.3 共通鍵暗号の平文空間と暗号文空間
3.5 共通鍵暗号の安全性
3.5.1 共通鍵暗号の設計方針
3.5.2 共通鍵暗号の攻撃モデル
3.5.3 共通鍵暗号の解読モデル
3.5.4 安全な共通鍵暗号等鍵全数探索攻撃
3.6 共通鍵暗号の分類
3.6.1 ストリーム暗号
3.6.2 ブロック暗号
3.7 バーナム暗号
3.7.1 パーナム暗号
3.7.2 排他的論理和
3.7.3 1ビットの共通鍵暗号
3.7.4 パーナム暗号の定義
3.7.5 パーナム暗号の計算で遊ぶ
3.7.6 パーナム暗号の安全性
3.7.7 パーナム暗号の死角を探る
3.8 ストリーム暗号
3.8.1 ストリーム暗号とは
3.8.2 ストリーム暗号の定義
3.8.3 ストリーム暗号の安全性
3.8.4 ストリーム暗号の死角を探る
3.9 ブロック暗号
3.9.1 ブロック暗号の定義
3.9.2 ブロック暗号の暗号構造
3.9.3 ブロック暗号の安全性
3.9.4 ブロック暗号に対する全面的攻撃
3.9.5 ブロック暗号に対する識別攻撃
3.9.6 セキュリティマージン
3.9.7 ブロック暗号の処理時間
3.10 〈ブロック暗号〉DES
3.10.1 DESの概要
3.10.2 DESの定義
3.10.3 DESの死角を探る
3.10.4 S-DES
3.11 〈ブロック暗号〉トリプルDES
3.11.1 トリプルDESとは
3.11.2 トリプルDESの定義
3.11.3 トリプルDESの特徴
3.11.4 トリプルDESの改良
3.12 〈ブロック暗号〉AES
3.12.1 AESとは
3.12.2 AESの種類
3.12.3 AESの定義
3.12.4 AESの特徴
3.12.5 AESの安全性
3.13 ブロック暗号の利用モード
3.13.1 利用モードとは
3.13.2 暗号化モードとは
3.13.3 暗号化モードの定義
3.13.4 暗号化モードの安全性
3.13.5 どの暗号化モードを採用するか
3.14 〈暗号化モード〉ECBモード
3.14.1 ECBモードとは
3.14.2 ECBモードの定義
3.14.3 ECBモードの死角を探る
3.15 〈暗号化モード〉CBCモード
3.15.1 CBCモードとは
3.15.2 CBCモードの定義
3.15.3 CBCモードの特徴
3.15.4 CBCモードの死角を探る
3.16 〈暗号化モード〉CFBモード
3.16.1 CFBモードとは
3.16.2 CFBモードの定義
3.16.3 CFBモードの特徴
3.17 〈暗号化モード〉OFBモード
3.17.1 OFBモードとは
3.17.2 OFBモードの定義
3.17.3 OFBモードの特徴
3.18 〈暗号化モード〉CTRモード
3.18.1 CTRモードとは
3.18.2 CTRモードの定義
3.18.3 CTRモードの特徴
3.18.4 CTRモードの死角を探る
3.18.5 CTRモードとパーナム暗号

CHAPTER 4 公開鍵暗号
4.1 公開鍵暗号の概要
4.1.1 公開鍵暗号とは
4.2 公開鍵暗号の定義
4.2.1 公開鍵暗号の構成
4.2.2 公開鍵暗号の仕組み
4.2.3 公開鍵暗号の性質
4.3 公開鍵暗号の安全性
4.3.1 公開鍵暗号の攻撃モデル
4.3.2 公開鍵暗号の解読モデル
4.3.3 公開鍵暗号の安全性の関係
4.3.4 安全性の定式化
4.4 公開鍵暗号に対する攻撃
4.4.1 公開鍵暗号に対する攻撃の分類
4.4.2 公開鍵のすり替え
4.4.3 全数探索攻撃
4.5 RSA暗号
4.5.1 RSA暗号とは
4.5.2 RSA暗号を理解するための数学知識
4.5.3 RSA暗号の定義
4.5.4 RSA暗号の計算で遊ぶ
4.5.5 RSA暗号に対する攻撃
4.5.6 素数の生成
4.5.7 RSA暗号の死角を探る
4.5.8 RSA暗号の効率化
4.6 ElGamal暗号
4.6.1 ElGamal暗号とは
4.6.2 ElGamal暗号を理解するための数学知識
4.6.3 ElGamal暗号の定義
4.6.4 ElGamal暗号の計算で遊ぶ
4.6.5 ElGamal暗号の死角を探る
4.6.6 ElGamal暗号の改良
4.7 一般ElGamal暗号
4.7.1 一般ElGamal暗号とは
4.7.2 一般ElGamal暗号を理解するための数学知識
4.7.3 離散対数問題と群
4.7.4 一般ElGamal暗号の定義
4.7.5 一般ElGamal暗号の計算で遊ぶ
4.7.6 一般ElGamal暗号の死角を探る
4.8 Rabin暗号
4.8.1 Rabin暗号とは
4.8.2 Rabin暗号を理解するための数学知識
4.8.3 Rabin暗号の定義
4.8.4 Rabin暗号の計算で遊ぶ
4.8.5 Rabin暗号に対する攻撃
4.8.6 Rabin暗号の死角を探る
4.9 RSA-OAEP
4.9.1 RSA-OAEPとは
4.9.2 RSA-OAEPの定義
4.9.3 RSA-OAEPの計算で遊ぶ
4.9.4 RSA-OAEPに対する攻撃
4.9.5 RSA-OAEPの効率性
4.10 楕円ElGamal暗号(楕円曲線暗号)
4.10.1 楕円ElGamal暗号とは
4.10.2 楕円ElGamal暗号を理解するための数学知識
4.10.3 楕円ElGamal暗号の定義
4.10.4 楕円ElGamal暗号の計算で遊ぶ
4.10.5 楕円ElGamal暗号の死角を探る
4.10.6 楕円曲線上のペアリング
4.11 IDベース暗号
4.11.1 IDベース暗号とは
4.11.2 IDベース暗号の定義
4.11.3 IDベース暗号の仕組み
4.11.4 IDベース暗号の死角を探る
4.11.5 Boneh-Franklin IDベース暗号の定義
4.11.6 Boneh-Franklin IDベース暗号の計算で遊ぶ
4.11.7 Boneh-Franklin IDベース暗号の死角を探る

CHAPTER 5 ハッシュ関数
5.1 ハッシュ関数の概要
5.1.1 ハッシュ関数とは
5.2 ハッシュ関数の安全性
5.2.1 理想的なハッシュ関数
5.2.2 ハッシュ関数の標準的な安全性
5.2.3 衝突ペアが求まる条件と確立
5.2.4 3つの安全性を破る為の計算回数
5.2.5 その他の安全性
5.3 ハッシュ関数の応用
5.3.1 データ改ざんの検出
5.3.2 暗号技術の構成要素としての利用
5.4 ハッシュ関数の基本設計
5.4.1 安全なハッシュ関数に必要な処理
5.4.2 撹拌処理を実現するということ
5.4.3 圧縮処理と一方向性を同時に実現するということ
5.5 反復型ハッシュ関数
5.5.1 反復型ハッシュ関数とは
5.5.2 圧縮関数
5.5.3 MD変換
5.5.4 圧縮関数の構成方法
5.5.5 反復型ハッシュ関数と圧縮関数の安全性
5.6 代用的なハッシュ関数
5.6.1 MD4/MD5
5.6.2 SHA-1/SHA-2
5.6.3 SHA-3
5.7 ハッシュ関数への攻撃
5.7.1 誕生日攻撃を超える衝突攻撃
5.7.2 伸長攻撃

CHAPTER 6 メッセージ認証コード
6.1 メッセージ認証コードの概要
6.1.1 メッセージ認証の必要性
6.1.2 メッセージ認証コードの仕組み
6.1.3 メッセージ認証コードの設計方針
6.2 メッセージ認証コードの課題
6.2.1 メッセージ認証コードにできないこと
6.2.2 再送攻撃
6.3 メッセージ認証コードの安全性
6.3.1 メッセージ認証コードにおける安全性とは
6.3.2 選択メッセージ攻撃に対する偽造不可能性
6.3.3 疑似ランダム関数との識別不可能性
6.4 CBC-MAC
6.4.1 CBC-MACとは
6.4.2 CBC-MACの仕組み
6.4.3 CBC-MACの死角を探る
6.5 EMAC
6.5.1 EMACとは
6.5.2 EMACの仕組み
6.5.3 EMACの死角を探る
6.6 CMAC
6.6.1 CMACとは
6.6.2 CMACの仕組み
6.6.3 CMACの死角を探る
6.7 HMAC
6.7.1 HMACとは
6.7.2 HMACの仕組み
6.7.3 HMACの死角を探る
6.8 認証暗号
6.8.1 認証暗号とは
6.8.2 暗号化-and-MAC
6.8.3 暗号化-then-MAC
6.8.4 MAC-then-暗号化
6.8.5 認証付暗号化モード

CHAPTER 7 デジタル署名
7.1 デジタル署名の概要
7.1.1 デジタル署名とは
7.2 デジタル署名の定義
7.2.1 デジタル署名の構成
7.2.2 デジタル署名の仕組み
7.2.3 デジタル署名の性質
7.3 デジタル署名と公開鍵暗号の関係
7.3.1 デジタル署名と危殆化
7.3.2 公開鍵暗号からデジタル署名を作れるか
7.4 デジタル署名の安全性
7.4.1 安全なデジタル署名とは
7.4.2 デジタル署名の攻撃の種類
7.4.3 デジタル署名の偽造の種類
7.4.4 デジタル署名の安全性レベル
7.5 デジタル署名に対する攻撃
7.5.1 検証鍵の正当性と構成部品の安全性
7.5.2 中間者攻撃
7.5.3 ハッシュ関数を用いたデジタル署名に対する攻撃
7.6 RSA署名
7.6.1 RSA署名とは
7.6.2 RSA署名の定義
7.6.3 RSA暗号とRSA署名のアルゴリズムの比較
7.6.4 RSA署名の計算で遊ぶ
7.6.5 RSA署名の死角を探る
7.6.6 RSA署名の改良
7.7 RSA-FDH署名
7.7.1 RSA-FDH署名とは
7.7.2 RSA-FDH署名の定義
7.7.3 RSA-FDH署名の計算で遊ぶ
7.7.4 RSA-FDH署名の死角を探る
7.8 ElGamal署名
7.8.1 ElGamal署名とは
7.8.2 ElGamal署名の定義
7.8.3 ElGamal署名の計算で遊ぶ
7.8.4 ElGamal署名の死角を探る
7.8.5 ElGamal署名の一般化
7.9 Schnorr署名
7.9.1 Schnorr署名とは
7.9.2 Schnorr署名の定義
7.9.3 Schnorr署名の計算で遊ぶ
7.9.4 Schnorr署名の死角を探る
7.10 DSA署名
7.10.1 DSA署名とは
7.10.2 DSA署名の定義
7.10.3 DSA署名の計算で遊ぶ
7.10.4 DSA署名の死角を探る
7.11 その他の署名
7.11.1 メッセージ復元型署名
7.11.2 使い捨て鍵署名
7.11.3 否認不可署名
7.11.4 故障停止署名
7.11.5 ブラインド署名
7.11.6 グループ署名
7.11.7 リンク署名
7.11.8 検証者指定署名
7.11.9 代理署名
7.11.10 フォワード安全署名

CHAPTER 8 鍵と乱数
8.1 鍵の配送
8.1.1 鍵を安全に配送する
8.1.2 事前に鍵を直接渡す
8.1.3 鍵配送センタの力を借りる
8.1.4 共通鍵暗号による鍵共有
8.1.5 公開鍵暗号による鍵共有
8.1.6 Diffie-Hellmanの鍵共有
8.1.7 Station-to-Stationプロトコルの鍵共有
8.1.8 楕円曲線上のDiffie-Hellmanの鍵共有
8.1.9 ハイブリッド暗号
8.2 鍵管理
8.2.1 鍵管理の重要性
8.2.2 鍵生成
8.2.3 鍵の保存
8.2.4 鍵の寿命
8.2.5 鍵の廃棄
8.3 PKI(公開鍵基盤)
8.3.1 公開鍵の正当性
8.3.2 フィンガープリントによる公開鍵の正当性確認
8.3.3 信頼の輪モデルによる公開鍵の正当性確認
8.3.4 認証局モデルによる公開鍵の正当性確認
8.3.5 認証局
8.4 リポジトリ
8.4.1 リポジトリとは
8.5 電子証明書
8.5.1 電子証明書とは
8.5.2 証明書のフォーマット
8.5.3 証明書の種類
8.5.4 証明書の信頼性
8.5.5 証明書に対する攻撃
8.6 乱数
8.6.1 ランダム
8.6.2 乱数と乱数系列
8.6.3 乱数の同期
8.6.4 乱数の性質
8.6.5 疑似乱数と真性乱数
8.7 疑似乱数生成器
8.7.1 疑似乱数生成器とは
8.7.2 疑似乱数生成器の原理
8.7.3 線形合同法
8.7.4 線形漸化式
8.7.5 カーネル内蔵の乱数生成器
8.7.6 ハードウェア乱数生成器を体験する
8.7.7 計算量的に安全な疑似乱数生成器

CHAPTER 9 その他の暗号トピック
9.1 ゼロ知識証明プロトコル
認証プロトコルとは
ゼロ知識証明プロトコルとは
ゼロ認識証明プロトコルの性質
離散対数問題の困難性にもどづくゼロ知識証明プロトコル
Schnorrの証明プロトコル
対話証明から非対話証明への変換
非対話証明からデジタル署名への変換
9.2 秘密分散共有法
秘密分散共有法とは
秘密分散共有法の定義
満場一致法を採用した秘密分散共有法
(k,n)しきい値法
9.3 電子透かし
電子透かしとは
人が識別できない情報を埋め込む理由
電子透かしの仕組み
電子透かしの実現
電子透かしの要件
電子透かしの種類
電子透かしで実現できる技術
秘密通信
9.4 SSL
SSLとは
SSL通信の仕組み
9.5 OpenSSL
OpenSSLとは
OpenSSLで共通鍵暗号を体験する
OpenSSLで公開鍵暗号を体験する
OpenSSLでデジタル証明を体験する
9.6 ビットコイン
ビットコインと暗号
ビットコインの単位と価値
P2Pネットワーク
ウォレット
ビットコインアドレス
ブロックチェーン
マイニング

巻末付録 補足資料

参考文献
索引

書籍目次

Posted by shi-n