(57)【特許請求の範囲】
【請求項１】
送信局から受信局にデータを送信する情報通信方法であって、
前記受信局に、復号化のための秘密鍵を組み込んだソフトウェアであって、前記送信局から送信された送信データを外部に漏洩させることなく利用させるためのソフトウェアをインストールするステップと、
前記送信局が、前記送信データを、送信先の受信局の秘密鍵に対応する公開鍵によって暗号化するステップと、
前記送信局が、前記送信データを秘密分散法により第１の暗号化データと第２の暗号化データに分割するステップと、
前記送信局が、前記送信データのデータ識別子と前記第１の暗号化データを中継局に送信するステップと、
前記中継局が、前記データ識別子と前記第１の暗号化データを記憶するステップと、
前記中継局が、前記第１の暗号化データにアクセスするためのアクセスアドレスを生成し、前記アクセスアドレスを前記送信局に送信するステップと、
前記送信局が、前記受信局に、送信すべきデータのデータ識別子と前記第２の暗号化データと前記アクセスアドレスを送信するステップと、
前記受信局が、前記アクセスアドレスに対して、前記データ識別子を送信するステップと、
前記中継局が、前記アクセスアドレスに対して送信された前記データ識別子に対応する前記第１の暗号化データを前記受信局に送信するステップと、
前記受信局が、前記第１の暗号化データと前記第２の暗号化データとに基づいて、前記送信データを復元するステップと、
前記受信局が、前記秘密鍵を用いて前記送信データを復号するステップと、
を備える情報通信方法。
【請求項２】
前記中継局が、前記受信局から前記データ識別子を受信したときに、前記データ識別子を前記送信局に送信して、当該データ識別子に係る第１の暗号化データを前記受信局へ送信してよいか問い合せるステップを備え、
前記中継局は、前記送信局から送信可能とのレスポンスがあった場合に、前記受信局への前記第１の暗号化データの送信を行う請求項１に記載の情報通信方法。
【請求項３】
前記中継局が、前記第１の暗号化データを削除するための削除アドレスを生成し、前記削除アドレスを前記送信局に送信するステップと、
前記送信局が、前記削除アドレスに対して、前記データ識別子を送信するステップと、
前記中継局が、前記削除アドレスに対応する前記第１の暗号化データを削除するステップと、
を備える請求項１または２に記載の情報通信方法。
【請求項４】
前記暗号化するステップでは、確率的な暗号化を行う請求項１乃至３のいずれかに記載の情報通信方法。
【請求項５】
前記送信局、前記中継局、前記受信局の相互間でデータの送受信を行う前に、それぞれの局の認証を行うステップを備える請求項１乃至４のいずれかに記載の情報通信方法。
【請求項６】
前記送信局が、前記第１の暗号化データまたは前記第２の暗号化データのハッシュ値を計算し、当該ハッシュ値を前記データ識別子として用いる請求項１乃至５のいずれかに記載の情報通信方法。
【請求項７】
送信局から受信局に、中継局を用いてデータを送信する情報通信システムであって、
前記送信局は、
送信すべき送信データを送信先の受信局の秘密鍵に対応する公開鍵によって暗号化する手段と、
前記送信データを秘密分散法により第１の暗号化データと第２の暗号化データに分割する手段と、
前記送信データのデータ識別子と前記第１の暗号化データを前記中継局に送信する手段と、
前記中継局から前記第１の暗号化データにアクセスするためのアクセスアドレスを受信する手段と、
前記送信データのデータ識別子と前記アクセスアドレスを前記受信局に送信する手段と、を備え、
前記中継局は、
前記送信局から送信された前記データ識別子と前記第１の暗号化データを記憶する手段と、
前記アクセスアドレスを生成し、前記アクセスアドレスを前記送信局に送信する手段と、
前記受信局から、前記アクセスアドレスに対して前記データ識別子を受信したときに、前記データ識別子に対応する前記第１の暗号化データを前記受信局に送信する手段と、を備え、
前記受信局は、
前記送信局から送信された前記第２の暗号化データと前記アクセスアドレスを受信する手段と、
前記アクセスアドレスに対して、前記データ識別子を送信する手段と、
前記中継局から送信された前記第１の暗号化データを受信する手段と、
前記第１の暗号化データと前記第２の暗号化データとに基づいて、送信データを復元する手段と、
を備え、 前記受信局には、復号化のための秘密鍵を組み込んだソフトウェアであって、前記送信局から送信された送信データを外部に漏洩させることなく利用させるためのソフトウェアをインストールされている情報通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人のプライバシーに関わる情報や機密情報等（以下、「秘密情報」という）を通信するシステムに関し、特に、送信されたデータの受信者の参照権限を送信者が任意に管理可能な情報通信方法に関する。
【背景技術】
【０００２】
秘密情報を情報システム上で受け渡しする際には、送信データが正当な受信者以外に漏洩しないようにすることが求められる。
【０００３】
ところが、送信先の指定を誤ったり、受信者によるデータ管理の不備等により、第三者に秘密情報が漏洩する問題が度々発生している。また、送信したデータが受信者によって、送信者が意図した以外の目的に利用されてしまうことで、プライバシーが侵害される問題もしばしば指摘されている。
【０００４】
このような問題を解決する従来の手法としては、データの暗号化が一般的である。暗号化により、秘密情報への正当なアクセス権を持つ受信者以外にデータが漏洩したとしても、秘密情報の流出を防止する効果がある（特許文献１、特許文献２）。
【０００５】
一方、実際に送信先へ情報を送る前に、送信者のローカルのディスク領域に一旦送信データを保存しておき、一定期間後に実際に送信するようにしたデータ送信方法が知られている。この方法であれば、その送信の待機時間中であれば、送信先を誤った場合であって、送信を取り消すことが可能である。
【０００６】
また、送信データを受信者へ直接送信するのではなく、信頼できる中継サーバ上に送信し、受信者はその中継サーバから送信データを受け取るという方法が知られている。送信したデータには、参照可能な期限情報（送信日時、参照可能期間）が付加されており、中継者の持つ現在日時を基に、そのデータの参照可能性をチェックするという方法である。この方法では、一定期間が経過すると、そのデータにアクセスすることを不可能にできる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１１４８５３号公報
【特許文献２】特開２００７−１２４２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
データを暗号化する方法は、盗聴などによる秘密情報の流出を防止する一定の効果があるが、受信者の秘密鍵が漏洩した場合には、容易に秘密情報が流出する危険性がある。このような危険性を防止する方法として特許文献１のように、暗号化処理を外部メモリに記憶させることで、秘密鍵が容易に複製されることを防止する方法が知られている。しかし、この方法でも外部メモリが物理的に第三者に渡る危険性があるため、十分に有効とはいえない。
【０００９】
また、特許文献２のように、暗号データの復号の可否を信頼できるセンターへ問い合わせて、データ復号が許可された場合にのみ、復号を実行できる方式が知られている。この方式であれば、復号を行ったユーザ、日時、回数などを管理することができる。しかし、暗号データがそのまま永続化されていると、暗号データがハッカーなどに漏洩したり、将来の計算機の能力向上により暗号が解読されたりする可能性がある。また、一度復号されたデータの管理はされていないため、復号されたデータが流出することは防止できない。
【００１０】
データ送信において、送信を待機する従来方式では、待機時間が短いと送信誤りに気が付く前に送信されてしまう。待機時間が長いとリアルタイム性が損なわれるという問題がある。さらに、一度、送信されたデータを後から削除、あるいは参照を不可能にする合法的な手段はない。また、この方法ではデータが盗聴されることによる情報漏えいを防ぐことができない。
【００１１】
信頼できる中継者に、参照可能時間の情報と共にデータを送信する方式では、送信データを暗号化しない限り、中継者に送信者の秘密情報が知られてしまう。送信データを受信者の公開鍵で暗号化した場合、中継者には秘密情報が知られないが、受信者において送信データが復号されるため、結局、受信者に送信データが残ってしまう。また、中継者に送った情報が実際に消去されたかどうかを送信者が確認する手段がないため、実際には中継者が永続的にデータを保管する可能性を否定できない。この場合、将来計算機の計算能力が向上した場合に、暗号化されたデータが解読されてしまう危険性がある。
【００１２】
本発明は、上記背景に鑑み、秘密情報の漏洩の危険性を低減した情報通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の情報通信方法は、送信局から受信局にデータを送信する情報通信方法であって、前記送信局が、送信すべき送信データを秘密分散法により第１の暗号化データと第２の暗号化データに分割するステップと、前記送信局が、前記送信データのデータ識別子と前記第１の暗号化データを中継局に送信するステップと、前記中継局が、前記データ識別子と前記第１の暗号化データを記憶するステップと、前記中継局が、前記第１の暗号化データにアクセスするためのアクセスアドレスを生成し、前記アクセスアドレスを前記送信局に送信するステップと、前記送信局が、前記受信局に、送信すべきデータのデータ識別子と前記第２の暗号化データと前記アクセスアドレスを送信するステップと、前記受信局が、前記アクセスアドレスに対して、前記データ識別子を送信するステップと、前記中継局が、前記アクセスアドレスに対して送信された前記データ識別子に対応する前記第１の暗号化データを前記受信局に送信するステップと、前記受信局が、前記第１の暗号化データと前記第２の暗号化データとに基づいて、前記送信データを復元するステップとを備える。
【００１４】
このように秘密分散法によって、送信データを第１の暗号化データと第２の暗号化データに分け、第１の暗号化データを中継局に送信し、第２の暗号化データを受信局に送信する構成としたので、第１の暗号化データまたは第２の暗号化データが盗聴されたとしても、送信データを復元することができず、情報通信の安全性を高めることができる。また、中継局に送信された第１の暗号化データだけからは送信データを復元できないので、将来、コンピュータの計算能力が向上しても、中継局において送信データが復元されることはない。
【００１５】
ここで、「秘密分散法」とは、元の情報から複数の暗号化データを生成し、分割された暗号化データを集めないと元の情報を復元できなくする暗号化方式である。この方式には、ｎ個に分割したすべての暗号化データを集めないと元の情報を復元できない方式（n-out-of-n分散方式）と、ｎ個のうちｋ個の暗号化データを集めれば元の情報を復元できる方式（k-out-of-n分散方式）がある。本発明では、いずれの方式を採用してもよいが、中継局に送信した第１の暗号化データと、受信局に送信した第２の暗号化データから元の送信データを復元できる必要がある。
【００１６】
本発明の情報通信方法は、前記中継局が、前記受信局から前記データ識別子を受信したときに、前記データ識別子を前記送信局に送信して、当該データ識別子に係る第１の暗号化データを前記受信局に送信してよいか問い合せるステップを備え、前記中継局は、前記送信局から送信可能とのレスポンスがあった場合に、前記受信局への前記第１の暗号化データの送信を行ってもよい。
【００１７】
このように中継局が第１の暗号化データを受信局に送信することについて、送信局の許可を必要とする構成とすることにより、送信局は受信局にデータを送信するかどうかをコントロールすることができる。送信先の受信局が複数存在する場合には、受信局ごとに、送信を行うかどうかをコントロールすることも可能である。
【００１８】
本発明の情報通信方法は、前記中継局が、前記第１の暗号化データを削除するための削除アドレスを生成し、前記削除アドレスを前記送信局に送信するステップと、前記送信局が、前記削除アドレスに対して、前記データ識別子を送信するステップと、前記中継局が、前記削除アドレスに対応する前記第１の暗号化データを削除するステップとを備えてもよい。
【００１９】
この構成により、送信局は、中継局から送信データが漏洩しないように、送信済みのデータを中継局から削除することができる。
【００２０】
本発明の情報通信方法は、前記受信局に、復号化のための秘密鍵を組み込んだソフトウェアであって、前記送信データを外部に漏洩させることなく利用させるためのソフトウェアをインストールするステップと、前記送信局が、前記送信データの秘密分散を行う前に、前記送信データを、送信先の受信局の秘密鍵に対応する公開鍵によって暗号化するステップとを備えてもよい。
【００２１】
このように送信データを外部に漏洩させることなく利用させるソフトウェアに組み込まれた秘密鍵を用いて送信データを暗号化する構成により、当該ソフトウェアのみによって送信データを復号することが可能なため、受信局で送信データを利用する際に、外部にデータが漏洩しないようにすることができる。
【００２２】
本発明の情報通信方法は、前記暗号化するステップでは、確率的な暗号化を行ってもよい。
【００２３】
このように確率暗号化を行うことにより、送信データと暗号化データとの対応関係が特定されるのを防止できる。
【００２４】
本発明の情報通信方法は、前記送信局、前記中継局、前記受信局の相互間でデータの送受信を行う前に、それぞれの局の認証を行うステップを備えてもよい。
【００２５】
このように各局の認証を行うことにより、さらにセキュリティを向上させることができる。
【００２６】
本発明の情報通信方法は、前記送信局が、前記第１の暗号化データまたは前記第２の暗号化データのハッシュ値を計算し、当該ハッシュ値を前記データ識別子として用いてもよい。
【００２７】
ハッシュ値は、第１の暗号化データまたは第２の暗号化データに対してほぼ一意（理論的には一意ではないが、実際上は一意とみなせる）に定まるので、送信データを特定する情報として有効に用いることができる。
【００２８】
本発明の情報通信システムは、送信局から受信局に、中継局を用いてデータを送信する情報通信システムであって、前記送信局は、送信すべき送信データを秘密分散法により第１の暗号化データと第２の暗号化データに分割する手段と、前記送信データのデータ識別子と前記第１の暗号化データを前記中継局に送信する手段と、前記中継局から前記第１の暗号化データにアクセスするためのアクセスアドレスを受信する手段と、前記送信データのデータ識別子と前記アクセスアドレスを前記受信局に送信する手段とを備え、前記中継局は、前記送信局から送信された前記データ識別子と前記第１の暗号化データを記憶する手段と、前記アクセスアドレスを生成し、前記アクセスアドレスを前記送信局に送信する手段と、前記受信局から、前記アクセスアドレスに対して前記データ識別子を受信したときに、前記データ識別子に対応する前記第１の暗号化データを前記受信局に送信する手段とを備え、前記受信局は、前記送信局から送信された前記第２の暗号化データと前記アクセスアドレスを受信する手段と、前記アクセスアドレスに対して、前記データ識別子を送信する手段と、前記中継局から送信された前記第１の暗号化データを受信する手段と、前記第１の暗号化データと前記第２の暗号化データとに基づいて、送信データを復元する手段とを備える。
【発明の効果】
【００２９】
本発明によれば、秘密分散法によって送信データを第１の暗号化データと第２の暗号化データに分け、第１の暗号化データを中継局に送信し、第２の暗号化データを受信局に送信する構成としたので、第１の暗号化データまたは第２の暗号化データが盗聴されたとしても、送信データを復元することができず、情報通信の安全性を高めることができる。
【図面の簡単な説明】
【００３０】
【図１】実施の形態の情報通信方法の概要を示す図である。
【図２】送信局の構成を示す図である。
【図３】中継局の構成を示す図である。
【図４】受信局の構成を示す図である。
【図５】データ送信処理の流れを示す図である。
【図６】データ送信処理の流れを示す図である。
【図７】データ送信処理の流れを示す図である。
【図８】データ受信処理の流れを示す図である。
【図９】データ受信処理の流れを示す図である。
【図１０】データ削除処理の流れを示す図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態に係る情報通信システム及び情報通信方法について説明する。
（概要）
図１は、本実施の形態の情報通信システムの概要を示す図である。最初に、図１を用いて概要について説明した後で、詳細な構成について述べる。図１に示すように、情報通信システムは、データを送信する送信局Sと、データを受信する受信局Rと、データの送受信の一部を中継する中継局Mとを有している。本実施の形態で送信されるデータを原データDという。
【００３２】
本実施の形態の情報通信システムでは、原データDを送信局Sから受信局Rに送信するのではなく、シェアーE_D_MとシェアーE_D_Rに分割し、シェアーE_D_Mを中継局Mに送信し、シェアーE_D_Rを受信局Rに送信する。シェアーE_D_MとシェアーE_D_Rは、それぞれ単独では原データDを復元することができないデータである。受信局Rは、シェアーE_D_Mを中継局Mから受信し、送信局Sから受信したシェアーE_D_Rと中継局Mから受信したシェアーE_D_Mを用いて原データDを復元する。
【００３３】
図１を参照しながら、この流れについて説明する。送信局Sは、まず、原データDをシェアーE_D_MとシェアーE_D_Rに分割する。次に、送信局Sは、原データを特定するデータ識別子と、分割によって生成されたシェアーE_D_Mを中継局Mに送信する。
【００３４】
中継局Mは、送信局Sから送信されたデータ識別子とシェアーE_D_Mとを関連付けて記憶し、このデータ識別子に対するアクセスアドレスU_Gを生成する。中継局Mは、アクセスアドレスU_Gを送信局Sに送信する。
【００３５】
送信局Sは、データ識別子と、シェアーE_D_Rと、中継局Mから受信したアクセスアドレスU_Gを受信局Rに送信する。受信局Rは、送信局Sから受信したアクセスアドレスU_Gに対してデータ識別子を送信する。
【００３６】
中継局Mは、受信局Rからデータ識別子を受信すると、データ識別子に対応するシェアーE_D_Mを受信局Rに送信する。受信局Rは、中継局MからシェアーE_D_Mを受信すると、中継局Mから受信したシェアーE_D_Mと送信局Sから受信したシェアーE_D_Rを用いて原データDを復元する。
【００３７】
以上、本実施の形態の情報通信システム及び情報通信方法の概要について説明した。以上に説明した内容は、本実施の形態の最も基本的な部分について説明しただけであり、実際には、送信局Sが中継局Mに対してシェアーE_D_Mを削除する権限を有する仕組みや、各局におけるデータの送受信に際しては、各局の正当性を認証する処理等を有している。詳細は、以下に説明する。
【００３８】
（システム構成）
図２は、送信局Sの構成を示す図である。送信局Sは、送信処理部１０を有している。送信処理部１０は、デジタル署名公開鍵管理部１２と、中継局認証部１４と、中継データ登録部１６と、データ分割部２２とを有している。中継局認証部１４は、ランダムメッセージの生成、デジタル署名の生成、署名用ハッシュの計算の機能を有している。中継データ登録部１６は、デジタル署名部１８とデータアクセス用ハッシュ計算部２０とを有している。ここで、デジタル署名部１８は、ランダムメッセージの生成、署名用ハッシュの計算、デジタル署名データの計算の機能を有している。データ分割部２２は、（ｋ，ｎ）閾値秘密分散部２４を有している。（ｋ，ｎ）閾値秘密分散部２４は、乱数を生成する機能を有している。
【００３９】
また、送信局処理部１０は、暗号化公開鍵管理部２６とデータ暗号化部２８と、データ送信部３０と、データ送信ログ管理部３４と、データ削除部３６とを有している。データ暗号化部２８は、乱数の生成、暗号データの計算の機能を有している。データ送信部３０は、アクセス情報ファイル生成部３２を有している。
【００４０】
図３は、中継局Mの構成を示す図である。中継局Mは、中継処理部４０を有しており、中継処理部４０は、デジタル署名秘密鍵管理部４２と、デジタル署名部４４と、送信局認証部４６と、受信局認証部４８と、中継データ登録部５０と、中継データ削除部５２と、中継データ転送部５４と、中継データ管理部５６とを有している。デジタル署名部４４は、署名用ハッシュの計算、デジタル署名データの計算の機能を有している。送信局認証部４６は、デジタル署名の検証、署名用ハッシュの計算の機能を有している。受信局認証部４８は、デジタル署名の検証、署名用ハッシュの計算の機能を有している。中継データ登録部５０は、アクセスアドレスおよび削除アドレスを生成する機能を有している。中継データ管理部５６は、シェアー管理部５８とアクセス管理部６０とを有している。
【００４１】
図４は、受信局Rの構成を示す図である。受信局Rは、受信処理部７０を有している。受信処理部７０は、アクセス情報復号部７２と、中継データ受信部７４と、中継局認証部７８と、セキュアオンメモリ復号部８０と、データ複製保護機能９４とを有している。アクセス情報復号部７２は、公開鍵暗号を復号する機能を有している。中継データ受信部７４は、デジタル署名部７６を有している。デジタル署名部７６は、ランダムメッセージの生成、署名用ハッシュの計算、デジタル署名データの計算の機能を有している。中継局認証部７８は、ランダムメッセージの生成、デジタル署名の検証、署名用ハッシュの計算の機能を有している。
【００４２】
セキュアオンメモリ復号部８０は、データ結合部８２を有しており、データ結合部８２は、（ｋ，ｎ）閾値秘密分散部８４と、メモリアクセス保護機能８６と、データ復号化部８８と、認証及び統計処理を行うデータ利用部９２とを有している。データ復号化部８８は、受信局Sの秘密鍵を管理する秘密鍵管理部９０を有しており、受信局Sの公開鍵で暗号化されたデータを復号化する機能を有している。データ複製保護機能９４は、受信したデータを外部に漏洩させないようにデータの複製を抑制する機能であって、クリップボード機能抑制、画面キャプチャー機能抑制、印刷機能抑制機能などを有している。
【００４３】
なお、受信処理部７０を実現するソフトウェア（プログラム）は、送信局Sから配付され、受信局Rにインストールされる。上述したとおり、受信処理部７０を実現するソフトウェアには、受信局Rの秘密鍵が含まれており、送信局Sから送信されたデータを復号するためには、このソフトウェアを使うしかない。そして、このソフトウェアには、データ複製保護機能９４が備えられているので、送信局Sから送信されたデータを複製することができない仕組みになっている。この構成により、受信局Sにて受信し、復号された原データDが、受信局Sからコピーして配付されないようにしている。
【００４４】
図１には示していないが、各局が信頼する局Tがあり、その局Tは、各局を認証するためのデータ（デジタル署名用のデータ）を保有し、各局に公開している。但し、以下では簡単のために、それら公開データはあらかじめ各局が信頼する局から入手しているものと仮定する。
【００４５】
各局はそれぞれを認証するためのデジタル署名用の秘密データを保持している。送信局S、中継局M、受信局Rのデジタル署名の秘密鍵をそれぞれSX_S、SX_M、SX_Rとする。信頼する局Tで公開されている公開データ(SP, SQ, SG)とそれらから各局の秘密鍵から生成される公開鍵データをそれぞれSV_S=SG^(-SX_S) (mod SP)，SV_M=SG^(-SX_M) (mod SP)，SV_R=SG^(-SX_R) (mod SP)とする。ここで、SP, SQは十分に大きな素数であり、SGはSG^SQ=1(mod SP)を満たす剰余類Z_SPに属する数である。「^」は、指数演算を意味し、mod SPは、数SPの剰余を意味する。デジタル署名用の二つの引数を持つハッシュ関数をSH(・,・)とする。ここでは簡単のため、デジタル署名には、ゼロ知識証明型Schnorr署名を用いるものと仮定するが、他のゼロ知識証明型署名を利用してもよい。また、ハッシュ関数には、Merkle-Damagard変換などが利用できる。
【００４６】
各局はデジタル署名以外に、公開鍵暗号を利用する。受信局Rの秘密鍵をCX_R、公開鍵を(CP_R，CG_R，CY_R)とする。この秘密鍵CX_Rは、受信局Rに配付されたソフトウェア内の秘密鍵管理部９０にて管理されており、受信局Sの利用者が秘密鍵をエクスポートできないようになっている。ここで、CP_Rは十分に大きな素数であり、かつCG_Rは剰余類Z_CP_Rの原始元であり、秘密鍵CX_Rは、剰余類Z_(CP_R-1)の元であり、公開鍵と秘密鍵とは、それぞれ次のような関係を満たす：
CY_R=CG_R^(CX_R)(mod CP_R)。
【００４７】
ここでは簡単のために、公開鍵暗号には、ElGamal暗号を利用するものと仮定するが、他の確率的公開鍵暗号を利用してもよい。
【００４８】
（データ送信処理）
図５〜図７は、データ送信処理の流れを示す図である。送信局Sは、送信すべき送信情報を作成し（Ｓ１０）、送信先を指定する（Ｓ１２）。ここで、送信局Sが作成した平文の送信データを原データDと呼ぶ。以下、簡単のため、原データDは剰余類Z_CP_Rの要素であるとする。
【００４９】
（中継局の認証処理）
データの送信には、まずあらかじめ設定された中継局Mが正式な中継局であることを認証する。そのためにデジタル署名を利用する。送信局Sが送信データを編集後、送信を実行する際には、以下の手順に従う。
【００５０】
まず、中継局Mに対して、中継局Mのデジタル署名データを要求する（Ｓ１４）。中継局Ｍは、送信局Sからの要求を受けてデジタル署名S_Mを送信局Sに送信する（Ｓ１６）。送信局Sは、受け取ったデジタル署名を検証する（Ｓ１８）。正式な中継局Mであることが認証された時のみ（Ｓ１８でＹＥＳ）、以下の送信処理を実行し、認証に失敗したら（Ｓ１８でＮＯ）、送信処理を中止する。中継局Mの認証は、デジタル署名を利用した認証を行う。ここでは、以下のように、ゼロ知識型Schnorr認証を利用する。
【００５１】
（中継局の認証処理−詳細）
送信局Sでは、ランダムに生成したトライアル用のメッセージM1を生成する。このメッセージM1を中継局Mへ送信し、デジタル署名データを要求する。この要求を受けて、中継局Mでは、まず剰余類Z_SQからランダムに数R1を選択し、X1＝SG^(R1)(mod SP)を計算する。次に、ハッシュ関数SHを利用して、C1＝SH（M1，X1）を計算する。さらに、中継局Mの秘密鍵SX_Mを利用し、Y1＝R1+SX_M・C1(mod SQ)を計算する。ここで「・」は積を表す。中継局Mは受信したメッセージM1に対して計算したS_M=(C1，Y1)を送信局へ返す。
【００５２】
送信局Sは受け取ったS_M=(C1，Y1)から、X1’=SG^(Y1)・SV_M^(C1)を計算し、さらにハッシュ値C1’=SH(M1，X1’)を計算する。もし、C1=C1’となった場合には、中継局Mが正式な中継局であると認証し、そうでない場合には、不正な中継局として送信処理を中止する。
【００５３】
（原データ暗号化処理）
次に、送信局Sでは、原データDから選択された受信局Rの公開鍵(CP_R, CG_R, CY_R)を用いて、暗号データE_Dを計算する（Ｓ２０）。ここでは、この暗号化にElGamal暗号を利用し、以下のように計算する。まず、剰余類Z_(CP_R-1)からランダムに数R2を選択し、暗号データE_Dを以下のように計算する。
E_D=(E_D_1，E_D_2)=(CG_R^R2 (mod CP_R)，D・CY_R^R2 (mod CP_R))
【００５４】
ここで確率的公開鍵暗号を利用するのは、過去に同じ原データDを送っていたとしても、毎回異なる暗号データE_Dが生成されるようにするためである。このようにすることで、もし仮に、以前に送った原データDの内容とその暗号化データE_Dとの対応が漏洩していたとしても、その影響を受けないようにできる。
【００５５】
（送信データへのデジタル署名処理）
次に、送信局Sは、暗号化データE_Dからデジタル署名を生成する（Ｓ２２）。送信局Sは、暗号データE_Dに付加するデジタル署名として、剰余類Z_SQからランダムに数R3を選択し、X3＝SG^(R3)(mod SP)を計算する。次に、ハッシュ関数SHを利用して、C3＝SH（E_D，X3）を計算する。さらに、送信局Sの秘密鍵SX_Sを利用し、Y3＝R3+SX_S・C3(mod SQ)を計算する。
【００５６】
以下、デジタル署名S_E_D= (C3，Y3)は、受信局Rが受信データを復号した後に、それが確かに正しい送信局Sから送信された暗号データE_Dであることをチェックするために利用される。
【００５７】
暗号化データE_Dに付加するデジタル署名は、送信局Sから中継局Mへ送信したデータを後で削除する際に、その削除命令が確かにそのデータの正当な送信局Sから来たものであることを検証するために利用される。
【００５８】
（送信データ分割処理）
図６を参照して説明を続ける。次に、送信局Sは、暗号データE_Dを複数のデータに秘密分散する（Ｓ２４）。ここでは、Shamirの(k，n)-閾値秘密分散法を利用する。これは、原データDをn個の分散データ（シェアーと呼ばれる）に分割し、その内の任意のk個以上のシェアーが集まった時に、原データDを復元することが可能であるが、k個未満のシェアーからは、原データDが復元できないという方法である。
【００５９】
本実施の形態では、送信局Sは、暗号データE_D_1、E_D_2のそれぞれを３つのシェアーに分割する。図１では、概要を示すため、２つのシェアーE_D_M、E_D_Rに言及したが、本実施の形態では、３つのシェアーに分割したうえで、そのうちの２つを情報送信に用いている。E_D_1のシェアーを(E_D_1_1、E_D_1_2、E_D_1_3)とおく。同様に、E_D_2のシェアーを(E_D_2_1、E_D_2_2、E_D_2_3)とおく。
【００６０】
（送信データ分割処理−シェアーの作成方法）
ここで、シェアーの作成方法について説明する。閾値秘密分散に関しては、法TPの合同を利用するものとする。以下では、n=3、k=2の場合について説明する。まず、剰余類Z_TPからランダムに数H1を選択し、多項式f1(X)＝E_D_1+H1・X(mod TP)を生成する。（但し、ここでCP_R ≦TPと仮定する。）この多項式を使って、シェアーを以下のように作成する。
E_D_1_1=f1(1)，  E_D_1_2=f1(2)，  E_D_1_3=f1(3)
【００６１】
E_D_2も同様に、剰余類Z_TPからランダムに数H2を選択し、多項式f2(X)＝E_D_2+H2・X (mod TP)を生成する。この多項式を使って、シェアーを以下のように作成する。
E_D_2_1=f2(1)，  E_D_2_2=f2(2)，  E_D_2_3=f2(3)
【００６２】
以下、簡単のため、E_D_S=(E_D_1_1, E_D_2_1)、E_D_M=(E_D_1_2, E_D_2_2)、E_D_R=(E_D_1_3, E_D_2_3)とおく。これらもシェアーと呼ぶことにする。
【００６３】
（中継データ登録処理）
次に、シェアーE_D_Mを、中継局Mに送信する手順について説明する。まず、送信局Sは、シェアーE_D_Sからハッシュ関数Hを用いて、ハッシュ値H_E_D=H(E_D_S)を生成する（Ｓ２６）。ここで、ハッシュ値H_E_Dは、送信データDを識別する情報として用いる。すなわち、ハッシュ値H_E_Dは、概要において説明したデータ識別子に該当する。
【００６４】
また、中継局Mが送信局Sを認証できるように、送信局Sはデジタル署名S_Sを付与する（Ｓ２８）。まず、送信局Sは、ランダムにメッセージM4を生成し、剰余類Z_SQからランダムに数R4を選択し、X4＝SG^(R4)(mod SP)を計算する。次にハッシュ関数SHを利用して、C4＝SH（M4，X4）を計算する。さらに、送信局Sの秘密鍵SX_Sを利用し、Y4＝R4+SX_S・C4(mod SQ)を計算する。
【００６５】
送信局Sは、中継局Mに対して、デジタル署名S_S=(M4，C4，Y4)とシェアーE_D_Mとハッシュ値H_E_Dと受信局の識別子ID_Rを送信する（Ｓ３０）。中継局Mは、受け取ったデジタル署名S_Sを検証し、それが正式な送信局Sから送られたものであることを確認する（Ｓ３２）。検証手順の説明は、中継局認証処理と同様のため省略する。送信局Sが認証できた場合には（Ｓ３２でＹＥＳ）、以下の処理へ進み、認証できなかった場合には（Ｓ３２でＮＯ）、処理を中断する。
【００６６】
中継局Mは、シェアーE_D_Mをハッシュ値H_E_Dと関連付けて記憶する（Ｓ３４）。また、与えられた受信局Rの識別子ID_Rをハッシュ値H_E_Dと関連付けて記憶する。
【００６７】
図７を参照して説明を続ける。続いて、中継局Mは、このハッシュ値H_E_Dを用いて、中継データへアクセスするためのアドレスU_Gと中継データ削除のためのアドレスU_Dを生成する（Ｓ３６）。これらのアドレスを指定することで、中継局Mでは対応するハッシュ値H_E_Dを知ることができ、ゆえに、関連付けられているシェアーE_D_M及び受信局Rの識別子ID_Rを特定することができる。
【００６８】
以上の処理を行った後、中継局Mは、アクセスアドレスU_Gと削除アドレスU_Dとを送信局Sへ返す（Ｓ３６）。
【００６９】
ここで、中継局Mは受け取ったシェアーE_D_Mのみからは、暗号化データE_Dを復元することができないことに注意する。
【００７０】
（データ送信処理）
送信局Sは、中継局MからアクセスアドレスU_Gと削除アドレスU_Dとを受信すると、ハッシュ値H_E_DとアクセスアドレスU_Gをアクセス情報Ｆ=(H_E_D，U_G)とし、原データDの暗号化と同様にして、受信局Rの公開鍵を用いて暗号化アクセス情報E_Fを生成する（Ｓ３８）。つまり、剰余類Z_(CP_R-1)からランダムに数R5を選択し、暗号化アクセス情報E_Fを以下のように計算する。
E_F=(E_F_1、E_F_2)=(CG_R^R5 (mod CP_R)、F・CY_R^R5 (mod CP_R))。
【００７１】
以上の手順を完了後、送信局Sから受信局RへシェアーE_D_Rと暗号化アクセス情報E_Fとデジタル署名S_E_Dを送信する（Ｓ４０）。送信局Sでは、原データDと削除アドレスU_D、受信局の識別子ID_Rとを関連付けて保存する（Ｓ４２）。なお、本実施の形態では、送信局Sに原データDを残す例について説明しているが、原データDを送信局Sに残さない構成とすることも可能である。原データDを残さない構成にすることにより、原データDが漏洩するリスクを低減できる。
【００７２】
ここで、もし送信局Sから受信局Rへ送信したデータが盗聴されたとしても、送信データにはシェアーの一部のみしか含まれていないため、このデータのみでは暗号データE_Dを復元することはできないことに注意する。また、アクセス情報Fに関しても、受信局Rの公開鍵を利用して暗号化されているため、アクセス情報Fを知ることも困難である。
【００７３】
（データ受信処理）
図８及び図９は、受信局Rによるデータ受信処理の流れを示す図である。図８及び図９を参照しながら、受信局Rが送信局Sからデータを受信してから、原データDの復元までの手順について説明する。
【００７４】
（アクセス情報復元処理）
まず、受信局Rは、送信局Sから送信された暗号化アクセス情報E_FとシェアーE_D_Rとデジタル署名S_E_Dを受信する（Ｓ４４）。受信局Rは、暗号化アクセス情報E_F=(E_F_1, E_F_2)を受信局Rの秘密鍵を利用して以下のように復元する。
F=E_F_2・E_F_1^(CP_R-1-CX_R)(mod CP_R)
【００７５】
受信局Rは、復元したアクセス情報F=(H_E_D，U_G)からアクセスアドレスU_GとハッシュキーH_E_Dを取得する（Ｓ４６）。
【００７６】
（デジタル署名処理）
受信局Rは、中継局Mが受信局Rを認証できるように、デジタル署名S_Rを生成し、付与する（Ｓ４８）。具体的には、受信局Rは、まずランダムにメッセージM6を生成し、剰余類Z_SQからランダムに数R6を選択し、X6＝SG^(R6)(mod SP)を計算する。次にハッシュ関数SHを利用して、C6＝SH（M6，X6）を計算する。さらに、受信局Rの秘密鍵SX_Rを利用し、Y6＝R6+SX_R・C6(mod SQ)を計算する。以上からデジタル署名S_R= (M6、C6、Y6)を得る。
【００７７】
（中継データ要求処理）
受信局Rは、復元したアクセス情報F=(H_E_D，U_G)から中継局MのアクセスアドレスU_Gを得て、このアドレスへハッシュキーH_E_Dとデジタル署名S_R= (M6，C6，Y6)とを送信する（Ｓ５０）。
【００７８】
（受信局の認証処理）
中継局Mは、アドレスU_Gへ送信されたハッシュキーH_E_Dとデジタル署名S_Rを受信すると、デジタル署名S_Rを用いて受信局Rの認証を行う（Ｓ５２）。具体的には、中継局Mは、まず、ハッシュキーH_E_Dに関連付けられた受信局Rの識別子ID_Rから、受信局Rのデジタル署名の公開鍵SV_Rを得る。中継局Mは、X6’=SG^(Y6)・SV_R^(C6)を計算し、さらにハッシュ値C6’=SH(M6、X6’)を計算する。もし、C6=C6’となった場合には（Ｓ５４でＹＥＳ）、受信局Rが正式な受信局であると認証し、そうでない場合には（Ｓ５４でＮＯ）、不正な受信局として処理を中止する。
【００７９】
もし、送信局Sから受信局Rに送信したデータが盗聴され、かつ暗号化されたアクセス情報Fが解読され、中継局Mに中継データを取得するように要求があったとしても、その盗聴した局では、正式な受信局Rのデジタル署名を生成することは困難であるため、この受信局Rの認証をクリアーすることができないことに注意する。
【００８０】
（中継データの送信処理）
受信局Rが認証できたら（Ｓ５４でＹＥＳ）、中継局MはハッシュキーH_E_Dと関連付けられたシェアーE_D_Mが送信局Sから無効化（「データ削除処理」で後述）されていないかをチェックする（Ｓ５６）。もし、シェアーE_D_Mが有効であれば（Ｓ５６でＹＥＳ）、中継局Mは、受信局RへシェアーE_D_Mを送信する（Ｓ５８）。無効になっている場合には、処理を中止する（Ｓ５６でＮＯ）。
【００８１】
なお、データが削除されていない場合に、シェアーE_D_Mが無効化されていないかのチェックとして、さらに中継局Mから送信局Sに問い合わせてもよい。すなわち、中継局Mから送信局Sに対して、ハッシュキーH_E_D及び受信局識別子ID_Rを送信し、受信局識別子ID_Rで特定される受信局Sに対してシェアーE_D_Mを送信してよいかどうかを問い合わせる。この結果、送信局Sから、送信可能というレスポンスが返ってきた場合に、中継局Mは、シェアーE_D_Mが有効と判断する。この構成により、複数の受信先がある場合に、送信局Sは、シェアーE_D_Mの有効／無効を受信局Rごとに決定することができる。
【００８２】
（分散データ復元処理）
受信局Rは、中継局MからシェアーE_D_Mを受信すると、暗号化データE_Dの復元を行う。ここで以下の計算は、全て揮発メモリ上で実行し、不揮発メモリ上にデータは残さないように実行されているものとする。また、クリップボード機能、画面キャプチャ機能、印刷機能などを備えたシステム上では、もしこれらの機能が有効に設定されている場合には、これらの機能を使用できないように無効にしてから（Ｓ６０）、以下の処理を実行するものとする。本実施の形態においては、このような保護機能が保証されたシステムにのみ、受信局Rとしてのデジタル署名の秘密鍵SX_Rが与えられる。中継局Mでは、デジタル署名により、正当な受信局であることと、このような保護機能を有することをチェックしている。
【００８３】
受信局Rは、中継局Mから受信したシェアーE_D_Mと送信局Sから受信したシェアーE_D_Rとから、暗号データE_Dを復元する（Ｓ６２）。具体的には、受信局Rは、以下のようにして、秘密分散されたデータを復元する。すなわち、E_D_1_2=f1(2)，E_D_1_3=f1(3)をf1(X)の係数に関する連立方程式として解き、多項式f1(X)を特定する。(2,3)-閾値秘密分散法が利用されているため、E_D_1_2、E_D_1_3が正当な分散データである限り、多項式f1(X)は必ず定まる。ゆえに、多項式f1(X)のXに0を代入することで、E_D_1=f1(0)を得る。同様に、E_D_2_2=f2(2)、E_D_2_3=f2(3)をf2(X)の係数に関する連立方程式として解き、多項式f2(X)を特定し、E_D_2=f2(0)を得る。このようにして、暗号データE_D=(E_D_1，E_D_2)を得る。
【００８４】
（送信局の認証）
復元されたデータE_Dが確かに送信局Sから送信されたデータであること、及び、復元されたデータに偽造がないことを確認するために、送信局Sのデジタル署名S_E_D=(C3，Y3)を用いて認証する（Ｓ６４）。受信局Rは、X3’=SG^(Y3)・SV_S^(C3)を計算し、さらにハッシュ値C3’=SH(E_D，X3’)を計算する。もし、C3=C3’であれば（Ｓ６６でＹＥＳ）、暗号データE_Dが確かに、正式な送信局Sから送られたものであることが認証され、以下の処理へ進む。認証に失敗した場合には（Ｓ６６でＮＯ）、処理を中止する。
【００８５】
（暗号データの復元処理）
受信局Rは、暗号データE_D=（E_D_1，E_D_2)の認証が成功したら、以下で暗号データを復号し、原データDを得る（Ｓ６８）。
D=E_D_2・E_D_1^(CP_R-1-CX_R)(mod CP_R)。
【００８６】
（原データを利用する処理）
復元した原データDは、受信局Rにおいて認証あるいは統計処理などに利用される（Ｓ７０）。この際に、暗号データE_D及び原データDが他の変数へコピー（代入）されたりすることも無いことが正式な受信局Rでは保証されているものとする。
【００８７】
但し、統計処理の場合には、必ずしも原データが必要とは限らず、暗号化されたデータE_Dのまま、統計処理に利用することができることもある。その場合には、暗号データE_Dは復号されない方が望ましい。
【００８８】
原データDあるいは暗号データE_Dの利用が終了したら、揮発メモリ上から暗号データE_Dと原データDとを安全に消去する（Ｓ７２）。安全に消去するとは、これらのメモリ上の位置に、別のランダムなデータを上書きするなどを行って、それらのメモリを開放することを意味する。
【００８９】
また、クリップボード機能、画面キャプチャ機能、印刷機能などを使用できないように無効化した設定を有効に戻す（元の設定に戻す）（Ｓ７４）。
【００９０】
（データ削除処理）
図１０は、データ削除処理の流れを示す図である。本実施の形態では、送信局Sは、一度、送信したデータを受信局Rが復元できないように、中継局Mへ送ったシェアーE_D_Mへの受信局Rのアクセス権を削除することができる。中継局MからシェアーE_D_Mが削除されてもよい。もし、削除されなかったとしても、中継局M単独では、分散前のデータE_Dを復元することはできないことに注意する。
【００９１】
（中継局の認証）
中継局MにおけるシェアーE_D_Mへの受信局Rのアクセス権を削除するため、まず対象の中継局Mを認証する（Ｓ８０〜Ｓ８４）。この処理は、（データ送信処理）に記述した処理（Ｓ１４〜Ｓ１８）と同じである。
【００９２】
（送信局のデジタル署名生成）
中継局Mの認証が成功したら、中継局Mがアクセス権削除処理を実行する際に、その命令が正式な送信局Sから発行されたものであることを確認するためのデジタル署名S_Sを生成する（Ｓ８６）。この処理は、（データ送信処理）に記述した処理と同じである。
【００９３】
（アクセス権削除処理）
送信局Sは、シェアーE_D_Mを登録した際に、中継局Mから発行された削除アドレスU_Dに対し、ハッシュキーH_E_Dとデジタル署名S_Sと受信局Rの識別子ID_Rを送信する（Ｓ８８）。
【００９４】
中継局Mは、送信局Sのデジタル署名を認証する（Ｓ９０）。認証に失敗した場合には（Ｓ９２でＮＯ）、処理を中止する。認証に成功した場合には（Ｓ９２でＹＥＳ）、中継局Mは、ハッシュキーH_E_Dと関連付けられた受信局Rの識別子ID_RのシェアーE_D_Mへのアクセス権を無効化する（Ｓ９４）。
【００９５】
この際に、中継局MにはシェアーE_D_Mが残されていても中継局Mは分散前のデータE_Dは復元できないことに注意する。また、中継局Mでは、アクセス権の有無を制御する代わりに、データを実際に削除するようにしてもよい。
【００９６】
以上、受信局Rが単数の場合について述べたが、受信局Rが複数である場合にも容易に拡張することができる。その場合、送信局Sでは各受信局Rに対して、個別に中継データアクセスの権利を削除することができる。
【００９７】
なお、各局間でのデータ通信には、通常の電子メールの仕組みを利用することができる。また、送信局Sと中継局Mおよび受信局Rと中継局Mとの間では、RESTプロトコルに基づく方法を利用してもよい。その場合、中継データの登録にはPOST、中継データの取得にはPUT、中継データの削除にはDELETEを利用する。
【産業上の利用可能性】
【００９８】
以上説明したとおり、本発明によれば、情報通信の安全性を高めることができ、秘匿性の高いメール送信等に有用である。
【符号の説明】
【００９９】
S  送信局
M  中継局
R  受信局
１０  送信処理部
１２  デジタル署名公開鍵管理部
１４  中継局認証部
１６  中継データ登録部
１８  デジタル署名部
２０  データアクセス用ハッシュ計算部
２２  データ分割部
２４  （ｋ，ｎ）閾値秘密分散部
２６  暗号化公開鍵管理部
２８  データ暗号化部
３０  データ送信部
３２  アクセス情報ファイル生成部
３４  データ送信ログ管理部
３６  データ削除部
４０  中継処理部
４２  デジタル署名秘密鍵管理部
４４  デジタル署名部
４６  送信局認証部
４８  受信局認証部
５０  中継データ登録部
５２  中継データ削除部
５４  中継データ転送部
５６  中継データ管理部
５８  シェアー管理部
６０  アクセス管理部
７０  受信処理部
７２  アクセス情報復号部
７４  中継データ受信部
７６  デジタル署名部
７８  中継局認証部
８０  セキュアオンメモリ復号部
８２  データ結合部
８４  （ｋ，ｎ）閾値秘密分散部
８６  メモリアクセス保護機能
８８  データ復号化部
９０  秘密鍵管理部
９２  データ利用部
９４  データ複製保護機能
【図１】
0005611996.tif 000002
【図２】
0005611996.tif 000003
【図３】
0005611996.tif 000004
【図４】
0005611996.tif 000005
【図５】
0005611996.tif 000006
【図６】
0005611996.tif 000007
【図７】
0005611996.tif 000008
【図８】
0005611996.tif 000009
【図９】
0005611996.tif 000010
【図１０】
0005611996.tif 000011