MD4 ハッシュコード計算機
出版された: 2025年2月16日 22:52:21 UTC
最終更新日 2026年1月12日 9:07:36 UTC
MD4 Hash Code Calculator
MD4(Message Digest 4)は、1990年にロナルド・リベストによって設計された暗号ハッシュ関数です。任意の長さの入力から、128ビット(16バイト)の固定ハッシュ値を生成します。MD4は、衝突攻撃(同じハッシュ値を生成する2つの異なる入力を見つけること)を可能にする脆弱性があるため、現在では暗号学的に破綻していると考えられており、新しいシステムの設計には使用すべきではありません。後方互換性のあるハッシュコードを生成する必要がある場合に備えて、ここではMD4を取り上げています。
完全開示:このページで使われているハッシュ関数の特定の実装を書いたのは私ではない。これはPHPプログラミング言語に含まれる標準関数である。私は便宜上、ウェブ・インターフェースを作成し、ここで一般に利用できるようにしただけである。
MD4ハッシュアルゴリズムについて
私は数学者ではないので、このハッシュ関数を数学者ではない他の人にも理解できるような形で説明してみます ;-) 数学的な説明がお好みであれば、他の多くの Web サイトで見つけることができます。
MD4を特別なシュレッダーと考えてみてください。紙を細断するのではなく、あらゆるメッセージ(手紙、パスワード、本など)を小さな固定サイズのレシートに「細断」します。メッセージの大きさに関わらず、このシュレッダーは常に16バイト(128ビット)、つまり16進数で32文字の小さなレシートを作成します。
メッセージを正しく細断するには、次の 4 つの手順を実行する必要があります。
ステップ1: メッセージの準備
- 細断する前に、紙がシュレッダーにぴったり収まるように調整する必要があります。
- メッセージが短すぎる場合は、紙がちょうど収まるように、余分な空白スペース(落書きやフィラーなど)を追加します。
- 長すぎる場合は、同じサイズの複数のページに分割します。
ステップ2:シークレットスタンプを追加する
- メッセージを調整した後、元のメッセージの長さを示す秘密のスタンプを最後に追加します。
- これにより、シュレッダーは、追加したフィラーの量に関係なく、メッセージの元のサイズを追跡できるようになります。
ステップ3:シュレッディングプロセス(3ラウンドのマジック)
- 今、メッセージはシュレッダーにかけられます。
- シュレッダーには、特殊なパターンで一緒に回転する 4 つのギア (A、B、C、D) があります。
- 歯車は3回転し、単語を混ぜる、部品をひっくり返す、ルービックキューブのように回転させる、さまざまな部品をぶつけるなどの動作を行います。
- 各ラウンドごとに、メッセージはますます認識不可能な混乱したものに見えてきます。
ステップ4:最終受領書
- 回転、ひっくり返し、粉砕のすべてが完了した後、シュレッダーは短い数字と文字の文字列 (ハッシュ) であるレシートを吐き出します。
- このレシートは、1 つの単語を細断した場合でも、本全体を細断した場合でも、常に同じ長さになります。
残念ながら、時が経つにつれ、この魔法のシュレッダーが完璧ではないことが分かってきました。賢い人たちは、シュレッダーを騙して2つの異なるメッセージに対して同じレシートを発行させる方法(衝突と呼ばれる)と、ギアの回転を予測して偽のレシートを作成する方法を発見しました。そのため、MD4はもはや重要な情報を扱うのに安全ではないと考えられています。
さらに読む
この投稿が気に入った場合は、次の提案も気に入るかもしれません:
