2013年5月4日土曜日

[OpenSSL]Triple DES

Triple DES EDE CBC モードで暗号化の手順
$ openssl enc -des-ede3-cbc -e -in null.dat -out enc_des_e
de3_cbc.dat -p -nosalt
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
key=EA703E7AA1EFDA0064EAA507D9E8AB7E63413AFCBF321FFB
iv =9618A9336087C322


復号化の手順
$ openssl enc -des-ede3-cbc -d -in enc_des_ede3_cbc.dat -o
ut dec_des_ede3_cbc.dat -p -nosalt
enter des-ede3-cbc decryption password:
key=EA703E7AA1EFDA0064EAA507D9E8AB7E63413AFCBF321FFB
iv =9618A9336087C322


Key, IV の生成方法
passphase = "hoge" から Key と IV を生成する。 passphase から MD5 値をとる。
00 | 68 6F 67 65
-- (MD5) -->
00 | EA 70 3E 7A A1 EF DA 00 64 EA A5 07 D9 E8 AB 7E
MD5 を 1 回行った結果に hoge を追加して再び MD5 値をとる。
00 | EA 70 3E 7A A1 EF DA 00 64 EA A5 07 D9 E8 AB 7E
10 | 68 6F 67 65
-- (MD5) -->
00 | 63 41 3A FC BF 32 1F FB 96 18 A9 33 60 87 C3 22
以上から 2 つの MD5 値が得られる。
1 回目 MD5 値 EA 70 3E 7A A1 EF DA 00 64 EA A5 07 D9 E8 AB 7E
2 回目 MD5 値 63 41 3A FC BF 32 1F FB 96 18 A9 33 60 87 C3 22
Key は 1 回目 MD5 値に 2 回目 MD5 値の上位 8 バイトをくっつけた値になる。
IV は 2 回目 MD5 値の下位 8 バイトとなる。
Key = EA 70 3E 7A A1 EF DA 00 64 EA A5 07 D9 E8 AB 7E 63 41 3A FC BF 32 1F FB
IV = 96 18 A9 33 60 87 C3 22
passphase に hoge を指定して Triple DES EDE CBC モードを行った結果
$ openssl enc -des-ede3-cbc -e -in null.dat -out enc_des_ede3_cbc.dat -p -nosalt -pass pass:hoge
key=EA703E7AA1EFDA0064EAA507D9E8AB7E63413AFCBF321FFB
iv =9618A9336087C322

0 件のコメント:

コメントを投稿