Fintech革命 ブロックチェーンのハッシュ関数について調べてみた。
皆さんはFintech(フィンテック)という言葉をご存知でしょうか。
FinTech(フィンテック)とは、金融(Finance)と技術(Technology)を組み合わせた造語で金融サービスと情報技術を結びつけたさまざまなサービスを意味します。
今回も前回に引き続きFintechの注目技術であるブロックチェーンについて調べた事を書いて行きたいと思います。
ブロックチェーンは今回が3回目の記事となり、以前の記事と合わせてご確認ください。
前回目の記事はこちら。
はじめに~ブロックチェーンは単なるテクノロジーではなく思想。
Fintechで使用されているテクノロジーとしてブロックチェーンを調べてきましたが、非常に興味深い内容です。当初は単なるテクノロジーと思っていましたが、思想に近いです。この辺りは追々記載して行きたいですが、今回はブロックチェーンで使用されているハッシュのテクノロジーにつて、今まで何となく理解している部分を調べた記事となります。
ハッシュの前回おさらい
ブロックチェーンでは前のブロックのデータをハッシュ値に変換して一つ後ろのブロックが持つ事で改ざん防止する仕組みです。
ハッシュはブロックを作る際にハッシュ関数という計算式に、前のブロックの値を当てはめると暗号化された乱数(ハッシュ値)を出力し、一つ後ろのブロックに格納します。前のブロックの値が同じであればハッシュ関数は毎回必ず同じハッシュ値が出力されます。
当てはめるハッシュ値は長さの制限はありませんが、出力される乱数は固定長となります。
この様なイメージです。
ハッシュ化と暗号化の違い
私が個人的に混同していた部分ですが、ハッシュ化は暗号化とは違います。
違いを説明する前に、可逆性と非可逆性という考え方があります。
可逆性:一度起きた事を元に戻せる事。
非可逆性:一度起きた事を元に戻せない事。
です。
ハッシュは、データをハッシュ関数を使って乱数に不可逆変換します。
インターネット等で使われているPKI(共通鍵暗号方式)などの暗号化技術は、データを可逆変換した後に必要に応じて複合化します。
結論:ハッシュ化は非可逆変換であり、変換後元に戻す事はできない。元のデータをハッシュ値に置き換える。一方で暗号化は可逆変換であり複合化が可能。
ハッシュ関数の種類
実際は多く存在しますが、代表的なハッシュ関数を紹介します。
MD5
与えられたデータから32桁のハッシュ値を出力します。
安全性が低く探索が容易に出来るアルゴリズムの為現在ではセキュリティ用途ではあまり使われません。
SHA-1
与えられたデータから40桁のハッシュ値を出力します。
脆弱性が見つかった為、SHA-2への移行が推奨されています。
(SHA-1の証明書を使ったWEBサイトでは警告メッセージが表示されるなど)
SHA-2
SHA-2の中にも色々ありますが、現在主流はSHA-256です。ハッシュ値が長ければ強度は有りますが重くなります。
SHA-224(ハッシュ値:56桁)
SHA-256(ハッシュ値:64桁)
SHA-384(ハッシュ値:96桁)
SHA-512(ハッシュ値:128桁)
SHA-512/224(ハッシュ値:56桁)
SHA-512/256(ハッシュ値:64桁)
結論:ハッシュ関数色々有るが現在はSHA-256が主流。
SHA-256が体感できるサイトがありました
こちらです。ご使用いただくと何となくイメージできます。
最後に、
今回はブロックチェーンで使われているハッシュ関数について記載させて頂きました。
はじめに~で記載させて頂いたとおり、未知の分野で非常に興味深い内容ですので今後も調べて行きたいと思います。
最後までお読み頂きありがとうございました。
次の記事はこちら。
この記事が気に入ったらサポートをしてみませんか?