ENIGMA(1)

名称
enigma, crypt - 非常に単純なファイルの暗号化

書式
enigma [-s] [-k] [password] crypt [-s] [-k] [password]

解説
enigma ユーティリティは crypt という名前でも知られていますが、 “秘密鍵” をベースとする 非常に 単純な暗号化プログラムです。 これはフィルタとして働きます。 つまり、標準入力からの一連のデータを 暗号化または復号化し、その結果を標準出力に出力します。 動作は完全に対称なので、 (同じ秘密鍵を用いて) 暗号化された データストリームを再度入力としてエンジンに与えると、 それが復号化されます。

秘密鍵をプログラムに渡す方法はいくつかあります。 デフォルトでは、制御端末上で getpass(3) を用いて、ユーザに鍵を入力するよう促します。 これが安全に鍵を渡す唯一の方法です。

別の方法としては、プログラム起動時に、単独のコマンド行引数 password によって鍵を渡すこともできます。 明らかなことですが、この方法を用いると、 ps(1) を実行している他のユーザが、簡単に鍵を見破ることができます。 さらにもう 1 つの方法としては、コマンド行引数として -k オプションを与えると、 enigma は環境変数 CrYpTkEy から鍵を取得します。 この方法は、一見前述の他の方法よりも安全なように見えますが、 実際はそうではありません。 というのは、環境変数もまた ps(1) で調べることができるからです。 従って、このオプションは、主に他の実装の enigma との互換性のために存在します。

-s オプションを指定すると、 enigma は、もう少し安全だと思われるように暗号化エンジンを変更しますが、 他の実装との互換性はなくなります。

  警告
enigma の暗号化手法としての価値はかなり小さいです。 このプログラムは、 この手の実装 (通常、 crypt(1) という名前のもの) を持つ他のオペレーティングシステムとの 互換性を保つためだけのものです。 本格的な暗号化については、 bdes(1), openssl(1), pgp(1), gpg(1) を参照してください。 しかしながら、いくつかの国ではこのようなツールの輸出、輸入、使用に対する 制限が存在するかもしれないので、これらの強力なツールは、デフォルトでは オペレーティングシステムと一緒には配布されていません。

環境変数

CrYpTkEy
    -k オプション指定時に、この変数から秘密鍵を取得します。

使用例

    man enigma | enigma > encrypted
    Enter key: (XXX — 鍵は表示されません)

このマニュアルページを暗号化して、その結果を ‘encrypted’ というファイルに格納します。

    enigma XXX < encrypted

前の例で作成されたファイルを端末上に表示します。

関連項目
bdes(1), gpg(1), openssl(1), pgp(1), ps(1), getpass(3)

歴史
crypt の実装は UNIX オペレーティングシステムの間では非常にありふれたものです。 本プログラムの実装は、パブリックドメインの Cryptbreakers Workbench のものを使用しました。