ブロックチェーンの技術【2つの暗号化技術】

blockchain-technology-2-encryption-technologies-topテクノロジー
スポンサーリンク

みなさん、こんにちは。

前回に引き続き、今回も、第4次産業革命の一つ、ブロックチェーンについてご紹介していきます。

前回は、仮想通貨としての利用において、
中央に管理者がいないことからくる、信用というものが、
ブロックチェーンの技術によって担保が取られている、
ということをご紹介しました。

その理由は、

  1. みんなにオープンにしている
  2. みんなで、管理、チェックしている
  3. 不正ができない

から、というものでした。

仮想通貨の仕組みとは?目指す社会とブロックチェーン
みなさん、こんにちは。 今回は、第4次産業革命の一つである、ブロックチェーンについて、ご紹介していきたいと思います。 これまで、当ブログでは、第4次産業革命のテクノロジーとして、IoT、AI、5Gなどをご紹介してきました。 じつは、今回ご紹...

今回からは、前回説明できなかった、これらのブロックチェーンの技術内容について、具体的に、詳しくご紹介していきます。

是非、ご覧ください。

スポンサーリンク

ブロックチェーンの技術【2つの暗号化技術】

まず、ブロックチェーンを知る上で極めて重要な、暗号化技術について、知っておきましょう。

ブロックチェーンで、使用されている暗号化技術には、下記の2つがあります。

  • 公開鍵と秘密鍵
  • ハッシュ関数

それぞれ、ブロックチェーンを理解するには、とても大事ですので、
誰にでも理解してもらえるよう、丁寧にご紹介していきます。

公開鍵と秘密鍵

public-and-private-keys
暗号化技術の一つ目は、公開鍵と秘密鍵です。

公開鍵は、その名の通り、みんなに公開される鍵のことです。
だれもが、それを使って鍵をかけたり、開けたりすることができます。

一方、秘密鍵は、それを持っている人しか、開けたり、鍵をかけたりすることができません。

因みに、ここでいう、鍵をかけるというのは、暗号化する、ということであり、
鍵を開けるということは、その暗号化されたものを開ける、ということで、復号、と呼ばれます。

鍵といっても、かけたり、開けたり、があってわかり辛いので、
ここでは、分かりやすいように、かける方を、南京錠、開ける方を、それを開ける鍵、として表現します。

公開鍵暗号方式

それでは、公開鍵暗号方式 の場合を、ご説明します。

公開鍵暗号方式では、イメージとして、

  • 公開鍵:南京錠
    public-key-padlock
  • 秘密鍵:それを開ける鍵
    private-key

と考えて下さい。

例えば、まことが、Aさんに、データを送りたい、とします。

まこと
まこと

データを送りたいんだけど。

Aさん
Aさん

了解。私の公開鍵を送るわね。

public-key-padlock-A

まこと
まこと

(おっ、Aさんの公開鍵が届いた。それじゃあ、送るか。)

lock-padlock-Aデータを中に入れ、Aさんの公開鍵を使って、鍵をかける。

locked-treasure-chest

Aさん
Aさん

(あっ、まことからきた。)

open-treasure-chest自分の公開鍵に、自分の秘密鍵を使って開ける。

このように、公開鍵暗号方式では、誰でも鍵をロックすることはできますが、
開けて中身を見ることができるのは、秘密鍵を持っている持ち主しかできない、ということになります。

どういったときに、この公開鍵暗号方式が使われるかというと、
例えば、ECサイトなどを利用して、個人情報や、カード情報などを送信する際に使われます。

まず、ECサイトにアクセスして、サイト側に、公開鍵を送ってもらいます。
個人情報などのデータを入力後、そのサイトの公開鍵を使って鍵をかけ、サイトに送信します。

サイトへの送信の際、万が一、宝箱が盗まれたとしても、開けるための秘密鍵は、サイトにしかないため、データが流出することはありません。

宝箱を入手後、サイトだけが、自身の持っている秘密鍵を使って鍵を開けることができ、データを安全に受け取れる、ということになります。

ただ、この方法では、暗号化や複合に時間がかかるため、
実際は、もっとスムーズな取引ができるよう、この方法に、共通鍵、というのを加えて行われているのですが、今回は、説明を割愛させていただきます。

電子署名

一方、電子署名の場合は、公開鍵暗号方式の逆のパターンになります。

電子署名では、イメージとして、

  • 秘密鍵:南京錠
    private-key-padlock
  • 公開鍵:それを開ける鍵
    public-key

と考えて下さい。

例えば、Aさんが、まことに、電子署名を送るとします。

Aさん
Aさん

そうだ、まことに、電子署名を送ろう。

lock-padlock-Aデータを中に入れ、自分の秘密鍵を使って、鍵をかける。

treasure-chest-and-public-key

まこと
まこと

(あっ、Aさんから、電子署名が届いた。)

open-treasure-chestAさんの秘密鍵に、Aさんの公開鍵を使って開ける。

このように、電子署名では、誰でも鍵を開けて中身を見ることができますが、鍵は、持ち主しかかけることができない、ということになります。

つまり、みんなに、中のデータは、間違いなくAさんのものである、ということが保証されるわけです。

また、データには、Aさんが鍵をかけた際、Aさんしかできない署名(このデータ全体の情報を圧縮したもの)がされます。

このため、データは見られるものの、これを不正に修正しようとすると、Aさんの署名と一致しないことによりバレるため、改ざんすることはできません。

実は、ブロックチェーンでは、まず最初に、この電子署名を使用して、
データを、秘密情報ではなく、公開情報として、誰もが読める形で送信されます。

冒頭でもご紹介した、ブロックチェーンの信用の理由の一つである、
①みんなにオープンにしている
というのは、この電子署名を使っているから、ということになります。

◇  ◇  ◇

因みに、この公開鍵や秘密鍵を使って、鍵をかけたり、開けたりというのは、一方向関数を使用しています。

例えば、323という素数を素因数分解すると、17×19になるのですが、
17×19が、323になる、というのは簡単です。
ですが、反対の、323が、17×19である、と計算することは、難易度が高くなります。

このように、一方向は簡単にできるが、反対は難しい、というものが、一方向関数です。
あてはめると、公開鍵が、323で、秘密鍵が、(17、19)という訳です。

秘密鍵(17、19)を、公開鍵323を使って開けることは簡単にできますが、
公開鍵323から、秘密鍵(17、19)を想像することは困難です。

もっと膨大な桁数の素数を使用すれば、公開鍵から秘密鍵を推測するには、さらに膨大な計算時間がかかります。
実際は、これをもっと複雑にした、RSA暗号というアルゴリズムを使用していますが、基本的な考えは、この手法と違いはありません。

ところで、上記の電子署名の図で、
Aさんが、まことにデータを送る際、Aさんの公開鍵が()になっていますが、
これは、Aさんが、自分の公開鍵をわざわざ送らなくても、Aさんの秘密鍵をみれば、誰でも開けられるから、という理由です。
一方向関数の説明でわかりますね。

ハッシュ関数

暗号化技術の二つ目は、ハッシュ関数です。

ハッシュ関数とは、NIST(米国標準技術局)が規定を定めている、SHA-256と呼ばれる計算方法のことです。

ブロックチェーンでは、このハッシュ関数 SHA-256が多用されています。

この計算方法では、結果がすべて、256ビットとなり、16進数で表示すると、64ケタになります。

つまり、データそのものの、文字や数字がどれだけ長くても、ハッシュ関数では、すべて、64ケタで表せる、というものです。

データ1

送信元:A
送信先:まこと
送金額:20万円

ハッシュ関数
(SHAー256)

↓計算

ハッシュ値(64ケタ)
8D3102E500F9B73
30AF489ABB10CE2
BE471E428EF3293
CEA654C5E5BEC1C
E147

データ2

送信元:A
送信先:まこと
送金額:200万円

ハッシュ関数
(SHAー256)

↓計算

ハッシュ値(64ケタ)
B74EAA0FA9A66A0
147C31FA3859E48
39F56D99123ECC6
5C70997117D8B14
C954

図のように、データが、1文字でも違うと、全く別のハッシュ値に変わります。
なお、ハッシュ値だけからは、元のデータを復元することはできません。

じつは、ブロックチェーンでは、あらゆるところで、このハッシュ値計算を行い、これが変わらないことを理由に、中のデータは保たれている、ということを保証しています。

この点については、次回のブロックチェーンの全体像の際に、改めてご紹介します。

まとめ

blockchain-encryption-summary

ブロックチェーンの技術【2つの暗号化技術】

公開鍵と秘密鍵

公開鍵暗号方式

使用例:ECサイトの利用など

  • 公開鍵:南京錠
  • 秘密鍵:それを開ける鍵

誰でも鍵をかけることはできるが、開けて中身を見ることができるのは、秘密鍵を持っている持ち主しかできない。

電子署名

使用例:ブロックチェーンなど

  • 秘密鍵:南京錠
  • 公開鍵:それを開ける鍵

誰でも鍵を開けて中身を見ることはできるが、持ち主しか、鍵をかけることはできない。

公開鍵や秘密鍵には、一方向関数を使用している。

ハッシュ関数

  • SHA-256で、データをすべて、64ケタで表す。
  • データを少しでも変えると、ハッシュ値も変わる。
  • ハッシュ値からは、データを復元できない。

でした。

今回は、ブロックチェーンで使用されている、暗号化技術

  • 公開鍵と秘密鍵
  • ハッシュ関数

について、ご紹介しました。

さて、いよいよ、次回は、ブロックチェーン本体のご紹介です。
今回の内容を踏まえていただければ、ブロックチェーンの全体像を把握するのは簡単ですよ。

お楽しみに。

テクノロジー
スポンサーリンク
スポンサーリンク
スポンサーリンク
まことあり

コメント