Re: .NET (C#) System.Security.Cryptography
yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes:
> 新城@筑波大学情報です。こんにちは。
>
> In article <86odbe8got.fsf@bsd2.4bn.ne.jp>
> Yoshitaka Ikeda <ikeda@4bn.ne.jp> writes:
>> > CTR の nonce やカウンタのビット長はどうやって指定するんだろう。
>> CTRのカウンタは多分ブロック長と同じです。
>
> CTR モードの場合、たとえば、128 ビットのブロックを暗号化する
> なら、上位、64 ビットに noce を入れて、下位 64 ビットにカウ
> ンタの値を入れる、といった実装になるのでは。つまり、ブロック
> 長よりは、カウンタのビット長は、nonce の分だけ短くなると。
>
> nonce 64 ビットと カウンタ 64 ではなくて、nonce 96 ビットに
> カウンタ 32 ビットでもよいのでしょう。
あ〜、nonceは初期値に使われるけど、初期値自体は公開値なので
(かぶらなければ)適当にやってもいいのだと思います。
かぶらないようにしようと思ったら、できるだけ長いほうがいいでしょう。
バースデイパラドックスが効いてきちゃいますので。
#同じ初期値やちかい初期値だと二つの平文の排他的論理和が暴露されて
しまいます。
>> ブロック長より長く取ろうと思ったら、
>> インクリメントではだめです。1周した後同じ入力になっちゃうし。
>
> カウンタは、インクリメントでやっています。カウンタは1周した
> ら終りですけれど、今の場合、ファイルを暗号化したいので、バイ
> ト数の上限が決まっているので、大丈夫です。最大ファイル長が、
> 64 ビットもあれば、しばらく十分です。
その用途なら十分ですね。
--
I LOVE SNOOPY! でつ
Yoshitaka Ikeda mailto:ikeda@4bn.ne.jp
My Honeypot: honey@4bn.ne.jp <-don't send this address
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735