2017年5月20日土曜日

linuxでもandroidでも使える文書暗号化

2019 Dec. 01.
2019 Feb. 16.
2018 Nov. 11.
2018 Aug. 25.
2017 May 20.

openssl

共通鍵方式の暗号化・復号化が可能。

opensslでのaes-256-cbc暗号化

入力したパスワードから共通鍵と初期化ベクトルが自動生成される。パスワード自体が共通鍵ではない。
共通鍵は、パスワードと自動設定されるsaltから生成される。
初期化ベクトルは、パスワードとsaltと共通鍵から生成される。
制裁される共通鍵・初期化ベクトルは、ver1.0まではmd5、ver1.1.1以降はsha256でハッシュされる。
ver1.1.1以降はハッシュ化に -iter N もしくは -pbkdf2 オプション指定が推奨。
Padding 方式には PKCS#5 が使用される。

androidアプリcrNoteで復号できる暗号化例
$ openssl aes-256-cbc -md md5 -e -in FILE -out FILE.x
$ openssl aes-256-cbc -md md5 -e -in FILE -out FILE.x file:./password.txt
        CrNoteと共用するために拡張子は .x にする。

(オプションを付けなければsha256でハッシュされる)
$ openssl aes-256-cbc -e -in FILE -out FILE.x

復号化

共通鍵生成に必要な暗号化時のsaltは、暗号化されたファイルの先頭に書き込まれている。
Padding 方式は PKCS#5。
暗号化方式・ハッシュ化の方式を暗号化時と同じにする。

(md5ハッシュ鍵)
$ openssl aes-256-cbc -d -in FILE.x  -md md5
$ openssl aes-256-cbc -d -in FILE.x  -md md5 -pass file:./password.txt

(sha256ハッシュ鍵)

$ openssl aes-256-cbc -d -in FILE.x
$ openssl aes-256-cbc -d -in FILE.x -pass file:./password.txt

android

CrNote を利用すれば、md5ハッシュ化鍵でのaes-256-cbc暗号化ファイルの復号が可能。

0 件のコメント:

コメントを投稿