5分でわかるSSL通信 SHA-1、SHA-2の違いとは?

■ SHA-1アルゴリズム

SHA-1とは、任意の長さの元データを元に160ビットの値を生成するハッシュ関数です。SHA-1はNSA(米国家安全保障局)が考案し、1995年にNIST(米国標準技術局)によって連邦情報処理標準のひとつとして標準化されました。SHA-1はSHAシリーズの中で最も広く用いられており、多くのアプリケーションやプロトコルに採用されています。

■ SHA-2アルゴリズム

SHA-2は、前規格であるSHA-1を元に、多くの改良が加えられたハッシュ関数です。こちらは2001年にNSAが開発し、NISTが標準に採用しました。SHA-2にはSHA-224、SHA-256、SHA-384、SHA-512の4つのバリエーションがあり、末尾の数字がハッシュ値のビット長を表しています。最長であるSHA-512が最も安全性が高いですが、一般的にはSHA-256が最もよく利用されています。

SHA-1からSHA-2への移行が推奨されている

image3

異なる元データから同一のハッシュ値が生成される可能性が低ければ低いほど、そのハッシュ関数は安全なものとなります。もしも、異なる元データにも関わらず同一のハッシュ値が生成されてしまえば、それを成りすましに悪用されてしまうからです。

元々、SHA-1は、2の80乗分の1という、非常に小さな確率でハッシュ値の衝突が起きるとされていました。しかし、2005年、SHA-1に対する効果的な攻撃法が発見され、より少ない試行回数でそれを発生させる事ができるとわかってきたのです。近い将来、コンピューターの性能がさらに向上し、さらに高速な演算ができるようになってしまえば、いずれこのアルゴリズムそのものが破綻するのは自明です。そのため、より強固なハッシュ関数であるSHA-2への移行が推奨されています。

おわりに

私たちが何気なく観ているWebサイトは、SSL、そしてハッシュ化の技術によって支えられています。その基礎知識を知ることで、とっつきづらい印象のあるセキュリティの技術が、少しだけ身近に感じられるようになるのではないでしょうか。

この記事を書いた人

ぞの

Webアプリケーションエンジニアとして様々な現場に参画し、多種多様な言語を習得。 エンジニアとしての強みは汎用性の高さと、メンバーとコミュニケーションを取り合いながら円滑に案件を進められること。 趣味は音楽と将棋。Ruby愛好家。

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。

geechs

ChatBot

《1分で登録できる!》
Facebook Messengerを使って
最新記事を受け取れます。

利用する