説明

ノード装置、匿名通信方法及び匿名通信プログラム

【課題】情報受信者が情報を受信したことの証明(配達証明)を情報送信者が受け取ることができる匿名通信を可能にする秘匿通信方法及びノード装置を提供する。
【解決手段】発信元のノードは、当該発信元からネットワーク上の最終目的ノードまでのメッセージ転送経路と、メッセージ転送経路上の各中継ノードについて、該中継ノードから発信元までの配達証明返信経路を決定する。配達証明返信経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノードへ送信すべき返信暗号データとを通知するための返信用オニオンルーティング情報を生成し、メッセージ転送経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノード宛ての暗号データと、返信用オニオンルーティング情報と、返信用オニオンルーティング情報の宛先ノードのアドレスとを通知するためのメッセージ転送用オニオンルーティング情報を生成し、メッセージ転送用オニオンルーティング情報を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、匿名通信に関する。
【背景技術】
【0002】
情報発信者から情報が送信され情報受信者がこれを受信した際に、これを受信した旨を情報受信者から情報発信者に伝える(配達証明送信の)方法としては、従来Notes(商標)メールのように信頼できるサーバを介する方法(メールの「受信確認」機能)、また現在普及している電子メールのクライアントソフト(例えばOutlook(商標))の「開封確認機能」を利用する方法があげられる。
【0003】
また、送信者や受信者のプライバシを保護するために、オニオンルーティングのような匿名通信路に関する研究がなされている(例えば、非特許文献1参照)。
【非特許文献1】D. M. Goldschlag, M. G. Reed and P. F. Syverson, “Hiding routing information, ” Information Hiding: First International Workshop, Lecture Notes in Computer Science, Vol.1174, Springer-Verlag, pp.137-150, 1996
【発明の開示】
【発明が解決しようとする課題】
【0004】
配達証明を送信する場合、サーバを介する方法では、当該サーバが信頼可能な第三者であることが必要であるが、実際に信頼可能な第三者を構築することは困難である。また、情報送信者や情報受信者の匿名性も1つのサーバに依存するため、情報漏えいなどに対して頑強でない。
【0005】
電子メールのクライアントソフトを利用する方法においては、配達証明を送信するか否かは受信者の信頼度に左右されてしまい、悪意のある受信者は配達証明を送信しないこともあり得る。また、現在の電子メールの仕組みでは、メールを暗号化することは可能であるが情報送信者や情報受信者の匿名性が確保されない。
【0006】
一方、上記非特許文献1に代表されるように匿名通信では、配達証明といった概念は存在しない。しかし、情報送信者からすれば、送信した情報が実際に目的の相手(情報受信者)まで届いているか否か確認したい場合に、そのための手段が存在しなのであれば不便である。既存の方式、例えば、情報受信者が配達証明を送信するとしても、配達証明を送信するか否かは情報受信者の信頼度に左右されてしまう。
【0007】
このように、従来は、匿名通信において、発信元ノードの情報送信者は、最終目的ノードの情報受信者にメッセージが届いているか否かを確認することができないという問題点があった。
【0008】
そこで、本発明は、上記問題点に鑑み、発信元ノードの情報送信者や最終目的ノードの情報受信者の匿名性を維持しつつ、情報受信者の信頼性に依存することなく、最終目的ノードにメッセージが届いているか否かを確認することができる配達証明を発信元ノードへ送信することができる秘匿通信方法及びノード装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
ネットワークに接続された発信元ノードは、
(a)当該発信元からネットワーク上の最終目的ノードまでのメッセージを転送するための該ネットワーク上のメッセージ転送経路として、該ノード装置と該最終目的ノードとの間の該ネットワーク上の複数の中継ノードを決定し、
(b)メッセージ転送経路上の各中継ノードについて、該中継ノードから発信元までの配達証明を返信するための配達証明返信経路として、該中継ノードと前記発信元との間の複数の中継ノードを決定する。
【0010】
(c)各配達証明返信経路について、当該配達証明返信経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノードへ送信すべき返信暗号データとを通知するための返信用オニオンルーティング情報を生成し、
(d)メッセージ転送経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノード宛ての暗号データと、当該返信用オニオンルーティング情報と、当該配達証明返信経路上の当該返信用オニオンルーティング情報の宛先ノードのアドレスとを通知するためのメッセージ転送用オニオンルーティング情報を生成し、
(e)生成されたメッセージ転送用オニオンルーティング情報を送信する。
【0011】
(f)ネットワークから当該発信元宛ての返信暗号データを受信すると、この返信暗号データを復号して、復号された返信暗号データから配達証明を取得する。
【発明の効果】
【0012】
本発明によれば、情報受信者の信頼性に依存することなく、情報受信者が情報を受信したことの証明(配達証明)を情報送信者が受け取ることができる匿名通信を可能にする。
【発明を実施するための最良の形態】
【0013】
まず、一般的なオニオンルーティング方式について図1を参照して説明する。図1において、ノードSは情報発信元の情報発信ノード、ノードRは最終目的地の情報受信ノードである。また、ノードA、B、Cは中継ノードである。
【0014】
はじめに、発信元ノードは、どの中継ノードを経由させて最終目的ノードに情報を送信するかを決定する。図1では、発信元ノードは、ノードA→ノードB→ノードCと中継させた後に最終目的ノードに情報を送信する場合を示している。なお、ネットワーク上には、他の中継ノードD、E、F、…も存在し、どの中継ノードを使用するかは、発信元ノードにゆだねられている。また、発信元ノードSから中継ノードAまでの経路、中継ノードAから中継ノードBまでの経路、中継ノードBから中継ノードCまでの経路、中継ノードCから最終目的ノードR間での経路は任意である。
【0015】
次に、発信元ノードは、次式(1)で示すようなオニオンルーティング情報を作成する。
【0016】
PkA(B‖PkB(C‖PkC(R‖PkR(M)))) …(1)
ここで、PkX(Y)は、情報YがノードXの公開鍵(Public Key)PkXで暗号化されていることを示す。(X‖Y)は情報Xと情報Yとが結合されていることを示す。Mは発信元ノードが最終目的ノードに送信しようとしている情報(メッセージ)である。式(1)において、「B」、「C」、「R」など一文字の英字は、それぞれノードA、B、C宛のメッセージであるが、各メッセージには、そのメッセージを受け取ったノードが次に転送する転送先ノードの宛先(アドレス)が含まれている。すなわち、「B」はノードAで受信され、次の転送先のノード「C」のアドレスが含まれている。「C」はノードBで受信され、次の転送先のノード「R」のアドレスが含まれている。
【0017】
発信元ノードSでは、式(1)のオニオンルーティング情報を、以下の手順で作成する。
【0018】
(a1)最終目的ノードR宛のメッセージMを、最終目的ノードRの公開鍵PkRで暗号化し、PkR(M)を生成する。
【0019】
(a2)PkR(M)と、ノードC宛のメッセージ(最終目的ノードRのアドレスを含む)「R」を結合して、それをノードCの公開鍵PkCで暗号化し、PkC(R‖PkR(M))を生成する。
【0020】
(a3)PkC(R‖PkR(M))と、ノードB宛のメッセージ(ノードCのアドレスを含む)「C」を結合して、それをノードBの公開鍵PkBで暗号化し、PkB(C‖PkC(R‖PkR(M)))を生成する。
【0021】
(a4)PkB(C‖PkC(R‖PkR(M)))と、ノードA宛のメッセージ(ノードBのアドレスを含む)「B」を結合して、それをノードAの公開鍵PkAで暗号化し、
PkA(B‖PkB(C‖PkC(R‖PkR(M))))を生成する。
【0022】
上記のようにして生成された式(1)に示すデータは、以下の手順で転送される(図1参照)。
【0023】
(b1)発信元ノードSは、式(1)に示すデータをノードAに送信する。
【0024】
(b2)ノードAは、受け取ったオニオンルーティング情報をノードAの秘密鍵で復号して、「B‖PkB(?)」という情報を得る。例えば、ここでは、復号した結果得られるデータの先頭から予め定められたバイト数のデータがノードA宛のメッセージ「B」と定められているので、ノードA宛のメッセージ「B」と、(鍵PkBで暗号化されているために)ノードAには、その中身を確認することができない情報(ここでは、「?」と示す)「PkB(?)」を得る。ノードAは、メッセージ「B」に含まれノードBのアドレスを基に、「PkB(?)」というデータをノードBに送信する。
【0025】
(b3)ノードBは、受け取ったオニオンルーティング情報をノードBの秘密鍵で復号して、「C‖PkC(?)」という情報を得る。例えば、ここでは、復号した結果得られるデータの先頭から予め定められたバイト数のデータがノードB宛のメッセージ「C」と定められているので、ノードB宛のメッセージ「C」と、(鍵PkCで暗号化されているために)ノードBには、その中身を確認することができない情報(ここでは、「?」と示す)「PkC(?)」を得る。ノードBは、メッセージ「C」に含まれノードCのアドレスを基に、「PkC(?)」というデータをノードCに送信する。
【0026】
(b4)ノードCは、受け取ったオニオンルーティング情報をノードCの秘密鍵で復号して、「R‖PkR(?)」という情報を得る。例えば、ここでは、復号した結果得られるデータの先頭から予め定められたバイト数のデータがノードC宛のメッセージ「R」と定められているので、ノードC宛のメッセージ「R」と、(鍵PkRで暗号化されているために)ノードCには、その中身を確認することができない情報(ここでは、「?」と示す)「PkR(?)」を得る。ノードCは、メッセージ「R」に含まれノードRのアドレスを基に、「PkR(?)」というデータをノードRに送信する。
【0027】
(b5)最終目的ノードRは、受け取ったオニオンルーティング情報をノードRの秘密鍵で復号して、メッセージMを得る。
【0028】
このような、発信元ノードSからノードA、ノードB、ノードCを経由して最終目的ノードRへメッセージを転送するオニオンルーティングでは、i番目のノードは、(i−1)番目のノードと(i+1)番目のノード以外のノードの存在を把握できないため、真の発信元モードや真の最終目的ノードを特定することができない。すなわち、各ノード(ノードA,B,C,R)は、互いに隣接するノードを知ることはできるが、発信元ノードや最終目的ノードを知ることはできない。ノードS、A〜C、Rのうち、発信元のノードSのみが、メッセージMの発信元ノード、最終目的ノード及び転送経路を認識している。この結果、オニオンルーティング方式では発信元ノード(情報発信者)と最終目的ノード(情報受信者)の匿名性が維持されている。
【0029】
オニオンルーティング方式でも、最終目的ノードRにおける情報受信者が信頼できる場合は、図2に示すように、発信元ノードはメッセージM中に配達証明の返信用の情報を含ませておき、配達証明の送信を情報受信者に依頼することができる。しかしながら、情報受信者が信頼できない場合には、情報受信者が情報を受信した場合でも配達証明を送らない可能性がある。
【0030】
図2において、発信元はオニオンルーティング情報の中に、配達証明:CertToSを含ませておく。すなわち、発信元ノードSでは、以下の手順でオニオンルーティング情報を作成する。
【0031】
(a1´)最終目的ノードR宛のメッセージMを、最終目的ノードRの公開鍵PkRで暗号化し、PkR(M)を生成する。
【0032】
(a2´)PkR(M)と、ノードC宛のメッセージ(最終目的ノードRのアドレスを含むメッセージ「R」)と、配達証明:CertToSと、ノードC宛のメッセージ(配達証明の宛先である発信元ノードSのアドレスを含むメッセージ「S」)とを結合して、それをノードCの公開鍵PkCで暗号化し、PkC(R‖PkR(M)‖S‖CertToS)を生成する。
【0033】
(a3´)PkC(R‖PkR(M)‖S‖CertToS)とノードB宛のメッセージ(ノードCのアドレスを含む)「C」を結合して、それをノードBの公開鍵PkBで暗号化し、PkB(C‖PkC(R‖PkR(M)‖S‖CertToS))を生成する。
【0034】
(a4´)PkB(C‖PkC(R‖PkR(M)‖S‖CertToS))と、ノードA宛のメッセージ(ノードBのアドレスを含む)「B」を結合して、それをノードAの公開鍵PkAで暗号化し、PkA(B‖PkB(C‖PkC(R‖PkR(M)‖S‖CertToS)))を生成する。
【0035】
上記(a1´)〜(a4´)に示すように生成された配達証明を含むオニオンルーティング情報は、前述の(b1)〜(b3)に示すように、ノードCに送信される。
【0036】
(b4´)ノードCは、受け取ったオニオンルーティング情報をノードCの秘密鍵で復号して、「R‖PkR(?)‖S‖CertToS」という情報を得る。例えば、ここでは、復号した結果得られるデータの先頭から予め定められたバイト数のデータがノードC宛のメッセージ「R」と定められている。復号した結果得られるデータの終端から予め定められたバイト数のデータが、配達証明「CertToS」と定められ、配達証明の前の予め定められたバイト数のデータがノードC宛のメッセージ「S」と定められている。ノードCは、メッセージ「R」に含まれノードRのアドレスを基に、「PkR(?)」というデータをノードRに送信する。
【0037】
(b5)ノードRの受信を確認した後、メッセージ「S」に含まれるノードSのアドレスを基に、配達証明「CertToS」をノードSに送信する。
【0038】
このような方法により、最終目的ノードRの情報受信者の信頼度に影響されず、発信元ノードSに配達証明を届けることが可能となる。
【0039】
しかしながら、上記方法には、ノードCが配達証明を送信するということにより、以下に示すような問題点がある。
【0040】
(c1)ノードCに、転送先のノードRが最終目的ノードであることが知られる。
【0041】
(c2)ノードCに、ノードSが発信元であることが知られる。
【0042】
この結果、発信元と最終目的ノードの情報受信者の匿名性が確保することができないのである。
【0043】
以下、本発明の実施形態について図面を参照して説明する。
【0044】
ここでも、図1と同様に、ノードSを発信元ノード、ノードRを最終目的ノード、ノードA、B、Cを発信元ノードにより決定された中継ノードである場合を例にとり説明する。
【0045】
上記問題点(c1)を解決するために、本実施形態では、図3に示すように、全ての中継ノード(ここでは、ノードA〜C)が配達証明を返信する。また、上記問題点(c2)を解決するために、配達証明の返信にもオニオンルーティングを利用する。
【0046】
すなわち、本実施形態の発信元ノードSで生成される、最終目的ノード宛のメッセージMを転送するためのオニオンルーティング情報(メッセージ転送用オニオンルーティング情報)には、各中継ノードから配達証明を返信するための配達証明返信用オニオンルーティング情報が含まれている。
【0047】
図4は、図3の発信元ノードS、中継ノードA〜C、最終目的ノードR、各中継ノードから配達証明を返信する際の各中継ノードX、Y、Zなど、ネットワーク上に匿名通信を実現するために接続された各匿名ノード装置の要部の構成例を示したものである。
【0048】
匿名ノード装置は、図4の各構成部1〜10の全てを含む場合、発信元ノード、中継ノード、最終目的ノードとしても機能する。
【0049】
匿名ノード装置は、図4に示した構成部1〜10のうち、少なくとも情報処理部1、送信部5、受信部7、復号部8、秘密鍵記憶部9を含むことにより、中継ノード、最終目的ノードとして機能する。
【0050】
発信元ノードSは、図4の各構成部1〜9の全てを含み、発信元ノードのみならず、中継ノードや最終目的ノードとしても機能する。
【0051】
発信元ノードの情報処理部1は、最終目的ノード(例えば、ここでは、ノードR)宛のメッセージMを生成する。
【0052】
発信元ノードの転送経路決定部2は、情報処理部1で生成されたメッセージMを転送するためのメッセージ転送経路(複数の中継ノードと、これらの転送順序)を決定する。さらに、決定されたメッセージ転送経路上の各中継ノードについて、当該中継ノードが配達証明を返信するための配達証明返信経路(複数の中継ノードと、これらの転送順序)を決定する。
【0053】
発信元ノードの配達証明返信用オニオンルーティング情報生成部3は、転送経路決定部2で決定されたメッセージ転送経路上の各中継ノードについて、転送経路決定部2で決定された配達証明返信経路を基に、オニオンルーティング情報(配達証明返信用オニオンルーティング情報)を生成する。
【0054】
発信元ノードのメッセージ転送用オニオンルーティング情報生成部4は、転送経路決定部2で決定されたメッセージ転送経路を基に、配達証明返信用オニオンルーティング情報を含む、オニオンルーティング情報(メッセージ転送用オニオンルーティング情報)を生成する。
【0055】
公開鍵記憶部6には、ネットワーク上の各秘匿ノードの公開鍵が記憶されている。発信元ノードの配達証明返信用オニオンルーティング情報生成部3と、メッセージ転送用オニオンルーティング情報生成部4では、公開鍵記憶部6に記憶された各匿名ノード装置の公開鍵を用いて、オニオンルーティング情報をそれぞれ生成する。
【0056】
発信元ノードの送信部5は、メッセージ転送用オニオンルーティング情報生成部4で生成されたメッセージ転送用オニオンルーティング情報をネットワークへ送出する。
【0057】
秘密鍵記憶部9は、当該ノードに対応する秘密鍵が予め記憶されている。
【0058】
受信部7は、配達証明返信用オニオンルーティング情報やメッセージ転送用のオニオンルーティング情報などのオニオンルーティング情報を受信する。
【0059】
復号部8は、受信部7で受信されたオニオンルーティング情報を秘密鍵記憶部10に記憶されている秘密鍵を用いて復号する。
【0060】
情報処理部1は、復号部8で復号されたオニオンルーティング情報に、メッセージM、配達証明、メッセージ転送用オニオンルーティング情報、その転送先のノードのアドレスを含むメッセージ、配達証明返信用オニオンルーティング情報、その転送先のノードのアドレスを含むメッセージのうち、どの種別の情報データが含まれているかを調べる。
【0061】
例えば、これら各情報データが、当該情報データの種別を示す識別情報を含むヘッダを有している場合、情報処理部1は、このヘッダ中の識別情報をチェックして、当該情報データの種別を判定する。
【0062】
また、例えば、メッセージMあるいは配達証明、メッセージ転送用オニオンルーティング情報、当該メッセージ転送用オニオンルーティング情報の転送先のノードのアドレスを含むメッセージ、配達証明返信用オニオンルーティング情報、配達証明返信用オニオンルーティング情報の転送先のノードのアドレスを含むメッセージが、復号部8で復号されたオニオンルーティング情報中のどこに(どのフィールド)含まれているかが予め定められている場合、情報処理部1は、各フィールドから当該フィールドに含まれている情報データを抽出する。
【0063】
復号部8で復号されたオニオンルーティング情報が、メッセージMあるいは配達証明である場合には、ここでオニオンルーティングは終了する。
【0064】
復号部8で復号されたオニオンルーティング情報が、メッセージ転送用オニオンルーティング情報と、その転送先のノードのアドレスを含むメッセージである場合には、当該メッセージに含まれるアドレスを宛先とする当該メッセージ転送用オニオンルーティング情報を送信部5へ出力する。復号部8で復号されたオニオンルーティング情報が、配達証明返信用オニオンルーティング情報と、その転送先のノードのアドレスを含むメッセージである場合には、当該メッセージに含まれるアドレスを宛先とする当該配達証明返信用オニオンルーティング情報を送信部5へ出力する。
【0065】
送信部7は、情報処理部1から出力されたオニオンルーティング情報をネットワークへ送出する。
【0066】
次に、発信元ノードSの処理動作について図5に示すフローチャートを参照して説明する。
【0067】
情報発信ノードSの情報処理部1により、最終目的ノードのノードR宛のメッセージMが生成されると、これを匿名通信路により転送するために、転送経路決定部2は、当該メッセージMを転送するためのメッセージ転送経路を決定する(ステップS101)。例えば、メッセージ転送経路が、ノードS→ノードA→ノードB→ノードC→ノードR、と決定される。
【0068】
転送経路決定部2は、メッセージ転送経路上の各中継ノードについて、当該中継ノードが配達証明を返信するための配達証明返信経路を決定する(ステップS102)。例えば、中継ノードAの配達証明返信経路として、ノードA→ノードX→ノードD→ノードS、と決定する。中継ノードBの配達証明返信経路として、ノードB→ノードY→ノードE→ノードS、と決定する。中継ノードCの配達証明返信経路として、ノードC→ノードZ→ノードF→ノードS、と決定する。
【0069】
次に、発信元ノードSの配達証明返信用オニオンルーティング情報生成部3は、各中継ノードについて、配達証明返信用オニオンルーティング情報を生成する(ステップS103)。
【0070】
ノードCから発信する配達証明「certC」の転送経路は、ノードC、ノードZ、ノードF、ノードSである。そこで、まず、配達証明certCをノードSの公開鍵PkSで暗号化し、PkS(certC)を生成する。これとノードSのアドレスを含むメッセージ「S」とを結合して、ノードFの公開鍵PkFで暗号化し、PkF(S‖PkS(certC))を生成する。PkF(S‖PkS(certC))と、ノードFのアドレスを含むメッセージ「F」とを結合して、ノードZの公開鍵PkZで暗号化し、PkZ(F‖PkF(S‖PkS(certC)))=PkZ(CertC)を生成する。これがノードCの配達証明用オニオンルーティング情報である。
【0071】
ノードBから発信する配達証明「certB」の転送経路は、ノードB、ノードY、ノードE、ノードSである。そこで、まず、配達証明certBをノードSの公開鍵PkSで暗号化し、PkS(certB)を生成する。PkS(certB)と、ノードSのアドレスを含むメッセージ「S」とを結合して、ノードEの公開鍵PkEで暗号化し、PkE(S‖PkS(certB))を生成する。PkE(S‖PkS(certB))と、ノードEのアドレスを含むメッセージ「E」とを結合して、ノードYの公開鍵PkYで暗号化し、PkY(E‖PkE(S‖PkS(certB)))=PkY(CertB)を生成する。これがノードBの配達証明用オニオンルーティング情報である。
【0072】
ノードAから発信する配達証明「certA」の転送経路は、ノードA、ノードX、ノードD、ノードSである。そこで、まず、配達証明certAをノードSの公開鍵PkSで暗号化し、PkS(certA)を生成する。PkS(certA)と、ノードSのアドレスを含むメッセージ「S」とを結合して、ノードDの公開鍵PkDで暗号化し、PkD(S‖PkS(certA))を生成する。PkD(S‖PkS(certA))と、ノードDのアドレスを含むメッセージ「D」とを結合して、ノードXの公開鍵PkXで暗号化し、PkX(D‖PkD(S‖PkS(certA)))=PkX(CertA)を生成する。これがノードAの配達証明用オニオンルーティング情報である。
【0073】
メッセージ転送用オニオンルーティング情報生成部4は、転送経路決定部2で決定されたメッセージ転送経路を基に、各中継ノードの配達証明返信用オニオンルーティング情報を含む、メッセージMの転送用のオニオンルーティング情報を生成する(ステップS104)。
【0074】
(d1)まず、最終目的ノードR宛のメッセージMを、最終目的ノードRの公開鍵PkRで暗号化し、PkR(M)を生成する。
【0075】
(d3)次に、最終目的ノードRのアドレスを含むノードC宛のメッセージ「R」と、ノードRへ転送されるPkR(M)と、ノードCの配達証明用オニオンルーティング情報の最初の転送先のノードZのアドレスを含むノードC宛のメッセージ「Z」と、ノードCの配達証明用オニオンルーティング情報PkZ(CertC)とを結合して、それをノードCの公開鍵PkCで暗号化し、PkC(R‖PkR(M)‖Z‖PkZ(CertC))を生成する。
【0076】
(d5)次に、ノードCのアドレスを含むノードB宛のメッセージ「C」と、ノードCへ転送されるPkC(R‖PkR(M)‖Z‖PkZ(CertC))と、ノードBの配達証明等オニオンルーティング情報の最初の転送先のノードYのアドレスを含むノードB宛のメッセージ「Y」と、ノードBの配達証明用オニオンルーティング情報PkY(CertB)とを結合して、それをノードBの公開鍵PkBで暗号化し、PkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))を生成する。
【0077】
(d7)さらに、ノードBのアドレスを含むノードA宛のメッセージ「B」と、ノードBへ転送されるPkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))と、ノードAの配達証明用オニオンルーティング情報の最初の転送先のノードXのアドレスを含むノードA宛のメッセージ「X」と、ノードAの配達証明用オニオンルーティング情報PkX(CertA)とを結合して、それをノードAの公開鍵PkAで暗号化し、PkA(B‖PkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))‖X‖PkX(CertA))を生成する。これが、発信元ノードSから送信されるメッセージ転送用オニオンルーティング情報である。
【0078】
以上のようにして生成された、メッセージ転送用オニオンルーティング情報は、発信ノードSの送信部5から送信される(ステップS105)。
【0079】
その後、各中継ノードからは配達証明が返信されるため、これを受信する(ステップS106)。なお、前述したように、配達証明は、配達証明返信用オニオンルーティング情報により送信され、各配達証明返信用オニオンルーティング情報の最終目的ノードは発信元ノードSである。
【0080】
発信元ノードSでの配達証明の受信処理は、後述する(図7)。
【0081】
図5では、まず、転送経路決定部2で、メッセージ転送経路と配達証明返信経路を決定した後、配達証明返信用オニオンルーティング情報生成部3で、各中継ノードの配達証明返信用オニオンルーティング情報を生成する処理を行い、次に、メッセージ転送用オニオンルーティング情報生成部4で、メッセージ転送用オニオンルーティング情報を生成する処理を行う場合を説明したが、この場合に限らない。例えば、図6に示すように、図5のステップS102〜ステップS104に示した処理手順の代わりに、図6に示すように、各中継ノードの配達証明返信用オニオンルーティング情報を生成する処理と、メッセージ転送用オニオンルーティング情報生成部4でのメッセージMの転送用のオニオンルーティング情報を生成する処理を交互におこなってもよい。
【0082】
図6に示すフローチャートを参照して、図4の転送経路決定部2、配達証明用オニオンルーティング情報生成部3、メッセージ転送用オニオンルーティング情報生成部4の他の処理動作について説明する。
【0083】
(d1)最終目的ノードR宛のメッセージMを、最終目的ノードRの公開鍵PkRで暗号化し、PkR(M)を生成する。
【0084】
(d2)ノードCから発信する配達証明「certC」の転送経路を、例えば、ノードC、ノードZ、ノードF、ノードSと決定する。
【0085】
ノードCの配達証明用オニオンルーティング情報を作成する。すなわち、前述同様に、PkZ(F‖PkF(S‖PkS(certC)))=PkZ(CertC)を生成する。
【0086】
(d3)最終目的ノードRのアドレスを含むノードC宛のメッセージ「R」と、ノードRへ転送されるPkR(M)と、ノードCの配達証明用オニオンルーティング情報の最初の転送先のノードZのアドレスを含むノードC宛のメッセージ「Z」と、ノードCの配達証明用オニオンルーティング情報PkZ(CertC)とを結合して、それをノードCの公開鍵PkCで暗号化し、PkC(R‖PkR(M)‖Z‖PkZ(CertC))を生成する。
【0087】
(d4)ノードBから発信する配達証明「certB」の転送経路を、例えば、ノードB、ノードY、ノードE、ノードSと決定する。
【0088】
ノードBの配達証明用オニオンルーティング情報を作成する。すなわち、前述同様に、PkY(E‖PkE(S‖PkS(certB)))=PkY(CertB)を生成する。
【0089】
(d5)ノードCのアドレスを含むノードB宛のメッセージ「C」と、ノードCへ転送されるPkC(R‖PkR(M)‖Z‖PkZ(CertC))と、ノードBの配達証明用オニオンルーティング情報の最初の転送先のノードYのアドレスを含むノードB宛のメッセージ「Y」と、ノードBの配達証明用オニオンルーティング情報PkY(CertB)とを結合して、それをノードBの公開鍵PkBで暗号化し、PkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))を生成する。
【0090】
(d6)ノードAから発信する配達証明「certA」の転送経路を、例えば、ノードA、ノードX、ノードD、ノードSと決定する。
【0091】
ノードAの配達証明用オニオンルーティング情報を作成する。すなわち、前述同様に、PkX(D‖PkD(S‖PkS(certA)))=PkX(CertA)を生成する。
【0092】
(d7)ノードBのアドレスを含むノードA宛のメッセージ「B」と、ノードBへ転送されるPkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))と、ノードAの配達証明用オニオンルーティング情報の最初の転送先のノードXのアドレスを含むノードA宛のメッセージ「X」と、ノードAの配達証明用オニオンルーティング情報PkX(CertA)とを結合して、それをノードAの公開鍵PkAで暗号化し、PkA(B‖PkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))‖X‖PkX(CertA))を生成する。
【0093】
上述したように、各中継ノードA〜Cのそれぞれの公開鍵で暗号化されるデータは、当該中継ノードから次のノードへ転送すべきメッセージ転送用オニオンルーティング情報(暗号データ)と、当該メッセージ転送用オニオンルーティング情報の次の転送先のノードのアドレスを含むメッセージと、当該中継ノードの配達証明用オニオンルーティング情報(返信用暗号データ)と、当該配達証明用オニオンルーティング情報の最初の転送先のノードのアドレスを含むメッセージとが含まれている。
【0094】
次に、図7に示すフローチャートを参照して、中継ノードA〜C、最終目的ノードR、各中継ノードから配達証明を返信する際の各中継ノードX、Y、Zなど、ネットワーク上に匿名通信を実現するために接続された各匿名ノード装置(単にノードと呼ぶ)における、配達証明返信用オニオンルーティング情報やメッセージ転送用のオニオンルーティング情報などのオニオンルーティング情報(暗号データ)を受信処理について説明する。
【0095】
当該ノードの受信部7が、当該ノード宛のオニオンルーティング情報を受信すると(ステップS201)、復号部8は、秘密鍵記憶部10に記憶されている当該ノードの秘密鍵を用いて、受信したオニオンルーティング情報を復号する(ステップS201)。
【0096】
情報処理部1は、復号部8で復号されたオニオンルーティング情報に、メッセージM、配達証明、メッセージ転送用オニオンルーティング情報、その転送先のノードのアドレスを含むメッセージ、配達証明返信用オニオンルーティング情報、その転送先のノードのアドレスを含むメッセージのうち、どの種別の情報データが含まれているかを調べる。
【0097】
当該ノードがメッセージ転送経路上の中継ノード(ノードA〜C)の場合には、復号部8で復号されたオニオンルーティング情報には、メッセージ転送用オニオンルーティング情報及びその転送先のノードのアドレスを含むメッセージ、配達証明返信用オニオンルーティング情報及びその転送先のノードのアドレスを含むメッセージが含まれている。
【0098】
当該ノードが最終目的ノード(ノードR)の場合には、復号部8で復号されたオニオンルーティング情報には、メッセージMが含まれている。
【0099】
当該ノードが配達証明返信経路上の中継ノード(ノードX,Y、Zなど)の場合には、復号部8で復号されたオニオンルーティング情報には、配達証明返信用オニオンルーティング情報及びその転送先のノードのアドレスを含むメッセージが含まれている。
【0100】
当該ノードが発信元ノードSの場合には、復号部8で復号されたオニオンルーティング情報には、配達証明が含まれている。
【0101】
情報処理部1は、復号部8で復号されたオニオンルーティング情報が、メッセージMあるいは配達証明である場合には、ここでオニオンルーティングを終了する(ステップS203)。
【0102】
情報処理部1は、復号部で復号されたオニオンルーティング情報に、メッセージ転送用オニオンルーティング情報と、その転送先のノードのアドレスを含むメッセージが含まれている場合には(ステップS204)、当該メッセージに含まれるアドレスを宛先とする当該メッセージ転送用オニオンルーティング情報を送信部5へ出力する。送信部5は、情報処理部1から出力されたオニオンルーティング情報をネットワークへ送出する(ステップS205)。
【0103】
情報処理部1は、復号部で復号されたオニオンルーティング情報に、配達証明返信用オニオンルーティング情報と、その転送先のノードのアドレスを含むメッセージが含まれている場合には、当該メッセージに含まれるアドレスを宛先とする当該配達証明返信用オニオンルーティング情報を送信部5へ出力する(ステップS206)。送信部5は、情報処理部1から出力されたオニオンルーティング情報をネットワークへ送出する(ステップS207)。
【0104】
次に、図8を参照して、発信元ノードSから最終目的ノードRまでのメッセージ転送経路上の各ノードでの処理動作について説明する。
【0105】
発信元ノードSは、図5、図6に示したように、メッセージ転送用オニオンルーティング情報PkA(B‖PkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))‖X‖PkX(CertA))を生成し(ステップS1)、ノードAへ送信する(ステップS2)。ここで、ノードSから発信されるメッセージ転送用オニオンルーティング情報をPkA(α)と表す。
【0106】
ノードAでは、PkA(α)を受信すると、当該ノードAの秘密鍵を用いて復号する。その結果、ノードBのアドレスを含むメッセージ「B」及びノードBへ転送すべきメッセージ転送用オニオンルーティング情報PkB(C‖PkC(R‖PkR(M)‖Z‖PkZ(CertC))‖Y‖PkY(CertB))、配達証明返信用オニオンルーティング情報PkX(CertA)、この転送先のノードXのアドレスを含むメッセージ「X」を得る。ここで、ノードAからノードBへ転送されるメッセージ転送用オニオンルーティング情報をPkB(β)と表す。
【0107】
ノードAは、PkB(β)をノードBへ送信した後(ステップS3)、ノードAで予め定められた時間経過後、あるいはランダムな時間経過後に、PkB(β)をノードBへ送信したことを通知するために、配達証明返信用オニオンルーティング情報PkX(CertA)をノードXへ送信する(ステップS4)。
【0108】
ノードBでは、PkB(β)を受信すると、当該ノードBの秘密鍵を用いて復号する。その結果、ノードCのアドレスを含むメッセージ「C」及びノードCへ転送すべきメッセージ転送用オニオンルーティング情報PkC(R‖PkR(M)‖Z‖PkZ(CertC))、配達証明返信用オニオンルーティング情報PkY(CertB)、この転送先のノードYのアドレスを含むメッセージ「Y」を得る。ここで、ノードBからノードCへ転送されるメッセージ転送用オニオンルーティング情報をPkC(γ)と表す。
【0109】
ノードBは、PkC(γ)をノードCへ送信した後(ステップS5)、ノードBで予め定められた時間経過後、あるいはランダムな時間経過後に、PkC(γ)をノーCへ送信したことを通知するために、配達証明返信用オニオンルーティング情報PkY(CertB)をノードYへ送信する(ステップS6)。
【0110】
ノードCでは、PkC(γ)を受信すると、当該ノードCの秘密鍵を用いて復号する。その結果、ノードRのアドレスを含むメッセージ「R」及びノードRへ転送すべきメッセージ転送用オニオンルーティング情報PkR(M)、配達証明返信用オニオンルーティング情報PkZ(CertC)、この転送先のノードZのアドレスを含むメッセージ「Z」を得る。
【0111】
ノードCは、PkR(M)をノードRへ送信した後(ステップS7)、ノードCで予め定められた時間経過後、あるいはランダムな時間経過後に、PkR(M)をノーRへ送信したことを通知するために、配達証明返信用オニオンルーティング情報PkZ(CertC)をノードZへ送信する(ステップS8)。
【0112】
次に、ノードA乃至Cのそれぞれから発信される配達証明返信用オニオンルーティング情報の処理手順について説明する。
【0113】
ノードAから発信する配達証明オニオンルーティング情報PkX(CertA)=PkX(D‖PkD(S‖PkS(certA)))の転送経路は、ノードA、ノードX、ノードD、ノードSである。
【0114】
ステップS4でノードAから発信される配達証明返信用オニオンルーティング情報PkX(CertA)は、ノードXで受信され、当該ノードXの秘密鍵を用いて復号される。その結果、ノードDのアドレスを含むメッセージ「D」及びノードDへ転送すべき配達証明返信用オニオンルーティング情報PkD(S‖PkS(certA))を得る。
【0115】
ノードXは、ノードDへ、配達証明返信用オニオンルーティング情報PkD(S‖PkS(certA))を送信する。
【0116】
ノードDは、オニオンルーティング情報PkD(S‖PkS(certA))を受信すると、これを当該ノードDの秘密鍵で復号する。この結果、ノードSのアドレスを含むメッセージ「S」及びノードSへ転送すべき配達証明返信用オニオンルーティング情報PkS(certA)を得る。
【0117】
ノードDは、ノードSへ、配達証明返信用オニオンルーティング情報PkS(certA)を送信する。
【0118】
ノードSは、オニオンルーティング情報PkS(certA)を受信すると、これを当該ノードSの秘密鍵で復号する。その結果、ノードAからの配達証明「certA」を得る(図5のステップS106)。
【0119】
ノードBから発信する配達証明オニオンルーティング情報PkY(CertB)=PkY(E‖PkE(S‖PkS(certB)))の転送経路は、ノードB、ノードY、ノードE、ノードSである。
【0120】
ステップS6でノードBから発信される配達証明返信用オニオンルーティング情報PkY(CertB)は、ノードYで受信され、当該ノードYの秘密鍵を用いて復号される。その結果、ノードEのアドレスを含むメッセージ「E」及びノードEへ転送すべき配達証明返信用オニオンルーティング情報PkE(S‖PkS(certB))を得る。
【0121】
ノードYは、ノードEへ、配達証明返信用オニオンルーティング情報PkE(S‖PkS(certB))を送信する。
【0122】
ノードEは、オニオンルーティング情報PkE(S‖PkS(certB))を受信すると、これを当該ノードEの秘密鍵で復号する。この結果、ノードSのアドレスを含むメッセージ「S」及びノードSへ転送すべき配達証明返信用オニオンルーティング情報PkS(certB)を得る。
【0123】
ノードEは、ノードSへ、配達証明返信用オニオンルーティング情報PkS(certB)を送信する。
【0124】
ノードSは、オニオンルーティング情報PkS(certB)を受信すると、これを当該ノードSの秘密鍵で復号する。その結果、ノードBからの配達証明「certB」を得る(図5のステップS106)。
【0125】
ノードCから発信する配達証明オニオンルーティング情報PkZ(CertC)=PkZ(F‖PkF(S‖PkS(certC)))の転送経路は、ノードC、ノードZ、ノードF、ノードSである。
【0126】
ステップS8でノードCから発信される配達証明返信用オニオンルーティング情報PkZ(CertC)は、ノードZで受信され、当該ノードZの秘密鍵を用いて復号される。その結果、ノードFのアドレスを含むメッセージ「F」及びノードFへ転送すべき配達証明返信用オニオンルーティング情報PkF(S‖PkS(certC))を得る。
【0127】
ノードZは、ノードFへ、配達証明返信用オニオンルーティング情報PkF(S‖PkS(certC))を送信する。
【0128】
ノードFは、オニオンルーティング情報PkF(S‖PkS(certC))を受信すると、これを当該ノードFの秘密鍵で復号する。この結果、ノードSのアドレスを含むメッセージ「S」及びノードSへ転送すべき配達証明返信用オニオンルーティング情報PkS(certC)を得る。
【0129】
ノードFは、ノードSへ、配達証明返信用オニオンルーティング情報PkS(certC)を送信する。
【0130】
ノードSは、オニオンルーティング情報PkS(certC)を受信すると、これを当該ノードSの秘密鍵で復号する。その結果、ノードCからの配達証明「certC」を得る(図5のステップS106)。
【0131】
以上説明したように、上記実施形態によれば、発信元ノードSは、発信元ノードSから最終目的ノードRへメッセージMを転送するためのメッセージ転送経路(ノードS→ノードA→ノードB→ノードC→ノードS)を決定する。
【0132】
メッセージ転送経路上の各中継ノードA〜Cについて、当該中継ノードからの配達証明を受け取るための配達証明返信経路(例えば、中継ノードAの場合、第4番目のノードA→第3番目のノードX→第2番目のノードD→第1番目のノードS)を決定し、各中継ノードA〜Cについて、配達証明返信用オニオンルーティング情報を生成する。
【0133】
ここでは、前述の配達証明返信用オニオンルーティング情報の生成手順の概要を、図9を参照して述べる。まず、中継ノードAの配達証明返信用オニオンルーティング情報の生成手順を述べる。
【0134】
中継ノードAから発信元ノードSへの配達証明「certA」を、配達証明返信経路上の第1番目のノードに対応する発信元ノードSの公開鍵PkSで暗号化して第1層オニオンルーティング情報を生成する。生成された第1層オニオンルーティング情報と当該第1層オニオンルーティング情報の転送先のノードSのアドレスを含むメッセージ「S」とを、配達証明返信経路上の第2番目のノードに対応する中継ノードDの公開鍵PkDで暗号化して、第2層オニオンルーティング情報を生成する。生成された第2層オニオンルーティング情報と当該第2層オニオンルーティング情報の転送先のノードDのアドレスを含むメッセージ「D」とを、配達証明経路上の第3番目のノードに対応する中継ノードXの公開鍵PkXで暗号化して第3層オニオンルーティング情報を生成する。このようにして、PkS、PkD、PkXという3つの公開鍵により3重に暗号化された3層の入れ子構造の中継ノードAの配達証明返信用オニオンルーティング情報PkX(D‖PkD(S‖PkS(certA)))=PkX(CertA)が生成される。
【0135】
上記同様にして、PkS、PkE、PkYという3つの公開鍵により3重に暗号化された3層の入れ子構造の中継ノードBの配達証明返信用オニオンルーティング情報PkY(E‖PkE(S‖PkS(certB)))=PkY(CertB)が生成され、PkS、PkF、PkZという3つの公開鍵により3重に暗号化された3層の入れ子構造の中継ノードCの配達証明返信用オニオンルーティング情報PkZ(F‖PkF(S‖PkS(certC)))=PkZ(CertC)が生成される。
【0136】
次に、図5、図6に示したように、発信元ノードSは、メッセージ転送経路を基に、各中継ノードの配達証明返信用オニオンルーティング情報を含む、メッセージ転送用オニオンルーティング情報を生成する。
【0137】
ここでは、図10を参照して、上述のメッセージ転送用オニオンルーティング情報の生成手順の概要を簡単に述べる。
【0138】
メッセージ転送経路上の1番目のノードに対応する最終目的ノードR宛のメッセージMを、最終目的ノードRの公開鍵PkRで暗号化して、第1層オニオンルーティング情報を生成する。
【0139】
生成された第1層オニオンルーティング情報と、当該第1層オニオンルーティング情報の転送先のノードRのアドレスを含むメッセージ「R」と、メッセージ転送経路上の2番目のノードに対応する中継ノードCの配達証明用オニオンルーティング情報の最初の転送先のノードZのアドレスを含むメッセージ「Z」と、ノードCの配達証明用オニオンルーティング情報PkZ(CertC)とを結合して、ノードC宛てのメッセージを生成し、このノードC宛てのメッセージをノードCの公開鍵PkCで暗号化し、第2層オニオンルーティング情報を生成する。
【0140】
生成された第2層オニオンルーティング情報と、当該第2層オニオンルーティング情報の転送先のノードCのアドレスを含むメッセージ「C」と、メッセージ転送経路上の第3番目のノードに対応する中継ノードBの配達証明用オニオンルーティング情報の最初の転送先のノードYのアドレスを含むメッセージ「Y」と、ノードBの配達証明用オニオンルーティング情報PkY(CertB)とを結合して、ノードB宛てのメッセージを生成し、このノードB宛てのメッセージをノードBの公開鍵PkBで暗号化し、第3層オニオンルーティング情報を生成する。
【0141】
生成された第3層オニオンルーティング情報と、当該第3層オニオンルーティング情報の転送先のノードBのアドレスを含むメッセージ「B」と、メッセージ転送経路上の第4番目のノードに対応する中継ノードAの配達証明用オニオンルーティング情報の最初の転送先のノードXのアドレスを含むメッセージ「X」と、ノードAの配達証明用オニオンルーティング情報PkX(CertA)とを結合して、ノードA宛てのメッセージを生成し、このノードA宛てのメッセージをノードAの公開鍵PkAで暗号化し、第4層オニオンルーティング情報を生成する。
【0142】
発信元ノードSは、第4層オニオンルーティング情報を中継ノードAへ送信する。
【0143】
ノードAは、ノードSから送信されたオニオンルーティング情報(図10の第4層オニオンルーティング情報)を受信すると、それを復号し、図10の第3層オニオンルーティング情報と、メッセージ「B」と、ノードAの配達証明用オニオンルーティング情報PkX(CertA)と、メッセージ「X」を得る。そして、第3層オニオンルーティング情報をノードBへ送信し、配達証明用オニオンルーティング情報PkX(CertA)をノードXへ送信する。
【0144】
ノードBは、ノードAから送信されたオニオンルーティング情報(図10の第3層オニオンルーティング情報)を受信すると、それを復号し、図10の第2層オニオンルーティング情報と、メッセージ「C」と、ノードBの配達証明用オニオンルーティング情報PkY(CertB)と、メッセージ「Y」を得る。そして、第2層オニオンルーティング情報をノードCへ送信し、配達証明用オニオンルーティング情報PkY(CertB)をノードYへ送信する。
【0145】
ノードCは、ノードBから送信されたオニオンルーティング情報(図10の第2層オニオンルーティング情報)を受信すると、それを復号し、図10の第1層オニオンルーティング情報と、メッセージ「R」と、ノードCの配達証明用オニオンルーティング情報PkZ(CertC)と、メッセージ「Z」を得る。そして、第1層オニオンルーティング情報をノードRへ送信し、配達証明用オニオンルーティング情報PkZ(CertC)をノードZへ送信する。
【0146】
ノードAの配達証明は、次のような手順でオニオンルーティングによりノードSに届く。
【0147】
ノードXは、ノードAから送信された配達証明用オニオンルーティング情報PkX(CertA)、すなわち、図9の第3層オニオンルーティング情報を受信すると、それを復号し、図9の第2層オニオンルーティング情報と、メッセージ「D」を得る。そして、第2層オニオンルーティング情報をノードDへ送信する。
【0148】
ノードDは、ノードXから送信された、図9の第2層オニオンルーティング情報を受信すると、それを復号し、図9の第1層オニオンルーティング情報と、メッセージ「S」を得る。そして、第1層オニオンルーティング情報をノードSへ送信する。
【0149】
ノードB、ノードCの配達証明も上記ノードAの場合と同様に、オニオンルーティングによりノードSに届く。
【0150】
以上説明したように、上記実施形態によれば、発信元ノードSは、発信元ノードSから最終目的ノードRへメッセージを転送するためのメッセージ転送経路として、該メッセージ転送経路上の第1番目のノードに対応する最終目的ノードRから、該メッセージ転送経路上の第N(Nは3以上、好ましくは4以上の整数)番目のノードに対応する発信元ノードSまでのN個のノード(ノードR、ノードC、ノードB、ノードA、ノードS)を決定する。また、メッセージ転送経路上の各中継ノードについて、該中継ノードから発信元ノードSまでの配達証明を返信するための配達証明返信経路として、該中継ノードと発信元ノードSとの間の複数の中継ノードを決定し、当該配達証明返信経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノードへ送信すべき返信暗号データとを通知するための返信用オニオンルーティング情報を生成する。
【0151】
メッセージ転送経路上の第i(i=2,3,…N−1)番目のノードに、当該ノードの次のノードである第(i−1)番目のノードのアドレスと、当該第(i−1)番目のノード宛ての第(i−1)暗号データと、該第(i−1)暗号データに対する配達証明を返信するための返信用オニオンルーティング情報と、当該返信用オニオンルーティング情報の宛先ノードのアドレスとを通知するためのメッセージ転送用オニオンルーティング情報を生成する。このメッセージ転送用オニオンルーティング情報をメッセージ転送経路上の第N−1番目のノードAへ送信する。
【0152】
メッセージ転送経路上の第i(i=2〜N−1)番目の中継ノードA〜Cは、当該中継ノード宛ての第i暗号データを復号した結果得られる第iメッセージに含まれる第(i−1)暗号データをメッセージ転送経路上の第(i−1)番目のノードへ送信した後、該第i暗号データに含まれる返信用オニオンルーティング情報を送信する。
【0153】
その結果、発信元ノードSは、発信元ノードS及び最終目的ノードRの匿名性を維持しつつ、各中継ノードA〜Cの配達証明を受け取ることができる。しかも、発信元ノードSは、最終目的ノードの信頼度によらず、最終目的ノードへのメッセージの配達を確認することができる。
【0154】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
【0155】
図4の情報処理部1、転送経路決定部2、配達証明返信用オニオンルーティング情報生成部3、メッセージ転送用オニオンルーティング情報生成部4、送信部5、受信部7、復号部8の各機能部は、これら各機能部の機能を実現するためのプログラムをコンピュータに実行させることにより実現することができる。
【0156】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0157】
【図1】一般的なオニオンルーティング方式を説明するための図。
【図2】配達証明を送信するための従来の方法を説明するための図。
【図3】本発明の実施形態に係る配達証明の送信方法を説明するための図。
【図4】ノード装置の構成例を示す図。
【図5】発信元ノードの処理動作を説明するためのフローチャート。
【図6】発信元ノードの処理動作を説明するためのフローチャート。
【図7】オニオンルーティング情報の受信処理を説明するためのフローチャート。
【図8】発信元ノードから最終目的ノードまでのメッセージ転送経路上の各ノードでの処理動作を説明するための図。
【図9】配達証明返信用オニオンルーティング情報のデータ構造を説明するための図。
【図10】メッセージ転送用オニオンルーティング情報のデータ構造を説明するための図。
【符号の説明】
【0158】
1…情報処理部、2…転送経路決定部、3…配達証明返信用オニオンルーティング情報生成部、4…メッセージ転送用オニオンルーティング情報生成部、5…送信部、6…公開鍵記憶部、7…受信部、8…復号部、9…秘密鍵記憶部。

【特許請求の範囲】
【請求項1】
ネットワークに接続されたノード装置において、
発信元の該ノード装置から前記ネットワーク上の最終目的ノードまでのメッセージを転送するための該ネットワーク上のメッセージ転送経路として、該ノード装置と前記最終目的ノードとの間の前記ネットワーク上の複数の中継ノードを決定する第1の経路決定手段と、
前記メッセージ転送経路上の各中継ノードについて、該中継ノードから前記発信元までの配達証明を返信するための配達証明返信経路として、該中継ノードと前記発信元との間の複数の中継ノードを決定する第2の経路決定手段と、
各配達証明返信経路について、当該配達証明返信経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノードへ送信すべき返信暗号データとを通知するための返信用オニオンルーティング情報を生成する第1の生成手段と、
前記メッセージ転送経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノード宛ての暗号データと、前記返信用オニオンルーティング情報と、前記配達証明返信経路上の当該返信用オニオンルーティング情報の宛先ノードのアドレスとを通知するためのメッセージ転送用オニオンルーティング情報を生成する第2の生成手段と、
前記メッセージ転送用オニオンルーティング情報を送信する送信手段と、
を具備したことを特徴とするノード装置。
【請求項2】
前記ネットワークから前記発信元宛ての返信暗号データを受信する受信手段と、
前記返信暗号データを復号する復号手段と、
復号された前記返信暗号データから前記配達証明を取得する手段と、
をさらに具備したことを特徴とする請求項1記載のノード装置。
【請求項3】
ネットワークに接続されたノード装置において、
前記ネットワークから暗号データを受信する受信手段と、
前記暗号データを復号し、当該ノード装置宛てデータを得る復号手段と、
当該ノード装置宛てデータに含まれている他の暗号データを、当該ノード装置宛データに含まれている第1のアドレスに対応するノードへ送信する第1の送信手段と、
当該ノード装置宛のデータに含まれている配達証明返信用暗号データを、当該ノード装置宛データに含まれている第2のアドレスに対応するノードへ送信する第2の送信手段と、
を具備したことを特徴とするノード装置。
【請求項4】
前記第2の送信手段は、前記第1の送信手段で前記他の暗号データを送信した後、ランダムな時間後に、前記配達証明返信用暗号データを送信することを特徴とする請求項3記載のノード装置。
【請求項5】
前記第1の経路決定手段は、前記メッセージ転送経路上の第1番目のノードに対応する前記最終目的ノードと、第N(Nは3以上、好ましくは4以上の整数)番目のノードに対応する前記発信元との間の第2番目から第N−1番目までの中継ノードを決定し、
前記第2の生成手段は、前記メッセージ転送経路上の第i(i=2,3,…N−1)番目のノード宛ての第i(i=2,3,…N−1)暗号データを、前記メッセージ転送経路上の第(i−1)番目のノードのアドレスと、第(i−1)暗号データと、前記返信用オニオンルーティング情報と、当該返信用オニオンルーティング情報の宛先ノードのアドレスとを含む入れ子構造を有する当該第i番目のノード宛ての第iメッセージを暗号化して生成することを特徴とする請求項1記載のノード装置。
【請求項6】
前記第1の生成手段は、
前記最終目的ノード宛ての前記メッセージを当該最終目的ノードの公開鍵で暗号化して、前記第1番目のノード宛ての前記第1暗号データを生成し、
前記第i(i=2,3,…N−1)番目のノード宛ての第i暗号データについては、前記第iメッセージを、前記第i番目のノードに対応する公開鍵で暗号化することにより生成することを特徴とする請求項4記載のノード装置。
【請求項7】
前記第2の経路決定手段は、前記配達証明返信経路上の第1番目のノードに対応する前記発信元と、第M(Mは3以上、好ましくは4以上の正の整数)番目のノードに対応する該第i番目の中継ノードとの間の第2番目から第M−1番目までの中継ノードを決定し、
前記第1の生成手段は、前記配達証明返信経路上の第m(m=2,3,…M−1)番目のノード宛ての第m(m=2,3,…M−1)返信暗号データを、前記配達証明返信経路上の第(m−1)番目のノードのアドレスと、第(m−1)返信暗号データとを含む入れ子構造を有する第mメッセージを暗号化して生成することを特徴とする請求項1記載のノード装置。
【請求項8】
ネットワーク上の複数のノードのうちの発信元ノードから最終目的ノードへメッセージを送信するための匿名通信方法であって、
前記発信元ノードが、前記最終目的ノードまでのメッセージを転送するための該ネットワーク上のメッセージ転送経路として、当該発信元ノードと当該最終目的ノードとの間の前記ネットワーク上の複数の中継ノードを決定する第1のステップと、
前記発信元ノードが、前記メッセージ転送経路上の各中継ノードについて、該中継ノードから前記発信元ノードまでの配達証明を返信するための配達証明返信経路として、該中継ノードと前記発信元ノードとの間の複数の中継ノードを決定する第2のステップと、
前記発信元ノードが、各配達証明返信経路について、当該配達証明返信経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノードへ送信すべき返信暗号データとを通知するための返信用オニオンルーティング情報を生成する第3のステップと、
前記発信元ノードが、前記メッセージ転送経路上の各中継ノードに、当該中継ノードの次のノードを示す第1のアドレスと、当該次のノード宛ての暗号データと、前記返信用オニオンルーティング情報と、前記配達証明返信経路上の当該返信用オニオンルーティング情報の宛先ノードを示す第2のアドレスとを通知するためのメッセージ転送用オニオンルーティング情報を生成する第4のステップと、
前記発信元ノードが、前記メッセージ転送用オニオンルーティング情報を送信する第5のステップと、
前記メッセージ転送経路上の各中継ノードが、前記ネットワークから前記暗号データを受信する第6のステップ、
前記メッセージ転送経路上の各中継ノードが、前記暗号データを復号し、当該ノード宛てデータを得る第7のステップと、
前記メッセージ転送経路上の各中継ノードが、当該ノード宛てデータに含まれている他の暗号データを、当該ノード宛データに含まれている第1のアドレスに対応するノードへ送信する第8のステップ、
前記メッセージ転送経路上の各中継ノードが、当該ノード宛データに含まれている返信暗号データを、当該ノード宛データに含まれている第2のアドレスに対応するノードへ送信する第9のステップと、
前記発信元ノードが、前記ネットワークから前記発信元ノード宛ての返信暗号データを受信する第10のステップと、
受信された前記返信暗号データを復号する第11のステップと、
復号された前記返信暗号データから前記配達証明を取得する第12のステップと、
を有することを特徴とする匿名通信方法。
【請求項9】
ネットワークに接続されたコンピュータを、
発信元の該コンピュータから前記ネットワーク上の最終目的ノードまでのメッセージを転送するための該ネットワーク上のメッセージ転送経路として、該送信元と前記最終目的ノードとの間の前記ネットワーク上の複数の中継ノードを決定する第1の経路決定手段、
前記メッセージ転送経路上の各中継ノードについて、該中継ノードから前記発信元までの配達証明を返信するための配達証明返信経路として、該中継ノードと前記発信元との間の複数の中継ノードを決定する第2の経路決定手段、
各配達証明返信経路について、当該配達証明返信経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノードへ送信すべき返信暗号データとを通知するための返信用オニオンルーティング情報を生成する第1の生成手段、
前記メッセージ転送経路上の各中継ノードに、当該中継ノードの次のノードのアドレスと、当該次のノード宛ての暗号データと、前記返信用オニオンルーティング情報と、前記配達証明返信経路上の当該返信用オニオンルーティング情報の宛先ノードのアドレスとを通知するためのメッセージ転送用オニオンルーティング情報を生成する第2の生成手段、
前記メッセージ転送用オニオンルーティング情報を送信する送信手段、
として機能させるための匿名通信プログラム。
【請求項10】
前記コンピュータを、さらに、
前記ネットワークから前記発信元宛ての返信暗号データを受信する受信手段、
前記返信暗号データを復号する復号手段、
復号された前記返信暗号データから前記配達証明を取得する手段、
として機能させるための請求項9記載の匿名通信プログラム。
【請求項11】
ネットワークに接続されたコンピュータを、
前記ネットワークから暗号データを受信する受信手段、
前記暗号データを復号し、当該コンピュータ宛てデータを得る復号手段、
当該コンピュータ宛てデータに含まれている他の暗号データを、当該コンピュータ宛データに含まれている第1のアドレスに対応するノードへ送信する第1の送信手段、
当該コンピュータ宛のデータに含まれている配達証明返信用暗号データを、当該コンピュータ宛データに含まれている第2のアドレスに対応するノードへ送信する第2の送信手段、
として機能させるための匿名通信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−5898(P2007−5898A)
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願番号】特願2005−180748(P2005−180748)
【出願日】平成17年6月21日(2005.6.21)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】