今回は、「暗号化と復号」についての説明です。
1.初めに
なんだかんだで暗号という言葉はどこかしらで耳にしますよね?
ある情報を第三者に読み取らせないように工夫するあの暗号です。
例えば、横書きの手紙を縦読みすると意味のある文字列が浮かび上がってきたり、狸の絵が描かれた便箋に書いてある文章から「た」を「抜き」にするとちゃんと読める文章になったりという暗号は有名ですよね。
例えば上図のような手紙が届いた場合、手紙の送り主は何かにブチ切れている可能性がありますね(笑)
今回は、IT業界における暗号化と復号、その具体例について解説していきます。
2.暗号化とは?
暗号化[Encryption]とは、データを特定のルールに従って変換して第三者からは解読できない状態にすることです。
その名の通り暗号にすることを指しています。
例えば、『おはようございます』という文字列に「文字列を逆転させる」という暗号鍵(変換ルール)を適用したとします。
すると、『すまいざごうよはお』となるわけです。
こんな感じにルールに則って暗号化することで、データを盗み見されても内容を把握されないようにしています。
この例はわかりやすく説明する為に超単純な暗号鍵にしましたが、実際の暗号鍵はもっと複雑で、暗号鍵を知らなければまず解読できないものとなっています。
3.復号とは?
暗号化したデータを送付したとして、当然ながら受信者は暗号化されたままではデータが何を表しているのかわかりません。
そこで、暗号鍵を使ってデータを復元する必要があります。
このことを復号と呼びます。
要は、暗号化したデータを元の状態に戻すことを復号[decryption]と呼ぶのです。
復号“化”では無いです。復号です。
“化”は付きませんので、間違えないようにしましょう。
この復号に用いる暗号鍵には、共通鍵暗号と公開鍵暗号の二種類の方式が存在します。
端的に言えば、共通鍵暗号が暗号化及び復号に全く同じ暗号鍵を用いる方式、公開暗号方式が公開鍵と秘密鍵という二種類の鍵を用いる方式です。
後者の方がより厳重な暗号化となります。
各々、もう少し詳しく解説していきますね。
3-1.共通鍵暗号とは?
共通鍵暗号は、暗号化に使用した暗号鍵を用いて復号する方式です。
暗号化と復号に使用する鍵が共通だから共通鍵暗号です。
パスワードを解除するために自分で決めたパスワードを入力するのと同じで、至極当然な方式と言えます。
ただ、この方式は情報漏洩のリスクがあります。
例えば、暗号化したデータを10人に送付した場合、受信した10人は復号するための暗号鍵を全員所有している必要があります。
暗号鍵は命綱なので厳重に管理したいところですが、複数人に送ると暗号鍵が至るところに存在することになってしまいます。
そうなると、暗号鍵の情報が漏れるリスクが増えてしまうわけです。
暗号鍵がバレたら暗号化の意味がないですからね。
だからと言って一人一人に異なる暗号鍵を用意して共有すると管理が大変になります。
そんなリスクを軽減するための複合方式として公開鍵暗号が考案されています。
3-2.公開鍵暗号とは?
公開鍵暗号は、暗号鍵と対になる別に用意された鍵で復号する方式です。
名前的には『鍵を公開してるってどういうこと?』と思いそうなものですね。
公開鍵暗号の場合、個人個人で公開鍵と秘密鍵という二種類の鍵を保有しています。
公開鍵は暗号化用の鍵です。
公開鍵は誰でも利用できるように公開されています。
それに対して、秘密鍵は復号用の鍵です。
秘密鍵は非公開で、持ち主しか使用できません。
多分この説明だけだとよくわからないと思うので、順次説明をしていきますね。
AさんがBさんに対して暗号化したデータを送りたかったとします。
この場合の手順は以下の通りです。
- Bさんの公開鍵を取得する。
- Bさんの公開鍵でデータを暗号化する。
- 暗号化したデータをBさんに送付する。
- Bさんが自分の秘密鍵で復号する。
重要なポイントは④のBさんの秘密鍵で復号するという箇所です。
公開鍵で暗号化すると、その公開鍵と対になっている秘密鍵でしか復号できないのです。
つまり、②で暗号化したデータはAさんも復号できないんです。
Aさんが暗号化したにも関わらずAさんにも解読できなくなるんです。
だから公開鍵はいくら公開したところで何の問題もないのです。
個人個人が所有している秘密鍵さえ厳重に保管しておけばいいわけですからね。
ちなみに、公開鍵と秘密鍵をペアで生成するのは容易ですが、公開鍵から秘密鍵を推測するのはコンピュータで演算しても極めて困難と言われています。
元々主流は共通鍵暗号だったのですが、公開鍵暗号が考案されてからは主流が置き換わっています。
安全な方が良いに決まってますからね。
以上、「暗号化と復号」についての説明でした。