※ 本記事では、応用情報技術者試験に向けて私が勉強したことを備忘録的にまとめておきたいと思います。基本情報技術者試験の内容と重複しているものもあります。なお、記事の投稿順に意味はないので、気にしないでもらえればと思います。
はじめに
今回は デジタル署名 についてまとめます。
デジタル署名は、公開鍵暗号方式を利用して送信するデータに付加して「そのデータが本当にその人から送られてきたものなのか?」「誰かに改ざんされていないか?」を証明するための技術です。
ちなみに私はこの参考書を使って勉強してました。
情報が豊富でがっつり勉強したい方向けかと思います。
デジタル署名の目的
デジタル署名は主に3つの目的があります。上記と重複がありますが、改めて紹介します。
① なりすまし防止…送信者が本物であることを証明する
② 改ざんの検出 (完全性)…データが途中で改ざんされていないことを証明する
③ 否認防止…送信者が送っていないと否認できないようにする
デジタル署名の仕組み
デジタル署名は、公開鍵暗号方式を利用します。デジタル署名の仕組みについて説明します。
・送信者側
① 送信するメッセージ(平文)を作成する
② ハッシュ関数で要約(ダイジェスト)Aを作成する
③その要約を秘密鍵で暗号化する ※これが署名(ここでは署名Aとする)
④メッセージと署名Aを受信者に送信する
・受信者側
①メッセージと署名Aを受け取る
②送信者と同じハッシュ関数で要約Bを作成する
③署名を公開鍵で復号して要約Aを取り出す
④要約Bと要約Aを比較して一致するかどうか確認する
→一致すれば、なりすましではない/改ざんされていない/否認ができないことになる
ここでは、重要な点は送信者側が送信者しか持っていない秘密鍵を使用して署名を作成することです。公開鍵暗号方式では送信者側が公開鍵で平文を暗号化していたはずです。つまり、デジタル署名は公開鍵暗号方式の逆を利用しているのです。これは、デジタル署名の目的は送信者が本人であることを証明することが目的であり、メッセージの内容を隠すことが目的ではないからです。
ちなみにデジタル署名でよく使われる方式は、公開鍵暗号方式と同じくRSAや楕円曲線暗号(ECC)です。また、実際に利用されている例は、HTTPSにおけるサーバ証明書や、最近多くなってきた電子契約、ソフトウェアを配布する際に正規のものであることの証明 etc.です。
デジタル署名でよく使用されるハッシュ関数
デジタル署名でよく使用されるハッシュ関数を紹介します。
・SHA-1
SHA-1 (Secure Hash Algorithm)では、160ビットのハッシュ値を生成します。現在はセキュリティ上の弱点があるため、使用は推奨されていないようです。
・SHA-2
SHA-2では、224/256/384/512ビットのハッシュ値を生成します。2026年4月現在ではSHA-256がよく使用されるようです。さらにセキュリティを求める場合には384や512を使用します。
・SHA-3
SHA-3はSHA-2と同じ長さのハッシュ値を生成しますが、SHA-2とは仕組みが異なり、さらに高いセキュリティを持ちます。2026年4月現在ではまだ普及しておらず、次世代のハッシュ関数と呼ばれています。
・MD5(Message Digest Algolithm 5)
MD5では、128ビットのハッシュ値を生成します。SHA-1よりも弱く、セキュリティ上の弱点があるため、2026年4月現在では使用は推奨されていません。
最後に
今回は、デジタル署名についてまとめました。
単純な公開鍵暗号方式ではないことに注意が必要です。
それでは今回はここまでとします。
おすすめの記事
当ブログではいろいろな記事を書いています。今人気の記事をいくつかご紹介しますので、ぜひご覧ください。





コメント