MD5暗号化を考えます

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.であることが判明しました これは、いわゆる「デジタル署名」です。

おすすめ

転載: www.cnblogs.com/liveinpresent/p/11708098.html