(57)【要約】  復号条件追加装置（３００）は、復号条件を規定した情報として秘密分散行列Ｍが設定されたオリジナル暗号文ｃｔＳと、オリジナル暗号文ｃｔＳの復号条件を制限する制限条件である追加アクセス構造Ｓ＋とを取得する。復号条件追加装置（３００）は、オリジナル暗号文ｃｔＳに設定された秘密分散行列Ｍに、追加アクセス構造Ｓ＋が示す行及び列を追加して、オリジナル暗号文ｃｔＳの復号条件を制限した更新暗号文ｃｔＳ’を生成する。
2016088250.tif 000002
【特許請求の範囲】
【請求項１】
復号条件を規定した情報として秘密分散行列が設定されたオリジナル暗号文を取得するオリジナル暗号文取得部と、
前記オリジナル暗号文取得部が取得したオリジナル暗号文の復号条件を制限する制限条件を取得する条件取得部と、
前記オリジナル暗号文に設定された秘密分散行列に、前記条件取得部が取得した制限条件に対応する行及び列を追加して、前記オリジナル暗号文の復号条件を制限した更新暗号文を生成する更新暗号文生成部と
を備える復号条件追加装置。
【請求項２】
前記更新暗号文生成部は、追加した行の要素のうち、追加した列の要素以外の要素は０とし、追加した列の要素のうち、追加した行の要素以外の要素は０とする
請求項１に記載の復号条件追加装置。
【請求項３】
前記更新暗号文生成部は、制限条件１つに対して行及び列を１つ追加する
請求項２に記載の復号条件追加装置。
【請求項４】
前記更新暗号文生成部は、正の整数Ｌ，ｒ，ｐについて、Ｌ行ｒ列の前記秘密分散行列に、Ｌ＋１行目からＬ＋ｐ行目までの行と、ｒ＋１列目からｒ＋ｐ列目までの列とを追加した場合、追加した行及び列の要素のうち、ｉ＝１，．．．，ｐの各整数ｉについて、Ｌ＋ｉ行ｒ＋ｉ列の要素を１とし、他の要素を０とする
請求項３に記載の復号条件追加装置。
【請求項５】
前記オリジナル暗号文は、復号条件を規定した情報として、前記秘密分散行列に加えて、属性を示す暗号要素が前記秘密分散行列の行毎に設定されており、
前記条件取得部は、前記制限条件として、属性カテゴリと、その属性カテゴリにおける属性を取得し、
前記更新暗号文生成部は、前記オリジナル暗号文に、前記条件取得部が取得した属性カテゴリに対応する暗号要素であって、その属性カテゴリにおける属性を設定した暗号要素を追加で設定して、前記更新暗号文を生成する
請求項１から４までのいずれか１項に記載の復号条件追加装置。
【請求項６】
復号条件を規定した情報として秘密分散行列が設定されたオリジナル暗号文を生成する暗号化装置と、
前記暗号化装置が生成したオリジナル暗号文の復号条件を制限する制限条件を取得し、前記オリジナル暗号文に設定された秘密分散行列に、前記制限条件に対応する行及び列を追加して、前記オリジナル暗号文の復号条件を制限した更新暗号文を生成する復号条件追加装置と、
前記復号条件追加装置が生成した更新暗号文を復号する復号装置と
を備える暗号システム。
【請求項７】
復号条件を規定した情報として秘密分散行列が設定されたオリジナル暗号文を取得するオリジナル暗号文取得処理と、
前記オリジナル暗号文取得処理で取得したオリジナル暗号文の復号条件を制限する制限条件を取得する条件取得処理と、
前記オリジナル暗号文に設定された秘密分散行列に、前記条件取得処理で取得した制限条件に対応する行及び列を追加して、前記オリジナル暗号文の復号条件を制限した更新暗号文を生成する更新暗号文生成処理と
をコンピュータに実行させる復号条件追加プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号文を復号することなく、暗号文に設定された復号条件を制限する技術に関する。
【背景技術】
【０００２】
関数型暗号及び属性ベース暗号は、論理和と論理積と否定とを組み合わせた論理式によって、暗号文を復号できる権限を持つユーザの集合を暗号文に設定することができる公開鍵暗号方式である。すなわち、関数型暗号及び属性ベース暗号は、論理和と論理積と否定とを組み合わせた論理式によって、暗号文の復号条件を暗号文に設定することができる公開鍵暗号方式である。特許文献１には、関数型暗号方式について記載されている。【０００３】
再暗号化鍵を用いて、暗号文を復号することなく、暗号文に設定された復号条件を変更可能な代理人再暗号化という技術がある。非特許文献１には、関数型暗号における代理人再暗号化方式について記載されている。非特許文献２には、属性ベース暗号における代理人再暗号化方式について記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１１／１３５８９５号公報
【非特許文献】
【０００５】
【非特許文献１】Ｙｕｔａｋａ  ｋａｗａｉ  ａｎｄ  Ｋａｔｕｙｕｋｉ  Ｔａｋａｓｈｉｍａ，  Ｆｕｌｌｙ−Ａｎｏｎｙｍｏｕｓ  Ｆｕｎｃｔｉｏｎａｌ  Ｐｒｏｘｙ−Ｒｅ−Ｅｎｃｒｙｐｔｉｏｎ．  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ：  Ｒｅｐｏｒｔ  ２０１３／３１８
【非特許文献２】Ｊｕｎｚｕｏ  Ｌａｉ  ａｎｄ  Ｒｏｂｅｒｔ  Ｈ．  Ｄｅｎｇ  ａｎｄ  Ｙａｎｊｉａｎｇ  Ｙａｎｇ  ａｎｄ  Ｊｉａｎ  Ｗｅｎｇ．  “Ａｄａｐｔａｂｌｅ  Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ  Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ”
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１，２に記載された代理人再暗号化方式では、暗号文の復号条件を変更する場合は、必ず再暗号化鍵が必要となる。
再暗号化鍵を生成するためには、ユーザ秘密鍵又はマスター秘密鍵という秘密に保持しなければならない鍵が必要となる。非特許文献１，２に記載された代理人再暗号化方式では、再暗号化鍵を生成する度に、ユーザ秘密鍵又はマスター秘密鍵へアクセスすることになり、ユーザ秘密鍵又はマスター秘密鍵へのアクセス回数が増えてしまう。
この発明は、再暗号化鍵を用いることなく、オリジナル暗号文の復号条件を制限可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る復号条件追加装置は、
復号条件を規定した情報として秘密分散行列が設定されたオリジナル暗号文を取得するオリジナル暗号文取得部と、
前記オリジナル暗号文取得部が取得したオリジナル暗号文の復号条件を制限する制限条件を取得する条件取得部と、
前記オリジナル暗号文に設定された秘密分散行列に、前記条件取得部が取得した制限条件に対応する行及び列を追加して、前記オリジナル暗号文の復号条件を制限した更新暗号文を生成する更新暗号文生成部と
を備える。
【発明の効果】
【０００８】
この発明では、暗号文に設定された秘密分散行列に、行及び列を追加することにより、オリジナル暗号文の復号条件を制限する。秘密分散行列に行及び列を追加するために再暗号化鍵は不要である。そのため、オリジナル暗号文の復号条件を制限する場合に、再暗号化鍵を用いる必要がない。
【図面の簡単な説明】
【０００９】
【図１】関数型暗号で用いられるアクセス構造Ｓの説明図。
【図２】部分行列Ｍδの説明図。
【図３】秘密分散の秘密値ｓ０の説明図。
【図４】秘密分散の分散値ｓ１，．．．，ｓＬの説明図。
【図５】暗号文の復号条件を制限する例の説明図。
【図６】実施の形態１に係る暗号システム１０の構成図。
【図７】実施の形態１に係る鍵生成装置１００の構成図。
【図８】実施の形態１に係る暗号化装置２００の構成図。
【図９】実施の形態１に係る復号条件追加装置３００の構成図。
【図１０】実施の形態１に係る復号装置４００の構成図。
【図１１】実施の形態１に係るＳｅｔｕｐアルゴリズムのフローチャート。
【図１２】実施の形態１に係るＫＧアルゴリズムのフローチャート。
【図１３】実施の形態１に係るＥｎｃアルゴリズムのフローチャート。
【図１４】実施の形態１に係るＡｐｄＡＮＤアルゴリズムのフローチャート。
【図１５】追加アクセス構造Ｓ＋の説明図。
【図１６】実施の形態１に係るＤｅｃアルゴリズムのフローチャート。
【図１７】実施の形態１に示した鍵生成装置１００と、暗号化装置２００と、復号条件追加装置３００と、復号装置４００との各装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
実施の形態１では、暗号文ポリシー型の関数型暗号に対して、暗号文の復号条件を制限する技術を適用した例について説明する。暗号文の復号条件を制限するとは、暗号文を復号可能な鍵を少なくすることである。
【００１１】
＊＊＊記法の説明＊＊＊
以下の説明における記法について説明する。
Ａがランダムな値または分布であるとき、数１０１は、Ａの分布に従いＡからｙをランダムに選択することを表す。つまり、数１０１において、ｙは乱数である。
【数１０１】
2016088250.tif 000003
Ａが集合であるとき、数１０２は、Ａからｙを一様に選択することを表す。つまり、数１０２において、ｙは一様乱数である。
【数１０２】
2016088250.tif 000004
数１０３は、ｙにｚが設定されたこと、ｙがｚにより定義されたこと、又はｙがｚを代入されたことを表す。
【数１０３】
2016088250.tif 000005
ａが定数であるとき、数１０４は、機械（アルゴリズム）Ａが入力ｘに対しａを出力することを表す。
【数１０４】
2016088250.tif 000006
数１０５は、位数ｑの体を表す。
【数１０５】
2016088250.tif 000007
数１０６は、有限体Ｆｑにおけるベクトル表現を表す。
【数１０６】
2016088250.tif 000008
数１０７は、数１０８に示す２つのベクトルｘ→とｖ→との数１０９に示す内積を表す。
【数１０７】
2016088250.tif 000009
【数１０８】
2016088250.tif 000010
【数１０９】
2016088250.tif 000011
ＸＴは、行列Ｘの転置行列を表す。
数１１０に示す基底Ｂと基底Ｂ＊とに対して、数１１１である。
【数１１０】
2016088250.tif 000012
【数１１１】
2016088250.tif 000013
ｅ→ｊは、数１１２に示す正規基底ベクトルを示す。
【数１１２】
2016088250.tif 000014
【００１２】
＊＊＊概要の説明＊＊＊
暗号文ポリシー型の関数型暗号の基礎について説明した上で、暗号文の復号条件を制限する技術の概要を説明する。
【００１３】
暗号文ポリシー型の関数型暗号の基礎について説明する。
図１は、関数型暗号で用いられるアクセス構造Ｓの説明図である。
関数型暗号では、Ｌ行ｒ列の秘密分散行列Ｍと、秘密分散行列Ｍの各行に付されたラベルρとの組をアクセス構造Ｓとして用いる。各行に付されたラベルρは、変数の集合｛ｐ１，．．．，ｐｎ｝によって与えられる肯定系のリテラル｛ｐ１，．．．，ｐｎ｝と否定系のリテラル｛¬ｐ１，．．．，¬ｐｎ｝とのうちのいずれか１つのリテラルに対応付けられる。
【００１４】
入力列δ＝δｉ∈｛０，１｝（ｉ＝１，．．．，ｎ）に対して、秘密分散行列Ｍの部分行列Ｍδが定義される。部分行列Ｍδは、入力列δによってラベルρに値“１”が対応付けられた秘密分散行列Ｍの行から構成される。つまり、部分行列Ｍδは、δｉ＝１であるようなｐｉに対応付けられた秘密分散行列Ｍの行と、δｉ＝０であるような¬ｐｉに対応付けられた秘密分散行列Ｍの行とからなる。
【００１５】
図２は、部分行列Ｍδの説明図である。
図２では、ｎ＝７，Ｌ＝６，ｒ＝５としている。つまり、変数の集合は、｛ｐ１，．．．，ｐ７｝であり、行列Ｍは６行５列である。また、図２において、ラベルρは、ρ１が¬ｐ２に、ρ２がｐ１に、ρ３がｐ４に、ρ４が¬ｐ５に、ρ５が¬ｐ３に、ρ６がｐ５にそれぞれ対応付けられているとする。
ここで、入力列δが、δ１＝１，δ２＝０，δ３＝１，δ４＝０，δ５＝０，δ６＝１，δ７＝１であるとする。この場合、部分行列Ｍδは、図２において破線で囲んだリテラル（ｐ１，ｐ３，ｐ６，ｐ７，¬ｐ２，¬ｐ４，¬ｐ５）に対応付けられている秘密分散行列Ｍの行からなる。つまり、部分行列Ｍδは、秘密分散行列Ｍの１行目（Ｍ１），２行目（Ｍ２），４行目（Ｍ４）からなる。
【００１６】
［ρ（ｊ）＝ｐｉ］∧［δｉ＝１］又は［ρ（ｊ）＝¬ｐｉ］∧［δｉ＝０］である場合、写像γ（ｊ）＝１であり、他の場合、写像γ（ｊ）＝０であるとする。この場合に、Ｍδ：＝（Ｍｊ）γ（ｊ）＝１と表すことができる。ここで、Ｍｊは、行列Ｍのｊ番目の行である。
【００１７】
関数型暗号では、アクセス構造Ｓにおける変数の集合の各変数ｐは、識別子ｔとベクトルｖ→ｉとの組（ｔ，ｖ→ｉ）によって定義される。識別子ｔとベクトルｘ→ｔとの組（ｔ，ｘ→ｔ）である属性集合Γがアクセス構造Ｓに与えられた場合、写像γ（ｉ）は、ｉ＝１，．．．，Ｌの各整数ｉについて、［ρ（ｉ）＝（ｔ，ｖ→ｉ）］∧［（ｔ，ｘ→ｔ）∈Γ］∧［ｖ→ｉ・ｘ→ｔ＝０］、又は、［ρ（ｉ）＝¬（ｔ，ｖ→ｉ）］∧［（ｔ，ｘ→ｔ）∈Γ］∧［ｖ→ｉ・ｘ→ｔ≠０］である場合、γ（ｊ）＝１であり、他の場合、γ（ｊ）＝０と定義される。
つまり、関数型暗号では、ベクトルｖ→ｉとベクトルｘ→ｔとの内積に基づき、写像γ（ｉ）が計算される。そして、上述したように、写像γ（ｉ）により、秘密分散行列Ｍのどの行を部分行列Ｍδに含めるかが決定される。
【００１８】
アクセス構造Ｓは、部分行列Ｍδの行を線形結合して１→が得られる場合に限り、属性集合Γを受理する。ここで、１→は、全ての要素が１である行ベクトルである。
例えば、図２の例であれば、秘密分散行列Ｍの１，２，４行目からなる部分行列Ｍδの各行を線形結合して１→が得られる場合に限り、アクセス構造Ｓは属性集合Γを受理する。つまり、α１（Ｍ１）＋α２（Ｍ２）＋α４（Ｍ４）＝１→となる係数α１，α２，α４が存在する場合には、アクセス構造Ｓは属性集合Γを受理する。
すなわち、部分行列Ｍδに含まれる秘密分散行列の行番号の集合をＩとすると、Σｉ∈ＩαｉＭｉ＝１→となる係数αｉが存在する場合、アクセス構造Ｓは属性集合Γを受理する。
【００１９】
暗号文ポリシー型の関数型暗号では、ユーザの属性を表す属性集合Γに含まれる識別子ｔについて、ベクトルｘ→ｔが設定された鍵要素ｋ＊ｔが生成される。そして、属性集合Γに含まれる識別子ｔと、ｔ＝０との各識別子ｔについての鍵要素ｋ＊ｔを含むユーザ秘密鍵ｓｋΓが生成される。
なお、識別子ｔは、属性カテゴリに対応しており、ベクトルｘ→ｔには、識別子ｔに対応した属性カテゴリの属性が設定される。属性カテゴリとは、所属部門、性別、年齢等の属性の分類である。例えば、識別子ｔが所属部門に対応している場合、ベクトルｘ→ｔには、ユーザ秘密鍵ｓｋΓのユーザの所属部門を示す値が設定される。
【００２０】
暗号文ポリシー型の関数型暗号では、ｉ＝１，．．．，Ｌの各整数ｉについて、アクセス構造Ｓの秘密分散行列Ｍにおけるｉ行目に、秘密分散の分散値ｓｉが割り当てられる。そして、秘密分散行列Ｍのｉ行目について、割り当てられた分散値ｓｉと、ベクトルｖ→ｉとが設定された暗号要素ｃｉが生成される。また、条件を満たした分散値ｓｉの集合から計算される秘密値ｓ０が設定された暗号要素ｃ０が生成される。また、セッション鍵Ｋを用いてメッセージｍが暗号化された暗号要素ｃｄ＋１が生成される。そして、ｉ＝０，．．．Ｌ，ｄ＋１の各整数ｉについての暗号要素ｃｉと、アクセス構造Ｓとを含むオリジナル暗号文ｃｔＳが生成される。
【００２１】
暗号文ポリシー型の関数型暗号では、属性集合Γに含まれる識別子ｔについての鍵要素ｋ＊ｔと、識別子ｔを有するラベルρ（ｉ）によって特定される暗号要素ｃｉとがペアリング演算される。ペアリング演算されることにより、ベクトルｖ→ｉとベクトルｘ→ｔとの内積が計算され、写像γ（ｉ）が計算される。そして、秘密分散行列Ｍのどの行を部分行列Ｍδに含めるかが決定される。
そして、アクセス構造Ｓが属性集合Γを受理する場合には、条件を満たした分散値ｓｉの集合が取り出され、秘密値ｓ０が計算される。鍵要素ｋ＊０と暗号要素ｃ０と秘密値ｓ０とから、セッション鍵Ｋが生成される。セッション鍵Ｋによりメッセージｍが計算される。
【００２２】
図３は、秘密分散の秘密値ｓ０の説明図である。
秘密値ｓ０は、ｒ個の全ての要素が１である行ベクトルと、ｒ個の要素ｆ１，．．．，ｆｒを有する列ベクトルｆとの積の各要素の和である。ここで、列ベクトルｆの各要素は、一様乱数である。
【００２３】
図４は、秘密分散の分散値ｓ１，．．．，ｓＬの説明図である。
分散値ｓ１，．．．，ｓＬは、秘密分散行列Ｍと、列ベクトルｆとの積である。列ベクトルｓ→Ｔは、分散値ｓ１，．．．，ｓＬを要素とするベクトルである。
【００２４】
上述した通り、アクセス構造Ｓが属性集合Γを受理した場合、Σｉ∈ＩαｉＭｉ＝１→となる係数αｉが存在する。係数αｉは、秘密分散行列Ｍのサイズにおける多項式時間で計算可能である。そして、係数αｉを用いると、秘密値ｓ０及び分散値ｓ１，．．．，ｓＬの定義から、Σｉ∈Ｉαｉｓｉ＝ｓ０となる。
【００２５】
暗号文の復号条件を制限する技術の概要について説明する。
上述した通り、オリジナル暗号文ｃｔＳには、秘密値ｓ０が設定された暗号要素ｃ０と、分散値ｓｉ及びベクトルｖ→ｉが設定された、ｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉと、メッセージｍが暗号化された暗号要素ｃｄ＋１と、アクセス構造Ｓとが含まれる。
そして、アクセス構造Ｓに含まれる秘密分散行列Ｍと、秘密分散行列Ｍの各行に対して設定される暗号要素ｃｉとによって、オリジナル暗号文ｃｔＳの復号条件が規定されている。
【００２６】
そこで、実施の形態１では、オリジナル暗号文ｃｔＳに含まれる秘密分散行列Ｍに行及び列を追加し、追加した行に対応する暗号要素ｃｉを追加して、オリジナル暗号文ｃｔＳの復号条件を制限する。
【００２７】
図５は、暗号文の復号条件を制限する例の説明図である。
オリジナル暗号文ｃｔＳでは、復号条件として、（部＝総務部）ＡＮＤ（課＝人事課）が設定されている。
このとき、秘密分散行列Ｍは、２行２列であり、１行目が部に対応しており、２行目が課に対応している。そして、１行目のラベルρ（１）は、肯定系の組（部：＝ｔ１，総務部：＝ｖ→１）に対応付けられ、２行目のラベルρ（２）は、肯定系の組（課：＝ｔ２，人事課：＝ｖ→２）に対応付けられている。
また、秘密分散行列Ｍの１行目に対応する暗号要素ｃ１には、分散値ｓ１及び総務部：＝ｖ→１が設定され、２行目に対応する暗号要素ｃ２には、分散値ｓ２及び人事課：＝ｖ→２が設定されている。
【００２８】
ここで、例えば、ＩＤ＝１００１のユーザのユーザ秘密鍵ｓｋΓを失効させたいとする。この場合、復号条件から、ＩＤ＝１００１を除けばよい。これは、オリジナル暗号文ｃｔＳの復号条件に、ＡＮＤ条件で、ＮＯＴ（ＩＤ＝１００１）を加えることにより実現できる。
つまり、復号条件を、（部＝総務部）ＡＮＤ（課＝人事課）ＡＮＤ（ＮＯＴ（ＩＤ＝１００１））とすればよい。
【００２９】
そこで、オリジナル暗号文ｃｔＳを更新した更新暗号文ｃｔＳ’では、秘密分散行列Ｍに３行目及び３列目が追加され、３行目がユーザのＩＤに対応付けられる。そして、３行目のラベルρ（３）は、否定形の組（ＩＤ：＝ｔ３，１００１：＝ｖ→３）に対応付けられる。
また、秘密分散行列Ｍの３行目に対応する暗号要素ｃ３には、分散値ｓ３及び否定形の１００１：＝ｖ→３が設定されている。
これにより、復号条件を、（部＝総務部）ＡＮＤ（課＝人事課）ＡＮＤ（ＮＯＴ（ＩＤ＝１００１））とすることができる。
【００３０】
＊＊＊構成の説明＊＊＊
図６は、実施の形態１に係る暗号システム１０の構成図である。
暗号システム１０は、鍵生成装置１００と、暗号化装置２００と、復号条件追加装置３００と、復号装置４００とを備える。
【００３１】
鍵生成装置１００は、属性のフォーマットｎ→とセキュリティパラメータλとを入力として、Ｓｅｔｕｐアルゴリズムを実行して、公開鍵ｐｋと、マスター秘密鍵ｍｓｋとを生成する。また、鍵生成装置１００は、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、ユーザの属性集合Γとを入力として、ＫＧアルゴリズムを実行して、ユーザ秘密鍵ｓｋΓを生成する。
そして、鍵生成装置１００は、公開鍵ｐｋを公開する。また、鍵生成装置１００は、ユーザ秘密鍵ｓｋΓを復号装置４００へ秘密裡に出力する。
【００３２】
暗号化装置２００は、公開鍵ｐｋと、アクセス構造Ｓと、メッセージｍとを入力として、Ｅｎｃアルゴリズムを実行して、復号条件を規定した情報として秘密分散行列Ｍが設定され、メッセージｍが暗号化されたオリジナル暗号文ｃｔＳを生成する。暗号化装置２００は、オリジナル暗号文ｃｔＳを復号条件追加装置３００へ出力する。
【００３３】
復号条件追加装置３００は、公開鍵ｐｋと、オリジナル暗号文ｃｔＳと、追加アクセス構造Ｓ＋とを入力として、ＡｐｄＡＮＤアルゴリズムを実行して、オリジナル暗号文ｃｔＳの復号条件を制限した更新暗号文ｃｔＳ’を生成する。復号条件追加装置３００は、更新暗号文ｃｔＳ’が生成されている場合には、更新暗号文ｃｔＳ’を、生成されていない場合には、オリジナル暗号文ｃｔＳを復号装置４００へ出力する。
具体的には、復号条件追加装置３００は、暗号化装置２００が生成したオリジナル暗号文ｃｔＳの復号条件を制限する制限条件である追加アクセス構造Ｓ＋を取得し、オリジナル暗号文ｃｔＳに設定された秘密分散行列Ｍに、制限条件に対応する行及び列を追加して、オリジナル暗号文ｃｔＳの復号条件を制限した更新暗号文ｃｔＳ’を生成する。
【００３４】
復号装置４００は、公開鍵ｐｋと、ユーザ秘密鍵ｓｋΓと、暗号化装置２００が生成したオリジナル暗号文ｃｔＳ又は復号条件追加装置３００が生成した更新暗号文ｃｔＳ’とを入力として、Ｄｅｃアルゴリズムを実行して、暗号化装置２００が生成したオリジナル暗号文ｃｔＳ又は復号条件追加装置３００が生成した更新暗号文ｃｔＳ’を復号する。復号装置４００は、メッセージｍ、又は、復号失敗を表す記号⊥を出力する。
【００３５】
図７は、実施の形態１に係る鍵生成装置１００の構成図である。
鍵生成装置１００は、情報取得部１１０と、マスター鍵生成部１２０と、ユーザ秘密鍵生成部１３０と、鍵出力部１４０とを備える。
【００３６】
情報取得部１１０は、暗号システム１０の管理者によって入力された属性のフォーマットｎ→とセキュリティパラメータλと属性集合Γとを取得する。マスター鍵生成部１２０は、情報取得部１１０が取得した属性のフォーマットｎ→とセキュリティパラメータλとに基づき、マスター秘密鍵ｍｓｋと公開鍵ｐｋとを生成する。ユーザ秘密鍵生成部１３０は、情報取得部１１０が取得した属性集合Γと、マスター鍵生成部１２０が生成したマスター秘密鍵ｍｓｋ及び公開鍵ｐｋとに基づき、ユーザ秘密鍵ｓｋΓを生成する。鍵出力部１４０は、公開鍵ｐｋを公開用のサーバ等へ出力して、公開鍵ｐｋを公開するとともに、ユーザ秘密鍵ｓｋΓをユーザが使用する復号装置４００へ秘密裡に出力する。秘密裡に出力するとは、例えば、既存の暗号方式により暗号化して送信することである。
【００３７】
図８は、実施の形態１に係る暗号化装置２００の構成図である。
暗号化装置２００は、情報取得部２１０と、暗号文生成部２２０と、暗号文出力部２３０とを備える。
【００３８】
情報取得部２１０は、鍵生成装置１００が生成した公開鍵ｐｋと、暗号化装置２００のユーザによって入力されたアクセス構造Ｓ及びメッセージｍとを取得する。暗号文生成部２２０は、情報取得部２１０が取得した公開鍵ｐｋとアクセス構造Ｓとメッセージｍとに基づき、メッセージｍを暗号化したオリジナル暗号文ｃｔＳを生成する。暗号文出力部２３０は、暗号文生成部２２０が生成したオリジナル暗号文ｃｔＳを復号条件追加装置３００へ出力する。
【００３９】
図９は、実施の形態１に係る復号条件追加装置３００の構成図である。
復号条件追加装置３００は、情報取得部３１０と、更新暗号文生成部３２０と、暗号文記憶部３３０と、暗号文出力部３４０とを備える。
【００４０】
情報取得部３１０は、公開鍵取得部３１１と、オリジナル暗号文取得部３１２と、条件取得部３１３とを備える。
公開鍵取得部３１１は、鍵生成装置１００が生成した公開鍵ｐｋを取得する。オリジナル暗号文取得部３１２は、暗号化装置２００が生成したオリジナル暗号文ｃｔＳを取得する。条件取得部３１３は、オリジナル暗号文ｃｔＳの復号条件を制限する制限条件である追加アクセス構造Ｓ＋を取得する。
【００４１】
更新暗号文生成部３２０は、公開鍵取得部３１１が取得した公開鍵ｐｋに基づき、オリジナル暗号文取得部３１２が取得したオリジナル暗号文ｃｔＳの復号条件を、条件取得部３１３が取得した追加アクセス構造Ｓ＋で制限して、更新暗号文ｃｔＳ’を生成する。
更新暗号文生成部３２０は、アクセス構造更新部３２１と、分散値生成部３２２と、追加暗号要素生成部３２３と、暗号要素更新部３２４とを備える。
【００４２】
暗号文記憶部３３０は、オリジナル暗号文取得部３１２が取得したオリジナル暗号文ｃｔＳを記憶する記憶装置である。暗号文記憶部３３０は、更新暗号文生成部３２０がオリジナル暗号文ｃｔＳから更新暗号文ｃｔＳ’を生成した場合、オリジナル暗号文ｃｔＳを削除し、更新暗号文ｃｔＳ’を記憶する。
【００４３】
暗号文出力部３４０は、復号装置４００から要求があった場合に、暗号文記憶部３３０に記憶されたオリジナル暗号文ｃｔＳ、又は、更新暗号文ｃｔＳ’を復号装置４００へ出力する。
【００４４】
図１０は、実施の形態１に係る復号装置４００の構成図である。
復号装置４００は、情報取得部４１０と、暗号文判定部４２０と、復号部４３０と、結果出力部４４０とを備える。
【００４５】
情報取得部４１０は、鍵生成装置１００が生成した公開鍵ｐｋ及びユーザ秘密鍵ｓｋΓと、暗号化装置２００が生成したオリジナル暗号文ｃｔＳ又は復号条件追加装置３００が生成した更新暗号文ｃｔＳ’のいずれかの暗号文を取得する。暗号文判定部４２０は、情報取得部４１０が取得した暗号文をユーザ秘密鍵ｓｋΓで復号可能であるか否かを判定する。復号部４３０は、公開鍵ｐｋに基づき、暗号文判定部４２０が復号可能であると判定した場合、情報取得部４１０が取得した暗号文をユーザ秘密鍵ｓｋΓで復号する。結果出力部４４０は、暗号文判定部４２０が復号可能であると判定した場合、復号部４３０が復号した結果を出力し、暗号文判定部４２０が復号可能でないと判定した場合、復号失敗を表す記号⊥を出力する。
【００４６】
＊＊＊動作の説明＊＊＊
図１１は、実施の形態１に係るＳｅｔｕｐアルゴリズムのフローチャートである。
Ｓｅｔｕｐアルゴリズムは、鍵生成装置１００により実行される。
【００４７】
（Ｓ１０１：情報取得処理）
情報取得部１１０は、暗号システム１０の管理者等によって入力装置により入力された、属性のフォーマットｎ→：＝（ｄ；ｎ１，．．．，ｎｄ）とセキュリティパラメータλとを取得する。
【００４８】
（Ｓ１０２：基底生成処理）
マスター鍵生成部１２０は、Ｓ１０１で取得された属性のフォーマットｎ→とセキュリティパラメータλとを入力として、数１１３を計算して、双対ペアリングベクトル空間のパラメータｐａｒａｍｎと、ｔ＝０，．．．，ｄの各整数ｔについての基底Ｂｔ及び基底Ｂ＊ｔと、値ｇＴとを生成する。
【数１１３】
2016088250.tif 000015
なお、数１１３において、Ｇｂｐｇは、双線形ペアリング群を生成する関数であり、Ｇｄｐｖｓは、双対ペアリングベクトル空間を生成する関数である。
【００４９】
（Ｓ１０３：公開鍵生成処理）
マスター鍵生成部１２０は、Ｓ１０２で生成された基底Ｂ０の部分基底Ｂ＾０と、ｔ＝１，．．．，ｄの各整数ｔについて、部分基底Ｂ＾ｔとを数１１４に示すように生成する。
【数１１４】
2016088250.tif 000016
マスター鍵生成部１２０は、部分基底Ｂ＾０及び部分基底Ｂ＾ｔと、Ｓ１０１で入力されたセキュリティパラメータλと、Ｓ１０１で生成したｐａｒａｍｎとを合わせて、公開鍵ｐｋとする。
【００５０】
（Ｓ１０４：マスター秘密鍵生成処理）
マスター鍵生成部１２０は、Ｓ１０２で生成された基底Ｂ＊０の部分基底Ｂ＾＊０と、ｔ＝１，．．．，ｄの各整数ｔについて、部分基底Ｂ＾＊ｔとを数１１５に示すように生成する。
【数１１５】
2016088250.tif 000017
マスター鍵生成部１２０は、部分基底Ｂ＾＊０及び部分基底Ｂ＾＊ｔをマスター秘密鍵ｍｓｋとする。
【００５１】
（Ｓ１０５：鍵出力処理）
鍵出力部１４０は、Ｓ１０３で生成された公開鍵ｐｋを公開用のサーバ等へ出力して、公開鍵ｐｋを公開する。
【００５２】
図１２は、実施の形態１に係るＫＧアルゴリズムのフローチャートである。
ＫＧアルゴリズムは、鍵生成装置１００により実行される。
【００５３】
（Ｓ２０１：情報取得処理）
情報取得部１１０は、暗号システム１０の管理者等によって入力装置により入力された、ユーザの属性集合Γを取得する。
属性集合Γは、識別子ｔとベクトルｘ→ｔとの組（ｔ，ｘ→ｔ）である。識別子ｔは、属性カテゴリに対応しており、ベクトルｘ→ｔには、識別子ｔに対応した属性カテゴリの属性が設定される。
【００５４】
（Ｓ２０２：乱数生成処理）
ユーザ秘密鍵生成部１３０は、数１１６に示すように、乱数を生成する。
【数１１６】
2016088250.tif 000018
【００５５】
（Ｓ２０３：鍵要素生成処理）
ユーザ秘密鍵生成部１３０は、Ｓ２０１で取得された属性集合Γと、Ｓ２０２で生成された乱数とに基づき、数１１７に示すように、鍵要素ｋ＊０と、属性集合Γに含まれる識別子ｔ毎に鍵要素ｋ＊ｔとを生成する。
【数１１７】
2016088250.tif 000019
数１１７に示すように、識別子ｔ毎の鍵要素ｋ＊ｔには、識別子ｔに対応した属性カテゴリの属性を示すベクトルｘ→が設定されている。
【００５６】
（Ｓ２０４：鍵出力処理）
鍵出力部１４０は、Ｓ２０１で取得された属性集合Γと、Ｓ２０３で生成された鍵要素ｋ＊０及び属性集合Γに含まれる識別子ｔ毎の鍵要素ｋ＊ｔとを含むユーザ秘密鍵ｓｋΓを、ユーザ秘密鍵ｓｋΓのユーザが使用する復号装置４００へ秘密裡に出力する。
【００５７】
図１３は、実施の形態１に係るＥｎｃアルゴリズムのフローチャートである。
Ｅｎｃアルゴリズムは、暗号化装置２００により実行される。
【００５８】
（Ｓ３０１：情報取得処理）
情報取得部２１０は、鍵生成装置１００が生成した公開鍵ｐｋと、暗号化装置２００のユーザによって入力装置により入力されたアクセス構造Ｓ：＝（Ｍ，ρ）及びメッセージｍとを取得する。
アクセス構造Ｓは、秘密分散行列Ｍとラベルρとによってオリジナル暗号文ｃｔＳの復号条件が設定されている。
【００５９】
（Ｓ３０２：分散値生成処理）
暗号文生成部２２０は、数１１８に示すように、秘密値ｓ０と、分散値ｓ→Ｔとを生成する。
【数１１８】
2016088250.tif 000020
【００６０】
（Ｓ３０３：乱数生成処理）
暗号文生成部２２０は、数１１９に示すように、乱数を生成する。
【数１１９】
2016088250.tif 000021
【００６１】
（Ｓ３０４：暗号要素生成処理）
暗号文生成部２２０は、数１２０に示すように、ｉ＝０，．．．，Ｌ，ｄ＋１の各整数ｉについての暗号要素ｃｉを生成する。
【数１２０】
2016088250.tif 000022
数１２０に示すように、暗号要素ｃ０には、秘密値ｓ０が設定されている。また、ｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉには、分散値ｓｉと、ベクトルｖ→ｉとが設定されている。なお、暗号要素ｃｉは、ラベルρ（ｉ）が肯定系の（ｔ，ｖ→ｉ）に対応付けられているか、否定形の¬（ｔ，ｖ→ｉ）に対応付けられているかによって、値の設定のされ方が異なる。また、暗号要素ｃｄ＋１は、メッセージｍがセッション鍵Ｋにより暗号化されている。
【００６２】
（Ｓ３０５：暗号文出力処理）
暗号文出力部２３０は、Ｓ３０１で取得されたアクセス構造Ｓと、Ｓ３０４で生成されたｉ＝０，．．．，Ｌ，ｄ＋１の各整数ｉについての暗号要素ｃｉとを含むオリジナル暗号文ｃｔＳを復号条件追加装置３００へ出力する。
【００６３】
図１４は、実施の形態１に係るＡｐｄＡＮＤアルゴリズムのフローチャートである。
ＡｐｄＡＮＤアルゴリズムは、復号条件追加装置３００により実行される。
【００６４】
（Ｓ４０１：公開鍵取得処理）
公開鍵取得部３１１は、鍵生成装置１００が生成した公開鍵ｐｋを取得する。
【００６５】
（Ｓ４０２：オリジナル暗号文取得処理）
オリジナル暗号文取得部３１２は、暗号化装置２００が生成したオリジナル暗号文ｃｔＳを取得する。上述した通り、オリジナル暗号文ｃｔＳは、復号条件を規定した情報として、秘密分散行列Ｍとラベルρとを含むアクセス構造Ｓが設定されている。また、オリジナル暗号文ｃｔＳは、復号条件を規定した情報として、秘密分散行列Ｍとラベルρとを含むアクセス構造Ｓに加え、属性を示す暗号要素ｃｉが秘密分散行列Ｍの行毎に設定されている。
取得されたオリジナル暗号文ｃｔＳは、暗号文記憶部３３０に記憶される。
【００６６】
（Ｓ４０３：条件取得処理）
条件取得部３１３は、オリジナル暗号文取得部３１２が取得したオリジナル暗号文ｃｔＳの復号条件を制限する制限条件である追加アクセス構造Ｓ＋を取得する。
追加アクセス構造Ｓ＋は、アクセス構造Ｓに含まれる秘密分散行列Ｍに追加する行及び列の要素にだけ値が設定された追加行列Ｍ＋と、追加する行に付されたラベルρ（Ｌ＋ｉ）とを含む。
【００６７】
図１５は、追加アクセス構造Ｓ＋の説明図である。
図１５では、Ｌ＋１行目からＬ＋ｐ行目及びｒ＋１列目からｒ＋ｐ列目が追加される場合を示している。
追加行列Ｍ＋は、ｉ＝１，．．．，ｐまでの各整数ｉについて、Ｌ＋ｉ行目ｒ＋ｉ列目の要素が１であり、他の要素が０である。
また、ｉ＝１，．．．，ｐまでの各整数ｉについて、行Ｌ＋ｉにはラベルρ（Ｌ＋ｉ）が付されている。ラベルρ（Ｌ＋ｉ）は、（（ｔ，ｖ→Ｌ＋ｉ），（ｔ’，ｖ→Ｌ＋ｉ），．．．，¬（ｔ，ｖ→Ｌ＋ｉ），¬（ｔ’，ｖ→Ｌ＋ｉ），．．．）のいずれかのリテラルに対応付けられている。つまり、各ラベルρ（Ｌ＋ｉ）は、属性カテゴリを示す識別子ｔと、その識別子ｔが示す属性カテゴリにおける属性を表すベクトルｖ→Ｌ＋ｉとの組に対応付けられている。
【００６８】
なお、ここでは、更新暗号文生成部３２０は、制限条件１つに対して行及び列を１つ追加し、追加した行の要素のうち、追加した列の要素以外の要素は０とし、追加した列の要素のうち、追加した行の要素以外の要素は０とする場合を説明する。特に、図１５に示すように、更新暗号文生成部３２０は、正の整数Ｌ，ｒ，ｐについて、Ｌ＋１行目からＬ＋ｐ行目までの行と、ｒ＋１列目からｒ＋ｐ列目までの列とを追加した場合、追加した行及び列の要素のうち、ｉ＝１，．．．，ｐの各整数ｉについて、Ｌ＋ｉ行ｒ＋ｉ列の要素を１とし、他の要素を０とする場合を説明する。
しかし、追加される行数と追加される列数とは、アクセス構造の設計に応じて設定されるものであり、制限条件１つに対して１つにしなくてもよい。同様に、追加される行及び列の要素に割り当てられる値は、アクセス構造の設計に応じて設定されるものであり、アクセス構造の設計に応じて任意に決定されればよい。
【００６９】
また、追加アクセス構造Ｓ＋における追加行列Ｍ＋には、追加する行及び列の数ｐだけが設定されており、追加する行及び列の要素の値は設定されていなくてもよい。これは、ｉ＝１，．．．，ｐの各整数ｉについて、Ｌ＋ｉ行ｒ＋ｉ列の要素を１とし、他の要素を０とするため、追加する行及び列の数ｐがわかれば足りるためである。
【００７０】
（Ｓ４０４：アクセス構造更新処理）
アクセス構造更新部３２１は、Ｓ４０２で取得されたオリジナル暗号文ｃｔＳに含まれるアクセス構造Ｓの秘密分散行列Ｍに、Ｓ４０３で取得された追加アクセス構造Ｓ＋の追加行列Ｍ＋が示す、ｉ＝１，．．．，ｐまでの各整数ｉについてのＬ＋ｉ行及びｒ＋ｉ列を追加して、秘密分散行列Ｍ’を生成する。また、アクセス構造更新部３２１は、秘密分散行列Ｍ’の追加されたｉ＝１，．．．，ｐまでの各整数ｉについてのＬ＋ｉ行に、追加アクセス構造Ｓ＋のラベルρ（Ｌ＋ｉ）を付す。
これにより、アクセス構造更新部３２１は、アクセス構造Ｓ：＝（Ｍ，ρ）を、アクセス構造Ｓ’：＝（Ｍ’，ρ’）に更新する。
【００７１】
（Ｓ４０５：分散値生成処理）
分散値生成部３２２は、数１２１に示すように、ｉ＝Ｌ＋１，．．．，Ｌ＋ｐまでの各整数ｉについて、分散値ｓｉを生成する。
【数１２１】
2016088250.tif 000023
【００７２】
（Ｓ４０６：追加暗号要素生成処理）
追加暗号要素生成部３２３は、Ｓ４０１で取得された公開鍵ｐｋと、Ｓ４０５で生成された分散値ｓＬ＋ｉとに基づき、数１２２に示すように、ｉ＝Ｌ＋１，．．．，Ｌ＋ｐの各整数ｉについての追加暗号要素ｃｉを生成する。
【数１２２】
2016088250.tif 000024
【００７３】
（Ｓ４０７：暗号要素更新処理）
暗号要素更新部３２４は、Ｓ４０１で取得された公開鍵ｐｋと、Ｓ４０３で取得された追加アクセス構造Ｓ＋の分散値ｓＬ＋ｉとに基づき、数１２３に示すように、Ｓ４０２で取得されたオリジナル暗号文ｃｔＳに含まれる暗号要素ｃ０を更新する。
【数１２３】
2016088250.tif 000025
数１２３に示すように、暗号要素ｃ０を更新することにより、追加された分散値ｓＬ＋ｉで秘密値ｓ０を更新している。
なお、ここでは、秘密値ｓ０にｉ＝１，．．．，ｐの各整数ｉについての分散値ｓＬ＋ｉを加算した。しかし、秘密値ｓ０の更新方法は、秘密分散行列Ｍ’の構成による。ここでは、追加行列Ｍ＋において、ｉ＝１，．．．，ｐまでの各整数ｉについて、Ｌ＋ｉ行目ｒ＋ｉ列目の要素が１であり、他の要素が０としたため、秘密値ｓ０にｉ＝１，．．．，ｐの各整数ｉについての分散値ｓＬ＋ｉを加算することで整合性をとっている。
【００７４】
（Ｓ４０８：暗号文更新処理）
暗号文記憶部３３０は、Ｓ４０４で更新されたアクセス構造Ｓ’と、Ｓ４０２で取得されたオリジナル暗号文ｃｔＳに含まれるｉ＝１，．．．，Ｌの各整数ｉについての暗号要素ｃｉと、Ｓ４０６で生成されたｉ＝１，．．．，ｐの各整数ｉについての追加暗号要素ｃＬ＋ｉと、Ｓ４０７で更新された暗号要素ｃ０とを含む更新暗号文ｃｔＳ’を、オリジナル暗号文ｃｔＳに上書きして記憶する。
【００７５】
暗号文出力部３４０は、復号装置４００から要求があった場合に、暗号文記憶部３３０が記憶したオリジナル暗号文ｃｔＳ又は更新暗号文ｃｔＳ’を、復号装置４００へ出力する。
【００７６】
なお、Ｓ４０４からＳ４０８の処理を総称して、更新暗号文生成処理と呼ぶ。
更新暗号文生成処理では、更新暗号文生成部３２０が、オリジナル暗号文取得処理で取得したオリジナル暗号文ｃｔＳに設定された秘密分散行列Ｍに、条件取得処理で取得した制限条件に対応する行及び列を追加する。そして、更新暗号文生成部３２０が、追加した行毎に、属性カテゴリに対応する暗号要素ｃｉであって、その属性カテゴリにおける属性を設定した暗号要素ｃｉを追加で設定して、オリジナル暗号文ｃｔＳの復号条件を制限した更新暗号文ｃｔＳ’を生成する。
【００７７】
図１６は、実施の形態１に係るＤｅｃアルゴリズムのフローチャートである。
Ｄｅｃアルゴリズムは、復号装置４００により実行される。
【００７８】
（Ｓ５０１：情報取得処理）
情報取得部４１０は、鍵生成装置１００が生成した公開鍵ｐｋ及びユーザ秘密鍵ｓｋΓを取得する。
また、情報取得部４１０は、復号条件追加装置３００に要求を出力して、復号条件追加装置３００から暗号文ｃｔＳ＾を取得する。暗号文ｃｔＳ＾は、オリジナル暗号文ｃｔＳ又は更新暗号文ｃｔＳ’である。ここでは、暗号文ｃｔＳ＾は、アクセス構造Ｓ＾と、ｉ＝１，．．．，Ｌ’，ｄ＋１の各整数ｉについての暗号要素ｃｉとを含むものとする。
【００７９】
（Ｓ５０２：暗号文判定処理）
暗号文判定部４２０は、Ｓ５０１で取得された暗号文ｃｔＳ＾に含まれるアクセス構造Ｓ＾が、Ｓ５０１で取得されたユーザ秘密鍵ｓｋΓに含まれる属性集合Γを受理するか否かを判定する。
暗号文判定部４２０は、受理すると判定した場合、処理をＳ５０３へ進め、受理しないと判定した場合、処理をＳ５０６へ進める。
【００８０】
（Ｓ５０３：補間係数計算処理）
復号部４３０は、数１２４になる行番号の集合Ｉと、補完係数｛αｉ｝ｉ∈Ｉとを計算する。
【数１２４】
2016088250.tif 000026
【００８１】
（Ｓ５０４：セッション鍵計算処理）
復号部４３０は、Ｓ５０１で取得された暗号文ｃｔＳ＾及びユーザ秘密鍵ｓｋΓと、Ｓ５０３で計算された集合Ｉ及び補完係数｛αｉ｝ｉ∈Ｉとに基づき、数１２５を計算して、セッション鍵Ｋを計算する。
【数１２５】
2016088250.tif 000027
【００８２】
（Ｓ５０５：メッセージ計算処理）
復号部４３０は、Ｓ５０４で計算されたセッション鍵Ｋにより、暗号文ｃｔＳ＾に含まれる暗号要素ｃｄ＋１を除して、メッセージｍを計算する。
【００８３】
（Ｓ５０６：結果出力処理）
結果出力部４４０は、Ｓ５０２で受理すると判定された場合、Ｓ５０５で計算されたメッセージｍを出力し、Ｓ５０２で受理しないと判定された場合、復号失敗を示す記号⊥を出力する。
【００８４】
＊＊＊効果の説明＊＊＊
以上のように、実施の形態１に係る暗号システム１０では、オリジナル暗号文ｃｔＳに含まれるアクセス構造Ｓに情報を追加するとともに、暗号要素ｃｉを追加することにより、復号条件を制限することができる。
アクセス構造Ｓに情報を追加すること、及び、暗号要素ｃｉを追加することは、暗号文ｃｔＳと公開鍵ｐｋとがあれば実行可能であり、再暗号化鍵のような特別な鍵は不要である。そのため、オリジナル暗号文ｃｔＳの復号条件を制限する場合に、再暗号化鍵を用いる必要がない。
【００８５】
特定のユーザ秘密鍵を失効させる場合等には、迅速に復号条件を制限することが必要である。実施の形態１に係る暗号システム１０では、再暗号化鍵を生成することなく、復号条件を制限することが可能であるため、迅速に復号条件を制限することが可能である。
【００８６】
なお、上記説明では、ＡｐｄＡＮＤアルゴリズムにおいて、オリジナル暗号文ｃｔＳの復号条件を制限することを説明した。しかし、ＡｐｄＡＮＤアルゴリズムでは、更新暗号文ｃｔＳ’の復号条件をさらに制限することも可能である。この場合、Ｓ４０２でオリジナル暗号文ｃｔＳに代えて、更新暗号文ｃｔＳ’を取得すればよい。
【００８７】
また、上記説明では、暗号文ポリシー型の関数型暗号に対して、暗号文の復号条件を制限する技術を適用した例について説明した。暗号文ポリシー型の属性ベース暗号でも、秘密分散行列を用いている。そのため、暗号文ポリシー型の属性ベース暗号に対しても、上述した、秘密分散行列に行及び列を追加して、暗号文の復号条件を制限するという技術を適用することができる。
【００８８】
図１７は、実施の形態１に示した鍵生成装置１００と、暗号化装置２００と、復号条件追加装置３００と、復号装置４００との各装置のハードウェア構成の例を示す図である。
各装置は、コンピュータである。各装置の各要素をプログラムで実現し、データ表示プログラムを構成することができる。
各装置のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００８９】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置等である。主記憶装置９０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。通信装置９０４は、例えば通信ボード等である。入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００９０】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、上記プログラムを実行する。
また、実施の形態１の説明において、「〜部」が取得する、生成する、出力する等と説明した情報等が主記憶装置９０３にファイルとして記憶されている。
【符号の説明】
【００９１】
１０  暗号システム、１００  鍵生成装置、１１０  情報取得部、１２０  マスター鍵生成部、１３０  ユーザ秘密鍵生成部、１４０  鍵出力部、２００  暗号化装置、２１０  情報取得部、２２０  暗号文生成部、２３０  暗号文出力部、３００  復号条件追加装置、３１０  情報取得部、３１１  公開鍵取得部、３１２  オリジナル暗号文取得部、３１３  条件取得部、３２０  更新暗号文生成部、３２１  アクセス構造更新部、３２２  分散値生成部、３２３  追加暗号要素生成部、３２４  暗号要素更新部、３３０  暗号文記憶部、３４０  暗号文出力部、４００  復号装置、４１０  情報取得部、４２０  暗号文判定部、４３０  復号部、４４０  結果出力部、Ａ  標準基底、Ｂ，Ｂ＊  基底、Ｂ＾，Ｂ＊＾  部分基底、ｍｓｋ  マスター秘密鍵、ｐｋ  公開鍵、Γ  属性集合、Ｍ  秘密分散行列、ρ  ラベル、Ｓ，Ｓ’  アクセス構造、Ｓ＋  追加アクセス構造、ｍ  メッセージ、ｓｋΓ  ユーザ秘密鍵、ｃｔＳ  オリジナル暗号文、ｃｔＳ’  更新暗号文、ｔ  識別子、ｋ＊ｔ  鍵要素、ｃｉ  暗号要素、ｓ  分散値。
【図１】
2016088250.tif 000028
【図２】
2016088250.tif 000029
【図３】
2016088250.tif 000030
【図４】
2016088250.tif 000031
【図５】
2016088250.tif 000032
【図６】
2016088250.tif 000033
【図７】
2016088250.tif 000034
【図８】
2016088250.tif 000035
【図９】
2016088250.tif 000036
【図１０】
2016088250.tif 000037
【図１１】
2016088250.tif 000038
【図１２】
2016088250.tif 000039
【図１３】
2016088250.tif 000040
【図１４】
2016088250.tif 000041
【図１５】
2016088250.tif 000042
【図１６】
2016088250.tif 000043
【図１７】
2016088250.tif 000044
【手続補正書】
【提出日】平成28年11月28日(2016.11.28)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
復号条件を規定した情報として秘密分散行列が設定されたオリジナル暗号文を取得するオリジナル暗号文取得部と、
前記オリジナル暗号文取得部が取得したオリジナル暗号文の復号条件を制限する制限条件を取得する条件取得部と、
前記オリジナル暗号文に設定された秘密分散行列に、前記条件取得部が取得した制限条件に対応する行及び列を追加して、前記オリジナル暗号文の復号条件を制限した更新暗号文を生成する更新暗号文生成部と
を備える復号条件追加装置。
【請求項２】
前記更新暗号文生成部は、追加した行の要素のうち、追加した列の要素以外の要素は０とし、追加した列の要素のうち、追加した行の要素以外の要素は０とする
請求項１に記載の復号条件追加装置。
【請求項３】
前記更新暗号文生成部は、制限条件１つに対して行及び列を１つ追加する
請求項２に記載の復号条件追加装置。
【請求項４】
前記更新暗号文生成部は、正の整数Ｌ，ｒ，ｐについて、Ｌ行ｒ列の前記秘密分散行列に、Ｌ＋１行目からＬ＋ｐ行目までの行と、ｒ＋１列目からｒ＋ｐ列目までの列とを追加した場合、追加した行及び列の要素のうち、ｉ＝１，．．．，ｐの各整数ｉについて、Ｌ＋ｉ行ｒ＋ｉ列の要素を１とし、他の要素を０とする
請求項３に記載の復号条件追加装置。
【請求項５】
前記オリジナル暗号文は、復号条件を規定した情報として、前記秘密分散行列に加えて、属性を示す暗号要素が前記秘密分散行列の行毎に設定されており、
前記条件取得部は、前記制限条件として、属性カテゴリと、その属性カテゴリにおける属性を取得し、
前記更新暗号文生成部は、前記オリジナル暗号文に、前記条件取得部が取得した属性カテゴリに対応する暗号要素であって、その属性カテゴリにおける属性を設定した暗号要素を追加で設定して、前記更新暗号文を生成する
請求項１から４までのいずれか１項に記載の復号条件追加装置。
【請求項６】
復号条件を規定した情報として秘密分散行列が設定されたオリジナル暗号文を生成する暗号化装置と、
前記暗号化装置が生成したオリジナル暗号文の復号条件を制限する制限条件を取得し、前記オリジナル暗号文に設定された秘密分散行列に、前記制限条件に対応する行及び列を追加して、前記オリジナル暗号文の復号条件を制限した更新暗号文を生成する復号条件追加装置と、
前記復号条件追加装置が生成した更新暗号文を復号する復号装置と
を備える暗号システム。
【国際調査報告】
2016088250.tif 000045
2016088250.tif 000046
2016088250.tif 000047
2016088250.tif 000048