2022年4月19日火曜日

パスワードを使わないファイルの暗号化

以前opensslを利用したファイルの復号化について書きました。
このときはパスワードを入力して暗号化/復号化していましたが、
暗号化当時によく使っていたパスワードを使っていても、
長期間経った後で復号化しようとするとパスワードが分からない、
なんてことは起きがちで、なくすと困るようなファイルについては
パスワードをメモしておくのが良かったりします。
しかしパスワードって書き留めておくとそれっぽくってバレそう。

そこで最近知ったビット列による暗号化・復号化を紹介します。
パスワードの代わりに長ったらしいビット列を用いるので、
他人にはそれとバレにくいという長所はあるのですが、
使いにくさもあるので万人におすすめできるわけではありませんが、
ちょっと工夫すればいい感じに扱えるかもしれません。

で、暗号化ですが、
$ openssl enc -e -aes-256-cbc -pbkdf2 -K <64文字の16進数> -iv <32文字の16進数> -in <暗号化するファイル> -out <出力する暗号化済みファイル>
でできます。これを復号化するには
同じ<64文字の16進数>と<32文字の16進数>を用いて
$ openssl enc -d -aes-256-cbc -pbkdf2 -K <64文字の16進数> -iv <32文字の16進数> -in <暗号化済みファイル> -out <出力する復号化済みファイル>
で可能です。
鍵である<64文字の16進数>は
"1234567890123456789012345678901234567890123456789012345678901234"
初期ベクターである<32文字の16進数>を
"12345678901234567890123456789012"
なんてのにしても構いませんが、
もうちょっとなんとかしたければ
$ openssl enc -e -aes-256-cbc -in <適当な存在するファイル> -out <存在しないファイル> -p
を実行して適当なパスワードを入力(2回)すると例えば
key=1E463B9C19C601D1016337DB5730CC9E229A0CB70CDFA58DC17AB4F5C933CCD7
iv =34A5836256E950061F04BEC4C968FB92
のように表示されるので
keyを鍵、ivを初期ベクターとして使うのがいいでしょう。
keyとivをネックレス型USBメモリに入れて持ち歩いたりすれば、
ハッカーっぽくてお洒落かもしれません。
さらに耐火金庫で保管すれば完璧かも。
その時はくれぐれも金庫の開け方を忘れないように。

0 件のコメント:

コメントを投稿