Ciphertext-Policy ABE(CP-ABE)
暗号化者がアクセスポリシーを埋め込み、そのポリシーを満たす属性が復号に必要となるCP-ABEを学習します。
「Ciphertext-Policy ABE(CP-ABE)」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
CP-ABEの基本概念
暗号文ポリシー属性ベース暗号(CP-ABE)では、暗号化する側がアクセスポリシーを暗号文に直接埋め込みます。ユーザーは、自分の属性集合を符号化した秘密鍵を持ちます。暗号文に埋め込まれたアクセスポリシーをユーザーの属性が満たす場合に限り、復号に成功します。暗号化する側は、暗号化時にポリシーを指定することで、誰が復号できるかを制御します。
CP-ABEにおけるアクセスポリシー
CP-ABEのアクセスポリシーは、属性に対する単調ブール式として表現され、通常は線形秘密分散方式(LSSS)またはアクセスツリーで表されます。ポリシーには、ANDゲート、ORゲート、しきい値ゲートを含めることができます。ANDゲートには列挙されたすべての属性が必要であり、ORゲートにはいずれか1つの属性が必要です。t-of-n しきい値ゲートには、n個の属性のうち少なくとも t 個が必要です。これらのゲートは入れ子にできるため、複雑なアクセス構造を表現できます。
CP-ABEポリシーの例
病院情報システムを考えてみましょう。医療レポートは、次のポリシーで暗号化できます。(role=Doctor AND department=Cardiology) OR role=Administrator。心臓病専門医は {role=Doctor, department=Cardiology} という属性を持つため、復号できます。放射線科医は {role=Doctor, department=Radiology} という属性を持ちますが、department=Cardiology がないため復号できません。管理者は {role=Administrator} を持つため、常に復号できます。このポリシーは、単なるアクセス制御リストではなく、暗号技術によって強制されます。
WatersのCP-ABE構成(2011年)
最も影響力のある実用的なCP-ABE構成は、楕円曲線上の双線形ペアリングに基づくWaters(2011)の構成です。この構成では、管理者がマスター秘密鍵と公開鍵を生成します。ユーザーの秘密鍵は、特定の属性集合に対して生成されます。暗号化では、線形秘密分散を使ってアクセスポリシーを符号化した暗号文を作成します。安全性は、決定的双線形Diffie-Hellman(DBDH)仮定の下で証明されています。
Small UniverseとLarge Universe
CP-ABE方式は、属性のユニバースの扱い方が異なります。Small Universe構成では、セットアップ時に取り得る属性の全体集合をあらかじめ決める必要があります。そのため柔軟性は制限されますが、より効率的な方式を実現できます。Large Universe構成(Rouselakis-Waters 2013、Attrapadung 2014)では、セットアップ時に事前に決めることなく、指数的に大きなユニバースから属性を選べます。これにより、すべての候補をあらかじめ宣言せずに、ユーザーIDやタイムスタンプなどの属性を扱えます。
鍵委譲と階層構造
CP-ABEは鍵委譲に対応できます。管理者は属性の一部に対する鍵を下位の管理者へ発行でき、委譲された側は鍵の機能をさらに制限できますが、拡張することはできません。これにより、階層的な属性管理が可能になります。たとえば、企業レベルの管理者が部門レベルの鍵を発行し、部門の管理者が従業員の鍵を発行できます。この性質は鍵委譲安全性と呼ばれ、委譲された鍵を使って、委譲元が復号できなかったものを復号することはできません。
CP-ABEのライブラリ
実用的なCP-ABE実装として、Java Pairing-Based Cryptography(jpbc)ライブラリや、プロトタイピング向けのPythonフレームワークであるcharm-cryptoが利用できます。OpenABEライブラリ(Zeutro)は、CP-ABEとKP-ABEに対応するC++実装であり、本番利用に適しています。RABEはCP-ABEのRust実装です。これらのライブラリは、BN-256およびBLS12-381曲線上のペアリングベース演算を実装しています。
クラウドストレージのCP-ABE
CP-ABEの代表的な用途は、クラウドストレージにおけるきめ細かなアクセス制御です。ファイル所有者は、文書をポリシー付きで暗号化してからアップロードします。属性がポリシーを満たすユーザーは、クラウドプロバイダーが誰がアクセスするかを把握したり、アクセス制御リストを管理したりする必要なく、文書をダウンロードして復号できます。クラウドプロバイダーは、要求したユーザーに暗号文を提供するだけであり、ポリシーは暗号文そのものによって強制されます。
CP-ABEの性能特性
CP-ABEの演算には双線形ペアリング計算が含まれます。これは対称暗号より大幅に低速です。最新のCPUでは、BN-256上の1回のペアリング演算におよそ1~3ミリ秒かかります。復号コストは、満たされる属性の数に対して線形に増加します。属性が10~20個あるポリシーでは、復号に10~60ミリ秒かかります。これはユーザー向けアプリケーションには許容できますが、高頻度の自動処理システムには遅すぎます。
CP-ABEにおける属性隠蔽
標準的なCP-ABEでは、暗号文を見られるすべての人にアクセスポリシーが公開されます。つまり、ポリシーは暗号化されません。隠蔽ポリシーCP-ABE(または部分隠蔽CP-ABE)では、認証されていない当事者からポリシー属性の一部または全部を隠し、さらなるプライバシーを提供します。完全なポリシー隠蔽を実現するには、より複雑な構成と大幅に高い性能オーバーヘッドが必要です。実際の導入の大半では、標準的な(ポリシーが公開される)CP-ABEが使われ、アクセスポリシーが観測可能であることを受け入れています。
CP-ABEにおける鍵失効の課題
CP-ABEにおける鍵失効は、実用上の大きな課題です。ユーザーの属性が変わった場合(部門を離れた場合や、資格情報が失効した場合)、以前の属性向けに暗号化されたすべての暗号文を再暗号化するには大きなコストがかかります。実用的な方法には、属性のバージョン管理(各属性のバージョン番号を増加させる)、プロキシ再暗号化による暗号文の更新、時間ベースの属性とCP-ABEを組み合わせて管理者から定期的に鍵を更新する方法などがあります。
CP-ABEポリシークイズ
CP-ABEでは、アクセスポリシーはどこに埋め込まれますか。
CP-ABEのまとめ
CP-ABEでは、アクセスポリシーを暗号文に埋め込み、ユーザー鍵に属性集合を符号化します。属性がポリシー(AND、OR、しきい値ゲート)を満たすと、復号に成功します。Waters 2011は、双線形ペアリングに基づく代表的な実用構成です。Large Universeの派生方式では、動的な属性空間に対応できます。CP-ABEは、サーバー側のACLなしで、きめ細かなアクセス制御を実現するクラウドストレージに導入されています。鍵失効は依然として実用上の課題であり、属性のバージョン管理やプロキシ再暗号化によって対処されています。
AI チューターと学ぶ Cryptology Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 67
- レッスン
- 261
よくある質問
「Ciphertext-Policy ABE(CP-ABE)」レッスンは無料ですか?
はい。「Ciphertext-Policy ABE(CP-ABE)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「Ciphertext-Policy ABE(CP-ABE)」で何を学びますか?
暗号化者がアクセスポリシーを埋め込み、そのポリシーを満たす属性が復号に必要となるCP-ABEを学習します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Ciphertext-Policy ABE(CP-ABE)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 公開鍵暗号の先へ:関数型暗号
- Ciphertext-Policy ABE(CP-ABE)
- Key-Policy ABE(KP-ABE)と比較
- ABEの実践的な応用