SHA-256 って採をしているの��
峻さん、こんにちは。室宝蝕�kグル�`プの稼-看噛温敬温稼です。
蜂週り扉を需ると仝うわぁ�|昔兇靴修Α垢�ら仝うわぁ´慮がもたれそう々になりました。
云籾です。
デ�`タが個ざんされたかどうかを鳩範する圭隈としてハッシュ�v方があります。念指、ハッシュ�v方の古勣についてお三ししましたので、書指はハッシュ�v方のアルゴリズムの1つである仝皆堰粥-256々が、どのようにして販吭のデ�`タからハッシュ�、鯔祿�しているのかをお三しします。
朕肝
SHA-256
畠悶フロ�`
ハッシュ�v方のインプットとなるデ�`タのことを仝メッセ�`ジ々と柵びます。皆堰粥-256の畠悶の送れは參和の宥りとなります。
- 512ビットで護り俳れるように、メッセ�`ジにパディングします。
- パディングしたメッセ�`ジを512ビットで蛍護します。
- 蛍護した512ビットごとに、64倖の32ビットのワ�`ド(安0 ゛ W63)を伏撹します。
- 64倖のワ�`ド(安0 ゛ W63)を圷にブロック�I尖を佩います。
- 畠てのブロック�I尖を佩い、その潤惚がハッシュ�、砲覆蠅泙后�

貧芝の�蹐濃読�くしている倖侭は朔ほど�蠅靴�需ていきます。
パディング
皆堰粥-256ではメッセ�`ジを512ビットに蛍護して�I尖していきます。メッセ�`ジの海さは販吭なので、駅ずしも512ビットで蛍護することは竃栖ません。なので、メッセ�`ジが512ビットで蛍護できるようにパディング����め麗��をしてあげる駅勣があります。
- メッセ�`ジの恷朔に1�┘咼奪硲�を原嚥します。��和�躊。�
- 512ビットで護り俳れるビット海から64ビット蛍を火して、0を��めます。��和�躓���
- 火しといた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融塚來を毅隠竃栖るのか蛍かりませんね。方僥に��い繁なら蛍かるのでしょうか。
ではまた。
