暗号化とは?
情報を一定のルールに従って変換し、第三者には理解できないようにする技術です。
インターネットは魑魅魍魎うごめく危険な世界でもあります。大事な手紙を誰かに届ける際、
悪い人はその手紙の中身を覗いて情報を盗もうとします。
そこで登場するのが暗号化!
手紙の中身を特定の鍵を使って暗号化すれば、誰かが覗いて中身を見られても意味不明な文字列が並んでいるだけで情報は漏れません。その鍵を持っている本来の相手先だけが解読できます。
暗号化の用途
暗号化が使われている例を挙げていきます。
- インターネット通信
インターネットで買い物をする際、クレジットカード情報を入力することがありますよね。この情報は暗号化されて送信され、第三者に盗み見られるリスクを防ぎます。SSL/TLSという技術が使われており、URLの「https://」がそれを示しています。スマホだとアドレスバーに錠前マークがついていることもありますね。
ぜひ今アドレスバーを見てみてください。(一度アドレスバーをタップ、クリックしないと出てこないかも)
- 電子メール
プライベートな内容をメールで送る場合、暗号化しておけば途中で悪意のある第三者に読まれる心配が減ります。企業などでは、暗号化メールの送信が一般的になっています。
- ファイルやデータの保護
大切なデータを保存するとき、暗号化しておけば万が一盗まれても簡単に読まれることはありません。たとえば、USBメモリを暗号化しておけば、紛失した際にもデータ漏洩を防げます。
- パスワード管理
サービスにログインするとき、パスワードがそのまま保存されているわけではありません。暗号化やハッシュ化された状態で保存されるため、万が一データが流出しても簡単には解読されません。
暗号化方式
暗号化方式にはいくつかの種類があり、用途やセキュリティレベルに応じて使い分けられます。代表的なものを紹介します。
①共通鍵暗号方式・・・送信者と受信者が同じ鍵を使う方式!
共通鍵暗号方式では、同じ鍵(共通鍵と呼びます)を使って暗号化と復号を行います。
メリットは暗号化・復号(暗号を解読して元の文に戻すこと)が速いこと!
デメリットは、鍵を安全に相手に渡すのが難しいことです。
鍵と言っても物理的な鍵ではないため、もちろん手渡しはできません。
そうすると何らかのネットワーク上で受け渡しをする必要があるのですが、
じゃあこの鍵自体はどうやって暗号化すればいいのか・・・という話になってきます。(解決方法は後述)
他にも、1対1であれば簡単で扱いやすい共通鍵暗号方式ですが、
他の大勢ともやり取りをしたい場合はどうなるでしょうか。
正解はその相手ごとに鍵を作る必要がある、です。
何個も別の鍵を持つ羽目になるので、大勢へのデータ送信に使うには不向きです。
②公開鍵暗号方式・・・公開鍵と秘密鍵のペアを使う方式!
公開鍵暗号方式では、データの受信者側が秘密鍵という自分だけで持つ鍵と、
公開鍵という誰に見られてもかまわない鍵を作って、公開鍵をやり取りをしたい相手に渡します。
データ送信者は、この公開鍵を使ってデータを暗号化します。
この暗号化したデータは相方である秘密鍵でのみ復号できます。
秘密鍵は誰とも共有しないため、漏れる心配が少なくすみます。
メリットは鍵を安全に共有できることです。
また、公開鍵は共通なので、複数人からのデータを受信する必要がある場合も鍵が1セットで済みます。
デメリットは共通鍵暗号方式に比べ、暗号・復号に時間がかかること、計算負荷が高いことです。
③ハイブリッド暗号方式・・・共通鍵方式と公開鍵方式のいいとこどり!
共通鍵暗号方式のデメリットであった、「最初の鍵をどうやって暗号化するか問題」の解決策です。
共通鍵を公開鍵暗号方式で送る
↓
共通鍵を手に入れたら、共通鍵暗号方式でデータのやり取りを行う。
という流れになります。
これにより、鍵の流出リスクを抑えるという安全面とスピードの両立が可能です。
(まぁ結局共通鍵方式の「いっぱい鍵管理しなきゃ」問題は別の方法で克服する必要があります。今回は割愛)
暗号化の注意点
暗号化を使えば安心…というわけではありません。注意すべき点もあります。
- 鍵の管理が重要
鍵を安全に管理しなければ、誰かに盗まれてしまう可能性があります。
特に共通鍵方式では、鍵の流出リスクが大きいため慎重に取り扱う必要があります。 - 古い暗号技術は危険
昔は安全だった暗号方式でも、技術が進歩するにつれて解読されやすくなります。定期的に暗号技術を更新することが重要です。 - 使い方を間違えると意味がない
パスワードや暗号化の仕組みが弱ければ、簡単に破られてしまいます。
適切な暗号化技術・暗号アルゴリズムを選び、強固なパスワードを設定することが必要です。
いくら暗号化されているといっても、パスワードが脆弱だと破られる可能性はアップします。
まとめ
暗号化はデータを安全に送受信するには欠かせない
「情報を一定のルールに従って変換し、第三者には理解できないようにする」技術!