SHA-1
読み:エスエイチエイ-ワン
外語:SHA-1: Secure Hashing Algorithm 1
一方向
ハッシュ関数
の一つ。原文の長さなどに関係なく、160ビットの固定長
データ列
(
ハッシュ値
)を生成する。現在は非推奨の古い技術である。
目次
概要
特徴
性質
問題点など
クラッキング
NISTの対応
Freestart Collisionの発見
概要
同一性確認(
改竄
されてないことの確認)や
認証
などに利用されていた。
1996(平成8)年に有名な一方向ハッシュ関数
MD5
に弱点が発見されたため、
NSA
が
NIST
用に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と比較し、次のメリットがある。
ハッシュ値が160ビットに拡張された
問題点など
クラッキング
ラウンド数80回のフルスペックSHA-1は、
ブルートフォースアタック
(総当たり攻撃)においては、2
80
回の演算が必要である。
しかし2005(平成17)年、
支那
の研究チームにより、ラウンド数80回のSHA-1を2
69
回の演算で、ラウンド数58回のSHA-1を2
33
回の演算で、衝突を発生させることが可能とされた。
この時点では、ある程度効率的な攻撃方法が見つかったという段階であり、具体的に衝突を起こす例が求まったわけではないが、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への移行を進める必要があるのは間違いのないことである。
再検索