Go to main content
Oracle® Solaris 11.3 での暗号化と証明書の管理

印刷ビューの終了

更新: 2017 年 3 月
 
 

ファイルを暗号化および復号化する方法

ファイルを暗号化しても、元のファイルが削除されたり変更されたりすることはありません。出力ファイルが暗号化されます。

encrypt コマンドに関する一般的なエラーを解決するには、例のあとのセクションを参照してください。


注 -  ファイルを暗号化および復号化するとき、可能な場合は常に、承認された鍵の長さで FIPS 140-2 承認アルゴリズムを使用してみてください。Oracle Solaris 11.3 での FIPS 140-2 対応システムの使用 の 暗号化フレームワークでの FIPS 140-2 アルゴリズムにあるリストを参照してください。使用可能なアルゴリズムとその鍵の長さを表示するには、encrypt -l コマンドを実行します。
  1. 該当する長さの対称鍵を作成します。

    鍵が生成されるpassphraseを指定したり、鍵を指定したりできます。

    • パスフレーズを指定する場合、指定したパスフレーズを格納するか覚えておく必要があります。パスフレーズをオンラインで格納する場合、そのパスフレーズファイルは自分だけが読み取ることができるようにします。

    • 鍵を指定する場合、それはメカニズムの現在のサイズである必要があります。pktool コマンドを使用できます。手順およびいくつかの例については、pktool コマンドを使用して対称鍵を生成する方法を参照してください。

  2. ファイルを暗号化します。

    encrypt コマンドで、鍵を指定して対称鍵アルゴリズムを使用します。

    $ encrypt -a algorithm [-v] \
    [-k keyfile | -K key-label [-T token]] [-i input-file] [-o output-file]
    –a algorithm

    ファイルを暗号化するために使用するアルゴリズム。encrypt -l コマンドの出力のようにアルゴリズムを入力します。可能な場合は常に、Oracle Solaris 11.3 での FIPS 140-2 対応システムの使用 の 暗号化フレームワークでの FIPS 140-2 アルゴリズムに記載されている FIPS 140-2 承認アルゴリズムを選択してください。

    –k keyfile

    アルゴリズムで指定された長さの鍵を含むファイル。アルゴリズムごとの鍵の長さが、ビット単位で encrypt -l コマンドの出力に一覧表示されます。

    –K key-label

    PKCS #11 キーストア内の鍵のラベル。

    –T token

    トークン名。デフォルトでは、トークンは Sun Software PKCS#11 softtoken です。–K key-label オプションが使用された場合にのみ使用されます。

    –i input-file

    暗号化する入力ファイル。このファイルは、コマンドによって変更されることはありません。

    –o output-file

    入力ファイルと同じ暗号化形式の出力ファイル。

使用例 9  ファイルを暗号化するための AES 鍵を作成する

次の例では、ユーザーは暗号化と復号化用に AES 鍵を作成して、既存の PKCS #11 キーストアに格納します。ユーザーは、その鍵が存在し、使用できることを確認することはできますが、その鍵自体を表示することはできません。

$ pktool genkey label=MyAESkeynumber1 keytype=aes keylen=256
Enter PIN for Sun Software PKCS#11 softtoken  :パスワードを入力します

$ pktool list objtype=key
Enter PIN for Sun Software PKCS#11 softtoken  :パスワードを入力します
No.      Key Type      Key Len.      Key Label
----------------------------------------------------
Symmetric keys:
1        AES           256           MyAESkeynumber1

その鍵を使用してファイルを暗号化するには、ユーザーはそのラベルで鍵を取り出します。

$ encrypt -a aes -K MyAESkeynumber1 -i encryptthisfile -o encryptedthisfile

encryptedthisfile ファイルを復号化するには、ユーザーはその鍵をラベルで取り出します。

$ decrypt -a aes -K MyAESkeynumber1 -i encryptedthisfile -o sameasencryptthisfile
使用例 10  AES およびパスフレーズで暗号化および復号化する

次の例では、ファイルを AES アルゴリズムで暗号化します。鍵はパスフレーズから生成されます。パスフレーズをファイルに格納する場合、そのファイルはユーザー以外は読み取ることができないようにします。

$ encrypt -a aes -i ticket.to.ride -o ~/enc/e.ticket.to.ride
Enter passphrase:    パスフレーズを入力します
Re-enter passphrase: パスフレーズを再度入力します

入力ファイル ticket.to.ride は、元の形式で存在します。

出力ファイルを復号化する場合、ユーザーはファイルを暗号化したときと同じパスフレーズと暗号化メカニズムを使用します。

$ decrypt -a aes -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride
Enter passphrase: パスフレーズを入力します
使用例 11  AES および鍵ファイルで暗号化および復号化する

次の例では、ファイルを AES アルゴリズムで暗号化します。AES メカニズムでは、128 ビット(16 バイト) の鍵が使用されます。

$ encrypt -a aes -k ~/keyf/05.07.aes16 \
-i ticket.to.ride -o ~/enc/e.ticket.to.ride 

入力ファイル ticket.to.ride は、元の形式で存在します。

出力ファイルを復号化するとき、ユーザーはファイルを暗号化したときと同じ鍵と暗号化メカニズムを使用します。

$ decrypt -a aes -k ~/keyf/05.07.aes16  \
-i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride

トラブルシューティング

次のメッセージは、encrypt コマンドに指定した鍵が、使用しているアルゴリズムで許可されないことを示しています。

  • encrypt: unable to create key for crypto operation: CKR_ATTRIBUTE_VALUE_INVALID

  • encrypt: failed to initialize crypto operation: CKR_KEY_SIZE_RANGE

アルゴリズムの条件を満たしていない鍵を渡した場合は、次のいずれかの方法を使用して、条件を満たす鍵を指定する必要があります。

  • パスフレーズを使用します。それによって、条件を満たす鍵が暗号化フレームワークで指定されます。

  • アルゴリズムが使用できる鍵サイズを渡します。たとえば、DES アルゴリズムでは 64 ビットの鍵が必要です。3DES アルゴリズムでは 192 ビットの鍵が必要です。