『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』

本書は公開鍵暗号や署名などの理論を基礎から詳しく解説し、 TLS1.3やHTTP/3, FIDOなどの新しい技術も紹介します。
更にブロックチェーンで注目されている秘密計算、ゼロ知識証明、量子コンピュータなど最先端の話題も扱います。

対象読者

などなど。

トピック

購入

読書会

『暗認本』読書会で本の内容の解説をしています(2021/09/30~2021/12/23)。
資料や動画、サンプルコードへのリンク一覧を『暗認本読書会』資料集にまとめました。 動画はYouTubeの暗認本読書会でも視聴できます。

目次

1章 暗号の基礎知識

01 情報セキュリティ

情報セキュリティの三要素

情報セキュリティと暗号技術

利便性とコスト

追加された要件

02 暗号

暗号とは

よい暗号と使い方

暗号の動向を知る

03 認証

パスワードによる認証

パスワード攻撃者の能力

パスワードの攻撃手法

認証の分類

認可

OAuth

04 古典暗号

シフト暗号

換字式暗号

符号化

2章 アルゴリズムと安全性

05 アルゴリズム

アルゴリズムとは

アルゴリズムのステップ数

効率のよい探索

06 安全性

O記法

ビットと表現可能な範囲

セキュリティパラメータ

07 暗号技術の危殆化

コンピュータの性能向上と暗号の安全性

運用監視暗号リストと推奨暗号リスト

危殆化の問題点

3章 共通鍵暗号

08 共通鍵暗号

共通鍵暗号とは

共通鍵暗号に求められる安全性

共通鍵暗号の種類

09 ビットと排他的論理和

1ビットの基本変換

論理積と論理和

排他的論理和

交換法則と結合法則

排他的論理和の重要な性質

10 乱数

真の乱数

コンピュータで扱う乱数

擬似乱数

擬似ランダム関数

11 ワンタイムパッド

排他的論理和とワンタイムパッド

情報理論的安全性

ワンタイムパッドの欠点

12 ストリーム暗号

ワンタイムパッドとストリーム暗号

計算量的安全性

ストリーム暗号の歴史

ナンス

ChaCha20

13 ブロック暗号

ブロック暗号

ブロック暗号の歴史

AESの概要

AESの初期設定

ラウンド関数

AES-NI

14 確率的アルゴリズム

いつでも同じ暗号文は危険

確率的アルゴリズム

15 暗号化モード

ECB(Electronic CodeBook)モード

CBC(Cipher Block Chaining)モード

CTR(CounTeR)モード

CBCモードとCTRモードの比較

CBCモードに対する攻撃

16 ディスクの暗号化

TPM

ディスクの構造

XTS-AESの概要

XTS-AESの暗号化

XTS-AESの安全性

自己暗号化ドライブ

17 暗号文の改竄とリプレイ攻撃

暗号文の改竄

リプレイ攻撃

4章 公開鍵暗号

18 鍵共有

現代暗号の始まり

ベキ乗

DH鍵共有

DH鍵共有の安全性

DLPと一方向性関数

ベキ乗の計算方法

19 有限体と拡大体

有限体

拡大体

20 公開鍵暗号

公開鍵暗号の概念

共通鍵暗号との違い

強秘匿性と頑強性

ハイブリッド暗号

21 RSA暗号

RSA暗号の具体例

RSA暗号の作り方

RSA暗号の安全性

22 OpenSSLによるRSA暗号の鍵の作り方

OpenSSL

RSA暗号の秘密鍵と公開鍵の作成方法

秘密鍵と公開鍵の確認方法

Pythonによる鍵の設定方法

PythonによるRSA暗号の動作確認

23 楕円曲線暗号

楕円曲線

楕円曲線上の演算

楕円曲線の加算公式

ECDHPとECDLP

ECDH鍵共有

楕円曲線暗号の特長

24 中間者攻撃

ECDH鍵共有への中間者攻撃

公開鍵暗号への中間者攻撃

5章 認証

25 ハッシュ関数

指紋とハッシュ関数

ハッシュ関数とは

誕生日パラドックス

ハッシュ関数の歴史

パスワードとハッシュ関数

パスワードの安全な保存方法

ファイルのパスワード暗号化

26 SHA-2とSHA-3

SHA-2

SHA-3

安全性

27 SHA-1の衝突

SHA-1への攻撃の歴史

衝突したPDFとSHA-1のアルゴリズム

衝突困難性の破り方

PDFに2個のJPEGを埋め込む方法

28 メッセージ認証符号

MACのアルゴリズム

完全性と秘匿性

MACの安全性

MACの構成法

29 署名

紙の署名とデジタル署名

署名のモデル

署名の安全性

MACと署名

ECDSA

公開鍵認証

FIDO

30 サイドチャネル攻撃

電力解析攻撃

コールド・ブート攻撃

31 タイムスタンプ

否認防止と署名の失効

ハッシュ値の連鎖によるタイムスタンプ

署名を用いたタイムスタンプ

日本のタイムスタンプ

32 ブロックチェーンとビットコイン

ブロックチェーン

ビットコイン

トランザクション

二重送金の防止とマイニング

6章 公開鍵基盤

33 公開鍵基盤

互いに依存する暗号技術

信用の輪

公開鍵基盤と認証局

フィンガープリント

34 公開鍵証明書の失効

証明書失効リスト

CRLの問題点

OCSP

OCSPステープリング

その他の方法

35 公開鍵証明書と電子証明書の発行方法

ドメイン名

ドメイン認証

ドメイン認証の問題点

組織認証

拡張認証

署名の電子証明書

36 証明書の透明性

問題のある認証局や証明書

証明書の透明性

7章 TLS

37 TLS

HTTPとHTTPS

SSL/TLSの歴史

TLS 1.3の特長

ハンドシェイクの効率化

暗号化アルゴリズムの整備

新しい鍵導出アルゴリズム

形式手法による安全性検証

38 認証付き暗号

秘匿性と完全性

AEADのアルゴリズム

AES-GCM

ChaCha20-Poly1305

39 前方秘匿性

盗聴と秘密鍵の漏洩

前方秘匿性

8章 ネットワークセキュリティ

40 DNS

権威DNSサーバとキャッシュDNSサーバ

キャッシュ・ポイズニング

DNSSEC

パブリックDNSサーバ

DoTとDoH

ESNIとECH

HPKE

41 メール

SMTPとPOP3

S/MIME

Webメール

42 VPN

インターネットプロトコルスイート

データ構造

LANからインターネットへ

VPN

VPNの種別

IPsec

43 HTTP/3

HTTP/2

QUIC

HTTP/3

44 無線LAN

無線LANの概要

スプーフィングと認証解除攻撃

WEP

WPA2

KRACK

WPA3

9章 高機能な暗号技術

45 準同型暗号

準同型

加法準同型暗号

完全準同型暗号

準同型暗号の種類と用途

46 秘密計算

MPC

秘密分散

VSSとDKGとBLS署名

3PC

3PCの詳細

47 ゼロ知識証明

動機

ゼロ知識証明

ゼロ知識証明の性質

ゼロ知識証明とブロックチェーン

48 量子コンピュータ

量子ビットと観測

量子ゲート

CNOTゲートと量子もつれ

量子コンピュータにおける計算

量子超越性

暗号技術に対する影響

量子ゲート方式と量子アニーリング方式

量子鍵配送

耐量子計算機暗号

著者

光成滋生@herumi(herumi@nifty.com)