(57)【要約】【課題】  データの暗号化で使用する共有鍵が漏洩する危険性の少ない共有鍵生成方法を提供する。【解決手段】  本発明は、耐タンパー性の高い携帯電話機等の小型通信端末である端末Ａと、耐タンパー性の低いＰＣ等の端末Ｂとで使用される共有鍵生成方法である。端末Ａは、装置に固有の機器情報から鍵生成関数Ｆ１を用いて部分鍵Ｋｐを生成する。続いて、生成した部分鍵Ｋｐと秘密鍵Ｋｃとから鍵生成関数Ｆ２を用いて共有鍵Ｋを生成し、生成した共有鍵Ｋでデータの暗号化および復号を行う。一方、端末Ａは、生成した部分鍵Ｋｐを端末Ｂに送信する。端末Ｂが部分鍵Ｋｐを受信すると、端末Ａと共有する秘密鍵Ｋｃ＿２と受信した部分鍵Ｋｐとから共有鍵Ｋを生成する。【選択図】  図１
2007005878.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信端末が装置に固有の情報から部分鍵を生成する部分鍵生成手順と、
前記第１の通信端末が前記生成した部分鍵を第２の通信端末へ送信する部分鍵送信手順と、
前記第１の通信端末が秘密鍵および前記生成した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する共有鍵生成手順と、
前記第２の通信端末が前記第１の通信端末から送信された前記部分鍵を受信する部分鍵受信手順と、
前記第２の通信端末が前記第１の通信端末と共有する秘密鍵および前記受信した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する第２の共有鍵生成手順と、
を備えていることを特徴とする共有鍵生成方法。
【請求項２】
前記第１の通信端末および前記第２の通信端末で共有される前記秘密鍵は、前記秘密鍵の変更後においても、変更前の前記秘密鍵から生成される前記共有鍵で暗号化された暗号化データの復号を行うことができる後方互換性を有することを特徴とする請求項１に記載の共有鍵生成方法。
【請求項３】
装置に固有の情報から部分鍵を生成する部分鍵生成手段と、
前記生成した部分鍵を送信する部分鍵送信手段と、
秘密鍵および前記生成した部分鍵から、データの暗号化および復号で使用する共有鍵を生成する共有鍵生成手段と、
を具備する第１の通信端末と、
前記第１の通信端末から送信された前記部分鍵を受信する部分鍵受信手段と、
前記第１の通信端末と共有する秘密鍵および前記受信した部分鍵から、データの暗号化および復号で使用する共有鍵を生成する共有鍵生成手段と、
を具備する第２の通信端末と、
から構成される共有鍵生成方式。
【請求項４】
第１の通信端末へ第２の通信端末からデータをコピーする暗号化データコピー方法において、
前記第２の通信端末から前記第１の通信端末へ部分鍵の生成を要求する部分鍵要求手順と、
前記第１の通信端末が前記要求を受信後に装置に固有の情報から部分鍵を生成する部分鍵生成手順と、
前記第１の通信端末が前記生成した部分鍵を前記第２の通信端末へ送信する部分鍵送信手順と、
前記第２の通信端末が前記送信された部分鍵を受信し、当該部分鍵および秘密鍵から共有鍵を生成する共有鍵生成手順と、
前記第２の通信端末が前記生成した共有鍵でデータを暗号化し、前記第１の通信端末へ送信する暗号化データ送信手順と、
前記第１の通信端末が前記送信された暗号化データを受信し、前記受信した暗号化データを暗号化された状態で保存する暗号化データ保存手順と、
を備えていることを特徴とする暗号化データコピー方法。
【請求項５】
第１の通信端末から受信した暗号化データを第２の通信端末で復号する暗号化データ復号方法において、
前記第２の通信端末から前記第１の通信端末へ部分鍵の生成を要求する部分鍵要求手順と、
前記第１の通信端末が前記要求を受信後に装置に固有の情報から部分鍵を生成する部分鍵生成手順と、
前記第１の通信端末が前記生成した部分鍵を前記第２の通信端末へ送信する部分鍵送信手順と、
前記第２の通信端末が前記送信された部分鍵を受信し、当該部分鍵および秘密鍵から共有鍵を生成する共有鍵生成手順と、
前記第２の通信端末が前記生成した共有鍵で前記暗号化データを復号する暗号化データ復号手順と、
を備えていることを特徴とする暗号化データ復号方法。
【請求項６】
コンピュータに、
装置に固有の情報から部分鍵を生成する部分鍵生成手順と、
前記生成した部分鍵を送信する部分鍵送信手順と、
秘密鍵および前記生成した部分鍵から、データの暗号化および復号で使用する共有鍵を生成する共有鍵生成手順と、
を実行させるための共有鍵生成プログラム。
【請求項７】
コンピュータに、
部分鍵を受信する部分鍵受信手順と、
秘密鍵および前記受信した部分鍵から、データの暗号化および復号で使用する共有鍵を生成する共有鍵生成手順と、
を実行させるための共有鍵生成プログラム。
【請求項８】
コンピュータに、
部分鍵生成手段を有する通信端末へ部分鍵の生成を要求する部分鍵要求手順と、
前記通信端末から送信された前記部分鍵を受信し、当該部分鍵および秘密鍵から共有鍵を生成する共有鍵生成手順と、
前記生成した共有鍵でデータを暗号化し、前記通信端末へ送信する暗号化データ送信手順と、
を実行させるための暗号化データ送信プログラム。
【請求項９】
コンピュータに、
送信元の通信端末から部分鍵の生成要求を受信する部分鍵要求受信手順と、
前記通信端末から前記部分鍵の生成要求を受信後に、装置に固有の情報から前記部分鍵を生成する部分鍵生成手順と、
前記生成した部分鍵を前記通信端末へ送信する部分鍵送信手順と、
前記通信端末から送信された暗号化データを受信し、前記受信した暗号化データを暗号化された状態で保存する暗号化データ保存手順と、
を実行させるための暗号化データ受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの暗号化で使用する共有鍵を生成する共有鍵生成方法、共有鍵生成方式および共有鍵生成プログラム、当該共有鍵を用いた暗号化データコピー方法、暗号化データ送信プログラムおよび暗号化データ受信プログラムに関する。
【背景技術】
【０００２】
近年、モバイル技術の発達により携帯電話機等の小型機器の性能が向上している。これに伴い、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のデータを小型機器に移し、ユーザがデータの入った小型機器を携帯するケースが増えている。このように、一つの端末から別の端末へとデータを移す場合には、移動先の端末でそのデータを安全に保管する必要がある。移動先の端末でデータが暗号化されず平文の状態で格納されていると、その端末からデータが流出し、広く流通する可能性がある。
【０００３】
そのため、従来はデータを暗号化した上で別の端末に移動させ、移動先の端末では暗号化した状態で保管することにより、データのセキュリティを確保していた。なお、本出願に関する従来技術の参考文献として、特許文献1が知られている。
【特許文献１】特開平１１−２０５３０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来の方法では、共有鍵を生成するための秘密鍵が漏洩すると、その秘密鍵から生成可能な共有鍵を使用して暗号化された全てのデータが復号されてしまう。［特許文献１］に示されている共有鍵生成方法のように、共有鍵が端末情報と結びついていない場合には、複数の端末が同じ共有鍵を使用することとなり、上記秘密鍵が漏洩すると当該共有鍵を使用する全ての端末で暗号化された全てのデータが復号される。
【０００５】
また、上記秘密鍵の漏洩が判明した時点で、情報漏洩の更なる拡大を防ぐ目的で秘密鍵を変更すると、変更前の秘密鍵から生成される共有鍵で暗号化されたデータの復号ができなくなる。
【０００６】
本発明は上記事情を考慮してなされたもので、その目的は、データの暗号化で使用する共有鍵が漏洩する危険性の少ない共有鍵生成方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は上記の課題を解決するためになされたもので、請求項1に記載の発明は、第１の通信端末が装置に固有の情報から部分鍵を生成する部分鍵生成手順と、前記第１の通信端末が前記生成した部分鍵を第２の通信端末へ送信する部分鍵送信手順と、前記第１の通信端末が秘密鍵および前記生成した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する共有鍵生成手順と、前記第２の通信端末が前記第１の通信端末から送信された前記部分鍵を受信する部分鍵受信手順と、前記第２の通信端末が前記第１の通信端末と共有する秘密鍵および前記受信した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する第２の共有鍵生成手順と、を備えていることを特徴とする共有鍵生成方法である。
【０００８】
また、請求項２に記載の発明は、請求項１に記載の発明において、前記第１の通信端末および前記第２の通信端末で共有される前記秘密鍵は、前記秘密鍵の変更後においても、変更前の前記秘密鍵から生成される前記共有鍵で暗号化された暗号化データの復号を行うことができる後方互換性を有することを特徴としている。
【０００９】
また、請求項３に記載の発明は、装置に固有の情報から部分鍵を生成する部分鍵生成手段と、前記生成した部分鍵を送信する部分鍵送信手段と、秘密鍵および前記生成した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する共有鍵生成手段と、を具備する第１の通信端末と、前記第１の通信端末から送信された前記部分鍵を受信する部分鍵受信手段と、前記第１の通信端末と共有する秘密鍵および前記受信した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する共有鍵生成手段と、を具備する第２の通信端末と、から構成される共有鍵生成方式である。
【００１０】
また、請求項４に記載の発明は、第１の通信端末へ第２の通信端末からデータをコピーする暗号化データコピー方法であって、前記第２の通信端末から前記第１の通信端末へ部分鍵の生成を要求する部分鍵要求手順と、前記第１の通信端末が前記要求を受信後に装置に固有の情報から部分鍵を生成する部分鍵生成手順と、前記第１の通信端末が前記生成した部分鍵を前記第２の通信端末へ送信する部分鍵送信手順と、前記第２の通信端末が前記送信された部分鍵を受信し、当該部分鍵および秘密鍵から共有鍵を生成する共有鍵生成手順と、前記第２の通信端末が前記生成した共有鍵でデータを暗号化し、前記第１の通信端末へ送信する暗号化データ送信手順と、前記第１の通信端末が前記送信された暗号化データを受信し、前記受信した暗号化データを暗号化された状態で保存する暗号化データ保存手順と、を備えていることを特徴としている。
【００１１】
また、請求項５に記載の発明は、第１の通信端末から受信した暗号化データを第２の通信端末で復号する暗号化データ復号方法であって、前記第２の通信端末から前記第１の通信端末へ部分鍵の生成を要求する部分鍵要求手順と、前記第１の通信端末が前記要求を受信後に装置に固有の情報から部分鍵を生成する部分鍵生成手順と、前記第１の通信端末が前記生成した部分鍵を前記第２の通信端末へ送信する部分鍵送信手順と、前記第２の通信端末が前記送信された部分鍵を受信し、当該部分鍵および秘密鍵から共有鍵を生成する共有鍵生成手順と、前記第２の通信端末が前記生成した共有鍵で前記暗号化データを復号する暗号化データ復号手順と、を備えていることを特徴としている。
【００１２】
また、請求項６に記載の発明は、コンピュータに、装置に固有の情報から部分鍵を生成する部分鍵生成手順と、前記生成した部分鍵を送信する部分鍵送信手順と、秘密鍵および前記生成した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する共有鍵生成手順と、を実行させるための共有鍵生成プログラムである。
【００１３】
また、請求項７に記載の発明は、コンピュータに、部分鍵を受信する部分鍵受信手順と、秘密鍵および前記受信した部分鍵から、データの暗号化および復号に使用する共有鍵を生成する共有鍵生成手順と、を実行させるための共有鍵生成プログラムである。
【００１４】
また、請求項８に記載の発明は、コンピュータに、部分鍵生成手段を有する通信端末へ部分鍵の生成を要求する部分鍵要求手順と、前記通信端末から送信された前記部分鍵を受信し、当該部分鍵および秘密鍵から共有鍵を生成する共有鍵生成手順と、前記生成した共有鍵でデータを暗号化し、前記通信端末へ送信する暗号化データ送信手順と、を実行させるための暗号化データ送信プログラムである。
【００１５】
また、請求項９に記載の発明は、コンピュータに、送信元の通信端末から部分鍵の生成要求を受信する部分鍵要求受信手順と、前記通信端末から前記部分鍵の生成要求を受信後に、装置に固有の情報から前記部分鍵を生成する部分鍵生成手順と、前記生成した部分鍵を前記通信端末へ送信する部分鍵送信手順と、前記通信端末から送信された暗号化データを受信し、前記受信した暗号化データを暗号化された状態で保存する暗号化データ保存手順と、を実行させるための暗号化データ受信プログラムである。
【発明の効果】
【００１６】
本発明によれば、耐タンパー性の高い携帯電話機等の小型端末で部分鍵を生成し、ＰＣ等の耐タンパー性の低い端末は前記小型端末から秘密鍵と受信した部分鍵とから共有鍵を生成する方法であり、耐タンパー性の低い端末から秘密鍵が漏洩したとしても、秘密鍵単独では共有鍵を生成することができないため、共有鍵の秘匿性が確保される。
【００１７】
また、耐タンパー性の低い端末で、耐タンパー性の高い小型端末からコピーされた暗号化データを復号する際には当該小型端末から部分鍵の提供を受ける必要があるため、当該小型端末内で暗号化されたデータは当該小型端末と通信可能な端末でのみ復号が可能であり、他の端末に無制限にコピーされ使用されることを防止することができる。
【００１８】
さらにまた、後方互換性を有するハッシュチェーンを利用して秘密鍵を生成することにより、秘密鍵が漏洩したことが判明した時点で秘密鍵の変更を行っても、変更前の秘密鍵から生成される共有鍵で暗号化されたデータを、変更後の秘密鍵から生成可能な共有鍵で復号することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施形態について説明する。図１は、本発明の実施形態にかかる共有鍵生成方法の仕組みを示した図である。図１において、端末Ａは携帯電話機等の小型端末（第１の通信端末）であり、端末Ｂは、ＰＣ等の端末（第２の通信端末）である。
【００２０】
本実施形態で端末Ａとして利用される携帯電話機は、内部で使用されるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が汎用的ではなく、携帯電話機内部で記憶しているデータを外部から解析することが困難であり、耐タンパー性が高い。一方、本実施形態で端末Ｂとして利用されるＰＣは、ＯＳが汎用的であるために、メモリのダンプ等の方法でＰＣ内部に記憶しているデータが外部から解析される可能性があり、耐タンパー性は低い。
【００２１】
そこで、本実施形態において、耐タンパー性の高い端末Ａは共有鍵Ｋを生成する機構を全て備えているが、耐タンパー性の低い端末Ｂは共有鍵Ｋを生成する機構の一部しか備えておらず、端末Ｂ単独では共有鍵Ｋを生成できない仕組みとなっている。
【００２２】
端末Ａ内の機器情報は、端末Ａに固有の機器情報であり、端末ごとに異なる。鍵生成関数Ｆ１（部分鍵生成手段）は、機器情報を入力し部分鍵Ｋｐを生成する関数である。秘密鍵Ｋｃは、共有鍵Ｋを生成するときに必要となる鍵である。鍵生成関数Ｆ２（共有鍵生成手段）は、部分鍵Ｋｐおよび秘密鍵Ｋｃを入力し共有鍵Ｋを生成する関数である。
【００２３】
端末Ｂ内の秘密鍵Ｋｃ＿２は、共有鍵Ｋを生成するときに必要となる鍵であり、端末Ａ内の秘密鍵Ｋｃと同じである。鍵生成関数Ｆ２＿２（共有鍵生成手段）は、端末Ａより受信する部分鍵Ｋｐと秘密鍵Ｋｃ＿２から共有鍵Ｋを生成する関数であり、端末A内の鍵生成関数F_2と同じである。
【００２４】
部分鍵Ｋｐは、機器情報と関連付けられており、共有鍵Ｋを生成するときに必要となる鍵である。部分鍵Ｋｐを機器情報と結びつけることで、部分鍵Ｋｐは生成する端末ごとに異なり、部分鍵Ｋｐから生成される共有鍵Ｋも端末ごとに異なる。共有鍵Ｋは、データの暗号化および復号時に使用される鍵である。
【００２５】
次に、上述した実施形態の動作を図２から図７を参照して説明する。図２は、端末Ａで共有鍵を生成する方法を示したシーケンス図であり、図３は、端末Ｂで共有鍵を生成する方法を示したシーケンス図である。
【００２６】
図２において、端末Ａでは、鍵生成関数Ｆ１を使用してまず機器情報から部分鍵Ｋｐを生成する（部分鍵生成手順、ステップＳ２０１）。部分鍵Ｋｐの生成が終了すると、鍵生成関数Ｆ２を使用して秘密鍵Ｋｃおよび上記生成した部分鍵Ｋｐから共有鍵Ｋを生成する（共有鍵生成手順、ステップＳ２０２）。
【００２７】
図３において、端末Ｂでは、共有鍵Ｋを生成するために部分鍵Ｋｐを端末Ａより受信する必要がある。そのため、まず端末Ｂから端末Ａに対して部分鍵Ｋｐを生成するように要求する（部分鍵要求手順、ステップＳ３０１）。この要求を端末Ａが受信すると、図２のステップＳ２０１と同様に部分鍵Ｋｐを生成し（部分鍵生成手順、ステップＳ３０２）、生成した部分鍵Ｋｐを端末Ｂへ送信する（部分鍵送信手順、ステップＳ３０３）。端末Ｂが部分鍵Ｋｐを受信すると、鍵生成関数Ｆ２＿２を使用して秘密鍵Ｋｃ＿２および上記受信した部分鍵Ｋｐから共有鍵Ｋを生成する（共有鍵生成手順、ステップＳ３０４）。
【００２８】
図４は、端末Ａから端末Ｂに暗号化データをコピーする方法を示したシーケンス図であり、図５は、逆に端末Ｂから端末Ａに暗号化データをコピーする方法を示したシーケンス図である。
【００２９】
図４において、端末Ａから端末Ｂに暗号化データをコピーする際は、まず図２に示した手順で共有鍵Ｋを生成し、生成した共有鍵Kによってデータを暗号化する。続いて、暗号化したデータを端末Ｂへ送信する（ステップＳ４０１）。暗号化データを端末Ｂが受信すると、受信したデータを暗号化した状態で保管する（ステップＳ４０２）。
【００３０】
図５において、端末Ｂから端末Ａに暗号化データをコピーする際は、まず端末Ｂから端末Ａへ部分鍵Ｋｐを生成するように要求する（部分鍵要求手順、ステップＳ５０１）。この要求を端末Ａが受信すると、図２のステップＳ２０１と同様に部分鍵Ｋｐを生成し（部分鍵生成手順、ステップＳ５０２）、さらに鍵生成関数Ｆ２を使用して秘密鍵Ｋｃおよび上記生成した部分鍵Ｋｐから共有鍵Ｋを生成する（共有鍵生成手順ステップＳ５０３）。この後、部分鍵Ｋｐを端末Ａから端末Ｂへ送信する（部分鍵送信手順、ステップＳ５０４）。
【００３１】
端末Ｂが部分鍵Ｋｐを受信すると、鍵生成関数Ｆ２＿２を使用して秘密鍵Ｋｃ＿２および上記受信した部分鍵Ｋｐから共有鍵Ｋを生成する（ステップＳ５０５）。続いて、生成した共有鍵Ｋを用いてデータを暗号化し（ステップＳ５０６）、暗号化したデータを端末Ｂから端末Ａへ送信する（暗号化データ送信手順、ステップＳ５０７）。端末Ａが暗号化データを受信すると、受信したデータを暗号化した状態で保管する（暗号化データ保存手順、ステップＳ５０８）。
【００３２】
図６は、暗号化されたデータを端末Ａで表示・再生する方法を示したシーケンス図であり、図７は、暗号化されたデータを端末Ｂで表示・再生する方法を示したシーケンス図である。図６及び図７において、共有鍵Ｋが漏洩することを防ぐため、端末Ａおよび端末Ｂのいずれにおいても生成した共有鍵Ｋの保存は行わず、暗号化データの表示・再生のたびに共有鍵Ｋを生成する。
【００３３】
図６において、端末Ａで暗号化データを表示・再生する際には、まず図２のステップＳ２０１と同様に部分鍵Ｋｐを生成する（ステップＳ６０１）。続いて、図２のステップＳ２０２と同様に共有鍵Ｋを生成する（ステップＳ６０２）。
【００３４】
生成した共有鍵Ｋを用いて、端末Ａは暗号化データの復号を行い（ステップＳ６０３）、復号したデータの表示・再生を行う（ステップＳ６０４）。データの表示・再生が終了すると、共有鍵Ｋを用いてデータを再び暗号化し（ステップＳ６０５）、暗号化した状態でデータを再度保管する（ステップＳ６０６）。ステップＳ６０５における暗号化が終了すると共有鍵Ｋは必要なくなるため、端末Ａは共有鍵Ｋを削除する。
【００３５】
図７において、端末Ｂで暗号化データを表示・再生する際には、まず図３のステップＳ３０１と同様に、端末Ａに部分鍵Ｋｐの生成を要求する（部分鍵要求手順、ステップＳ７０１）。この要求を受信した端末Ａは、図３のステップＳ３０２と同様に、部分鍵Ｋｐを生成する（部分鍵生成手順、ステップＳ７０２）。続いて、端末Ａは生成した部分鍵Ｋｐを端末Ｂへ送信する（部分鍵送信手順、ステップＳ７０３）。
【００３６】
端末Ｂが部分鍵Ｋｐを受信すると、図３のステップＳ３０４と同様に、共有鍵Ｋを生成する（共有鍵生成手順、ステップＳ７０４）。生成した共有鍵Ｋを用いて、端末Ｂは暗号化データの復号を行い（暗号化データ復号手順、ステップＳ７０５）、復号したデータの表示・再生を行う（ステップＳ７０６）。データの表示・再生が終了すると、共有鍵Ｋを用いてデータを再び暗号化し（ステップＳ７０７）、暗号化した状態でデータを再度保管する（ステップＳ７０８）。ステップＳ７０７における暗号化が終了すると共有鍵Ｋは必要なくなり、端末Ｂは共有鍵Ｋを削除する。
【００３７】
図７のシーケンス図で示したように、端末Ｂで暗号化データの表示・再生を行うためには、端末Ａと接続して部分鍵Ｋｐの提供を受ける必要がある。そのため、端末Ｂからさらに別の端末Ｃ（ＰＣ等）へ暗号化データがコピーされたとしても、端末Ａと接続できない端末Ｃでは復号を行うことができない。すなわち、端末Ａ内で暗号化されたデータは、端末Ａと接続可能な端末においてのみ復号が可能であり、他の端末へ無制限にコピーされ、利用されることを防ぐことができる。
【００３８】
また、図４のシーケンス図に示した方法を利用することで、端末Ａ内のデータを端末Ｂにバックアップすることが可能である。特に、端末Ａが携帯電話機等の容量が少ない端末であり、端末ＢがＰＣ等で容量の大きい端末である場合において有効な方法である。端末Ｂにバックアップされた暗号化データの表示・再生には、前述の通り端末Ａとの接続が必要であるため、バックアップデータの秘匿性が確保される。
【００３９】
続いて、図８を参照し、秘密鍵Ｋｃの更新方法を説明する。図４、図５のシーケンス図で示したとおり、端末Ａおよび端末Ｂでは暗号化データが暗号化された状態で保存されている。前述の通り、端末Ｂは耐タンパー性が低く、秘密鍵Ｋｃ＿２が漏洩する可能性がある。秘密鍵Ｋｃ＿２が漏洩すると、不正者は端末Aから受け取った部分鍵ＫｐとＫｃ＿２から秘密鍵Kを生成し、コンテンツを復号する可能性がある。このため、秘密鍵Ｋｃ＿２が漏洩した場合、ただちに、秘密鍵ＫｃおよびＫｃ＿２を更新する必要がある。
【００４０】
そのため、秘密鍵Ｋｃ＿２が漏洩したことが判明した段階で、端末Ａおよび端末Ｂで使用する秘密鍵Ｋｃ、Kｃ＿２を変更する必要がある。しかし、このとき、変更前の秘密鍵Ｋｃ、Ｋｃ＿２から生成される共有鍵Ｋで既に暗号化されたデータが、秘密鍵Ｋｃ、Ｋｃ＿２の変更後に復号できなくなると、端末Ａまたは端末Ｂの利用者にとって利便性が良くない。
【００４１】
そこで、本実施形態ではハッシュチェーンを利用して秘密鍵Ｋｃを生成し、ハッシュチェーンの後方互換性により、秘密鍵Ｋｃの変更後においても、変更前の秘密鍵Ｋｃから生成される共有鍵Ｋで暗号化されたデータの復号を可能としている。以下、秘密鍵Ｋｃの生成方法及び更新方法を具体的に説明する。
【００４２】
秘密鍵Ｋｃの生成においては、マスター鍵Ｋｍとハッシュ関数Ｈを用い、ハッシュ関数Ｈで演算した回数をｉ、秘密鍵Ｋｃを更新する最大回数をｎとして、ハッシュチェーンＨｉ（Ｋｍ）（ｉ＝０、１、…、ｎ）を求める。ｉ＝０のときは、Ｈ０（Ｋｍ）＝Ｋｍである。ｉ＞＝１のときは、Ｈｉ（Ｋｍ）＝Ｈ（Ｈｉ−１（Ｋｍ））により、ｉ−１番目のハッシュチェーンＨｉ−１（Ｋｍ）にハッシュ関数Ｈを１回演算することでＨｉ（Ｋｍ）を求める。
【００４３】
以上の方法で、ハッシュチェーンＨｉ（Ｋｍ）（ｉ＝０、１、…、ｎ）が求まると、初めに端末Ａおよび端末Ｂに対してリリースするソフトウェアには秘密鍵Ｋｃ＝Ｈｎ（Ｋｍ）を組み込む。この秘密鍵Ｋｃが漏洩し、秘密鍵Ｋｃの更新を行う場合には、ハッシュチェーンの一つ手前に位置するＨｎ−１（Ｋｍ）を秘密鍵Ｋｃとして組み込み、端末Ａおよび端末Ｂにソフトウェアを再配布する。
【００４４】
同様に、秘密鍵Ｋｃを更新するたびにハッシュチェーンの一つ手前に位置するものを秘密鍵Ｋｃとして組み込んでいく。ｎ回秘密鍵Ｋｃを更新すると、Ｋｃ＝Ｈ０（Ｋｍ）＝Ｋｍとなり、これ以上秘密鍵Ｋｃの更新を行うことはできない。
【００４５】
ハッシュ関数Ｈは、逆元を求めることが困難であるという特徴があり、ハッシュ関数Ｈの演算結果から演算する前の値を計算するのは困難である。そのため、秘密鍵Ｋｃ＝Ｈｉ（Ｋｍ）が漏洩した後に、秘密鍵ＫｃがＫｃ＝Ｈｊ（Ｋｍ）（ただし、ｉ＞ｊ）に変更されると、Ｋｃ＝Ｈｉ（Ｋｍ）からＫｃ＝Ｈｊ（Ｋｍ）を計算することができず、変更後のＫｃ＝Ｈｊ（Ｋｍ）の秘匿性は確保される。
【００４６】
一方、変更後のＫｃ＝Ｈｊ（Ｋｍ）から変更前のＫｃ＝Ｈｉ（Ｋｍ）（ただし、ｉ＞ｊ）を計算するには、ハッシュ関数Ｈをｉ−ｊ回演算することで容易に求められる。したがって、変更後のＫｃ＝Ｈｊ（Ｋｍ）から変更前のＫｃ＝Ｈｉ（Ｋｍ）を計算し、さらに共有鍵Ｋを生成することで秘密鍵Ｋｃの変更前に暗号化されたデータの復号が可能となる。
【００４７】
以上説明したように、ハッシュチェーンを利用して秘密鍵Ｋｃを生成することにより、変更後の最新の秘密鍵Ｋｃを知る端末Ａまたは端末Ｂの正規の利用者のみが、秘密鍵Ｋｃの変更前に暗号化されたデータも含めて全てのデータを復号し利用することができる。このように、本実施形態は、秘密鍵Ｋｃを更新することでその安全性を保ちつつも、利用者の利便性を損なわない。
【００４８】
以上、本発明の実施形態を詳述してきたが、具体的な構成は本実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【００４９】
本発明は、データの暗号化で使用する共有鍵を生成する共有鍵生成方法に用いて好適である。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態にかかる共有鍵生成方法の仕組みを示した図である。
【図２】図1の端末Ａで共有鍵Ｋを生成する方法を示したシーケンス図である。
【図３】図1の端末Ｂで共有鍵Ｋを生成する方法を示したシーケンス図である。
【図４】図1の端末Ａから端末Ｂへ暗号化データをコピーする方法を示したシーケンス図である。
【図５】図1の端末Ｂから端末Ａへ暗号化データをコピーする方法を示したシーケンス図である。
【図６】図1の端末Ａで、暗号化されたデータを表示・閲覧する方法を示したシーケンス図である。
【図７】図1の端末Ｂで、暗号化されたデータを表示・閲覧する方法を示したシーケンス図である。
【図８】図１の秘密鍵Ｋｃを更新する方法を示した図である。
【図１】
2007005878.tif 000003
【図２】
2007005878.tif 000004
【図３】
2007005878.tif 000005
【図４】
2007005878.tif 000006
【図５】
2007005878.tif 000007
【図６】
2007005878.tif 000008
【図７】
2007005878.tif 000009
【図８】
2007005878.tif 000010