(57)【要約】【課題】過去の暗号文を復号可能とし、かつ、鍵の漏洩に対する安全性をより高める。【解決手段】受信端末２０は、ＦＳＥ復号鍵の更新を行う更新部２２と、平文をＦＳＥ公開鍵及び時間と、ＰＫＥ第２公開鍵とを用いて暗号化した暗号文の暗号化タイミングと、ＦＳＥ復号鍵の更新タイミングとが一致するか否かを判断する判断部２７と、判断部２７により一致しないと判断された場合には、マスター鍵を用いて生成される暗号化タイミングに対応する更新前のＦＳＥ復号鍵とＰＫＥ復号鍵とを用いて暗号文を復号し、判断部２７により一致すると判断された場合には、更新後のＦＳＥ復号鍵とＰＫＥ復号鍵とを用いて暗号文を復号する復号部２３とを備える。【選択図】図２
2007053442.tif 000002
【特許請求の範囲】
【請求項１】
第１復号鍵の更新を行う更新部と、
平文を前記第１復号鍵と対応する第１公開鍵及び時間と、第２復号鍵と対応する第２公開鍵とを用いて暗号化した暗号文の暗号化タイミングと、前記第１復号鍵の更新タイミングとが一致するか否かを判断する判断部と、
該判断部により一致しないと判断された場合には、マスター鍵を用いて生成される前記暗号化タイミングに対応する更新前の前記第１復号鍵と前記第２復号鍵とを用いて前記暗号文を復号し、前記判断部により一致すると判断された場合には、更新後の前記第１復号鍵と前記第２復号鍵とを用いて前記暗号文を復号する復号部と
を備えることを特徴とする復号装置。
【請求項２】
前記暗号文は、第１暗号文と第２暗号文を含み、
前記復号部は、前記第１暗号文を前記第１復号鍵により復号して第１平文を生成し、前記第２暗号文を前記第２復号鍵により復号して第２平文を生成し、
前記第１平文と前記第２平文から前記平文を復元する復元部を備えることを特徴とする請求項１に記載の復号装置。
【請求項３】
前記暗号文は、前記平文を前記第１公開鍵及び時間を用いて暗号化した１次暗号文を、前記第２公開鍵を用いて暗号化した２次暗号文であり、
前記復号部は、前記２次暗号文を前記第２復号鍵により復号して前記１次暗号文を生成し、該１次暗号文を前記第１復号鍵により復号して前記平文を生成することを特徴とする請求項１に記載の復号装置。
【請求項４】
前記暗号文は、前記平文を前記第２公開鍵を用いて暗号化した１次暗号文を、前記第１公開鍵及び時間を用いて暗号化した２次暗号文であり、
前記復号部は、前記２次暗号文を前記第１復号鍵により復号して前記１次暗号文を生成し、該１次暗号文を前記第２復号鍵により復号して前記平文を生成することを特徴とする請求項１に記載の復号装置。
【請求項５】
前記第１公開鍵及び最初の前記第１復号鍵を生成し、前記最初の第１復号鍵を前記マスター鍵として、復号を補助する外部補助装置に提供する生成部を備えることを特徴とする請求項１乃至４のいずれか１項に記載の復号装置。
【請求項６】
前記更新前の第１復号鍵は、前記マスター鍵を用いて生成され、前記更新前の第１復号鍵の生成に用いられる前記暗号化タイミングに対応する鍵復元情報と、前記更新後の第１復号鍵とを用いて生成されることを特徴とする請求項１乃至５のいずれか１項に記載の復号装置。
【請求項７】
更新され、暗号化タイミングと更新タイミングに応じて、更新後の復号鍵と、マスター鍵を用いて生成される暗号化タイミングに対応する更新前の復号鍵とが使い分けられる第１復号鍵に対応する第１公開鍵及び時間と、第２復号鍵と対応する第２公開鍵とを用いて平文を暗号化し、暗号文を生成する暗号化部を備えることを特徴とする暗号化装置。
【請求項８】
前記平文を第１平文と第２平文とに分割する分割部を備え、
前記暗号化部は、前記第１平文を前記第１公開鍵及び前記時間により暗号化して第１暗号文を生成し、前記第２平文を前記第２公開鍵により暗号化して第２暗号文を生成し、前記第１暗号文と前記第２暗号文を含む前記暗号文を生成することを特徴とする請求項７に記載の暗号化装置。
【請求項９】
前記暗号化部は、前記平文を前記第１公開鍵及び前記時間により暗号化して１次暗号文を生成し、該１次暗号文を前記第２公開鍵により暗号化し、前記暗号文として２次暗号文を生成することを特徴とする請求項７に記載の暗号化装置。
【請求項１０】
前記暗号化部は、前記平文を前記第２公開鍵により暗号化して１次暗号文を生成し、該１次暗号文を前記第１公開鍵及び前記時間により暗号化し、前記暗号文として２次暗号文を生成することを特徴とする請求項７に記載の暗号化装置。
【請求項１１】
第１復号鍵に対応する第１公開鍵及び時間と、第２復号鍵に対応する第２公開鍵とを用いて平文を暗号化して暗号文を生成する暗号化装置と、
前記第１復号鍵の更新を行い、前記暗号文の暗号化タイミングと、前記第１復号鍵の更新タイミングとが一致するか否かを判断し、一致しないと判断された場合には、マスター鍵を用いて生成される前記暗号化タイミングに対応する更新前の前記第１復号鍵と前記第２復号鍵とを用いて前記暗号文を復号し、一致すると判断された場合には、更新後の前記第１復号鍵と前記第２復号鍵とを用いて前記暗号文を復号する復号装置と
を備えることを特徴とする通信システム。
【請求項１２】
第１復号鍵に対応する第１公開鍵及び時間と、第２復号鍵に対応する第２公開鍵とを用いて平文を暗号化して暗号文を生成し、
前記第１復号鍵の更新を行い、
前記暗号文の暗号化タイミングと、前記第１復号鍵の更新タイミングとが一致するか否かを判断し、
一致しないと判断された場合には、マスター鍵を用いて生成される前記暗号化タイミングに対応する更新前の前記第１復号鍵と前記第２復号鍵とを用いて前記暗号文を復号し、一致すると判断された場合には、更新後の前記第１復号鍵と前記第２復号鍵とを用いて前記暗号文を復号することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置、暗号化装置、通信システム及び通信方法に関する。
【背景技術】
【０００２】
近年、様々な暗号技術が提案されている。その１つにフォワードセキュア（Forward-Secure）暗号方式がある。フォワードセキュア暗号方式は、公開鍵を変更せずに固定したまま、復号鍵を短い間隔（例えば、１日）で更新していく暗号方式である。これによれば、ある時点における復号鍵が漏洩したとしても、漏洩前に送受信された暗号文の不正な解読を防止できる利点がある（例えば、非特許文献１、非特許文献２参照）。即ち、フォワードセキュア暗号方式では、過去に生成された暗号文を、暗号化した時点よりも先の時点で復号することはできない。よって、復号鍵が漏洩した場合であっても、漏洩前の暗号文に対する安全性を維持することができる。
【非特許文献１】R. Anderson, Invited lecture, Fourth Annual Conference on Computer and Communications  Security, ACM, 1997
【非特許文献２】R. Anderson, “Two Remarks on Public Key Cryptography”, Technical Report No.549, Computer Laboratory， University of Cambridge, UK, 2002
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、フォワードセキュア暗号方式のように復号鍵を更新していく暗号方式では、復号鍵の漏洩に対する安全性を高めることができるものの、正規の利用者であっても、過去の暗号文の復号が不可能となってしまう課題があった。そのため、例えば、過去の暗号文を再度復号することを要求するアプリケーションなどには、フォワードセキュア暗号方式を適用できないという課題があった。
【０００４】
そこで、本発明は、過去の暗号文を復号可能とし、かつ、鍵の漏洩に対する安全性をより高めることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の復号装置は、第１復号鍵の更新を行う更新部と、平文を第１復号鍵と対応する第１公開鍵及び時間と、第２復号鍵と対応する第２公開鍵とを用いて暗号化した暗号文の暗号化タイミングと、第１復号鍵の更新タイミングとが一致するか否かを判断する判断部と、判断部により一致しないと判断された場合には、マスター鍵を用いて生成される暗号化タイミングに対応する更新前の第１復号鍵と第２復号鍵とを用いて暗号文を復号し、判断部により一致すると判断された場合には、更新後の第１復号鍵と第２復号鍵とを用いて暗号文を復号する復号部とを備えることを特徴とする。マスター鍵は、更新前の第１復号鍵の生成に用いる鍵である。
【０００６】
このような復号装置によれば、暗号化が更新タイミングよりも前に行われたため、更新後の現在の第１復号鍵では復号できない場合には、暗号化タイミングに対応する更新前の第１復号鍵、即ち、過去の第１復号鍵を用いて過去の暗号文を復号できる。一方、暗号化タイミングと更新タイミングが一致している場合には、復号装置は、更新後の現在の第１複合鍵を用いて暗号文を復号できる。よって、復号装置は第１復号鍵を更新して第１復号鍵の漏洩に対する安全性を高めることができ、かつ、過去の暗号文を復号することができる。
【０００７】
更に、このようにマスター鍵を用いて更新前の第１復号鍵が生成される場合、マスター鍵が漏洩してしまうと、安全に暗号文を送受信できないおそれがあるが、本発明では、第１復号鍵と第２復号鍵の両方を揃えることができない限り暗号文を解読できない。そのため、たとえマスター鍵が漏洩したとしても、暗号文の安全性を確保できる。
【０００８】
従って、復号装置は、第１復号鍵やマスター鍵などの鍵の漏洩に対する安全性をより高めることができる。
【０００９】
例えば、暗号文は、第１暗号文と第２暗号文を含むことができる。この場合、復号部は、第１暗号文を第１復号鍵により復号して第１平文を生成し、第２暗号文を第２復号鍵により復号して第２平文を生成できる。そして、復号装置は、第１平文と第２平文から平文を復元する復元部を備えることができる。
【００１０】
また、暗号文は、平文を第１公開鍵及び時間を用いて暗号化した１次暗号文を、第２公開鍵を用いて暗号化した２次暗号文とすることができる。この場合、復号部は、２次暗号文を第２復号鍵により復号して１次暗号文を生成し、その１次暗号文を第１復号鍵により復号して平文を生成することができる。
【００１１】
更に、暗号文は、平文を第２公開鍵を用いて暗号化した１次暗号文を、第１公開鍵及び時間を用いて暗号化した２次暗号文とすることもできる。この場合、復号部は、２次暗号文を第１復号鍵により復号して１次暗号文を生成し、その１次暗号文を第２復号鍵により復号して平文を生成することができる。
【００１２】
更に、復号装置は、第１公開鍵及び最初の第１復号鍵を生成し、最初の第１復号鍵をマスター鍵として、復号を補助する外部補助装置に提供する生成部を備えることが好ましい。これによれば、最初の第１復号鍵をマスター鍵として用いることができ、更新前の第１復号鍵を適切に生成できる。更に、外部補助装置にマスター鍵を格納しておくことができる。そのため、マスター鍵の漏洩を防止でき、安全性をより向上できる。
【００１３】
また、更新前の第１復号鍵は、マスター鍵を用いて生成され、更新前の第１復号鍵の生成に用いられる暗号化タイミングに対応する鍵復元情報と、更新後の第１復号鍵とを用いて生成されることが好ましい。これによれば、暗号化タイミングに対応する鍵復元情報を生成するだけで、現在使用している更新後の第１復号鍵を用いて更新前の第１復号鍵を生成できる。
【００１４】
本発明の暗号化装置は、更新され、暗号化タイミングと更新タイミングに応じて、更新後の復号鍵と、マスター鍵を用いて生成される暗号化タイミングに対応する更新前の復号鍵とが使い分けられる第１復号鍵に対応する第１公開鍵及び時間と、第２復号鍵と対応する第２公開鍵とを用いて平文を暗号化し、暗号文を生成する暗号化部を備えることを特徴とする。
【００１５】
このような暗号化装置によれば、第１復号鍵と第２復号鍵の両方を用いて復号を行い、暗号化タイミングと更新タイミングに応じて、更新後の第１復号鍵と更新前の第１復号鍵とを使い分ける復号装置に対して、第１公開鍵と第２公開鍵の両方を用いて平文を暗号化できる。即ち、第１復号鍵と第２復号鍵の両方を揃えることができない限り暗号文を解読できないようにできる。そのため、更新前の第１復号鍵の生成に必要なマスター鍵が漏洩したとしても、暗号文の安全性を確保できる。
【００１６】
従って、暗号化装置は、過去の暗号文の復号や、第１復号鍵やマスター鍵などの鍵の漏洩に対する安全性の向上に寄与できる。
【００１７】
例えば、暗号化装置は、平文を第１平文と第２平文とに分割する分割部を備えることができる。この場合、暗号化部は、第１平文を第１公開鍵及び時間により暗号化して第１暗号文を生成し、第２平文を第２公開鍵により暗号化して第２暗号文を生成し、第１暗号文と第２暗号文を含む暗号文を生成できる。
【００１８】
また、暗号化部は、平文を第１公開鍵及び時間により暗号化して１次暗号文を生成し、その１次暗号文を第２公開鍵により暗号化し、復号装置に送信される暗号文として２次暗号文を生成することができる。
【００１９】
更に、暗号化部は、平文を第２公開鍵により暗号化して１次暗号文を生成し、その１次暗号文を第１公開鍵及び時間により暗号化し、復号装置に送信される暗号文として２次暗号文を生成することができる。
【００２０】
本発明の通信システムは、第１復号鍵に対応する第１公開鍵及び時間と、第２復号鍵に対応する第２公開鍵とを用いて平文を暗号化して暗号文を生成する暗号化装置と、第１復号鍵の更新を行い、暗号文の暗号化タイミングと第１復号鍵の更新タイミングとが一致するか否かを判断し、一致しないと判断された場合には、マスター鍵を用いて生成される暗号化タイミングに対応する更新前の第１復号鍵と第２復号鍵とを用いて暗号文を復号し、一致すると判断された場合には、更新後の第１復号鍵と第２復号鍵とを用いて暗号文を復号する復号装置とを備えることを特徴とする。
【００２１】
このような通信システムによれば、復号装置は、暗号化が更新タイミングよりも前に行われたため、更新後の現在の第１復号鍵では復号できない場合には、暗号化タイミングに対応する更新前の第１復号鍵を用いて過去の暗号文を復号できる。一方、暗号化タイミングと更新タイミングが一致している場合には、復号装置は、更新後の現在の第１復号鍵を用いて暗号文を復号できる。よって、第１復号鍵を更新して第１復号鍵の漏洩に対する安全性を高めることができ、かつ、過去の暗号文を復号することができる。
【００２２】
しかも、通信システムでは、２組の公開鍵と復号鍵（第１公開鍵と第１復号鍵のペアと、第２公開鍵と第２復号鍵のペア）を用いて暗号化、復号を行うため、第１復号鍵と第２復号鍵の両方を揃えることができない限り暗号文を解読できない。よって、更新前の第１復号鍵の生成に必要なマスター鍵が漏洩したとしても、暗号文の安全性を確保できる。従って、第１復号鍵やマスター鍵などの鍵の漏洩に対する安全性をより高めることができる。
【００２３】
本発明の通信方法は、第１復号鍵に対応する第１公開鍵及び時間と、第２復号鍵に対応する第２公開鍵とを用いて平文を暗号化して暗号文を生成し、第１復号鍵の更新を行い、暗号文の暗号化タイミングと、第１復号鍵の更新タイミングとが一致するか否かを判断し、一致しないと判断された場合には、マスター鍵を用いて生成される暗号化タイミングに対応する更新前の第１復号鍵と第２復号鍵とを用いて暗号文を復号し、一致すると判断された場合には、更新後の第１復号鍵と第２復号鍵とを用いて暗号文を復号することを特徴とする。
【発明の効果】
【００２４】
以上説明したように、本発明によれば、過去の暗号文を復号可能とし、かつ、鍵の漏洩に対する安全性をより高めることができる。
【発明を実施するための最良の形態】
【００２５】
〔通信システム〕
図１に示すように、通信システム１は、送信端末１０と、受信端末２０と、公開情報サーバ３０と、外部補助装置４０と、ネットワーク５０とを備える。
【００２６】
通信システム１では、フォワードセキュア（Forward-Secure）暗号方式に従う第１公開鍵と、第１公開鍵に対応する第１復号鍵を用いる。フォワードセキュア暗号方式とは、一度生成した公開鍵を変更せずに固定したまま、復号鍵だけを更新していく暗号方式である。復号鍵は、短い間隔で更新できる。以下、例えば、復号鍵の更新間隔を１日とし、Ｎ日間利用する場合を例にとって説明する。この場合、復号鍵はＮ−１回更新される。
【００２７】
更に、通信システム１では、第１公開鍵とは異なる第２公開鍵と、第２公開鍵に対応する第２復号鍵を用いる。第１公開鍵、第２公開鍵により暗号化された暗号文はそれぞれ、第１復号鍵、第２復号鍵で復号できる。
【００２８】
以下、フォワードセキュア暗号方式を「ＦＳＥ」と表す。ＦＳＥに従う第１公開鍵を「ＦＳＥ公開鍵」、第１復号鍵を「ＦＳＥ復号鍵」と表す。また、第２公開鍵及び第２復号鍵の生成に用いられる公開鍵暗号方式を「ＰＫＥ」と表す。ＰＫＥに従う第２公開鍵を「ＰＫＥ公開鍵」、第２復号鍵を「ＰＫＥ復号鍵」と表す。ＰＫＥ公開鍵は、ＦＳＥ公開鍵と異なる任意の公開鍵である。
【００２９】
送信端末１０は、平文を暗号化し、暗号文を生成する暗号化装置である。送信端末１０は、生成した暗号文を受信端末２０に送信する。受信端末２０は、暗号文を復号し、平文を生成する復号装置である。受信端末２０は、送信端末１０から暗号文を受信する。
【００３０】
通信システム１では、ある時間において、ある受信端末２０に情報を送信できる送信端末１０は、１≦ｋ≦ｍ（ｋ、ｍは自然数。ｋは送信端末数）だけ存在できる。図１では、受信端末２０に対する送信端末１０が複数存在する場合を例にとって説明する。又、１つの装置が送信端末１０（暗号化装置）としての機能と、受信端末２０（復号装置）としての機能の両方を備えてもよい。
【００３１】
公開情報サーバ３０は、受信端末２０が送信端末１０のような他の装置に公開する公開情報を記憶する。公開情報サーバ３０は、公開情報を送信端末１０に提供する。公開情報サーバ３０は、受信端末２０だけでなく、送信端末１０などの受信端末２０以外の装置がアクセス可能である。公開情報には、受信端末２０のＦＳＥ公開鍵やＰＫＥ公開鍵などが含まれる。
【００３２】
送信端末１０と、受信端末２０と、公開情報サーバ３０とは、ネットワーク５０を介して接続する。
【００３３】
外部補助装置４０は、受信端末２０の外部にあり、受信端末２０の復号を補助する装置である。外部補助装置４０は、受信端末２０とだけ接続する。具体的には、外部補助装置４０は、ネットワーク５０に接続せずに受信端末２０とだけ接続し、ネットワーク５０から隔離されている。外部補助装置４０は、受信端末２０の利用者によって管理される。
【００３４】
次に、受信端末２０、送信端末１０、外部補助装置４０、公開情報サーバ３０について詳細に説明する。
【００３５】
受信端末２０は、図２に示すように、生成部２１と、更新部２２と、復号部２３と、記憶部２４と、通信部２５と、出力部２６と、判断部２７と、復元部２８とを備える。
【００３６】
通信部２５は、外部補助装置４０や送信端末１０、公開情報サーバ３０と、データを送受信する。
【００３７】
生成部２１は、まず、ＦＳＥ公開鍵ｅｋと、最初のＦＳＥ復号鍵（以下、「初期ＦＳＥ復号鍵」という）ｄｋ0を生成する。生成部２１は、例えば、Ｎ組の公開鍵（ｅｋi）1≦i≦Nと秘密鍵（ｄi）1≦i≦Nのペアを生成できる。生成部２１は、生成したＮ個の公開鍵を用いて、ＦＳＥ公開鍵ｅｋ＝（ｅｋi）1≦i≦Nを生成できる。生成部２１は、生成したＮ個の秘密鍵を用いて、初期ＦＳＥ復号鍵ｄｋ0＝（ｄi）1≦i≦Nを生成できる。更に、生成部２１は、生成した初期ＦＳＥ復号鍵を、マスター鍵ｄｋ0＝（ｄi）1≦i≦とできる。ｉは時間を表す。マスター鍵ｄｋ0は、更新前のＦＳＥ復号鍵の生成に用いる鍵である。より具体的には、マスター鍵ｄｋ0は、更新前の第１復号鍵の生成に用いられる鍵復元情報δの生成に用いる鍵である。
【００３８】
更に、生成部２１は、ＦＳＥ公開鍵ｅｋと初期ＦＳＥ復号鍵ｄｋ0とは異なる任意のＰＫＥ公開鍵ｐｋとＰＫＥ復号鍵ｓｋを生成する。生成部２１は、ＦＳＥ公開鍵ｅｋ、秘密鍵を、例えば、RSA暗号、ElGamal暗号などを用いて生成できる。生成部２１は、ＰＫＥ公開鍵ｐｋ、ＰＫＥ復号鍵ｓｋを、例えば、RSA暗号、ElGamal暗号などを用いて生成できる。尚、鍵の生成方法は限定されず、その種類も限定されない。例えば、ＦＳＥ公開鍵、秘密鍵は、上記したような鍵のペアを多数用いるものに限定されない。
【００３９】
生成部２１は、ＦＳＥ公開鍵ｅｋとＰＫＥ公開鍵ｐｋを、公開情報｛ｅｋ，ｐｋ｝として公開情報サーバ３０に提供する。生成部２１は、受信端末２０の識別情報Ｕに公開情報｛ｅｋ，ｐｋ｝を対応付けて、通信部２５を介して公開情報サーバ３０に提供する。このように公開情報｛ｅｋ，ｐｋ｝を公開情報サーバ３０に提供し、公開情報サーバ３０に登録することにより、受信端末２０は、送信端末１０などに公開情報｛ｅｋ，ｐｋ｝を公開する。識別情報Ｕは、受信端末２０に付与された固有の情報である。識別情報Ｕには、例えば、電子メールアドレス、電話番号、ユーザＩＤなどがある。
【００４０】
更に、生成部２１は、初期ＦＳＥ復号鍵ｄｋ0とＰＫＥ復号鍵ｓｋを、初期復号鍵ｓｋ0＝｛ｄｋ0，ｓｋ｝として記憶部２４に格納する。
【００４１】
また、生成部２１は、初期ＦＳＥ復号鍵ｄｋ0をマスター鍵ｄｋ0として外部補助装置４０に通信部２５を介して提供する。このようにして、生成部２１は、マスター鍵ｄｋ0を外部補助装置４０に格納し、記憶部２４には格納しない。
【００４２】
このようにして生成部２１がマスター鍵を生成することにより、初期ＦＳＥ復号鍵をマスター鍵として用い、更新前の第１復号鍵を適切に生成できる。更に、受信端末２０は、マスター鍵ｄｋ0を、ネットワーク５０から隔離された外部補助装置４０に格納しておくことができる。そのため、マスター鍵ｄｋ0の漏洩を防止でき、安全性をより向上できる。
【００４３】
記憶部２４は、現在のＦＳＥ復号鍵ｄｋ、ＰＫＥ復号鍵ｓｋ、受信者の識別情報Ｕ、受信した暗号文などを記憶する。記憶部２４は、現在のＦＳＥ復号鍵ｄｋを、その更新タイミングと対応付けて記憶する。初期状態では、記憶部２４は初期復号鍵ｓｋ0＝｛ｄｋ0，ｓｋ｝を記憶する。記憶部２４は、マスター鍵ｄｋ0は記憶しない。
【００４４】
更新部２２は、ＦＳＥ復号鍵ｄｋの更新を行う。更新部２２は、更新直前の現在のＦＳＥ復号鍵を用いてＦＳＥ復号鍵の更新を行う。例えば、更新部２２は、更新タイミングｊ＋１において、更新前の現在のＦＳＥ復号鍵ｄｋj-1を用いて新しいＦＳＥ復号鍵ｄｋjを生成し、ＦＳＥ復号鍵を更新する。更新タイミングｊ＋１では、ｊ回目の更新が行われる。
【００４５】
具体的には、更新部２２は、記憶部２４から更新前の現在のＦＳＥ復号鍵、即ち、時間ｊのＦＳＥ復号鍵ｄｋj-1を取得する。更新部２２は、例えば、ＦＳＥ復号鍵ｄｋj-1＝｛（ｄi）j≦i≦N｝に含まれる秘密鍵の中から秘密鍵ｄjを削除し、更新タイミングｊ＋１における新たなＦＳＥ復号鍵ｄｋj＝｛（ｄi）j+1≦i≦N｝を生成できる。
【００４６】
更新部２２は、更新タイミングｊ＋１において、新たに生成した更新後のＦＳＥ復号鍵ｄｋjを、更新タイミングｊ＋１と対応付けて記憶部２４に格納する。更に、更新部２２は、記憶部２４に格納されている更新前の時間ｊのＦＳＥ復号鍵ｄｋj-1を消去する。このようにして、記憶部２４には最新のＦＳＥ復号鍵のみが格納される。
【００４７】
判断部２７は、平文をＦＳＥ公開鍵及び時間と、ＰＫＥ公開鍵とを用いて暗号化した暗号文の暗号化タイミングと、ＦＳＥ復号鍵の更新タイミングとが一致するか否かを判断する。判断部２７は、暗号文を復号するときに、その暗号文の暗号化タイミングと、現在のＦＳＥ復号鍵の更新タイミングとが一致するか否かを判断する。
【００４８】
通信部２５は、送信端末１０から受信した暗号文を記憶部２４に格納する。判断部２７は、記憶部２４から暗号文を取得する。例えば、取得した暗号文に、暗号化に用いられたＦＳＥ公開鍵や暗号化タイミングなどの暗号化情報が対応付けられている場合には、判断部２７は、その暗号化情報から暗号化タイミングを判断できる。また、判断部２７は、ＦＳＥ公開鍵と暗号化タイミングを用いて暗号化されている暗号文そのものから、暗号化タイミングを判断することもできる。
【００４９】
判断部２７は、記憶部２４を参照し、記憶部２４に格納されているＦＳＥ復号鍵の更新タイミングを判断する。記憶部２４には、最新のＦＳＥ復号鍵のみが格納されているため、判断部２７は、最新の更新タイミングを認識できる。
【００５０】
判断部２７は、暗号化タイミングと更新タイミングとを比較し、その比較結果を復号部２３に入力する。判断部２７は、更新タイミングと暗号化タイミングとが一致する場合には、一致するという結果と暗号文とを入力する。判断部２７は、更新タイミングと暗号化タイミングとが一致しない場合には、一致しないという結果と、暗号化タイミングと、暗号文とを入力する。例えば、受信端末２０が過去に受信した暗号文を復号する場合や、何らかの理由で受信端末２０が遅れて受信した暗号文などは、暗号化タイミングが更新タイミングよりも前である場合がある。
【００５１】
復号部２３は、判断部２７による判断結果に基づいて暗号文を復号する。復号部２３は、判断部２７により一致しないと判断された場合には、マスター鍵を用いて生成される暗号化タイミングに対応する更新前のＦＳＥ復号鍵（第１復号鍵）と、ＰＫＥ復号鍵（第２復号鍵）とを用いて暗号文を復号する。復号部２３は、判断部２７により一致すると判断された場合には、更新後のＦＳＥ復号鍵とＰＫＥ復号鍵とを用いて暗号文を復号する。
【００５２】
以下、暗号化タイミングと更新タイミングとが一致しない場合として、更新タイミングがｊ＋１、暗号化タイミングがｊであり、現在の更新後のＦＳＥ復号鍵がｄｋj＝｛（ｄi）j+1≦i≦N｝である場合を例にとって説明する。
【００５３】
復号部２３は、判断部２７から、一致しないという結果と、暗号化タイミングｊと、暗号文とを取得する。復号部２３は、マスター鍵を用いた暗号化タイミングｊに対応する鍵復元情報δj-1の生成を、暗号化タイミングｊを指定して外部補助装置４０に通信部２５を介して要求する。鍵復元情報δj-1は、マスター鍵ｄｋ0を用いて生成され、更新前のＦＳＥ復号鍵ｄｋj-1の生成に用いられる情報である。
【００５４】
復号部２３は、暗号化タイミングｊに対応する鍵復元情報δj-1＝｛（ｄi）j≦i≦N｝を、外部補助装置４０から取得する。復号部２３は、暗号化タイミングｊに対応する鍵復元情報δj-1＝｛（ｄi）j≦i≦N｝を用いて、暗号化タイミングｊにおける更新前の過去のＦＳＥ復号鍵ｄｋj-1＝｛（ｄi）j≦i≦N｝を生成する。具体的には、復号部２３は、ｄｋjを消去し、ｄｋj-1＝δj-1として、更新前のＦＳＥ復号鍵ｄｋj-1を復元できる。このようにして、更新前のＦＳＥ復号鍵は、マスター鍵ｄｋ0を用いて生成される暗号化タイミングに対応する鍵復元情報を用いることにより、マスター鍵を用いて生成できる。
【００５５】
そして、復号部２３は、記憶部２４からＰＫＥ復号鍵ｓｋを取得する。復号部２３は、更新前の過去の復号鍵として｛ｄｋj-1，ｓｋ｝を生成する。復号部２３は、生成した｛ｄｋj-1，ｓｋ｝を用いて、即ち、更新前の暗号化タイミングｊにおけるＦＳＥ復号鍵ｄｋj-1と、ＰＫＥ復号鍵ｓｋとを用いて、暗号化タイミングｊの暗号文を復号して平文ｍを生成する。具体的には、復号部２３は、ＦＳＥ復号鍵ｄｋj-1に含まれる秘密鍵ｄjを用いて復号を行う。
【００５６】
このように復号部２３は、マスター鍵により生成される、暗号化タイミングに対応する鍵復元情報を用いて、更新前のＦＳＥ復号鍵を生成することができる。そのため、暗号化タイミングに対応する鍵復元情報を生成するだけで、更新前のＦＳＥ復号鍵を生成できる。
【００５７】
しかも、受信端末２０は、外部補助装置４０にマスター鍵を格納しておき、過去のＦＳＥ復号鍵が必要になったときに、外部補助装置４０にマスター鍵を用いた鍵復元情報の生成を要求し、外部補助装置４０から鍵復元情報を取得するだけで、更新前のＦＳＥ復号鍵を生成できる。そのため、受信端末２０自身がマスター鍵を保持したり、鍵復元情報を生成したりする必要がない。その結果、より安全性を高めることができ、受信端末２０の負荷も軽減できる。
【００５８】
次に、暗号化タイミングと更新タイミングとが一致する場合として、更新タイミングがｊ＋１、暗号化タイミングがｊ＋１の場合を例にとって説明する。
【００５９】
復号部２３は、判断部２７から、一致するという結果と暗号文とを取得する。復号部２３は、記憶部２４から、現在の更新後のＦＳＥ復号鍵ｄｋj＝｛（ｄi）j+1≦i≦N｝とＰＫＥ復号鍵ｓｋ、即ち、現在の復号鍵｛ｄｋj，ｓｋ｝を取得する。復号部２３は、取得した更新後のＦＳＥ復号鍵ｄｋjと、ＰＫＥ復号鍵ｓｋとを用いて、暗号化タイミングｊ＋１の暗号文を復号して平文ｍを生成する。具体的には、復号部２３は、ＦＳＥ復号鍵ｄｋjに含まれる秘密鍵ｄj+1を用いて復号を行う。
【００６０】
復号部２３は、ＦＳＥ復号鍵を用いて復号を行うときは、ＦＳＥ公開鍵及び初期ＦＳＥ復号鍵の生成に用いた公開暗号方式に従った復号を行う復号アルゴリズム（以下「ＦＳＥ復号アルゴリズム」という）を用いて復号を行う。復号部２３は、ＰＫＥ復号鍵を用いて復号を行うときは、ＰＫＥ公開鍵及びＰＫＥ復号鍵の生成に用いた公開暗号方式に従った復号を行う復号アルゴリズム（以下「ＰＫＥ復号アルゴリズム」という）を用いて復号を行う。
【００６１】
復号部２３は、暗号文を復号して生成した平文を出力部２６に出力する。また、復号部２３は、第１暗号文と第２暗号文を含む暗号文を復号した場合には、第１暗号文を復号して得られた第１平文と、第２暗号文を復号して得られた第２平文を、復元部２８に入力する。
【００６２】
復元部２８は、復元部２３から第１平文と第２平文を取得する。復元部２８は、取得した第１平文と第２平文から平文を復元する。復元部２８は、復元した平文を出力部２６に出力する。
【００６３】
送信端末１０は、図２に示すように、暗号化部１１と、記憶部１２と、入力部１３と、通信部１４と、分割部１５とを備える。
【００６４】
通信部１４は、受信端末２０、公開情報サーバ３０と、データを送受信する。記憶部１２は、受信端末２０の識別情報Ｕや、受信端末２０に送信するデータなどを記憶する。入力部１３は、送信端末１０の利用者から受信端末２０に送信するデータの入力を受け、暗号化部１１にデータを入力する。
【００６５】
暗号化部１１は、更新され、暗号化タイミングと更新タイミングに応じて、更新後の復号鍵と、マスター鍵を用いて生成される暗号化タイミングに対応する更新前の復号鍵とが使い分けられるＦＳＥ復号鍵（第１復号鍵）に対応するＦＳＥ公開鍵（第１公開鍵）及び時間と、ＰＫＥ復号鍵（第２復号鍵）と対応するＰＫＥ公開鍵（第２公開鍵）とを用いて平文を暗号化し、暗号文を生成する。
【００６６】
暗号化部１１は、受信端末２０に送信する平文のデータを、受信端末２０のＦＳＥ公開鍵ｅｋ及びＰＫＥ公開鍵ｐｋを用いて暗号化する。暗号化部１１は、記憶部１２や入力部１３から、平文のデータと受信端末２０の識別情報Ｕを取得する。
【００６７】
暗号化部１１は、受信端末２０の識別情報Ｕを指定して受信端末２０のＦＳＥ公開鍵ｅｋとＰＫＥ公開鍵ｐｋ、即ち、公開情報｛ｅｋ，ｐｋ｝を、通信部１４を介して公開情報サーバ３０に要求する。そして、暗号化部１１は、受信端末２０の公開情報｛ｅｋ，ｐｋ｝を通信部１４を介して公開情報サーバ３０から取得する。暗号化部１１は、平文を暗号化して生成した暗号文を通信部１４に入力する。そして、通信部１４が暗号文を受信端末２０に送信する。
【００６８】
暗号化部１１は、ＦＳＥ公開鍵ｅｋを用いるときは、時間も用いて暗号化を行う。例えば、暗号化タイミングｊ＋１において暗号化を行う場合、暗号化部１１は、暗号化タイミングｊ＋１に基づいて、ＦＳＥ公開鍵ｅｋ＝（ｅｋi）1≦i≦Nに含まれる公開鍵ｅｋj+1を用いて暗号化を行うことができる。暗号化部１１は、必要に応じて、暗号に用いたＦＳＥ公開鍵の公開鍵ｅｋj+1や暗号化タイミングｊ＋１などの暗号化情報を暗号文に付加し、通信部１４に入力する。
【００６９】
また、暗号化部１１は、ＦＳＥ公開鍵を用いて暗号化を行うときは、ＦＳＥ公開鍵及び初期ＦＳＥ復号鍵の生成に用いた公開暗号方式に従った暗号化を行う暗号化アルゴリズム（以下「ＦＳＥ暗号化アルゴリズム」という）を用いて暗号化を行う。暗号化部１１は、ＰＫＥ公開鍵を用いて復号を行うときは、ＰＫＥ公開鍵及びＰＫＥ復号鍵の生成に用いた公開暗号方式に従った暗号化を行う暗号化アルゴリズム（以下「ＰＫＥ暗号化アルゴリズム」という）を用いて暗号化を行う。
【００７０】
また、暗号化部１１は、平文を分割して暗号化を行う場合、平文のデータを分割部１５に入力し、平文の分割を要求する。分割部１５は、暗号化部１１から平文を取得する。分割部１５は、取得した平文のデータを、第１平文と第２平文とに分割する。分割部１５は、分割した第１平文と第２平文を暗号化部１１に入力する。
【００７１】
次に、送信端末１０の暗号化部１１が行う暗号化方法と、それに対応すると受信端末２０の復号部２３が行う復号方法について詳細に説明する。
【００７２】
（第１方法）
まず、分割部１５が、暗号化部１１からの要求を受けて、平文ｍを第１平文ｍ１と第２平文ｍ２とに分割する。分割部１５は秘密分散法などを用いて平文ｍを分割できる。
【００７３】
暗号化部１１は、第１平文ｍ１を、ＦＳＥ公開鍵ｅｋと時間により暗号化して第１暗号文ｃ１を生成する。例えば、暗号化部１１は、暗号化タイミングｊ＋１において暗号化を行う場合、ＦＳＥ暗号化アルゴリズムに、暗号化タイミングｊ＋１、ＦＳＥ公開鍵ｅｋ、第１平文ｍ１を入力して計算することにより、ｅｋj+1を用いて第１平文ｍ１を暗号化し、第１暗号文ｃ１を生成できる。
【００７４】
更に、暗号化部１１は、第２平文ｍ２を、ＰＫＥ公開鍵ｐｋにより暗号化して第２暗号文ｃ２を生成する。例えば、暗号化部１１は、ＰＫＥ暗号化アルゴリズムに、ＰＫＥ公開鍵ｐｋ、第２平文ｍ２を入力して計算することにより暗号化し、第２暗号文ｃ２を生成できる。
【００７５】
そして、暗号化部１１は、第１暗号文ｃ１と第２暗号文ｃ２を含む暗号文ｃ＝｛ｃ１，ｃ２｝を生成する。通信部１４が、暗号文ｃ＝｛ｃ１，ｃ２｝を受信端末２０に送信する。
【００７６】
この場合、通信部２５は、第１暗号文ｃ１と第２暗号文ｃ２を含む暗号文ｃ＝｛ｃ１，ｃ２｝を受信する。
【００７７】
復号部２３は、第１暗号文ｃ１を、暗号化タイミングに対応するＦＳＥ復号鍵ｄｋにより復号して第１平文ｍ１を生成する。即ち、復号部２３は、暗号化タイミングと更新タイミングが一致する場合には、現在の更新後のＦＳＥ復号鍵を用いて、第１暗号文ｃ１を復号する。一方、復号部２３は、暗号化タイミングと更新タイミングが一致しない場合には、マスター鍵を用いて生成される過去の更新前のＦＳＥ復号鍵を用いて、第１暗号文ｃ１を復号する。
【００７８】
例えば、復号部２３は、暗号化タイミングｊ＋１において暗号化された第１暗号文ｃ１を復号する場合、ＦＳＥ復号アルゴリズムに、暗号化タイミングｊ＋１、ＦＳＥ復号鍵ｄｋj、第１暗号文ｃ１を入力して計算することにより、ＦＳＥ復号鍵ｄｋjに含まれる秘密鍵ｄj+1を用いて第１暗号文ｃ１を復号し、第１平文ｍ１を生成できる。
【００７９】
更に、復号部２３は、第２暗号文ｃ２を、ＰＫＥ復号鍵ｓｋにより復号して第２平文ｍ２を生成する。例えば、復号部２３は、ＰＫＥ復号アルゴリズムに、ＰＫＥ復号鍵ｓｋ、第２暗号文ｃ２を入力して計算することにより復号し、第２平文ｍ２を生成できる。
【００８０】
復号部２３は、生成した第１平文ｍ１と第２平文ｍ２を、復元部２８に入力する。復元部２８は、第１平文ｍ１と第２平文ｍ２を結合し、平文ｍを復元する。例えば、復元部２８は、平文ｍの分割に用いた秘密分散法により、第１平文ｍ１と第２平文ｍ２とから平文ｍを復元できる。
【００８１】
（第２方法）
暗号化部１１は、平文ｍを、ＦＳＥ公開鍵ｅｋと時間により暗号化して１次暗号文ｃ’を生成する。例えば、暗号化部１１は、暗号化タイミングｊ＋１において暗号化を行う場合、ＦＳＥ暗号化アルゴリズムに、暗号化タイミングｊ＋１、ＦＳＥ公開鍵ｅｋ、平文ｍを入力して計算することにより、ｅｋj+1を用いてｍを暗号化し、１次暗号文ｃ’を生成できる。
【００８２】
次に、暗号化部１１は、生成した１次暗号文ｃ’をＰＫＥ公開鍵ｐｋにより暗号化し、受信端末２０に送信する暗号文として２次暗号文ｃ’’を生成する。例えば、暗号化部１１は、ＰＫＥ暗号化アルゴリズムに、ＰＫＥ公開鍵ｐｋ、１次暗号文ｃ’を入力して計算することにより暗号化し、２次暗号文ｃ’’を生成できる。そして、通信部１４が、２次暗号文ｃ’’を受信端末２０に暗号文として送信する。
【００８３】
この場合、通信部２５は、２次暗号文ｃ’’を暗号文として受信する。復号部２３は、２次暗号文ｃ’’をＰＫＥ復号鍵ｓｋにより復号して１次暗号文ｃ’を生成する。例えば、復号部２３は、ＰＫＥ復号アルゴリズムに、ＰＫＥ復号鍵ｓｋ、２次暗号文ｃ’’を入力して計算することにより復号し、１次暗号文ｃ’を生成できる。
【００８４】
次に、復号部２３は、生成した１次暗号文ｃ’を、暗号化タイミングに対応するＦＳＥ復号鍵ｄｋにより復号して平文ｍを生成する。即ち、復号部２３は、暗号化タイミングと更新タイミングが一致する場合には、現在の更新後のＦＳＥ復号鍵を用いて、１次暗号文ｃ’を復号する。一方、復号部２３は、暗号化タイミングと更新タイミングが一致しない場合には、マスター鍵を用いて生成される過去の更新前のＦＳＥ復号鍵を用いて、１次暗号文ｃ’を復号する。
【００８５】
例えば、復号部２３は、暗号化タイミングｊ＋１において暗号化された１次暗号文ｃ’を復号する場合、ＦＳＥ復号アルゴリズムに、暗号化タイミングｊ＋１、ＦＳＥ復号鍵ｄｋj、１次暗号文ｃ’を入力して計算することにより、ＦＳＥ復号鍵ｄｋjに含まれる秘密鍵ｄj+1を用いて１次暗号文ｃ’を復号し、平文ｍを生成できる。
【００８６】
（第３方法）
暗号化部１１は、平文ｍを、ＰＫＥ公開鍵ｐｋにより暗号化して１次暗号文ｃ’を生成する。例えば、暗号化部１１は、ＰＫＥ暗号化アルゴリズムに、ＰＫＥ公開鍵ｐｋ、平文ｍを入力して計算することにより暗号化し、１次暗号文ｃ’を生成できる。
【００８７】
次に、暗号化部１１は、生成した１次暗号文ｃ’をＦＳＥ公開鍵ｅｋ及び時間により暗号化し、受信端末２０に送信する暗号文として２次暗号文ｃ’’を生成する。例えば、暗号化部１１は、暗号化タイミングｊ＋１において暗号化を行う場合、ＦＳＥ暗号化アルゴリズムに、暗号化タイミングｊ＋１、ＦＳＥ公開鍵ｅｋ、１次暗号文ｃ’を入力して計算することにより、ｅｋj+1を用いて１次暗号文ｃ’を暗号化し、２次暗号文ｃ’’を生成できる。そして、通信部１４が、２次暗号文ｃ’’を受信端末２０に暗号文として送信する。
【００８８】
この場合、通信部２５は、２次暗号文ｃ’’を暗号文として受信する。復号部２３は、２次暗号文ｃ’’を、暗号化タイミングに対応するＦＳＥ復号鍵ｄｋにより復号して１次暗号文ｃ’を生成する。即ち、復号部２３は、暗号化タイミングと更新タイミングが一致する場合には、現在の更新後のＦＳＥ復号鍵を用いて、２次暗号文ｃ’’を復号する。一方、復号部２３は、暗号化タイミングと更新タイミングが一致しない場合には、マスター鍵を用いて生成される過去の更新前のＦＳＥ復号鍵を用いて、２次暗号文ｃ’’を復号する。
【００８９】
例えば、復号部２３は、暗号化タイミングｊ＋１において暗号化された２次暗号文ｃ’’を復号する場合、ＦＳＥ復号アルゴリズムに、暗号化タイミングｊ＋１、ＦＳＥ復号鍵ｄｋj、２次暗号文ｃ’’を入力して計算することにより、ＦＳＥ復号鍵ｄｋjに含まれる秘密鍵ｄj+1を用いて２次暗号文ｃ’’を復号し、１次暗号文ｃ’を生成できる。
【００９０】
次に、復号部２３は、生成した１次暗号文ｃ’を、ＰＫＥ復号鍵ｓｋにより復号して平文ｍを生成する。例えば、復号部２３は、ＰＫＥ復号アルゴリズムに、ＰＫＥ復号鍵ｓｋ、１次暗号文ｃ’を入力して計算することにより復号し、平文ｍを生成できる。
【００９１】
外部補助装置４０は、図２に示すように、復元情報生成部４１と、記憶部４２と、通信部４３とを備える。記憶部４２は、受信端末２０の初期ＦＳＥ復号鍵をマスター鍵ｄｋoとして記憶する。通信部４３は、受信端末２０とデータを送受信する。
【００９２】
復元情報生成部４１は、マスター鍵ｄｋoを用いて、更新前のＦＳＥ復号鍵の生成に用いられる暗号化タイミングに対応する鍵復元情報δを生成し、受信端末２０に提供する。
【００９３】
最初に、復元情報生成部４１は、マスター鍵ｄｋoを受信端末２０から通信部４３を介して取得する。復元情報生成部４１は、取得したマスター鍵ｄｋoを記憶部４２に格納しておく。
【００９４】
その後、復元情報生成部４１は、暗号化タイミングが指定された鍵復元情報δの生成の要求を、通信部４３を介して受信端末２０から取得する。復元情報生成部４１は、記憶部４２からマスター鍵ｄｋoを取得する。復元情報生成部４１は、取得したマスター鍵ｄｋoを用いて、指定された暗号化タイミングの鍵復元情報δを生成する。
【００９５】
例えば、暗号化タイミングｊを指定された場合、復元情報生成部４１は、暗号化タイミングｊに対応する、更新前のＦＳＥ復号鍵ｄｋj-1の生成に用いられる鍵復元情報δj-1を生成する。復元情報生成部４１は、例えば、暗号化タイミングｊとマスターｄｋo＝（ｄi）1≦i≦Nとを用いて、暗号化タイミングｊに対応する鍵復元情報δj-1＝｛（ｄi）j≦i≦Nを生成できる。復元情報生成部４１は、生成した鍵復元情報δを通信部４３を介して受信端末２０に提供する。
【００９６】
このように、外部補助装置４０は、受信端末２０の初期ＦＳＥ復号鍵であるマスター鍵ｄｋoを保持することにより、マスター鍵を用いて鍵復元情報δを適切に生成できる。しかも、受信端末２０自身がマスター鍵を保持したり、鍵復元情報を生成したりする必要がないため、マスター鍵の漏洩を防止して安全性をより高めることができ、受信端末２０の負荷も軽減できる。
【００９７】
公開情報サーバ３０は、制御部３１と、公開情報データベース３２と、通信部３３とを備える。公開情報データベース３２は、公開情報｛ｅｋ，ｐｋ｝などを、受信端末２０の識別情報Ｕに対応付けて記憶する。通信部３３は、ネットワーク５０を介して受信端末２０や送信端末１０とデータを送受信する。
【００９８】
制御部３１は、受信端末２０の識別情報Ｕに対応付けられた公開情報｛ｅｋ，ｐｋ｝を、通信部３３を介して受信端末２０から取得する。制御部３１は、取得した公開情報｛ｅｋ，ｐｋ｝を、識別情報Ｕに対応付けて公開情報データベース３２に格納する。
【００９９】
制御部３１は、識別情報Ｕを指定した公開情報｛ｅｋ，ｐｋ｝の要求を通信部３３を介して送信端末１０から取得する。制御部３１は、識別情報Ｕに基づいて、公開情報データベース３２から識別情報Ｕの受信端末２０の公開情報｛ｅｋ，ｐｋ｝を取得する。制御部３１は、送信端末１０に取得した公開情報｛ｅｋ，ｐｋ｝を通信部３３を介して提供する。
【０１００】
〔通信方法〕
次に、図１に示した通信システム１における通信方法について、図３〜９を用いて説明する。まず、図３を用いて、暗号化通信を開始するための開始処理手順の一例を説明する。
【０１０１】
まず、受信端末２０は、ＦＳＥ公開鍵ｅｋ＝（ｅｋj）1≦j≦N、初期ＦＳＥ復号鍵ｄｋ0＝（ｄj）1≦j≦Nを生成する。受信端末２０は、初期ＦＳＥ復号鍵をマスター鍵ｄｋ0＝（ｄj）1≦j≦Nとし、マスター鍵を生成する（Ｓ１０１）。更に、受信端末２０は、ＰＫＥ公開鍵ｐｋ、ＰＫＥ復号鍵ｓｋを生成する（Ｓ１０２）。
【０１０２】
受信端末２０は、生成した公開情報｛ｅｋ，ｐｋ｝を公開情報サーバ３０に提供する（Ｓ１０３）。公開情報サーバ３０は、受信端末２０から取得した公開情報｛ｅｋ，ｐｋ｝を、公開情報データベース３２に格納する（Ｓ１０４）。これにより、受信端末２０の公開情報が公開情報データベース３２に登録され、公開情報が送信端末１０などに公開される。
【０１０３】
更に、受信端末２０は、初期ＦＳＥ復号鍵ｄｋ0＝（ｄi）1≦i≦NとＰＫＥ復号鍵ｓｋを、初期復号鍵ｓｋ0＝｛ｄｋ0，ｓｋ｝として記憶部２４に格納する（Ｓ１０５）。また、受信端末２０は、マスター鍵ｄｋ0＝（ｄi）1≦i≦Nを外部補助装置４０に提供する（Ｓ１０６）。外部補助装置４０は、受信端末２０から取得したマスター鍵ｄｋ0を記憶部４２に格納する（Ｓ１０７）。
【０１０４】
次に、図４を用いて、第１方法による暗号化手順とＦＳＥ復号鍵の更新手順の一例を説明する。送信端末１０は、暗号化タイミングｊにおいて、受信端末２０の公開情報｛ｅｋ，ｐｋ｝を公開情報サーバ３０に要求する（Ｓ２０１）。公開情報サーバ３０は、要求された受信端末２０の公開情報｛ｅｋ，ｐｋ｝を送信端末１０に提供する（Ｓ２０２）。
【０１０５】
送信端末１０は、平文ｍを秘密分散法を用いて第１平文ｍ１と第２平文ｍ２に分割する（Ｓ２０３）。送信端末１０は、取得した公開情報｛ｅｋ，ｐｋ｝に含まれるＦＳＥ公開鍵ｅｋと、暗号化タイミングｊとを用いて、第１平文ｍ１を暗号化して第１暗号文ｃ１を生成する（Ｓ２０４）。送信端末１０は、取得した公開情報｛ｅｋ，ｐｋ｝に含まれるＰＫＥ公開鍵ｐｋを用いて、第２平文ｍ２を暗号化して第２暗号文ｃ２を生成する（Ｓ２０５）。送信端末２０は、第１暗号文ｃ１と第２暗号文ｃ２を含む暗号文ｃ＝｛ｃ１，ｃ２｝を受信端末２０に送信する（Ｓ２０６）。受信端末２０は、受信した暗号文ｃを記憶部２４に格納する。
【０１０６】
その後、受信端末２０は、更新タイミングｊ＋１になると、記憶部２４から更新前の現在のＦＳＥ復号鍵ｄｋj-1を取得する。受信端末２０は、更新前のＦＳＥ復号鍵ｄｋj-1を用い、新たなＦＳＥ復号鍵ｄｋj＝｛（ｄi）j+1≦i≦N｝を生成し、ＦＳＥ復号鍵を更新する（Ｓ２０７）。受信端末２０は、新たに生成した更新後のＦＳＥ復号鍵ｄｋjを、更新タイミングｊ＋１と対応付けて記憶部２４に格納する。更に、受信端末２０は、記憶部２４に格納されている更新前のＦＳＥ復号鍵ｄｋj-1を消去する（Ｓ２０８）。
【０１０７】
次に、図５を用いて第１方法による復号手順の一例を説明する。まず、受信端末２０は、暗号文を復号するときに、その暗号文の暗号化タイミングと、現在のＦＳＥ復号鍵の更新タイミングとが一致するか否かを判断する（Ｓ３０１）。
【０１０８】
例えば、暗号化タイミングがｊ＋１であり、更新タイミングもｊ＋１であり、両者が一致している場合（暗号化タイミング＝更新タイミング）には、受信端末２０は、更新後の現在のＦＳＥ復号鍵ｄｋjとＰＫＥ復号鍵ｓｋを含む復号鍵｛ｄｋj，ｓｋ｝を用いて復号を行う。
【０１０９】
具体的には、受信端末２０は、受信した暗号文ｃ＝｛ｃ１，ｃ２｝に含まれる暗号化タイミングｊ＋１の第１暗号文ｃ１を、更新後のＦＳＥ復号鍵ｄｋj、即ち、更新タイミングｊ＋１におけるＦＳＥ復号鍵ｄｋjにより復号して第１平文ｍ１を生成する（Ｓ３０２）。更に、受信端末２０は、暗号文ｃ＝｛ｃ１，ｃ２｝に含まれる第２暗号文ｃ２を、ＰＫＥ復号鍵ｓｋにより復号して第２平文ｍ２を生成する（Ｓ３０２）。受信端末２０は、生成した第１平文ｍ１と第２平文ｍ２から平文ｍを、分割に用いた秘密分散法により復元する（Ｓ３０３）。
【０１１０】
一方、ステップ（Ｓ３０１）において、例えば、図４の場合のように、暗号化タイミングがｊ、更新タイミングがｊ＋１であり、両者が一致しない場合には（暗号化タイミング≠更新タイミング）、受信端末２０は、過去の暗号化タイミングｊに対応する鍵復元情報δj-1の生成を外部補助装置４０に要求する（Ｓ３０５）。
【０１１１】
外部補助装置４０は、記憶部４２に格納されたマスター鍵ｄｋ0と、指定された暗号化タイミングｊとを用いて、暗号化タイミングｊに対応する鍵復元情報δj-1を生成する（Ｓ３０６）。外部補助装置４０は、生成した鍵復元情報δj-1を受信端末２０に提供する（Ｓ３０７）。
【０１１２】
受信端末２０は、外部補助装置４０から取得した暗号化タイミングｊに対応する鍵復元情報δj-1を用いて、更新前の過去のＦＳＥ復号鍵である暗号化タイミングｊにおけるＦＳＥ復号鍵ｄｋj-1＝｛（ｄi）j≦i≦N｝を生成する（Ｓ３０８）。
【０１１３】
受信端末２０は、復元した更新前のＦＳＥ復号鍵ｄｋj-1とＰＫＥ復号鍵ｓｋを含む復号鍵｛ｄｋj-1，ｓｋ｝を用いて復号を行う。具体的には、受信端末２０は、受信した暗号文ｃ＝｛ｃ１，ｃ２｝に含まれる暗号化タイミングｊの第１暗号文ｃ１を、更新前のＦＳＥ復号鍵ｄｋj-1、即ち、更新タイミングｊにおけるＦＳＥ復号鍵ｄｋj-1により復号して第１平文ｍ１を生成する（Ｓ３０９）。更に、受信端末２０は、暗号文ｃ＝｛ｃ１，ｃ２｝に含まれる第２暗号文ｃ２を、ＰＫＥ復号鍵ｓｋにより復号して第２平文ｍ２を生成する（Ｓ３１０）。受信端末２０は、生成した第１平文ｍ１と第２平文ｍ２から平文ｍを、分割に用いた秘密分散法により復元する（Ｓ３１１）。
【０１１４】
次に、図６を用いて、第２方法による暗号化手順とＦＳＥ復号鍵の更新手順の一例を説明する。送信端末１０は、暗号化タイミングｊにおいて、図４に示したステップ（Ｓ２０１）、（Ｓ２０２）と同様のステップ（Ｓ４０１）、（Ｓ４０２）を行う。
【０１１５】
次に、送信端末１０は、取得した公開情報｛ｅｋ，ｐｋ｝に含まれるＦＳＥ公開鍵ｅｋと、暗号化タイミングｊとを用いて平文ｍを暗号化し、１次暗号文ｃ’を生成する（Ｓ４０３）。送信端末１０は、取得した公開情報｛ｅｋ，ｐｋ｝に含まれるＰＫＥ公開鍵ｐｋを用いて、生成した１次暗号文ｃ’を暗号化して２次暗号文ｃ’’を生成する（Ｓ４０４）。送信端末２０は、２次暗号文ｃ’’を受信端末２０に送信する（Ｓ４０５）。受信端末２０は、受信した暗号文ｃを記憶部２４に格納する。
【０１１６】
その後、受信端末２０は、更新タイミングｊ＋１になると、図４に示したステップ（Ｓ２０７）、（Ｓ２０８）と同様のステップ（Ｓ４０６）、（Ｓ４０７）を行う。
【０１１７】
次に、図７を用いて第２方法による復号手順の一例を説明する。まず、受信端末２０は、暗号文の暗号化タイミングと、現在のＦＳＥ復号鍵の更新タイミングとが一致するか否かを判断する（Ｓ５０１）。
【０１１８】
例えば、暗号化タイミングがｊ＋１であり、更新タイミングもｊ＋１であり、両者が一致している場合（暗号化タイミング＝更新タイミング）には、受信端末２０は、更新後の現在のＦＳＥ復号鍵ｄｋjとＰＫＥ復号鍵ｓｋを含む復号鍵｛ｄｋj，ｓｋ｝を用いて復号を行う。
【０１１９】
具体的には、受信端末２０は、受信した２次暗号文ｃ’’を、ＰＫＥ復号鍵ｓｋにより復号して１次暗号文ｃ’を生成する（Ｓ５０２）。受信端末２０は、生成した暗号化タイミング時間ｊ＋１における１次暗号文ｃ’を、更新後のＦＳＥ復号鍵ｄｋj、即ち、更新タイミングｊ＋１におけるＦＳＥ復号鍵ｄｋjにより復号して平文ｍを生成する（Ｓ５０３）。
【０１２０】
一方、ステップ（Ｓ５０１）において、例えば、図６の場合のように、暗号化タイミングがｊ、更新タイミングがｊ＋１であり、両者が一致しない場合には（暗号化タイミング≠更新タイミング）、図５に示したステップ（Ｓ３０５）〜（Ｓ３０８）と同様のステップ（Ｓ５０４）〜（Ｓ５０７）を行う。
【０１２１】
次に、受信端末２０は、復元した更新前のＦＳＥ復号鍵ｄｋj-1とＰＫＥ復号鍵ｓｋを含む復号鍵｛ｄｋj-1，ｓｋ｝を用いて復号を行う。具体的には、受信端末２０は、受信した２次暗号文ｃ’’を、ＰＫＥ復号鍵ｓｋにより復号して１次暗号文ｃ’を生成する（Ｓ５０８）。受信端末２０は、生成した暗号化タイミング時間ｊにおける１次暗号文ｃ’を、更新前のＦＳＥ復号鍵ｄｋj-1、即ち、更新タイミングｊにおけるＦＳＥ復号鍵ｄｋj-1により復号して平文ｍを生成する（Ｓ５０９）。
【０１２２】
次に、図８を用いて、第３方法による暗号化手順とＦＳＥ復号鍵の更新手順の一例を説明する。送信端末１０は、暗号化タイミングｊにおいて、図４に示したステップ（Ｓ２０１）、（Ｓ２０２）と同様のステップ（Ｓ６０１）、（Ｓ６０２）を行う。
【０１２３】
次に、送信端末１０は、取得した公開情報｛ｅｋ，ｐｋ｝に含まれるＰＫＥ公開鍵ｐｋを用いて平文ｍを暗号化し、１次暗号文ｃ’を生成する（Ｓ６０３）。送信端末１０は、取得した公開情報｛ｅｋ，ｐｋ｝に含まれるＦＳＥ公開鍵ｅｋと暗号化タイミングｊとを用いて、生成した１次暗号文ｃ’を暗号化して２次暗号文ｃ’’を生成する（Ｓ６０４）。送信端末２０は、２次暗号文ｃ’’を受信端末２０に送信する（Ｓ６０５）。受信端末２０は、受信した暗号文ｃを記憶部２４に格納する。
【０１２４】
その後、受信端末２０は、更新タイミングｊ＋１になると、図４に示したステップ（Ｓ２０７）、（Ｓ２０８）と同様のステップ（Ｓ６０６）、（Ｓ６０７）を行う。
【０１２５】
次に、図９を用いて第３方法による復号手順の一例を説明する。まず、受信端末２０は、暗号文の暗号化タイミングと、現在のＦＳＥ復号鍵の更新タイミングとが一致するか否かを判断する（Ｓ７０１）。
【０１２６】
例えば、暗号化タイミングがｊ＋１であり、更新タイミングもｊ＋１であり、両者が一致している場合（暗号化タイミング＝更新タイミング）には、受信端末２０は、更新後の現在のＦＳＥ復号鍵ｄｋjとＰＫＥ復号鍵ｓｋを含む復号鍵｛ｄｋj，ｓｋ｝を用いて復号を行う。
【０１２７】
具体的には、受信端末２０は、受信した暗号化タイミング時間ｊ＋１２次暗号文ｃ’’を、更新後のＦＳＥ復号鍵ｄｋj、即ち、更新タイミングｊ＋１におけるＦＳＥ復号鍵ｄｋjにより復号して１次暗号文ｃ’を生成する（Ｓ７０２）。受信端末２０は、生成した１次暗号文ｃ’をＰＫＥ復号鍵ｓｋにより復号して平文ｍを生成する（Ｓ７０３）。
【０１２８】
一方、ステップ（Ｓ７０１）において、例えば、図８の場合のように、暗号化タイミングがｊ、更新タイミングがｊ＋１であり、両者が一致しない場合には（暗号化タイミング≠更新タイミング）、図５に示したステップ（Ｓ３０５）〜（Ｓ３０８）と同様のステップ（Ｓ７０４）〜（Ｓ７０７）を行う。
【０１２９】
次に、受信端末２０は、復元した更新前のＦＳＥ復号鍵ｄｋj-1とＰＫＥ復号鍵ｓｋを含む復号鍵｛ｄｋj-1，ｓｋ｝を用いて復号を行う。具体的には、受信端末２０は、受信した暗号化タイミング時間ｊにおける１次暗号文ｃ’を、更新前のＦＳＥ復号鍵ｄｋj-1、即ち、更新タイミングｊにおけるＦＳＥ復号鍵ｄｋj-1により復号して１次暗号文ｃ’を生成する（Ｓ７０８）。受信端末２０は、生成した１次暗号文ｃ’をＰＫＥ復号鍵ｓｋにより復号して平文ｍを生成する（Ｓ７０９）。
【０１３０】
〔効果〕
このような通信システム１、受信端末２０、送信端末１０、外部補助装置４０、及び、通信方法によれば、以下のような効果を得ることができる。
【０１３１】
受信端末２０は、暗号化が更新タイミングよりも前に行われたため、更新後の現在のＦＳＥ復号鍵では復号できない場合には、暗号化タイミングに対応する更新前のＦＳＥ復号鍵、即ち、過去のＦＳＥ復号鍵を用いて過去の暗号文を復号できる。一方、暗号化タイミングと更新タイミングが一致している場合には、受信端末２０は、更新後の現在のＦＳＥ複合鍵を用いて暗号文を復号できる。よって、ＦＳＥ復号鍵を更新してＦＳＥ復号鍵の漏洩に対する安全性を高めることができ、かつ、過去の暗号文を復号することができる。
【０１３２】
このように、通信システム１では、公開鍵は変更せずに、復号鍵をその直前の復号鍵を用いて更新可能なフォワードセキュア暗号方式を用いる。そのため、ある時点のＦＳＥ復号鍵が漏洩したとしても、漏洩前の暗号文の安全性を保証できる。更に、通信システム１では、初期ＦＳＥ復号鍵をマスター鍵として専用の外部補助装置４０に格納しておき、過去のＦＳＥ復号鍵を復元する必要が生じたときには、外部補助装置４０内部において、マスター鍵を用いて目的とする時点の鍵復元情報を生成できる。そして、外部補助装置４０が受信端末２０に生成した鍵復元情報を提供することで、受信端末２０は過去のＦＳＥ復号鍵を復元できる。即ち、過去のＦＳＥ復号鍵を復元可能なフォワードセキュア暗号方式が実現できる。
【０１３３】
しかも、受信端末２０以外の第三者は、ＦＳＥ復号鍵更新前に生成された暗号文を、更新後に復号することは不可能であり、ＦＳＥ復号鍵が漏洩したとしてもそれ以前の安全性は維持される。よって、ＦＳＥ復号鍵漏洩に対する安全性を維持しながら、受信端末２０だけは過去に生成された暗号文も復号することができる。即ち、通信システム１、受信端末２０、外部補助装置４０及び通信方法によれば、フォワードセキュア暗号方式の安全性に関する性質を維持しながら、必要に応じて過去のＦＳＥ復号鍵を復元可能とできる。よって、例えば、過去の暗号文を再度復号することが要求されるアプリケーションにおいても、フォワードセキュア暗号方式を利用することができる。
【０１３４】
また、このようにマスター鍵を用いて更新前のＦＳＥ復号鍵が生成される場合、マスター鍵が漏洩してしまうと、安全に暗号文を送受信できないおそれがある。しかし、通信システム１では、２組の公開鍵と復号鍵（ＦＳＥ公開鍵とＦＳＥ復号鍵のペアと、ＰＫＥ公開鍵とＰＫＥ復号鍵のペア）を用いて暗号化、復号を行う。そのため、不正解読者（受信端末２０に対して送信するために生成された暗号文を不正に解読しようとする攻撃者）は、ＦＳＥ復号鍵とＰＫＥ復号鍵の両方を揃えることができない限り、マスター鍵を入手したとしても暗号文を解読できない。よって、更新前のＦＳＥ復号鍵の生成に必要なマスター鍵が漏洩したとしても、暗号文の安全性を確保できる。従って、ＦＳＥ復号鍵やマスター鍵などの鍵の漏洩に対する安全性をより高めることができる。
【０１３５】
具体的には、マスター鍵が漏洩した場合でも、暗号文の安全性、つまり、平文の情報が１ビットたりとも漏洩していないことを数学的に証明することができる。そのため、送信端末１０と受信端末２０は、非常に高い安全性を確保して、暗号文の送受信を行うことができる。
【０１３６】
〔変更例〕
本発明は、上記実施形態に限定されるものではなく、種々の変更が可能である。過去のＦＳＥ復号鍵の復元におけるマスター鍵の使用方法は限定されない。
【０１３７】
例えば、外部補助装置４０の復元情報生成部４１が、受信端末２０から現在の更新後のＦＳＥ復号鍵を取得する。復元情報生成部４１は、マスター鍵を用いて鍵復元情報を生成する。そして、復元情報生成部４１が、取得した更新後のＦＳＥ復号鍵と生成した鍵復元情報とを用いて、更新前のＦＳＥ復号鍵を生成し、受信端末２０に提供してもよい。この場合、復号部２３は、外部補助装置４０から提供される更新前のＦＳＥ復号鍵を用いて復号できる。
【０１３８】
あるいは、受信端末２０の復号部２３が、外部補助装置４０からマスター鍵の複製を取得して、自ら鍵復元情報を生成し、更新前のＦＳＥ復号鍵を生成してもよい。そして、復号部２３は、更新前のＦＳＥ復号鍵生成後に、取得したマスター鍵の複製を破棄し、受信端末２０内に残さないようにできる。
【図面の簡単な説明】
【０１３９】
【図１】本発明の実施の形態に係る通信システムを示す図である。
【図２】本発明の実施の形態に係る受信端末、送信端末、外部補助装置及び公開情報サーバの構成を示すブロック図である。
【図３】本発明の実施の形態に係る開始処理手順を示すシーケンス図である。
【図４】本発明の実施の形態に係る第１方法による暗号化手順とＦＳＥ復号鍵の更新手順を示すシーケンス図である。
【図５】本発明の実施の形態に係る第１方法による復号手順を示すシーケンス図である。
【図６】本発明の実施の形態に係る第２方法による暗号化手順とＦＳＥ復号鍵の更新手順を示すシーケンス図である。
【図７】本発明の実施の形態に係る第２方法による復号手順を示すシーケンス図である。
【図８】本発明の実施の形態に係る第３方法による暗号化手順とＦＳＥ復号鍵の更新手順を示すシーケンス図である。
【図９】本発明の実施の形態に係る第３方法による復号手順を示すシーケンス図である。
【符号の説明】
【０１４０】
１００…通信システム
１０…送信端末
１１…暗号化部
１２…記憶部
１３…入力部
１４…通信部
１５…分割部
２０…受信端末
２１…生成部
２２…更新部
２３…復号部
２４…記憶部
２５…通信部
２６…出力部
２７…判断部
２８…復元部
３０…公開情報サーバ
３１…制御部
３２…公開情報データベース
３３…通信部
４０…外部補助装置
４１…復元情報生成部
４２…記憶部
４３…通信部
５０…ネットワーク
【図１】
2007053442.tif 000003
【図２】
2007053442.tif 000004
【図３】
2007053442.tif 000005
【図４】
2007053442.tif 000006
【図５】
2007053442.tif 000007
【図６】
2007053442.tif 000008
【図７】
2007053442.tif 000009
【図８】
2007053442.tif 000010
【図９】
2007053442.tif 000011