スポンサードリンク


更新日:2018/07/17

ビットコインにはどういった暗号が使われているの!?

ビットコインにはどういった暗号が使われているの!?

ビットコインの取引情報は第三者に分からないように送信しなくてはなりません。

 

そのため、取引情報の通信を行う場合には、公開鍵方式という特殊な暗号方式を使用します。

 

ビットコイン取引はただ取引情報が流れるだけ

例えば、AさんのビットコインウオレットからBさんのビットコインウオレットに100BTCを送金したとします。

 

ビットコインは、純粋なデジタルデータのみの存在ですから、現金の手渡しのように、現物が移動することはなく、単に取引記録が書き換えられた上、そのデータがAさんからBさんに送信されるだけです。

 

しかし、AさんからBさんへ送信されるビットコイン取引データは、第三者に対しては秘密にしておく必要があることは言うまでもありません。では、この取引データの流れは、どうやって第三者に分からなくするのでしょうか。

 

暗号とはどういったものか

第三者に対して送信したデータを秘密にする方法には、暗号が用いられます。暗号は、古代ローマ帝国の皇帝シーザーが発案したというシーザー暗号が有名です。

 

これは、アルファベットを1文字から数文字ずらすことで暗号文を作成するという方法です。

 

例えば、アルファベットをずらすことを暗号ルール(「アルゴリズム」といいます。)とし、ずらす文字数(「鍵」といいます。)を1文字とします。

 

暗号化される前の文章を平分を「bitcoin」とすると、キーが1のシーザー暗号を用いて暗号を作成すると、暗号文は「cjudpjo」となります。

 

シーザー暗号は、平文から暗号文作成までは簡単なのですが、アルゴリズムと鍵が容易に第三者に把握されるので、第三者に解読されやすいという欠点を持っています。

 

なお、平文から暗号文を作成することを暗号化、暗号文を平文に戻すことを複合化といいますが、シーザー暗号のように暗号化と複合化に同じ鍵を使う方式を共通鍵方式といいます。

ビットコイン取引データに使用される暗号について

暗号化と複合化に同じ鍵を使う共通鍵方式の場合、第三者に解読されやすいので、ビットコインの取引記録のような非常に重要な情報を送信する際に使用することは大変危険です。

 

そこで、ビットコインの取引情報は、公開鍵方式という別の方式を使った暗号が使われます。

 

これは、まず、送信を受ける者が平文を暗号化する鍵を全世界に公開します。なお、送信を受ける者が全世界に公開する鍵を「公開鍵」といいます。

 

送信を受ける者は、同時に、自分が全世界に公開している「公開鍵」で暗号化した平文を暗号化する際に用いる「秘密鍵」をひそかに持っています。もちろん、「公開鍵」と「秘密鍵」は異なります。

 

さて、送信者は、受信者の「公開鍵」を使用して、平文を暗号化し、その暗号文を受信者に送信します。

 

送信を受けた受信者は、自分がひそかに持っている「秘密鍵」によって受信した暗号文を複合化し、平文に戻します。

 

公開鍵方式では、「公開鍵」は全世界に公開されていますが、「公開鍵」から「秘密鍵」を割り出すことは、数学的にほとんど不可能となるように設計されています。

 

この方法だと、第三者が暗号文を解読して送信内容がばれることをかなり高い確率で不可能にすることができます。

 

ビットコインの取引情報の送信は、この「公開鍵方式」を用いた暗号を用いているため、通信内容が第三者に漏れることはほとんどありません。

 

ちなみに、公開鍵方式の暗号はRAS方式が有名ですが、このアルゴリズムは、素因数分解の困難さを活用した数学的な方法です。

 

具体的には、平文をm、暗号文をcとすると、暗号化の場合には、mのe乗をnで割った余り、複合化の場合には、cのd乗をnで割った余りとする方法です。

 

なお、eはあらかじめ設定される整数、nは、あらかじめ設定される素数p、qの積、dは1/eを(p−1)(q−1)で割った余りとなります。

 

一方、RAS方式の公開鍵は2つの数字の組み合わせ(e、n)、同じく秘密鍵は(d、n)となります。

スポンサードリンク

トップへ戻る