このデータは「経理部」か「人事部」の「課長」だけが閲覧できる。この監視カメラ映像に写っている顔と車のナンバーは「捜査部」の「巡査以上」だけが見られる――。
このように、暗号化されたデータを、ある「属性」を持つ者だけが複合できるようにするのが「属性ベース暗号」だ。データを暗号する際の暗号文に「(人事部 AND 課長)OR 経理部」といった複合条件式を組み込み、暗号文を復号するための秘密鍵に「経理部、部長」といった属性情報を付与することで、条件式に見合った鍵でのみ復号できるようにする暗号方式である。
属性ベース暗号の仕組み
この属性ベース暗号は、一般的に利用されている公開鍵暗号が抱える課題を解消することができる。受信者が多数いる場合に、暗号化と鍵管理の効率が悪化するという課題だ。
公開鍵暗号の欠点と、その解決法
公開鍵暗号は、受信者が公開鍵と秘密鍵を作り、送信者が公開鍵を使ってデータを暗号化し、受信者が秘密鍵で複合する仕組みである。受信者が100名いると、送信者は100通りの公開鍵を使って別々にデータを暗号化しなければならなくなる。
公開鍵暗号の課題:受信者が複数いる場合
この課題を解決するため、属性ベース暗号では「マスター公開鍵」と「マスター秘密鍵」を使う。
属性ベース暗号における鍵配付
受信者ではなく、「鍵生成局」がマスター秘密鍵を使って各ユーザーの秘密鍵を生成し、配布(上図表)。送信者は、マスター公開鍵と複合条件式を使ってデータを暗号化し、それを受け取った受信者が、配布された秘密鍵を使って複合する。暗号化と鍵管理をシンプルにできるのが利点だ。
この仕組みならば、所属する組織や役職、年齢や性別などの属性に基づいたアクセス制御を効率的に行えるようになる。だが、この仕組みにもやはり弱点はある。