ここから本文です

コレ1枚で分かる「ブロックチェーンで使われる暗号技術」(1)

6/6(火) 10:06配信

ITmedia エンタープライズ

 ブロックチェーンで使われる暗号化技術「ハッシュ関数」「公開鍵暗号」について解説します。

【図解】コレ1枚で分かる「ブロックチェーンで使われる暗号技術」:「ハッシュ関数」と「公開鍵暗号」

●ハッシュ関数

 ハッシュ関数は、あるデータからそのデータを要約する固定長の数列を生成する演算手法のことで、「要約関数」とも呼ばれています。

 得られた数列は「ハッシュ値」といいます。ハッシュ値は、元のデータが同じであれば、同じ数列となります。しかし、その数列から元のデータを復元することはできません。また、大きや内容の異なるデータでも、同じ長さ(固定長)の数列になります。このような特性を利用して、データ内容の比較を高速に実行することができます。

 異なるデータから異なるハッシュ値が必ず生成されることがハッシュ関数の理想ではありますが、現実的には難しく、似ている2つのデータから似ているハッシュ値が生成されないことや、ハッシュ値から元データが復元できないなどの要件を満たすことで、実用面での信頼性や安全性などを保っています。

●公開鍵暗号

 公開鍵暗号は、一対の暗号鍵によって、片方の鍵を暗号化に、もう片方を復号(暗号化されたデータを元のデータに戻す)に使う暗号方式のことです。

 例えば、ある相手と暗号化されたデータをやりとりしたい場合、そのデータの受け手は、片方の鍵を相手に渡すか、どこかネットワーク上の公開の場にその鍵を置いておきます。この鍵を「公開鍵」と呼びます。

 受け手の公開鍵を手に入れた送り手は、それを使ってデータを暗号化し、それを相手に送ります。暗号化されたデータを復号するためには、公開鍵と対になったもう片方の鍵でなければできません。つまり、一度、公開鍵で暗号化してしまえば、対の鍵がない限り、誰もデータを元に戻すことができませんので、暗号化のための鍵を公開してしまっても問題はないのです。

 受け手は、対の鍵を公開しなければ、自分以外は復号できませんから、安全にデータの受け渡しができるのです。この対になる鍵を「秘密鍵」と呼びます。

 秘密鍵は、暗号化にも使えます。例えば、送り手が自分の秘密鍵でデータを暗号化します。そのデータは、送り手の公開鍵でしか復号できません。従って、受け取った側は、送り手の公開鍵で復号できれば、これはその送り手のデータであることが証明されることになります。

 このやり方を使うことで、「電子署名」を実現しています。電子署名については、次回に説明します。