
VC++2008にてopensslを用いて、AES暗号/復号の機能を作成しています。
AES_set_encrypt_key → ivをコピー → AES_cbc_encrypt(~,AES_ENCRYPT)にて暗号、
AES_set_decrypt_key → ivをコピー → AES_cbc_encrypt(~,AES_DECRYPT)にて復号するコーディングをしました。
(http://d.hatena.ne.jp/hnko/20090302/1235977892のenc_aes128_cbc_test()を参考にしましたので、
一連の流れは、こことほぼ同じです)
デバッグしてみると、一見、暗復号が問題なく出来ていたので、
AES_set_encrypt_key関数の第一引数のkey配列の値と、
ivec配列の値を変えて、デバッグしてみたところ、
key配列を変更すると、暗号化後の文字列も変更されますが、
ivec配列を変更しても、暗号後の文字列に変化が有りませんでした。
調べてみたところ、AES_set_encrypt_keyにて返される
AES_KEYのroundsの値が常に同じであることが原因と思われますが、
roundsの値が常に一定だと、暗号解読が比較的容易に
出来てしまうと思うのですが、上記で挙げたサイトでの
コーディングの他に、何か別にコーディングを足さなければならないのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>ivec配列を変更しても、暗号後の文字列に変化が有りませんでした。
初期ベクタを変えれば必ず暗号文が変化する筈。
変わらないとしたら、初期ベクタを変えているつもりで変わってないだけ。
因みに、初期ベクタは、1ブロック暗号化するたびに内容が更新されていくので、使い方を間違えないように。
>roundsの値が常に一定だと、暗号解読が比較的容易に
暗号鍵を変えればAES_KEYの内容も変化する筈。
変わらないとしたら、暗号鍵を変えているつもりで変わってないだけ。
AES128のサンプルを256に変更した際に、
ivec配列を[18]から[36]の配列にしたのが原因でした
key配列は[18]から[36]でOKだったので、
深く考えずに、ivecも合わせてしまっていました。
bitにかかわらず、[18]の配列みたいですね。
18以降の要素を変更してテストしていたので、
暗号文字列が変わらなかったようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
VB6 配列を初期化したい
-
配列内の内容を全て表示する方法
-
友愛数を探すプログラム
-
for each の現在の配列ポインタ...
-
ビンゴ
-
配列に同じ値を入れる方法
-
AES暗号にて、AES_set_encrypt_...
-
subの配列引数をoptionalで使う...
-
ListViewで、非表示列って作れ...
-
VBAで多次元配列のインデックス...
-
VB2008: CSV を二次元配列に読...
-
配列変数の添字が範囲外ですと...
-
2次元動的配列の第一引数のみを...
-
MATLABにて場合分け関数を定義...
-
シェルスクリプト中で、ヒアド...
-
任意の配列を引数として動作す...
-
Excel-VBAで内臓のMINVERSE,MM...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
subの配列引数をoptionalで使う...
-
VB6 配列を初期化したい
-
配列変数の添字が範囲外ですと...
-
2次元動的配列の第一引数のみを...
-
ListViewで、非表示列って作れ...
-
Excel-VBAの配列「Public Const...
-
for each の現在の配列ポインタ...
-
AES暗号にて、AES_set_encrypt_...
-
Dim は何の略ですか?
-
VBのFunctionで、配列を引数...
-
配列を任意の数値で埋める方法
-
verilogで配列の任意の8bitを取...
-
エクセルで最小値から0を除く方法
-
《エクセル2000》A列・B列の商...
-
配列内の内容を全て表示する方法
-
配列に同じ値を入れる方法
おすすめ情報