More than 3 years have passed since last update.
はじめに
本記事では、暗号について記述します。
暗号化
データを一定の規則に従って、
第三者に容易に解読できないようにすることす。
暗号化することで、通信経路上でのデータの盗聴を防ぐことができます。
対して、
暗号化したままでは誰もデータの中身を読めないため、
暗号化されたデータを元に戻す復号も必要になります。
つまり、暗号化した後、復号化が発生します。
復号には、鍵というものが必要になります。
この鍵は、データを暗号化した際に一緒に作られます。
作られた鍵を使って、暗号化したデータを復号します。
共有鍵暗号方式(AES)
暗号化鍵と復号鍵が共通の同じ秘密鍵を使う方式です。
*平文とは、暗号化されていないデータのことです。暗号化されたデータを暗号化と言います。
[送信側]
平文
↓暗号化(暗号化鍵、共通の秘密鍵)
暗号文
↓復号(復号鍵、共通の秘密鍵)
平文
[受信側]
暗号化鍵は盗まれないようにする必要があります。
復号と同一の鍵を使っていることから、
盗まれてしまうと、暗号化していても、復号されてしまいます。
そのため、鍵を安全に配布するための工夫が必要であることから、
不特定多数の相手とのデータやりとりには不向きです。
メリットとして、ファイルやデータの暗号化にかかる処理速度が早いです。
公開鍵暗号方式
一方の鍵を公開する暗号方式です。
暗号化鍵と復号鍵が異なります。
[送信側]
平文
↓暗号化(暗号化鍵、 受信者の公開鍵)
暗号文
↓復号(復号鍵、受信者の秘密鍵)
平文
[受信側]
イメージは、南京錠です。
誰でも閉めることができるけど、鍵は持っている人しか開けられない。
鍵を受信者が公開していることから、
安全に鍵を配布することができ、共通鍵暗号方式とは違い、
不特定多数の相手とデータのやりとりをすることに向いています。
しかし、暗号化や復号には時間がかかります。
ハイブリッド鍵暗号方式
共通鍵暗号方式と公開鍵暗号方式を組み合わせた方式です。
①送信者が「共通鍵」を作成します。
②送信者が作成した「共通鍵」を、受信者の公開鍵で暗号化して受信者あてに送信します。
③受信者が、送信されてきた「共通鍵」を受信者の秘密鍵で復号します。
→ここで受信者は「共通鍵」が手に入ったので、両者が「共通鍵」を持っていることになります。
④これ以降は、データを「共通鍵」で暗号化したり復号したりしてやりとりを開始します。
以上です。
終わりに
基本的にハイブリッド鍵暗号方式を採用することが良いと思われます。
他に暗号について知識を身につけたらアウトプットする予定です。
以下参考サイトです。
共通鍵暗号方式(AES)と公開鍵暗号方式(RSA)との違いを解説!
明日も頑張ります!
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
