初心者でもわかる秘密鍵・公開鍵の仕組みとそれぞれの役割

秘密鍵と公開鍵を解説

ビットコインのウォレットを管理するために必要になるのが秘密鍵と公開鍵です。これは銀行における暗証番号、口座番号のようなもので、秘密鍵を適切に管理することによって自身のアドレスのビットコインを守れます。

そもそも秘密鍵と公開鍵ってなに?

秘密鍵・公開鍵が何かを知るためには、暗号化の簡単な必要な知識が必要不可欠になります。暗号化と聞くとなんだか大層なことに思えますが、その仕組は意外と単純です。

秘密鍵と公開鍵

暗号化とは、他人に見られたくないデータを、何らかの法則に基づき、外部からみても意味がわからない適当な文字列に変換する仕組みのことです。暗号化を行うと、万が一そのデータ自体が流出しまっても、外部の第三者にデータの意味を読み取られずに済みます。自分自身がそのデータを読み取る場合には、もとに戻すことが出来ます。

暗号化の流れ

まず、元データを用意します。この元データを「平文」といいます。平文を「暗号アルゴリズム」という法則に基づいて変換し、第三者に読み取れないようにすることを「暗号化」といい、その結果できたデータを「暗号文」といいます。暗号文を平文に戻すことを「復号」といいます。

暗号化や復号に使うデジタルな道具を「鍵」といいます。暗号化に使う鍵が「暗号鍵」、復号に使う鍵が「復号鍵」です。平文と暗号アルゴリズムが全く同じでも、別の鍵を使えばその結果作成される暗号文は別のものになります。

他社に見られたくないデータを送信する際には、まず送信者が暗号鍵で暗号化を行って送信します。次に受信者が復号鍵を使ってそれを平文に戻します。もし送信の途中で第三者がそのデータを盗み見ても、その第三者は復号鍵を持っていないのでその意味をうかがい知ることは出来ません。

秘密鍵暗号方式と公開鍵暗号方式

暗号化の方式は大きく、秘密鍵暗号方式と公開鍵暗号方式に分類できます。秘密鍵暗号方式では、暗号鍵と復号鍵に同じ鍵(共通鍵)を用います。現実の引き出しの鍵のようなものです。送信者が共通鍵を使って平文を暗号化し、それを受信者が共通鍵で複合します。

秘密鍵暗号方式では、鍵の安全な受け渡しをどうするかが大きな課題となります。鍵を送信中にそれを盗み見られれば暗号文もバレてしまいますし、だからといって手渡しをするのでは手間がかかります。そもそも手渡しができる距離にいるのならば、データ送信などしなくてもUSBメモリか何かで渡せば済む話です。

また、鍵の使い回しは危険なので、通信する相手によって鍵を使い分ける必要があります。その結果、遣り取りをする人が増えれば増えるほど、必要な鍵の本数は増えます。秘密鍵暗号方式では、N人で互いにやり取りできるネットワークを築くためには、N(N-1)/2ほんの鍵が必要になります。10人なら45本、100人なら4950本です。

一方、公開鍵暗号方式では、暗号鍵と復号鍵を別のものにします。暗号鍵は公開されているので公開鍵、復号鍵は公開されていないので秘密鍵と呼ばれます。

開鍵暗号方式の解説図

受信者は公開鍵を秘密鍵を作成し、公開鍵のみを公開します。送信者はそれを取得して平文を暗号化して送信し、受信者は自身の秘密鍵でそれを復号します。

公開鍵暗号方式では、復号ができるのは秘密鍵を保有する受信者のみなので、鍵の受け渡しについて考える必要はありません。その分秘密鍵の安全な保管が必要になりますが、これは安全な鍵の受け渡しに比べれば遥かに簡単なことです。

また、公開鍵暗号方式では、N本人で互いにやり取りできるネットワークを作るためには、2N本の鍵があればOKです。10人なら20本、100人なら200本です。

このように、公開鍵暗号方式のほうが何かとメリットが多いため、現在はこちらが主流になってきています。ビットコインも公開鍵暗号方式を採用しています。

秘密鍵とは

秘密鍵とは、公開鍵暗号方式において、受信者が発行し、そのまま手元にとどめておく復号用の鍵です。公開鍵で暗号化されたデータは、対になる秘密鍵でしか複合できません。ビットコインにおいては、ビットコインをウォレットから取り出すためのものであり、銀行でいえば暗証番号に相当します。

秘密鍵が他人の手に渡ってしまうということは、銀行の暗証番号が他人の手に渡ってしまうこととほぼ同義であり、防がなければいけません。一方で、秘密鍵を失念してしまうとビットコインが取り出せなくなってしまうので、こちらも絶対に防がなければなりません。
他人に漏らさないように、なおかつ自分が忘れないように管理するのはなかなかに大変であり、これがビットコインを自分で管理するハードルの高さにも繋がっています。

公開鍵とは

公開鍵とは、公開鍵暗号方式において、受信者が発行し、他者に向けて公開する暗号化用の鍵です。公開鍵暗号方式では、受信者に向けてデータを送信したい人全員が同じ公開鍵を使用します。公開鍵から秘密鍵を特定することは原則不可能なので、公開鍵を使ってデータを送信しても、それを正規の受信者でない人(秘密鍵を持たない人)に勝手に読み取られることはまずありません。

公開鍵は文字通り公開されている鍵ですので、管理に気を使う必要はありません。

アドレスとは

ビットコインアドレスとは、ビットコインをやり取りする際に必要な文字列のことで、それぞれのウォレットに割り当てられるものです。例えば仮想通貨取引所に登録すると、ビットコインアドレスが割り当てられます。他の仮想通貨も取り扱っている場合は、そちらの仮想通貨用のアドレスも割り当てられます。同じ仮想通貨取引所でも、ビットコインとイーサリアムではアドレスは異なります。

ビットコインにおいては、ビットコインアドレスが公開鍵に相当します。

正確には、公開鍵を元にハッシュ値を2回取り、そこからさらにチェックサムを加えてBase58フォーマットしたものがビットコインアドレスになります。よくわからないかと思いますが、要するに公開鍵をハッシュ関数と呼ばれる逆さんが極めて難しい関数に複数回通すと、ビットコインアドレスが導けます。公開鍵からビットコインアドレスを導くことは出来ますが、その逆は原則できません。

公開鍵と秘密鍵の役割

Bitcoinの世界では、送金したいというリクエストを送るときに、受取人が公開している公開鍵を使ってそれを暗号化します。受取人はそれを自身の所有する秘密鍵を使って復号します。
秘密鍵は受取人しか持っていないので、受取人だけがビットコインを受け取る権利を有していることになります。逆に言えば、これが流出してしまうと、ビットコインを受け取る権利が受取人以外にも発生してしまうということでもあります。

秘密鍵の管理方法

公開鍵暗号方式において、公開鍵はもともと全世界中に公開されるものであるため、これの管理について頭を悩ませる必要はありません。しかし、秘密鍵は自分以外に知られてはならず、なおかつ自分も忘れてはならないものであるため、厳重に、正確に管理する必要があります。秘密鍵の管理方法は、ウォレットによって異なります。

ウォレットアプリ

ウォレットアプリとは、パソコンやスマートフォンにダウンロード・インストールするタイプのウォレットです。秘密鍵を自分で管理できるため安全性は高いですが、どのように管理するかについては自分で考える必要があります。できれば紙に書いたり、USBメモリに保存したりして、複数の箇所に保存しておいたほうがいいでしょう。

また、端末を常時インターネットに接続している場合は、そこから秘密鍵が流出するリスクも考慮しなければなりません。できればビットコインの保管専用の(普段はインターネットから切り離せる)端末がほしいところですが、それが難しい場合はセキュリティ対策もいつも以上にしっかりと行いましょう。

ウォレットサービス

ウォレットサービスとは、ウェブ上で公開されているウォレットサービスのことです。仮想通貨取引所もここに該当します。この方式では、秘密鍵はそのサービスの提供者が管理します。これは秘密鍵を他者に知られてはならないという原則に真っ向から反するものであり、望ましいことではありません。

そのサービスの提供者がハッキングされるリスクもありますし、自らその秘密鍵を使って悪事を行う可能性も否定できません。仮想通貨取引所やウェブ上のウォレットなどには大金を預けないほうがいいと言われているのは、このような仕組みがあるためです。これらのウォレットサービスを使う場合も、なるべく複数のサービスを使い分けて1つのところに預ける額を減らすなどの工夫をしましょう。

ブレインウォレット

ブレインウォレットとはブレイン、つまり脳をそのままウォレット代わりにすることです。理論上、他者から脳をハッキングされることは現時点ではありえないので、最も安全といえば安全です。

ただし、人間の脳はいろいろと忘れていくものでもあるため、ブレインウォレットだけに完全に頼り切るのは極めて危険です。ブレインウォレットをメインに使う場合でも、万が一のリカバリーを考えて別の形でも保存しておくことをおすすめします。

ハードウェアウォレット

ハードウェアウォレットとは、ハードウェアタイプのウォレットです。外付けハードディスクドライブなどと違い、最初から仮想通貨の保存だけを目的に作られた専用機器です。秘密鍵を自分で管理できる上、簡単にインターネットから切り離せるので安全性という点ではかなり優秀です。万が一ハードウェアウォレット自体をなくしてしまっても、別のハードウェアウォレットがあれば復元できます。難点はハードウェアウォレット自体が有料(1万円程度)することです。

ペーパーウォレット

ペーパーウォレットとは、文字通り紙のウォレットです。要するに秘密鍵を印刷した紙です。安全性は非常に高いですが、管理に気をつけないと紛失、紙質の劣化などが起こりかねません。

0 0

この記事の共有はここから