エンジニアとの会話に役立つ用語集

【セキュリティ】SHA-256とは?ハッシュ関数について解説

セキュリティの勉強をしていて、SHA-256という用語が出てきたのですが、聞いたことがなく、よく分かりません。SHA-256について教えてください!

 

このような疑問に回答します。

 

本記事の内容

・SHA-256とは?
・ハッシュ関数って何?

 

 本記事の信頼性

SHA-256という用語について、セキュリティ関係の用語として聞いたことはありますでしょうか。身近なところでは、ビットコインにおけるブロックチェーンを支える技術として利用されています。今回は、一見難しそうなSHA-256という用語について、分かりやすく説明します。

 

SHA-256とは?

SHA-256とは、ハッシュ関数の一つで、256ビットのハッシュ値を生成することができる。SHA-256は、Secure Hash Algorithm 256-bitの略やな。
なるほど。ちなみに、これ何と読むのですか・・・?
基本的にはシャーニゴロと読むで。ちなみに、SHA-256は、SHA-2という規格に分類される。SHA-2は、アメリカ国立標準技術研究所によって標準化されたんや。
シャー二ゴロはハッッシュ関数・・・ハッシュ関数って何ですか?

ハッシュ関数って何?

ハッシュ関数は、暗号化などに使われる。ハッシュ関数とは、任意長のデータから規則性のない固定長のデータを生成する関数のことや。それで、得られたデータのことをハッシュ値と呼んでいる。
任意のデータから規則性のないデータを生成するのですね。
また、ハッシュ関数のうち、電子署名などで用いられるものを暗号学的ハッシュ関数(一方向性ハッシュ関数)と呼ぶ。暗号学的ハッシュ関数は、ビットコインのブロックチェーンでも使われているんやで。
仮想通貨で用いられる技術なのですね!ブロックチェーンって、何のことですか?
ブロックチェーンは、分散型台帳とも呼ばれており、ビットコインを構成している基盤技術のことや。ネットワーク上でユーザー同士が台帳を共有することで、お互いを監視することができ、取引情報などのデータを同期して記録する手法のことやな。お互いを監視できるという点で信頼性の担保につながっており、データの改ざんなどを予防している。
なるほど。セキュリティの担保になるから仮想通貨の技術に使用されているのですね!SHA-256について、もっと知りたいです!
先ほど、SHA-256の話をしたが、SHA-2という規格に分類されるという話をしたな。このSHA-2の前には、SHA-1という規格があり、この規格に多く改良が加えられたものがSHA-2である。
違いはどういったところなのでしょうか?
SHA-1は、SHA-2と同様の機能を持っておりハッシュ値を生成する。160ビット生成するんや。SHA-1は、広く多くのアプリケーションやプロトコルに採用されているが、今はSHA-1からSHA-2への移行が推奨されている。
なぜですか・・・?改良されたからでしょうか?
簡単に言うと、SHA-1よりもSHA-2の方が安全性が高いという理由やな。SHA-1は脆弱性が発見されたこともあり、移行の傾向が強まっている。
なるほど。

 

ハッシュ化を行う理由

 

SHA-256はハッシュ関数を生成するということは理解できたのですが、具体的にどういったメリットがあるのでしょうか?
先ほど、暗号学的ハッシュ関数という言葉について説明したやろ。これは、一方向性という特徴をもっており、アルゴリズム的に不可逆の特徴をもっている。つまり、メッセージを入力してハッシュ値を生成しても、このハッシュ値からは元のメッセージを出力できないということになるんや。復元できないということ。
・・・元のメッセージが異なっている場合は、ハッシュ値も変わるということでしょうか?
そのとおり。入力内容が異なれば、出力内容は異なるで。また、入力するメッセージがいくら長くても、基本的にはハッシュ値の出力スピードは高速になる。
すごいですね!つまり、ハッシュ値はメッセージの内容に依存しているから、ハッシュ値が同じであれば、メッセージの内容も同じだと証明できるということですね!
なかなか鋭いな。例えば、あるファイルが改ざんされていないかどうか確認したい場合には、ハッシュ値を確認すれば事足りる。そのファイルの最初のハッシュ値が記録されている必要はあるが、そのハッシュ値に変化がなければ、そのファイル内容は変更されていないということになる。
つまり、改ざんが疑われているファイルの最初のハッシュ値と、現在のハッシュ値を比較して、異なっていれば改ざんされている可能性が高いということですね!
可能性が高まるということやな。

 

まとめ

 

SHA-256やハッシュ関数がどういうものか分かったかな?
はい!


・SHA-256とは、ハッシュ関数の一つで、256ビットのハッシュ値を生成
・ハッシュ関数は、暗号化などに使われ、任意長のデータから規則性のない固定長のデータを生成
・SHA-256の技術によってファイルの改ざんの有無などを確認可能

ですね!

うむ!SHA-256はセキュリティ分野では、しばしば見かける用語ではあるから、しっかり覚えてくように!
どのような機能があるか確認するだけでも勉強になるぞ。随時自分でも調べるように!これからも、わからんかったら俺に聞くんやで!

-エンジニアとの会話に役立つ用語集
-, ,

Copyright© ワカテク , 2020 All Rights Reserved.