アウトプットの部屋

エンジニアになるためのアウトプット

暗号化技術(ITパス)

インターネット上では「裸で荷物が大量に送られている状態」なので、暗号化をすることによって悪いことをされないようにセキュリティをかけます。主に「共通鍵暗号方式」と「公開鍵暗号方式」の2つがあります。

共通鍵暗号方式

送り手(暗号化する側)と受け手(復号する側)が共通の鍵を用いる方法。

送り手が暗号をかけ、受け手が鍵を使って復号します。鍵が共通なのが特徴です。

鍵が第3者にバレると意味ないので、秘密鍵暗号方式とも言われます。

ただし、そもそも鍵自体を安全に送るにはどうすれば良いかとか、送り手と受けてが増えれば増えるほど鍵の数が増えてしまうというデメリットもあります。

公開鍵暗号方式

公開しても良い鍵、公開鍵を用いて暗号化する方法。

鍵は「秘密鍵」と「公開鍵」の2つがあります。公開鍵は誰に知られても大丈夫。

送り手は、受け手の公開鍵を使って暗号をかけます。受け手は、受け手(自分)の秘密鍵を使って復号します。

公開鍵で暗号化したものは秘密鍵でしか復号できないので、データを盗聴される心配は無くなります。

さらに応用としてデジタル署名というものがあります。

・デジタル署名

主にデータの改ざんに対しての対策方法です。公開鍵暗号方式のように、2つの鍵をそれぞれ用意します。

まず送り手は、送りたいメッセージにハッシュ関数を使ってメッセージダイジェストを作成します。ハッシュ関数は「こんにちは」というメッセージを、「fjkos」のように意味のわからない文字列に変えてくれます。「fjkos」のことをメッセージダイジェストと言います。そしてそのメッセージダイジェストを秘密鍵で暗号化します。最終的に暗号化したメッセージダイジェストとメッセージ自体(今回なら「こんにちは」)の2つを送信します。

受け手は公開鍵を使ってメッセージダイジェストを復号し、ハッシュ関数を使ってもとの文に戻します(ハッシュ関数は必ず同じメッセージダイジェストを生成します)。実際に送られた文と一致していれば改ざんされてないということがわかります。