自分で作成して管理するキーを使用して、ファイルを暗号化 (AES 256 を使用) したいと思います。これをサポートする Linux コマンドライン ユーティリティはありますか? gpg
ありませんし、どちらでもないと思いますopenssl
。
ちなみに、自分で鍵を作成して管理するのはない安全またはベスト プラクティスと見なされます。それでも、私自身の特異な理由により、それがやりたいことです。他のすべてが失敗した場合は、Java で何かを作成してこれを行うことができますが、既存のユーティリティがある場合は、それを使用する方がよいでしょう。
答え1
gpg は AES256 をサポートしています。設定ファイルを変更するだけで、優先暗号を設定するオプションと暗号化時のオプションがあります。
gpg では、好みに応じて自動的に選択され、互換性を最大限に高めるためにサポートされている暗号が多数あるため、暗号化暗号を設定しないよう推奨しています。
ここでサポートされている暗号を確認できます:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
暗号を無効にした場合も同様です。
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: AES256, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
答え2
あなたの説明に基づいて mcrypt をチェックしてください。必要なことを行うはずです。独自のキーを使用できるからです。ただし、なぜ gpg を使用できないのかはわかりません。Web または署名ソフトウェアにこの暗号化を使用する場合は、TinyCA が別のオプションです。
自己署名の注意点についてはすでに理解されているとのことですので、その点はあなたの判断にお任せします。
答え3
コマンドopenssl
ライン ユーティリティは、ファイルからのパスワードを使用してこれを実行できます。
openssl aes-256-ctr -pass file:./passwordfile < file.plain > file.enc
openssl aes-256-ctr -d -pass file:./passwordfile < file.enc > file.plain
パスワードからキーを派生させる代わりに、実際に使用されるキーを設定するためにを使用することもできます-K
が、IV も手動で設定する必要があるため、あまり便利ではありません。
マニュアルページはenc(1)
。