(57)【特許請求の範囲】
【請求項１】
少なくとも受信装置、代理計算装置を有する暗号化システムであって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ３は分割用乱数Ｋ３’を用いて所定の方法２で求められた代理計算用秘密鍵、ｒは０以上ｐ−１以下の整数から選択された乱数、ＵはＵ＝ｒＰのように求められた乱数情報、ｇＩＤはｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）のように求められた値、ＶはＨ（ｇＩＤｒ）を用いて所定の方法３で平文Ｍを暗号化した暗号化情報であり、
前記受信装置は、
受信用秘密鍵Ｋ１を記録する復号記録部と、
受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４でリクエストＲｅｑを作成するリクエスト作成部と、
前記代理計算装置から受信したレスポンスＲｅｓを用いて前記所定の方法２と前記所定の方法４に対応した方法である所定の方法５にしたがってｇＩＤｒの値Ｗを求め、Ｈ（Ｗ）を用いて前記所定の方法３に対応した方法である所定の方法６にしたがって暗号化情報Ｖを復号して平文Ｍ’に復号する復号部と、
を備え、
前記代理計算装置は、
代理計算用秘密鍵Ｋ３を記録する代理記録部と、
リクエストＲｅｑに対して、前記所定の方法１と前記所定の方法２と前記所定の方法４に対応した方法である所定の方法７にしたがって代理計算用秘密鍵Ｋ３を用いた計算を行ってレスポンスＲｅｓを求めるレスポンス作成部と
を備える
暗号化システム。
【請求項２】
請求項１記載の暗号化システムであって、
前記所定の方法２では、
保護用秘密鍵Ｋ２を０以上ｐ−１以下の整数から選択し、分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’にしたがって代理計算用秘密鍵Ｋ３を求め、
前記復号記録部は保護用秘密鍵Ｋ２も記録し、
前記所定の方法５は、前記所定の方法２’にも対応した方法で、保護用秘密鍵Ｋ２も用いて値Ｗを求める
ことを特徴とする暗号化システム。
【請求項３】
請求項１記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、リクエストＲｅｑを
Ｒｅｑ＝ｅ（Ｋ１，Ｕ）
のように求め、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項４】
請求項１記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、リクエストＲｅｑを受信用秘密鍵Ｋ１と乱数情報Ｕを含む情報とし、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項５】
請求項１記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、前記リクエスト作成部が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し、リクエストＲｅｑを
Ｒｅｑ＝ｅ（ｒｔｍｐＫ１，Ｕ）
のように求め、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾ｒｔｍｐ−１
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項６】
請求項１記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、前記リクエスト作成部が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し、隠蔽鍵Ｋｔｍｐを
Ｋｔｍｐ＝ｒｔｍｐＫ１
を求め、リクエストＲｅｑを隠蔽鍵Ｋｔｍｐと乱数情報Ｕを含む情報とし、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾ｒｔｍｐ−１
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項７】
請求項２記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、リクエストＲｅｑを
Ｒｅｑ＝ｅ（Ｋ１，Ｕ）
のように求め、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾Ｋ２
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項８】
請求項２記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、リクエストＲｅｑを受信用秘密鍵Ｋ１と乱数情報Ｕを含む情報とし、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾Ｋ２
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項９】
請求項２記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、前記リクエスト作成部が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し、リクエストＲｅｑを
Ｒｅｑ＝ｅ（ｒｔｍｐＫ１，Ｕ）
のように求め、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾ｒｔｍｐ−１Ｋ２
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項１０】
請求項２記載の暗号化システムであって、
（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とし、
前記所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求め、
前記所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求め、
前記所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求め、
前記所定の方法４では、前記リクエスト作成部が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し、隠蔽鍵Ｋｔｍｐを
Ｋｔｍｐ＝ｒｔｍｐＫ１
を求め、リクエストＲｅｑを隠蔽鍵Ｋｔｍｐと乱数情報Ｕを含む情報とし、
前記所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾ｒｔｍｐ−１Ｋ２
のように求め、
前記所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求め、
前記所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項１１】
少なくとも受信装置、代理計算装置、鍵生成装置を有する暗号化システムであって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、ｓは０以上ｐ−１以下の整数、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ３は分割用乱数Ｋ３’を用いて所定の方法２で求められた代理計算用秘密鍵であり、
前記鍵生成装置は、
前記受信装置からの鍵の再発行の要求を受信すると、
新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて前記所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める鍵分割部と、
新しい分割用乱数Ｋ３ｎｅｗ’を用いて前記所定の方法２で新しい代理計算用秘密鍵Ｋ３ｎｅｗを求め、新しい受信用秘密鍵Ｋ１ｎｅｗを前記受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを前記代理計算装置に送信する鍵配布部と、
を備え、
前記受信装置は、
あらかじめ記録していた受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する復号記録部を備え、
前記代理計算装置は、
あらかじめ記録していた代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する代理記録部を備える
暗号化システム。
【請求項１２】
少なくとも受信装置、代理計算装置、鍵生成装置を有する暗号化システムであって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、ｓは０以上ｐ−１以下の整数、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ２は０以上ｐ−１以下の整数から選択された保護用秘密鍵、Ｋ３は分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’で求められた代理計算用秘密鍵であり、
前記鍵生成装置は、
前記受信装置から、保護用秘密鍵Ｋ２と鍵の再発行の要求を受信すると、
新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて前記所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める鍵分割部と、
新しい分割用乱数Ｋ３ｎｅｗ’と受信した保護用秘密鍵Ｋ２を用いて前記所定の方法２’にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求め、新しい受信用秘密鍵Ｋ１ｎｅｗを前記受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを前記代理計算装置に送信する鍵配布部と、
を備え、
前記受信装置は、
あらかじめ記録していた受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する復号記録部を備え、
前記代理計算装置は、
あらかじめ記録していた代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する代理記録部を備える
暗号化システム。
【請求項１３】
少なくとも受信装置、代理計算装置を有する暗号化システムであって、
ｐは素数、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ２は０以上ｐ−１以下の整数から選択された保護用秘密鍵、Ｋ３は分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’で求められた代理計算用秘密鍵であり、
前記受信装置は、
新しい保護用秘密鍵Ｋ２ｎｅｗを０以上ｐ−１以下の整数から選択し、前記所定の方法２’に対応した所定の方法８にしたがって記録している保護用秘密鍵Ｋ２と前記新しい保護用秘密鍵Ｋ２ｎｅｗとの違いに応じた値であるアップデータＵｐｄを求め、前記アップデータＵｐｄを前記代理計算装置に送る保護用秘密鍵更新部と、
あらかじめ記録していた保護用秘密鍵Ｋ２を新しい保護用秘密鍵Ｋ２ｎｅｗに更新する復号記録部と、
を備え、
前記代理計算装置は、
記録している代理計算用秘密鍵Ｋ３と前記アップデータＵｐｄを用いて、所定の方法８に対応した所定の方法９にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める代理計算用秘密鍵更新部と、
あらかじめ記録していた代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する代理記録部と、
を備える
暗号化システム。
【請求項１４】
請求項１３記載の暗号化システムであって、
前記所定の方法８では、アップデータＵｐｄを
Ｕｐｄ＝Ｋ２ｎｅｗ−１Ｋ２
のように求め、
前記所定の方法９では、新しい代理計算用秘密鍵Ｋ３ｎｅｗを
Ｋ３ｎｅｗ＝Ｕｐｄ・Ｋ３
のように求める
ことを特徴とする暗号化システム。
【請求項１５】
受信装置、代理計算装置を用いた復号方法であって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ３は分割用乱数Ｋ３’を用いて所定の方法２で求められた代理計算用秘密鍵、ｒは０以上ｐ−１以下の整数から選択された乱数、ＵはＵ＝ｒＰのように求められた乱数情報、ｇＩＤはｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）のように求められた値、ＶはＨ（ｇＩＤｒ）を用いて所定の方法３で平文Ｍを暗号化した暗号化情報であり、
前記受信装置が、受信用秘密鍵Ｋ１を記録する復号記録ステップと、
前記代理計算装置が、代理計算用秘密鍵Ｋ３を記録する代理記録ステップと、
前記受信装置が、受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４でリクエストＲｅｑを作成するリクエスト作成ステップと、
前記代理計算装置が、リクエストＲｅｑに対して、前記所定の方法１と前記所定の方法２と前記所定の方法４に対応した方法である所定の方法７にしたがって代理計算用秘密鍵Ｋ３を用いた計算を行ってレスポンスＲｅｓを求めるレスポンス作成ステップと、
前記受信装置が、前記代理計算装置から受信したレスポンスＲｅｓを用いて前記所定の方法２と前記所定の方法４に対応した方法である所定の方法５にしたがってｇＩＤｒの値Ｗを求め、Ｈ（Ｗ）を用いて前記所定の方法３に対応した方法である所定の方法６にしたがって暗号化情報Ｖを復号して平文Ｍ’に復号する復号ステップと、
を有する復号方法。
【請求項１６】
受信装置、代理計算装置、鍵生成装置を用いた鍵更新方法であって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、ｓは０以上ｐ−１以下の整数、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ３は分割用乱数Ｋ３’を用いて所定の方法２で求められた代理計算用秘密鍵であり、
前記鍵生成装置が、前記受信装置からの鍵の再発行の要求を受信すると、新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて前記所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める鍵分割ステップと、
前記鍵生成装置が、新しい分割用乱数Ｋ３ｎｅｗ’を用いて前記所定の方法２で新しい代理計算用秘密鍵Ｋ３ｎｅｗを求め、新しい受信用秘密鍵Ｋ１ｎｅｗを前記受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを前記代理計算装置に送信する鍵配布ステップと、
前記受信装置が、あらかじめ記録していた受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する復号記録ステップと、
前記代理計算装置が、あらかじめ記録していた代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する代理記録ステップと、
を有する鍵更新方法。
【請求項１７】
受信装置、代理計算装置、鍵生成装置を用いた鍵更新方法であって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、ｓは０以上ｐ−１以下の整数、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ２は０以上ｐ−１以下の整数から選択された保護用秘密鍵、Ｋ３は分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’で求められた代理計算用秘密鍵であり、
前記鍵生成装置が、前記受信装置から、保護用秘密鍵Ｋ２と鍵の再発行の要求を受信すると、新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて前記所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める鍵分割ステップと、
前記鍵生成装置が、新しい分割用乱数Ｋ３ｎｅｗ’と受信した保護用秘密鍵Ｋ２を用いて前記所定の方法２’にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求め、新しい受信用秘密鍵Ｋ１ｎｅｗを前記受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを前記代理計算装置に送信する鍵配布ステップと、
前記受信装置が、あらかじめ記録していた受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する復号記録ステップと、
前記代理計算装置が、あらかじめ記録していた代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する代理記録ステップと
を有する鍵更新方法。
【請求項１８】
受信装置、代理計算装置を用いた鍵更新方法であって、
ｐは素数、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ２は０以上ｐ−１以下の整数から選択された保護用秘密鍵、Ｋ３は分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’で求められた代理計算用秘密鍵であり、
前記受信装置が、新しい保護用秘密鍵Ｋ２ｎｅｗを０以上ｐ−１以下の整数から選択し、前記所定の方法２’に対応した所定の方法８にしたがって記録している保護用秘密鍵Ｋ２と前記新しい保護用秘密鍵Ｋ２ｎｅｗとの違いに応じた値であるアップデータＵｐｄを求め、前記アップデータＵｐｄを前記代理計算装置に送る保護用秘密鍵更新ステップと、
前記受信装置が、あらかじめ記録していた保護用秘密鍵Ｋ２を新しい保護用秘密鍵Ｋ２ｎｅｗに更新する復号記録ステップと、
前記代理計算装置が、記録している代理計算用秘密鍵Ｋ３と前記アップデータＵｐｄを用いて、所定の方法８に対応した所定の方法９にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める代理計算用秘密鍵更新ステップと、
前記代理計算装置が、あらかじめ記録していた代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する代理記録ステップと、
を有する鍵更新方法。
【請求項１９】
受信装置、代理計算装置とともに暗号化システムを構成するための鍵生成装置であって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）であり、
０以上ｐ−１以下の整数ｓを生成し、秘密鍵Ｋ０を
Ｋ０＝ｓＱＩＤ
のように求める鍵生成部と、
分割用乱数Ｋ３’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１にしたがって受信用秘密鍵Ｋ１を求める鍵分割部と、
分割用乱数Ｋ３’を用いて所定の方法２で代理計算用秘密鍵Ｋ３を求め、受信用秘密鍵Ｋ１を前記受信装置に送信し、代理計算用秘密鍵Ｋ３を前記代理計算装置に送信する鍵配布部と、
を備える鍵生成装置。
【請求項２０】
請求項１９記載の鍵生成装置であって、
前記所定の方法２では、
保護用秘密鍵Ｋ２を０以上ｐ−１以下の整数から選択し、分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’にしたがって代理計算用秘密鍵Ｋ３を求め、
前記鍵配布部は、保護用秘密鍵Ｋ２も前記受信装置に送信する
ことを特徴とする鍵生成装置。
【請求項２１】
代理計算装置とともに暗号化システムを構成するための受信装置であって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ３は分割用乱数Ｋ３’を用いて所定の方法２で求められた代理計算用秘密鍵、ｒは０以上ｐ−１以下の整数から選択された乱数、ＵはＵ＝ｒＰのように求められた乱数情報、ｇＩＤはｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）のように求められた値、ＶはＨ（ｇＩＤｒ）を用いて所定の方法３で平文Ｍを暗号化した暗号化情報であり、
受信用秘密鍵Ｋ１を記録する復号記録部と、
受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４でリクエストＲｅｑを作成するリクエスト作成部と、
前記代理計算装置から受信したレスポンスＲｅｓを用いて前記所定の方法２と前記所定の方法４に対応した方法である所定の方法５にしたがってｇＩＤｒの値Ｗを求め、Ｈ（Ｗ）を用いて前記所定の方法３に対応した方法である所定の方法６にしたがって暗号化情報Ｖを復号して平文Ｍ’に復号する復号部と、
を備える受信装置。
【請求項２２】
受信装置とともに暗号化システムを構成するための代理計算装置であって、
ｐは素数、Ｇ１は位数ｐの巡回加算群、Ｐは群Ｇ１の生成元、ｓは０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、Ｋ０はＫ０＝ｓＱＩＤのように求められた秘密鍵、Ｋ３’は０以上ｐ−１以下の整数から選択された分割用乱数、Ｋ１は秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１で求められた受信用秘密鍵、Ｋ３は分割用乱数Ｋ３’を用いて所定の方法２で求められた代理計算用秘密鍵、ｒは０以上ｐ−１以下の整数から選択された乱数、ＵはＵ＝ｒＰのように求められた乱数情報、Ｒｅｑは受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４で作成されたリクエストであり、
代理計算用秘密鍵Ｋ３を記録する代理記録部と、
リクエストＲｅｑに対して、前記所定の方法１と前記所定の方法２と前記所定の方法４に対応した方法である所定の方法７にしたがって代理計算用秘密鍵Ｋ３を用いた計算を行ってレスポンスＲｅｓを求めるレスポンス作成部と
を備える代理計算装置。
【請求項２３】
請求項１から１０のいずれかまたは請求項１３もしくは１４に記載の暗号化システムの受信装置もしくは代理計算装置、または、請求項１１もしくは１２に記載の暗号化システムの受信装置、代理計算装置、鍵生成装置のいずれかとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を安全に配送するための暗号化システム、復号方法、鍵更新方法、鍵生成装置、受信装置、代理計算装置、プログラムに関する。
【背景技術】
【０００２】
受信装置（受信者）の属性を用いた暗号化技術としては、非特許文献１が従来技術として知られている。非特許文献１に記載されているＩＤベース暗号の方式を簡単に説明すると、以下のとおりである。
【０００３】
ｋは整数、ｐはｋビットの素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは鍵生成装置が生成した０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、（＋）はビット単位の排他的論理和を示す記号とする。
【０００４】
送信装置は、乱数ｒを０以上ｐ−１以下の整数からランダムに選択し、
Ｕ＝ｒＰ
のように計算する。また、平文Ｍを用いて
ｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）
を計算し、
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように計算し、暗号文Ｃを
Ｃ＝＜Ｕ，Ｖ＞
のように求める。
【０００５】
受信装置は、ｄＩＤ＝ｓＱＩＤを復号用の鍵としてあらかじめ記録しておく。そして、受信装置は暗号文Ｃを受信すると、
Ｍ’＝Ｖ（＋）Ｈ（ｅ（ｄＩＤ，Ｕ））
のように平文Ｍ’に復号する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】D.Boneh and M.franklin, “Identity-based encryption from the Weil pairing”, CRYPT’01, Volume 2139 of LNCS, p.213-229, Springer, 2001.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式では、秘密鍵と公開鍵の対応が一対一という特徴を持つ。そして、復号鍵を紛失した際や復号鍵が漏洩された際には、紛失した復号鍵もしくは漏洩された復号鍵による復号が出来ないようにするために復号鍵の更新を行う必要がある。しかし、受信者の属性の一部を公開鍵として利用している場合、公開鍵とする受信者属性の一部を変更しない限り復号鍵の更新が出来ない。また、鍵の漏洩・紛失対策を実施するためには公開鍵の変更が必要であるが、送信者にとって公開鍵が既知であった場合、公開鍵の変更を送信者に伝えるのが必ずしも容易ではない。
【０００８】
本発明は、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる暗号化技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の暗号化システムは、送信装置、受信装置、代理計算装置、鍵生成装置で構成される。まず、ｐは素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは鍵生成装置が生成した０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）とする。
【００１０】
鍵生成装置は、少なくとも鍵生成部、鍵分割部、鍵配布部を備える。鍵生成部は、秘密鍵Ｋ０を
Ｋ０＝ｓＱＩＤ
のように求める。
【００１１】
鍵分割部は、分割用乱数Ｋ３’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１にしたがって受信用秘密鍵Ｋ１を求める。なお、分割用乱数Ｋ３’は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部は、分割用乱数Ｋ３’を用いて所定の方法２で代理計算用秘密鍵Ｋ３を求め、受信用秘密鍵Ｋ１を受信装置に送信し、代理計算用秘密鍵Ｋ３を代理計算装置に送信する。
【００１２】
送信装置は、少なくとも暗号化部を備える。暗号化部は、乱数ｒを０以上ｐ−１以下の整数から選択し、乱数情報ＵをＵ＝ｒＰのように計算し、
ｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）
を計算し、Ｈ（ｇＩＤｒ）を用いて所定の方法３で平文Ｍを暗号化して暗号化情報Ｖを求め、乱数情報Ｕと暗号化情報Ｖを含む情報を暗号文Ｃとして出力する。なお、乱数ｒは、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【００１３】
受信装置は、少なくとも復号記録部、リクエスト作成部、復号部を備える。復号記録部は、少なくとも受信用秘密鍵Ｋ１を記録する。リクエスト作成部は、受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４でリクエストＲｅｑを作成する。復号部は、代理計算装置から受信したレスポンスＲｅｓを用いて所定の方法２と所定の方法４に対応した方法である所定の方法５にしたがってｇＩＤｒの値Ｗを求める。そして、Ｈ（Ｗ）を用いて所定の方法３に対応した方法である所定の方法６にしたがって暗号化情報Ｖを復号して平文Ｍ’に復号する。
【００１４】
代理計算装置は、少なくとも代理記録部、レスポンス作成部を備える。代理記録部は、少なくとも代理計算用秘密鍵Ｋ３を記録する。レスポンス作成部は、リクエストＲｅｑに対して、所定の方法１と所定の方法２と所定の方法４に対応した方法である所定の方法７にしたがって代理計算用秘密鍵Ｋ３を用いた計算を行ってレスポンスＲｅｓを求める。
【００１５】
そして、受信装置が、鍵生成装置に鍵の再発行を要求すると以下の処理を行って受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新する。鍵分割部は、新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める。なお、新しい分割用乱数Ｋ３ｎｅｗ’は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部は、新しい分割用乱数Ｋ３ｎｅｗ’を用いて所定の方法２で新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める。そして、新しい受信用秘密鍵Ｋ１ｎｅｗを受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを代理計算装置に送信する。復号記録部は、受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する。代理記録部は、代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する。
【発明の効果】
【００１６】
本発明の暗号化システムによれば、「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」を組み合わせて構成する。したがって、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の暗号化システムの構成例を示す図。
【図２】実施例１の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図３】本発明の暗号文の生成から復号までの処理フローを示す図。
【図４】実施例１の受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新するときの処理フローを示す図。
【図５】実施例２の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図６】実施例２の受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新するときであって、保護用秘密鍵Ｋ２を送信する場合の処理フローを示す図。
【図７】実施例２の受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新するときであって、保護用秘密鍵Ｋ２を求めるための情報Ｐａｓｓを送信する場合の処理フローを示す図。
【図８】実施例２の保護用秘密鍵Ｋ２を更新するときの処理フローを示す図。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例１】
【００１９】
図１に実施例１の暗号化システムの構成例を示す。図２に実施例１の暗号化システムの秘密鍵を配布する処理フローを、図３に暗号文の生成から復号までの処理フローを示す。実施例１の暗号化システムは、送信装置１００、受信装置２００、代理計算装置３００、鍵生成装置４００で構成される。
【００２０】
以下の説明では、ｋは大きな整数、ｐはｋビットの素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは鍵生成装置４００が生成した０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とする。なお、ＸとＹを郡Ｇ１の元とし、ａとｂを整数とすると、
ｅ（ａＸ，ｂＹ）＝ｅ（Ｘ，Ｙ）ａｂ      （１）
の関係が成り立つ。双線形ペアリング関数としては、例えばWeilペアリングを用いればよい。また、ＩＤとして受信装置２００の属性を示すビット列を用いてもよい。
【００２１】
送信装置１００は、暗号化部１１０と暗号化記録部１９０を備える。受信装置２００は、属性送信部２１０、リクエスト作成部２２０、復号部２３０、復号記録部２９０を備える。代理計算装置３００は、レスポンス作成部３１０、代理記録部３９０を備える。鍵生成装置４００は、鍵生成部４１０、鍵分割部４２０、鍵配布部４３０、鍵生成記録部４９０を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。
【００２２】
［秘密鍵を配布する処理フロー、暗号文の生成から復号まで］
受信装置２００の属性送信部２１０は、ビット列ＩＤを鍵生成装置４００に送信する（Ｓ２１１）。なお、ビット列ＩＤは、Ａ社の社員、２０歳以上などの単独の属性情報を示すビット列でもよいし、Ａ社の社員かつ男性、２０歳以上または女性のような属性情報の論理式を示すビット列でもよい。鍵生成装置４００の鍵生成部４１０は、秘密鍵Ｋ０を
Ｋ０＝ｓＱＩＤ
のように求める（Ｓ４１０）。
【００２３】
鍵分割部４２０は、分割用乱数Ｋ３’を０以上ｐ−１以下の整数から選択し（Ｓ４２１）、秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１にしたがって受信用秘密鍵Ｋ１を求める（Ｓ４２２）。なお、分割用乱数Ｋ３’は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部４３０は、分割用乱数Ｋ３’を用いて所定の方法２で代理計算用秘密鍵Ｋ３を求め（Ｓ４３４）、受信用秘密鍵Ｋ１を受信装置２００に送信し、代理計算用秘密鍵Ｋ３を代理計算装置３００に送信する（Ｓ４３５）。受信装置２００の復号記録部２９０は、受信用秘密鍵Ｋ１を記録する（Ｓ２９１）。代理計算装置３００の代理記録部３９０は、代理計算用秘密鍵Ｋ３を記録する（Ｓ３９１）。
【００２４】
属性送信部２１０は、ビット列ＩＤを送信装置１００に送信する（Ｓ２１２）。送信装置１００の暗号化部１１０は、乱数ｒを０以上ｐ−１以下の整数から選択し、乱数情報ＵをＵ＝ｒＰのように計算する。なお、乱数ｒは、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。また、暗号化部１１０は、
ｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）
を計算し、Ｈ（ｇＩＤｒ）を用いて所定の方法３で平文Ｍを暗号化して暗号化情報Ｖを求める。そして、暗号化部１１０は、乱数情報Ｕと暗号化情報Ｖを含む情報を暗号文Ｃとして出力する（Ｓ１１０）。
【００２５】
受信装置２００のリクエスト作成部２２０は、受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４でリクエストＲｅｑを作成する（Ｓ２２２）。なお、リクエスト作成部２２０は、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し（Ｓ２２１）、ステップＳ２２２の所定の方法４で乱数ｒｔｍｐも用いてもよい。このようにすることで、受信用秘密鍵Ｋ１に関する情報を隠蔽できる。なお、乱数ｒｔｍｐは、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【００２６】
代理計算装置３００のレスポンス作成部３１０は、リクエストＲｅｑに対して、所定の方法１と所定の方法２と所定の方法４に対応した方法である所定の方法７にしたがって代理計算用秘密鍵Ｋ３を用いた計算を行ってレスポンスＲｅｓを求める（Ｓ３１０）。受信装置２００の復号部２３０は、代理計算装置３００から受信したレスポンスＲｅｓを用いて所定の方法２と所定の方法４に対応した方法である所定の方法５にしたがってｇＩＤｒの値Ｗを求める。そして、Ｈ（Ｗ）を用いて所定の方法３に対応した方法である所定の方法６にしたがって暗号化情報Ｖを復号して平文Ｍ’に復号する（Ｓ２３０）。
【００２７】
次に、上述の所定の方法１〜７について説明する。所定の方法１〜７は「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」を組み合わせて構成するために互いに対応していればよい。例えば、以下に示すような組み合わせがあり得る。ただし、「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」とが機能する範囲ならば、これらの組み合わせに限定する必要はない。
【００２８】
［所定の方法の組み合わせ１−１］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’ Ｋ０
のように求める。所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエストＲｅｑを
Ｒｅｑ＝ｅ（Ｋ１，Ｕ）
のように求める。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める。
【００２９】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【００３０】
第１の例では、所定の方法２を
Ｋ３＝Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝Ｒｅｑ＾（Ｋ３−１）
としてもよい。
【００３１】
第２の例では、所定の方法１を
Ｋ１＝（Ｋ３’）−１Ｋ０
とし、所定の方法２を
Ｋ３＝Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
としてもよい。
【００３２】
第３の例では、所定の方法３を、Ｈ（ｇＩＤｒ）を共通鍵として平文Ｍを暗号化し、暗号化情報Ｖを求めてもよい。この場合は、所定の方法６は、Ｈ（Ｗ）を共通鍵として暗号化情報Ｖを平文Ｍ’に復号するとすればよい。
【００３３】
［所定の方法の組み合わせ１−２］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’ Ｋ０
のように求める。所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエストＲｅｑを受信用秘密鍵Ｋ１と乱数情報Ｕを含む情報とする。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾Ｋ３
のように求める。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋ１，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋ１，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００３４】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【００３５】
第１の例では、所定の方法２を
Ｋ３＝Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾（Ｋ３−１）
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（（Ｋ３−１）Ｋ１，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋ１，（Ｋ３−１）Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００３６】
第２の例では、所定の方法１を
Ｋ１＝（Ｋ３’）−１Ｋ０
とし、所定の方法２を
Ｋ３＝Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾Ｋ３
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋ１，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋ１，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００３７】
第３の例では、所定の方法３を、Ｈ（ｇＩＤｒ）を共通鍵として平文Ｍを暗号化し、暗号化情報Ｖを求めてもよい。この場合は、所定の方法６は、Ｈ（Ｗ）を共通鍵として暗号化情報Ｖを平文Ｍ’に復号するとすればよい。
【００３８】
［所定の方法の組み合わせ１−３］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’ Ｋ０
のように求める。所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエスト作成部２２０が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し（Ｓ２２１）、リクエストＲｅｑを
Ｒｅｑ＝ｅ（ｒｔｍｐＫ１，Ｕ）
のように求める。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｑ＝ｅ（Ｋ１，Ｕ）＾ｒｔｍｐ
のようにリクエストＲｅｑを求めてもよい。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾ｒｔｍｐ−１
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める。
【００３９】
なお、この組み合わせのときは、所定の組み合わせ１−１と同じように一部を変更してもよい。
【００４０】
［所定の方法の組み合わせ１−４］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’ Ｋ０
のように求める。所定の方法２では、では、代理計算用秘密鍵Ｋ３を
Ｋ３＝Ｋ３’−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエスト作成部２２０が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し（Ｓ２２１）、隠蔽鍵Ｋｔｍｐを
Ｋｔｍｐ＝ｒｔｍｐＫ１
を求め、リクエストＲｅｑを隠蔽鍵Ｋｔｍｐと乱数情報Ｕを含む情報とする。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾ｒｔｍｐ−１
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾Ｋ３
のように求める。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋｔｍｐ，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００４１】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【００４２】
第１の例では、所定の方法２を
Ｋ３＝Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾（Ｋ３−１）
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（（Ｋ３−１）Ｋｔｍｐ，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋｔｍｐ，（Ｋ３−１）Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００４３】
第２の例では、所定の方法１を
Ｋ１＝（Ｋ３’）−１Ｋ０
とし、所定の方法２を
Ｋ３＝Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾Ｋ３
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋｔｍｐ，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００４４】
第３の例では、所定の方法３を、Ｈ（ｇＩＤｒ）を共通鍵として平文Ｍを暗号化し、暗号化情報Ｖを求めてもよい。この場合は、所定の方法６は、Ｈ（Ｗ）を共通鍵として暗号化情報Ｖを平文Ｍ’に復号するとすればよい。
【００４５】
［受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３の更新］
図４に受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新するときの処理フローを示す。受信装置２００が、鍵生成装置４００に鍵の再発行を要求する（Ｓ２１４）。鍵生成装置４００の鍵分割部４２０は、新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し（Ｓ４２４）、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める（Ｓ４２２）。なお、新しい分割用乱数Ｋ３ｎｅｗ’は、０以上ｐ−１以下の整数からランダムに選択してもよいし、あらかじめ定めた方法で選択してもよい。鍵配布部４３０は、新しい分割用乱数Ｋ３ｎｅｗ’を用いて所定の方法２で新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める（Ｓ４３４）。そして、新しい受信用秘密鍵Ｋ１ｎｅｗを受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを代理計算装置に送信する（Ｓ４３５）。復号記録部２９０は、受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する（Ｓ２９２）。代理記録部３９０は、代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する（Ｓ３９２）。
【００４６】
実施例１の暗号化システムによれば、「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」を組み合わせて構成する。したがって、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる。
【実施例２】
【００４７】
実施例２の暗号化システムの構成例も図１に示す。図５に実施例２の暗号化システムの秘密鍵を配布する処理フローを、図３に暗号文の生成から復号までの処理フローを示す。実施例２の暗号化システムも、送信装置１００、受信装置２００、代理計算装置３００、鍵生成装置４００で構成される。
【００４８】
以下の説明でも、ｋは大きな整数、ｐはｋビットの素数、Ｇ１は位数ｐの巡回加算群、Ｇ２は位数ｐの巡回群、ｅはＧ１×Ｇ１→Ｇ２のように写像する双線形ペアリング関数、Ｈは群Ｇ２の元をｎビットのビット列に写像するハッシュ関数を示す記号、Ｐは群Ｇ１の生成元、ｓは鍵生成装置４００が生成した０以上ｐ−１以下の整数、ＰＰｕｂ＝ｓＰ、（Ｐ，ＰＰｕｂ）は公開パラメータ、MaptoPointＧ1は任意長のビット列を群Ｇ１の元に写像する関数、ＩＤは任意長のビット列、ＱＩＤ＝MaptoPointＧ1（ＩＤ）、（＋）はビット単位の排他的論理和を示す記号、＾はべき乗を示す記号とする。なお、ＩＤとして受信装置２００の属性を示すビット列を用いてもよい。
【００４９】
送信装置１００は、暗号化部１１０と暗号化記録部１９０を備える。受信装置２００は、属性送信部２１０、リクエスト作成部２２０、復号部２３０、保護用秘密鍵更新部２４０、復号記録部２９０を備える。代理計算装置３００は、レスポンス作成部３１０、代理計算用秘密鍵更新部３２０、代理記録部３９０を備える。鍵生成装置４００は、鍵生成部４１０、鍵分割部４２０、鍵配布部４３０、鍵生成記録部４９０を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。
【００５０】
［秘密鍵を配布する処理フロー、暗号文の生成から復号まで］
受信装置２００の属性送信部２１０は、ビット列ＩＤを鍵生成装置４００に送信する（Ｓ２１１）。なお、ビット列ＩＤは、Ａ社の社員、２０歳以上などの単独の属性情報でもよいし、Ａ社の社員かつ男性、２０歳以上または女性のような属性情報の論理式を示す情報でもよい。鍵生成装置４００の鍵生成部４１０は、秘密鍵Ｋ０を
Ｋ０＝ｓＱＩＤ
のように求める（Ｓ４１０）。
【００５１】
鍵分割部４２０は、分割用乱数Ｋ３’を０以上ｐ−１以下の整数から選択し（Ｓ４２１）、秘密鍵Ｋ０と分割用乱数Ｋ３’を用いて所定の方法１にしたがって受信用秘密鍵Ｋ１を求める（Ｓ４２２）。なお、分割用乱数Ｋ３’は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部４３０は、分割用乱数Ｋ３’を用いて所定の方法２で代理計算用秘密鍵Ｋ３を求める。本実施例の所定の方法２では、保護用秘密鍵Ｋ２を０以上ｐ−１以下の整数から選択する（Ｓ４３１）。分割用乱数Ｋ３’と保護用秘密鍵Ｋ２を用いて所定の方法２’にしたがって代理計算用秘密鍵Ｋ３を求める（Ｓ４３２）。なお、保護用秘密鍵Ｋ２は、鍵配布部４３０が単純に乱数として求める方法以外に、次のように求めてもよい。鍵配布部４３０が受信装置２００から保護用秘密鍵Ｋ２を求めるための情報Ｐａｓｓを受信する。そして、鍵配布部４３０が情報Ｐａｓｓを用いて保護用秘密鍵Ｋ２を求めてもよい。例えば、情報Ｐａｓｓとハッシュ関数を用いて保護用秘密鍵Ｋ２を求めてもよいし、情報Ｐａｓｓ自体を保護用秘密鍵Ｋ２としてもよい。また、情報Ｐａｓｓとして、例えば受信装置２００の利用者（受信者）が設定したパスワードを用いてもよい。また、保護用秘密鍵Ｋ２は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【００５２】
鍵配布部４３０は、受信用秘密鍵Ｋ１と保護用秘密鍵Ｋ２を受信装置２００に送信し、代理計算用秘密鍵Ｋ３を代理計算装置３００に送信する（Ｓ４３３）。受信装置２００の復号記録部２９０は、受信用秘密鍵Ｋ１と保護用秘密鍵Ｋ２を記録する（Ｓ２９１）。なお、復号記録部２９０は、物理的に別の２つ以上の記録装置で構成してもよい。例えば、復号記録部２９０をＩＣカードとパソコンのハードディスクで構成してもよい。そして、受信用秘密鍵Ｋ１をＩＣカードに記録し、保護用秘密鍵Ｋ２をパソコンのハードディスクに記録するようにしてもよい。このように物理的に別々に受信用秘密鍵Ｋ１と保護用秘密鍵Ｋ２を記録すれば、両方を同時に漏洩・紛失するリスクを低減できる。また、後述の鍵の更新でも、漏洩・紛失した鍵のみを更新すればよくなる。代理計算装置３００の代理記録部３９０は、代理計算用秘密鍵Ｋ３を記録する（Ｓ３９１）。
【００５３】
属性送信部２１０は、ビット列ＩＤを送信装置１００に送信する（Ｓ２１２）。送信装置１００の暗号化部１１０は、乱数ｒを０以上ｐ−１以下の整数から選択し、乱数情報ＵをＵ＝ｒＰのように計算する。なお、乱数ｒは、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。また、暗号化部１１０は、
ｇＩＤ＝ｅ（ＱＩＤ，ＰＰｕｂ）
を計算し、Ｈ（ｇＩＤｒ）を用いて所定の方法３で平文Ｍを暗号化して暗号化情報Ｖを求める。そして、暗号化部１１０は、乱数情報Ｕと暗号化情報Ｖを含む情報を暗号文Ｃとして出力する（Ｓ１１０）。
【００５４】
受信装置２００のリクエスト作成部２２０は、受信用秘密鍵Ｋ１と乱数情報Ｕを用いて所定の方法４でリクエストＲｅｑを作成する（Ｓ２２２）。なお、リクエスト作成部２２０は、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し（Ｓ２２１）、ステップＳ２２２の所定の方法４で乱数ｒｔｍｐも用いてもよい。このようにすることで、受信用秘密鍵Ｋ１に関する情報を隠蔽できる。なお、乱数ｒｔｍｐは、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【００５５】
代理計算装置３００のレスポンス作成部３１０は、リクエストＲｅｑに対して、所定の方法１と所定の方法２と所定の方法４に対応した方法である所定の方法７にしたがって代理計算用秘密鍵Ｋ３を用いた計算を行ってレスポンスＲｅｓを求める（Ｓ３１０）。受信装置２００の復号部２３０は、代理計算装置３００から受信したレスポンスＲｅｓを用いて所定の方法２と所定の方法４に対応した方法である所定の方法５にしたがってｇＩＤｒの値Ｗを求める。そして、Ｈ（Ｗ）を用いて所定の方法３に対応した方法である所定の方法６にしたがって暗号化情報Ｖを復号して平文Ｍ’に復号する（Ｓ２３０）。
【００５６】
次に、上述の所定の方法１〜７について説明する。所定の方法１〜７は「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，保護用秘密鍵Ｋ２，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」を組み合わせて構成するために互いに対応していればよい。例えば、以下に示すような組み合わせがあり得る。ただし、「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，保護用秘密鍵Ｋ２，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」とが機能する範囲ならば、これらの組み合わせに限定する必要はない。
【００５７】
［所定の方法の組み合わせ２−１］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求める。所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエストＲｅｑを
Ｒｅｑ＝ｅ（Ｋ１，Ｕ）
のように求める。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾Ｋ２
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める。
【００５８】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【００５９】
第１の例では、所定の方法２’を
Ｋ３＝（Ｋ２）−１Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝Ｒｅｑ＾（Ｋ３−１）
としてもよい。
【００６０】
第２の例では、所定の方法１を
Ｋ１＝（Ｋ３’）−１Ｋ０
とし、所定の方法２’を
Ｋ３＝（Ｋ２）−１Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
としてもよい。
【００６１】
第３の例では、所定の方法３を、Ｈ（ｇＩＤｒ）を共通鍵として平文Ｍを暗号化し、暗号化情報Ｖを求めてもよい。この場合は、所定の方法６は、Ｈ（Ｗ）を共通鍵として暗号化情報Ｖを平文Ｍ’に復号するとすればよい。
【００６２】
［所定の方法の組み合わせ２−２］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求める。所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエストＲｅｑを受信用秘密鍵Ｋ１と乱数情報Ｕを含む情報とする。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾Ｋ２
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾Ｋ３
のように求める。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋ１，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋ１，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００６３】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【００６４】
第１の例では、所定の方法２’を
Ｋ３＝（Ｋ２）−１Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾（Ｋ３−１）
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（（Ｋ３−１）Ｋ１，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋ１，（Ｋ３−１）Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００６５】
第２の例では、所定の方法１を
Ｋ１＝（Ｋ３’）−１Ｋ０
とし、所定の方法２’を
Ｋ３＝（Ｋ２）−１Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋ１，Ｕ）＾Ｋ３
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋ１，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋ１，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００６６】
第３の例では、所定の方法３を、Ｈ（ｇＩＤｒ）を共通鍵として平文Ｍを暗号化し、暗号化情報Ｖを求めてもよい。この場合は、所定の方法６は、Ｈ（Ｗ）を共通鍵として暗号化情報Ｖを平文Ｍ’に復号するとすればよい。
【００６７】
［所定の方法の組み合わせ２−３］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求める。所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエスト作成部２２０が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し（Ｓ２２１）、リクエストＲｅｑを
Ｒｅｑ＝ｅ（ｒｔｍｐＫ１，Ｕ）
のように求める。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｑ＝ｅ（Ｋ１，Ｕ）＾ｒｔｍｐ
のようにリクエストＲｅｑを求めてもよい。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾（ｒｔｍｐ−１Ｋ２）
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝Ｒｅｑ＾Ｋ３
のように求める。
【００６８】
なお、この組み合わせのときは、所定の組み合わせ１−１と同じように一部を変更してもよい。
【００６９】
［所定の方法の組み合わせ２−４］
所定の方法１では、受信用秘密鍵Ｋ１を
Ｋ１＝Ｋ３’Ｋ０
のように求める。所定の方法２’では、代理計算用秘密鍵Ｋ３を
Ｋ３＝（Ｋ２Ｋ３’）−１
のように求める。所定の方法３では、暗号化情報Ｖを
Ｖ＝Ｍ（＋）Ｈ（ｇＩＤｒ）
のように求める。所定の方法４では、リクエスト作成部２２０が、乱数ｒｔｍｐを０以上ｐ−１以下の整数から選択し（Ｓ２２１）、隠蔽鍵Ｋｔｍｐを
Ｋｔｍｐ＝ｒｔｍｐＫ１
を求め、リクエストＲｅｑを隠蔽鍵Ｋｔｍｐと乱数情報Ｕを含む情報とする。所定の方法５では、値Ｗを
Ｗ＝Ｒｅｓ＾（ｒｔｍｐ−１Ｋ２）
のように求める。所定の方法６では、平文Ｍ’を
Ｍ’＝Ｖ（＋）Ｈ（Ｗ）
のように求める。所定の方法７では、レスポンスＲｅｓを
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾Ｋ３
のように求める。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋｔｍｐ，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００７０】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【００７１】
第１の例では、所定の方法２’を
Ｋ３＝（Ｋ２）−１Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾（Ｋ３−１）
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（（Ｋ３−１）Ｋｔｍｐ，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋｔｍｐ，（Ｋ３−１）Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００７２】
第２の例では、所定の方法１を
Ｋ１＝（Ｋ３’）−１Ｋ０
とし、所定の方法２’を
Ｋ３＝（Ｋ２）−１Ｋ３’
とし、所定の方法７を
Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｕ）＾Ｋ３
としてもよい。ただし、ペアリングｅでは式（１）が成り立つので、
Ｒｅｓ＝ｅ（Ｋ３Ｋｔｍｐ，Ｕ）  または  Ｒｅｓ＝ｅ（Ｋｔｍｐ，Ｋ３Ｕ）
のようにレスポンスＲｅｓを求めてもよい。
【００７３】
第３の例では、所定の方法３を、Ｈ（ｇＩＤｒ）を共通鍵として平文Ｍを暗号化し、暗号化情報Ｖを求めてもよい。この場合は、所定の方法６は、Ｈ（Ｗ）を共通鍵として暗号化情報Ｖを平文Ｍ’に復号するとすればよい。
【００７４】
［受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３の更新１］
図６に受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新するときであって、保護用秘密鍵Ｋ２を送信する場合の処理フローを示す。受信装置２００が、鍵生成装置４００に保護用秘密鍵Ｋ２を送信し、鍵の再発行を要求する（Ｓ２１３）。鍵生成装置４００の鍵分割部４２０は、新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し（Ｓ４２４）、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める（Ｓ４２２）。なお、新しい分割用乱数Ｋ３ｎｅｗ’は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部４３０は、新しい分割用乱数Ｋ３ｎｅｗ’と受信した保護用秘密鍵Ｋ２を用いて所定の方法２’にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める（Ｓ４３２）。そして、新しい受信用秘密鍵Ｋ１ｎｅｗを前記受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを前記代理計算装置に送信する（Ｓ４３５）。復号記録部２９０は、受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する（Ｓ２９２）。代理記録部３９０は、代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する（Ｓ３９２）。
【００７５】
［受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３の更新２］
図７に受信用秘密鍵Ｋ１と代理計算用秘密鍵Ｋ３を更新するときであって、保護用秘密鍵Ｋ２を求めるための情報Ｐａｓｓを送信する場合の処理フローを示す。受信装置２００が、鍵生成装置４００に保護用秘密鍵Ｋ２を求めるための情報Ｐａｓｓを送信し、鍵の再発行を要求する（Ｓ２１５）。鍵生成装置４００の鍵分割部４２０は、新しい分割用乱数Ｋ３ｎｅｗ’を０以上ｐ−１以下の整数から選択し（Ｓ４２４）、秘密鍵Ｋ０と新しい分割用乱数Ｋ３ｎｅｗ’を用いて所定の方法１にしたがって新しい受信用秘密鍵Ｋ１ｎｅｗを求める（Ｓ４２２）。なお、新しい分割用乱数Ｋ３ｎｅｗ’は、０以上ｐ−１以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部４３０は、情報Ｐａｓｓから保護用秘密鍵Ｋ２を求め、新しい分割用乱数Ｋ３ｎｅｗ’と保護用秘密鍵Ｋ２を用いて前記所定の方法２’にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める（Ｓ４３２’）。例えば、情報Ｐａｓｓとハッシュ関数を用いて保護用秘密鍵Ｋ２を求めてもよいし、情報Ｐａｓｓ自体を保護用秘密鍵Ｋ２としてもよい。そして、新しい受信用秘密鍵Ｋ１ｎｅｗを前記受信装置に送信し、新しい代理計算用秘密鍵Ｋ３ｎｅｗを前記代理計算装置に送信する（Ｓ４３５）。復号記録部２９０は、受信用秘密鍵Ｋ１を新しい受信用秘密鍵Ｋ１ｎｅｗに更新する（Ｓ２９２）。代理記録部３９０は、代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する（Ｓ３９２）。
【００７６】
［保護用秘密鍵Ｋ２の更新］
図８に保護用秘密鍵Ｋ２を更新するときの処理フローを示す。受信装置２００の保護用秘密鍵更新部２４０は、新しい保護用秘密鍵Ｋ２ｎｅｗを０以上ｐ−１以下の整数から選択する（Ｓ２４１）。例えば、受信者が新しい情報Ｐａｓｓを設定し、その情報Ｐａｓｓとハッシュ関数を用いて保護用秘密鍵Ｋ２ｎｅｗを求めてもよいし、その情報Ｐａｓｓ自体を保護用秘密鍵Ｋ２ｎｅｗとしてもよい。また、新しい保護用秘密鍵Ｋ２ｎｅｗは、０以上ｐ−１以下の整数から上記のようにランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。次に、保護用秘密鍵更新部２４０は、所定の方法２’に対応した所定の方法８にしたがって復号記録部が記録している保護用秘密鍵Ｋ２と新しい保護用秘密鍵Ｋ２ｎｅｗとの違いに応じた値であるアップデータＵｐｄを求め、アップデータＵｐｄを代理計算装置に送る（Ｓ２４２）。
【００７７】
代理計算装置の代理計算用秘密鍵更新部３２０は、代理記録部３９０に記録している代理計算用秘密鍵Ｋ３とアップデータＵｐｄを用いて、所定の方法８に対応した所定の方法９にしたがって新しい代理計算用秘密鍵Ｋ３ｎｅｗを求める（Ｓ３２０）。復号記録部２９０は、保護用秘密鍵Ｋ２を新しい保護用秘密鍵Ｋ２ｎｅｗに更新する（Ｓ２９３）。代理記録部は、代理計算用秘密鍵Ｋ３を新しい代理計算用秘密鍵Ｋ３ｎｅｗに更新する（Ｓ２９３）。
【００７８】
例えば、情報Ｐａｓｓとして受信装置２００の利用者（受信者）が設定したパスワードを用いれば、受信者がパスワードを変更するたびに、保護用秘密鍵Ｋ２と代理計算用秘密鍵Ｋ３を更新することも可能である。
【００７９】
また、例えば、所定の方法８では、アップデータＵｐｄを
Ｕｐｄ＝Ｋ２ｎｅｗ−１Ｋ２
のように求める。そして、所定の方法９では、新しい代理計算用秘密鍵Ｋ３ｎｅｗを
Ｋ３ｎｅｗ＝Ｕｐｄ・Ｋ３
のように求めればよい。所定の方法８と所定の方法９はこのように対応付けされた組み合わせであればよく、上述の方法に限定する必要はない。
【００８０】
実施例２の暗号化システムによれば、「秘密鍵Ｋ０から複数の復号鍵（受信用秘密鍵Ｋ１，保護用秘密鍵Ｋ２，代理計算用秘密鍵Ｋ３）を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置（代理計算装置）に安全に代行させる方式」を組み合わせて構成する。したがって、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる。
【００８１】
［プログラム、記録媒体］
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００８２】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００８３】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００８４】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００８５】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００８６】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【００８７】
本発明は、暗号通信の分野に利用することができる。
【符号の説明】
【００８８】
１００  送信装置                      １１０  暗号化部
１９０  暗号化記録部                  ２００  受信装置
２１０  属性送信部                    ２２０  リクエスト作成部
２３０  復号部                        ２４０  保護用秘密鍵更新部
２９０  復号記録部                    ３００  代理計算装置
３１０  レスポンス作成部              ３２０  代理計算用秘密鍵更新部
３９０  代理記録部                    ４００  鍵生成装置
４１０  鍵生成部                      ４２０  鍵分割部
４３０  鍵配布部                      ４９０  鍵生成記録部
【図１】
0005469618.tif 000002
【図２】
0005469618.tif 000003
【図３】
0005469618.tif 000004
【図４】
0005469618.tif 000005
【図５】
0005469618.tif 000006
【図６】
0005469618.tif 000007
【図７】
0005469618.tif 000008
【図８】
0005469618.tif 000009