【PKI 基礎】デジタル署名とは

PKI

デジタル署名とは

デジタル署名とは、あるデータにに対して (1) メッセージが改ざんされていないこと(データの完全性の保証)(2) 正当な人からメッセージが送られてきている(送信元の認証)を実現するための技術です。

デジタル署名とデジタル証明書は名前が似てますが、別ものなので混同しないようにしてください。

前回、ハッシュ アルゴリズムの技術を用いてデータの改ざん検知が行えるようになるという話をしました。

しかしながら、ハッシュ アルゴリズムの技術では、送信者が送ったデータが書き換えられていないことの保証はできているけれども、送信者のなりすましされてデータが送信された場合、受信者はそのデータが信頼できるものなのか判断することができません。

デジタル署名の技術では、ここまで学習してきたハッシュアルゴリズムと公開鍵暗号化方式の技術を組み合わせて、データが改ざんされていないことを保証しつつ、送信元が正しい相手であることを保証することができます。

この技術により、インターネット上の脅威である改ざんなりすましに対処することができます。

それでは、デジタル技術の詳細を見てみましょう。

デジタル署名の仕組み

デジタル署名は、データの完全性の保証と送信元の認証を実現するために、ハッシュアルゴリズムと公開鍵暗号化方式を組み合わせた技術です。

デジタル署名を生成する仕組みの詳細は、公開鍵暗号化方式のアルゴリズムの種類によって異なってきますが、今回は一番シンプルでわかりやすい RSA のデジタル署名の仕組みを紹介します。

デジタル署名の作成方法

RSA デジタル署名では、①送信するデータの任意のハッシュ アルゴリズムでハッシュ値を算出し、②そのハッシュ値を秘密鍵で暗号化したデータを作成します。

この作成したデータのことをデジタル署名と呼びます。

データの送信者は、送信するデータと一緒にデジタル署名を付与して送信します。

デジタル署名を付与することで、そのデータが間違いなく本人が作成したものであり、なおかつ、データの内容を誰からも改ざんされていないことを証明します。

デジタル署名の検証方法

デジタル署名を検証して送信されてきたデータが正当なものであるかを確認するためには、デジタル署名の生成に使用した秘密鍵のキーペアとなる公開鍵が必要となります。

まず公開鍵でデジタル署名のデータを復号して、元データのハッシュ値を得ます。

次に自身も送信されてきたデータを同じハッシュ アルゴリズムを利用してハッシュ値を生成して、デジタル署名とのハッシュ値の比較して、一致するか確認します。

ハッシュ アルゴリズムは ハッシュ値が同じ = 元データが同じであることを保証する技術であるため、ハッシュ値が一致(データの改ざんの検知)していれば、秘密鍵を持つ人(送信元の認証)が送ったデータが改ざんされていないという事実が担保できることになります。

つまり送信者の公開鍵を持っていれば、送信者が送ったデータであり、なおかつデータが改ざんされていないことを保証することができます。

 

デジタル署名の正当性を担保するには?

デジタル署名はデータの送信者の公開鍵をもっていれば、データの送信元の認証とデータの完全性が保証することができる技術です。

ただし、データの送信者の公開鍵が正当なものであることが保証されていることが前提条件となっています。

ある人の公開鍵を本人から直接受け取るという形式をとることは少なく、多くの場合は、インターネット上で公開されている公開鍵を使ってデジタル署名の検証を行う形となります。

そのため、公開鍵暗号化方式やデジタル署名などの技術を利用できるようにするには、公開鍵の正当性を保証するための仕組みが必要です。

この公開鍵の正当性を保証するための技術が、デジタル証明書とよばれるものになります。