ディジタル署名の仕組みを初学者向けに解説

情報セキュリティ

ディジタル証明書とは

通信途中でデータが改竄されていないことを証明するための仕組みです。ハッシュ関数と呼ばれるアルゴリズムを用いてこの仕組みを実現しています。

ハッシュ関数

適当な長さのデータを引数として、固定長のビット列を戻り値とする関数です。戻り値をハッシュ値と呼びます。ハッシュ関数の特徴は次の3点です。

・同じ入力値なら同じ返り値を返す

・入力値が異なる場合、全く異なる返り値を返す

・ハッシュ値から入力値を特定することは困難

これらはハッシュ関数の有名な性質なので覚えておきましょう。

ディジタル証明書の仕組み

公開鍵証明書を発行する

ディジタル証明書を使えば通信途中でデータが改竄されていないかを証明することができると説明しました。ではその仕組みについて解説してこうと思います。では送信者S(タピオカを飲んでいる少年)がディジタル証明書を使って通信する場合を考えます。送信者Sは自身のパソコンで秘密鍵と公開鍵を生成します。そしてこの生成した公開鍵を認証局(CA)に提出します。認証局はこの公開鍵に対して「シリアルナンバー」「有効期限」を付与します。こうすることで公開鍵証明書と呼ばれる証明書が認証局から発行されます。

ディジタル証明書を生成する

公開鍵証明書を発行をするだけなくディジタル証明書を発行します。そのために認証局に渡した公開鍵を元にハッシュ値を生成します。このハッシュ値を認証局の暗号鍵で暗号化します。この暗号化されたデータがディジタル証明書と呼ばれるものです。

受信者は2つのハッシュ値を比較し認証する

受信者をRとします。公開鍵証明書とディジタル署名が揃ったところで、送信者Sは受信者Rに向けてこの2つを送信します。よって受信者Rは公開鍵証明書とディジタル証明書を受け取ることになります。受信者Rは公開鍵証明書を使ってハッシュ値を算出します。そして、認証局が発行する秘密鍵を用いて、ディジタル証明書を復号します。ここで注意する点は認証局の秘密鍵を使って復号するという点です。公開鍵ではない点に注意しましょう。そしてディジタル証明書を復号すると暗号化される前のハッシュ値が求まります。この2つのハッシュ値を比べることで改竄がされてないかどうかを確認することができます。

番外:その他おすすめの記事

開発がもっと快適に、楽しくなるアイテムを紹介します。アイテム1つで開発の楽しさが全然変わるので、良いアイテムにはじゃんじゃんお金を投資すると良いですよ。

おすすめアイテム①

自分はオフィス次の2点の座布団と背もたれクッションを利用してます。姿勢が安定し、お尻への負担が激減します。オフィスにいるのに自宅で作業しているような感覚になるので気に入ってます。また疲労感もかなり減るので費用対効果が非常に高いアイテムです。

おすすめアイテム②

ブックスタンドみなさん使ってますか?PCを打ちながら参考書見る時に手で抑える必要がなくなるので非常に便利です。自分も購入した時なんでいままで使ってなかたんだろうと後悔したのでまだ持ってない方は買っておくと作業効率があがります。

おすすめアイテム③

PCスタンド、magic keyboard、magic mouseを購入してから、開発効率があがり、身体的負担が減って快適に開発ができるようになりました。

エンジニアの基礎知識・教養

別の記事でエンジニアとして知っておくべき技術本についてまとめました。初心者には最低限読んでおいて欲しい技術本をまとめました。例えば「リーダブルコード」などは技術力の高いエンジニアなら必ず過去に読んでいる本だと思います。

時短アイテム!日々の生活の質を上げる

日常生活における無駄を省く表品をまとめました。1日無駄な作業時間が10分発生するとしたら1年間で3600時間もその無駄な作業に時間を費やすことになります。このような魔の作業を消し去ってくれる商品をまとめました。。

気軽にお声かけください

このような形でほぼ毎日、情報発信を行ってます。技術的な部分で誤っている点などもあるかもしれません。その様な部分を発見した方はTwitterのDMなどで知らせていただければ凄い嬉しいです。また自身自身のエンジニアのネットワークを広げたいと思ってます。日頃六本木や渋谷にいることが多いですので気軽にお誘いください。情報交換しましょう。

筆者
筆者

今回の記事の内容は以上で終了です。最後まで読んでくれてありがとうございました。Twitterもやってるのでフォローしてくれたら嬉しいです!

タイトルとURLをコピーしました