暗号化とは?公開鍵・共通鍵の違いをやさしく解説

暗号化とは?公開鍵・共通鍵の違いをやさしく解説

暗号化の仕組みを知りたい基本情報技術者の受験者のイメージ
「暗号化って、結局なにをしてるの?」
「公開鍵と共通鍵は、どう違うの?」
「HTTPSの鍵マークの中身は何?」

暗号化は、用語を1つずつ覚えるより「問題と解決の連鎖」で追うと腑に落ちます。共通鍵のある弱点を、公開鍵が埋め、その弱点をハイブリッドが埋める。この流れが本題です。

暗号化とは、データを第三者に読めない形に変換し、決められた鍵を持つ相手だけが元に戻せるようにする仕組みです。元に戻すことを復号と呼びます。

 

この記事では、暗号化の基本用語を固め、共通鍵方式の弱点を確かめ、それを公開鍵方式がどう解くかを追います。最後に両者を組み合わせるハイブリッド方式と、基本情報での問われ方まで示します。

 

1. 平文・暗号文・鍵という3つの言葉

暗号化の基本用語を整理するイメージ

暗号化とは、そのまま読める文章(平文)を、見ても意味の分からない文字列(暗号文)に変える処理です。変換のルールを決めるのがで、鍵を持つ相手だけが正しく中身を読めます。暗号文を元の平文に戻すのが復号です。

 

目的は、盗聴対策や改ざん検知の土台を作ることにあります。公衆Wi-Fiのように通信経路に第三者が紛れこむ余地があっても、データが暗号文になっていれば中身を読み取られません。あなたがまず握るべきは、平文・暗号文・鍵・復号の4語です。ここが曖昧なままだと、この先の共通鍵と公開鍵の比較でつまずきます。

 

3つの基本用語を押さえてください。平文(元のデータ)/暗号文(変換後のデータ)/鍵(変換のルールを決める情報)。そして安全性の土台は、暗号方式そのものより鍵の管理にあります。鍵が漏れれば、どんな方式でも中身は読まれます。

 

2. 共通鍵方式の弱点 — 鍵をどう渡すか

共通鍵方式で同じ鍵を双方が持つイメージ

最も基本的な方式が共通鍵方式です。送信側と受信側が同じ鍵を共有し、暗号化と復号の両方に使います。対称鍵暗号とも呼び、代表的なアルゴリズムがAES(Advanced Encryption Standard)です。

 

強みは、処理が速く、大量のデータの暗号化に向く点です。サーバ間のファイル転送やディスクの暗号化など、データ量の多い場面で実用的に使われます。ところが、ここに1つの弱点があります。「鍵をどうやって相手に安全に渡すか」という、いわゆる鍵配送問題です。合鍵を相手に郵送する場面を思い浮かべてください。途中で第三者にコピーされれば、その時点で暗号化の意味が消えます。デジタル通信でも同じで、鍵の受け渡し方法を別に考える必要があります。この弱点が、次の公開鍵方式が生まれた理由です。

 

共通鍵方式の要点は3つです。双方が同じ鍵を持つ/処理が速い/鍵配送が課題。速さは大きな武器ですが、その鍵を安全に届ける手段がなければ使えません。あなたはこの「速いが、鍵を渡せない」という宿題を覚えておいてください。

 

3. 公開鍵方式が、鍵配送を解く

公開鍵と秘密鍵のペアでやり取りするイメージ

共通鍵方式の鍵配送問題を解くのが公開鍵方式です。性質の違う「公開鍵」と「秘密鍵」の2つをペアで使います。非対称鍵暗号とも呼び、代表がRSAです。

 

使い方はこうです。受信者があらかじめ公開鍵を配っておきます。送信者はその公開鍵で暗号化して送り、秘密鍵を持つ受信者だけが復号します。公開鍵は名前の通り誰に渡してもかまわず、秘密鍵だけを厳重に守ればよい設計です。だから、あなたが頭に置いておいた「鍵を安全に渡せない」という共通鍵の宿題が、ここで解けます。事前に秘密の鍵を共有しておく必要が、そもそもなくなるからです。

 

たとえるなら、街角の目安箱です。投入口は誰でも使えて、意見を入れられます(公開鍵で暗号化)。でも、箱を開けて中を読めるのは、鍵を持つ担当者ただ一人です(秘密鍵で復号)。投入は自由、開封は一人。この非対称さが、鍵をあらかじめ渡しておく必要をなくします。

 

ただし公開鍵方式にも弱点があります。共通鍵方式に比べて処理が遅いのです。大量のデータを丸ごと公開鍵で暗号化すると、時間がかかりすぎます。ここでまた新しい宿題が出てきました。基本情報では「公開鍵と秘密鍵のどちらで暗号化し、どちらで復号するか」が頻出です。送信者と受信者の役割を、図で整理しておくと迷いません。

 

4. だから両方を組み合わせる(TLS/HTTPS)

ハイブリッド方式でTLS/HTTPSが成り立つイメージ

共通鍵は「速いが鍵を渡せない」、公開鍵は「鍵を渡せるが遅い」。この2つの弱点を打ち消し合うのが、ハイブリッド方式です。それぞれの長所だけを組み合わせます。

 

流れは2段構えです。(1)まず公開鍵方式で、共通鍵を安全に相手へ渡す。(2)その後の本通信は、速い共通鍵方式で暗号化する。鍵を渡す一瞬だけ遅い公開鍵を使い、大量の本文は速い共通鍵でさばく。これで「速さ」と「鍵を安全に渡す」を両立します。

 

この仕組みをWeb通信に応用したのがTLS(Transport Layer Security)です。HTTPの通信をTLSで暗号化したものが HTTPS で、あなたがふだん目にするブラウザの鍵マークの正体です。SSLという言葉も耳にしますが、現在の標準はTLSで、SSLは古い世代の呼び方です。試験では「SSL/TLS」とまとめて表記されます。

 

暗号化はあくまで盗聴対策の仕組みで、鍵の管理が雑なら安全性は崩れます。「暗号化しているから安心」ではなく、鍵管理とセットで運用するのが基本姿勢です。鍵管理を含めて組織全体でルール化する枠組みは 情報セキュリティマネジメントとは で、元に戻せない一方向の技術との違いは ハッシュ関数とは で確かめられます。

 

5. 基本情報では、3方式の役割が問われる

基本情報で暗号化の3方式が問われる位置づけのイメージ

暗号化は、基本情報技術者のセキュリティ分野で毎回のように問われる中核テーマです。あなたが押さえる軸は、3方式の役割の切り分けと、それぞれの弱点です。ここまで弱点の連鎖で追ってきたあなたなら、もう地図はできています。

 

定番は「同じ鍵を使うのはどれか(=共通鍵)」「鍵配送問題を解くのはどれか(=公開鍵)」という役割の見分けです。さらに「HTTPSはなぜ両方を使うのか」を問う形も出ます。ここでは第4章の「速い共通鍵と、鍵を渡せる公開鍵の長所どり」がそのまま答えになります。AES=共通鍵、RSA=公開鍵という代表アルゴリズムも、セットで覚えておいてください。

 

得点の軸は、共通鍵(同じ鍵・速い・鍵配送が課題・AES)/公開鍵(ペア・鍵配送を解く・遅い・RSA)/ハイブリッド(両者の長所どり・TLS/HTTPS)の3点です。用語を単体で覚えるより、「弱点を次が埋める」連鎖で追うほうが、なぜHTTPSが両方を使うのかまで一本でつながります。

 

次のステップ

暗号化はセキュリティ分野の常連です。基本情報技術者試験の試験範囲と勉強法ガイド で範囲をとらえておくと、関連分野との位置関係が見えます。

3方式の見分けは、基本情報技術者 セキュリティの問題集 の暗号化の設問で、実際に手を動かして固めてください。