前置き
本記事は通信で使用する鍵方式の違いについて、解説します。
イメージできることをゴールにします。
鍵かける必要性とは?
そもそも鍵をかける必要性はなぜか?
答えは、データの漏洩や改ざん を防ぐことが目的です。
悪意の第三者からデータを盗まれて悪用されることを防止するために鍵掛をしています。
その鍵をかけるやり方が2種類あるよ!といった話です。
(厳密には2種類以外にもありますが、気になる方は調べてみてください!(/・ω・)/)
共通鍵暗号方式
言葉の通りです。
データを送信・受信する際に、共通の鍵を使用します。
イメージはこんな感じです。
送信者が箱にデータを入れて送ろうとしています。
送信者はデータを置くる際に鍵を用意します。
この鍵でデータを保護することを 暗号化といいます!
送信者が持つ鍵を受信者にも渡します。
結果ロックした同じ鍵を持つ状態になるため暗号化したデータの確認ができる仕組みです!
懸念
この方式には懸念点があります。
①受信者が複数にいる場合、送信者が送る人数分鍵を用意する必要がある
➡受信者が不特定多数に渡す場合、鍵の管理が困難です。
②鍵を受信者に渡す際に鍵情報が漏洩するおそれがある。
➡この問題を解決するために、現在は公開鍵・共通鍵方式を組み合わせたハイブリット方式が取られることが多いです!
➡ハイブリットについての解説は別記事予定です。興味のある方は調べてみてださい!(/・ω・)/
公開鍵暗号方式
受信者がデータを保護する鍵を送信者へ渡し、送信者は貰った鍵でデータをロックします。
その後受信者へデータを送り返し、受信者は手元の鍵でロックを解除してデータを確認できる方式です!
イメージはこんな感じです!」
先ず受信者が鍵の開いた南京錠を送信者へ渡します。
この南京錠が俗に言われる 公開鍵のイメージです!
南京錠が届いた送信者は南京錠を取り出し、受信者へ渡すデータを用意します。
用意が出来たら受信者からもらった南京錠でデータをロック(暗号化)します!
受信者のもとへロックされたデータが届きます。
南京錠はもともと受信者が用意したものです。
当然、南京錠を開けるための解除鍵(秘密鍵)は手元にあります。
よって、受信者は送信者から送付されたデータが確認できるわけです!
懸念
①暗号化されたデータの計算が複雑のため処理速度が遅い!
②秘密鍵が漏洩すると、誰でも公開鍵と紐づけてデータを盗むことができます
③中間者攻撃を受ける恐れがあります。中間者攻撃とは、公開鍵が送らてくる途中ですり替えや割り込みをやられてしまい、間違った南京錠にデータを入れて送ってしまうことで、データを盗まれることです。
ざっくりですが、共通鍵暗号方式と公開鍵暗号方式を解説してみました。
この記事で暗号化・複合化における方式のイメージができたら幸いです(*‘ω‘ *)/