05 April, 2021

HMACとは

HMACとは

HMACとそのダイジェスト値について簡単に説明します。 HMAC(Hash-based Message Authentication Code)とはメッセージ認証符号と呼ばれ、 秘密鍵とメッセージ(任意のデータ)とハッシュ関数をもとにハッシュ値を計算するアルゴリズムです。 単純にメッセージのハッシュを取れば、同一時刻にハッシュを計算すると誰もが同じ値を 入手することができます。そこで、秘密鍵を使ってメッセージのハッシュを取ることで 同一時刻であっても同じ秘密鍵を共有していない限り同じ結果を得ることができなくなります。 ハッシュなので、ハッシュ値から元の秘密鍵やメッセージを再生することもできません。 参考になるかわかりませんがHMACの計算式を示します。

HMAC_K(m) = h((K^opad) | h((K^ipad) | m))
K: 秘密鍵
opad: 0x5c5c...5c5c
ipad: 0x3636...3636
^: 排他的OR
|: OR
m: メッセージ
h(): ハッシュ関数

この式が示すようにHMACを実行するには、「秘密鍵」、「メッセージ(任意のデータ)」、 「ハッシュ関数の種類」の3つのパラメータが必要になります。


Tags: , ,