ENIGMA(1)

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

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

解説
enigma は crypt という名前でも知られていますが、 “秘密鍵” をベースとする 非常に 単純な暗号化プログラムです。 これはフィルタとして働きます。つまり、標準入力からの一連のデータを暗号化 または復号化し、その結果を標準出力に出力します。 入力データがすでに暗号化されているかどうかを自動的に検出し、すでに 暗号化されている場合は復号モードに切り替わります。

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

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

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

  警告
enigma は暗号化の手法としてはほとんど価値がありません。このプログラムは、この 実装を持つ他のオペレーティングシステムとの互換性を保つためだけのもの です。 本当の暗号化については、 bdes(1) (DES配布パッケージに含まれます)、または、 pgp(1) (ports コレクションに含まれます) を参照してください。 しかしながら、いくつかの国ではこのようなツールの輸出、輸入、使用に対する 制限が存在するかもしれないので、これらの強力なツールは、デフォルトでは オペレーティングシステムと一緒には配布されていません。

環境変数

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

使用例

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

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

    enigma XXX < encrypted

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

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

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