TL

IDベース暗号(IBE)

相手のメールアドレスだけで暗号化でき、証明書の発行も交換も要らない。鍵生成センターとマスター鍵の仕組み、ペアリングによる実現、そして避けて通れない鍵預託の課題まで原理でつかめる。

応用IBE公開鍵暗号ペアリング鍵管理暗号最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.IBE は「メールアドレス等の任意の文字列そのもの」を公開鍵にする方式で、事前の鍵配布や証明書(PKI)なしに相手を暗号化できます。
  • 2.秘密鍵は本人ではなく鍵生成センター(KGC)がマスター鍵から導出して配布するため、KGC が全ユーザーの秘密鍵を作れる「鍵預託(key escrow)」問題が構造的に生じます。
  • 3.実用的な IBE(Boneh-Franklin)は楕円曲線ペアリング(双線形写像)で構成され、e(aP, bQ) = e(P, Q)^(ab) という性質を使って ID から共有鍵を導きます。

IBE が解こうとした問題

通常の公開鍵暗号では、相手に暗号文を送る前に「その相手の公開鍵が本物か」を確かめる必要があります。この本人性を担保する仕組みが 公開鍵基盤(PKI) で、認証局が発行した証明書を検証し、失効も確認する――という一連の手間が前提になります。

1984年、Shamir はこれをひっくり返す発想を提示しました。公開鍵を「計算で作る任意の値」にするのをやめ、相手の識別子(ID)そのものを公開鍵にしてしまうというものです。ID とは、メールアドレス・電話番号・社員番号のような、すでに公知で本人と結びついた文字列です。alice@example.com を暗号化に使えるなら、証明書を取り寄せて検証する必要はありません。これが**IDベース暗号(Identity-Based Encryption, IBE)**です。

IBE の一行要約

「相手の ID 文字列 = 相手の公開鍵」。送信者は相手の ID とシステム共通の公開パラメータさえ知っていれば暗号化でき、事前の鍵交換も証明書の検証も不要になります。

4つのアルゴリズムと登場人物

IBE は次の4つの手続きで定義されます。鍵の作り手が本人ではなく信頼された第三者である点が、通常の公開鍵暗号との決定的な違いです。

  • Setup:**鍵生成センター(KGC)**が一度だけ実行する。**マスター秘密鍵(master secret key)と、全員で共有する公開パラメータ(public parameters)**の組を生成する。マスター秘密鍵は KGC が厳重に秘匿し、公開パラメータは全ユーザーに配布する。
  • Extract(鍵導出):ユーザーが本人確認を経て KGC に申請すると、KGC がマスター秘密鍵と ID から、そのユーザーの秘密鍵を計算して安全に手渡す。
  • Encrypt:送信者が「相手の ID + 公開パラメータ」で平文を暗号化する。相手がまだ秘密鍵を受け取っていなくても暗号化できる。
  • Decrypt:受信者が KGC からもらった自分の秘密鍵で復号する。

ここで公開鍵に相当するのが ID、それを本人の秘密鍵に変換する「トラップドア」がマスター秘密鍵です。KGC はいわば PKI の認証局に対応しますが、証明書を署名するのではなく、秘密鍵そのものを生成する点が異なります。

「先に暗号化、後から鍵」ができる

IBE の実用上の妙味は、受信者が秘密鍵をまだ持っていなくても、送信者が ID だけで暗号化できることです。たとえば「入社予定者のメールアドレス宛に暗号化して送っておき、本人が入社後に KGC から秘密鍵を受け取って初めて読める」といった運用が、鍵の事前配布なしに成立します。

証明書が要らない利点

IBE の最大の効用は、PKI が抱える運用コストの多くを消せることです。従来方式との違いを整理します。

PKI と IBE の対比。IBE は「鍵の配布・検証」を消す代わりに「秘密鍵の生成」を KGC に集中させる。
観点PKI(証明書ベース)IBE(IDベース)
公開鍵の入手証明書を取得し失効も確認相手の ID を知るだけ
本人と鍵の結合認証局の署名で保証ID 自体が鍵なので自明
事前準備受信者が先に鍵ペア生成・証明書取得送信者は ID だけで暗号化可
失効の扱いCRL / OCSP で失効確認ID に有効期限を埋め込むのが定石
信頼の集中認証局(署名者)KGC(秘密鍵の生成者)

失効については工夫が要ります。ID が固定だと秘密鍵を無効化できないため、実務では ID に日付や有効期間を連結します。たとえば公開鍵として alice@example.com || 2026-06 を使う設計にすると、KGC は毎月分の秘密鍵だけを配布すればよく、失効は「翌月分の鍵を渡さない」ことで実現できます。CRL や OCSP のような失効リストの配布・照会が不要になるわけです。

鍵預託(key escrow)という構造的課題

利点の裏返しが、IBE で最も重要な弱点です。秘密鍵を作るのは本人ではなく KGC であり、KGC はマスター秘密鍵を握っている以上、任意のユーザーの秘密鍵をいつでも生成できます。これは「KGC が全員の暗号文を復号し得る」ことを意味し、鍵預託(key escrow)問題と呼ばれます。

  • 信頼の集中:KGC は全ユーザーの復号能力を潜在的に持つ、単一の絶大な信頼点になる。マスター秘密鍵の漏洩はシステム全体の崩壊を意味する。
  • 否認防止との相性の悪さ:署名版(IDベース署名)では、KGC が本人になりすまして署名を偽造できてしまうため、否認防止が本質的に弱くなる。
  • 前方秘匿性の限界:ID が固定なら秘密鍵も固定で、鍵更新の設計を別途入れないと前方秘匿性を確保しにくい。
鍵預託は「バグ」ではなく設計上の性質

KGC が全ユーザーの秘密鍵を作れるのは実装ミスではなく、IBE の定義そのものから来る性質です。用途によっては「管理者が復号できる」ことがむしろ要件(メールのアーカイブ復号・規制対応)になりますが、エンドツーエンドの秘匿を求める用途には根本的に不向きです。導入時はまず「KGC を誰が運用し、どこまで信頼するか」を決めるのが出発点になります。

緩和策として、複数の機関がマスター秘密鍵を分割保有し、全員(または閾値以上)が協力しないと個人鍵を導出できないようにする分散 KGC が知られています。これは Shamir 秘密分散 の考え方をマスター秘密鍵に適用し、単一の信頼点を複数に薄める設計です。それでも「本人以外が鍵を作れる」構造自体は残るため、預託が許容できない用途では素の PKI に軍配が上がります。

ペアリングによる実現(Boneh-Franklin)

Shamir が1984年に概念を示した後、実用的で安全性を証明できる IBE は長く未解決でした。2001年、Boneh と Franklin が**楕円曲線ペアリング(双線形写像)**を用いて初めて具体的に構成し、IBE を実用段階へ押し上げました。

ペアリングとは、2つの楕円曲線上の点を入力し、別の群の元を返す写像 e(P, Q) で、次の双線形性を満たします(P は生成元、ab は整数)。

双線形性:  e(aP, bQ) = e(P, Q)^(ab)
# 片方の点をスカラー倍すると、結果がそのべき乗になる。
# → 掛ける順序を入れ替えても同じ値に到達できる。
e(aP, bQ) = e(bP, aQ) = e(P, Q)^(ab)

この「スカラーを入れ替えても同じ値になる」性質が IBE の心臓部です。Boneh-Franklin の枠組みを、群演算を隠して概念だけ示すと次のようになります。

Setup:
  s        = マスター秘密鍵(KGC だけが持つ整数)
  P        = 公開の生成点
  P_pub    = s * P            # 公開パラメータ(s は逆算できない = ECDLP)

Extract(ID):                  # KGC が本人の秘密鍵を作る
  Q_ID     = HashToPoint(ID)  # ID 文字列を曲線上の点に写す
  d_ID     = s * Q_ID         # ← マスター秘密鍵 s を掛けたものが個人鍵

Encrypt(ID, m):               # 送信者は s を知らずに暗号化
  Q_ID     = HashToPoint(ID)
  r        = 乱数
  g        = e(Q_ID, P_pub)   # = e(Q_ID, P)^s
  暗号文    = ( r*P ,  m XOR Hash( g^r ) )

Decrypt(d_ID, 暗号文=(U, V)):  # 受信者は個人鍵で復号
  共有値    = e(d_ID, U)       # = e(s*Q_ID, r*P) = e(Q_ID, P)^(s*r)
  m        = V XOR Hash(共有値)

なぜ復号できるのかが要点です。送信者側は g^r = e(Q_ID, P)^(s*r) を計算し、受信者側は e(d_ID, U) = e(s*Q_ID, r*P) を計算します。双線形性により両者は同じ値 e(Q_ID, P)^(s*r) に一致するため、送信者は s を知らずに、受信者は r を知らずに、同じ鍵を共有できます。安全性は、この値を第三者が求めるのが困難であること(双線形 Diffie-Hellman 仮定)に依存します。

ペアリング暗号の位置づけ

IBE の安全性の根拠は素因数分解でも通常の楕円曲線離散対数(ECDLP)でもなく、双線形 Diffie-Hellman 仮定という別の困難性です。この枠組みは IBE だけでなく、属性ベース暗号(ABE)・IDベース署名・短い署名(BLS)など「ペアリングベース暗号」という一群の基盤になっています。なお標準的なペアリング(Type-3 等)は Shor のアルゴリズムで解ける問題に根ざすため、ポスト量子耐性は持ちません。

HashToPoint は ID を曲線上の点へ決定的に写すハッシュで、暗号学的ハッシュとして扱えるようモデル化されます。ここが「文字列 ID を鍵材料に変える」橋渡しであり、任意の ID を公開鍵化できる仕掛けの本体です。

いつ使い、いつ避けるか

IBE は「証明書配布のコストが高く、かつ管理主体を一元的に信頼できる」閉じた環境で光ります。企業内・組織内のメール暗号化、IoT デバイス群への鍵配布、送信者側の準備を最小化したいシステムなどが典型です。

一方、鍵預託が許されないエンドツーエンド秘匿(個人間メッセージング等)や、否認防止を厳格に求める署名用途には向きません。そうした領域では、鍵を本人以外が作れない PKI と証明書、あるいは前方秘匿性を持つ鍵交換が選ばれます。

まとめ

IBE は「ID 文字列そのものを公開鍵にする」ことで、証明書の発行・検証・失効という PKI の運用コストを大きく削減する方式です。鍵の作り手を本人から**鍵生成センター(KGC)**へ移し、マスター秘密鍵から ID ごとの秘密鍵を導出します。この設計ゆえに、送信者は相手の ID だけで暗号化でき、失効も ID への有効期限埋め込みで扱えます。

代償が鍵預託(key escrow)――KGC が全員の秘密鍵を作れるという構造的な信頼集中で、用途を選ぶ最大の理由です。実現面では、2001年の Boneh-Franklin が楕円曲線ペアリングの双線形性 e(aP, bQ) = e(P, Q)^(ab) を使い、送信者と受信者が同じ鍵に到達する仕組みを与えました。鍵の作り手を誰が担うかという設計思想は 鍵管理ライフサイクル と、公開鍵の本人結合という論点は PKI と併せて捉えると、IBE が「信頼の置き方を付け替えた暗号」であることが立体的に見えてきます。

セキュリティ Article

IDベース暗号(IBE)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

IBE

比較で見る軸

難易度: advanced / カテゴリ: セキュリティ / タグ数: 5

導入後に効く点

秘密鍵は本人ではなく鍵生成センター(KGC)がマスター鍵から導出して配布するため、KGC が全ユーザーの秘密鍵を作れる「鍵預託(key escrow)」問題が構造的に生じます。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
セキュリティ
タグ数
5

判断チェックリスト

  • 自社の用途が「IBE / 公開鍵暗号」に近いか確認する。
  • 強みである「IBE は「メールアドレス等の任意の文字列そのもの」を公開鍵にする方式で、事前の鍵配布や証明書(PKI)なしに相手を暗号化できます。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

IBE公開鍵暗号ペアリング鍵管理暗号IBE公開鍵暗号ペアリング