ビットコインの基盤技術であるブロックチェーンに利用されている暗号技術として、SHA-256という名前を耳にする方もいるかもしれない。このSHA-256とはどのような成り立ちのものなのか、下記にご紹介する。

■SHAとは何か
SHAとはSecure Hash Algorithmの略称で、一群の関連した暗号学的ハッシュ関数のことを指す。

これらはアメリカ国家安全保障局(NSA)によって設計され、アメリカ国立標準技術研究所(NIST)によって標準ハッシュ関数Secure Hash Standardに指定されている。SHAには以下のバージョンが存在し、それぞれのバージョンには複数のバリエーションが存在する。

SHA-0(1993年)
SHA-1(1995年)
SHA-2(2001年)
SHA-3(2015年)

■SHA-256とは何か
ビットコインに使用されるハッシュ関数「SHA-256」は「SHA-2」というシリーズに分類される。SHA-2には、SHA-256以外に、SHA-224、SHA-384、SHA-512、SHA-512/224、SHA-512/256 などがあるが、これらの違いは基本的にはハッシュ値の出力長(bits)である。

SHA-256も、その他のハッシュ関数も、理論上セキュアと言われているが、確実に危険がないというわけではない。

一例として、SHAのシリーズである「SHA-1」は、2004年に中国山東大学数学系副教授の王小云 (Wang Xiaoyun)によってセキュアではない事が理論上発見され、その理論が広く知られて研究が進展した結果、2017年2月には実際に衝突攻撃の成功が示されている。

さらに、2004年に「SHA-1」がセキュアでないことが発見される以前の2001年に、「SHA-1」の改良版であるSHA-2の初版が発行されている。

なお、SHA-2は根本的には「SHA-1」と同じ「Merkle-Damgard construction」という構造が取られているものの、現在でも有効な攻撃法は発表されていない。

■NSAはSHAにバックドアを作ることが可能なのか?
SHA-2に分類されるSHA-256はNSAによって設計されているので、ビットコインが発表された2009年当初、こうした技術はNSAによる陰謀で、NSAにとってバックドアなど都合のよい設定が織り込まれているのではないかという声が聞かれることがあった。

しかし、SHA-256がオープン・アルゴリズムであり、世界のどの暗号学研究者にとっても検証が可能な状態になっているという理解が浸透し、また、理論的にもセキュアなハッシュ関数であることが理解されることで、現在そのような疑惑が聞かれることはほとんどなくなった。

世界に公開され、常に誰からも検証可能なアルゴリズムであるにもかかわらず、20年近く誰もバックドアの存在を見出すことができないことが、NSA陰謀論を否定する根拠になっている。

■SHA-3について
SHA-3はSHAシリーズでは初めてNSAが開発に関わっていないバージョンとなる。NISTがSHA-2よりもさらに強固なアルゴリズムを公募によって募集し、正式発行したものがSHA-3である。

SHA-1とSHA-2は、共通のMerkle-Damgard constructionという構造をもっており、SHA-1についてはすでに理論的にセキュアでないことが発見されていたため、Merkle-Damgard constructionという構造そのものへの不安感からSHA-3には別の構造が採用される結果となった。

しかし実際にはSHA-2への攻撃法はその後進展しなかったため、現在でもSHA-3の普及はほとんど進んでいない。

なお、NISTは現在でも機密ネットワークにはSHA-2以外のハッシュアルゴリズムを使用することを禁じており、SHA-3も禁止されている。

これは発行されて日の浅いSHA-3については、その堅牢性がまだ十分に証明されていないという理由のためだが、陰謀論の立場からは「NSAにはSHA-2に固執しなければならない事情があるのではないか」という憶測がされる場合がある。ただ実際には、バックドアの存在などは見つかっていないというのが現状である。

このように、ビットコインの基盤技術はNSAとつながりが深いものであるが、オープン・アルゴリズムであるという設定によって誰でも検証が可能であるということが大きな特徴といえる。




<MS>

情報提供元: FISCO
記事名:「 ビットコインを支える技術、SHA-256とはなにか【フィスコ・ビットコインニュース】