OpenSSLを使用すると、ファイルの暗号化に使用するブロック暗号の種類を選択できます。
たとえば、AES256CBCブロック暗号モードでファイルを暗号化する場合:
openssl aes-256-cbc -a -salt -pass pass:MYPASSWORD -in secrets.txt -out secrets.txt.enc
Gpg2では、次のようにファイルを暗号化しようとしています。
gpg2 --cipher-algo AES256 -a --no-use-agent --passphrase MYPASSWORD -c secrets.txt
私が助けを得ることができる2つの問題があります:
使用する暗号ブロックを指定するオプションはありません。 CBCの代わりにAES256CTRまたはXTSが必要な場合はどうなりますか? --cipher-algo AES256
はどの暗号ブロックを使用し、特定のものを指定するにはどうすればよいですか?
Gnuパスワードエージェントにパスフレーズを入力しないと、コマンドは完全に失敗します(信頼できるマシンで自動化できるように、コマンドに--passphrase
と--no-use-agent
を使用してパスフレーズを指定しようとしています) :
gpg:警告:「-no-use-agent」は廃止されたオプションです-効果はありません
gpg:エージェントの問題:無効なカード
gpg:パスフレーズの作成中にエラーが発生しました:操作がキャンセルされました
gpg: `secrets.txt 'の対称暗号化に失敗しました:操作がキャンセルされました
OpenPGPは、指定された1つのモード RFC 4880で定義されている変更されたCBCモード を強制します。他のものに変更することはできません。
コメントで@grawityがすでに指摘しているように、GnuPG 2の最近のバージョンでは、いくつかの暗号化関数がエージェントに抽出されたため、パスフレーズと秘密鍵によって、この小さなプログラムが脆弱性の可能性が低くなることはありません。
gpg-preset-passphrase
( GnuPG 2.1のドキュメント )プログラムでパスフレーズを設定することは、GnuPG 2でバッチ操作を行う方法です。別の方法として、 `--passphrase [-fd、file] GnuPG2.1でまだ利用できるように見えるオプション。
サポートされている暗号のリストを取得するには、gpg2 --version
を使用できます。私のマシンでは、次の出力が得られます。
暗号:IDEA、3DES、CAST5、BLOWFISH、AES、AES192、AES256、TWOFISH、CAMELLIA128、CAMELLIA192、CAMELLIA256
ただし、CTRまたはXTSに変更する方法がわかりません。
コマンドラインでパスフレーズを指定するオプションも表示されませんが、パスフレーズの代わりに秘密鍵を使用して暗号化してみてください。