デジタル署名は、デジタルデータの信頼性と整合性を検証するために使用される暗号化メカニズムです。通常の手書き署名のデジタル版と見なすこともできますが、より高度なレベルの複雑さとセキュリティを備えています。
単純化すると、デジタル署名はメッセージ、もしくはドキュメントに付随しているコードと説明できるかもしれません。発行後、このコードはメッセージが送信者から受信者に渡すまでの間に改ざんされなかったことの証明として機能します。
ハッシュ関数
公開鍵暗号(PKC)
公開鍵暗号、もしくはPKCは暗号鍵と公開鍵のペアを使う暗号システムを指しています。この2つの鍵は数学的に関係していて、データの暗号化とデジタル署名両方のために使うことができます。
それ以外にも、PKCスキームはデジタル署名の発行にも適用できるかもしれません。実質的に、このプロセスは署名者の暗号鍵でメッセージ(もしくは、デジタルデータ)をハッシュします。次に、メッセージの受信者は署名者の公開鍵を使うことで、その署名が有効かどうかを確認できます。
デジタル署名の機能
仮想通貨において、デジタル署名システムはハッシュ、署名、検証の基本的な3つのステップによって構成されています。
ハッシュとデータ
しかしながら、データをハッシュするのはデジタル署名を作るのに必須ではないです。なぜなら、まったくハッシュされていない暗号鍵でメッセージに署名をすることが可能だからです。しかし、仮想通貨においては、データは必ずハッシュされます。なぜなら、固定長のハッシュ値を処理するとプロセス全体のセキュリティが低下するからです。
署名
情報がハッシュされたら、メッセージの送信者はそれに署名をする必要があります。ここで、公開鍵暗号が登場します。いろんな種類のデジタル署名アルゴリズムがあり、それぞれが独自のメカニズムを持っています。しかし、本質的にハッシュされたメッセージは暗号鍵によって署名され、そのメッセージの受信者は一致する公開鍵(署名者が提供する)を使って、その正当性を確認します。
別の言い方をすれば、署名の生成時に秘密鍵が含まれていない場合、メッセージの受信者は対応する公開鍵を使用して、その有効性を検証することはできません。公開鍵、暗号鍵の両方ともメッセージの送信者によって発行されますが、暗号鍵は受信者には共有されません。
それぞれのメッセージにコンテンツに、デジタル署名は直接関連されています。そのため、メッセージに関わらず、同じとなる手書きでの署名と違い、デジタル署名されたメッセージはそれぞれ違うデジタル署名を持ちます。
検証
検証の最終ステップまでのプロセス全体を説明するために例を見てみましょう。アリスがボブにメッセージを書き、それをハッシュし、デジタル署名を発行するために暗号鍵とハッシュ値を組み合わせます。この署名はその特定のメッセージの固有のデジタルフィンガープリントとして機能します。
ボブがメッセージを受け取ったら、彼はアリスの公開鍵を使って、デジタル署名の有効性を確認します。この方法で、ボブはこの署名がアリスによって作られたものだと確認できます。なぜなら、彼女がその公開鍵と一致する暗号鍵を持っている、唯一の人物だからです。
そのため、アリスにとっては暗号鍵を安全に保管することが大切です。もしも、誰かがアリスの暗号鍵を手に入れた場合、その人物はアリスのデジタル署名を作って、なりすますことができます。ビットコイン(Bitcoin)においては、これは誰かがアリスの暗号鍵を使って、彼女の許可なしで、ビットコイン(Bitcoin)を使ったり、動かしたりすることができるということです。
なぜデジタル署名が重要なのか?
デジタル署名はデータの整合性、認証、そして否認不可という3つの結果を実現するためによく使われます。
- データの整合性:ボブはアリスのメッセージが受信されるまでに変更されていないことを確認できます。メッセージ対してなんらかの修正が行われたら、署名は全く別のものになります。
- 認証:アリスが暗号鍵を安全に保管する限り、ボブはアリスの公開鍵を使うことでデジタル署名が他の誰でもなく、アリスによって作られたことを確認できます。
- 否定不可:署名がなされたら、暗号鍵が何らかの理由で流出などしない限り、アリスは自分がその署名を行ったことを将来否定することができません。
ユースケース
デジタル署名は様々な種類のデジタル署名と証明書に適用することができます。そのため、実際にいくつかのアプリケーションがあります。そして、最も一般的なユースケースとしては以下のような例が挙げられます。
- IT インターネット通信システムのセキュリティ強化に活用されています。
- 金融 監査、支出報告書、借用書などにデジタル署名を適用することができます。
- リーガル 公文書を含む、あらゆる種類のビジネス契約および法的契約において、デジタル署名を活用できます。
- ヘルスケア デジタル署名によって、処方箋や医療記録の詐欺を防ぐことができます。
- ブロックチェーン デジタル署名スキームは仮想通貨の正しい所有者しか、資産を動かすトランザクションに署名できないようにします。(暗号鍵が流出していない限り)
限界
デジタル署名スキームが直面している主要な課題は最低でも3つの要件に依存しています。
- アルゴリズム デジタル署名スキームで使われているアルゴリズムのクオリティは重要です。ここには、信用できるハッシュ関数と暗号学システムの選択が含まれています。
- 実装 アルゴリズムが良くても、実装がダメだったばあい、デジタル署名システムに欠陥が生じる可能性があります。
- 暗号鍵 もしも、暗号鍵がなんらかの方法で流出した場合、認証と否定不可という特徴が無効になります。仮想通貨ユーザーの場合、暗号鍵を紛失すると、重大な経済的損失が生じる可能性があります。
電子署名 vs デジタル署名
簡単に言えば、デジタル署名は、特定の種類の電子署名に関連しています。こ子で言う電子署名は文書やメッセージに電子的に署名する方法を指します。そのため、全てのデジタル署名は電子署名の1形態ですが、電子署名が必ずしもデジタル署名を意味するわけではないです。
まとめ
ハッシュ関数と公開鍵暗号化がデジタル署名システムのコアであり、現代では幅広いユースケースで採用されています。適切に実装されたら、デジタル署名はセキュリティを強化し、整合性を確保し、あらゆる種類のデジタルデータの認証を促進します。
ブロックチェーンにおいては、デジタル署名を使用して、仮想通貨のトランザクションに署名し、承認します。これは特にビットコイン(Bitcoin)では重要です。なぜなら、署名によってそのコインは対応する暗号鍵を保有している個人によって使われたことを保証するからです。
電子署名とデジタル署名の両方を何年も使用していますが、これらの技術にはまだ成長の余地があります。現代の行政において、大きな部分がペーパーワークに基づいていますが、よりデジタル化されたシステムに移行するにつれて、デジタル署名スキームがより採用されていくでしょう。