変わらないものと変わるもの:暗号技術の20年

約14分で読めます

変わらないものと変わるもの:暗号技術の20年

概要

以前の記事「公開鍵暗号による文書データ署名入門」で、「秘密鍵はどのように保管するのか」という質問がありました。この質問をきっかけに、20年ほど前にICカードを使ったシステムに関わった時のことを、現在のKMS(Key Management Service)を使うシステムに重ねて思い返してみました。

驚くことに、技術は大きく進化していましたが、「秘密鍵を守る」「本人を証明する」という本質的な原則とその手法は全く変わっていませんでした。この記事では、「入札」という実例をテーマとし「変わらないもの」と「変わるもの」という視点で、暗号技術の20年を振り返ってみたいと思います。

1. 変わらないもの:守るべき原則

1.1 公開鍵暗号の原理は50年不変

公開鍵暗号は1970年代に発明されました。RSA暗号は1977年の発表以来、基本的な原理は変わっていません。

公開鍵暗号の2つの使い方

  • 暗号化: 公開鍵で暗号化→秘密鍵で復号(秘密を守る)
  • 署名: 秘密鍵で署名(暗号化)→公開鍵で検証(復号できることで本人を証明する)

鍵ペア(公開鍵と秘密鍵)を生成し、その組み合わせでのみ機能するという仕組みは、発明当時も今も同じです。

公開鍵と証明書は「公開」するもの

ここでちょっと誤解されがちなのが「証明書」です。証明書は秘密にするものではなく、むしろ公開するためのものです。証明書には公開鍵と所有者情報が含まれており、これを広く配布することで、誰もがその公開鍵の正しさを検証できます。逆に、証明書が失効した場合も公開されるため、相手も自分も不正利用から守られます。秘密にすべきは秘密鍵だけという原則が、この仕組みの要です。

1.2 「封筒」「施錠可能な保管庫」という紙の知恵は今も生きている

デジタル技術が進化しても、「秘密を守る」という人間の営みの本質は変わりません。紙の入札を例に見てみましょう。

入開札のイメージ

紙の入札の流れ

  1. 入札書の作成: 入札者は入札金額を記入した入札書を作成します
  2. 封筒に封入して提出: 入札書を封入し、提出受付期間内に提出します
  3. 提出された封書を受付: 提出された封書を受付し記録します
  4. 開札日時まで保管: 施錠可能な保管庫に格納し、開札日時まで厳重に保管します
  5. 開札: 開札当日、入札者を含む複数人の立会いのもとで、保管庫から取り出され公の場で開札されます
  6. 落札者決定: それぞれの入札の条件などにより、落札者が決定されます

この仕組みで守られているのは次の3つの原則です。

  • 秘密性: 開札までは誰も入札金額を知ることができません
  • 完全性: 封筒が開封された事実があれば、確認可能です(改ざん防止)
  • 公平性: 複数の立ち会い者の前で開札することで透明性を確保します

1.3 「秘密を守る」という人間の営みは変わらない

20年前のICカード時代も、現在のKMS時代も、やっていることの本質は同じです。

  • 入札金額を開札まで秘密にする
  • 入札書が途中で改ざんされていないことを保証する
  • 本人が提出したことを証明する

形は変わっても、「本人だけが開けられる」「途中で改ざんされていない」という要求は不変です。これは技術の問題ではなく、人間社会の信頼を支える根本的な仕組みなのです。

2. 変わるもの:進化する環境

2.1 保管場所の進化:用途による使い分け

秘密鍵の「保管場所」は、用途によって使い分けられてきました。そして、この20年で選択肢が大きく広がりました。

秘密鍵の保管場所

ICカード方式

ICカードの中に秘密鍵を格納し、物理的にその1枚にしか存在しない状態にします。合鍵は作れず、カードを紛失すると秘密鍵も失われます。

  • 特徴: カードの中で暗号化・署名処理が行われるため、秘密鍵がカード外に出ることはありません
  • 守り方: PINコード(暗証番号)で保護します。PINを複数回間違えるとロックされます
  • 具体例: マイナンバーカード、企業の入退室カード、電子入札用のICカード
  • メリット: 物理的に持ち歩くため、「手元にある」という安心感があります
  • デメリット: カードリーダーが必要で、紛失・破損のリスクがあります

20年ほど前の本番環境では、ICカードとカードリーダーを持ち歩くのが当たり前でした。秘密鍵はカードの中に閉じ込められ、外部に取り出すことはできません。この「物理的な隔離」が、当時の最も確実な保護方法だったのです。

PKCS#12ファイル方式

秘密鍵と証明書をパスワードで暗号化してファイルに保存する方式です。

  • 特徴: ファイルとして持ち運べるため、複数の端末で使うことができます
  • 守り方: ファイル自体がパスワード(PIN)で暗号化されています
  • 具体例: Windowsの証明書ストア、macOSのキーチェーン、メール署名用の証明書
  • メリット: バックアップが容易で、端末の移行もスムーズです
  • デメリット: ファイルが盗まれるとパスワード解析のリスクがあります

開発やテスト環境では、私も以前からPKCS#12ファイルを使い続けています。PCの性能が向上し、暗号化処理がローカルで高速に行えるようになったことで、ファイル形式での保管が実用的になりました。ICカードよりも柔軟に使えますが、ファイルの管理には注意が必要です。

KMS(Key Management Service)方式

専用の鍵管理システム(KMS)で秘密鍵を生成・保管し、外部に取り出せないようにする方式です。

  • 特徴: 秘密鍵はKMS内で生成され、外部には一切出てきません。暗号化・復号もKMS内で実行されます
  • 守り方: アクセス制御(IAM)とPINで多重に保護されます
  • 具体例: AWS KMS、Azure Key Vault、Google Cloud KMS
  • メリット: 最も安全性が高く、監査ログも自動で記録されます
  • デメリット: クラウドサービスの利用料がかかり、ネットワーク接続が必須です

近年、クラウドとネットワークの進化によって、秘密鍵を「どこにも持ち出さない」という新しい保護方法が生まれました。秘密鍵はKMS内で生成され、KMS内でのみ使われます。これをリモート署名と呼びます。

(ちょっと横道)ローカル署名とリモート署名

  • ローカル署名: ICカードやPKCS#12ファイルを使い、手元のPCで署名処理を行います
  • リモート署名: KMSに保管された秘密鍵を使い、リモートサーバーで署名処理を行います

リモート署名の登場により、物理デバイスを持ち歩く必要がなくなり、複数人での鍵の共有や、システム間の連携が容易になりました。

2.2 暗号アルゴリズムの進化

公開鍵暗号の原理は変わりませんが、使われるアルゴリズムは進化し続けています。

暗号アルゴリズムの進化

共通鍵暗号の進化:DES → 3DES → AES

まず、共通鍵暗号の進化を見てみましょう。共通鍵暗号方式は、一つの鍵で暗号化も復号もできるという暗号方式です。処理が高速であることが大きなメリットです。

  • DES: 1970年代の標準、鍵長56ビット(現在は脆弱で使用禁止)
  • 3DES: DESを3回適用して強度を上げた過渡期の選択肢(現在では非推奨、終了段階)
  • AES: 2001年に標準化、現在は256ビットが主流

私が最初に暗号の世界に触れた時は、DESが廃止方向であり、3DESの時代でした。現在ではAES-256を使っています。20年でDES→3DES→AESと3世代進化しましたが、「共通鍵で高速に暗号化する」という役割は変わっていません。

公開鍵暗号の進化:RSA → 楕円曲線暗号 → 耐量子暗号

RSA(1977年〜)

最も古典的な公開鍵暗号です。素因数分解の困難性を利用しています。

  • 鍵長: 現在は2048ビット以上が推奨(以前は1024ビットが主流)
  • 用途: TLS/SSL証明書、電子署名、暗号化
  • 特徴: 安定性が高く、広く普及している

20年ほど前のシステムでも、RSAが使われていました。当時は1024ビットが一般的でしたが、コンピュータの計算能力の向上に伴い、2048ビット以上が必要になりました。

楕円曲線暗号(ECC:2000年代〜)

楕円曲線上の離散対数問題の困難性を利用した暗号です。

  • 鍵長: 256ビットでRSA 3072ビット相当の安全性
  • 用途: モバイル機器、IoT、ビットコイン
  • 特徴: 鍵長が短く、処理が高速

スマートフォンやIoT機器の普及に伴い、軽量で高速な楕円曲線暗号が広く使われるようになりました。RSAより短い鍵長で同等の安全性を実現できるため、リソースが限られた環境に適しています。

耐量子暗号(PQC:2024年〜)

量子コンピュータによる攻撃に耐えられる新しい暗号です。

  • 標準化: NIST(米国標準技術研究所)が2024年に標準化を発表
  • 用途: 長期保管が必要なデータ、政府機関、金融機関
  • 特徴: 格子暗号、符号ベース暗号など、全く新しい数学的基盤

正直なところ、量子コンピュータの詳細については私もよく分かりません。ただ、「現在の暗号を短時間で解読できる可能性がある」という脅威があることは確かです。だからこそ、「2030年問題」として、耐量子暗号への移行が世界中で進んでいます。

でも、ここでも「秘密鍵を守る」という本質は変わりません。 アルゴリズムが変わっても、「公開鍵と秘密鍵のペア」「秘密鍵は厳重に保管」「公開鍵は広く配布」という原則は同じなのです。

3. 実例:ハイブリッド暗号で見る「変わらないもの」の実装

ここまで見てきた「変わらないもの」と「変わるもの」が、実際のシステムでどのように実装されているのかを、電子入札を例に見ていきます。

3.1 ハイブリッド暗号方式という知恵

電子入札では、紙の「封筒」と「施錠可能な保管庫」を暗号技術で実現します。ここで使われるのがハイブリッド暗号方式です。

ハイブリッド暗号方式

ステップ1: 準備(鍵の生成)

  1. 鍵ペアを生成: 開札用の秘密鍵と公開鍵を生成します
  2. 公開鍵の配布: 公開鍵だけを取り出し、入札者に配布します
  3. 秘密鍵の保管: 秘密鍵を厳重に保管し、開札日時まで誰も使えないようにします

KMSで安全に生成・保管します。方法は変わっても、「秘密鍵は厳重に保管、公開鍵は配布」という原則は同じです。実は、クラウド環境がまだ今のように普及していない頃は、オンプレミスのサーバー環境を独自に構築して秘密鍵を守ることもありました。環境が格段に変わっています。

ステップ2: 入札(暗号化と署名)

入札者のクライアントPC内で以下の処理を行います。ネットワークを使わないため入札金額が外部に漏れることはありません。これらをスクリプト言語で処理できるようになったことは驚きです。

  1. 共通鍵の生成: ランダムな共通鍵を生成します
  2. 入札データの暗号化: 共通鍵で入札金額を含むデータを暗号化します(AES-256など)
  3. 共通鍵の暗号化: 配布された公開鍵で共通鍵を暗号化します(RSAまたは楕円曲線暗号)
  4. 署名の付与: 入札者の秘密鍵で全体に署名を付与します(真正性の証明)
  5. データのパッケージ化: すべてのデータを一つにまとめます(XML形式など)

なぜハイブリッド暗号方式なのか?

  • 共通鍵暗号: データ量が多くても高速に暗号化できます
  • 公開鍵暗号: 共通鍵を安全に配送できます

両者を組み合わせることで、「安全性」と「速度」を両立しています。20年ほど前も今も、この組み合わせ方は同じです。

ステップ3: 提出(安全な保管)

暗号化されたデータをネットワーク経由でS3などの安全なストレージに保管します。この時点では、誰も入札金額を知ることができません。 20年近く前はオンプレミスのサーバー環境を構築して保管していましたが、現在はクラウドストレージに保管します。保管場所は変わりましたが、「暗号化されたまま保管する」という原則は同じです。

ステップ4: 開札(復号と公開)

開札日時になったら、以下の手順で入札金額を公開します。

  1. 秘密鍵で共通鍵を復号: KMSに保管されていた秘密鍵で、暗号化された共通鍵を復号します
  2. 共通鍵で入札データを復号: 復号した共通鍵で、入札データを復号します
  3. 入札金額の抽出: 復号されたデータから入札金額を取り出します
  4. 落札判定: 最低価格または総合評価で落札者を決定します

現在はKMS環境で、厳重に保管された秘密鍵で復号します。手段は変わりましたが、「秘密鍵でのみ開封できる」という原則は同じです。

3.2 紙との対応関係:変わらない知恵

電子入札における紙との対応関係を整理してみます。

紙の入札電子入札技術
封筒に入札書を封入共通鍵で入札データを暗号化AES(共通鍵暗号)
封印することで守る公開鍵で共通鍵を暗号化RSA/ECC(公開鍵暗号)
施錠可能な保管庫を厳重保管秘密鍵をKMSで厳重保管KMS(鍵管理システム)
開札日時に封を開ける秘密鍵で共通鍵を復号KMSでの復号処理
入札内容を公開共通鍵で入札データを復号して公開AESでの復号処理

形は変わっても、守るべきものは同じです。紙の時代の知恵が、そのままデジタルに引き継がれているのです。

まとめ:変わらないものと変わるもの

この20年を振り返ってみると、技術は大きく進化しました。

変わったもの

  • 秘密鍵の保管場所:ICカード、PKCS#12ファイル → KMS(用途によって使い分け)
  • 共通鍵暗号:DES → 3DES → AES
  • 公開鍵暗号:RSA → 楕円曲線暗号 → 耐量子暗号
  • インフラ:オンプレミス → クラウド

しかし、「秘密を守る」「本人を証明する」という原則は全く変わっていません。

変わらないもの

  • 公開鍵と秘密鍵のペアで機能する
  • 秘密鍵は厳重に保管する
  • 公開鍵は広く配布する
  • 紙の時代の「封筒」「施錠可能な保管庫」という知恵

技術は日々進化しますが、一歩下がって変わらないことに目を向けてみる。最新の技術を追いかけるだけでなく、「なぜその技術が必要なのか」という本質について考えることが大切だと思います。

私たち人間の営みは大きく変わらず、時代に合わせながら、守るべきものを大切に守ることが技術の進歩につながると感じます。「変わらないもの=本質的なもの」を理解することは、新しい技術を進化させ人間の営みを支える大切な一面だな、と今回の振り返りの中で強く感じました。

TOP