新城@筑波大学情報です。こんにちは。

In article <86odbe8got.fsf@bsd2.4bn.ne.jp>
        Yoshitaka Ikeda <ikeda@4bn.ne.jp> writes:
> OFBとは全く違います。OFBはどちらかというとフィードバックシフトレジスタの
> フィードバック関数がブロック暗号になったというイメージのほうが正しいです。

私も CTR (Counter) モードはフィードバックがないので、関数的
なイメージだったのですが、世の中では、Output Feedback Mode
(OFB) モードの改良という考え方があるようです。結城さんの暗号
の本[1]を開いたらちょうど出てました。今までは同じページを見
ても気が付かなかったんだけれど。

[1] 結城浩: "暗号技術入門 秘密の国のアリス",ソフトバンククリ
エイティブ (2003/9/30).  ISBN-10: 4797322977, ISBN-13:
978-4797322972.

------------------------------------------------------------
OFBモード
                 [平文ブロック]
+-------------+     |
|             |     v
+--> [暗号化] +--> XOR
                    |
                    v
               [暗号文ブロック]

CTRモード
                               [平文ブロック]
+---------------+                  |
|               |                  v
+--> [カウンタ] +--> [暗号化] --> XOR
                                   |
                                   v
                             [暗号文ブロック]
------------------------------------------------------------

インクリメントの x = x + 1 で、フィードバックとか。私は、あ
んまりそんな感じはしません。関数的な感じ。

    [暗号文ブロック] = f([鍵],append(nonce,カウンタ値),[平文ブロック])

> CTRは、出力とは全く関係ないカウンタが逐次変わっていきます。
> 一般にはインクリメントが実装されることが多いです。ランダムアクセスが楽だし。

カウンタ・モードで、インクリメント以外の実装もあるんですね。

> > http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/StandardNames.html
> > http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/crypto/CryptoSpec.html
> 訳がわるいのか原文がわるいのか。暗号のことを知らない人が書いた文章にしかみえない。
> initメソッドで設定できるように読めるけど、どれを使えばいいのかわかんないし。

原書はこれ。/ja を取ればでてきます。2つ。

http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html
http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html

------------------------------------------------------------
CTR     A simplification of OFB, Counter mode updates the input
        block as a counter.
------------------------------------------------------------

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\