しったかぶりしてたので暗号技術を勉強

暗号の話ってプログラマなら一般教養並みに知ってて当然、「というか知らないやつとは話にならんよ」と思ってるというくらいのイメージを持ちつつも、実は僕は各種技術の細かいところは全然知らなかったのです。MD5とかRSAとかAESとか。暗号のでっかい概要、例えばソフトウェア技術者試験に出るようなレベルまでは勉強しましたが。。
特にハッシュ周りは「ダイジェストってなにに使うか分かるけど、正確にはなんだ?」と心の中で思ってました。
お恥ずかしい。知らずに話を合わせててごめんなさい。


というわけで、勉強しました。
以下、ためになったページをぺたぺたと。


暗号技術基礎
まずはこちらから読みました。
結構古い記事みたいなんですが、暗号化・復号化から共有鍵・公開鍵など鍵の方式、署名、ダイジェストまで用途とともに説明してくれてて勉強になりました。
1.6.(1)でやっとダイジェストとかsaltのあたりの意味みたいなもんが理解できたかも。用語を英語でも書いてあるんで、使ってるプログラムのメソッドとかクラス名とかとリンクしてきたりするのも良いです。


暗号技術がちょっとハマってきたのでもうちょっと。
すべてはここから始まった〜SHA-1の脆弱化 (1/2):デファクトスタンダード暗号技術の大移行(1) - @IT
それぞれの暗号技術をもうちょっと詳細に計算も交えて説明してました。
あと、SHA-1脆弱性からSHA-1やその他の技術の特徴も見えてきて前の記事を読んでからだと納得感でかいです。
ハッシュとか署名まで後半の回で説明してくれてるし。


もちろんWikipediaも読みました。
暗号理論 - Wikipedia
暗号の歴史まで書いてくれてます。


暗号技術は理論がしっかりしてて実装もいろいろあって面白いですね。勉強し甲斐がある。ずっと食わず嫌いで勉強すらおろそかにしてたけど、本とか買っちゃおうかと思いました。
お、結城さんの本が良さそう。他にもオライリーでいいのとかあったりするんでしょーか?


あと、暗号理論はCryptographyというと神秘的な響きでかっこいいですな。

暗号技術入門-秘密の国のアリス

暗号技術入門-秘密の国のアリス