- ベストアンサー
Triple DESについて
C#でTriple DESを実装しております http://code.msdn.microsoft.com/10-C-70e9f385/ を参照しております キーと初期ベクタは、 TripleDESCryptoServiceProvider TDES = new TripleDESCryptoServiceProvider(); DesKey = TDES.Key; DesIV = TDES.IV; で与えられますが、具体的にはどのような値なのでしょうか? 何か意味のある値でしょうか? それとも、8バイトの乱数を発生させているだけなのでしょうか? ご指導よろしくお願いいたします
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
IVは自動的に乱数をセットすると書いてありますね。 http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.iv%28v=vs.90%29.aspx Keyについては何で初期化するというのは特に書いていないようです。 http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledes.key%28v=vs.90%29.aspx 実際に表示させてみると、ランダムかどうか分かりそうですが、不安だったらgenerateKeyで生成するか、自分でRNGCryptServiceProviderを使って乱数を生成するとよいでしょう。 http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.generatekey%28v=vs.90%29.aspx http://stackoverflow.com/questions/5349321/generate-random-bytes-for-tripledes-key-c-sharp 余談ですが、新しいプログラムを書いているなら、Triple DESなんて過去のプログラムとの互換性の意地のために存在するようなアルゴリズムではなくて、AESを使うことをおすすめします。TripleではないDESは既に攻略されていますし、DESは1回でもAESに比べてずっと遅いです。 TripleDESと書いてあるところをAesに変えてとIV長と鍵長をちょろっと直したら動くと思います。(鍵やIVにnew byte[??]とかしていなかったら、単にTripleDESをAesに変えるだけで動くはずです) http://msdn.microsoft.com/ja-jp/library/system.security.cryptography.aescryptoserviceprovider.aspx
お礼
勉強になりました ありがとうございました