2013年5月4日土曜日

[OpenSSL]AES コマンド

AES 256 CBC モードで暗号化する手順
$ openssl enc -aes-256-cbc -e -in null.dat -out enc_aes256cbc.dat -p -nosalt
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
key=EA703E7AA1EFDA0064EAA507D9E8AB7E63413AFCBF321FFB9618A9336087C322
iv =AD804FC4942C79B8E7A3F5C26B1E599E


復号化する手順
$ openssl enc -aes-256-cbc -d -in enc_aes256cbc.dat -out dec_aes256cbc.dat -p -nosalt
enter aes-256-cbc decryption password:
key=EA703E7AA1EFDA0064EAA507D9E8AB7E63413AFCBF321FFB9618A9336087C322
iv =AD804FC4942C79B8E7A3F5C26B1E599E

br/ 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
その結果に hoge を追加して再び MD5 値をとる。
00 | 63 41 3A FC BF 32 1F FB 96 18 A9 33 60 87 C3 22
10 | 68 6F 67 65
-- (MD5) -->
00 | AD 80 4F C4 94 2C 79 B8 E7 A3 F5 C2 6B 1E 59 9E
以上から 3 つの MD5 値が得られる。
MD5 1回目 EA 70 3E 7A A1 EF DA 00 64 EA A5 07 D9 E8 AB 7E
MD5 2回目 63 41 3A FC BF 32 1F FB 96 18 A9 33 60 87 C3 22
MD5 3回目 AD 80 4F C4 94 2C 79 B8 E7 A3 F5 C2 6B 1E 59 9E
1 回目 MD5 値と 2 回目 MD5 値を連結した値が Key となり、3 回目 MD5 値が IV となる。
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 96 18 A9 33 60 87 C3 22
IV = AD 80 4F C4 94 2C 79 B8 E7 A3 F5 C2 6B 1E 59 9E


OpenSSL コマンドで passphase に hoge を指定した時の Key と IV
$ openssl enc -aes-256-cbc -e -in null.dat -out enc_aes256cbc.dat -p -pass pass:hoge -nosalt
key=EA703E7AA1EFDA0064EAA507D9E8AB7E63413AFCBF321FFB9618A9336087C322
iv =AD804FC4942C79B8E7A3F5C26B1E599E

0 件のコメント:

コメントを投稿