SHA-1
読み:エスエイチエイ-ワン
外語:SHA-1: Secure Hashing Algorithm 1

 一方向ハッシュ関数の一つ。原文の長さなどに関係なく、160ビットの固定長データ列(ハッシュ値)を生成する。現在は非推奨の古い技術である。
目次

概要
 同一性確認(改竄されてないことの確認)や認証などに利用されていた。
 1996(平成8)年に有名な一方向ハッシュ関数MD5に弱点が発見されたため、NSANIST用にSHS(Secure Hash Standard)を考案し、この修正版が1994(平成6)年にSHAとなった。更に1995(平成7)年にこの修正版が公表されSHA-1と呼ばれている。
 このような経緯からNISTの推奨する標準となり、この仕様はFIPS PUB 180-1として策定された。
 しかし現在ではSHA-1にも弱点が見つかったためNISTは新たな仕様SHA-2を策定、SHA-1は非推奨となっている。

特徴

性質
 このハッシュ値には、MD5と同様に次のような特徴がある。
 また、MD5と比較し、次のメリットがある。

問題点など

クラッキング
 ラウンド数80回のフルスペックSHA-1は、ブルートフォースアタック(総当たり攻撃)においては、280回の演算が必要である。
 しかし2005(平成17)年、支那の研究チームにより、ラウンド数80回のSHA-1を269回の演算で、ラウンド数58回のSHA-1を233回の演算で、衝突を発生させることが可能とされた。
 この時点では、ある程度効率的な攻撃方法が見つかったという段階であり、具体的に衝突を起こす例が求まったわけではないが、SHA-1の安全性が大幅に低下したことは間違いがない。

NISTの対応
 そこで、国立標準技術研究所(NIST)は、SHA-1に更に大きな問題が生じるより前に、対策を講じることにした。
 SHA-1の新規の採用は縮小し、2010(平成22)年までにSHA-2、より具体的にはそのうちのSHA-256へと移行する、としており、これが俗に暗号アルゴリズムの2010年問題と呼ばれている。
 ただ、移行先がMD5やSHA-1の延長上にあるSHA-2で本当に良いのかという議論があり、最終的にはDESに対するAES選定と同じように新規のハッシュ関数SHA-3を公募することとなった。

Freestart Collisionの発見
 2015(平成27)年には、IV(初期化ベクトル)を都合の良い値に設定した上でSHA-1の全手順を実行する手順において、衝突を発生させるFreestart Collision(フリースタート衝突)が発見された
 ラウンド数58回など手順を減らしたものではなく、ラウンド数80回の完全仕様のSHA-1でFreestart Collisionが発見されたのは、これが初めてとされている。
 これですぐにSHA-1を使用した証明書の偽造が可能になるわけではない。MD5でもFreestart Collisionが発見されてから本物のCollisionが発見されるまで8年程度掛かっている。
 しかしSHA-1の安全性が無くなるまで間もなくという所まで来ていることから、早急にSHA-2への移行を進める必要があるのは間違いのないことである。

再検索