関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、現代の暗号技術に関して「実践志向で現実に即したアプローチ」をとり、実際の利用に関連させた解説を行っていきます。ソースコード例を提供し実際のバグや失敗例を記述。暗号学の中心となるその考え方を理解できるようになります。14章から構成され、大まかに4つの部分に分けられます。各章は互いに独立していますが、まず[基礎]を読むことをお勧めします。
[基礎]
第1章:「暗号化」ペンと紙による弱い暗号からランダム化された強力な暗号まで、安全な暗号の概念を紹介。
第2章:「ランダム性」疑似乱数発生器の動作方法、安全のために必要なこと、そして安全な使い方を説明。
第3章:「暗号の安全性」安全性の理論的、実践的概念を論じて証明可能な安全性と確率的安全性を比較する。
[対称暗号]
第4章:「ブロック暗号」もっとも有名な「高度暗号化標準(AES)」に焦点を当て、ブロックごとにメッセージを処理する暗号を扱う。
第5章:「ストリーム暗号」メッセージをXORして暗号化した、ランダムに見えるビット列のストリームを生み出す暗号を提示。
第6章:「ハッシュ関数」秘密鍵と連動せず、ブロックを構成するもっともユビキタスな暗号となった唯一のアルゴリズムについて。
第7章:「鍵付きハッシュ」ハッシュ関数と秘密鍵が結び付いたときに起こることと、それがいかにしてメッセージの認証に役立つのかを説明。
第8章:「認証付き暗号」標準AES-GCMのような例とともに、一部のアルゴリズムがどのようにしてメッセージの暗号化と認証の両方を行うのかを示す。
[非対称暗号]
第9章:「難問(困難な計算問題)」計算複雑性の概念を使って、公開鍵暗号の背後にある基本概念を展開。
第10章:「RSA:単純な算術演算で安全な暗号化と署名の組み合わせを構築するために、素因数分解問題を利用する。
第11章:「ディフィー・ヘルマン」非対称暗号を鍵共有の概念(秘密でない値だけを使って、二者間での秘密の値を成立させる)。
第12章:「楕円曲線」最速の非対称暗号である楕円曲線暗号を軽く紹介。
[応用]
第13章:「TLS」ネットワークセキュリティの最重要プロトコルである、TLSに焦点を当てる。
第14章:「量子と耐量子」量子コンピューティングと新種の暗号の概念。
本書の最大の目的は、読者の皆さんの暗号学へのワクワクを引き出しつつ、その基本概念を教示することです。著者はあなたの仕事を楽にするために道を切り拓き、ロープとピッケルを提供しますが、実際に登るのはあなた自身です。本書の考え方を学ぶには努力が必要ですが、最後には報われるでしょう。
no starch press『Serious Cryptography: A Practical Introduction to Modern Encryption』の翻訳書。
書誌情報
- 著者: Jean-Philippe Aumasson, Smoky, IPUSIRON
- ページ数: 368ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
Jean-Philippe Aumasson
スイスに拠点を置く国際的なサイバーセキュリティ企業であるKudelski Security社の主席研究員。暗号と暗号解析の分野で40以上の研究論文を執筆し、広く使われているハッシュ関数BLAKE2とSipHashを設計した。情報セキュリティ会議で定期的に講演を行い、Black Hat、DEF CON、Troopers、Infiltrateで発表している。
Smoky
平成元年創業のゲーム会社の代表、他数社の代表や役員を兼任。サイバーセキュリティと人工知能の研究がライフワークで生涯現役エンジニアを標榜中。愛煙家で超偏食。2020年春から社会人院生で、人工知能の病理診断への応用を研究中。
Twitter:@smokyjp
Webサイト: https://www.wivern.com/
IPUSIRON
1979年福島県相馬市生まれ。2001年に『ハッカーの教科書』(データハウス)を上梓。情報セキュリティと物理的セキュリティを総合的な観点から研究しつつ、執筆を中心に活動中。主な書著に『ハッキング・ラボのつくりかた』『暗号技術のすべて』(翔泳社)、『ハッカーの学校』『ハッカーの学校 個人情報調査の教科書』『ハッカーの学校 鍵開けの教科書』(データハウス)がある。
Twitter:@ipusiron
Webサイト: Security Akademeia(https://akademeia.info/)
目次
はじめに
- 本書のアプローチ
- 本書の対象読者
- 本書の構成
- 略語
1章 暗号化
- 1.1 基本
- 1.2 古典暗号
- 1.3 暗号の仕組み
- 1.4 完璧な暗号化:ワンタイムパッド
- 1.5 暗号化の安全性
- 1.6 非対称暗号化
- 1.7 暗号が暗号化以上のことをする場合
- 1.8 失敗はいかにして生じるのか
- 1.9 参考文献
2章 ランダム性
- 2.1 ランダム? ランダムではない?
- 2.2 確率分布としてのランダム性
- 2.3 エントロピー:不確実性の尺度
- 2.4 乱数生成器(RNG)と疑似乱数生成器(PRNG)
- 2.5 現実世界のPRNG Unixベースのシステムで生成されるランダムビット
- 2.6 失敗はいかにして生じるのか
- 2.7 参考文献
3章 暗号の安全性
- 3.1 不可能の定義
- 3.2 安全性の定量化
- 3.3 安全性の達成
- 3.4 鍵の生成
- 3.5 失敗はいかにして生じるのか
- 3.6 参考文献
4章 ブロック暗号
- 4.1 ブロック暗号とは?
- 4.2 ブロック暗号の構築方法
- 4.3 高度暗号化標準(AES)
- 4.4 AESの実装
- 4.5 演算モード
- 4.6 失敗はいかにして生じるのか
- 4.7 参考文献
5章 ストリーム暗号
- 5.1 ストリーム暗号の動作方法
- 5.2 ハードウェア指向のストリーム暗号
- 5.3 ソフトウェア指向のストリーム暗号 RC4
- 5.4 失敗はいかにして生じるのか
- 5.5 参考文献
6章 ハッシュ関数
- 6.1 安全なハッシュ関数
- 6.2 ハッシュ関数を構築する
- 6.3 ハッシュ関数のSHAファミリー SHA-1
- 6.4 BLAKE2ハッシュ関数
- 6.5 失敗はいかにして生じるのか
- 6.6 参考文献
7章 鍵付きハッシュ
- 7.1 メッセージ認証コード(MAC)
- 7.2 疑似ランダム関数(PRF)
- 7.3 鍵付きでないハッシュから鍵付きハッシュを作る
- 7.4 ブロック暗号から鍵付きハッシュを作る:CMAC
- 7.5 専用MAC設計 Poly1305
- 7.6 失敗はいかにして生じるのか
- 7.7 参考文献
8章 認証付き暗号
- 8.1 MACを使う認証付き暗号
- 8.2 認証付き暗号
- 8.3 AES-GCM:認証付き暗号標準
- 8.4 OCB:GCMよりも高速な認証付き暗号
- 8.5 SIV:最も安全な認証付き暗号?
- 8.6 置換ベースのAEAD
- 8.7 失敗はいかにして生じるのか
- 8.8 参考文献
9章 難問
- 9.1 計算困難性
- 9.2 複雑性のクラス
- 9.3 素因数分解問題
- 9.4 離散対数問題(DLP)
- 9.5 失敗はいかにして生じるのか
- 9.6 参考文献
10章 RSA
- 10.1 RSAの背景にある数学
- 10.2 現実世界のPRNG
- 10.3 RSAの鍵生成と安全性
- 10.4 RSAによる暗号化
- 10.5 RSAによる署名
- 10.6 RSAの実装
- 10.7 失敗はいかにして生じるのか
- 10.8 参考文献
11章 ディフィー・ヘルマン
- 11.1 ディフィー・ヘルマン関数
- 11.2 ディフィー・ヘルマン問題
- 11.3 鍵共有プロトコル
- 11.4 ディフィー・ヘルマンプロトコル
- 11.5 失敗はいかにして生じるのか
- 11.6 参考文献
12章 楕円曲線
- 12.1 楕円曲線とは何か?
- 12.2 ECDLP問題
- 12.3 楕円曲線に対するディフィー・ヘルマン鍵共有
- 12.4 曲線の選択
- 12.5 失敗はいかにして生じるのか
- 12.6 参考文献
13章 TLS
- 13.1 対象アプリケーションと必要条件
- 13.2 TLSプロトコルスイート
- 13.3 TLS 1.2を改良したTLS 1.3
- 13.4 TLSの安全性の強度
- 13.5 失敗はいかにして生じるのか
- 13.6 参考文献
14章 量子と耐量子
- 14.1 量子コンピューターの動作の仕組み
- 14.2 量子加速
- 14.3 量子コンピューターを構築するのはなぜそれほど難しいのか?
- 14.4 耐量子暗号アルゴリズム
- 14.5 失敗はいかにして生じるのか
- 14.6 参考文献