(57)【要約】      （修正有）【課題】システムに手を加えることなく、属性ＩＤの追加や属性値取得方法の追加を可能とする暗号技術を提供する。【解決手段】暗号化装置３００は、公開パラメータを用いて、平文と復号条件と暗号化オプション情報から暗号文を生成する。復号装置５００は、暗号化装置３００から受信した暗号文の生成に用いた暗号化オプション情報を用いて、暗号文の生成に用いた復号条件で用いられている属性ＩＤとその値である環境情報を取得し、復号鍵生成装置４００に送信する。復号鍵生成装置４００は、復号装置５００から受信した環境情報と、マスター鍵から復号鍵を生成し、復号鍵を復号装置５００に送信する。復号装置５００は、復号鍵生成装置４００から受信した復号鍵を用いて、暗号文を復号する。【選択図】図１
2018180408.tif 000002
【特許請求の範囲】
【請求項１】
M、Nを1以上の整数、標準属性ＩＤを用途が既に定義されている属性ＩＤ、拡張属性ＩＤを用途が未定義である属性ＩＤ、属性ＩＤリストをM個の標準属性ＩＤとN個の拡張属性ＩＤからなるリストとし、
システムパラメータ生成装置、暗号化装置、復号鍵生成装置、復号装置を含む暗号処理システムが、暗号化、復号を行う暗号処理方法であって、
前記暗号化装置は、前記システムパラメータ生成装置が前記属性ＩＤリストから生成した公開パラメータを記録しており、
前記復号鍵生成装置は、前記システムパラメータ生成装置が前記属性ＩＤリストから生成したマスター鍵を記録しており、
復号条件を前記属性ＩＤリストに含まれる標準属性ＩＤまたは拡張属性ＩＤを用いた原始的な論理式を論理演算子により結合した論理式、暗号化オプション情報を前記属性ＩＤリストに含まれる属性ＩＤを用いて指定される情報とし、
前記暗号化装置が、前記公開パラメータを用いて、平文と前記復号条件と前記暗号化オプション情報から暗号文を生成する暗号文生成ステップと、
前記復号装置が、前記暗号化装置から受信した前記暗号文の生成に用いた前記暗号化オプション情報を用いて、前記暗号文の生成に用いた前記復号条件で用いられている属性ＩＤとその値である環境情報を取得する環境情報取得ステップと、
前記復号鍵生成装置が、前記復号装置から受信した前記環境情報と前記マスター鍵から復号鍵を生成する復号鍵生成ステップと、
前記復号装置が、前記復号鍵生成装置から受信した前記復号鍵を用いて、前記暗号文を復号する復号ステップと
を含む暗号処理方法。
【請求項２】
請求項１に記載の暗号処理方法であって、
前記暗号化オプション情報は、拡張属性ＩＤの用途を定義する記述を含むことを特徴とする暗号処理方法。
【請求項３】
請求項１または２に記載の暗号処理方法であって、
前記暗号化オプション情報は、属性ＩＤの属性値の取得方法を指定する記述を含むことを特徴とする暗号処理方法。
【請求項４】
M、Nを1以上の整数、標準属性ＩＤを用途が既に定義されている属性ＩＤ、拡張属性ＩＤを用途が未定義である属性ＩＤ、属性ＩＤリストをM個の標準属性ＩＤとN個の拡張属性ＩＤからなるリストとし、
復号条件を前記属性ＩＤリストに含まれる標準属性ＩＤまたは拡張属性ＩＤを用いた原始的な論理式を論理演算子により結合した論理式、暗号化オプション情報を前記属性ＩＤリストに含まれる属性ＩＤを用いて指定される情報とし、
システムパラメータ生成装置、暗号化装置、復号鍵生成装置、復号装置を含む暗号処理システムであって、
前記暗号化装置は、
前記システムパラメータ生成装置が前記属性ＩＤリストから生成した公開パラメータを記録する記録部と、
前記公開パラメータを用いて、平文と前記復号条件と前記暗号化オプション情報から暗号文を生成する暗号文生成部を含み、
前記復号鍵生成装置は、
前記システムパラメータ生成装置が前記属性ＩＤリストから生成したマスター鍵を記録する記録部と、
前記復号装置から受信した環境情報と前記マスター鍵から復号鍵を生成する復号鍵生成部を含み、
前記復号装置は、
前記暗号化装置から受信した前記暗号文の生成に用いた前記暗号化オプション情報を用いて、前記暗号文の生成に用いた前記復号条件で用いられている属性ＩＤとその値である前記環境情報を取得する環境情報取得部と、
前記復号鍵生成装置から受信した前記復号鍵を用いて、前記暗号文を復号する復号部を含む
暗号処理システム。
【請求項５】
請求項４に記載の暗号処理システムに含まれる暗号化装置。
【請求項６】
請求項４に記載の暗号処理システムに含まれる復号装置。
【請求項７】
請求項５に記載の暗号化装置、請求項６に記載の復号装置のいずれかの装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿化したデータの不正利用を防止するアクセス制御に用いることができる暗号技術に関する。
【背景技術】
【０００２】
公開鍵暗号の発展技術である関数型暗号は、暗号化時に復号できる人やグループなどに関する条件（以下、復号条件という）を一般的な論理式（ＡＮＤ演算子、ＯＲ演算子などを用いた論理式）で指定できるという特徴を持つ（非特許文献１）。例えば、グループＩＤを表す属性ＩＤ”gid”の値（以下、属性値ともいう）が”GID01”、”GID02”のいずれかであり、日付を表す属性ＩＤ”date”の値が”20170302”である場合にアクセスを許可することを表す論理式は、{(gid=GID01) OR (gid=GID02)} AND (date=20170302)となる。この論理式はグループＩＤ”gid”が”GID01”、”GID02”のいずれかである人が日付”date”が”20170302”である場合に限り暗号化されたデータにアクセスすることができる（つまり復号することができる）ことを表すものである。
【０００３】
関数型暗号を用いると、秘匿化したいデータを、上記のような論理式で表される復号条件が付いた暗号化データとしてクラウドで管理し、ユーザは自分の属性値に合致する復号条件が設定された暗号化データだけを復号することができるというアクセス制御を備えた暗号処理システムを実現できる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】高島克幸，岡本龍明，“アクセス権限を制御できる最新技術「関数型暗号」”，日経エレクトロニクス (1087) 2012-07-23号，日経BP社，pp.87-95，2012.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
関数型暗号を利用した暗号処理システムでは、システム設計時にアクセス権限の制御に利用する属性ＩＤを指定する。そのため、システム設計時に指定していなかった新たな属性ＩＤを追加、利用する場合、公開パラメータとマスター鍵（以下、システムパラメータという）を再生成する必要がある。
【０００６】
また、属性値の取得方法もシステム設計時に指定する。そのため、新たに取得方法を追加する場合、システムを改修する必要がある。
【０００７】
つまり、新たな属性ＩＤや新たな属性値の取得方法を追加する場合には、システムに手を加える必要があった。
【０００８】
そこで本発明では、システムに手を加えることなく、属性ＩＤの追加や属性値取得方法の追加を可能とする暗号技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様は、M、Nを1以上の整数、標準属性ＩＤを用途が既に定義されている属性ＩＤ、拡張属性ＩＤを用途が未定義である属性ＩＤ、属性ＩＤリストをM個の標準属性ＩＤとN個の拡張属性ＩＤからなるリストとし、システムパラメータ生成装置、暗号化装置、復号鍵生成装置、復号装置を含む暗号処理システムが、暗号化、復号を行う暗号処理方法であって、前記暗号化装置は、前記システムパラメータ生成装置が前記属性ＩＤリストから生成した公開パラメータを記録しており、前記復号鍵生成装置は、前記システムパラメータ生成装置が前記属性ＩＤリストから生成したマスター鍵を記録しており、復号条件を前記属性ＩＤリストに含まれる標準属性ＩＤまたは拡張属性ＩＤを用いた原始的な論理式を論理演算子により結合した論理式、暗号化オプション情報を前記属性ＩＤリストに含まれる属性ＩＤを用いて指定される情報とし、前記暗号化装置が、前記公開パラメータを用いて、平文と前記復号条件と前記暗号化オプション情報から暗号文を生成する暗号文生成ステップと、前記復号装置が、前記暗号化装置から受信した前記暗号文の生成に用いた前記暗号化オプション情報を用いて、前記暗号文の生成に用いた前記復号条件で用いられている属性ＩＤとその値である環境情報を取得する環境情報取得ステップと、前記復号鍵生成装置が、前記復号装置から受信した前記環境情報と前記マスター鍵から復号鍵を生成する復号鍵生成ステップと、前記復号装置が、前記復号鍵生成装置から受信した前記復号鍵を用いて、前記暗号文を復号する復号ステップとを含む。
【発明の効果】
【００１０】
本発明によれば、システムに手を加えることなく、属性ＩＤや属性値取得方法を追加することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】暗号処理システム１００の構成の一例を示すブロック図。
【図２】システムパラメータ生成装置２００の構成の一例を示すブロック図。
【図３】暗号化装置３００の構成の一例を示すブロック図。
【図４】復号鍵生成装置４００の構成の一例を示すブロック図。
【図５】復号装置５００の構成の一例を示すブロック図。
【図６】セットアップ処理の一例を示すシークエンス図。
【図７】暗号化処理の一例を示すシークエンス図。
【図８】復号処理の一例を示すシークエンス図。
【図９】暗号化オプション情報（拡張属性ＩＤの用途の定義）の取り扱いの様子を示す図。
【図１０】暗号化オプション情報（属性ＩＤの属性値の取得方法の指定）の取り扱いの様子を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
＜第一実施形態＞
【００１３】
［システム構成］
暗号処理システム１００は、関数型暗号を用いて、平文を暗号化したデータである暗号化データに対するアクセス制御を提供するシステムである。システムパラメータ生成装置２００は、暗号化・復号に必要な情報である公開パラメータとマスター鍵を生成する。暗号化装置３００は、公開パラメータを用いて、平文と復号条件と暗号化オプション情報から暗号文を生成する。復号鍵生成装置４００は、復号条件で用いられている属性ＩＤとその値である環境情報とマスター鍵を用いて復号鍵を生成する。なお、環境情報は、復号装置５００が取得し、復号鍵生成装置４００に送信した情報であり、復号装置５００や復号装置５００を利用するユーザに関する情報（例えば、グループＩＤ”gid”とその値）、一般的な情報（例えば、日付”date”とその値）などがある。復号装置５００は、復号鍵を用いて暗号文を復号する。
【００１４】
図１を参照して、暗号処理システム１００について説明する。図１は、暗号処理システム１００の構成の一例を示すブロック図である。暗号処理システム１００は、システムパラメータ生成装置２００、暗号化装置３００、復号鍵生成装置４００、復号装置５００を含む。システムパラメータ生成装置２００、暗号化装置３００、復号鍵生成装置４００、復号装置５００は、インターネットなどのネットワーク８００に接続し、相互に通信可能である。
【００１５】
次に、図２〜図５を参照して、システムパラメータ生成装置２００、暗号化装置３００、復号鍵生成装置４００、復号装置５００の各装置について説明する。図２は、システムパラメータ生成装置２００の構成の一例を示すブロック図である。システムパラメータ生成装置２００は、システムパラメータ生成部２１０、送受信部２８０、記録部２９０を含む。送受信部２８０は、システムパラメータ生成装置２００がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部２９０は、システムパラメータ生成装置２００の処理に必要な情報を適宜記録する構成部である。例えば、システムパラメータ生成に用いる属性ＩＤを記録する。
【００１６】
図３は、暗号化装置３００の構成の一例を示すブロック図である。暗号化装置３００は、暗号文生成部３１０、送受信部３８０、記録部３９０を含む。送受信部３８０は、暗号化装置３００がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部３９０は、暗号化装置３００の処理に必要な情報を適宜記録する構成部である。例えば、公開パラメータ、属性ＩＤを記録する。属性ＩＤは、復号条件や暗号化オプション情報を記述するために用いる。
【００１７】
図４は、復号鍵生成装置４００の構成の一例を示すブロック図である。復号鍵生成装置４００は、復号鍵生成部４１０、送受信部４８０、記録部４９０を含む。送受信部４８０は、復号鍵生成装置４００がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部４９０は、復号鍵生成装置４００の処理に必要な情報を適宜記録する構成部である。例えば、マスター鍵を記録する。
【００１８】
図５は、復号装置５００の構成の一例を示すブロック図である。復号装置５００は、環境情報取得部５１０、復号部５２０、送受信部５８０、記録部５９０を含む。送受信部５８０は、復号装置５００がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部５９０は、復号装置５００の処理に必要な情報を適宜記録する構成部である。例えば、暗号文を記録する。
【００１９】
［セットアップ処理］
以下、図６を参照して、システムパラメータである公開パラメータとマスター鍵を生成するセットアップ処理について説明する。
【００２０】
セットアップ処理に際して、暗号化データの復号条件の記述に用いる属性ＩＤを指定する。属性ＩＤには、用途が既に定義されている標準属性ＩＤと用途が未定義である拡張属性ＩＤがある。ここで、属性ＩＤの用途が定義されているとは、その属性ＩＤの取り得る値とその値の取得方法が定義されていることをいう。
【００２１】
標準属性ＩＤの例として、グループＩＤを表す属性ＩＤ”gid”、日付を表す属性ＩＤ”date”がある。拡張属性ＩＤは、標準属性ＩＤと異なるＩＤ名を持つ。例えば、拡張属性ＩＤを”ext_info1”、”ext_info2”などとする。拡張属性ＩＤの用途は、復号条件に関する付加的な情報である暗号化オプション情報を用いて定義される。
【００２２】
なお、暗号化オプション情報は、拡張属性ＩＤの用途の定義の他、属性ＩＤの属性値の取得方法の指定に関する記述を含むことができる。詳しくは後ほど説明する。
【００２３】
以下、システムパラメータの生成に用いる標準属性ＩＤの数をM、拡張属性ＩＤの数をNとする（M、Nは1以上の整数）。また、M個の標準属性ＩＤとN個の拡張属性ＩＤからなるリストを属性ＩＤリストという。
【００２４】
システムパラメータ生成装置２００のシステムパラメータ生成部２１０は、関数型暗号を用いて、属性ＩＤリストから公開パラメータpkとマスター鍵mkを生成する（Ｓ２１０）。その際、暗号の安全性の尺度を表すセキュリティパラメータを指定してもよい。
【００２５】
なお、公開パラメータpkとマスター鍵mkの生成には、関数型暗号アルゴリズムであればどのようなものを用いてもよい。
【００２６】
システムパラメータ生成装置２００の送受信部２８０は、Ｓ２１０で生成した公開パラメータpkを暗号化装置３００に送信する（Ｓ２８０−１）。暗号化装置３００は、受信した公開パラメータpkを記録部３９０に記録する。公開パラメータpkは、暗号化に際して必要となる情報である。
【００２７】
また、システムパラメータ生成装置２００の送受信部２８０は、Ｓ２１０で生成したマスター鍵mkを復号鍵生成装置４００に送信する（Ｓ２８０−２）。復号鍵生成装置４００は、受信したマスター鍵mkを記録部４９０に記録する。マスター鍵mkは、復号に際して必要となる情報である。
【００２８】
なお、Ｓ２８０−１とＳ２８０−２の順序は上記順序に限るものではなく、Ｓ２８０−２、Ｓ２８０−１の順であってもよいし、同時であってもよい。
【００２９】
［暗号化処理］
以下、図７を参照して、秘匿化対象データである平文から暗号文を生成する暗号化処理について説明する。
【００３０】
暗号化処理に際して、復号条件と暗号化オプション情報を指定する。なお、暗号化オプション情報は、必要に応じて指定されるものである。
【００３１】
復号条件は、属性ＩＤ（属性ＩＤリストに含まれる標準属性ＩＤまたは拡張属性ＩＤ）を用いた原始的な論理式を論理演算子（例えば、ＡＮＤ演算子、ＯＲ演算子、ＮＯＴ演算子、閾値演算子など）により結合した論理式として表現される。先述の論理式{(gid=GID01) OR (gid=GID02)} AND (date=20170302)は、復号条件の例であり、原始的な論理式(gid=GID01)、(gid=GID02)、(date=20170302)をＯＲ演算子とＡＮＤ演算子で結合した論理式となっている。
【００３２】
暗号化オプション情報は、拡張属性ＩＤの用途の定義、属性ＩＤの属性値の取得方法の指定を記述するものであり、属性ＩＤリストに含まれる属性ＩＤを用いて指定される情報である。
【００３３】
まず、拡張属性ＩＤの用途の定義の例について説明する（図９参照）。例えば、拡張属性ＩＤ”ext_info1”を用いて、”ext_info1←gid”と記述すると、グループＩＤを表す標準属性ＩＤ”gid”の値を保持するための新たなＩＤ名を有する属性ＩＤ”ext_info1”が定義されたことになる。これにより、標準属性ＩＤ”gid”の名前をリネームした属性ＩＤ”ext_info1”が復号条件の指定に利用できるようになる。
【００３４】
また、単に既存の属性ＩＤのリネームとして拡張属性ＩＤの用途を定義するのではなく、M個の標準属性ＩＤとは異なる新たな属性ＩＤを定義するために、拡張属性ＩＤを用いることもできる。以下、例を用いて説明する。復号装置５００にインストールされたアプリケーション”app_B”において、属性ＩＤ”uid”が扱えるものとする。つまり、アプリケーション”app_B”において属性ＩＤ”uid”の取り得る値とその値の取得方法が定義されているものとする。この例では、復号装置５００にインストールされたアプリケーションで、属性ＩＤ”uid”を扱えるものはアプリケーション”app_B”以外にないものとする。なお、属性ＩＤ”uid”を扱えるアプリケーションが複数存在する場合は、後述のアプリケーションパッケージ名、クラス名を暗号化オプション情報に指定する方法により特定することができる。このとき、拡張属性ＩＤ”ext_info1”を用いて、”ext_info1←uid”と記述すると、未定義であった拡張属性ＩＤ”ext_info1”がアプリケーション”app_B”の属性ＩＤ”uid”の値を保持するための属性ＩＤとして定義されたことになる。以降、復号条件の指定に、ユーザＩＤを表す属性ＩＤ”uid”に関する条件を記述できるようになる。
【００３５】
例えば、”app_A.app_A_class.param00”のようなアプリケーションパッケージ名、クラス名、パラメータ名の組合せを用いて、”ext_info1←app_A.app_A_class.param00”と記述すると、復号装置５００にインストールされたアプリケーションパッケージ”app_A”のクラス”app_A_class”のパラメータ”param00”の値を保持するための属性ＩＤ”ext_info1”が定義されたことになる。これにより、アプリケーションパッケージ” app_A”に含まれるクラス”app_A_class”のパラメータ”param00”の値を保持するための属性ＩＤ”ext_info1”が復号条件の指定に利用できるようになる。
【００３６】
また、例えば、”app_A.app_A_class”のように、アプリケーションパッケージ名、クラス名の組合せを用いて、”ext_info1←app_A.app_A_class”と記述すると、復号装置５００にインストールされたアプリケーションパッケージ”app_A”のクラス”app_A_class”のあるパラメータの値を保持するための属性ＩＤ”ext_info1”が定義されたことになる。クラス”app_A_class”で利用されるパラメータが複数ある場合、どのパラメータの値を拡張属性ＩＤ”ext_info1”の値として返すのかは、アプリケーションが決定するものとする。もしくは、暗号化オプション情報にて取得する値を指定するようにしてもよい。これにより、パッケージ” app_A”に含まれるクラス”app_A_class”のパラメータの値を保持するための属性ＩＤ”ext_info1”が復号条件の指定に利用できるようになる。
【００３７】
次に、属性ＩＤの属性値の取得方法の指定の例について説明する（図１０参照）。例えば、”ext_info1←http://xxx.com”と記述すると、属性ＩＤ”ext_info1”の属性値をURL”http://xxx.com”で指定されるシステム外部のＷｅｂサーバから取得することを指定することになる。これにより、属性ＩＤ”ext_info1”には、”http://xxx.com”からの出力の値（httpレスポンス）が保持されるようになる。
【００３８】
また、例えば、標準属性ＩＤ”date”を用いて、”date←http://xxx.com”と記述すると、システム既定の方法により属性ＩＤ”date”の属性値を取得する代わりに、URL”http://xxx.com”で指定されるシステム外部のＷｅｂサーバから取得することを指定することになる。
【００３９】
暗号化装置３００の暗号文生成部３１０は、公開パラメータpkを用いて、平文Mと復号条件cと暗号化オプション情報opから暗号文Dを生成する（Ｓ３１０）。平文Mは、暗号化装置３００のユーザが復号装置５００のユーザと共有したい情報である。また、復号条件cと暗号化オプション情報opは、暗号化装置３００のユーザが指定するものであり、これらの情報を用いて平文Mへのアクセス条件を指定する。
【００４０】
暗号文Dの生成方法について、説明する。例えば、公開パラメータpkを用いて、平文Mと復号条件cから暗号化データCを生成し、暗号化データCと暗号化オプション情報opの組として暗号文Dを生成する。また、公開パラメータpkを用いて、平文Mと復号条件cから暗号化データCを生成し、暗号化データCと復号条件cと暗号化オプション情報opの組として暗号文Dを生成してもよい。
【００４１】
暗号文が、後述するＳ４８０で復号鍵skを受信する前に、復号装置５００が復号条件や暗号化オプション情報の記述に用いている属性ＩＤを特定できる形式となっていない場合は、すべての属性ＩＤに対して、その値を取得するようにすれば、環境情報を取得できる。一方、暗号文が、Ｓ４８０で復号鍵skを受信する前に、復号装置５００が復号条件や暗号化オプション情報の記述に用いている属性ＩＤを特定できる形式となっている場合は、復号情報の記述に用いている属性ＩＤに対して、その値を取得すればよいので、環境情報を効率的に取得することができる。
【００４２】
暗号化装置３００の送受信部３８０は、Ｓ３１０で生成した暗号文Dを復号装置５００に送信する（Ｓ３８０）。復号装置５００は、受信した暗号文Dを記録部５９０に記録する。
【００４３】
［復号処理］
以下、図８を参照して、暗号文を復号する復号処理について説明する。
【００４４】
復号装置５００の環境情報取得部５１０は、暗号文Dの生成に用いた暗号化オプション情報opを用いて、暗号文Dの生成に用いた復号条件cで用いられている属性ＩＤとその値である環境情報αを取得する（Ｓ５１０）。
【００４５】
暗号文Dが暗号化データCと暗号化オプション情報opの組である場合、環境情報取得部５１０は、暗号文Dから暗号化オプション情報opを抽出し、暗号化オプション情報opを用いて、すべての属性ＩＤに対して、その値を取得し、環境情報αを取得する。また、暗号文Dが暗号化データCと復号条件cと暗号化オプション情報opの組である場合、環境情報取得部５１０は、暗号文Dから復号条件cと暗号化オプション情報opを抽出し、復号条件cで用いられている属性ＩＤに対して、その値を取得し、環境情報αを取得する。
【００４６】
復号装置５００の送受信部５８０は、Ｓ５１０で取得した環境情報αを復号鍵生成装置４００に送信する（Ｓ５８０）。復号鍵生成装置４００は、受信した環境情報αを記録部４９０に記録する。
【００４７】
復号鍵生成装置４００の復号鍵生成部４１０は、Ｓ５８０で受信した環境情報αと記録部４９０に記録してあるマスター鍵mkから復号鍵skを生成する（Ｓ４１０）。
【００４８】
復号鍵生成装置４００の送受信部４８０は、Ｓ４１０で生成した復号鍵skを復号装置５００に送信する（Ｓ４８０）。復号装置５００は、受信した復号鍵skを記録部５９０に記録する。
【００４９】
復号装置５００の復号部５２０は、Ｓ４８０で受信した復号鍵skを用いて、記録部５９０に記録した暗号文Dを復号する（Ｓ５２０）。環境情報αが復号条件cを満たす場合は、復号結果は正しい平文となる一方、環境情報αが復号条件cを満たさない場合は、復号結果は意味をなさないランダムな値となる。
【００５０】
上記説明では、送受信部５８０は、必ず環境情報αを復号鍵生成装置４００に送信するものとした。しかし、暗号文Dから復号条件cを抽出できる場合、送受信部５８０が環境情報αを復号鍵生成装置４００に送信する前に、環境情報取得部５１０が、環境情報αが復号条件cを満たすか否かを判断し、満たす場合は送信する一方、満たさない場合は処理を中止するようにしてもよい。このようにすると、復号部５２０は、必ず暗号文Dから正しく平文Mを復号するようになる。
【００５１】
［暗号化オプション情報］
（拡張属性ＩＤの用途の定義）
暗号化オプション情報に拡張属性ＩＤの用途の定義を記述する場合、セットアップ処理時点では未定義となっていた拡張属性ＩＤを利用する。
【００５２】
以下、図９を参照して、暗号化オプション情報の取り扱いについて説明する。まず、暗号化処理時点において、暗号化オプション情報opとして、例えば”ext_info1←gid”と指定する。また、復号条件cとして、例えば、{(ext_info1=GID01) OR (ext_info1=GID02)} AND (date=20170302)と指定する。暗号化装置３００の暗号文生成部３１０は、これらの暗号化オプション情報opと復号条件cから暗号文Dを生成する。
【００５３】
次に、復号処理時点において、復号装置５００の環境情報取得部５１０は、暗号文Dの生成に用いた暗号化オプション情報op”ext_info1←gid”に基づいて、属性ＩＤ”gid”の値を取得する。属性ＩＤ”gid”は、標準属性ＩＤであるため、その属性値の取得方法については、例えば、システム設計段階において定められた方法を用いることになる。なお、標準属性ＩＤでない場合は、拡張属性ＩＤの用途を定義した際の取得方法を用いることになる。このように既定の方法により取得された値を”GID02”とすると、”ext_info1= GID02”となる。属性ＩＤ”date”についても、同様に、取得された値を”20170302”とすると、”date=20170302”となる。復号装置５００の送受信部５８０は、環境情報αとして、”ext_info1= GID02”と”date=20170302”を復号鍵生成装置４００に送信する。
【００５４】
復号鍵生成装置４００の復号鍵生成部４１０は、環境情報α”ext_info1= GID02”、”date=20170302”とマスター鍵mkから復号鍵skを生成する。復号鍵生成装置４００の送受信部４８０は、復号鍵skを復号装置５００に送信する。
【００５５】
復号装置５００の復号部５２０は、復号鍵skを用いて、暗号文Dを復号する。この場合、復号条件cが{(ext_info1=GID01) OR (ext_info1=GID02)} AND (date=20170302)であり、復号鍵skは環境情報α”ext_info1= GID02”、”date=20170302”から生成されたものであるため、正しく平文が復号される。一方、例えば、環境情報αを”ext_info1= GID03”、”date=20170302”として復号鍵skが生成されていた場合、復号条件cが満たされないことから、復号部５２０は、意味をなさないランダムな値を生成することになる。
【００５６】
このように、セットアップ処理時点で未定義になっていた拡張属性ＩＤの用途を暗号化オプション情報に定義することにより、拡張属性ＩＤを用いて復号条件を指定することが可能となるため、システムパラメータの再生成が不要となる。
【００５７】
先述の例では、１つの拡張属性ＩＤ”ext_info1”を用いて暗号化オプション情報op”ext_info1←gid”を指定していたが、システムが許容する数、つまりセットアップ処理時に指定した拡張属性ＩＤの数を限度として、複数の拡張属性ＩＤの用途の定義を暗号化オプション情報に記述することもできる。
【００５８】
（属性ＩＤの属性値の取得方法の指定）
暗号化オプション情報に属性ＩＤの属性値の取得方法の指定を記述する場合、標準属性ＩＤまたは拡張属性ＩＤを利用する。
【００５９】
以下、図１０を参照して、暗号化オプション情報の取り扱いについて説明する。まず、暗号化処理時点において、暗号化オプション情報opとして、例えば”ext_info1←gid”、”ext_info1←http://xxx.com”と指定する。また、復号条件cとして、例えば、{(ext_info1=GID01) OR (ext_info1=GID02)} AND (date=20170302)と指定する。暗号化装置３００の暗号文生成部３１０は、これらの暗号化オプション情報opと復号条件cから暗号文Dを生成する。
【００６０】
次に、復号処理時点において、復号装置５００の環境情報取得部５１０は、暗号文Dの生成に用いた暗号化オプション情報opの”ext_info1←gid”に基づいて、属性ＩＤ”gid”の値を取得する。ここで、暗号化オプション情報opに”ext_info1←http://xxx.com”と指定されているため、既定の方法により属性ＩＤ”gid”の値を取得する代わりに、外部のＷｅｂサーバ”http://xxx.com”から取得する。この値を”GID01”とすると、”ext_info1= GID01”となる。属性ＩＤ”date”についても、同様に、取得された値を”20170302”とすると、”date=20170302”となる。復号装置５００の送受信部５８０は、環境情報αとして、”ext_info1= GID01”と”date=20170302”を復号鍵生成装置４００に送信する。
【００６１】
復号鍵生成装置４００の復号鍵生成部４１０は、環境情報α”ext_info1= GID01”、”date=20170302”とマスター鍵mkから復号鍵skを生成する。復号鍵生成装置４００の送受信部４８０は、復号鍵skを復号装置５００に送信する。
【００６２】
復号装置５００の復号部５２０は、復号鍵skを用いて、暗号文Dを復号する。この場合、復号条件cが{(ext_info1=GID01) OR (ext_info1=GID02)} AND (date=20170302)であり、復号鍵は環境情報α”ext_info1= GID01”、”date=20170302”から生成されたものであるため、正しく平文が復号される。一方、例えば、環境情報αを”ext_info1= GID04”、”date=20170302”として復号鍵skが生成されていた場合、復号条件cが満たされないことから、復号部５２０は、意味をなさないランダムな値を生成することになる。
【００６３】
このように、セットアップ処理時点で未定義になっていた拡張属性ＩＤの用途を暗号化オプション情報に定義するとともに、その属性値の取得方法の指定を暗号化オプション情報に定義することにより、拡張属性ＩＤを用いて復号条件を指定することが可能となるため、システムパラメータの再生成やシステムの改修が不要となる。
【００６４】
ここで説明した例のように、１つの拡張属性ＩＤを複数回用いて暗号化オプション情報を記述することもできる。
【００６５】
また、取得先として信頼できる外部のＷｅｂサーバを指定すれば、既定の方法により取得する値よりも信頼できる値を取得できるようにもなる。
【００６６】
取得先である外部のＷｅｂサーバが複数の属性値を保持している場合、そのうちどれを取得するのかを指定するため補助的な情報を暗号化オプション情報に指定できるようにしてもよい。例えば、地域により異なる時間情報については、地域名を補助的な情報として指定したうえで、属性“時間情報”の値を取得するようにすることで、その地域の時間情報が取得できるようになる。
【００６７】
［その他］
暗号化オプション情報を暗号化データのヘッダ情報として付与することにより、暗号化データと暗号化オプション情報の組として暗号文を生成することができる。この場合、ヘッダ情報を解析され、暗号化オプション情報が改ざんされる可能性がある。改ざんされた場合、暗号装置３００のユーザが意図しない環境情報の取得が行われ、ユーザが意図しない復号鍵の生成が行われてしまうかもしれない。
【００６８】
そこで、暗号化オプション情報の改ざんを検知した場合に復号処理を停止する機能を付加し、改ざんによる不正な復号を防止するようにする。改ざん検知機能は、例えば、ハッシュ値を利用して実現できる。暗号装置３００の暗号文生成部３１０が暗号文を生成する際、暗号化オプション情報とあわせて、暗号化オプション情報のハッシュ値を取り、暗号化データに付与し、暗号文を生成する。復号装置５００の環境情報取得部５１０は、暗号文に含まれる暗号化オプション情報とそのハッシュ値から暗号化オプション情報が改ざんされていないかの検証を行う。改ざんされている場合は処理を停止する一方、改ざんされていない場合は先述のように環境情報を取得する。このようにすることにより、暗号装置３００のユーザが意図しない復号鍵の生成を防ぐことが可能となる。
【００６９】
本発明によれば、暗号化オプション情報を用いることにより、システムに手を加えることなく、属性ＩＤや属性値取得方法を追加することが可能となる。
【００７０】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００７１】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。
【００７２】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。
【００７３】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００７４】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【００７５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００７６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００７７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００７８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2018180408.tif 000003
【図２】
2018180408.tif 000004
【図３】
2018180408.tif 000005
【図４】
2018180408.tif 000006
【図５】
2018180408.tif 000007
【図６】
2018180408.tif 000008
【図７】
2018180408.tif 000009
【図８】
2018180408.tif 000010
【図９】
2018180408.tif 000011
【図１０】
2018180408.tif 000012