【仮想通貨】デジタル署名と公開鍵暗号の違いは!?

公開日: : 最終更新日:2020/11/19 仮想通貨 , , , , , , ,

ビットコインなどの仮想通貨のブロックチェーン技術で用いられている「デジタル署名」「公開鍵暗号」について、違いを調べてみました。

なお、ブロックチェーンにおけるデジタル署名(電子署名)の詳細については以前にまとめました。
【仮想通貨】デジタル署名について調べてみた【ブロックチェーン】

「デジタル署名」「公開鍵暗号」は、いずれも、公開鍵・秘密鍵とよばれる2種類の鍵を用いて暗号化・複合化する技術になります。

では何が違うのでしょうか?

それは、鍵を用意するのが、文書を「送る側」か「受ける側」かという違いになります。

鍵を受け手側で用意する方式が「公開鍵暗号」で、鍵を送り手側で用意する方式が「デジタル署名(電子署名)」となります。

基本的には、同じような技術を使っているのですが、鍵を作成する人が異なるのは、「公開鍵暗号」と「デジタル署名」で目的が異なるためです。

簡単にいうと、公開鍵暗号の目的は、「送付する文書そのものを暗号化し、第3者から読み取られないようにする」ことです。

一方、デジタル署名の目的は、「送付する文書の内容が改ざんされないようにする」ことです。なので、デジタル署名の場合は、文書の内容については第3者に読み取られてもかまわないということになります。

もう少しだけそれぞれの暗号方式について詳しくみていきましょう。

公開鍵暗号

公開鍵暗号では、データ(文書)を受け取る人が「公開鍵(暗号化に使う鍵)」「秘密鍵(複合化に使う鍵)」を用意します。

そして、暗号化に使う鍵である公開鍵をデータを送る人に渡します。データを送付する人は、その公開鍵を使ってデータを暗号化します。

暗号化されたデータを受け手に送付し、受け取ったら秘密鍵を使って複合化します。

このようにすることによって、秘密鍵を持っている人だけがデータ(平文)を読むことができます。

なお、暗号化されたデータは第3者も見ることができますが、秘密鍵がないと平文に戻せないので、受け手以外は文書を読み取ることができません。

デジタル署名

デジタル署名は、公開鍵暗号と逆の流れになります。

デジタル署名では、データ(文書)を送る人が「秘密鍵(暗号化に使う鍵)」「公開鍵(復号化に使う鍵)」を用意します。

送付データを送付する人が秘密鍵を使ってデータを暗号化します。この暗号化したデータをデジタル署名といいます。

そして、元のデータと暗号化したデータ(デジタル署名)、さらに、公開鍵を受け手に送ります。

受け手は、公開鍵を使って暗号化したデータ(デジタル署名)を復号化します。元のデータも送付されているので、復号化したデータと比べることによって、送られたデータが改ざんされていないことを確認することができます。

また、本当にその送り手が送ったものかどうかについても確認することができます。

参考書籍

「いまさら聞けない ビットコインとブロックチェーン」という本を参考にしました。

この本は、仮想通貨の取引所であるコインチェックの執行役員の 大塚雄介 氏が書いています。

2017年に出版されており、その次の年の2018年にコインチェックで取り扱っている仮想通貨の1つ NEM(ネム)が580億円分流出する事件が起こります。

本書では、「仮想通貨は取引所も含めて安全である」的なことが書かれてありますが、事件の壮絶なフラグになっているように感じました。。。

関連記事

【ビットコイン】承認されたブロックを見てみる【ブロックチェーン】

ビットコイン(BitCoin)の公開台帳であるブロックチェーンについて、新たに承認されたブロ

記事を読む

【ビットコイン】 アドレス生成方法について調べてみた。

仮想通貨の1つであるビットコインを送金するときは、送付側と受け手側のそれぞれのアドレスが必要

記事を読む

【仮想通貨】デジタル署名について調べてみた【ブロックチェーン】

ビットコインなどの仮想通貨のブロックチェーンで用いられているデジタル署名(Digital s

記事を読む

【イーサリアム】 ホリエモンが2014年当時にイーサリアムの可能性に気付いていた!?

ホリエモンこと堀江氏が、2014年の自身のブログで「イーサリアムやべぇ。。。」というタイトル

記事を読む

【イーサリアム】 ハッシュ関数(Keccak-256)について調べてみた。

仮想通貨の1つであるイーサリアムで用いられているハッシュ関数「Keccak-256」について

記事を読む

【仮想通貨】時価総額のランキングを円(JPY)で見る方法。

ビットコインやイーサリアムなどの仮想通貨の時価総額のランキングを 円(JPY)で見れる分かり

記事を読む

【Solidity】 イーサリアムでコントラクトを生成してみた。

スマートコントラクトプログラミングの高級言語の1つである Solidity を使って、イーサ

記事を読む

【イーサリアム】クライアントソフト geth を使ってみた。

イーサリアムのクライアントソフト geth をインストールして使ってみました。 クライ

記事を読む

【イーサリアム】日本円のチャートで比較する方法【イーサリアム・クラシック】

イーサリアム(Ethereum)は、2020年時点で、時価総額がビットコインに次ぐ第2位の仮

記事を読む

【MetaMask】イーサリアムのウォレットを使ってみた【テスト環境】

今回、イーサリアムのウォレットの1つである MetaMask(メタマスク)を使って、テストブ

記事を読む

初心者でも分かるビットコインの仕組みについてまとめてみた。

ビットコインは,時価総額が1位で最も有名な仮想通貨です. 仮

【LaTeX】 見出し付き箇条書きを右にずらす方法【数式の変数説明】

今回は、LaTeX で見出し付き箇条書きの全体の位置を右にずらす方法に

【LaTeX】 余白部分を設定しレイアウトを確認する方法。

今回は、LaTeX の余白部分のレイアウトの変更方法とレイアウトの確認

【LaTeX】 レポートや論文の表紙のテンプレート。

LaTex を使ってレポートや論文を書くときに、表紙をつけると思います

【DTM】 Cubase AI でギターやベースを録音する方法。

今回は、DTM のための DAWソフト Cubase AI でギター(

→もっと見る

PAGE TOP ↑