どうもこんにちは。
あかつきゆいとです。
今回は(逸般のエンジニアたちが)最近よく耳にするE2EEについて話していこうかなと思います。
E2EEとは一言で
エンドツーエンド暗号化は、通信経路の末端でメッセージの暗号化・復号を行うことで、通信経路上の第三者からのメッセージの盗聴・改ざんを防ぐ通信方式である。
by Wikipedia
ひとことで言うとこうなります。
流石にわからないと思うので、噛み砕いていきましょう。
端末縛りの暗号化である
端末縛り というのがどういうことか。
E2EEではデータを送信した端末とデータを受け取った端末以外では暗号を復号できず、読み取ることができません。
End to End(機械から機械へ)なので、当たり前ですね。
公開鍵暗号
どういう原理でそれが成り立っているのかを説明しましょう。
それを理解するには、公開鍵と秘密鍵の話がとても重要になってきます。
公開鍵
公開鍵は、みんなに公開する鍵です。
鍵なのに鍵なのに公開して良いって不思議ですよね?
この鍵は暗号化することだけできます。
- この鍵を使って暗号化はできますが、 復号はできません 。
この点、とても重要です。
秘密鍵
この鍵は、 他の人に絶対に見せてはいけない 鍵です。
この鍵は基本的に復号することだけできます。
この鍵で、暗号化することは できません 。
そもそも、この鍵の機能はそれぞれどういうものかをまず話さないといけませんね。
暗号化
暗号化はその名の通り、平文(暗号化前の文章)を暗号化して、読めなくすることです。
復号
復号は暗号文から平文を導くことです。
例
AliceがBobに暗号化されたメッセージを送信したいと考えました。
- Aliceが公開鍵をBobに渡す
- BobはAliceの公開鍵で暗号化する
- AliceはBobから受け取った暗号文を秘密鍵で復号する
秘密鍵でしか復号できないから途中で暗号文と公開鍵が盗まれても大丈夫ですね。
秘密は守られます。
E2EEでは
話を戻すと、E2EEでは、この公開鍵暗号の仕組みを使用して、各端末に秘密鍵を保持するので、その秘密鍵を持っている端末でしか、復号できないということです。
なので、End 2 End Encryptなのです。
近年では、
- Keybase(公開鍵基盤でもある)
- Telegram
- Signal
- LINE Letter Seeling(LINE/完全なE2EEではない)
といったところで使われています。
秘密鍵と公開鍵の秘密
なぜ、公開鍵で復号できないのか、それは、RSAやDSAなどといった暗号化アルゴリズムの話が出てきます。
それはそれでまた記事として書き上げますので、それまで少々お待ちいただければと思います。
結論
E2EEは真面目に安全なんで、みんな使いましょう!!