tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

共通鍵暗号と公開鍵暗号

前々回記事で話した「暗号化」についてもう少し深掘りしていこうと思います。

f:id:okinawanpizza:20200510102341p:plain

言葉で説明できない時はkeynoteを使えばいいということに最近気づきました私です。 w

暗号とは

元の文を書き換えたり、隠したりすることである一定の人にしか解釈できないようにするための文のことです。
カエサル暗号、古典暗号、エニグマ、、など古代からいろいろな暗号が使われてきていますが
インターネット上ではセキュリティーを守るための技術として幅広く応用されています。
暗号を使うことで、 第三者が通信の内容を確認できないようにすることが可能です。

f:id:okinawanpizza:20200510110632p:plain

以下はよく出てくるキーワードです!!

平文 = 暗号化される前の何も手を加えられていない文章のこと。  
暗号化 = 文章を暗号にすること。  
復号化 = 暗号化された文章(暗号文)を平文に戻すこと。  

その中で代表的な共通鍵暗号公開鍵暗号について説明します。

共通鍵暗号方式とは

そもそもクラアントが文書を送信する際、「鍵」を使って暗号化します。
そしてサーバー側も「鍵」を使って受け取った文章を復号します。
共通鍵暗号とは、暗号化と復号化に同じ鍵を使う方式のことです。

ただこの方式だと、第三者が鍵を手に入れることができます。
悪質な第三者も同様にクライアントからサーバー宛に送った文書を復号することができるのです。
(鍵と内容を一緒に送信するので、当然かもしれません。。)

公開鍵暗号方式とは

公開鍵暗号方式とは、暗号化する鍵と復号かする鍵が異なる認証方式です。
その二つの鍵のことを「公開鍵」「認証鍵」といい、
・公開鍵で暗号化したデータは秘密鍵でしか復号できない
秘密鍵で暗号化したデータは公開鍵でしか復号できない
というルールを持っています。

1「秘密鍵」と「公開鍵」の二つを作成します。
f:id:okinawanpizza:20200510154130p:plain 2「公開鍵」を送信側へ渡します。
f:id:okinawanpizza:20200510154334p:plain 3 送信側は、送りたい文書を「公開鍵」を作って暗号化します。
f:id:okinawanpizza:20200510154359p:plain 4 暗号化された文書を受信側へ送信、受信側はそれを「秘密鍵」を使って復号します。
f:id:okinawanpizza:20200510154441p:plain 5 受信側はそれを「秘密鍵」を使って復号します。
f:id:okinawanpizza:20200510154630p:plain

この方法だと、受信側しか秘密鍵を持っていないので、
三者が文書を復号することができません。

共通鍵暗号方式に比べて、第三者に復号されない送信が可能となります。

公開鍵暗号方式のデメリット

共通鍵暗号方式の欠点を克服するもデメリットは存在するのです。

デメリット

・一方通行の使い方しかできない。逆に送信と受信を交代するとまた鍵の作成が必要となる
・処理が複雑になるため処理速度が遅くなる

これらを克服するために、共通鍵と公開鍵の両方を使った暗号方式があります。

が、続きは明日にしたいと思います。笑

おしまい!