教科書一覧へ

暗号化の基礎と暗号方式

頻出約 18 分情報セキュリティ対策・情報セキュリティ実装技術

概要

本ユニットでは、情報を第三者に読めなくする暗号化と元へ戻す復号の基礎概念から、鍵の使い方で分かれる共通鍵暗号方式・公開鍵暗号方式、両者の長所を組み合わせたハイブリッド暗号方式、そして元データへ戻せない一方向のハッシュ関数までを学びます。デジタル署名・PKI・SSL/TLSなど応用技術すべての土台となる、本分野で最頻出の重要単元です。

用語6

暗号化

鍵を使い、平文を第三者が読めない暗号文へ変換する処理。

暗号化は、そのままでは読める情報(平文)を、決まった手順(アルゴリズム)と鍵を使って、意味の分からない暗号文に変える処理です。通信の盗聴やデータの漏えいが起きても、鍵を持たない第三者には内容を読まれないようにし、機密性を守ります。 暗号文を元の平文へ戻す「復号」と対になる概念で、試験ではこの2語の向きの違いがよく問われます。また、暗号化しても通信が「速くなる」「データが小さくなる」わけではなく、目的はあくまで内容の秘匿である点も押さえましょう。

たとえ手紙を、自分と相手だけが知る暗号ルールで意味不明な文字列に書き換えてから送るようなもの。途中で誰かに見られても中身は読まれません。

記憶フック暗号化といえば平文を読めない暗号文に変える処理

復号

鍵を使い、暗号文を元の読める平文へ戻す処理。

復号は、暗号化されて読めなくなった暗号文を、正しい鍵を使って元の平文へ戻す処理です。受信側が正規の鍵を持っているときだけ内容を読めるようにすることで、暗号化と組み合わせて安全な通信や保管を実現します。 暗号化と逆向きの操作であり、試験では「暗号化=平文→暗号文」「復号=暗号文→平文」という方向を取り違えないことが重要です。なお、正しい鍵がなければ復号できないのが暗号方式の前提で、鍵が漏れると第三者にも復号されてしまう点も理解しておきましょう。

たとえ暗号ルールで書かれた意味不明な手紙を、同じルール(鍵)を知っている人が元の読める文章に戻して読むようなものです。

記憶フック復号といえば暗号文を元の平文に戻す処理

共通鍵暗号方式

暗号化と復号に同一の鍵を使う暗号方式。

共通鍵暗号方式は、送信者が暗号化に使う鍵と、受信者が復号に使う鍵が同じである方式です。処理が速く大量のデータ向きという長所がある一方、その鍵を相手へ安全に渡す「鍵配送」が難しいという課題があります。秘密鍵暗号方式とも呼ばれます。 また、通信相手が増えるほど必要な鍵の数が大きく増える点も弱点です。試験では、暗号化と復号で鍵が同じなのが共通鍵、鍵が異なるのが公開鍵、という対比がよく問われます。代表的なアルゴリズムにAESがあります。

たとえ1本の鍵でかけたり開けたりできる南京錠のようなもの。便利ですが、その鍵を相手に渡す途中で複製されると誰でも開けられてしまいます。

記憶フック共通鍵暗号方式といえば暗号化と復号が同じ鍵

公開鍵暗号方式

公開鍵で暗号化し、対の秘密鍵で復号する暗号方式。

公開鍵暗号方式は、暗号化用の「公開鍵」と復号用の「秘密鍵」というペアの鍵を使う方式です。公開鍵は誰に配っても構わず、それで暗号化された暗号文は対になる秘密鍵を持つ本人だけが復号できます。これにより共通鍵方式の弱点だった鍵配送の問題を解決します。 受信者が公開鍵を公開し、送信者がそれで暗号化、受信者が自分の秘密鍵で復号するのが基本の流れです。試験では「公開鍵で暗号化→秘密鍵で復号」という鍵の対応、共通鍵より処理が遅い点、デジタル署名やPKIの基盤になる点が頻出です。代表例にRSAがあります。

たとえ誰でも投函できる郵便ポスト(公開鍵)に手紙を入れ、その中身は専用の鍵(秘密鍵)を持つ持ち主だけが取り出せる、という仕組みに似ています。

記憶フック公開鍵暗号方式といえば公開鍵で暗号化・秘密鍵で復号

送信者

受信者の公開鍵で暗号化

暗号文を送信

受信者の秘密鍵で復号

受信者

ハイブリッド暗号方式

公開鍵方式で共通鍵を送り、本文は共通鍵方式で暗号化する方式。

ハイブリッド暗号方式は、共通鍵暗号方式と公開鍵暗号方式を組み合わせて両者の長所を活かす方式です。本文の暗号化には高速な共通鍵方式を使い、その共通鍵そのものを相手へ安全に渡すために、鍵配送に強い公開鍵方式を使います。 これにより「処理が速い」と「鍵を安全に配れる」を両立でき、SSL/TLSなど実際の通信で広く使われています。試験では、なぜ2方式を組み合わせるのか(速度と鍵配送の両立)、どちらの方式で何を暗号化するのか(共通鍵は公開鍵で、本文は共通鍵で)という役割分担が問われます。

たとえ重い荷物(本文)は速い宅配便(共通鍵)で送り、その宅配ボックスの鍵だけは確実な書留(公開鍵)で届けるようなもの。速さと安全を両立させます。

記憶フックハイブリッド暗号方式といえば共通鍵を公開鍵で配り本文は共通鍵で暗号化

共通鍵を生成

本文を共通鍵で暗号化

共通鍵を相手の公開鍵で暗号化

暗号文と暗号化した共通鍵を送信

受信側は秘密鍵で共通鍵を復号し本文を復号

ハッシュ関数

任意データを固定長の値へ変換する、元へ戻せない一方向関数。

ハッシュ関数は、入力データの長さにかかわらず、決まった長さの値(ハッシュ値)を出力する関数です。同じ入力からは必ず同じハッシュ値が得られ、入力が少しでも違えば全く異なる値になります。出力から元の入力を復元できない一方向性が大きな特徴です。 暗号化と違い鍵を使わず、復号もできない点が試験で問われます。データが改ざんされていないかの確認(完全性のチェック)やデジタル署名、パスワードの保存などに使われます。代表例にSHA-256があります。

たとえ料理を細かく刻んで指紋のような「ペースト」にするようなもの。同じ材料なら同じペーストになりますが、ペーストから元の料理を組み立て直すことはできません。

記憶フックハッシュ関数といえば元に戻せない固定長の一方向変換

まとめ

要点

  • 暗号化は平文を暗号文へ、復号は暗号文を平文へ戻す対の操作で、目的は内容の秘匿(機密性の確保)である。
  • 共通鍵暗号方式は暗号化と復号で同じ鍵を使い高速だが鍵配送が難しく、公開鍵暗号方式は公開鍵で暗号化・秘密鍵で復号し鍵配送に強いが低速、という違いを区別する。
  • 公開鍵暗号方式は『公開鍵で暗号化→対の秘密鍵で復号』が基本で、デジタル署名やPKIの基盤となる(代表例RSA)。
  • ハイブリッド暗号方式は本文を高速な共通鍵で、その共通鍵を公開鍵で安全に配送し、速度と鍵配送を両立する(SSL/TLSで利用)。
  • ハッシュ関数は鍵を使わず復号もできない一方向変換で、改ざん検知やデジタル署名・パスワード保存に使う(代表例SHA-256)。

記憶フック一覧

  • 暗号化: 暗号化といえば平文を読めない暗号文に変える処理
  • 復号: 復号といえば暗号文を元の平文に戻す処理
  • 共通鍵暗号方式: 共通鍵暗号方式といえば暗号化と復号が同じ鍵
  • 公開鍵暗号方式: 公開鍵暗号方式といえば公開鍵で暗号化・秘密鍵で復号
  • ハイブリッド暗号方式: ハイブリッド暗号方式といえば共通鍵を公開鍵で配り本文は共通鍵で暗号化
  • ハッシュ関数: ハッシュ関数といえば元に戻せない固定長の一方向変換

関連の過去問演習は今後のアップデートで追加予定です。