この記事は EAGLYS Advent Calendar 2024 の1日目の記事です
突貫で書いてしまった部分もあるので、大いに誤りを含む可能性があります。誤字・脱字レベルでも構いませんので、ご指摘ください。
また、予告なしに内容の加筆や構成の変更を行うことがありますが、読みやすくするためのものですので、ご容赦ください
自己紹介
秘密計算のスタートアップで働いている社会人2年目です
普段は、秘密計算の研究や社会実装を行なっています
最近は、外部に向けた勉強会もやっています
近々、第2回が開催されますので、皆さん是非ご参加ください
第1回 EAGLYS暗号勉強会
学生時代は、耐量子計算機暗号(特に符号ベース暗号)を研究していました
今でも細々と続けています
Qiita だけでなく、X や Zenn でも活動しています、もしよろしければ
X のアカウント
Zenn のアカウント
はじめに
アドカレ恒例の書籍レビュー記事なんですが、今年は冊数が多いので、1つの記事にまとめて書くことにします
和書は全部で5冊あり、これは全て購入した上でレビューを書いています
あくまで一個人の感想なので、実際に手に取ってみてから決めるのが良いと思います
書籍記事は書くのが楽なので、本当はこれだけで5本ぐらい稼ぎたい・・・
過去記事を見たい方は↓から
2021
書籍『耐量子計算機暗号』の紹介
書籍『データ解析におけるプライバシー保護』の紹介
書籍『セキュリティエンジニアのための機械学習』の紹介
2022
書籍『現代暗号技術入門』の紹介
書籍『暗号から学ぶ代数学』の紹介
書籍『社会に最先端の数学が求められるワケ』の紹介
和書
なんと今年は暗号に関する和書が5冊も出版された(珍しい?)年でした
バリバリの理論から実装まで幅広く揃っているので、きっと探している本があるかもしれませんね(他人事)
暗号の理論と技術 量子時代のセキュリティ理解のために(2024/05/22 出版)
國廣,安田,水木,高安,高島,米山,大原,江村: ``暗号の理論と技術 量子時代のセキュリティ理解のために'',講談社 サイエンティフィック,2024.
目次
1章 暗号技術の基礎
2章 現代の暗号技術を支える数学
3章 カードベース暗号
4章 格子理論を用いた暗号攻撃
5章 量子計算基礎とその暗号への応用
6章 耐量子計算機暗号
7章 形式手法による安全性検証
8章 秘密計算
9章 証明可能安全性と高機能暗号
レビュー
話題の幅広さ:☆☆☆☆☆
カードベース暗号, 形式手法など他の書籍では中々触れられない話題も扱っていて、すごく読みやすいと思います
元ネタになった公開講座を受けたことがあるのですが、万人におすすめ、というより、各分野の入門としておすすめという印象です
とはいいつつも、数学に抵抗がなければ、これを1冊目にしてもいいかもです
ちなみに、いくつかサンプルプログラムが含まれていますが、少し調べた感じ、どこかしらのサイトに掲載されているわけではなさそうでした
暗号理論入門(2024/08/30 出版)
安永: ``暗号理論入門'',森北出版,2024.
目次
第1章 情報を隠す
第2章 秘匿とは
第3章 計算量的な安全性
第4章 擬似ランダム
第5章 複数回の暗号化
第6章 ランダム関数のような関数
第7章 メッセージの認証
第8章 整数論にもとづく暗号
第9章 暗号文を作り変える
第10章 ハッシュ関数とランダムオラクル
第11章 計算の理論と暗号
第12章 情報理論的なテクニック
第13章 入力を隠して計算
第14章 差分プライバシ
第15章 ブロックチェーン
レビュー
演習問題の豊富さ:☆☆☆☆☆
演習問題が各章に載っているので、問題を解いて理解を深めたい方向けです
しかも巻末に解答は載っています・・・とは言いつつも、安全性証明に関するものは略解なので、自分で細部まで埋めるようにした方がいいと思います
そのうち、この本での勉強会・自主ゼミがどこかで開かれそう(もうあるのかな?)ですし、そういう意味で今回の中で最も勧められます、厚すぎずでちょうどいいです
Pythonで学ぶ暗号理論(2024/10/15 出版)
神永,吉川: ``Pythonで学ぶ暗号理論'',コロナ社,2024.
目次
1. 共通鍵暗号
2. ブロック暗号の基礎
3. 現代のブロック暗号と暗号利用モード
4. ブロック暗号に対する差分解読法・線形解読法
5. ハッシュ関数とメッセージ認証子
6. ハッシュ関数の衝突シミュレーション
7. RSA暗号とRSA電子署名
8. RSA暗号の実装アルゴリズム
9. 素数生成
10. RSA暗号に対する攻撃
11. 平方剰余とラビン暗号
12. 楕円曲線と楕円曲線上の離散対数問題
13. 楕円曲線の暗号への応用
レビュー
プログラムの豊富さ:☆☆☆☆☆
CTF の Crypto でよく使われる(らしい)pycryptodome ライブラリを使って、コードを説明しています
必要な事前知識こそ書かれてるものの、かなり最低限なので、ある程度の理論を理解している人向けかな・・・?という印象です
1冊目というより2冊目向きかもしれません
ちょっとぶ厚めなのかなと思っていたら、そんなことなかったです
(とはいっても少し大判でした、プログラムを載せる都合で仕方ないんですかね)
ちなみに zip 形式でサンプルプログラム(.py, .ipynb)が添付されています
https://www.coronasha.co.jp/np/resrcs/docs.html?goods_id=8353
現代暗号理論(2024/10/17 出版)
高木: ``現代暗号理論'',岩波数学業書,2024.
目次
1 現代暗号基本技術
2 RSA暗号
3 離散対数問題ベース暗号
4 耐量子計算機暗号
5 格子暗号
レビュー
見た目:☆×∞
*岩波数学叢書なので、装丁がカッコ良すぎます
とにかくかっこいい
目次を見るとわかるように、大きく分けると、RSA暗号・離散対数問題ベース暗号・格子暗号の3つがメインになります
攻撃アルゴリズムってたくさんありすぎて、まとめるのめんどくさいんですよね・・・
なんですが、この本を読めば一発で、各テーマに様々なアルゴリズムが記載されており、安全性評価の歴史の一端を感じることができます
*もちろん網羅しているわけではないと思うので、もっと知りたい方は論文を調べましょう
この本が読めれば(分かれば)、そのまま関連する論文を読んでも、議論を追えると思います
暗号解読 実践ガイド(2024/10/25 出版)
E. Dunin, K. Schmeh: ``暗号解読 実践ガイド'',マイナビBOOKS,2024.
目次
1章 暗号化されたメッセージを破るにはどうするか?そして、その他の入門的な質問
2章 シーザー暗号
3章 単一換字式暗号
4章 単語間に空白を入れない単一換字式暗号: パトリストクラット
5章 英語以外の言語における単一換字式暗号
6章 同音字暗号
7章 コードとノーメンクラター
8章 多換字式暗号
9章 完全縦列転置暗号
10章 不完全縦列転置式暗号
11章 回転グリル転置暗号
12章 ダイグラフ置換
13章 略語暗号
14章 辞書暗号と書籍暗号
15章 その他の暗号化方式
16章 ヒル・クライミングによる暗号解読
17章 次はどうする?
レビュー
古典暗号の網羅性:☆☆☆☆☆
上記4冊とは異なり、古典暗号(シーザー暗号とか)に関する書籍です
確かに古典暗号って、シーザー暗号・単一換字式暗号ぐらいしか知らんな・・・
数式とかも出てこないので、休憩がてら読んだりするのもありかもです
付録が充実していたのも良きです
洋書
数えようとしたらキリがないので、一旦 Sprigner だけで・・・
Springer から出版された Cryptograhy に関する本も今年は5冊のようですね
*ちなみにどれも読めてないです・・・高いんじゃぁ・・・
Understanding Cryptography
↑は第2版
Cryptography and Embedded Systems Security
Number Theory with Computations
History of Cryptography and Cryptanalysis
まとめ
和書に関しては、
- 暗号理論にどのような分野があるか広く知りたい
→暗号の理論と技術 量子時代のセキュリティ理解のために - 暗号に関わる演習問題を解きたい or 暗号の自主ゼミ・勉強会の本を探している
→暗号理論入門 - 暗号に関わる実装を色々知りたい or pycryptodome の演習をしたい
→Pythonで学ぶ暗号理論 - 一通りの暗号理論の知識があり、安全性証明・RSA暗号・離散対数問題ベース暗号・格子暗号を詳しくやりたい
→現代暗号理論 - ブロック暗号や公開鍵暗号などに飽きた or 古典暗号を深く知りたい
→暗号解読 実践ガイド
みたいな感じですかね?
来年はどのような書籍が出版されるのか、今から非常に楽しみです
(ちなみに弊社の書籍購入補助制度を使って購入しています)
今回の内容はここまでです。ここまでご覧になってくださった方々ありがとうございます!