「暗号技術入門 第3版」第4章をちゃんと読んでみた。(疑問点まとめ)
結城浩@hyukiさんの「暗号技術入門 第3版」を読んでいて出てきた,ブロック暗号の各モードについての疑問をまとめています.(詳細はこちら)
---
疑問その1:CBCも再生攻撃できないのか
できるみたいです.(https://twitter.com/hyuki/status/39428350858629121)
疑問その2:CFBモードのエラー伝搬範囲は逆では?
『暗号技術入門 第3版』p.107「ブロック暗号のモード比較表」CFBモードの欠点,では,「ビット単位のエラーがある暗号文を復号化すると,1ブロック全体と次のブロックの対応するビットがエラーになる」と書かれていますが,「1ブロックの対応するビットと次のブロック全体がエラーになる」のほうが正しいような気がします(間違ってたらすみません).
もし僕の考えが正しければ,下図のようになると思います.(自分のQiitaの記事ではこちらの画像を使っています)
復号時に暗号文が通るのはXORだけなのでビット反転がそのまま効き,隣のブロックに大きなエラーが出るのではないでしょうか?
疑問その3:CTSモード(パティングの処理)の仕組みについて
なぜブロックの入れ替えをするのか,どうしてそれでうまくいくのか...?
疑問その4:CFBモードは何故1ビットずつ暗号化できるのか
そもそもCFBモードじゃないとできないことなのでしょうか?「平文-暗号文の間がXORだけだから」という理由なら,OFBやCTRも1ビットずつ暗号化・復号化できてもよさそうですが...
---
感想(記事執筆@Qiita)
一番大変だったのは,各モードの機能比較表を作るところで,それぞれの項目を逐一検証していたら,2日ちょっとかかってしまいました.たった1個でも間違い・勘違いが見つかると,ほかの関連部分にも間違いがないかチェックしなくてはいけなくなったり,表記方法に悩んだり,...専門書を書いてくださる方々の偉大さが,よく分かる体験となりました.
また不思議なことに,基礎的な分野であっても,ネットでさっと調べる程度では,キーワードに合致する記事すら出てこないこともしばしばあり,専門知識の電子化・多言語化・一般化は案外進んでいない,という印象を受けました.もっと多くの人が発信し合うようになることで,情報へのアクセシビリティもより一層拡大することを期待したいです.