SHA-256 って採をしているの

峻さん、こんにちは。室宝蝕kグル`プの稼-看噛温敬温稼です。
蜂週り扉を需ると仝うわぁ|昔兇靴修Α垢ら仝うわぁ´慮がもたれそう々になりました。

云籾です。
デ`タが個ざんされたかどうかを鳩範する圭隈としてハッシュv方があります。念指、ハッシュv方の古勣についてお三ししましたので、書指はハッシュv方のアルゴリズムの1つである仝皆堰粥-256々が、どのようにして販吭のデ`タからハッシュ、鯔祿しているのかをお三しします。

SHA-256

畠悶フロ`

ハッシュv方のインプットとなるデ`タのことを仝メッセ`ジ々と柵びます。皆堰粥-256の畠悶の送れは參和の宥りとなります。

  1. 512ビットで護り俳れるように、メッセ`ジにパディングします。
  2. パディングしたメッセ`ジを512ビットで蛍護します。
  3. 蛍護した512ビットごとに、64倖の32ビットのワ`ド(安0 ゛ W63)を伏撹します。
  4. 64倖のワ`ド(安0 ゛ W63)を圷にブロックI尖を佩います。
  5. 畠てのブロックI尖を佩い、その潤惚がハッシュ、砲覆蠅泙后

貧芝の蹐濃読くしている倖侭は朔ほど蠅靴需ていきます。

パディング

皆堰粥-256ではメッセ`ジを512ビットに蛍護してI尖していきます。メッセ`ジの海さは販吭なので、駅ずしも512ビットで蛍護することは竃栖ません。なので、メッセ`ジが512ビットで蛍護できるようにパディングめ麗をしてあげる駅勣があります。

  1. メッセ`ジの恷朔に1┘咼奪硲を原嚥します。和躊。
  2. 512ビットで護り俳れるビット海から64ビット蛍を火して、0をめます。和躓
  3. 火しといた64ビット蛍に、メッセ`ジの海さを原嚥します。和躇筍

W0 ゛ W63 の麻竃

蛍護された512ビットのデ`タから、64倖の32ビットのワ`ドを麻竃します。512ビットをg歓に32ビットで蛍護すると16倖までしか麻竃されません。なので17倖參週は蒙艶な柴麻により麻竃することになります。

Rり卦しになりますが、安0 ゛ W15 まではg歓に512ビットのデ`タを32ビットで蛍護したものになります。安16 參週は參和の柴麻塀により箔めます。

Wt = σ1(Wt-2) + Wt-7 + σ0(Wt-15) + Wt-16

毛げ竃したくなる柴麻塀ですね。1つずつ需ていきましょう。
塀嶄のtというのは、ラウンド方になります。この魁栽、tは16 ゛ 63のいずれかになります。箭えば、W16 を箔めたい魁栽は參和のようになります。

W16 = σ1(W14) + W9 + σ0(W1) + W0

σ0σ1はv方です。インプットとなる」貧の塀では安14もしくは安1を、嘔指もしくは嘔シフトして、それぞれを恰看姻した潤惚を竃薦します。嘔指というのは、儉桟嘔シフトのことです。

ブロックI尖

W0 ゛ W63 を麻竃したら、AいてはブロックI尖を佩います。ハッシュ、礼Lさは械に耕協で、SHA-256 であればハッシュ、礼Lさは256ビットになります。ブロックI尖は販吭Lのメッセ`ジを耕協LにするI尖になります。

ブロックI尖では、いずれハッシュ、箸覆256ビットを8倖の32ビットのワ`ドに蛍護し、それらを坪何彜蓑として隠隔します。坪何彜蓑は粥バッファから堰バッファの8倖で更撹されおり、兜豚彜蓑として蒙協の耕協、峺協されています。坪何彜蓑の兜豚、惑以の畠悶フロ`の蹐房敗悗靴討い泙坑

坪何彜蓑の粥゛堰にして、枠ほど麻竃した安0 ゛ W63 のそれぞれでステップI尖を64指Rり卦し佩います。恷朔に64指Rり卦し佩った潤惚と、ステップI尖をする參念の彜蓑を紗麻します。紗麻した潤惚が仟しい坪何彜蓑となり、肝の512ビットのI尖に哈き@がれます。

ステップI尖

ブロックI尖で佩われているステップI尖は參和の蹐茲Δ砲覆蠅泙后

児云議には粥バッファを京バッファへ、京バッファを遺バッファへ、などのようにバッファごとシフトします。しかし、粥バッファと禽バッファにvしては、蒙艶なI尖が豫みます。

粥バッファと掘バッファにして、Σ0Σ1 のI尖が佩われます。Σ0Σ1 はv方です。σ0σ1 と揖じように、嚥えられた、して嘔指を佩い、それぞれを恰看姻した潤惚を卦します。

輹个砲△襦献好謄奪徠栖罎龍方悪t々ですが、これは皆堰粥-256の碧で畳められている協方を聞います。

ハッシュ、鯒鵑瓩

すべてのブロックI尖を佩い、坪何彜蓑の8倖の粥゛堰を潤栽した潤惚がハッシュ、箸覆蠅泙后

おわりに

皆堰粥-256で採をやっているのかをお三ししました。ハッシュ、鯒鵑瓩燭い箸は、ライブラリが炎覆排智發気譴討い襪、巷蝕されていると房いますので、徭恬せずにそちらを聞うようにしましょう。

SHA-1およびSHA-2を協めている PUB 180-4 をれば、採をやっているのかは蛍かるのですが、これらの協方やI尖が、なぜn融塚來を毅隠竃栖るのか蛍かりませんね。方僥にい繁なら蛍かるのでしょうか。

ではまた。


Recommendおすすめブログ