| crypt | |
|---|---|
| 原著者 | ロバート・モリス |
| 開発者 | AT&Tベル研究所 |
| 初回リリース | 1973年2月 ( 1973-02 ) |
| オペレーティングシステム | Unix、Unixライク、Inferno |
| タイプ | コマンド |
Unixコンピューティング において、cryptまたはenigmaは暗号化に使用されるユーティリティプログラムです。解読が容易なため、時代遅れと見なされています
このプログラムは通常フィルタとして使用され、伝統的にエニグマ暗号に基づく「ローターマシン」アルゴリズムを使用して実装されてきました。これは暗号的に弱すぎるため、現代の汎用パーソナルコンピュータによるブルートフォース攻撃に対するセキュリティを提供することはできないと考えられています。[ 1 ]
Unixの一部のバージョンでは、暗号ソフトウェアの輸出を制限する当時の法律や規制に準拠するために、crypt(1)コマンドのさらに弱いバージョンが付属していました。これらの中には、単にシーザー暗号の実装であったものもありました(既知の鍵を持つシーザー暗号として実装されている ROT13よりも実質的に安全ではありません)。
歴史
[編集]暗号学者ロバート・モリスは、暗号解読実験を促進するために、Unixバージョン3で初めて登場したM-209ベースのcryptを作成しました。モリスは手作業でcryptを解読することに成功しました。デニス・リッチーはジェームズ・リードの手法を用いて復号を自動化し、バージョン7ではエニグマベースの新しいバージョンが登場しましたが、リードとピーター・J・ワインバーガーもこれを解読しました。[ 2 ]
Linuxにおけるcrypt(1)
[編集]Linuxディストリビューションには、一般的にcryptコマンドのUnix互換バージョンは含まれていません。これは主に3つの主要な要因の組み合わせによるものです。
- cryptは比較的知られておらず、電子メールの添付ファイルやファイル形式として使用されることはめったにありません。
- cryptは、現代のコンピューティングシステムによるブルートフォース攻撃に耐えるには暗号的に弱すぎると考えられています(Linuxシステムは通常、現代の基準では十分に安全であると考えられているGNU Privacy Guardとともに出荷されます)。
- Linuxの開発と採用の初期には、cryptで使用されるアルゴリズムがいかに弱くても、 ITARの輸出規制に違反する可能性があるという懸念がありました。 [要出典]そのため、米国の主流のディストリビューション開発者は一般的にcryptを除外し、[要出典]顧客はGnuPGやその他の強力な暗号化ソフトウェアを国際的なサイトから入手する必要があり、時にはそのプロセスを自動化するためのパッケージやスクリプトが提供されていました。
cryptコマンドのいくつかの古いバージョンのソースコードは、Unix Heritage SocietyのUnix Archiveで入手できます。[ 3 ]最近のcryptソースコードはOpenSolarisプロジェクトで入手できます。パブリックドメインバージョンはCrypt Breaker's Workbenchから入手できます
Linuxでは、mcryptやccryptなどの拡張対称暗号化ユーティリティが利用可能です(他のUnix系システムにも移植可能であるはずです) 。[ 4 ] これらは、より洗練された最新のアルゴリズムをサポートしていますが、正しいコマンドラインオプションを指定することで、従来のcrypt(1)コマンドと互換性のあるファイルの暗号化[ 5 ]と復号化に使用できます。
crypt(1)暗号化の解読
[編集]crypt(1)暗号を解読するためのプログラムは広く入手可能です。1984年から1985年に書かれたBob BaldwinのパブリックドメインのCrypt Breaker's Workbenchは、ユーザーが修正しなければならない平文の推測を連続して提供する対話型ツールです。また、現代のBSDディストリビューションで使用されているcrypt(1)の実装も提供しています。[ 6 ]
Peter Selingerのunixcrypt-breakerは、辞書攻撃に似た単純な統計モデルを使用しており、平文のセットを入力として受け取り、それを処理して妥当な平文を推測します。ユーザーの操作は必要ありません。[ 7 ]
パスワードハッシュ関数との関係
[編集]同じ名前のUnixパスワードハッシュ関数cryptもあります。どちらもある意味でデータのセキュリティ保護に使用されますが、それ以外は本質的に無関係です。両者を区別するために、執筆者はユーティリティプログラムをcrypt(1)と呼ぶことがよくあります。これはUnixマニュアルページのセクション1に記載されているためです。一方、パスワードハッシュ関数はcrypt(3)と呼ばれます。これはマニュアルのセクション3に記載されているためです。
参照
[編集]参考文献
[編集]- ^ – FreeBSD一般コマンドマニュアル
- ^ McIlroy, MD (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術レポート). CSTR. Bell Labs. 139.
- ^ "Unix Archive Sites " . TUHS
- ^ Peter Selinger: ccrypt。2008年7月27日閲覧。
- ^ FUD Crypter
- ^ Baldwin, Bob (1985–1994). "Crypt Breaker's Workbench" . 2011年8月18日時点のオリジナルからのアーカイブ。
- ^ Peter Selinger: unixcrypt-breaker。2008年7月27日閲覧。
外部リンク
[編集]- OpenSolarisのcrypt(1)のソースコード(輸出規制をクリアした後に公開)
- Version 7 Unixのcrypt(1)のソースコード(簡易化された1ローターのエニグマ型マシン)
- バージョン6 Unixのcrypt(1)のソースコード( Boris HagelinのM-209暗号機の実装)