• 作成日 : 2021年11月5日

デジタル署名とは?仕組みからわかりやすく解説

デジタル署名とは?仕組みからわかりやすく解説

デジタル署名とは、書面上の署名と同等のセキュリティ性を担保するために用いられる公開鍵暗号技術の一種を指し、電子契約サービスなどに活用されています。この記事では、デジタル署名の仕組みやメリット、デメリットを解説します。

デジタル署名とは?法的に有効?

デジタル署名という用語自体は法律上の言葉ではありません。一般的には、デジタル署名とは、書面上の手書き署名と同等のセキュリティ性を担保するために用いられる「公開鍵暗号技術の一種」を指します。したがって、公開鍵暗号技術としてデジタル署名が導入されている電子契約サービスを利用して契約することで、法的な効力を得られます。

デジタル署名と電子署名の違い

電子署名は、電子通信上での署名そのものを指しており、書面上での署名捺印と同じ意味合いで使用されます。
これに対して、デジタル署名は公開鍵暗号技術そのものを指しますので、分かりやすく言えば、「電子署名の実装技術」を意味するものと言えます。

デジタル署名の仕組み

送信者
公開鍵と秘密鍵を生成し、受信者に公開鍵を送付
ハッシュ関数を使用してハッシュ値を算出
秘密鍵を使用してハッシュ値を暗号化
ハッシュ値を署名として付けて送信
受信者
公開鍵を使用して受信者が暗号化されたハッシュ値を復号
同じハッシュ関数を使用してハッシュ値を算出
復号されたハッシュ値と算出されたハッシュ値を比較

1.送信者が公開鍵と秘密鍵を生成し、受信者に公開鍵を送付

デジタル署名を利用するには、まずは認証機関に登録して、公開鍵と秘密鍵を生成する必要があります。認証機関は、「電子署名法で定めた要件を満たしている」と国が認めた指定業者のことです。現時点において、株式会社日本電子公証機構等が認証機関として指定されています(※)。
デジタル署名を利用しようとする者(送信者)は、この認証機関に登録申請をして、電子証明書の発行と、公開鍵・秘密鍵の生成を行います。
公開鍵は、電子証明書と共に相手方(受信者)と共有しておくもので、相手方が暗号化されたデータを復号する際に使用されます。
秘密鍵は、送信者のみが保管しておくもので、送信しようとする電子データを暗号化する際に必要です。
送信者は、公開鍵と秘密鍵を生成したら、秘密鍵は自社で保管し、公開鍵を受信者に送付します。

電子署名・認証センター「認定認証業務一覧」

2.送信者がハッシュ関数を使用してハッシュ値を算出

送信者は、相手方(受信者)に送信しようとする文書データについて、ハッシュ関数を用いてハッシュ値を算出します。ハッシュ関数とは、データを一定の手順で計算し、データの量・内容にかかわらず、決まった長さの文字列を出力する関数のことです。このハッシュ関数により算出された値をハッシュ値と言います。ハッシュ関数は何種類もありますが、現在主に用いられているハッシュ関数は4種類程度です。
例えば、送ろうとする文書データ(「Aファイル」とします。)を一つのハッシュ関数(α関数とします)にかけると、Aファイルのハッシュ値が「a1b2c3d4」のように算出されます。

3.秘密鍵を使用してハッシュ値を暗号化

送信者はさらに、文書データについてハッシュ関数を用いてハッシュ値を算出し、このハッシュ値を、上記1で生成した秘密鍵を使用して暗号化します。
先ほどの例では、ハッシュ値「a1b2c3d4」が秘密鍵を用いて「*$%&#??=#」のように暗号化されます。
ハッシュ値のまま相手方に送付してしまうと、ハッシュ関数を用いて誰でも簡単にAファイルに復元できてしまうので、秘密鍵を用いて暗号化する必要があります。

4.ハッシュ値を署名として付けて送信

送信者は、文書データについてハッシュ関数を用いてハッシュ値を算出し、さらに、秘密鍵を用いてハッシュ値を暗号化したうえで、その暗号化された記号を受信者に送付します。
先の例で言うと、「*$%&#??=#」を受信者に送信します。

5.公開鍵を使用して受信者が暗号化されたハッシュ値を復号

受信者は、送信者から受領した暗号化されたハッシュ値を、先に送付されていた公開鍵を用いて復号(復元)します。
先の例で言うと、「*$%&#??=#」を「a1b2c3d4」に戻すことです。この復号ができるのは、秘密鍵と対になる公開鍵を持っている者のみです。これにより、文書データが第三者に漏れることなく、送信者と受信者のみで共有することが可能となります。

6.同じハッシュ関数を使用してハッシュ値を算出

受信者は、送られた文書データを、送信者と同じハッシュ関数を用いてハッシュ値を算出します。同じデータについて、同じハッシュ関数を用いた場合は必ず同じハッシュ値が算出されます。先の例では、Aファイルをα関数というハッシュ関数を用いてハッシュ値を算出すると、必ず「a1b2c3d4」となります。

7.復号されたハッシュ値と算出されたハッシュ値を比較

上記5で秘密鍵を用いて復号したハッシュ値と、上記6で同じハッシュ関数を用いて算出したハッシュ値を比較します。このハッシュ値が合致すれば、間違いなく送信者が送ったデータであり、かつ、その内容も送信者との間で齟齬がないことが確認できます。

デジタル署名のメリット

デジタル署名はセキュリティ性の高い暗号化技術であることから、デジタル署名を活用した電子契約は、第三者のなりすましによる署名(偽造)や、署名後の書面内容の変造・改ざんを防止するといったメリットがあります。

デジタル署名のデメリット

デジタル署名のデメリットとしては、まず、公開鍵・秘密鍵を作成するために認証機関への登録が必要であり、その点で、即時に利用できるものではないという点が挙げられます。また、公開鍵・秘密鍵・ハッシュ関数等の馴染みのない言葉多く、デジタル署名の利用に対する契約相手方の理解が得られにくいという点もデメリットの一つと言えます。

デジタル署名はデータ改ざんの防止に役立つ

デジタル署名は、公開鍵、秘密鍵を用いて暗号化して送受信するため、偽造・変造のおそれがほとんどなく、セキュリティ性が高い暗号化技術です。
したがって、デジタル署名技術が使われている電子契約サービスを使うことで、第三者によるなりすましや、データ内容の改ざんを防止できます。

よくある質問

デジタル署名とは?

デジタル署名とは、書面上の署名と同等のセキュリティ性を担保するために用いられる公開鍵暗号技術の一種を指します。詳しくはこちらをご覧ください。

デジタル署名の仕組みとは?

相手に送付する電子データを、自社のみが保管する秘密鍵を用いて暗号化します。受信者は公開鍵を用いて復号し、対照することで、データの送信者とデータ内容の改ざんがないことを確認します。詳しくはこちらをご覧ください。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談していただくなど、ご自身の判断でご利用ください。

署名の関連記事

新着記事