プログラム

SHA-2とは

2020年4月27日

SHA-2(Secure Hash Algorighm 2)

SHA-2とは

SHA-2(Secure Hash Algorighm 2)とは、入力データを一定の手順で計算を行い、入力値のデータの長さに関わらず、決まった長さの文字列を出力するハッシュ関数の標準規格の一つで、前規格であるSHA-1(Secure Hash Algorighm 1)から多くの改良が加えられています。

ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。ハッシュ関数は、入力データが同じであれば、必ず同じハッシュ値を出力し、入力データが少しでも異なればまったく異なるハッシュ値が出力されます。

そして、ハッシュ値への変換は簡単に計算できるが、元に戻すことは非常に困難である「一方向性関数」の特性があります。

ハッシュ関数

SHA-2は、2001年にNIST(アメリカ国立標準技術研究所)によって連邦情報処理標準の一つとして標準化されています。

2005年頃から前規格である SHA-1 に対する効率的に攻撃する手法がいくつか発見されているため、セキュリティ用途でSHA-1を使用するのは安全ではありません。そのため、近年では SHA-2 への移行が進んでいます。

SHA-2の特徴

SHA-2は、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256の6つのバリエーションを持ち、ハッシュ長(ハッシュ値の長さ)は224、256、384、512ビットのいずれかです。

最長のSHA-512が最も安全性が高く、一般的にはSHA-256がよく利用されています。

SHA-2のイメージ例

上記図は「テスト」という入力データを SHA-256 と SHA-512 でハッシュ値へと変換した例です。

  • SHA-256で変換したハッシュ値は256ビット(16進数では64桁)
  • SHA-512で変換したハッシュ値は512ビット(16進数では128桁)

このように、利用するバリエーションにより、ハッシュ値の長さが異なります。

helpful