(57)【特許請求の範囲】
【請求項１】
下位階層の２つ以上の要素が上位階層の１つの要素に従属している階層構造のうちの最上位階層以外の階層において選択された要素である選択要素が複数記述されている選択要素情報を入力する選択要素情報入力部と、
前記階層構造における階層間の関係を示す情報に基づき、選択要素ごとに、選択要素が従属している上位階層の要素を上位要素として特定し、特定した上位要素ごとに、上位要素に従属している選択要素の個数と、上位要素に従属している要素である下位要素の個数とを計数し、上位要素ごとに計数した選択要素の個数と下位要素の個数とに基づき、選択要素の個数をαとし、下位要素の個数をβとした場合に、（β／２）＋１≦αの条件を満たす、２つ以上の選択要素が従属している、上位要素を抽出する要素抽出部と、
前記要素抽出部により抽出された上位要素に従属している２つ以上の選択要素の記述を、前記要素抽出部により抽出された上位要素の記述に置換して、前記選択要素情報に記述される要素の個数を減少させる選択要素情報編集部とを備えることを特徴とする情報処理装置。
【請求項２】
前記選択要素情報編集部は、
前記要素抽出部により抽出された上位要素に従属している２つ以上の選択要素の記述を、前記要素抽出部により抽出された上位要素の記述と、前記上位要素の下位要素のうち前記２つ以上の選択要素以外の下位要素を除外する記述とに置換することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記選択要素情報入力部は、
アクセスが制限されるデータへのアクセスを許可する条件を、複数の選択要素の記述により定義する選択要素情報を入力することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記選択要素情報入力部は、
関数型暗号及び属性ベース暗号の少なくともいずれかに基づく暗号化データの復号を許可する条件を、複数の選択要素の記述により定義する選択要素情報を入力することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記選択要素情報入力部は、
前記階層構造のうちの最下位階層以外の階層の要素が記述される選択要素情報を入力する場合があり、
前記情報処理装置は、更に、
前記選択要素情報入力部が前記選択要素情報を入力した場合に、前記選択要素情報に記述される最下位階層以外の階層の要素に対して、当該要素を従属先とする下位階層の要素を２つ以上特定する下位階層要素特定部を備え、
前記選択要素情報編集部は、
前記選択要素情報内の前記最下位階層以外の階層の要素の記述を、前記下位階層要素特定部により特定された下位階層の２つ以上の要素の記述に置換することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記下位階層要素特定部は、
前記選択要素情報入力部が前記選択要素情報を入力した場合に、前記選択要素情報に記述される最下位階層以外の階層の要素に対して、当該要素を従属先とする最下位階層の要素を２つ以上特定し、
前記選択要素情報編集部は、
前記選択要素情報内の前記最下位階層以外の階層の要素の記述を、前記下位階層要素特定部により特定された最下位階層の２つ以上の要素の記述に置換することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
選択要素情報入力部と要素抽出部と選択要素情報編集部とを備えるコンピュータが行う情報処理方法であって、
前記選択要素情報入力部が、下位階層の２つ以上の要素が上位階層の１つの要素に従属している階層構造のうちの最上位階層以外の階層において選択された要素である選択要素が複数記述されている選択要素情報を入力し、
前記要素抽出部が、前記階層構造における階層間の関係を示す情報に基づき、選択要素ごとに、選択要素が従属している上位階層の要素を上位要素として特定し、特定した上位要素ごとに、上位要素に従属している選択要素の個数と、上位要素に従属している要素である下位要素の個数とを計数し、上位要素ごとに計数した選択要素の個数と下位要素の個数とに基づき、選択要素の個数をαとし、下位要素の個数をβとした場合に、（β／２）＋１≦αの条件を満たす、２つ以上の選択要素が従属している、上位要素を抽出し、
前記選択要素情報編集部が、抽出された上位要素に従属している２つ以上の選択要素の記述を、抽出された上位要素の記述に置換して、前記選択要素情報に記述される要素の個数を減少させることを特徴とする情報処理方法。
【請求項８】
選択要素情報入力部と要素抽出部と選択要素情報編集部とを備えるコンピュータに、
前記選択要素情報入力部が、下位階層の２つ以上の要素が上位階層の１つの要素に従属している階層構造のうちの最上位階層以外の階層において選択された要素である選択要素が複数記述されている選択要素情報を入力する選択要素情報入力処理と、
前記要素抽出部が、前記階層構造における階層間の関係を示す情報に基づき、選択要素ごとに、選択要素が従属している上位階層の要素を上位要素として特定し、特定した上位要素ごとに、上位要素に従属している選択要素の個数と、上位要素に従属している要素である下位要素の個数とを計数し、上位要素ごとに計数した選択要素の個数と下位要素の個数とに基づき、選択要素の個数をαとし、下位要素の個数をβとした場合に、（β／２）＋１≦αの条件を満たす、２つ以上の選択要素が従属している、上位要素を抽出する要素抽出処理と、
前記選択要素情報編集部が、前記要素抽出処理により抽出された上位要素に従属している２つ以上の選択要素の記述を、前記要素抽出処理により抽出された上位要素の記述に置換して、前記選択要素情報に記述される要素の個数を減少させる選択要素情報編集処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある情報に記述されている要素を変換して、当該情報に記述される要素の個数を増減させる技術に関する。
本発明は、例えば、関数型暗号（Ｆｕｎｃｔｉｏｎａｌ  Ｅｎｃｒｙｐｔｉｏｎ）で利用する述語に記述される復号条件の要素を変換して、述語に記述される要素の個数を増減させる技術に関する。
【背景技術】
【０００２】
１９７６年、ディフィーとヘルマンが開発した公開鍵暗号方式は、継続して様々な改良と機能拡張が行われている。
特に、２００１年ボネとフランクリンが発表したペアリングに基づいたＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）ベース暗号と呼ばれる公開鍵暗号方式を契機に、近年、ペアリングの方式に関する研究が盛んに行われている。
また、２０１０年には、非特許文献１において、ペアリングを用いた高機能な公開鍵暗号方式である、関数型暗号が発表された。
関数型暗号は、従来の暗号とは異なり、述語で暗号化を表現可能なアルゴリズムであり、例えばアクセス制御と同等もしくはそれ以上の機能を有している。
この関数型暗号の利用方法として、関数型暗号の一般のアクセス制御への換装等が考えられる。
仮に関数型暗号をアクセス制御へ換装した場合に、関数型暗号の最も簡易な利用方法として、システムで一意となるＩＤを論理演算子ＯＲでつないで条件を表現することが考えられる。
例えば、「Ａ氏  ｏｒ  Ｂ氏  ｏｒ  Ｃ氏  ｏｒ  ・・・」のような表現である。
ただし、この表現は多数の論理演算子ＯＲを用いなければならない。
関数型暗号の暗号・復号処理時間は論理演算子の数と比例して大きくなるため、可能な限り論理演算子を少なくなるよう表現する必要がある。
また、グループを考慮して暗号化した場合に、新たにグループに追加されたユーザによる復号をどのように許可するか考える必要がある。
例えば、「人事部  ｏｒ  総務部」のような条件でデータが暗号化された場合を考える。
暗号化の時点では人事部のメンバーがＡ氏とＢ氏とＣ氏で構成されているとする。
人事部にＤ氏が加わった場合、Ｄ氏は人事部に属するので、上記の「人事部  ｏｒ  総務部」を条件として暗号化された暗号化データを復号することができる。
しかし、暗号化の時点で人事部にいなかったＤ氏の復号について考慮できていないことになる。
間違いなく暗号化するには条件を「Ａ氏  ｏｒ  Ｂ氏  ｏｒ  Ｃ氏  ｏｒ  ・・・」とする必要がある。
システム管理者が制御する従来のアクセス制御とは異なり、関数型暗号では、各々のユーザがファイルに対してアクセス制御をおこなうことが可能である。
そのため、最適なアクセス制御（関数型暗号における述語付与）を把握している管理者とは違い、上記の例のように最適な述語の付与方法をユーザに掲示しなければならないが、良い方法が従来はなかった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２５９０１２号公報
【特許文献２】特開平１０−２００５２２号公報
【非特許文献】
【０００４】
【非特許文献１】Ｔ．Ｏｋａｍｏｔｏ、Ｋ．Ｔａｋａｓｈｉｍａ、“Ｆｕｌｌｙ  Ｓｅｃｕｒｅ  Ｆｕｎｃｔｉｏｎａｌ  Ｅｎｃｒｙｐｔｉｏｎ  Ｗｉｔｈ  Ｇｅｎｅｒａｌ  Ｒｅｌａｔｉｏｎｓ  ｆｒｏｍ  ｔｈｅ  Ｄｅｃｉｓｉｏｎａｌ  Ｌｉｎｅａｒ  Ａｓｓｕｍｐｔｉｏｎ”、ＣＲＹＰＴＯ  ２０１０、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、２０１０、Ｖｏｌｕｍｅ  ６２２３／２０１０．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アクセスできる情報の種類によってユーザが階層的に区分される環境において、複数のユーザによって共有されるファイルの安全性を高める方式が特許文献１に記載の方式である。
特許文献１では、ある階層に属するユーザによって管理されている暗号化ファイルを、その上位階層に属するユーザも正しく復号することが可能となる方法が開示されている。
特許文献１では、上位階層のユーザが暗号化ファイルを正しく復号できるようにすることが目的であるため、述語の変換方式等は開示・示唆されていない。【０００６】
また、第三者によるユーザの暗号鍵の盗難を防止するとともに、復号条件を満たすユーザだけがデータの内容を参照することが可能な方式が特許文献２の方式である。
特許文献２でも、復号条件を満たすユーザだけが正しく復号できるようにすることが目的であるため、述語の変換方式等は開示・示唆されていない。【０００７】
また、古くから数学ではシャノンの展開定理やカルノー図、クワイン・マクラスキー法などの方法が論理演算の変換としては知られている。
これら方式は論理演算を省略することが可能であるが、２値（１  ｏｒ  ０やＯＮ  ｏｒ  ＯＦＦ）で表現する値のＡＮＤやＯＲを含む論理式を省略する方法である。
値自体に意味を持つ論理式の場合、例えば人事部や経理部などの組織情報、課長や部長といった職制情報を含む論理式などは、上記方法で省略できない。
関数型暗号で利用する述語は、組織情報や職制などの情報であるため、上記の２値情報のようなシンプルなものでなく、なんらかの別の方式を用いなければ省略・変換等を実施できない。【０００８】
本発明は、上述のような事情に鑑みたものであり、ある情報に記述されている要素を変換して、当該情報に記述される要素の個数を最適な形に増減させることを主な目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、
下位階層の２つ以上の要素が上位階層の１つの要素に従属している階層構造のうちの最上位階層以外の階層において選択された要素である選択要素が複数記述されている選択要素情報を入力する選択要素情報入力部と、
選択要素ごとに、選択要素が従属している上位階層の要素を上位要素として特定し、特定した上位要素ごとに、上位要素に従属している選択要素の個数と、上位要素に従属している要素である下位要素の個数とを計数し、上位要素ごとに計数した選択要素の個数と下位要素の個数とに基づき、２つ以上の選択要素が従属している、いずれかの上位要素を抽出する要素抽出部と、
前記要素抽出部により抽出された上位要素に従属している２つ以上の選択要素の記述を、前記要素抽出部により抽出された上位要素の記述に置換して、前記選択要素情報に記述される要素の個数を減少させる選択要素情報編集部とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、選択要素情報に記述される要素の個数を減少させることができるため、選択要素情報を用いた演算処理の処理速度を向上させることができ、選択要素情報に記述される要素の個数を増加させることができるため、適切なアクセス制御の実施によって安全性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係る暗号文送信端末装置の動作例を示すフローチャート図。
【図３】実施の形態１に係る組織情報の例を示す図。
【図４】実施の形態１に係る組織情報の例を示す図。
【図５】実施の形態１に係る組織情報の例を示す図。
【図６】実施の形態２に係る階層の数値化の例を示す図。
【図７】実施の形態２に係る階層の数値化の例を示す図。
【図８】実施の形態１〜３に係る暗号文送信端末装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
本実施の形態及び以降の実施の形態では、組織情報など階層構造に着目し、関数型暗号における述語を適切に変換することで処理を高速化する方式や安全性を向上する方式を説明する。
高速化においては、述語をいかに短くするかを考慮し、安全性向上においては、短く表現した述語がユーザの追加や減少等があっても、もともとの開示条件を満たすのかを考慮する。
また、本実施の形態及び以降の実施の形態で説明する方式は関数型暗号だけではなく、属性ベース暗号などのような様々な条件を指定して暗号化する全てのアルゴリズムに有効である。
【００１３】
以下では、暗号文を生成・送信する暗号文送信端末装置、暗号文を受信・管理する暗号文受信端末装置、関数型暗号に用いる鍵を生成する鍵生成端末装置で構成されているネットワークにおいて、暗号文送信端末装置が、関数型暗号で暗号化に用いる述語を短くする方式を説明する。
【００１４】
図１は、本実施の形態に係るシステム構成例を示すブロック図である。
図１に示す構成は一例であり、例えば、暗号文送信端末装置の述語生成部などは別の端末装置に持つことができるなど、様々な構成が考えられる。
【００１５】
図１において、暗号文送信端末装置１００は、暗号文を生成し、送信する端末装置である。
暗号文受信端末装置２００は、暗号文を受信する端末装置である。
鍵生成端末装置３００は、関数型暗号で用いるマスター公開鍵・マスター秘密鍵を生成する端末装置であり、また、復号に利用するユーザ秘密鍵を生成することも可能である。
暗号文送信端末装置１００、暗号文受信端末装置２００及び鍵生成端末装置３００は、インターネット４００で接続されている。
なお、暗号文送信端末装置１００は、情報処理装置の例に相当する。
【００１６】
図１において、情報受信部１０１Ａ〜Ｃは、情報を受信する。
例えば、暗号文受信端末装置２００の情報受信部１０１Ｂは、暗号文送信端末装置１００から暗号文を受信する。
情報送信部１０２Ａ〜Ｃは、情報を送信する。
例えば、情報送信部１０２Ａは、関数型暗号で暗号化された暗号文を暗号文受信端末装置２００に送信する。
【００１７】
暗号文送信端末装置１００において、入力部１０５は、例えば、暗号文送信端末装置１００のユーザから、関数型暗号に用いる述語を入力する。
この述語は、暗号文の復号が許可される要素として選択された要素（復号が許可される人物の識別子等）が記述された情報である。
暗号文送信端末装置１００のユーザは、述語の適切な記述方法に関する知識に乏しいことが多く、入力部１０５が入力する述語は、一般的に冗長な述語である。
また、入力部１０５が入力する述語は選択要素情報の例に相当し、入力部１０５は選択要素情報入力部の例に相当する。
【００１８】
述語生成部１０３は、入力部１０５により入力された冗長な述語から、適切な述語を生成する。
つまり、述語生成部１０３は、冗長な述語に記述されている要素（識別子等）を上位階層層の要素（識別子等）に変換して、述語に記述される要素の個数を削減する。
述語生成部１０３は、要素抽出部、選択要素情報編集部及び下位階層要素特定部の例に相当する。
【００１９】
暗号文生成部１０４は、述語生成部１０３で生成された適切な述語、平文、マスター公開鍵を入力とし、関数型暗号で暗号化されたデータを生成する。
【００２０】
暗号文受信端末装置２００において、復号部１０６は、ユーザ秘密鍵を用いて、暗号文送信端末装置１００から受信した暗号文を復号する。
【００２１】
鍵生成端末装置３００において、鍵生成部３０１は、関数型暗号のマスター公開鍵とマスター秘密鍵を生成する。
また、鍵生成部３０１は、復号に利用するユーザ秘密鍵を生成することも可能である。
【００２２】
なお、本実施の形態及び以降の実施の形態では、以下を前提条件とする。
暗号文送信端末装置１００は、なんらかの方法で鍵生成端末装置３００から関数型暗号のマスター公開鍵を取得する。
また、暗号文受信端末装置２００は、なんらかの方法で鍵生成端末装置３００から関数型暗号のユーザ秘密鍵を取得する。
また、暗号文送信端末装置１００は、なんらかの方法で暗号化に用いる述語一覧（組織情報）を所有している。
ここでの述語一覧はＤａｔａ  Ｂａｓｅで用いるデータ構造である。
この述語一覧の生成・管理に関しては、図１のシステム構成に現れていない端末に持たせることも可能である。
【００２３】
暗号文送付処理の流れを、図１、図２を用いて述べる。
【００２４】
暗号文送信端末装置１００では、入力部１０５がユーザから任意の述語を入力し、述語生成部１０３がユーザからの述語を適切な述語に変換する（ステップＳ１１）。
述語生成部１０３が適切な述語を変換する方法の詳細は、後述する。
【００２５】
次に、入力部１０５が暗号化の対象となる平文をユーザから入力し、暗号文生成部１０４が、ユーザからの平文を、Ｓ１１で変換された述語及びマスター公開鍵を用いて関数型暗号により暗号化し、暗号文を生成する（ステップＳ１２）。
【００２６】
最後に、情報送信部１０２Ａが、暗号文を暗号文受信端末装置２００へ送信する（ステップＳ１３）。
【００２７】
次に、ステップＳ１１に示した、述語生成部１０３による述語の変換処理の詳細を説明する。
【００２８】
以下では、暗号文送信端末装置１００のユーザが選択した人物の識別子（暗号文の復号が許可される人物の識別子）を、その人物が所属する組織の識別子に変換し、述語に記述される識別子の個数を減少させる例を説明する。
述語生成部１０３は、組織と人物との帰属関係が表される組織情報（述語一覧）を参照して述語の変換を行う。
組織情報は、組織の単位が１からｘまで存在する場合、それぞれ１からｘの単位で所属する人物が一意に特定される。
【００２９】
図３は、述語生成部１０３が参照する組織情報の一例を示す。
図３では、表形式の組織情報を例示しているが、組織情報の形式はどのようなものであってもよい。
図３の例では、組織の階層が１から３まで存在する。
つまり、ここでは、部━課━氏と３階層になっている。
図３の例では、「氏」階層の佐藤、鈴木が「課」階層の第一課に従属し、同様に、「氏」階層の高橋、田中が「課」階層の第二課に従属し、「氏」階層の渡辺、伊藤が「課」階層の第三課に従属し、「氏」階層の山本、中村が「課」階層の第四課に従属し、更に、「課」階層の第一課、第二課、第三課、第四課が、「部」階層の人事部に従属している階層構造となっている。
このような表（以下、ｔとする）は、システムで持つ一意の情報として、暗号文送信端末装置１００は述語生成時には取得しておく。
氏名などで一意とならない場合はＩＤのような情報を付与してもよい。
述語生成部１０３は、これら情報をもとに述語を適切なものに変換する。
【００３０】
ユーザからの任意の述語を「Ａ  ｏｒ  Ｂ  ｏｒ  Ｃ  ｏｒ  Ｄ」とする。
述語生成部１０３は、ｔからそれぞれの要素を別の表現で置き換え可能かどうか判定する。
置き換え可能な場合は、述語生成部１０３は、述語の各値、Ａ〜Ｄまでの上位階層の値を取得する。
【００３１】
例えば、図３の「氏」階層に示される要素のうち、ユーザが、佐藤、高橋、田中、渡辺を選択し、「佐藤  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺」という述語がユーザから与えられたとする。
述語生成部１０３は、ｔから佐藤の従属先の上位階層が第一課であると判断する。
同様に、述語生成部１０３は、他の要素の従属先の上位階層の要素を求める。
今回の例では、第一課に所属している人物が１人、第二課は２人、第三課は１人となる。
これを、それぞれの課のαとする。
つまり、第一課のαは１であり、第二課のαは２であり、第三課のαは１である。
ｔからそれぞれの課に所属している人物の数が判明しているため、各課に属する人物は２人であることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合、上位の値で置き換えが可能である。
第一課は、（２／２）＋１＝２＞１であり、第二課は、（２／２）＋１＝２＝２であり、第三課は、（２／２）＋１＝２＞１である。
本例の場合、第二課で置き換えが可能となり、「佐藤  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺」→「佐藤  ｏｒ  第二課ｏｒ  渡辺」となる。
述語生成部１０３は、同様にさらに上位の値へ変換可能かどうか試みる。
課の上位は部であることがわかる。
今回の例では、「佐藤  ｏｒ  第二課ｏｒ  渡辺」と変換されているため、人事部が上位となるのは第二課の１つだけとなる。
これをαとする。
ｔから部に所属している課の数が判明しているため、部に属する課は４つであることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合に上位の値での置き換えが可能であるが、本例では、（４／２）＋１＝３＞１であり、条件を満たさないため、述語生成部１０３は、省略することができないと判断する。
よって、今回の例では、「佐藤  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺」→「佐藤  ｏｒ  第二課ｏｒ  渡辺」となり、１つの要素を省略することができた。
【００３２】
図４に組織情報の他の例を示す。
これも階層が１から３まで存在する場合の例である。
ここでも、部━課━氏と３階層になっており、各要素は課が４つ、氏が８つの例である。
なお、図４では、第一課、第二課、第四課の記述を省略している。
述語生成部１０３は、図３と同様の方法で述語の要素を変換する。
【００３３】
ユーザからの任意の述語を「Ａ  ｏｒ  Ｂ  ｏｒ  Ｃ  ｏｒ  Ｄ  ｏｒ  Ｅ  ｏｒ  Ｆ  ｏｒ  Ｇ」とする。
述語生成部１０３は、ｔからそれぞれの要素を別の表現で置き換え可能かどうか判定する。
置き換え可能な場合は、述語生成部１０３は、述語の各値、Ａ〜Ｇまでの上位階層の値を取得する。
【００３４】
例えば、図４から「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」をユーザから与えられた任意の述語とする。
述語生成部１０３は、ｔから佐藤の従属先の上位階層が第三課であると判断する。
同様に、述語生成部１０３は、他の要素の従属先の上位階層の要素を求める。
今回の例では、第三課に所属している人物が７人である。
これをαとする。
ｔから各課に所属している人物の数が判明しているため、第三課に属する人物は全員で８人であることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合、上位階層の値で置き換えが可能である。
本例の場合、（８／２）＋１＝５＜７となり、第三課で置き換えが可能となり、「佐藤
ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」→「第三課  Ｎｏｔ  中村」となる。
述語生成部１０３は、同様にさらに上位の値へ変換可能かどうか試みる。
上位は人事部であることがわかる。
【００３５】
今回の例では、「第三課  Ｎｏｔ  中村」と変換されているため、人事部が上位となるのは第三課の１つだけとなる。
これをαとする。
ｔから部に所属している課の数が判明しているため、部に属する課は４つであることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合に上位の値での置き換えが可能であるが、本例では、（４／２）＋１＝３＞１であり、条件を満たさないため、述語生成部１０３は、省略することができないと判断する。
よって、今回の例では、「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」→「第三課  Ｎｏｔ  中村」となり、５つの要素を省略することができた。
【００３６】
図５に組織情報の他の例を示す。
これは階層が１から３まで存在する場合の例である。
ここでも、部━課━氏と３階層になっており、各要素は課が４つ、氏が１６個の例である。
述語生成部１０３は、図３と同様の方法で省略する。
【００３７】
例えば、図５から「佐藤  ｏｒ  鈴木  ｏｒ  高橋    ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本  ｏｒ  小林  ｏｒ  加藤  ｏｒ  佐々木  ｏｒ  山口  ｏｒ松本」をユーザから与えられた任意の述語とする。
述語生成部１０３は、ｔから佐藤の従属先の上位階層が第一課であると判断する。
同様に、述語生成部１０３は、他の要素の従属先の上位階層の要素を求める。
今回の例では、第一課に所属している人物が３人、第二課は３人、第三課は２人、第四課は３人となる。
これらを、それぞれの課のαとする。
ｔからそれぞれの課に所属している人物の数が判明しているため、各課に属する人物は４人であることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合、上位階層の値で置き換えが可能である。
本例の場合、第一課、第二課、第四課で置き換えが可能となり、「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本  ｏｒ  小林  ｏｒ  加藤  ｏｒ  佐々木  ｏｒ  山口  ｏｒ松本」→「第一課  Ｎｏｔ  田中  ｏｒ  第二課  Ｎｏｔ  中村  ｏｒ小林  ｏｒ  加藤  ｏｒ  第四課  Ｎｏｔ  井上」となる。
同様にさらに上位の値を取得する。
上位は人事部であることがわかる。
今回の例では、「第一課  Ｎｏｔ  田中  ｏｒ  第二課  Ｎｏｔ  中村  ｏｒ小林  ｏｒ  加藤  ｏｒ  第四課  Ｎｏｔ  井上」と変換されているため、人事部が上位となるのは第一課、第二課、第四課の３つとなる。
これをαとする。
ｔから部に所属している課の数が判明しているため、部に属する課は４つであることがわかる。
これをβとする。
本例では、（β／２）＋１≦αを満たすため、人事部で置き換えが可能となり、「第一課  Ｎｏｔ  田中  ｏｒ  第二課  Ｎｏｔ  中村  ｏｒ小林  ｏｒ  加藤  ｏｒ  第四課
Ｎｏｔ  井上」→「人事部  Ｎｏｔ  田中  Ｎｏｔ  中村  Ｎｏｔ  吉田  Ｎｏｔ  山田  Ｎｏｔ  井上」となる。
よって、今回の例では、５つの要素を省略することができた。
【００３８】
このように、本実施の形態では、述語生成部１０３は、ユーザが選択した複数の要素である選択要素が記述されている述語（選択要素情報）を取得する。
そして、述語生成部１０３は、ユーザが指定した述語に記述されている複数の選択要素の中から、従属先の上位階層の要素が共通している２つ以上の選択要素を抽出する。
より具体的には、述語生成部１０３は、従属先の上位階層の要素が共通する３つ以上の選択要素であって、当該従属先の上位階層の要素の記述と、当該従属先の上位階層の要素を従属先とする前記複数の選択要素以外の要素の記述（「Ｎｏｔ要素」の記述）とに置換しても、置換後の要素の組合せにより定義される条件と置換前の３つ以上の選択要素の組合せにより定義される条件とに変化がなくユーザが指定した述語に記述される要素の個数を減少させることができる３つ以上の選択要素を抽出する。
また、述語生成部１０３は、抽出した２つ以上の選択要素の記述を、従属先の上位階層の要素の記述に置換するとともに、当該従属先の上位階層の要素を従属先とする前記複数の選択要素以外の要素の記述（「Ｎｏｔ要素」の記述）に置換して、ユーザが指定した述語に記述される要素の個数を減少させる。
【００３９】
以上、本実施の形態によれば、関数型暗号に用いる述語を適切に変換することで高速演算または安全性向上を実現することができる。
【００４０】
実施の形態２．
本実施の形態においても、暗号文を生成・送信する暗号文送信端末装置、暗号文を受信・管理する暗号文受信端末装置、関数型暗号に用いる鍵を生成する鍵生成端末装置で構成されているネットワークで、暗号文送信端末装置が、関数型暗号で暗号化に用いる述語を短くする方式を説明する。
【００４１】
本実施の形態に係るシステム構成例は、図１と同様である。
更に、暗号文送付処理の流れも、図２に示したものと同様である。
本実施の形態では、述語生成部１０３が参照する述語一覧（組織情報）のデータ構造が異なる。
本実施の形態に係る述語一覧は、ハッシュ表のようなデータ構造である。
この一覧の生成・管理に関しては、図１のシステム構成に現れていない端末に持たせることも可能である。
述語一覧には様々なデータ構造を用いることが可能である。
【００４２】
本実施の形態に係る述語一覧は、適切な述語を出力するため、階層を数値で表現する。
階層が１からｘまで存在する場合、階層の頂点をＡ１とし、最も下位の階層をＡｘとする。
そして、それぞれの階層に数値を付与する。
この数値は階層ごとに区別可能になっている。
これらの例を以下に示す。
【００４３】
図６は階層の数値化の一例を示す。
図６は階層が１から３まで存在する場合の例である。
ここでは、部━課━氏と３階層になっており、各要素は課が４つ、氏が２つの例である。
３階層になっているため、人事部を「１０００００」とする場合、分かりやすくするため、左記数値を「１０」「００」「００」と３つに分割表記する。
それぞれ分割した値は、階層ごとの意味を表現したものとなる。
当然ながら、階層の深さと値の大きさは比例する。
また、この例の場合、各要素が１〜９つで表現可能なので、それぞれ桁が２つとなっている。
この桁数は全体の要素の最大数で合わせておくと表現が簡単になるが、必ずしも一致させる必要はない。
また、各要素が１〜９９の場合は桁を３つにすればよい。
各要素の最大数も値の大きさと比例する。
あくまで図６は一例である。
このような階層を表現した数値表（以下、ｔとする）は、システムで持つ一意の情報として、暗号文送信端末装置１００は述語生成時には取得しておく。
述語生成部１０３は、この情報をもとに述語を適切なものに変換する。
また、実施の形態１と異なりここではハッシュ表を用いて検索するが、基本的に検索可能なデータ構造を用いれば、本発明はデータ構造に依存しない。
それぞれの特徴を生かしたシステム構築が可能となる。
ハッシュ表の特徴として、高速に検索することに特化している。
ただし、階層の構築が別途必要不可欠であるため、上記の例のような階層を値で表現した。
【００４４】
ユーザからの任意の述語を「Ａ  ｏｒ  Ｂ  ｏｒ  Ｃ  ｏｒ  Ｄ」とする。
述語生成部１０３は、ｔからそれぞれの要素を別の表現で置き換え可能かどうか判定する。
置き換え可能な場合は、述語生成部１０３は、述語の各値、Ａ〜Ｄまでの上位階層の値を取得する。
【００４５】
例えば、図６から「佐藤  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺」をユーザから与えられた任意の述語とする。
ｔから佐藤は「１０１００１」、その上位階層はあらかじめ要素の最大値を明確にすることで、「１０１０００」であることがわかる。
別途、ｔの逆引きが可能なｔ’を作成することで、「１０１０００」で検索し、第一課であることがわかる。
述語生成部１０３は、同様に他の要素もそれぞれ上位階層の要素を求める。
今回の例では、第一課に所属している人物が１人、第二課は２人、第三課は１人となる。
これを、それぞれの課のαとする。
ｔからそれぞれの課に所属している人物の数が判明しているため、各課に属する人物は２人であることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合、上位階層の値で置き換えが可能である。
本例の場合、第二課で置き換えが可能となり、「佐藤  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺」→「佐藤  ｏｒ  第二課ｏｒ  渡辺」となる。
述語生成部１０３は、同様にさらに上位の値へ変換可能かどうか試みる。
上位階層は「１０００００」（人事部）であることがわかる。
今回の例では、「佐藤  ｏｒ  第二課ｏｒ  渡辺」と変換されているため、人事部が上位となるのは第二課の１つだけとなる。
これをαとする。
ｔから部に所属している課の数が判明しているため、部に属する課は４つであることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たさないため、述語生成部１０３は、省略することができないと判断する。
よって、今回の例では、「佐藤  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺」→「佐藤  ｏｒ  第二課ｏｒ  渡辺」となり、１つの要素を省略することができた。
【００４６】
図７に階層の数値化の他の例を示す。
これも階層が１から３まで存在する場合の例である。
ここでも、部━課━氏と３階層になっており、各要素は課が４つ、氏名が８つの例である。
数値化は、図６と同様の方法で行われる。
【００４７】
ユーザからの任意の述語を「Ａ  ｏｒ  Ｂ  ｏｒ  Ｃ  ｏｒ  Ｄ  ｏｒ  Ｅ  ｏｒ  Ｆ  ｏｒ  Ｇ」とする。
述語生成部１０３は、ｔからそれぞれの要素を別の表現で置き換え可能かどうか判定する。
置き換え可能な場合は、述語生成部１０３は、述語の各値、Ａ〜Ｇまでの上位階層の値を取得する。
【００４８】
例えば、図７から「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」をユーザから与えられた任意の述語とする。
述語生成部１０３は、ｔから佐藤は「１０３００１」、その上位は「１０３０００」（第三課）であると判断する。
同様に、述語生成部１０３は、他の要素の従属先の上位階層の要素を求める。
今回の例では、第三課に所属している人物が７人である。
これをαとする。
ｔから各課に所属している人物の数が判明しているため、第三課に属する人物は全員で８人であることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たす場合、上位階層の値で置き換えが可能である。
本例の場合、第三課で置き換えが可能となり、「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」→「第三課  Ｎｏｔ  中村」となる。
述語生成部１０３は、同様にさらに上位の値へ変換可能かどうか試みる。
上位階層は「１０００００」（人事部）であることがわかる。
今回の例では、「第三課  Ｎｏｔ  中村」と変換されているため、人事部が上位となるのは第三課の１つだけとなる。
これをαとする。
ｔから部に所属している課の数が判明しているため、部に属する課は４つであることがわかる。
これをβとする。
（β／２）＋１≦αの条件を満たさないため、述語生成部１０３は、省略することができないと判断する。
よって、今回の例では、「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」→「第三課  Ｎｏｔ  中村」となり、５つの要素を省略することができた。
【００４９】
実施の形態３．
本実施の形態では、暗号文を生成・送信する暗号文送信端末装置、暗号文を受信・管理する暗号文受信端末装置、関数型暗号に用いる鍵を生成する鍵生成端末装置で構成されているネットワークで、暗号文送信端末装置が、関数型暗号で暗号化に用いる述語を安全に付与する方式を説明する。
【００５０】
本実施の形態に係るシステム構成例は、図１と同様である。
また、前提条件も実施の形態１と同様である。
本実施の形態では、実施の形態１や２と異なり、述語をグループで省略するのではなく、あえて人物単位で付与し、確実なアクセス権の設定を行う。
実施の形態１や２は暗号化電子メールなど通信路の暗号化に用いる場合に適しているのに対して、本実施の形態は暗号文を長期間管理している場合にメンバーの脱退や追加に確実に対応可能な利点がある。
本実施の形態では、図３に示す組織情報を用いて説明を行う。
【００５１】
本実施の形態では、入力部１０５は、最下位階層以外の階層の要素が含まれる述語を入力する。
そして、本実施の形態に係る述語生成部１０３は、述語に記述されている要素のうち最下位階層以外の階層の要素を下位階層の２つ以上の要素に変換する。
【００５２】
本実施の形態では、ユーザからの任意の述語を「Ａ  Ｎｏｔ  Ｂ」とする。
述語生成部１０３は、ｔからそれぞれの要素を別の表現で置き換え可能かどうか検討する。
置き換え可能な場合は、述語生成部１０３は、述語の各値、ＡとＢの下位階層の値を取得する。
【００５３】
例えば、「第三課  Ｎｏｔ  中村」をユーザから与えられた任意の述語とする。
述語生成部１０３は、ｔから第三課の下位は、佐藤、鈴木、高橋、田中、渡辺、伊藤、山本、中村であると判断する。
中村の下位は現状ないため無視する。
今回の例では、「Ｎｏｔ中村」であり、中村は第三課に所属するから、述語生成部１０３は、中村を条件から外す。
次に、述語生成部１０３は、残りの要素をＯＲで接続し、「第三課  Ｎｏｔ  中村」→「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」とする。
述語生成部１０３は、同様にさらに下位の値へ変換可能かどうか試みる。
今回の例では、さらに下位の情報はなく、述語は「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  田中  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本」で確定し、暗号文生成部１０４は、この述語を用いて暗号化する。
このような変換によって、仮に第三課に小林が追加された場合、暗号文を生成した時点で小林は第三課に所属していなかったため、小林は暗号文の解読ができないようにすることができる。
【００５４】
図５の組織情報の場合も、図３と同様の方法で上位階層の要素を下位階層の要素に変換する。
【００５５】
例えば、「人事部  Ｎｏｔ  田中  Ｎｏｔ  中村  Ｎｏｔ  吉田  Ｎｏｔ  山田  Ｎｏｔ  井上」をユーザから与えられた任意の述語とする。
ｔから人事部の下位は第一課、第二課、第三課、第四課であることがわかる。
本例の場合、「人事部  Ｎｏｔ  田中  Ｎｏｔ  中村  Ｎｏｔ  吉田  Ｎｏｔ  山田  Ｎｏｔ  井上」→「第一課  ｏｒ第二課  ｏｒ  第三課  ｏｒ  第四課  Ｎｏｔ  田中  Ｎｏｔ  中村  Ｎｏｔ  吉田  Ｎｏｔ  山田  Ｎｏｔ  井上」となる。
同様に、第一課〜第四課までの下位は、佐藤、鈴木、高橋、田中、渡辺、伊藤、山本、中村、小林、加藤、吉田、山田、佐々木、山口、松本、井上である。
今回の例では、さらに下位の情報はなく、Ｎｏｔとなっている条件に対応すると、「佐藤  ｏｒ  鈴木  ｏｒ  高橋  ｏｒ  渡辺  ｏｒ  伊藤  ｏｒ  山本  ｏｒ  小林  ｏｒ  加藤  ｏｒ  佐々木  ｏｒ  山口  ｏｒ  松本」となる。
【００５６】
なお、図６及び図７に例示した階層を数値化した場合（ハッシュ表）でも、上述と同じ手法により、上位階層の要素を下位階層の要素に変換することができる。
【００５７】
このように、本実施の形態では、入力部１０５は、最下位階層以外の階層の要素が記述される述語（選択要素情報）を入力する。
そして、述語生成部１０３は、最下位階層以外の階層の要素に対して、当該要素を従属先とする下位階層の要素を２つ以上特定する。
更に、述語生成部１０３は、最下位階層以外の階層の要素の記述を、特定した下位階層の２つ以上の要素の記述に置換する。
【００５８】
以上の実施の形態では、
ユーザが入力する任意のデータに対するアクセス条件をシステムに適した述語へ変換可能な機能を持つ端末装置であって、以下の機能を持つ端末装置を説明した。
（１）関数型暗号や属性ベース暗号において、述語が短くなれば高速に処理可能。
ユーザが無駄な条件を付与している場合、それを適した形に短く表現する。
（２）関数型暗号や属性ベース暗号において、グループを対象とした暗号化は、ユーザの意図しない復号許可権限を与える可能性があるため、適切に復号許可権限を与えるサポートをする。
（３）ユーザに参照する述語の一覧（変換サポート情報）を持つ。
（４）その一覧はどのようなデータ構造にも対応可能。
【００５９】
また、以上の実施の形態では、
変換には階層構造に着目しており、述語一覧のデータ構造には、階層構造を用いるのに適したデータ構造もしくは、階層構造をシステムで構築したデータ構造を用いることで、変換可能となり、以下の機能を持つ端末装置を説明した。
（１）階層構造をそのまま表現して、文字列変換を可能にする。
（２）階層構造を別の形で表現して、文字列変換を可能にする。
（３）組織情報や階級のような情報を上位や下位の情報に変換する。
（４）高速動作に特化したデータ構造を用いる。
（５）追加や削除が容易なデータ構造を用いる。
【００６０】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【００６１】
最後に、実施の形態１〜３に示した暗号文送信端末装置１００のハードウェア構成例を図８を参照して説明する。
暗号文送信端末装置１００はコンピュータであり、暗号文送信端末装置１００の各要素をプログラムで実現することができる。
暗号文送信端末装置１００のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００６２】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、情報受信部１０１Ａ及び情報送信部１０２Ａの物理層に対応する。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００６３】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図１に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図１に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態１〜３の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の置換」、「〜の参照」、「〜の取得」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の受信」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
また、マスター公開鍵やその他の鍵、乱数値やパラメータが、主記憶装置９０３にファイルとして記憶されてもよい。
【００６４】
なお、図８の構成は、あくまでも暗号文送信端末装置１００のハードウェア構成の一例を示すものであり、暗号文送信端末装置１００のハードウェア構成は図８に記載の構成に限らず、他の構成であってもよい。
【００６５】
また、実施の形態１〜３に示す手順により、本発明に係る情報処理方法を実現可能である。
【符号の説明】
【００６６】
１００  暗号文送信端末装置、１０１  情報受信部、１０２  情報送信部、１０３  述語生成部、１０４  暗号文生成部、１０５  入力部、１０６  復号部、２００  暗号文受信端末装置、３００  鍵生成端末装置、３０１  鍵生成部、４００  インターネット。
【図１】
0005901803.tif 000002
【図２】
0005901803.tif 000003
【図３】
0005901803.tif 000004
【図４】
0005901803.tif 000005
【図５】
0005901803.tif 000006
【図６】
0005901803.tif 000007
【図７】
0005901803.tif 000008
【図８】
0005901803.tif 000009