公開鍵と秘密鍵|現役エンジニアが解説

ここでは公開鍵と秘密鍵について解説をします。

ブロックチェーンを学んでいく中で、公開鍵と秘密鍵の仕組みは理解していかなければならないものです。

その二つを理解していくためにまずは、公開鍵暗号と共通鍵暗号方式について学んでいきましょう。

お問い合わせ

目次

1、公開鍵暗号方式と共通鍵暗号方式について
1ー1、共通鍵暗号方式とは?
1ー2、公開鍵暗号方式とは?

2、秘密鍵

3、公開鍵

4、電子署名とは

5、秘密鍵と公開鍵を用いた送金の流れまとめ

1、公開鍵暗号方式と共通鍵暗号方式について

インターネットを介した二者間通信を行われる時には、二つの方式が使われています。

これは「共通鍵暗号方式」と「公開鍵暗号方式」が主に使用されています。

ビットコインでは「公開鍵暗号方式」がメインで使用されています。

より理解を深めるために二つの方式の特徴をみてみましょう。

1ー1、共通鍵暗号方式とは?

共通鍵暗号方式は、暗号化する時に使用する鍵と復号化(元に戻す)する際に、暗号化した時と同じ鍵を使う方式です。

この暗号化した時の鍵を共通鍵と呼び、共通鍵は、送信側・受信側にのみ共有されています。

通信の流れを示しますと、

1.送信側:共通鍵でデータを暗号化→受信側へ送信

2.受信側:送られてきたデータを、送信側と同じ共通鍵で復号化(元に戻す)し、データを受け取る

という流れです。

ただし、この方式には弱点があり、暗号化・復号化する鍵の受け渡しがセキュリティー的にみて弱点があるという欠点があります。

1ー2、公開鍵暗号方式とは?

上記で共通暗号方式には共通鍵を渡す時に、鍵を盗まれてしまうなどといった弱点があることを説明しました。

この問題を克服したのが「公開鍵暗号方式」です。公開鍵暗号方式は、鍵を公開鍵と秘密鍵の二つにわけたのです。

例を挙げますと

1.送信側:受信側の公開鍵を取得

2.送信側:取得した公開鍵で、送信するデータを暗号化して送信

3.受信側:受信したデータを秘密鍵で復号し、データを取得

という方式です。

2、秘密鍵

ビットコインの送金時に署名を行う際などに使用されます。

秘密鍵は他者には絶対に教えてはいけません。これが盗まれた場合、自身が管理しているコインを扱う権限が全て盗まれたことと同義となります。

教えていいのは公開鍵のみとなります。

3、公開鍵

公開鍵は秘密鍵と対になっており、他者に教えても良い鍵です。

公開鍵は、秘密鍵から生成されます。

これはsecp256k1という楕円曲線を使用して生成されます。

4、電子署名とは

これは公開鍵を用いた本人確認を行うためのものです。

公開鍵は世界中に公開されているわけですから、送金する時などには秘密鍵で署名(承認)しなければ他者が自分の公開鍵を使って送金してしまうことが可能になってしまいますよね。

なので、秘密鍵を使って、送金している本人の確認をするわけですがどのように署名(本人確認)を行うかというと

例:送金時

1.送金側:送金する際、公開鍵から生成された受信者のビットコインアドレス(公開鍵にハッシュ関数をかけたもの)使い、秘密鍵で取引情報に署名を行う

2.送金側:公開鍵と秘密鍵は生成する際に対で作られており、送金者の送金情報を解読できるのは、対となっている秘密鍵を持っている本人だけである。

なので、最終的に秘密鍵を使用して送金者が署名した情報を、公開鍵と照合して本人確認ができ、整合性が取れれば本人確認ができて送金ができると行った仕組みである。

3.受信側:受け取った送金データの中身には、受信者のビットコインアドレスも入っています。

それを受信者自身の秘密鍵を使って復号化することで取引が成功します。

ちなみに、送金側の署名から秘密鍵を算出することはできません。

5、秘密鍵と公開鍵を用いた送金の流れまとめ

1.公開鍵と秘密鍵をペアで生成(公開鍵の生成は、秘密鍵にsecp256k1という楕円曲線を使用して生成する)

2.公開鍵にハッシュを2回かけ、チェックサム(アドレスが正式な形か検証する認証コードと考えてください)を加えます。その後、Base58でエンコードしたビットコインアドレスを生成する(Base58エンコードは、ビットコインアドレスをわかりやすいものとするために、わかりづらいl,

1,0,Oを排除するもの)

3.ビットコインの量、アドレスなどを含んだ送金データに、ビットコインアドレス所有者の送信者が秘密鍵で署名

4.ビットコインネットワークに送金データを送信

5.取引内に含まれる公開鍵と署名済みの送金情報を照合して取引が正しいことを検証して、正しければ送金が実行される


公開鍵と秘密鍵|現役エンジニアが解説 was originally published in Bit-create on Medium, where people are continuing the conversation by highlighting and responding to this story.

Source: 暗号通貨大学校bitcamp
公開鍵と秘密鍵|現役エンジニアが解説