ねぎとろ放浪記

ねぎとろ放浪記

個人的備忘録です。勉強したことをまとめていきます。

暗号化技術

暗号化技術とそれを使ったデジタル署名の仕組みについてまとめる。

共通鍵暗号方式

暗号化と複合に同じカギを用いる方式。
カギを秘密にしておく必要があるので秘密鍵暗号方式とも呼ばれる。
複数の相手がいる場合はそれぞれ異なる秘密鍵を用意する。
カギの配送を盗聴されないようにする必要あり。
簡単なアルゴリズムなので高速。

f:id:neginegitoro:20200402121229p:plain
共通鍵暗号方式

公開鍵暗号方式

暗号化鍵を公開し、複合鍵を秘密にする方式。
受信者は暗号化鍵と複合鍵を作成し、暗号化鍵を公開する。
暗号化に使用するカギを公開鍵、複合に使用するカギを秘密鍵という。
カギを配送する必要がない。
暗号化と複合に異なるアルゴリズムを用いているので低速。
また、公開鍵暗号方式を用いる認証の仕組みをPKI(Public Key Infrastructure) という。

f:id:neginegitoro:20200402121313p:plain
公開鍵暗号方式

ハッシュ関数

任意長の情報から、短い固定長の情報を作る関数。
このようにして作られた情報をハッシュ値という。
文字列も2進数に変換されるので演算で値を変えることができる。
ハッシュ関数は認証技術で用いられる。

デジタル署名

送信されてきたデータが間違いなく本人のものであるかを証明する技術。
公開鍵暗号方式を応用している。

デジタル署名の手順は以下の通り。
送信者側
1. 送信者で公開鍵と秘密鍵を作成
3. 送りたいメッセージを作成
4. メッセージの一部をハッシュ値に変換
5. 秘密鍵ハッシュ値を暗号化
6. メッセージにハッシュ値をつけて送付

受信者側
1. 送信者の公開鍵でハッシュ値を複合
2. ハッシュ関数を用いてメッセージからハッシュ値を計算
3. 両者が一致すればOK

f:id:neginegitoro:20200402121357p:plain
デジタル署名

ただし公開鍵が偽物にすりかえられていた場合署名は意味をなさない。
これを防ぐために 認証局(CA:Certificate Authority) に公開鍵が本人のものであるデジタル証明書を発行し、公開鍵を配布する。


公開鍵暗号方式では送信者が受信者の公開鍵を使って暗号化する。
デジタル署名では送信者が自身の秘密鍵を使ってハッシュ値を暗号化する。
この違いがややこしい。