Kindleで読もうとすると字が薄くまた小さくて読めなかったためずっと積読になっていましたが、最近iPadを買ってそれで読みました。
世間一般の評価のとおり、素晴らしい内容の本でした。ITに携わった人間であれば一度は考えたことのある「暗号化」と、データのやりとりの安全性をどう考えたらいいかが詳しく説明されています。
ただ暗号化するだけではだめで色々な要素があるのですが、それがなぜ必要なのか、細かい実現方式(実装方式)も含めて説明されています。初心者というより中級者向けの内容も含むと思うのですがとても重要なのでメモしておきます。簡素なメモですみません。
対象暗号(Symmmetric Cryptography)
暗号化と複合化で全く同じ鍵を使う。暗号強度を強くしても、この鍵をどうやってやりとりするかという鍵配送問題が課題となり、次に説明する公開鍵暗号方式が発明される。
非対象暗号(Asymmetric Cryptography)
暗号化と複合化で異なる鍵を使う。一般に、受信者のみが複合鍵を持ち、送信者は暗号鍵を使って暗号化する。暗号鍵は公開されていて誰でも使うことができる。
正真性(integrity)
改ざん防止、そのデータやソフトウェアが正真正銘本物であることを示す。完全性ともいう。
一方向ハッシュ値(one-way hash function)。元のデータから導き出すハッシュ値。改ざんされていないことを判断する比較的小さいデータ。
メッセージ認証コード(message authentication code)
そのメッセージが改ざんされていないことと、期待した通信相手からであることを確かめる。
認証(authenticaion)
なりすまし防止
デジタル署名(digital signature)
なりすまし、改ざん防止、否認(私はそんなデータを送っていませんという嘘)を防ぐ。
対象暗号(共通鍵暗号)
DES(Data Encryption Standard)
ブルートフォースアタックで解読されてしまうため現在は使われていない。
トリプルDES
DESの鍵を3つ使う。暗号化→複合化→暗号化。
ブロック長64ビット。
AES(Advanced Encryption Standard)
DESに変わる新しい対象暗号アルゴリズム
ブロック長128ビット
NIST
Riindael(ラインダール)
subbyte
shiftrows
Mix Columns
Add Round Key
ブロック暗号のモード:暗号化処理を繰り返す際のその方式
✕ECB
〇CBC、CFB、OFB、CTR
公開鍵暗号
鍵配送問題を解決。
事前共有
鍵配布センター
Diffie Hellman鍵交換
公開鍵暗号
RSA(有名な公開鍵暗号アルゴリズム)
大きな数の素因数分解が短時間に解けないことを利用した暗号アルゴリズムのひとつ。
1024ビット:新規NG
2048ビット:2030年まで
4096ビット:2031年以降も〇
他
ElGamal方式
Rabin方式
楕円曲線暗号
SSL/TLS:SSLはもうNG。SSL3.0をベースにTLSが定められた。現在はTLSが使われている。
(ざっくりした流れHTTPSクライアント-HTTPSサーバー間の通信)
クライアントが希望する暗号スイートの決定
公開鍵暗号方式またはDiffie Hellman方式で最初はやりとり。
サーバー証明書
鍵交換(RSAの場合、公開鍵暗号のパラメータN,E)
クライアント証明書
プレマスターシークレット(対象暗号の鍵の種、メッセージ認証コードの鍵、CBC初期ベクトル)
デジタル署名
暗号を切り替え(AESなどに)