、MD5暗号化の原則
プロセスMD5アルゴリズムは4つのステップに分割される:元の処理、初期値、処理サイクル、スプライシングの結果を設定します。
最初のステップ:元のプロセス
まず、448に等しくない場合、残りの結果の元の記述は、512 448に等しくなるように充填する必要があり、結果の残りの部分に元の長さ(ビット)512を計算します。メソッドを充填する最初の残りのビット0を充填する、1を満たすことです。充填後、情報長が512×N + 448です。
その後、位置(= 64 512から448)、最後の補数でバイナリ値の長さの残りは実際の元の長さの記録。この処理後の情報の長さは512 *(N + 1)です。
ステップ2:初期値を設定します
128のMD5ハッシュ結果の長さは、グループ当たり32は、4つの群に分けました。この結果は、進化を経て得られたA、B、C、Dの4つの初期値の4つのグループです。(16進数)次のように公式はMD5、A、B、C、Dの初期値を実現しました:
A=0x01234567
B=0x89ABCDEF C=0xFEDCBA98 D=0x76543210
第三段階:加工サイクル
このステップでは、この数字は進化の過程の一つのA、B、C、Dの値を表し、私たちはこの絵を見てみましょう、最も複雑なステップです。
四つのグループA、B、Cは、描画、Dはハッシュ値です。各サイクルは、古いABCDが新しいABCDを生成ようになります。どのように多くのサイクル、それの合計を行いましたか?治療後に元の長さによって決まります。
処理後の元の長さがMであると仮定
M / 512 =メインサイクル
各々は、メインループ32分の512 * 4 = 64サイクル次男を含みます。
この図の上に表現次男・プロセスの単一サイクルです。
次の図の説明の他の要素:
グリーンF 1
、図グリーンF、非線形関数を表します。公式の関数MD5は4つあります使用しました:
F(X, Y, Z) =(X&Y) | ((~X) & Z)
G(X, Y, Z) =(X&Z) | (Y & (~Z))
H(X, Y, Z) =X^Y^Z
I(X, Y, Z)=Y^(X|(~Z))
次男ループ下メインループ64において、F、G、H、私は最初の16が使用して16第四、第三のHを使用して16 F.、第16 Gの使用を使用して、交互に使用しましたI.
2.レッド「フィールド」
赤卍は、平均値の総和を表し、非常に簡単です。
3.Mi
ミオリジナルのポストは、治療の最初のステップです。第1のステップでは、元の後処理の長さは、512の整数倍です。元512の各々は、M0〜M15、32のアリコートの各々の長さとして指定された16の等しい部分に細分されます。64サイクル、16サイクルのそれぞれの次男で、一方が交互M1〜M16を使用します。
4.Ki
定数、64サイクルの次男、使用される各時定数が異なっています。
<<黄色
第一轮:
FF(a,b,c,d,M0,7,0xd76aa478) s[0]=7, K[0] = 0xd76aa478 FF(a,b,c,d,M1,12,0xe8c7b756) s[1]=12, K[1] = 0xe8c7b756 FF(a,b,c,d,M2,17,0x242070db) FF(a,b,c,d,M3,22,0xc1bdceee) FF(a,b,c,d,M4,7,0xf57c0faf) FF(a,b,c,d,M5,12,0x4787c62a) FF(a,b,c,d,M6,17,0xa8304613) FF(a,b,c,d,M7,22,0xfd469501) FF(a,b,c,d,M8,7,0x698098d8) FF(a,b,c,d,M9,12,0x8b44f7af) FF(a,b,c,d,M10,17,0xffff5bb1) FF(a,b,c,d,M11,22,0x895cd7be) FF(a,b,c,d,M12,7,0x6b901122) FF(a,b,c,d,M13,12,0xfd987193) FF(a,b,c,d,M14,17, 0xa679438e) FF(a,b,c,d,M15,22,0x49b40821) 第二轮: GG(a,b,c,d,M1,5,0xf61e2562) GG(a,b,c,d,M6,9,0xc040b340) GG(a,b,c,d,M11,14,0x265e5a51) GG(a,b,c,d,M0,20,0xe9b6c7aa) GG(a,b,c,d,M5,5,0xd62f105d) GG(a,b,c,d,M10,9,0x02441453) GG(a,b,c,d,M15,14,0xd8a1e681) GG(a,b,c,d,M4,20,0xe7d3fbc8) GG(a,b,c,d,M9,5,0x21e1cde6) GG(a,b,c,d,M14,9,0xc33707d6) GG(a,b,c,d,M3,14,0xf4d50d87) GG(a,b,c,d,M8,20,0x455a14ed) GG(a,b,c,d,M13,5,0xa9e3e905) GG(a,b,c,d,M2,9,0xfcefa3f8) GG(a,b,c,d,M7,14,0x676f02d9) GG(a,b,c,d,M12,20,0x8d2a4c8a) 第三轮: HH(a,b,c,d,M5,4,0xfffa3942) HH(a,b,c,d,M8,11,0x8771f681) HH(a,b,c,d,M11,16,0x6d9d6122) HH(a,b,c,d,M14,23,0xfde5380c) HH(a,b,c,d,M1,4,0xa4beea44) HH(a,b,c,d,M4,11,0x4bdecfa9) HH(a,b,c,d,M7,16,0xf6bb4b60) HH(a,b,c,d,M10,23,0xbebfbc70) HH(a,b,c,d,M13,4,0x289b7ec6) HH(a,b,c,d,M0,11,0xeaa127fa) HH(a,b,c,d,M3,16,0xd4ef3085) HH(a,b,c,d,M6,23,0x04881d05) HH(a,b,c,d,M9,4,0xd9d4d039) HH(a,b,c,d,M12,11,0xe6db99e5) HH(a,b,c,d,M15,16,0x1fa27cf8) HH(a,b,c,d,M2,23,0xc4ac5665) 第四轮: Ⅱ(a,b,c,d,M0,6,0xf4292244) Ⅱ(a,b,c,d,M7,10,0x432aff97) Ⅱ(a,b,c,d,M14,15,0xab9423a7) Ⅱ(a,b,c,d,M5,21,0xfc93a039) Ⅱ(a,b,c,d,M12,6,0x655b59c3) Ⅱ(a,b,c,d,M3,10,0x8f0ccc92) Ⅱ(a,b,c,d,M10,15,0xffeff47d) Ⅱ(a,b,c,d,M1,21,0x85845dd1) Ⅱ(a,b,c,d,M8,6,0x6fa87e4f) Ⅱ(a,b,c,d,M15,10,0xfe2ce6e0) Ⅱ(a,b,c,d,M6,15,0xa3014314) Ⅱ(a,b,c,d,M13,21,0x4e0811a1) Ⅱ(a,b,c,d,M4,6,0xf7537e82) Ⅱ(a,b,c,d,M11,10,0xbd3af235) Ⅱ(a,b,c,d,M2,15,0x2ad7d2bb) Ⅱ(a,b,c,d,M9,21,0xeb86d391)
4段階:結果スプライシングを
最終的に生成プロセスは、周期A、B、C、Dが一緒に4つの値つなぎ、この手順は非常に簡単で、文字列に変換することができます。
二、MD5暗号化アプリケーション
。①改ざんを防止:
1)、このような電子文書を送信するよう、送信する前に、私はMD5出力aを取得してみましょう。その後、他方によって受信された電子文書の後、もう一方の側は、出力BのMD5でした。aとbが改ざんされていない真ん中に代わって同じである場合。
2)例えば、私は犯罪者は、インストーラにトロイの木馬を追加しないようにするために、私はサイト上のインストール・ファイルからMD5の出力結果を発表することができ、ファイルのダウンロードを提供します。
3)変更されたファイルをチェックアウトした後に検出されたか否かSVNは、また、MD5を使用します。
。②直視プレーンテキストを防ぐ:彼らは、ユーザーのパスワードデータベース保存されたユーザーのパスワードを保存する多くのWebサイトは、のMD5値です。だから、犯罪者は、データベースのユーザのパスワードMD5値を取得し、あなたがユーザーのパスワードを知ることができない場合でも。(例えば、ユーザのパスワードにUNIXシステムでは、格納された暗号化により)、MD5(または他の同様のアルゴリズムである。ユーザーがログインすると、システムはファイルシステムにユーザーが入力したパスワードMD5値を算出し、行くと保存MD5ファイルシステム内の値と比較して、正しいパスワードが入力されているかどうかを判断している。このステップでは、システムがユーザのパスワード場合の符号を知りませんが、システムにログインしたユーザの正当性を判断することができます。これは、ユーザーが保存されますだけでなく、パスワードは知っているが、またある程度までも危険にさらされているパスワードの難易度を高めるために、システム管理者権限を持つユーザーです。)
③(デジタル署名)否認を防ぐ:これは、サードパーティの認証機関が必要です。認証機関などの書かれた文書では、MD5アルゴリズムを使用して、この文書の要約情報を生成し、記録を作成します。A後でこの文書は彼によって書かれていないと言うなら、当局は再生成要約情報と記録には、要約冊子の情報と比較するには、このファイルを必要と同じですが、それが書かれたA.であることが判明しました これは、いわゆる「デジタル署名」です。