Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.7.4. ファイルの暗号化および暗号化解除

OpenSSL を使用してファイルを暗号化 (および復号化) するには、pkeyutl または enc のいずれかの組み込みコマンドを使用できます。pkeyutl では、RSA キーを使用して暗号化と復号化を実行しますが、enc では対称アルゴリズムを使用します。

RSA 鍵の使用

プレーンテキスト と呼ばれるファイルを暗号化するには、次のようにコマンドを発行します。
~]$ openssl pkeyutl -in plaintext -out cyphertext -inkey privkey.pem
キーと証明書のデフォルトの形式は PEM です。必要に応じて、-keyform DER オプションを使用して DER キー形式を指定します。
暗号エンジンを指定するには、以下のように -engine オプションを使用します。
~]$ openssl pkeyutl -in plaintext -out cyphertext -inkey privkey.pem -engine id
ここで、id は、暗号化エンジンの ID です。エンジンの可用性を確認するには、次のコマンドを発行します。
~]$ openssl engine -t
プレーンテキスト と呼ばれるデータファイルに署名するには、次のようにコマンドを発行します。
~]$ openssl pkeyutl -sign -in plaintext -out sigtext -inkey privkey.pem
署名されたデータファイルを検証してデータを抽出するには、次のようにコマンドを発行します。
~]$ openssl pkeyutl -verifyrecover -in sig -inkey key.pem
DSA 鍵などを使って署名を検証するには、次のようなコマンドを発行します。
~]$ openssl pkeyutl -verify -in file -sigfile sig -inkey key.pem
pkeyutl(1) の man ページでは、公開鍵アルゴリズムユーティリティーについて説明しています。

シンメトリックアルゴリズムの使用

利用可能な対称型暗号化アルゴリズムの一覧を表示するには、enc コマンドに -l などのサポートされていないオプションを指定して実行します。
~]$ openssl enc -l
アルゴリズムを指定するには、その名前をオプションとして使用します。たとえば、aes-128-cbc アルゴリズムを使用するには、次の構文を使用します。
openssl enc -aes-128-cbc
aes-128-cbc アルゴリズムを使用して plaintext という名前のファイルを暗号化するには、以下のコマンドを実行します。
~]$ openssl enc -aes-128-cbc -in plaintext -out plaintext.aes-128-cbc
前の例で取得したファイルを復号化するには、次の例のように -d オプションを使用します。
~]$ openssl enc -aes-128-cbc -d -in plaintext.aes-128-cbc -out plaintext
重要
enc コマンドは AEAD 暗号を適切にサポートしておらず、ecb モードは安全であるとは見なされません。最良の結果を得るには、cbccfbofb、または ctr 以外のモードを使用しないでください。