(57)【要約】【課題】暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術を提供すること。【解決手段】更新前の鍵情報を取得する更新前鍵取得部１０１と、更新後の鍵情報を生成する鍵生成部１０２と、更新前の鍵情報に含まれる更新前復号用鍵情報を、更新後の鍵情報を用いて暗号化した更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部１０３と、更新前復号用鍵暗号化データ、および、更新後の鍵情報に含まれる暗号更新用鍵情報を含む更新要求を、暗号更新装置２００に送信する更新要求送信部１０４とを有する暗号更新要求装置１００と、更新要求対象の暗号化データおよび更新前復号用鍵暗号化データを含む情報を、暗号更新用鍵情報を用いて暗号化した更新後の暗号化データを生成する暗号更新部２０１を有する暗号更新装置２００とを備える。【選択図】      図３
2014017763.tif 000002
【特許請求の範囲】
【請求項１】
暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得部と、
更新後の鍵情報を生成する鍵生成部と、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部と、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部と、
を備えた暗号更新要求装置。
【請求項２】
前記更新前の鍵情報が公開鍵暗号方式における公開鍵および秘密鍵を含むとき、
前記鍵生成部は、前記更新後の鍵情報として、公開鍵暗号方式における新たな公開鍵および秘密鍵を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の秘密鍵を、前記更新後の公開鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の公開鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする請求項１に記載の暗号更新要求装置。
【請求項３】
前記更新前の鍵情報が共通鍵暗号方式における第１の共通鍵および第２の共通鍵を含むとき、
前記鍵生成部は、前記更新後の鍵情報として、共通鍵暗号方式における新たな第１の共通鍵および第２の共通鍵を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の第２の共通鍵を、前記更新後の第１の共通鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の第２の共通鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする請求項１に記載の暗号更新要求装置。
【請求項４】
請求項１から請求項３のいずれか１項に記載の暗号更新要求装置から前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新部を備えた暗号更新装置。
【請求項５】
請求項１から請求項３のいずれか１項に記載の暗号更新要求装置によって生成された更新後の鍵情報を取得する更新後鍵取得部と、
請求項４に記載の暗号更新装置によって生成された更新後の暗号化データを受信する暗号化データ受信部と、
前記暗号化データ受信部によって受信された更新後の暗号化データを、前記更新後鍵取得部によって取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号部と、
を備えた復号装置。
【請求項６】
請求項１から請求項３のいずれか１項に記載の暗号更新要求装置と、
請求項４に記載の暗号更新装置と、
を含む暗号更新システム。
【請求項７】
暗号更新要求装置は、
暗号化データが生成される際に用いられた更新前の鍵情報を取得し、
更新後の鍵情報を生成し、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信し、
前記暗号更新装置は、
前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する、暗号更新方法。
【請求項８】
暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得ステップと、
更新後の鍵情報を生成する鍵生成ステップと、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化ステップと、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【請求項９】
請求項８に記載のコンピュータ・プログラムの実行により送信された前記更新要求を受信する更新要求受信ステップと、
前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【請求項１０】
請求項８に記載のコンピュータ・プログラムの実行により生成された前記更新後の鍵情報を取得する更新後鍵取得ステップと、
請求項９に記載のコンピュータ・プログラムの実行により生成された前記更新後の暗号化データを受信する暗号化データ受信ステップと、
前記暗号化データ受信ステップで受信された更新後の暗号化データを、前記更新後鍵取得ステップで取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化データの生成に用いられた暗号鍵を更新する暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラムに関する。
【背景技術】
【０００２】
近年、クラウドサービスの普及に伴い、個人の保有するデータがクラウド上（ネットワーク上）のデータベースに記憶されることが多くなっている。また、個人の購買履歴や投薬情報をクラウド上のデータベースに収集し、集まったデータから得られた統計情報などを利用して、リコメンデーションや医療行為に用いるサービスも存在する。
【０００３】
これらの個人が保有するデータや、個人の購買履歴、投薬情報等は、重要な機密情報やプライバシー情報を含む場合がある。したがって、クラウド上におかれたデータベースのセキュリティ対策が充分でないと、そのような情報が漏洩する可能性がある。
【０００４】
そのため、プライバシー情報や機密情報を含むデータをクラウド上におかれたデータベースに保管する場合に、データを暗号化し、暗号化されたデータをデータベースに保管することが考えられている。データの暗号化は、データの保有者である利用者側の装置で行われる場合と、クラウド上のデータベース内で行われる場合とが考えられる。しかし、クラウド上に置かれたデータベースの場合、データベース管理者の身分が明らかでないことが多い。そのため、利用者がデータベース管理者を信頼できない可能性が考えられる。したがって、データベース管理者に対しても、利用者のデータが分からないようにすることが望ましい。この場合、データの暗号化は利用者側の装置で行い、クラウド側に復号用の鍵を秘匿する必要がある。
【０００５】
一方、計算機の進歩などを理由とした計算リソースの増加や更新後の攻撃法の発見などにより、暗号アルゴリズムや暗号鍵の更新が求められることがある。特に暗号鍵に関しては、定期的な更新をシステムにより求められることが多い。以降、暗号アルゴリズムや暗号鍵の更新を、総称して暗号更新というものとする。
【０００６】
例えば、特許文献１には、期限切れの秘密鍵を、セキュリティ性を維持しながら外部記憶媒体に保管する技術が記載されている。この関連技術は、更新前の秘密鍵を、更新後の公開鍵で暗号化してから、外部記憶媒体へ移動する。
【０００７】
また、例えば、特許文献２には、更新前の暗号化データと更新後の暗号化データを分けて管理することにより、逐次的に鍵の更新を行う技術が記載されている。この関連技術は、更新前の暗号化データを更新前の秘密鍵によって復号し、復号されたデータを更新後の公開鍵で再暗号化した後、更新前の暗号化データを消去する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２１１４４６号公報
【特許文献２】特開２００９−１０４４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
暗号アルゴリズムの危殆化や復号用の鍵の漏洩を考慮すると、暗号更新の際には、迅速にデータを更新後の暗号鍵で再暗号化することが望ましい。一般的には、暗号更新の際には、利用者側の装置が、更新前の暗号化データをデータベースから受信して復号し、更新後の暗号アルゴリズムや暗号鍵を用いて新しい暗号化データを生成し、再度データベースに送信すればよい。しかしながら、データ量が多い場合、データ通信量や復号および暗号化の処理コストが増大する。また、クラウド上のデータベースに暗号化データを保存する利用者は、スマートフォンなどの低い計算能力しか持たないデバイスを利用していることも考えられる。したがって、このような暗号更新の処理は、利用者側の装置にとって大きな負荷となる。
【００１０】
しかしながら、特許文献１には、このような更新前の公開鍵で暗号化されたデータを再暗号化することについては記載されていない。
【００１１】
また、特許文献２に記載された関連技術では、暗号化データの復号および再暗号化を逐次的に行う際に、更新前の暗号化データが長時間データベースに保存されたままになることを避ける必要がある。そのためには、なるべく短時間で暗号化データの更新を行う必要がある。したがって、暗号更新処理の多くはデータベース側で行われることが望ましい。ところが、クラウド上のデータベース側でこのような暗号化データの復号および再暗号化を行うには、データベース管理者に平文や復号用の鍵を与えることになる。つまり、データベース管理者に平文や復号用の鍵を与えれば、暗号更新された暗号化データをクラウド上で生成することができるため、暗号更新の際の上述のような利用者側の装置の負荷を軽減することができる。しかしながら、この場合、データベース管理者に平文が漏れてしまうという問題が生じる。
【００１２】
このように、関連技術では、暗号更新を行う際に、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、暗号更新を希望する利用者側の装置の負荷を軽減することができなかった。
【００１３】
本発明は、上述の課題を解決するためになされたもので、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の暗号更新要求装置は、暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得部と、更新後の鍵情報を生成する鍵生成部と、前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部と、前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部と、を備える。
【００１５】
また、本発明の暗号更新装置は、前記暗号更新要求装置から前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新部を備える。
【００１６】
また、本発明の復号装置は、前記暗号更新要求装置によって生成された更新後の鍵情報を取得する更新後鍵取得部と、前記暗号更新装置によって生成された更新後の暗号化データを受信する暗号化データ受信部と、前記暗号化データ受信部によって受信された更新後の暗号化データを、前記更新後鍵取得部によって取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号部と、を備える。
【００１７】
また、本発明の暗号更新システムは、前記暗号更新要求装置と、前記暗号更新装置と、を含む。
【００１８】
また、本発明の暗号更新方法は、暗号更新要求装置は、暗号化データが生成される際に用いられた更新前の鍵情報を取得し、更新後の鍵情報を生成し、前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信し、前記暗号更新装置は、前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する。
【００１９】
また、本発明のコンピュータ・プログラムは、暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得ステップと、更新後の鍵情報を生成する鍵生成ステップと、前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化ステップと、前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部ステップと、をコンピュータ装置に実行させる。
【００２０】
また、本発明のコンピュータ・プログラムは、前記更新要求を受信する更新要求受信ステップと、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新ステップと、をコンピュータ装置に実行させる。
【００２１】
また、本発明のコンピュータ・プログラムは、前記更新後の鍵情報を取得する更新後鍵取得ステップと、前記更新後の暗号化データを受信する暗号化データ受信ステップと、前記暗号化データ受信ステップで受信された更新後の暗号化データを、前記更新後鍵取得ステップで取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号ステップと、をコンピュータ装置に実行させる。
【発明の効果】
【００２２】
本発明は、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施の形態としての暗号更新システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態としての暗号更新システムを構成する各装置のハードウェア構成図である。
【図３】本発明の第１の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。
【図４】本発明の第１の実施の形態としての暗号更新システムの暗号更新動作を説明するフローチャートである。
【図５】本発明の第２の実施の形態としての暗号更新システムの構成を示すブロック図である。
【図６】本発明の第２の実施の形態としての暗号更新システムを構成する各装置のハードウェア構成図である。
【図７】本発明の第２の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。
【図８】本発明の第２の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。
【図９】本発明の第３の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。
【図１０】本発明の第３の実施の形態としての暗号更新システムの暗号更新動作を説明するフローチャートである。
【図１１】本発明の第３の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。
【図１２】本発明の第４の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。
【図１３】本発明の第４の実施の形態としての暗号更新システムの暗号更新動作を説明するフローチャートである。
【図１４】本発明の第４の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。
【図１５】本発明の第５の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。
【図１６】本発明の第５の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２５】
（第１の実施の形態）
本発明の第１の実施の形態としての暗号更新システム１の構成を図１に示す。図１において、暗号更新システム１は、暗号更新要求装置１００と、暗号更新装置２００とを備えている。また、暗号更新要求装置１００および暗号更新装置２００は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。
【００２６】
また、暗号更新要求装置１００は、鍵記憶装置８００と通信可能に接続されている。鍵記憶装置８００は、１つ以上の鍵情報を記憶している装置である。鍵情報とは、暗号化データが暗号化された際に用いられた鍵に関する情報である。例えば、１つの鍵情報には、データを暗号化するために用いられた鍵を表す情報およびその鍵を用いて暗号化されたデータを復号するために用いられる鍵を表す情報が含まれていてもよい。また、鍵情報には、暗号化データがその鍵情報によって生成される際に用いられた暗号方式を表す情報が含まれていてもよい。例えば、暗号更新要求装置１００および鍵記憶装置８００は、ネットワークまたは外部装置接続インタフェースを介して接続されていてもよい。この場合、鍵記憶装置８００は、セキュリティ性の高い装置であることが望ましい。また、暗号更新要求装置１００および鍵記憶装置８００間の通信は、セキュリティ性が確保されたものであることが望ましい。あるいは、暗号更新要求装置１００および鍵記憶装置８００は、同一のコンピュータ装置によって構成されていてもよい。
【００２７】
また、暗号更新装置２００は、暗号化データ記憶装置９００と通信可能に接続されている。暗号化データ記憶装置９００は、鍵情報を用いて暗号化された１つ以上の暗号化データを記憶している装置である。例えば、暗号更新装置２００および暗号化データ記憶装置９００は、ネットワークまたは外部装置接続インタフェースを介して接続されていてもよい。あるいは、暗号更新装置２００および暗号化データ記憶装置９００は、同一のコンピュータ装置によって構成されていてもよい。また、例えば、暗号更新装置２００は、暗号化データ記憶装置９００をクラウド型のデータベースとして機能させるための管理装置であってもよい。
【００２８】
なお、図１には、各装置を１つずつ示したが、本発明の暗号更新システムが備える各装置の数および接続される各装置の数を限定するものではない。
【００２９】
次に、暗号更新システム１を構成する各装置のハードウェア構成を図２に示す。
【００３０】
図２において、暗号更新要求装置１００は、ＣＰＵ（Central Processing Unit）１００１と、ＲＡＭ（Random Access Memory）１００２と、ＲＯＭ（Read Only Memory）１００３と、記憶装置１００４と、ネットワークインタフェース１００５とを備えたコンピュータ装置によって構成されている。例えば、暗号更新要求装置１００は、暗号化データの保有者である利用者によって携帯される端末によって構成されていてもよい。
【００３１】
ＲＯＭ１００３および記憶装置１００４には、コンピュータ装置を本実施の形態の暗号更新要求装置１００として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
【００３２】
ＣＰＵ１００１は、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行する。
【００３３】
ネットワークインタフェース１００５は、ネットワークを介して暗号更新装置２００との通信を行うモジュールである。
【００３４】
さらに、暗号更新要求装置１００は、鍵記憶装置８００と接続するための図示しない他のネットワークインタフェースまたは外部装置接続インタフェースを備えていてもよい。なお、暗号更新要求装置１００および鍵記憶装置８００が同一のコンピュータ装置によって構成される場合、鍵記憶装置８００は、記憶装置１００４によって構成可能である。
【００３５】
また、暗号更新装置２００は、ＣＰＵ２００１と、ＲＡＭ２００２と、ＲＯＭ２００３と、ハードディスク等の記憶装置２００４と、ネットワークインタフェース２００５とを備えたコンピュータ装置によって構成されている。例えば、暗号更新装置２００は、クラウド型のデータベースとしての暗号化データ記憶装置９００を運営するデータベース管理者によって管理されるコンピュータ装置によって構成される。
【００３６】
ＲＯＭ２００３および記憶装置２００４には、コンピュータ装置を本実施の形態の暗号更新装置２００として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
【００３７】
ＣＰＵ２００１は、ＲＯＭ２００３および記憶装置２００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ２００２に読み込んで実行する。
【００３８】
ネットワークインタフェース２００５は、ネットワークを介して暗号更新要求装置１００との通信を行うモジュールである。
【００３９】
さらに、暗号更新装置２００は、暗号化データ記憶装置９００と接続するための他のネットワークインタフェースまたは外部装置接続インタフェースを備えていてもよい。なお、暗号更新装置２００および暗号化データ記憶装置９００が同一のコンピュータ装置によって構成される場合、暗号化データ記憶装置９００は、記憶装置２００４によって構成可能である。
【００４０】
次に、暗号更新システム１を構成する各装置の機能ブロック構成を図３に示す。
【００４１】
まず、暗号更新要求装置１００の機能ブロックについて説明する。図３において、暗号更新要求装置１００は、更新前鍵取得部１０１と、鍵生成部１０２と、更新前復号用鍵暗号化部１０３と、更新要求送信部１０４とを備える。ここで、更新前鍵取得部１０１と、鍵生成部１０２と、更新前復号用鍵暗号化部１０３とは、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１によって構成される。また、更新要求送信部１０４は、ネットワークインタフェース１００５と、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１とによって構成される。なお、暗号更新要求装置１００およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
【００４２】
更新前鍵取得部１０１は、暗号化データ記憶装置９００に記憶されている暗号化データが生成される際に用いられた更新前の鍵情報を、鍵記憶装置８００から取得する。
【００４３】
鍵生成部１０２は、更新後の鍵情報を生成する。更新後の鍵情報とは、鍵記憶装置８００に記憶されている更新前の鍵情報を暗号更新するためのものである。
【００４４】
また、鍵生成部１０２は、更新後の鍵情報として、更新前の鍵情報と同一の暗号方式における鍵情報を生成してもよい。あるいは、鍵生成部１０２は、更新後の鍵情報として、更新前の暗号方式とは異なる更新後の暗号方式における新たな鍵情報を生成してもよい。その場合、鍵生成部１０２は、更新後の鍵情報に、更新後の暗号方式に関する情報も含めるようにすればよい。
【００４５】
また、鍵生成部１０２は、更新後の鍵情報を、鍵記憶装置８００に登録してもよい。また、鍵生成部１０２は、暗号更新装置２００から、後述の暗号更新の完了を通知されると、更新前の鍵情報を、鍵記憶装置８００から削除するようにしてもよい。
【００４６】
更新前復号用鍵暗号化部１０３は、更新前復号用鍵情報を、更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する。ここで、更新前復号用鍵情報とは、更新前の鍵情報に含まれる情報のうち更新前の暗号化データの復号に必要となる情報である。鍵生成部１０２により暗号方式が更新されている場合、更新前復号用鍵情報には、更新前の暗号方式を表す情報も含まれていてよい。
【００４７】
更新要求送信部１０４は、更新前復号用鍵暗号化データおよび暗号更新用鍵情報を含む更新要求を、暗号更新装置２００に送信する。ここで、暗号更新用鍵情報とは、更新後の鍵情報に含まれる情報のうち暗号更新に必要となる情報である。また、暗号更新用鍵情報は、新たな暗号化において必要な情報を含み、前述の更新前復号用鍵暗号化データを復号可能な情報を含まない情報である。
【００４８】
また、更新要求送信部１０４は、更新要求に、暗号更新の対象とする暗号化データを特定する情報を含めてもよい。また、更新要求送信部１０４は、このような暗号化データを特定する情報を、入力装置（図示せず）などを介して外部から取得してもよい。
【００４９】
次に、暗号更新装置２００の各機能ブロックについて説明する。
【００５０】
図３において、暗号更新装置２００は、暗号更新部２０１を備える。ここで、暗号更新部２０１は、ネットワークインタフェース２００５と、ＲＯＭ２００３および記憶装置２００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ２００２に読み込んで実行するＣＰＵ２００１とによって構成される。なお、暗号更新装置２００およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
【００５１】
暗号更新部２０１は、暗号更新要求装置１００から受信される更新要求が対象とする暗号化データ、および、更新要求に含まれる更新前復号用鍵暗号化データを含む情報を、更新要求に含まれる暗号更新用鍵情報を用いて暗号化することにより、更新後の暗号化データを生成する。例えば、暗号更新部２０１は、更新要求が対象とする暗号化データを、更新要求に含まれる暗号化データを特定する情報に基づいて、暗号化データ記憶装置９００から取得すればよい。
【００５２】
また、暗号更新部２０１は、生成した更新後の暗号化データを、暗号化データ記憶装置９００に登録する。また、暗号更新部２０１は、更新前の暗号化データを、暗号化データ記憶装置９００から削除する。
【００５３】
以上のように構成された暗号更新システム１の暗号更新動作について、図４を参照して説明する。なお、図４において、左図は暗号更新要求装置１００の動作を示し、右図は暗号更新装置２００の動作を示し、左右を結ぶ破線の矢印はデータの流れを示すものとする。
【００５４】
また、暗号化データ記憶装置９００には、更新前の暗号化データが記憶されており、鍵記憶装置８００には、更新前の暗号化データが暗号化される際に用いられた更新前の鍵情報が記憶されているものとする。
【００５５】
まず、更新前鍵取得部１０１は、鍵記憶装置８００から、更新前の鍵情報を取得する（ステップＳ１）。
【００５６】
次に、暗号更新要求装置１００の鍵生成部１０２は、更新後の鍵情報を生成する（ステップＳ２）。そして、鍵生成部１０２は、更新後の鍵情報を鍵記憶装置８００に登録する。
【００５７】
次に、更新前復号用鍵暗号化部１０３は、ステップＳ１で取得された更新前の鍵情報に含まれる情報のうち更新前復号用鍵情報を、ステップＳ２で生成された更新後の鍵情報を用いて暗号化することにより、更新前復号用鍵暗号化データを生成する（ステップＳ３）。
【００５８】
次に、更新要求送信部１０４は、ステップＳ３で生成された更新前復号用鍵暗号化データと、ステップＳ２で生成された更新後の鍵情報のうち暗号更新に必要となる暗号更新用鍵情報とを含む更新要求を、暗号更新装置２００に送信する（ステップＳ４）。例えば、前述のように、暗号更新用鍵情報には、暗号更新に必要となる鍵を表す情報や、更新後の暗号方式を表す情報が含まれ、更新前復号用鍵暗号化データを復号可能な情報は含まれない。
【００５９】
次に、暗号更新装置２００の暗号更新部２０１は、更新要求を受信し、受信した更新要求が対象とする暗号化データを、暗号化データ記憶装置９００から取得する（ステップＳ５）。
【００６０】
次に、暗号更新部２０１は、この更新要求に含まれる更新前復号用鍵暗号化データと、ステップＳ５で取得された暗号化データとを含む情報を、この更新要求に含まれる暗号更新用鍵情報を用いて暗号化することにより、更新後の暗号化データを生成する（ステップＳ６）。
【００６１】
次に、暗号更新部２０１は、ステップＳ６で生成された更新後の暗号化データを、暗号化データ記憶部３０に登録し、更新前の暗号化データを削除する（ステップＳ７）。
【００６２】
また、この後、暗号更新部２０１は、暗号更新の完了を暗号更新要求装置１００に通知してもよい。その場合、暗号更新要求装置１００は、鍵記憶装置８００から、更新前の鍵情報を削除してもよい。
【００６３】
以上で、暗号更新システム１は、暗号更新動作を終了する。
【００６４】
なお、このようにして生成された更新後の暗号化データは、更新後の鍵情報を取得可能な復号装置によって元のデータに復号可能である。具体的には、このような更新後の暗号化データは、更新後の鍵情報によって、更新前復号用鍵暗号化データと、更新前の暗号化データとに復号可能である。そして、そのようにして得られた更新前復号用鍵暗号化データは、更新後の鍵情報によって、更新前復号用鍵情報に復号可能である。その結果、前述のように得られた更新前の暗号化データは、前述のように得られた更新前復号用鍵情報によって元のデータに復号可能となる。
【００６５】
次に、本発明の第１の実施の形態の効果について述べる。
【００６６】
本発明の第１の実施の形態としての暗号更新システムは、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、暗号更新を行うことができる。
【００６７】
その理由は、暗号更新要求装置の鍵生成部が更新後の鍵情報を生成すると、更新前復号用鍵暗号化部が、更新前の鍵情報に含まれる情報のうち更新前の暗号化データを復号する際に必要となる更新前復号用鍵情報を、更新後の鍵情報を用いて暗号化した更新前復号用鍵暗号化データを生成し、更新要求送信部が、更新後の鍵情報に含まれる情報のうち暗号更新に必要となる暗号更新用鍵情報と更新前復号用鍵暗号化データとを含めた更新要求を、暗号更新装置に送信するからである。
【００６８】
そして、暗号更新装置の暗号化部は、更新要求の対象となる暗号化データと、更新前復号用鍵暗号化データとを含む情報を、暗号更新用鍵情報で暗号化することにより更新後の暗号化データを生成するからである。
【００６９】
このように、本実施の形態の暗号更新要求装置は、暗号更新の対象となる暗号化データを受信する処理、受信した暗号化データを一旦復号する処理、および、一旦復号したデータを更新後の鍵により再度暗号化する処理を行う必要がない。そして、本実施の形態の暗号更新要求装置は、更新前の鍵情報および更新後の鍵情報に基づく更新要求を暗号更新装置に送信するだけでよい。したがって、本実施の形態は、暗号更新を希望する利用者側の装置として暗号更新要求装置を適用することにより、暗号更新を希望する利用者側の装置の負荷を軽減することになる。
【００７０】
しかも、本実施の形態の暗号更新装置は、更新後の暗号化データを生成する際に、更新前の暗号化データを一旦復号する処理を行う必要がなく、更新前の暗号化データを復号するための情報や、更新前の暗号化データが暗号化される前の元のデータを知り得ない。なぜなら、暗号更新要求装置から受信される更新要求に含まれる更新前復号用鍵暗号化データは、更新後の鍵情報によって暗号化されているからである。また、更新要求に含まれる暗号更新用鍵情報には、更新後の鍵情報に含まれる情報のうち暗号更新に必要な情報は含まれるが、更新前復号用鍵暗号化データを復号可能な情報は含まれないからである。つまり、暗号更新装置は、更新前復号用鍵暗号化データを復号することはできない。したがって、本実施の形態は、暗号更新装置の管理者であるデータベース管理者に対して、復号用の情報を与えることがなく、元の平文データを秘匿したままにすることができる。
【００７１】
（第２の実施の形態）
本発明の第２の実施の形態としての暗号更新システム２の構成を図５に示す。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、本発明の暗号更新システムに、暗号更新された暗号化データを復号する復号装置が含まれる例について説明する。
【００７２】
図５において、暗号更新システム２は、本発明の第１の実施の形態としての暗号更新システム１に対して、暗号更新装置２００に替えて暗号更新装置２２０を備え、さらに、復号装置３００を備える点が異なる。また、暗号更新装置２２０および復号装置３００は、インターネット、ＬＡＮ、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。また、復号装置３００は、鍵記憶装置８００とも通信可能に接続されている。例えば、復号装置３００および鍵記憶装置８００は、ネットワークまたは外部装置接続インタフェースを介して接続されていてもよい。この場合、復号装置３００および鍵記憶装置８００間の通信は、セキュリティ性が確保されたものであることが望ましい。あるいは、復号装置３００および鍵記憶装置８００は、同一のコンピュータ装置によって構成されていてもよい。さらには、暗号更新要求装置１００と、復号装置３００と、鍵記憶装置８００とが、同一のコンピュータ装置によって構成されていてもよい。なお、図５には、各装置を１つずつ示したが、本発明の暗号更新システムが備える各装置の数および接続される各装置の数を限定するものではない。
【００７３】
次に、暗号更新システム２を構成する各装置のハードウェア構成を図６に示す。
【００７４】
図６において、暗号更新装置２２０は、本発明の第１の実施の形態における暗号更新装置２００と同一のハードウェアによって構成されている。また、復号装置３００は、ＣＰＵ３００１と、ＲＡＭ３００２と、ＲＯＭ３００３と、ハードディスク等の記憶装置３００４と、ネットワークインタフェース３００５とを備えたコンピュータ装置によって構成されている。例えば、復号装置３００は、暗号化されたデータの保有者である利用者によって携帯される端末によって構成されていてもよい。
【００７５】
ＲＯＭ３００３および記憶装置３００４には、コンピュータ装置を本実施の形態の復号装置３００として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
【００７６】
ＣＰＵ３００１は、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行する。
【００７７】
ネットワークインタフェース３００５は、ネットワークを介して暗号更新装置２２０との通信を行うモジュールである。
【００７８】
さらに、復号装置３００は、鍵記憶装置８００と接続するための図示しない他のネットワークインタフェースまたは外部装置接続インタフェースを備えていてもよい。なお、復号装置３００および鍵記憶装置８００が同一のコンピュータ装置によって構成される場合、鍵記憶装置８００は、記憶装置３００４によって構成可能である。
【００７９】
次に、暗号更新システム２を構成する各装置の機能ブロックについて、図７を参照して説明する。
【００８０】
まず、暗号更新装置２２０の機能ブロックについて説明する。
【００８１】
図７において、暗号更新装置２２０は、本発明の第１の実施の形態としての暗号更新装置２００と同一の構成に加えて、さらに、暗号化データ送信部２２２を備えている。暗号化データ送信部２２２は、ネットワークインタフェース２００５と、ＲＯＭ２００３および記憶装置２００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ２００２に読み込んで実行するＣＰＵ２００１とによって構成される。なお、暗号更新装置２２０およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
【００８２】
暗号化データ送信部２２２は、暗号化データ記憶装置９００に記憶されている暗号化データを、復号装置３００に対して送信する。例えば、暗号化データ送信部２２２は、復号装置３００から受信する暗号化データの取得要求に応じて、該当する暗号化データを送信してもよい。
【００８３】
次に、復号装置３００の機能ブロックについて説明する。
【００８４】
図７において、復号装置３００は、更新後鍵取得部３０１と、暗号化データ受信部３０２と、復号部３０３とを備える。ここで、更新後鍵取得部３０１および復号部３０３は、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ３００２に読み込んで実行するＣＰＵ３００１によって構成される。また、暗号化データ受信部３０２は、ネットワークインタフェース３００５と、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ３００２に読み込んで実行するＣＰＵ３００１とによって構成される。なお、復号装置３００およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
【００８５】
更新後鍵取得部３０１は、鍵記憶装置８００から、更新後の鍵情報を取得する。
【００８６】
暗号化データ受信部３０２は、暗号更新装置２２０から、更新後の暗号化データを受信する。例えば、暗号化データ受信部３０２は、暗号更新装置２２０に対して暗号化データの取得要求を送信することにより、該当する暗号化データを受信してもよい。具体的には、暗号化データ受信部３０２は、復号対象とする暗号化データを特定する情報を、暗号化データの取得要求に含めて暗号更新装置２２０に送信すればよい。また、暗号化データ受信部３０２は、このような復号対象とする暗号化データを特定する情報を、入力装置（図示せず）を介して取得してもよい。これにより、復号対象となる暗号化データは、利用者によって指定可能となる。
【００８７】
復号部３０３は、更新後の暗号化データを、更新後の鍵情報を用いて元のデータに復号する。具体的には、復号部３０３は、更新後の暗号化データを、更新後の鍵情報を用いて復号することにより、更新前復号用鍵暗号化データおよび更新前の暗号化データを取得する。また、復号部３０３は、取得した更新前復号用鍵暗号化データを、更新後の鍵情報を用いて復号することにより、更新前復号用鍵情報を取得する。また、復号部３０３は、取得した更新前復号用鍵情報を用いて、更新前の暗号化データを元のデータに復号する。
【００８８】
以上のように構成された暗号更新システム２の動作について、図８を参照して説明する。なお、暗号更新システム２の暗号更新動作は、図４を参照して説明した本発明の第１の実施の形態としての暗号更新システム１と同様であるため、本実施の形態における詳細な説明を省略する。ここでは、暗号更新システム２における復号動作について説明する。なお、図８において、左図は復号装置３００の動作を示し、右図は暗号更新装置２２０の動作を示し、左右を結ぶ破線の矢印はデータの流れを示すものとする。
【００８９】
また、暗号化データ記憶装置９００には、更新後の暗号化データが記憶されており、鍵記憶装置８００には、更新後の鍵情報が記憶されているものとする。
【００９０】
まず、復号装置３００の暗号化データ受信部３０２は、暗号更新装置２２０に対して更新後の暗号化データの取得要求を送信する（ステップＳ１１）。この取得要求には、例えば、復号対象とする更新後の暗号化データを特定する情報が含まれる。
【００９１】
次に、暗号更新装置２２０の暗号化データ送信部２２２は、ステップＳ１１で送信された取得要求が対象とする更新後の暗号化データを、暗号化データ記憶部３０から取得する（ステップＳ１２）。
【００９２】
次に、暗号化データ送信部２２２は、ステップＳ１２で取得した更新後の暗号化データを、復号装置３００に送信する（ステップＳ１３）。
【００９３】
次に、復号装置３００の暗号化データ受信部３０２は、更新後の暗号化データを受信する（ステップＳ１４）。
【００９４】
次に、更新後鍵取得部３０１は、鍵記憶装置８００に記憶された更新後の鍵情報を取得する（ステップＳ１５）。
【００９５】
次に、復号部３０３は、ステップＳ１４で受信された更新後の暗号化データを、ステップＳ１５で取得された更新後の鍵情報を用いて復号する（ステップＳ１６）。これにより、更新前復号用鍵暗号化データと、更新前の暗号化データとが得られる。
【００９６】
次に、復号部３０３は、ステップＳ１６で得られた更新前復号用鍵暗号化データを、ステップＳ１５で取得された更新後の鍵情報を用いて復号する（ステップＳ１７）。これにより、更新前復号用鍵情報が得られる。
【００９７】
次に、復号部３０３は、ステップＳ１６で得られた更新前の暗号化データを、ステップＳ１７で得られた更新前復号用鍵情報を用いて復号する（ステップＳ１８）。もし、更新前復号用鍵情報に更新前の暗号方式を表す情報も含まれる場合、復号部３０３は、更新前の暗号方式により、更新前復号用鍵情報を用いて、更新前の暗号化データを復号すればよい。これにより、更新前の暗号化データが暗号化される前の元のデータが得られる。
【００９８】
以上で、暗号更新システム２は復号動作を終了する。
【００９９】
次に、本発明の第２の実施の形態の効果について述べる。
【０１００】
本発明の第２の実施の形態としての暗号更新システムは、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、暗号更新された暗号化データから、元のデータを復号することができる。
【０１０１】
その理由は、復号装置の復号部が、更新後の暗号化データを、更新後の鍵情報を用いて復号することにより、更新前の暗号化データと、更新前復号用鍵暗号化データとを取得するからである。そして、復号部が、この更新前復号用鍵暗号化データを、更新後の鍵情報を用いて復号することにより、更新前の暗号化データを復号するための更新前復号用鍵情報を取得するからである。その結果、復号部は、この更新前復号用鍵情報を用いて、更新前の暗号化データを復号可能となるからである。
【０１０２】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第２の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、本発明において公開鍵暗号方式を適用する場合について説明する。公開鍵暗号方式は、公開鍵および秘密鍵という２つの対になる鍵を用いて暗号化および復号を行う方式である。公開鍵によって暗号化された暗号化データは秘密鍵によって復号可能である。また、公開鍵に基づき秘密鍵を求めることが困難とされている。公開鍵は一般に公開され、秘密鍵はデータの所有者によって秘匿されるのが一般的である。
【０１０３】
まず、本発明の第３の実施の形態としての暗号更新システム３の構成を図９に示す。図９において、暗号更新システム３は、本発明の第２の実施の形態としての暗号更新システム２に対して、暗号更新要求装置１００に替えて暗号更新要求装置１３０と、暗号更新装置２２０に替えて暗号更新装置２３０と、復号装置３００に替えて復号装置３３０とを備える点が異なる。なお、本実施の形態において、暗号更新装置２３０と、復号装置３３０と、鍵記憶装置８００とは、同一のコンピュータ装置である利用者装置によって構成されていてもよい。また、暗号更新システム３を構成する各装置は、図６を参照して説明した本発明の第２の実施の形態としての暗号更新システム２を構成する各装置と同様のハードウェアによって構成可能である。
【０１０４】
なお、本実施の形態では、鍵記憶装置８００は、公開鍵暗号方式における公開鍵および秘密鍵を含む鍵情報を記憶しているものとする。
【０１０５】
また、本実施の形態では、暗号化データ記憶装置９００は、鍵記憶装置８００に記憶された更新前の公開鍵により暗号化された暗号化データを記憶しているものとする。
【０１０６】
まず、暗号更新要求装置１３０の機能ブロックについて説明する。
【０１０７】
図９において、暗号更新要求装置１３０は、本発明の第２の実施の形態としての暗号更新要求装置１００に対して、鍵生成部１０２に替えて鍵生成部１３２と、更新前復号用鍵暗号化部１０３に替えて更新前復号用鍵暗号化部１３３と、更新要求送信部１０４に替えて更新要求送信部１３４とを備える点が異なる。
【０１０８】
鍵生成部１３２は、公開鍵暗号方式における更新後の公開鍵および秘密鍵を含む更新後の鍵情報を生成する。また、鍵生成部１３２は、更新後の公開鍵および秘密鍵を含む更新後の鍵情報を、鍵記憶装置８００に登録してもよい。また、鍵生成部１３２は、暗号更新装置２３０における暗号更新が完了すると、更新前の公開鍵および秘密鍵を含む更新前の鍵情報を、鍵記憶装置８００から削除してもよい。
【０１０９】
更新前復号用鍵暗号化部１３３は、本発明の更新前復号用鍵情報として、更新前の秘密鍵を適用する。すなわち、更新前復号用鍵暗号化部１３３は、更新前の秘密鍵を、更新後の公開鍵で暗号化したものを、更新前復号用鍵暗号化データとして生成する。
【０１１０】
更新要求送信部１３４は、本発明の暗号更新用鍵情報として、更新後の公開鍵を適用する。すなわち、更新要求送信部１３４は、更新前復号用鍵暗号化データと、更新後の公開鍵とを、更新要求に含めて暗号更新装置２３０に送信する。
【０１１１】
次に、暗号更新装置２３０の機能ブロックについて説明する。
【０１１２】
図９において、暗号更新装置２３０は、本発明の第２の実施の形態としての暗号更新装置２００に対して、暗号更新部２０１に替えて暗号更新部２３１を備える点が異なる。
【０１１３】
暗号更新部２３１は、暗号更新要求装置１３０から受信した更新要求が対象とする暗号化データと、この更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、更新要求に含まれる暗号更新用鍵情報としての更新後の公開鍵を用いて暗号化したものを、更新後の暗号化データとする。また、暗号更新部２３１は、更新後の暗号化データを暗号化データ記憶装置９００に登録し、更新前の暗号化データを削除する。
【０１１４】
次に、復号装置３３０の機能ブロックについて説明する。
【０１１５】
図９において、復号装置３３０は、本発明の第２の実施の形態としての復号装置３００に対して、復号部３０３に替えて復号部３３３を備える点が異なる。
【０１１６】
復号部３３３は、更新後の秘密鍵を用いて、暗号化データ受信部３０２によって受信された更新後の暗号化データを復号する。これにより、更新前復号用鍵暗号化データと、更新前の暗号化データとが得られる。そして、復号部３３３は、更新後の秘密鍵を用いて、更新前復号用鍵暗号化データを復号する。これにより、更新前の秘密鍵が得られる。そして、復号部３３３は、更新前の秘密鍵を用いて、更新前の暗号化データを復号する。
【０１１７】
以上のように構成された暗号更新システム３の動作について、図１０〜図１１を参照して説明する。なお、以下の説明において、更新前の公開鍵をpk_bと記載し、更新前の秘密鍵をsk_bと記載する。また、更新後の公開鍵をpk_n、更新後の秘密鍵をsk_nと記載する。また、公開鍵暗号方式における暗号化アルゴリズムをEncと記載する。また、暗号化される前の元のデータをd_iと記載する。また、暗号化アルゴリズムEncにより公開鍵pk_xを用いてデータd_xを暗号化した暗号化データをEnc_｛pk_x｝（d_x）と記載する。また、暗号化データ記憶装置９００には、更新前の暗号化データであるEnc_｛pk_b｝（d_i）が記憶されているものとする。また、Enc_｛pk_b｝（d_i）を暗号化データ記憶装置９００において特定する情報としてアドレスadd_iが、暗号更新要求装置１３０に対して与えられているものとする。
【０１１８】
図１０では、まず、暗号更新要求装置１３０の更新前鍵取得部１０１は、鍵記憶装置８００から、更新前の鍵情報を取得する（ステップＳ２０）。このとき、更新前鍵取得部１０１は、更新前復号用鍵情報である更新前の秘密鍵sk_bを少なくとも取得すればよい。
【０１１９】
次に、鍵生成部１３２は、更新後の公開鍵pk_nおよび秘密鍵sk_nを含む更新後の鍵情報を生成する（ステップＳ２１）。そして、鍵生成部１３２は、更新後の鍵情報を、鍵記憶装置８００に記憶させる。
【０１２０】
次に、更新前復号用鍵暗号化部１３３は、ステップＳ２０で取得された更新前の秘密鍵sk_b（更新前復号用鍵情報）を、更新後の公開鍵pk_nで暗号化したEnc_｛pk_n｝（sk_b）を、更新前復号用鍵暗号化データとして生成する（ステップＳ２２）。
【０１２１】
次に、更新要求送信部１３４は、更新前復号用鍵暗号化データEnc_｛pk_n｝（sk_b）と、更新後の公開鍵pk_n（暗号更新用鍵情報）と、暗号更新の要求対象となる更新前の暗号化データを特定するアドレスadd_iとを、更新要求requestに含めて暗号更新装置２３０に送信する（ステップＳ２３）。
【０１２２】
次に、更新要求requestを受信した暗号更新装置２３０の暗号更新部２３１は、更新要求requestに含まれるアドレスadd_iによって特定される更新前の暗号化データEnc_｛pk_b｝（d_i）を、暗号化データ記憶装置９００から取得する（ステップＳ２４）。
【０１２３】
次に、暗号更新部２３１は、更新前の暗号化データと更新前復号用鍵暗号化データとを連結することによりD_i=Enc_{pk_b}(d_i)||Enc_{pk_n}(sk_b)を生成する。ここで、“||”は、ビットで表されたデータの連結を表す。そして、暗号更新部２３１は、このD_iを、更新後の公開鍵pk_nを用いて暗号化することにより、更新後の暗号化データとしてEnc_{pk_n}(D_i)を生成する（ステップＳ２５）。
【０１２４】
次に、暗号更新部２３１は、更新後の暗号化データEnc_{pk_n}(D_i)を暗号化データ記憶装置９００に登録する。さらに、暗号更新部２３１は、暗号化データ記憶装置９００から、更新前の暗号化データEnc_{pk_b}(d_i)を削除する（ステップＳ２６）。これにより、アドレスadd_iにより更新後の暗号化データEnc_{pk_n}(D_i)が特定されるようになったものとする。
【０１２５】
また、この時点で、暗号更新部２３１は、暗号更新要求装置１３０に、暗号更新の完了を通知してもよい。そして、通知を受けた暗号更新要求装置１３０は、鍵記憶装置８００から、更新前の鍵情報（pk_bおよびsk_b）を削除してもよい。
【０１２６】
以上で、暗号更新システム３は、暗号更新動作を終了する。
【０１２７】
次に、暗号更新システム３が、更新後の暗号化データを復号する動作を図１１に示す。
【０１２８】
図１１において、まず、復号装置３３０の暗号化データ受信部３０２は、復号対象とする更新後の暗号化データを特定するアドレスadd_iを含む取得要求を、暗号更新装置２３０に対して送信する（ステップＳ３０）。
【０１２９】
次に、暗号更新装置２３０の暗号化データ送信部２２２は、取得要求に含まれるアドレスadd_iによって特定される更新後の暗号化データEnc_{pk_n}(D_i)を、暗号化データ記憶装置９００から取得する（ステップＳ３１）。
【０１３０】
次に、暗号化データ送信部２２２は、更新後の暗号化データEnc_{pk_n}(D_i)を、復号装置３３０に対して送信する（ステップＳ３２）。
【０１３１】
そして、復号装置３３０の暗号化データ受信部３０２は、暗号化データEnc_{pk_n}(D_i)を受信する（ステップＳ３３）。
【０１３２】
次に、更新後鍵取得部３０１は、鍵記憶装置８００から、更新後の鍵情報を取得する（ステップＳ３４）。このとき、更新後鍵取得部３０１は、更新後の秘密鍵sk_nを少なくとも取得すればよい。
【０１３３】
次に、復号部３３３は、ステップＳ３３で受信された暗号化データEnc_{pk_n}(D_i)を、ステップＳ３４で取得された更新後の秘密鍵sk_nを用いて復号する（ステップＳ３５）。これにより、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)および更新前の暗号化データEnc_{pk_b}(d_i)が連結されたデータD_i=Enc_{pk_n}(sk_b)||Enc_{pk_b}(d_i)が得られる。
【０１３４】
次に、復号部３３３は、更新後の秘密鍵sk_nを用いて、ステップＳ３５で得られた更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)を復号する（ステップＳ３６）。これにより、更新前の秘密鍵sk_bが得られる。
【０１３５】
次に、復号部３３３は、ステップＳ３６で得られた更新前の秘密鍵sk_bを用いて、ステップＳ３５で得られた更新前の暗号化データEnc_{pk_b}(d_i)を復号する（ステップＳ３７）。これにより、暗号化される前のデータd_iが得られる。
【０１３６】
以上で、暗号更新システム３の復号動作の説明を終了する。
【０１３７】
次に、本実施の形態としての暗号更新システム３において、公開暗号方式としてエルガマル暗号を適用した具体例について説明する。まず、エルガマル暗号について説明する。エルガマル暗号は鍵生成、暗号化、および、復号の３つの処理からなる公開鍵暗号方式である。以降、簡単のため、整数をpで割った余りの集合をZ_pと記載し、{1,…,p-1}をZ*_{p}と記す。
【０１３８】
＜鍵生成＞エルガマル暗号の鍵生成は、以下の通り行われる。セキュリティパラメータをκとする。
１：κビットの素数pおよびZ*_{p}の生成元gを選ぶ。
２：Z_{p-1}からxをランダムに選ぶ。
３：y = g^{x} mod p を計算する。
４：公開鍵pk = (p, g, y)、秘密鍵sk=(x)とする。
【０１３９】
＜暗号化＞エルガマル暗号の暗号化は、公開鍵pk=(p,g,y) およびメッセージM?Z*_{p}を入力として、以下の通り行われる。
１．Z_{p-1}からrをランダムに選ぶ。
２．C_1=g^{r} mod p, C_2=M・y^{r} mod p を計算する。
３．暗号文を(C_1, C_2)とする。
【０１４０】
＜復号＞エルガマル暗号の復号は、秘密鍵sk=(x)および暗号文(C_1, C_2)を入力として、以下の通り行われる。
１．M’=C_2/(C_1)^{x} mod p を計算する。
２．メッセージをM’とする。
【０１４１】
このようなエルガマル暗号を適用した場合の暗号更新システム３の動作について説明する。
【０１４２】
なお、鍵記憶装置８００には、エルガマル暗号の更新前の公開鍵pk_b=(p_b, g_b, y_b)および秘密鍵sk_b=(x_b)を含む鍵情報が記憶されているものとする。
【０１４３】
また、暗号化データ記憶装置９００には、公開鍵pk_bを用いて暗号化されたデータ Enc_{pk_b}(d_i)=(C_{1,b}=g_b^{r}, C_{2,b}=d_i・y_b^{r})を含む暗号化データが記憶されているものとする。さらに暗号化データEnc_{pk_b}(d_i)を特定するためのアドレスadd_iは、暗号更新要求装置１３０に与えられているものとする。
【０１４４】
まず、エルガマル暗号を適用した場合の暗号更新システム３の暗号更新動作について説明する。
【０１４５】
ここでは、まず、暗号更新要求装置１３０の更新前鍵取得部１０１は、鍵記憶装置８００から更新前の鍵情報を取得する（ステップＳ２０）。このとき、更新前鍵取得部１０１は、更新前復号用鍵情報である更新前の秘密鍵sk_b=(x_b)を少なくとも取得すればよい。
【０１４６】
次に、鍵生成部１３２は、更新後の鍵情報として、更新後の公開鍵pk_n=(p_n, g_n, y_n)および更新後の秘密鍵sk_n=(x_n)を生成し、鍵記憶装置８００に記憶させる（ステップＳ２１）。
【０１４７】
次に、更新前復号用鍵暗号化部１３３は、ステップＳ２０で取得された更新前の秘密鍵sk_b=(x_b)を、更新後の公開鍵pk_n=(p_n, g_n, y_n)を用いて暗号化し、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)=(g_n^{R}, sk_b・y_n^{R})を生成する（ステップＳ２２）。
【０１４８】
次に、更新要求送信部１３４は、暗号更新の対象とする更新前の暗号化データのアドレスadd_iと、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)と、暗号更新用鍵情報である更新後の公開鍵pk_nとを含む更新要求requestを、暗号更新装置２３０に送信する（ステップＳ２３）。
【０１４９】
次に、更新要求request を受け取った暗号更新装置２３０では、暗号更新部２３１は、更新要求request に含まれるアドレスadd_iによって特定される更新前の暗号化データ Enc_{pk_b}(d_i) =(C_{1,b}=g_b^{r}, C_{2,b}=d_i・y_b^{r})を、暗号化データ記憶装置９００から取得する（ステップＳ２４）。
【０１５０】
次に、暗号更新部２３１は、D_i=Enc_{pk_b}(d_i)||Enc_{pk_n}(sk_b)を、更新後の公開鍵pk_nを用いて暗号化することにより、更新後の暗号化データEnc_{pk_n}(D_i)=(g_n^{r_n}, D_i・y_n^{r_n}) を生成する（ステップＳ２５）。
【０１５１】
次に、暗号更新部２３１は、更新後の暗号化データEnc_{pk_n}(D_i)を、暗号化データ記憶装置９００に登録するとともに、暗号化データ記憶装置９００から更新前の暗号化データEnc_{pk_b}(d_i)を削除する（ステップＳ２６）。これにより、アドレスadd_iにより更新後の暗号化データEnc_{pk_n}(D_i)が特定されるようになったものとする。
【０１５２】
そして、この時点で、暗号更新部２３１は、暗号更新要求装置１３０に暗号更新の完了を通知してもよい。その場合、通知を受けた暗号更新要求装置１３０は、鍵記憶装置８００から、更新前の公開鍵pk_bおよび更新前の秘密鍵sk_bを削除してもよい。
【０１５３】
以上で、エルガマル暗号を適用した場合における暗号更新システム３の暗号更新動作の説明を終了する。
【０１５４】
次に、エルガマル暗号を適用した場合における暗号更新システム３の復号動作について説明する。
【０１５５】
まず、復号装置３３０の暗号化データ受信部３０２は、復号対象とする更新後の暗号化データを特定するアドレスadd_iを、暗号更新装置２３０に対して送信する（ステップＳ３０）。
【０１５６】
次に、暗号更新装置２３０の暗号化データ送信部２２２は、暗号化データ記憶装置９００においてアドレスadd_iによって特定される暗号化データ Enc_{pk_n}(D_i) =(g_n^{r_n}, D_i・y_n^{r_n})を取得し（ステップＳ３１）、復号装置３３０に送信する（ステップＳ３２）。そして、復号装置３３０の暗号化データ受信部３０２は、復号対象として更新後の暗号化データEnc_{pk_n}(D_i)を受信する（ステップＳ３３）。
【０１５７】
次に、更新後鍵取得部３０１は、鍵記憶装置８００から更新後の秘密鍵sk_n=(x_n)を取得する（ステップＳ３４）。
【０１５８】
次に、復号部３３３は、ステップＳ３４で取得された更新後の秘密鍵sk_n=(x_n)を用いて、暗号化データEnc_{pk_n}(D_i)を復号する（ステップＳ３５）。これにより、D_i=Enc_{pk_n}(sk_b)||Enc_{pk_b}(d_i)が得られる。
【０１５９】
次に、復号部３３３は、ステップＳ３４で取得された更新後の秘密鍵sk_nを用いて、更新前復号用鍵暗号化データであるEnc_{pk_n}(sk_b)=(g_n^{R}, sk_b・y_n^{R})を復号する（ステップＳ３６）。これにより、更新前の秘密鍵sk_b=(x_b)が得られる。
【０１６０】
次に、復号部３３３は、ステップＳ３６で得られた更新前の秘密鍵sk_b=(x_b)を用いて、ステップＳ３５で得られた更新前の暗号化データEnc_{pk_b}(d_i)=(g_b^{r}, d_i・y_b^{r}) を復号する（ステップＳ３７）。これより、元のデータd_iが得られる。
【０１６１】
以上で、エルガマル暗号を適用した場合における暗号更新システム３の復号動作の説明を終了する。
【０１６２】
なお、本実施の形態において、更新前の公開鍵暗号方式と、更新後の公開鍵暗号方式とが同一である例について説明したが、本実施の形態は、更新前および更新後の公開鍵暗号方式が異なる場合にも適用可能である。この場合、鍵記憶装置８００に記憶される鍵情報に、その公開鍵および秘密鍵を生成した公開鍵暗号方式を表す情報が含まれていればよい。また、この場合、暗号更新要求装置１３０の更新前復号用鍵暗号化部１３３は、更新前の秘密鍵および更新前の公開鍵暗号方式を表す情報を更新前復号用鍵情報とすればよい。そして、更新前復号用鍵暗号化部１３３は、更新前復号用鍵情報を更新後の公開鍵を用いて更新後の公開鍵暗号方式により暗号化したものを更新前復号用鍵暗号化データとすればよい。また、更新要求送信部１３４は、更新後の公開鍵および更新後の公開鍵暗号方式を表す情報を暗号更新用鍵情報として、更新要求に含めて送信すればよい。また、この場合、暗号更新装置２３０の暗号更新部２３１は、更新要求に含まれる暗号更新用鍵情報を参照することにより、更新後の公開鍵暗号方式により更新後の公開鍵を用いて暗号更新を行えばよい。また、この場合、復号装置３３０の復号部３３３は、更新後の暗号化データを更新後の公開鍵暗号方式により更新後の秘密鍵を用いて復号し、復号により得られる更新前復号用鍵暗号化データを更新後の公開鍵暗号方式により更新後の秘密鍵を用いて復号すればよい。これにより、更新前復号用鍵情報として、更新前の公開鍵暗号方式および更新前の秘密鍵が得られる。そして、復号部３３３は、更新前の公開鍵暗号方式により更新前の秘密鍵を用いて、更新前の暗号化データを復号すればよい。
【０１６３】
また、本実施の形態において、暗号更新システム３は、複数回の暗号更新を行う場合にも適用可能である。すなわち、暗号更新要求装置１３０は、既に暗号更新した暗号化データに対してさらに次の暗号更新を要求し、暗号更新装置２３０は、既に暗号更新された暗号化データをさらに暗号更新してもよい。
【０１６４】
この場合、具体的には、暗号更新システム３は、次のように、１回目の暗号更新と同様に２回目以降の暗号更新を行う。なお、暗号更新システム３は、１回目の暗号更新として、図１０を用いて説明した暗号化動作を行い、更新後の暗号化データとして、Enc{pk_n}(D_i)を生成したものとする。
【０１６５】
まず、暗号更新要求装置１３０の鍵生成部１３２は、さらに新たな公開鍵pk_n2および秘密鍵sk_n2を生成する。ここで、前回の更新後の公開鍵pk_nおよび秘密鍵sk_nは、今回の更新前の公開鍵および秘密鍵となる。そして、更新前復号用鍵暗号化部１３３は、更新前の秘密鍵sk_nを更新後の公開鍵pk_n2で暗号化した更新前復号用鍵暗号化データEnc_{pk_n2}(sk_n)を生成する。そして、更新要求送信部１３４は、更新前復号用鍵暗号化データEnc_{pk_n2}(sk_n)と、更新後の公開鍵pk_n2と、前回の更新後の暗号化データを特定するアドレスとを含む更新要求を、暗号更新装置２３０に送信する。
【０１６６】
次に、暗号更新装置２３０の暗号更新部２３１は、前回の更新後の暗号化データEnc{pk_n}(D_i)と、今回の更新要求に含まれる更新前復号用鍵暗号化データEnc_{pk_n2}(sk_n)とを含む情報D2_iを、今回の更新要求に含まれる公開鍵pk_n2で暗号化したEnc_{pk_n2}(D2_i)を、今回の更新後の暗号化データとして、暗号化データ記憶装置９００に登録すればよい。そして、暗号化データ記憶装置９００からは、前回の更新後の暗号化データEnc{pk_n}(D_i)が削除される。また、暗号更新要求装置１３０の鍵記憶装置８００からは、更新前の公開鍵pk_nおよび秘密鍵sk_nを含む鍵情報が削除され、今回の公開鍵pk_n2および秘密鍵sk_n2を含む鍵情報が記憶される。
【０１６７】
そして、この場合、暗号更新システム３は、次のように、複数回の暗号更新がなされた暗号化データの復号を行う。
【０１６８】
まず、復号装置３３０は、複数回の暗号更新がなされた暗号化データEnc_{pk_n2}(D2_i)に対して、図１１を用いて説明した復号動作を行う。これにより、D_iが得られる。ここで、D_iは、Enc_{pk_n}(sk_b)||Enc_{pk_b}(d_i)であり、前回の更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)と、前々回の暗号化データEnc_{pk_b}(d_i)とを含む情報である。そこで、復号部３３３は、最初の復号過程で得られている前回の秘密鍵sk_nを用いて、前回の更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)を復号する。これにより、前々回の秘密鍵sk_bが得られる。そこで、復号部３３３は、前々回の秘密鍵sk_bを用いて、前々回の暗号化データEnc_{pk_b}(d_i)を復号すればよい。これにより得られた元のデータd_iに、さらに以前の暗号化データおよび以前の更新前復号用鍵暗号化データが含まれる場合、復号部３３３は、元の平文データが得られるまで、再帰的に復号処理を行えばよい。
【０１６９】
なお、本実施の形態において、公開鍵暗号方式としてエルガマル暗号を適用する例を中心に説明したが、本実施の形態は、ＲＳＡ暗号、Cramer-Shoup 暗号などのその他の任意の公開鍵暗号方式にも適用可能である。
【０１７０】
次に、本発明の第３の実施の形態の効果について述べる。
【０１７１】
本発明の第３の実施の形態としての暗号更新システムは、公開鍵暗号方式により暗号化された暗号化データの暗号更新を、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、実行することができる。
【０１７２】
その理由は、暗号更新要求装置の更新前復号用鍵暗号化部が、更新前の秘密鍵を更新後の公開鍵で暗号化した更新前復号用鍵暗号化データを生成し、更新要求送信部が、更新前復号用鍵暗号化データと、更新後の公開鍵とを更新要求に含めて、暗号更新装置に送信するからである。つまり、本実施の形態において、暗号更新要求装置から暗号更新装置に送られるデータは、更新後の公開鍵、および、更新前の秘密鍵が更新後の公開鍵を用いて暗号化された更新前復号用鍵暗号化データである。このように、更新前の秘密鍵は更新後の公開鍵によって暗号化されているため、暗号化データ記憶装置および暗号更新装置の管理者であるデータベース管理者は、更新前の秘密鍵を知り得ない。また、暗号更新装置は、暗号更新処理として、更新前復号用鍵暗号化データおよび更新前の暗号化データを含む情報を、更新後の公開鍵で暗号化するだけでよく、更新前の暗号化データを一旦復号する必要がない。したがって、データベース管理者は、元のデータを知ることがない。このように、本実施の形態としての暗号更新システムは、暗号化データが記憶されたデータベースの管理者に対して、復号用の鍵情報および平文データを漏洩させない。
【０１７３】
また、暗号更新要求装置は、初回の暗号化データを生成して暗号化データ記憶装置に登録するだけでよく、暗号更新のほとんどの処理を、暗号更新装置に要求することができる。したがって、暗号更新要求装置は、暗号更新のために、登録した暗号化データを受信する処理、受信した暗号化データを復号する処理、および、復号したデータを更新後の鍵情報で暗号化する処理を行う必要がない。その結果、暗号更新を希望する利用者側の装置としての暗号更新要求装置の負荷が軽減される。また、更新後の暗号化データには、更新前の秘密鍵が暗号化された更新前復号用鍵暗号化データが含まれる。したがって、復号装置は、更新後の秘密鍵を用いて更新前復号用鍵暗号化データを復号することにより、更新前の秘密鍵を取得して元のデータを得ることができる。したがって、暗号更新要求装置や復号装置は、古い鍵情報を管理する必要がない。その結果、暗号更新要求装置および復号装置の負荷がさらに軽減されることになる。
【０１７４】
（第４の実施の形態）
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第２の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、本発明において共通鍵暗号方式を適用する場合について説明する。共通鍵暗号方式では、共通鍵を用いて暗号化された暗号化データは、暗号化に用いられた共通鍵と同一の共通鍵によって復号可能である。
【０１７５】
まず、本発明の第４の実施の形態としての暗号更新システム４の構成を図１２に示す。図１２において、暗号更新システム４は、本発明の第２の実施の形態としての暗号更新システム１に対して、暗号更新要求装置１００に替えて暗号更新要求装置１４０と、暗号更新装置２２０に替えて暗号更新装置２４０と、復号装置３００に替えて復号装置３４０とを備える点が異なる。なお、本実施の形態において、暗号更新装置２４０と、復号装置３４０と、鍵記憶装置８００とは、同一のコンピュータ装置である利用者装置によって構成されていてもよい。また、暗号更新システム４を構成する各装置は、図６を参照して説明した本発明の第２の実施の形態としての暗号更新システム２を構成する各装置と同様のハードウェアによって構成可能である。
【０１７６】
なお、本実施の形態では、鍵記憶装置８００は、共通鍵暗号方式における第１の共通鍵および第２の共通鍵を含む鍵情報を記憶しているものとする。
【０１７７】
また、本実施の形態では、暗号化データ記憶装置９００は、鍵記憶装置８００に記憶された更新前の第２の共通鍵により暗号化された暗号化データが記憶されているものとする。
【０１７８】
まず、暗号更新要求装置１４０の機能ブロックについて説明する。図１２において、暗号更新要求装置１４０は、本発明の第２の実施の形態としての暗号更新要求装置１００に対して、鍵生成部１０２に替えて鍵生成部１４２と、更新前復号用鍵暗号化部１０３に替えて更新前復号用鍵暗号化部１４３と、更新要求送信部１０４に替えて更新要求送信部１４４とを備える点が異なる。
【０１７９】
鍵生成部１４２は、共通鍵暗号方式における更新後の第１の共通鍵および更新後の第２の共通鍵を含む更新後の鍵情報を生成する。また、鍵生成部１４２は、更新後の第１の共通鍵および第２の共通鍵を含む更新後の鍵情報を、鍵記憶装置８００に記憶させる。また、鍵生成部１４２は、暗号更新装置２４０における暗号更新が終了すると、更新前の第１の共通鍵および第２の共通鍵を含む更新前の鍵情報を、鍵記憶装置８００から削除してもよい。
【０１８０】
更新前復号用鍵暗号化部１４３は、本発明の更新前復号用鍵情報として、更新前の第２の共通鍵を適用する。すなわち、更新前復号用鍵暗号化部１４３は、更新前の第２の共通鍵を、更新後の第１の共通鍵で暗号化したものを、更新前復号用鍵暗号化データとして生成する。
【０１８１】
更新要求送信部１４４は、本発明の暗号更新用鍵情報として、更新後の第２の共通鍵を適用する。すなわち、更新要求送信部１４４は、更新前復号用鍵暗号化データと、更新後の第２の共通鍵とを、更新要求に含めて暗号更新装置２４０に送信する。ここで、更新前復号用鍵暗号化データを復号可能な情報は、更新後の第１の共通鍵である。したがって、本発明の暗号更新用鍵情報として更新後の第２の共通鍵を適用することにより、暗号更新用鍵情報に、更新前復号用鍵暗号化データを復号可能な情報は含まれない。
【０１８２】
次に、暗号更新装置２４０の機能ブロックについて説明する。図１２において、暗号更新装置２４０は、本発明の第２の実施の形態としての暗号更新装置２２０に対して、暗号更新部２０１に替えて暗号更新部２４１を備える点が異なる。
【０１８３】
暗号更新部２４１は、暗号更新要求装置１４０から受信した更新要求が対象とする暗号化データと、この更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、更新要求に含まれる暗号更新用鍵情報である更新後の第２の共通鍵を用いて暗号化したものを、更新後の暗号化データとする。また、暗号更新部２４１は、更新後の暗号化データを暗号化データ記憶装置９００に登録し、更新前の暗号化データを削除する。
【０１８４】
次に、復号装置３４０の機能ブロックについて説明する。図１２において、復号装置３４０は、本発明の第２の実施の形態としての復号装置３００に対して、復号部３０３に替えて復号部３４３を備える点が異なる。
【０１８５】
復号部３４３は、更新後の第２の共通鍵を用いて、暗号化データ受信部３０２によって受信された更新後の暗号化データを復号する。これにより、更新前復号用鍵暗号化データと、更新前の暗号化データとが得られる。そして、復号部３４３は、更新後の第１の共通鍵を用いて、更新前復号用鍵暗号化データを復号する。これにより、更新前の第２の共通鍵が得られる。そして、復号部３４３は、更新前の第２の共通鍵を用いて、更新前の暗号化データを復号する。
【０１８６】
以上のように構成された暗号更新システム４の動作について、図１３〜図１４を参照して説明する。
【０１８７】
また、以下の説明において適用する共通鍵暗号方式は、AES（Advanced Encryption Standard）、DES（Data Encryption Standard）、MISTY（登録商標）、Camellia（登録商標）、または、その他の共通鍵暗号方式のいずれであってもよい。いずれの共通鍵暗号方式であっても、鍵生成、暗号化、および、復号の各処理は以下のように表される。
【０１８８】
＜鍵生成＞
セキュリティパラメータκを入力として、長さκのランダムな共通鍵skを出力する。鍵生成アルゴリズムを KeyGen(κ)=skと記す。
【０１８９】
＜暗号化＞
メッセージMと共通鍵skを入力として、暗号文Cを出力する。暗号化アルゴリズムをEnc_{sk}(M)=Cと記載する。
【０１９０】
＜復号＞
暗号文Cと共通鍵skを入力として、メッセージM’ を出力する。復号アルゴリズムをDec_{sk}(C)=M’と記載する。
【０１９１】
このように、共通鍵暗号方式では、共通鍵skを知らないユーザは、暗号文CからメッセージMに関する情報を得られず、共通鍵skを知っているユーザは、メッセージMの暗号文Cから正しくMを復号できる。すなわち、Dec_{sk}(Enc_{sk}(M))=Mとなることが保証されている。
【０１９２】
また、以下では、更新前の第１の共通鍵をsk_{b,1}と記載し、更新前の第２の共通鍵をsk_{b,2}と記載する。また、更新後の第１の共通鍵をsk_{n,1}と記載し、更新後の第２の共通鍵をsk_{n,2}と記載する。また、共通鍵暗号方式における暗号化アルゴリズムをEncと記載する。また、暗号化される前の元のデータをd_iと記載する。また、暗号化アルゴリズムEncにより共通鍵sk_xを用いてデータd_xを暗号化した暗号化データをEnc_｛sk_x｝（d_x）と記載する。また、暗号化データ記憶装置９００には、更新前の暗号化データであるEnc_{sk_{b,2}}(d_i)が記憶されているものとする。また、Enc_{sk_{b,2}}(d_i)を暗号化データ記憶装置９００において特定する情報としてアドレスadd_iが、暗号更新要求装置１４０に対して与えられているものとする。
【０１９３】
まず、暗号更新システム４の暗号更新動作について、図１３を参照して説明する。
【０１９４】
図１４では、まず、暗号更新要求装置１４０の更新前鍵取得部１０１は、鍵記憶装置８００から、更新前の鍵情報を取得する（ステップＳ４１）。このとき、更新前鍵取得部１０１は、更新前復号用鍵情報である更新前の第２の共通鍵sk_{b,2}を少なくとも取得すればよい。
【０１９５】
次に、鍵生成部１４２は、更新後の第１の共通鍵および第２の共通鍵（sk_{n,1}, sk_{n,2}）を生成し、鍵記憶装置８００に記憶させる（ステップＳ４２）。例えば、鍵生成部１４２は、上述のセキュリティパラメータκを用いて、KeyGen_nを２回実行することにより、KeyGen_n(κ)=sk_{n,1}、KeyGen_n(κ)=sk_{n,2}を得ることが可能である。
【０１９６】
次に、更新前復号用鍵暗号化部１４３は、ステップＳ４１で取得された更新前の第２の共通鍵sk_{b,2}を、更新後の第１の共通鍵 sk_{n,1} を用いて暗号化し、更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})を生成する（ステップＳ４３）。
【０１９７】
次に、更新要求送信部１４４は、暗号更新の対象とする暗号化データのアドレスadd_iと、更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})と、更新後の第２の共通鍵sk_{n,2}とを含む更新要求requestを、暗号更新装置２４０に対して送信する（ステップＳ４４）。
【０１９８】
次に、更新要求requestを受信した暗号更新装置２４０において、暗号更新部２４１は、更新要求requestに含まれるアドレス add_iによって特定される更新前の暗号化データEnc_{sk_{b,2}}(d_i)を、暗号化データ記憶装置９００から取得する（ステップＳ４５）。
【０１９９】
次に、暗号更新部２４１は、ステップＳ４５で取得された更新前の暗号化データと、更新要求に含まれる更新前復号用鍵暗号化データとを連結したデータD_i=Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,2})を生成する。そして、暗号更新部２４１は、生成したD_iを更新後の第２の共通鍵sk_{n,2}を用いて暗号化し、更新後の暗号化データEnc_{sk_{n,2}}(D_i)を生成する（ステップＳ４６）。
【０２００】
次に、暗号更新部２４１は、更新後の暗号化データEnc_{sk_{n,2}}(D_i)を暗号化データ記憶装置９００に登録するとともに、更新前の暗号化データEnc_{sk_{b,2}}(d_i)を暗号化データ記憶装置９００から削除する（ステップＳ４７）。これにより、アドレスadd_iにより更新後の暗号化データEnc_{sk_{n,2}}(D_i)が特定されるようになったものとする。
【０２０１】
以上で、暗号更新システム４は、暗号更新動作を終了する。
【０２０２】
次に、暗号更新システム４が更新後の暗号化データを復号する動作について、図１４を参照して説明する。
【０２０３】
図１４において、まず、復号装置３４０の暗号化データ受信部３０２は、復号対象とする更新後の暗号化データを特定するアドレスadd_iを含む取得要求を、暗号更新装置２４０に対して送信する（ステップＳ５０）。
【０２０４】
次に、暗号更新装置２４０の暗号化データ送信部２２２は、取得要求に含まれるアドレスadd_iによって特定される更新後の暗号化データEnc_{sk_{n,2}}(D_i)を暗号化データ記憶装置９００から取得する（ステップＳ５１）。
【０２０５】
次に、暗号化データ送信部２２２は、更新後の暗号化データEnc_{ sk_{n,2}}(D_i)を復号装置３４０に対して送信する（ステップＳ５２）。
【０２０６】
そして、復号装置３４０の暗号化データ受信部３０２は、更新後の暗号化データEnc_{sk_{n,2}}(D_i)を受信する（ステップＳ５３）。
【０２０７】
次に、更新後鍵取得部３０１は、鍵記憶装置８００から、更新後の第１の共通鍵sk_{n,1}および第２の共通鍵sk_{n,2}を取得する（ステップＳ５４）。
【０２０８】
次に、復号部３４３は、ステップＳ５３で受信された暗号化データEnc_{ sk_{n,2}}(D_i)を、ステップＳ５４で取得された更新後の第２の共通鍵sk_{n,2}を用いて復号する（ステップＳ５５）。これにより、D_i= Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,2})が得られる。すなわち、D_iは、更新前の暗号化データEnc_{sk_{b,2}}(d_i)および更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})が連結されたデータである。
【０２０９】
次に、復号部３４３は、ステップＳ５４で取得された更新後の第１の共通鍵sk_{n,1}を用いて、ステップＳ５５で得られた更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})を復号する（ステップＳ５６）。これにより、更新前の第２の共通鍵sk_{b,2}が得られる。
【０２１０】
次に、復号部３４３は、ステップＳ５６で得られた更新前の第２の共通鍵sk_{b,2}を用いて、ステップＳ５５で得られた更新前の暗号化データEnc_{sk_{b,2}}(d_i)を復号する（ステップＳ５７）。これにより、暗号化される前のデータd_iが得られる。
【０２１１】
以上で、暗号更新システム４の復号動作の説明を終了する。
【０２１２】
なお、本実施の形態において、更新前の共通鍵暗号方式と、更新後の共通鍵暗号方式とが同一である例について説明したが、暗号更新システム４は、更新前および更新後の共通鍵暗号方式が異なる場合にも適用可能である。この場合、鍵記憶装置８００に記憶される鍵情報に、その第１の共通鍵および第２の共通鍵を生成した共通鍵暗号方式を表す情報が含まれていればよい。また、この場合、暗号更新要求装置１４０の更新前復号用鍵暗号化部１４３は、更新前の第２の共通鍵および更新前の共通鍵暗号方式を表す情報を更新前復号用鍵情報とすればよい。そして、更新前復号用鍵暗号化部１４３は、更新前復号用鍵情報を更新後の第１の共通鍵を用いて更新後の共通鍵暗号方式により暗号化したものを更新前復号用鍵暗号化データとすればよい。また、更新要求送信部１４４は、更新後の第２の共通鍵および更新後の共通鍵暗号方式を表す情報を暗号更新用鍵情報として、更新要求に含めて送信すればよい。また、この場合、暗号更新装置２４０の暗号更新部２４１は、更新要求に含まれる暗号更新用鍵情報を参照することにより、更新後の共通鍵暗号方式により更新後の第２の共通鍵を用いて暗号更新を行えばよい。また、この場合、復号装置３４０の復号部３４３は、更新後の暗号化データを更新後の共通鍵暗号方式により更新後の第２の共通鍵を用いて復号し、復号により得られる更新前復号用鍵暗号化データを更新後の共通鍵暗号方式により更新後の第１の共通鍵を用いて復号すればよい。これにより、更新前復号用鍵情報として、更新前の共通鍵暗号方式および更新前の第２の共通鍵が得られる。そして、復号部３４３は、更新前の共通鍵暗号方式により更新前の第２の共通鍵を用いて、更新前の暗号化データを復号すればよい。
【０２１３】
次に、本発明の第４の実施の形態の効果について述べる。
【０２１４】
本発明の第４の実施の形態としての暗号更新システムは、共通鍵暗号方式により暗号化された暗号化データの暗号更新を、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、実行することができる。
【０２１５】
その理由は、暗号更新要求装置の更新前復号用鍵暗号化部が、更新前の第２の共通鍵を更新後の第１の共通鍵で暗号化した更新前復号用鍵暗号化データを生成し、更新要求送信部が、更新前復号用鍵暗号化データと、更新後の第２の共通鍵とを更新要求に含めて、暗号更新装置に送信するからである。つまり、本実施の形態において、暗号更新要求装置から暗号更新装置に送られるデータは、更新後の第２の共通鍵、および、更新前の第２の共通鍵が更新後の第１の共通鍵を用いて暗号化された更新前復号用鍵暗号化データである。また、更新要求には、更新後の第１の共通鍵が含まれないため、暗号更新装置は、更新前復号用鍵暗号化データを復号して更新前の第２の共通鍵を得ることはできない。したがって、暗号化データ記憶装置および暗号更新装置の管理者であるデータベース管理者は、更新前の暗号化データを復号するための更新前の第２の共通鍵を知り得ない。そして、暗号更新装置は、暗号更新処理として、更新前復号用鍵暗号化データおよび更新前の暗号化データを含む情報を、更新後の第２の共通鍵で暗号化するだけでよく、更新前の暗号化データを一旦復号する必要がない。したがって、データベース管理者は、元のデータを知ることがない。このように、本実施の形態としての暗号更新システムは、データベース管理者に対して、更新前の鍵情報や平文データを漏洩させない。
【０２１６】
また、暗号更新要求装置は、初回の暗号化データを生成して暗号化データ記憶装置に登録するだけでよく、暗号更新のほとんどの処理を、暗号更新装置に要求することができる。したがって、暗号更新要求装置は、暗号更新のために、登録した暗号化データを受信する処理、受信した暗号化データを復号する処理、および、復号したデータを更新後の鍵情報で暗号化する処理を行う必要がない。その結果、暗号更新を希望する利用者側の装置としての暗号更新要求装置の負荷が軽減される。また、更新後の暗号化データには、更新前の第２の共通鍵が更新後の第１の共通鍵で暗号化された更新前復号用鍵暗号化データが含まれる。このため、復号装置は、更新後の第１の共通鍵を知っていれば、更新前復号用鍵暗号化データを復号することにより、更新前の第２の共通鍵を取得して元のデータを得ることができる。したがって、暗号更新要求装置や復号装置は、古い鍵情報を管理する必要がない。したがって、暗号更新要求装置および復号装置の負荷がさらに軽減されることになる。
【０２１７】
（第５の実施の形態）
次に、本発明の第５の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第４の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、共通鍵暗号方式を適用する場合において、２回以上の暗号更新を行うケースについて説明する。
【０２１８】
まず、本発明の第５の実施の形態としての暗号更新システム５の構成を図１５に示す。図１５において、暗号更新システム５は、本発明の第４の実施の形態としての暗号更新システム４に対して、暗号更新要求装置１４０に替えて暗号更新要求装置１５０と、復号装置３４０に替えて復号装置３５０とを備える点が異なる。なお、暗号更新要求装置１５０および復号装置３５０は、図２を参照して説明した本発明の第２の実施の形態としての暗号更新要求装置１００および復号装置３００と同一のハードウェアによって構成可能である。
【０２１９】
まず、暗号更新要求装置１５０の機能ブロックについて説明する。図１５において、暗号更新要求装置１５０は、本発明の第４の実施の形態としての暗号更新要求装置１４０に対して、更新前復号用鍵暗号化部１４３に替えて更新前復号用鍵暗号化部１５３を備える点が異なる。
【０２２０】
更新前復号用鍵暗号化部１５３は、本発明の更新前復号用鍵情報として、更新前の第１の共通鍵および第２の共通鍵を適用する。すなわち、更新前復号用鍵暗号化部１５３は、更新前の第１の共通鍵および第２の共通鍵を含む情報を、更新後の第１の共通鍵を用いて暗号化したものを、更新前復号用鍵暗号化データとして生成する。
【０２２１】
次に、復号装置３５０の機能ブロックについて説明する。図１５において復号装置３５０は、本発明の第４の実施の形態としての復号装置３４０に対して、復号部３４３に替えて復号部３５３を備える点が異なる。
【０２２２】
復号部３５３は、本発明の第４の実施の形態における復号部３４３と同様に構成されることにより得られる元のデータに対して、再帰的な復号処理を実行する。具体的には、復号部３５３は、１回目の復号処理により得られたデータに、さらに前々回の暗号化データと、前回の更新前復号用鍵暗号化データとが含まれる場合、次のように動作するよう構成される。本実施の形態では、更新前復号用鍵暗号化データからは、更新前の第１の共通鍵および第２の共通鍵が復号可能である。つまり、復号部３５３は、１回目の復号処理の過程で、更新前の第１の共通鍵および第２の共通鍵を得ている。そこで、復号部３５３は、１回目の復号処理により得られたデータに含まれている前回の更新前復号用鍵暗号化データを、更新前の第１の共通鍵を用いて復号する。これにより、前々回の第１の共通鍵および第２の共通鍵が得られる。そして、復号部３５３は、１回目の復号処理により得られたデータに含まれている前々回の暗号化データを、前々回の第２の共通鍵で復号する。これにより、前々回の暗号化データが暗号化される前の元のデータが得られる。このようにして、復号部３５３は、元の平文データが得られるまで、再帰的に復号処理を実行する。
【０２２３】
暗号更新装置２４０は、本発明の第４の実施の形態と同様に構成される。ただし、暗号更新部２４１は、暗号更新要求装置１５０から受信される更新要求が対象とする暗号化データが、既に暗号更新された後の暗号化データであった場合にも、同様に動作するよう構成される。
【０２２４】
すなわち、暗号更新部２４１は、暗号化データ記憶装置９００に記憶されている前回の更新後の暗号化データと、今回の更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、今回の更新要求に含まれる第２の共通鍵で暗号化したものを、今回の更新後の暗号化データとする。ここで、暗号化データ記憶装置９００に記憶されている前回の更新後の暗号化データとは、前々回の暗号化データと、前回の更新前復号用鍵暗号化データとを含む情報が、前回の第２の共通鍵で暗号化されたデータである。また、この前回の更新前復号用鍵暗号化データは、前々回の暗号化データを復号するための前々回の第２の共通鍵が前回の第１の共通鍵で暗号化されたデータである。
【０２２５】
以上のように構成された暗号更新システム５の暗号更新の動作について、図面を参照して説明する。
【０２２６】
まず、暗号更新システム５は、図１３を用いて説明した本発明の第４の実施の形態の暗号更新システム５と略同様に動作することにより、暗号化データ記憶装置９００に記憶された暗号化データEnc_{sk_{b,2}}(d_i)を暗号更新する。ただし、図１３のステップＳ４３において、更新前復号用鍵暗号化部１５３は、更新前の第１の共通鍵および更新前の第２の共通鍵を含む情報を更新後の第１の共通鍵で暗号化する点が異なる。つまり、本発明の第４の実施の形態では、ステップＳ４３において、更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})が生成されていたが、本実施の形態では、ステップＳ４３において、更新前復号用鍵暗号化データとしてEnc_{sk_{n,1}}(sk_{b,1}||sk_{b,2})が生成される。
【０２２７】
そして、暗号更新システム５が上述のように暗号更新動作を終えると、暗号化データ記憶装置９００には、暗号化データEnc_{sk_{n,2}}(D_i)が記憶されている。ここで、本実施の形態では、D_i=Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,1}||sk_{b,2})となる。
【０２２８】
また、この時点で、暗号更新要求装置１５０は、鍵記憶装置８００から更新前の第１の共通鍵sk_{b,1}および第２の共通鍵sk_{b,2}を削除する。したがって、鍵記憶装置８００には、第１の共通鍵sk_{n,1}および第２の共通鍵sk_{n,2}が記憶されている。
【０２２９】
さらに暗号更新を行う場合、暗号更新システム５は、図１３を用いて説明した本発明の第４の実施の形態の暗号更新システム５と略同様に動作する。
【０２３０】
すなわち、まず、鍵生成部１４２は、さらに更新後の第１の共通鍵sk_{nn,1}および第２の共通鍵sk_{nn,2}を生成し、鍵記憶装置８００に記憶させる。
【０２３１】
次に、更新前復号用鍵暗号化部１５３は、この時点において更新前の第１の共通鍵となるsk_{n,1}および更新前の第２の共通鍵となるsk_{n,2}を含む情報を、今回の更新後の第１の共通鍵sk_{nn,1}を用いて暗号化したEnc_{sk_{nn,1}(sk_{n,1}||sk_{n,2})を、更新前復号用鍵暗号化データとして生成する。
【０２３２】
次に、更新要求送信部１４４は、この更新前復号用鍵暗号化データと、今回の更新後の第２の共通鍵sk_{nn,2}とを含む更新要求を、暗号更新装置２４０に送信する。
【０２３３】
次に、暗号更新装置２４０の暗号更新部２４１は、既に暗号更新された暗号化データEnc_{ sk_{n,2}}(D_i)に対して、さらに暗号更新を実行する。すなわち、暗号更新部２４１は、DD_i=Enc_{sk_{n,2}}(D_i))|| Enc_{sk_{nn,1}}(sk_{n,1}||sk_{n,2})を求め、新たに更新した暗号化データとしてEnc_{sk_{nn,2}}(DD_i)を生成する。そして、暗号更新部２４１は、Enc{sk_{nn,2}}(DD_i)を、暗号化データ記憶装置９００に登録するとともに、Enc_{sk_{n,2}}(D_i)を、暗号化データ記憶装置９００から削除する。
【０２３４】
また、暗号更新要求装置１５０は、鍵記憶装置８００から、更新前の第１の共通鍵であるsk_{n,1}および更新前の第２の共通鍵であるsk_{n,2}を削除する。したがって、鍵記憶装置８００には、最新の第１の共通鍵および第２の共通鍵であるsk_{nn,1},sk_{nn,2}が記憶されている。
【０２３５】
次に、暗号更新システム５が、２回以上暗号更新された暗号化データを復号する動作について、図１６を参照して説明する。
【０２３６】
まず、復号装置３５０の暗号化データ受信部３０２は、暗号更新装置２４０に暗号化データの取得要求を送信することにより、Enc{sk_{nn,2}}(DD_i)を受信する（ステップＳ５０〜Ｓ５３）。
【０２３７】
次に、更新後鍵取得部３０１は、鍵記憶装置８００から、最新の第１の共通鍵sk_{nn,1}および第２の共通鍵sk_{nn,2}を取得する（ステップＳ５４）。
【０２３８】
次に、復号部３５３は、ステップＳ５３で受信された暗号化データEnc{sk_{nn,2}}(DD_i)を、ステップＳ５４で取得された最新の第２の共通鍵sk_{nn,2}を用いて復号する（ステップＳ５５）。これにより、DD_i= Enc_{sk_{n,2}}(D_i))||Enc_{sk_{nn,1}}(sk_{n,1}||sk_{n,2})が得られる。
【０２３９】
次に、復号部３５３は、ステップＳ５４で取得された最新の第１の共通鍵sk_{nn,1}を用いて、ステップＳ５５で得られた更新前復号用鍵暗号化データであるEnc_{sk_{nn,1}}(sk_{n,1}||sk_{n,2})を復号する（ステップＳ５６）。これにより、前回の第１の共通鍵であるsk_{n,1}および前回の第２の共通鍵であるsk_{n,2}が得られる。
【０２４０】
次に、復号部３５３は、ステップＳ５６で得られた前回の第２の共通鍵sk_{n,2}を用いて、ステップＳ５５で得られた更新前の暗号化データであるEnc_{sk_{n,2}}(D_i)を復号する（ステップＳ５７）。これにより、D_iが得られる。ここで、D_iは、Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,1}||sk_{b,2})であり、前々回の暗号化データおよび前回の更新前復号用鍵暗号化データを含む。
【０２４１】
次に、復号部３５３は、ステップＳ５７で得られたデータが平文ではないため、（ステップＳ６１でＮｏ）、ステップＳ５６で得られた前回の第１の共通鍵sk_{n,1}を用いて、前回の更新前復号用鍵暗号化データであるEnc_{sk_{n,1}}(sk_{b,2})を復号する（ステップＳ６２）。これにより、前々回の第１の共通鍵sk_{b,1}および前々回の第２の共通鍵であるsk_{b,2}が得られる。
【０２４２】
次に、復号部３５３は、ステップＳ６２で得られた前々回の第２の共通鍵sk_{b,2}を用いて、ステップＳ５７で得られた前々回の暗号化データEnc_{sk_{b,2}}(d_i)を復号する（ステップＳ６３）。これにより、元のデータd_iが得られる。
【０２４３】
もし、d_iが元の平文データではなく、さらに以前の更新前の暗号化データおよび以前の更新前復号用鍵暗号化データを含む場合（ステップＳ６１でＮｏ）、復号装置３５０は、ステップＳ６２〜Ｓ６３を繰り返す。
【０２４４】
ステップＳ６３で得られた元のデータが平文データであれば（ステップＳ６１でＹｅｓ）、暗号更新システム５は復号動作を終了する。
【０２４５】
次に、本発明の第５の実施の形態の効果について述べる。
【０２４６】
本発明の第５の実施の形態としての暗号更新システムは、共通鍵暗号方式により暗号化された暗号化データに対して、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、複数回の暗号更新を行うことができる。
【０２４７】
その理由は、暗号更新要求装置の更新前復号用鍵暗号化部が、更新前の第１の共通鍵および第２の共通鍵を含む情報を更新後の第１の共通鍵で暗号化したものを更新前復号用鍵暗号化データとして生成し、暗号更新装置の暗号更新部が、前回暗号更新された暗号化データと、今回の更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、今回の第２の共通鍵で暗号化することにより、今回の更新後の暗号化データを生成するからである。そして、復号装置の復号部は、復号により得られる元のデータに、前々回の暗号化データおよび前回の更新前復号用鍵暗号化データが含まれる場合、復号過程で得られた前回の第１の共通鍵を用いて前回の更新前復号用鍵暗号化データを復号することが可能となる。これにより、復号装置の復号部は、前回の更新前復号用鍵暗号化データから前々回の第１の共通鍵および第２の共通鍵を復号することができる。そして、復号装置の復号部は、得られた前々回の第２の共通鍵を用いて、前々回の暗号化データを復号する再帰的な復号処理を行うからである。
【０２４８】
これにより、暗号更新要求装置は、既に暗号更新された暗号化データの暗号更新のために、既に暗号更新された暗号化データを一旦受信して復号する処理や、復号したデータを更新後の鍵情報により再度暗号化する処理を行う必要がなく、２回目以降の暗号更新の際にも更新処理のほとんどを暗号更新装置に要求することが可能となる。したがって、２回以上の暗号更新を行う場合においても、暗号更新を希望する利用者側の装置としての暗号更新要求装置の負荷が軽減される。
【０２４９】
そして、このように複数回の暗号更新がなされた暗号化データには、以前の暗号化データの復号に必要となる以前の第１の共通鍵および以前の第２の共通鍵が暗号化された更新前復号用鍵暗号化データが含まれている。そのため、復号装置は、最新の第１の共通鍵および第２の共通鍵を知っていれば、複数回の暗号更新がなされた暗号化データからも、元の平文データを取得することが可能となる。したがって、復号装置は、複数回の暗号更新がなされた暗号化データを復号する場合であっても、以前の鍵情報をあらかじめ知る必要がない。したがって、複数回の暗号更新が行われる場合にも、暗号更新要求装置および復号装置は、以前の鍵情報を管理しておく必要がない。その結果、暗号更新要求装置および復号装置の負荷がさらに軽減される。
【０２５０】
なお、上述した本発明の各実施の形態では、暗号更新要求装置、復号装置、および、鍵記憶装置が、異なるコンピュータ装置によって構成される例を中心に説明した。この場合、鍵記憶装置は、暗号更新要求装置の利用者および復号装置の利用者によって信頼できる管理者によって管理されるとともに、セキュリティ性が高い装置で構成されることが望ましい。また、暗号更新要求装置および鍵記憶装置間の鍵情報の送受信、および、復号装置および鍵記憶装置間の鍵情報の送受信に用いられる通信は、セキュリティ性が確保されたものであることが望ましい。
【０２５１】
また、上述した本発明の各実施の形態において、暗号更新要求装置、復号装置、および、鍵記憶装置は、同一のコンピュータ装置である利用者装置によって構成されていてもよい。この場合、利用者装置は、平文データに対して初回の暗号化処理を行って生成した暗号化データをクラウド上等にある暗号化データ記憶装置に保存し、暗号化データ記憶装置の管理者に平文データを秘匿したまま、暗号化データの暗号更新を暗号更新装置に依頼することができる。しかも、利用者装置は、そのように暗号更新された暗号化データを受信して元のデータに復号することが可能となる。
【０２５２】
また、上述した本発明の各実施の形態において、暗号更新要求装置は、暗号更新装置に送信する更新要求に、暗号更新の対象とする暗号化データを特定する情報として、暗号化データのアドレスを含める例を中心に説明したが、各実施の形態において、暗号更新の対象とする暗号化データを特定する情報は、その他の情報であってもよい。例えば、暗号更新要求装置は、鍵情報を特定する情報を更新要求に含めてもよい。この場合、その鍵情報により暗号化された暗号化データが、暗号更新の対象として特定される。その他、例えば、暗号更新要求装置は、鍵情報を特定する情報や暗号化データのアドレス、その他の情報の組み合わせにより暗号更新の対象とする暗号化データを特定する情報を、更新要求に含めてもよい。また、暗号更新要求装置は、更新要求に含めるための上述のような暗号化データを特定する情報を、入力装置を介して取得するようにしてもよい。これにより、暗号更新の対象となる鍵情報や暗号化データは、利用者によって指定可能となる。
【０２５３】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した暗号更新要求装置、暗号更新装置、および、復号装置の各動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０２５４】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２５５】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０２５６】
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得部と、
更新後の鍵情報を生成する鍵生成部と、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部と、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部と、
を備えた暗号更新要求装置。
（付記２）
前記鍵情報には、暗号方式に関する情報が含まれ、
前記鍵生成部は、更新後の暗号方式を用いて前記更新後の鍵情報を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報に、さらに前記更新前の暗号方式に関する情報を含めて前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用情報に、さらに前記更新後の暗号方式に関する情報を含めて前記更新要求を送信することを特徴とする付記１に記載の暗号更新要求装置。
（付記３）
前記更新前の鍵情報が公開鍵暗号方式における公開鍵および秘密鍵を含むとき、
前記鍵生成部は、前記更新後の鍵情報として、公開鍵暗号方式における新たな公開鍵および秘密鍵を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の秘密鍵を、前記更新後の公開鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の公開鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする付記１または付記２に記載の暗号更新要求装置。
（付記４）
前記更新前の鍵情報が共通鍵暗号方式における第１の共通鍵および第２の共通鍵を含むとき、
前記鍵生成部は、前記更新後の鍵情報として、共通鍵暗号方式における新たな第１の共通鍵および第２の共通鍵を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の第２の共通鍵を、前記更新後の第１の共通鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の第２の共通鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする付記１または付記２に記載の暗号更新要求装置。
（付記５）
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報に、さらに更新前の前記第１の共通鍵を含めて前記更新前復号用鍵暗号化データを生成することを特徴とする付記４に記載の暗号更新要求装置。
（付記６）
付記１から付記５のいずれか１つに記載の暗号更新要求装置から前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新部を備えた暗号更新装置。
（付記７）
前記暗号更新要求装置から受信された更新要求に含まれる前記暗号更新用鍵情報に、公開鍵暗号方式における前記更新後の公開鍵が含まれるとき、
前記暗号更新部は、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記更新後の公開鍵を用いて暗号化することにより、前記更新後の暗号化データを生成することを特徴とする付記６に記載の暗号更新装置。
（付記８）
前記暗号更新要求装置から受信された更新要求に含まれる前記暗号更新用鍵情報に、共通鍵暗号方式における前記更新後の第２の共通鍵が含まれるとき、
前記暗号更新部は、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記更新後の第２の共通鍵を用いて暗号化することにより、前記更新後の暗号化データを生成することを特徴とする付記６に記載の暗号更新装置。
（付記９）
付記１から付記５のいずれか１つに記載の暗号更新要求装置によって生成された更新後の鍵情報を取得する更新後鍵取得部と、
付記６に記載の暗号更新装置によって生成された更新後の暗号化データを受信する暗号化データ受信部と、
前記暗号化データ受信部によって受信された更新後の暗号化データを、前記更新後鍵取得部によって取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号部と、
を備えた復号装置。
（付記１０）
前記更新後鍵取得部によって取得される前記更新後の鍵情報に公開鍵暗号方式における前記更新後の秘密鍵が含まれるとき、
前記復号部は、前記更新後の暗号化データを前記更新後の秘密鍵を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の秘密鍵を用いて復号することにより前記更新前復号用鍵情報である前記更新前の秘密鍵を取得し、取得した更新前の秘密鍵を用いて前記更新前の暗号化データを復号することを特徴とする付記９に記載の復号装置。
（付記１１）
前記更新後鍵取得部によって取得される前記更新後の鍵情報に共通鍵暗号方式における前記更新後の第１の共通鍵および第２の共通鍵が含まれるとき、
前記復号部は、前記更新後の暗号化データを前記更新後の第２の共通鍵を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の第１の共通鍵を用いて復号することにより前記更新前復号用鍵情報である前記更新前の第２の共通鍵を取得し、取得した更新前の第２の共通鍵を用いて前記更新前の暗号化データを復号することを特徴とする付記９に記載の復号装置。
（付記１２）
前記復号部は、前記更新前復号用鍵情報を用いて前記更新前の暗号化データを復号することにより得られたデータに、前々回の暗号化データおよび前回の更新前復号用鍵暗号化データが含まれる場合、前記前回の更新前復号用鍵暗号化データを前記更新前復号用鍵情報を用いて復号することにより前々回の更新前復号用鍵情報を取得し、取得した前々回の更新前復号用鍵情報を用いて前記前々回の暗号化データを復号する再帰的な復号処理を実行することを特徴とする付記９から付記１１のいずれか１つに記載の復号装置。
（付記１３）
付記１から付記５のいずれか１つに記載の暗号更新要求装置と、
付記６に記載の暗号更新装置と、
を含む暗号更新システム。
（付記１４）
さらに、付記９に記載の復号装置を備えることを特徴とする付記１３に記載の暗号更新システム。
（付記１５）
付記１から付記５のいずれか１つに記載の暗号更新要求装置と、
付記９に記載の復号装置と、
を備えた利用者装置。
（付記１６）
暗号更新要求装置は、
暗号化データが生成される際に用いられた更新前の鍵情報を取得し、
更新後の鍵情報を生成し、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信し、
前記暗号更新装置は、
前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する、暗号更新方法。
（付記１７）
暗号化データが生成される際に用いられた更新前の鍵情報を取得し、
更新後の鍵情報を生成し、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する、暗号更新要求方法。
（付記１８）
付記１７に記載の暗号更新要求方法の実行により送信される前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する、暗号更新方法。
（付記１９）
付記１７に記載の暗号更新要求方法の実行において用いられた前記更新後の鍵情報を取得し、
付記１８に記載の暗号更新方法の実行により生成された前記更新後の暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データと、前記更新前復号用鍵暗号化データとを含む情報を取得し、
取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、
取得した更新前復号用鍵情報を用いて、前記更新前の暗号化データを復号する、復号方法。
（付記２０）
暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得ステップと、
更新後の鍵情報を生成する鍵生成ステップと、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化ステップと、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
（付記２１）
付記２０に記載のコンピュータ・プログラムの実行により送信された前記更新要求を受信する更新要求受信ステップと、
前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
（付記２２）
付記２０に記載のコンピュータ・プログラムの実行により生成された前記更新後の鍵情報を取得する更新後鍵取得ステップと、
付記２１に記載のコンピュータ・プログラムの実行により生成された前記更新後の暗号化データを受信する暗号化データ受信ステップと、
前記暗号化データ受信ステップで受信された更新後の暗号化データを、前記更新後鍵取得ステップで取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【符号の説明】
【０２５７】
１、２、３、４、５    暗号更新システム
１００、１３０、１４０、１５０    暗号更新要求装置
１０１    更新前鍵取得部
１０２、１３２、１４２    鍵生成部
１０３、１３３、１４３、１５３    更新前復号用鍵暗号化部
１０４、１３４、１４４    更新要求送信部
２００、２２０、２３０、２４０    暗号更新装置
２０１、２３１、２４１    暗号更新部
２２２    暗号化データ送信部
３００、３３０、３４０、３５０    復号装置
３０１    更新後鍵取得部
３０２    暗号化データ受信部
３０３、３３３、３４３、３５３    復号部
８００  鍵記憶装置
９００  暗号化データ記憶装置
【図１】
2014017763.tif 000003
【図２】
2014017763.tif 000004
【図３】
2014017763.tif 000005
【図４】
2014017763.tif 000006
【図５】
2014017763.tif 000007
【図６】
2014017763.tif 000008
【図７】
2014017763.tif 000009
【図８】
2014017763.tif 000010
【図９】
2014017763.tif 000011
【図１０】
2014017763.tif 000012
【図１１】
2014017763.tif 000013
【図１２】
2014017763.tif 000014
【図１３】
2014017763.tif 000015
【図１４】
2014017763.tif 000016
【図１５】
2014017763.tif 000017
【図１６】
2014017763.tif 000018