方々で暗号解読はよいと言っているけれど、記事にしてなかったっぽいので書いておく。
これで暗号のなんたるかを知った。いわゆる「技術書」ではないけれど、暗号の入門書としてとてもおすすめ。
古今東西の暗号にまつわるドキュメンタリーのテキスト化作品で、性質上強烈なインシデントの実例も知れる。
読んでいくと暗号は運用が大事であることが身に染みると思う。
20年以上前の本だけれど、現在との差分は楕円曲線暗号が実用されるようになったくらいだろう。未来の量子暗号についても記述がある。2020年代にリメイクや追記がされるとしたら、ブロックチェーンは取り上げれそうな気がする。
とにかくおすすめ。落ちはない。
身に染みるとこういう事を考えるようになる
とは言えおすすめというだけではつまらないので周辺要素を書いておく。
暗号は運用が大事であることが身に染みる
これは要するに「身に染みて欲しい」ということでもある。
昨今常用されているセキュリティ技術は、技術自体は概ね万全なものなので、セキュリティインシデントが発生するとしたらその運用がまずい場面がほとんどだ*1。
ソフトウェアエンジニアが暗号を扱うときには「ソルトとIV」をよく見かける。
いずれも目的があって使われるものなので、正しく運用したい。
WebサイトのログインパスワードをDBに保存したいとする、平文で保存するとデータが流出した際のリスクが大きくなるのでハッシュ化して平文が第三者からは分からない形で保存することが望ましい。
しかし、ハッシュ化は平文が同じならハッシュ値も同じになる。素直に保存してしまうと、ハッシュ値が同じだったら平文も高い確率で同じだろうと推測できてしまう。
ここでソルトを振りかける(平文の先頭に付与するなど)。すると、元は同じ平文だったものが別なものになるのでハッシュ値も別なものになる。DBにはソルトとハッシュ値を保存する。こうすることによって同じパスワードでも別のハッシュ値を保存することが可能になる。
メジャーなログイン管理ライブラリはこういう事*2を勝手にやってくれている。
そういう事を何故するのか、を腑に落としておきたい。暗号解読を読むと腑に落ちやすくなると思う。
暗号解読推しの様子
10年以上一貫して推し続けているようだ。
暗号解読(上)(下)読了。これはおもしろい。IT系な人にはお勧め。10年以上も前の本だが、比較的軽く読めて暗号の歴史を一望できる。 http://amzn.to/db2pFK
— 光電/7474 (@koudenpa) 2010年11月12日
暗号解読は読み物として普通に面白い上に(多分翻訳も上手いのだと思う)、暗号のいろはを知れるのでとてもおすすめ。
— 光電/7474 (@koudenpa) 2014年10月27日
こういうのを見るたびに、全エンジニアは暗号解読を読むべきだ。と思う。あれはいいものだ。暗号にまつわる物語として秘密を守るには運用が大事だと言うことを教えてくれる。 https://t.co/A7c9pPw0Gk
— 光電/7474 (@koudenpa) 2018年1月16日
暗号、アルゴリズムとかあまり興味はないけれど、背景にあるドラマは好き。暗号解読の影響である。あれはエンジニア必読の書だ。
— 光電/7474 (@koudenpa) 2019年2月4日
近代の暗号に関するセキュリティインシデントってアルゴリズムより運用のまずさに起因しているものが多いわけで、日頃の何気ない行いが大事だと思っている。取り敢えずITエンジニア諸氏には暗号解読をおすすめしたい。ボクの数少ないおすすめ本。
— 光電/7474 (@koudenpa) 2019年9月12日
暗号解読(上) (新潮文庫) https://t.co/dlWrMAxKLA
これまで読んだ本のなかで一番よかったもの。なんだろな。本全般だと暗号解読な気がする。
— 光電/7474 (@koudenpa) 2019年11月15日
*1:たまに脆弱性とか出てるけれどそれに対する対応も含めて運用と考える
*2:メジャーなのはbcrypt - Wikipediaだと思う