JP2004266493A - Anonymous route search request method, search request relay and response methods thereof, anonymous data relay method, and bulletin board providing apparatus - Google Patents

Anonymous route search request method, search request relay and response methods thereof, anonymous data relay method, and bulletin board providing apparatus Download PDF

Info

Publication number
JP2004266493A
JP2004266493A JP2003053673A JP2003053673A JP2004266493A JP 2004266493 A JP2004266493 A JP 2004266493A JP 2003053673 A JP2003053673 A JP 2003053673A JP 2003053673 A JP2003053673 A JP 2003053673A JP 2004266493 A JP2004266493 A JP 2004266493A
Authority
JP
Japan
Prior art keywords
node
anonymous
route
onion
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003053673A
Other languages
Japanese (ja)
Other versions
JP4128094B2 (en
Inventor
Susumu Sakamoto
勧 坂本
Tatsuya Kainuma
達也 貝沼
Kazukuni Kohara
和邦 古原
Shinji Yamanaka
晋爾 山中
Hideki Imai
秀樹 今井
Ryoichi Sasaki
良一 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Prime Software Technologies Ltd
Original Assignee
Fujitsu Prime Software Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Prime Software Technologies Ltd filed Critical Fujitsu Prime Software Technologies Ltd
Priority to JP2003053673A priority Critical patent/JP4128094B2/en
Publication of JP2004266493A publication Critical patent/JP2004266493A/en
Application granted granted Critical
Publication of JP4128094B2 publication Critical patent/JP4128094B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a communication where the anonymity of a person who transmits/receives data is protected, on a network environment whose node configuration changes dynamically. <P>SOLUTION: A transmission node 1 sends a route search packet by multicast (steps S1-S3). A relay node 2 adds its own node identifier to anonymous route information for reply for indicating a route for reaching the node for entirely enciphering, and transfers the route search packet to the next node (steps S4-S6). A reception node 3 transmits a route notification packet to the transmission node 1 according to the anonymous route information for reply when the route search packet reaches (steps S7-S9). The relay node 2 enciphers its own node identifier by the public key of a transmission source node, adds its own node identifier to the route notification packet, and transmits its own node identifier to the next node according to the anonymous route information for reply (steps S10-S12). <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明はデータの送受信者の匿名性を守った匿名ルート探索要求方法、匿名ルート探索要求中継方法、匿名データ中継方法、匿名ルート探索要求応答方法および電子掲示板提供装置に関し、特にオニオンルーティングの手法を利用した匿名ルート探索要求方法、匿名ルート探索要求中継方法、匿名データ中継方法、匿名ルート探索要求応答方法および電子掲示板提供装置に関する。
【0002】
【従来の技術】
インターネットを介した様々な情報交換が盛んに行われている。インターネットにおいて一般に利用されている技術では、伝送されているパケットを解析すれば、パケットのヘッダから受信者が割り出せると共に、パケットルートの追跡も可能である。その結果、インターネットの利用者個人のプライバシが侵害される虞がでてきている。たとえば、匿名の掲示板への投稿内容から、投稿者の使用している端末の所在(IPアドレス等)が分かってしまうと、悪意の第三者から嫌がらせをうける危険性がある。
【0003】
そこで、インターネット上のデータの送受信者の匿名性を守るための様々な技術が考えられている。データの送受信の匿名性を守るためには、全てのデータ通信を暗号化すると共に、パケットの伝送経路も漏洩しないようにする必要がある。
【0004】
パケットの伝送経路の漏洩を防止するには、複数の中継地(ルータ)を活用することにより、通信中のパケットの受信元や転送先等の情報の漏洩をシャットアウトする必要がある。このような伝送経路の漏洩防止手法としては、「オニオンルーティング」と名付けられた手法が知られている(たとえば、特許文献1参照)。
【0005】
オニオンルーティングの手法では、オニオンルータと呼ばれる堅牢で固定的なルータがルーティングを司る。送信端末では、送信相手までの伝送経路を予め決定し、パケットを中継する各オニオンルータの公開鍵を用いてパケットの伝送経路に関する情報を暗号化する。
【0006】
パケットを受信したオニオンルータは、自身の秘密鍵で伝送経路に関する情報を復号する。この復号によりパケットの次の転送先が判別され、オニオンルータは、次のノード(オニオンルータ若しくは受信端末)にパケットを転送する。このように、各オニオンルータでは、次の転送先以外隠蔽された状態を保つことができるため、最終的な受信端末の情報を特定することができない。また、オニオンルータにおいて、パケットを送出する際に、それまでの伝送経路に関する情報をパケットに付加しないことで、送信元の漏洩を防止できる。
【0007】
このように、オニオンルーティングでは、データパケットが目的地までの経路情報を多重に暗号化して保持することで、ルーティングを行う各ノードやネットワーク上でのスキミングを行う者に対して経路情報の一部しか参照できないようにしている。
【0008】
【特許文献1】
米国特許第6、266、704号
【0009】
【発明が解決しようとする課題】
しかし、従来のオニオンルーティングの手法は、ノード構成が動的に変化する環境に適用するのが困難である。ノード構成が動的に変化する環境としては、特にP2P(Peer to Peer)ネットワークがある。
【0010】
P2Pネットワークでは、Peerノードのネットワークへの参加やネットワークからの退場は任意である。このため、P2Pネットワーク上で通信を行う場合、その時点で参加しているPeerノード間でP2Pの通信を行いながら、送信相手のPeerノードへパケットを転送する。このようなP2P環境に対してオニオンルーティングの手法を適用する場合、次の問題が生ずる。
・ 固定のルータ及び固定の経路を予め決定することができない。
・ ルーティング途中でのノード構成変更に対して動的に対処するのが困難である。
【0011】
このため、P2Pネットワークなど不安定なネットワークで匿名通信を行うには、経路発見を動的且つ匿名的に行い、ルーティング途中でのノード構成変更への対処ができなければならない。
【0012】
本発明はこのような点に鑑みてなされたものであり、ノード構成が動的に変化するネットワーク環境上で、データの送受信者の匿名性を守った通信が可能な通信ルートを探索するための匿名ルート探索要求方法、匿名ルート探索要求中継方法および匿名ルート探索要求応答方法を提供することを目的とする。
【0013】
また、本発明の他の目的は、ノード構成が動的に変化するネットワーク環境上で、データの送受信者の匿名性を守って確実な通信を行うことができる匿名データ中継方法を提供することである。
【0014】
また、本発明の他の目的は、投稿者とその投稿の閲覧者とを匿名のままメッセージの交換が可能な電子掲示板提供装置を提供することである。
【0015】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すようなシステムが提供される。
【0016】
送信ノード1では、宛先までの伝送経路探索処理を、送信元を隠したままコンピュータで実行するための匿名ルート探索要求方法が提供される。匿名ルート探索要求方法では、送信ノード1は、宛先識別子で宛先を指定した経路探索要求を受け取ると、自分の識別情報である自ノード識別子を自分のみが復号可能な形式で暗号化して返信用匿名ルート情報とする(ステップS1)。次に、送信ノード1は、任意に生成した匿名識別子、宛先識別子、返信用匿名ルート情報、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを生成する(ステップS2)。最後に、送信ノード1は、ルート探索パケットをブロードキャストで送信する(ステップS3)。
【0017】
これにより、暗号化された自ノード識別情報を含む返信用ルート情報や送信元公開鍵を含むルート探索パケットがブロードキャストで送信される。
中継ノード2では、送信元が隠された伝送経路探索要求をコンピュータで中継するための匿名ルート探索要求中継方法が提供される。この匿名ルート探索要求中継方法では、中継ノード2は、送信元の匿名識別子、探索相手を指定する宛先識別子、送信元からコンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、返信用匿名ルート情報と隣接ノード識別子とを自分のみが復号可能な形式で暗号化する(ステップS4)。次に、中継ノード2は、ルート探索パケットに自分の識別情報である自ノード識別子を追加する(ステップS5)。最後に、中継ノード2は、ルート探索パケットをブロードキャストで送信する(ステップS6)。
【0018】
これにより、返信用匿名ルート情報に隣接ノード識別子が付与されて、中継ノード2でのみ復号可能な形式で暗号化される。そして、中継ノード2のノード識別子を追加したルート探索パケットが、ブロードキャストで送信される。
【0019】
受信ノード3では、送信元が隠された伝送経路探索要求に対して宛先となるコンピュータで応答するための匿名ルート探索要求応答方法が提供される。この匿名ルート探索要求応答方法では、受信ノード3は、送信元の匿名識別子、コンピュータ宛のパケットを示す宛先識別子、送信元からコンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、自分の識別情報である自ノード識別子と、自ノード宛て情報の暗号化用の受信ノード公開鍵とを送信元公開鍵で暗号化してルート情報とする(ステップS7)。次に、受信ノード3は、匿名識別子でルート通知先が指定され、返信用匿名ルート情報、ルート情報、および送信元公開鍵を含むルート通知パケットを生成する(ステップS8)。最後に、受信ノード3は、隣接ノード識別子で示されるノードに対してルート通知パケットを送信する(ステップS9)。
【0020】
これにより、受信ノード3のノード識別子と公開鍵とを含むルート通知パケットが、返信用匿名ルート情報に従ったルートで返信される。
また、中継ノード2に関する別の発明では、匿名ルート経由の匿名通信をコンピュータで中継するための匿名データ中継方法が提供される。この匿名データ中継方法では、前記匿名ルート上の次の送信先を示す次ノード識別子と次の送信先から宛先までの匿名ルート情報とが前記コンピュータの公開鍵で暗号化された宛先匿名ルート情報、前記コンピュータから送信元までの伝送ルートを示す戻り匿名ルート情報、および前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子を含むデータパケットを受け取ると、前記宛先匿名ルート情報を前記公開鍵に対応する秘密鍵で復号して、前記次ノード識別子を判別するとともに、復号されたデータを新たな前記宛先匿名ルート情報として前記データパケットに設定し、前記戻り匿名ルート情報と前記隣接ノード識別子とを前記公開鍵で暗号化して新たな前記戻り匿名ルート情報とし、前記データパケットに前記コンピュータの自ノード識別子を追加し、前記次ノード識別子で示されるノードに対して、前記データパケットを送信する処理が行われる。
【0021】
これにより、送信元と宛先とが匿名のまま、データパケットが中継される。
また、上記課題を解決するために、ネットワーク上で匿名のメッセージ交換を行うための電子掲示板提供装置において、掲示板に掲載するメッセージ、投稿者の送信元から辿ってきた第1伝送ルートを示す第1戻り匿名ルート情報、および前記第1伝送ルート上で隣接するノードの識別情報である第1隣接ノード識別子を含む自分宛の投稿データパケットを受け取ると、前記データパケットの内容をデータベースに登録する登録手段と、前記メッセージに対する検索条件、検索者の送信元から辿ってきた第2伝送ルートを示す第2戻り匿名ルート情報、前記第2伝送ルート上で隣接するノードの識別情報である第2隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含む自分宛の検索データパケットを受け取ると、前記検索条件により前記データベース内を検索する検索手段と、前記検索手段で検出された前記メッセージ、前記第1戻り匿名ルート情報、および前記第1隣接ノード識別子を前記送信元公開鍵で暗号化する暗号化手段と、暗号化されたデータ、および前記第2戻りルート情報を含む応答データパケットを生成するパケット生成手段と、前記第2隣接ノード識別子で示されるノードに対して前記応答データパケットを送信する送信手段と、を有することを特徴とする電子掲示板提供装置が提供される。
【0022】
これにより、電子掲示板の投稿者を匿名のまま、投稿者のメッセージが他の国名の検索者に通知される。
【0023】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【0024】
[発明の概要]
図1は、実施の形態に適用される発明の概念図である。本発明に係る通信は、送信ノード1、中継ノード2および受信ノード3間で行われる。なお、後述するように、中継ノード2は一般には複数ある。
【0025】
送信ノード1は、宛先識別子で宛先を指定した経路探索要求を受け取ると、自分の識別情報である自ノード識別子を自分のみが復号可能な形式で暗号化して返信用匿名ルート情報とする(ステップS1)。自分のみが復号可能に暗号化するには、たとえば、送信ノード1のみが有する秘密鍵(復号鍵)に対応する公開鍵(暗号鍵)で暗号化を行う。
【0026】
次に、送信ノード1は、任意に生成した匿名識別子、宛先識別子、返信用匿名ルート情報、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを生成する(ステップS2)。匿名識別子は、送信したルート探索パケットと返信されるルート通知パケットとの関連付けに利用される。宛先識別子は、宛先の受信ノード3を特定する情報である。宛先識別子は、予め公開された情報であってもよい。送信元公開鍵は、送信ノード1に対して他のノードが自己のノード識別子等の情報を渡すときに、その情報を暗号化するための暗号鍵である。送信元公開鍵に対応する秘密鍵(復号鍵)は、送信ノード1内に予め格納しておく。
【0027】
最後に、送信ノード1は、ルート探索パケットをブロードキャストで送信する(ステップS3)。
中継ノード2は、ルート探索パケットを受け取ると、返信用匿名ルート情報と隣接ノード識別子とを自分のみが復号可能な形式で暗号化する(ステップS4)。隣接ノード識別子は、ルート探索パケットの伝送ルートにおいて中継ノード2に隣接するノードの識別子である。送信ノード1からルート探索パケットが直接送られたのであれば、送信ノード1のノード識別子が隣接ノード識別子である。また、暗号化処理では、たとえば、中継ノード2が有する秘密鍵(復号鍵)に対応する公開鍵(暗号鍵)で暗号化を行う。返信用匿名ルート情報は、送信ノード若しくは伝送途中に介在した他の中継ノードで既に暗号化されているため、ステップS4の暗号化により、多重に暗号化されることになる。しかも、隣接ノード識別子を含めて暗号化することで、その情報を復号した際に隣接ノードのノード識別子が認識可能となる。
【0028】
次に、中継ノード2は、ルート探索パケットに自分の識別情報である自ノード識別子を追加する(ステップS5)。最後に、中継ノード2は、ルート探索パケットをブロードキャストで送信する(ステップS6)。送信されたルート探索パケットを第三者が解析した場合、中継ノード2から送信されたことは認識できるが、それ以前の転送ルートは知ることができない。
【0029】
受信ノード3は、受信ノード3宛のパケットであることを示す宛先識別子を含むルート探索パケットを受け取ると、自分の識別情報であるノード識別子と、受信ノード3宛て情報の暗号化用の受信ノード公開鍵とを送信元公開鍵で暗号化してルート情報とする(ステップS7)。なお、送信元公開鍵は、ルート探索パケットから取得できる。ノード識別子と受信ノード公開鍵との組を送信元公開鍵で暗号化したため、これらの情報を参照できるのは、送信ノード1のみとなる。
【0030】
次に、受信ノード3は、送信ノード1の匿名識別子でルート通知先が指定され、返信用匿名ルート情報、ルート情報、および送信元公開鍵を含むルート通知パケットを生成する(ステップS8)。最後に、受信ノード3は、隣接ノード識別子で示されるノードに対してルート通知パケットを送信する(ステップS9)。これにより、受信ノード3のノード識別子と公開鍵とを含むルート通知パケットが、返信用匿名ルート情報に従ったルートで返信される。
【0031】
中継ノード2は、ルート通知パケットを受け取ると、自分の識別情報である自ノード識別子と、自ノード宛て情報の暗号化用の中継ノード公開鍵とを送信元公開鍵で暗号化してルート情報に追加する(ステップS10)。このように、ルート情報に各中継ノードのノード識別子と公開鍵との組を追加していくことで、匿名ルートを送信ノードに通知することができる。なお、ルート情報にノード識別子と公開鍵との組を追加する際には、情報の追加順が判別できるように所定の規則に従って追加する。たとえば、ルート情報内の元の情報の前に、新たな情報を追加していく。これにより、送信ノード1では、匿名ルート上の各ノードの配列を認識できる。
【0032】
次に、中継ノード2は、返信用匿名ルート情報を復号して、次の送信先となるノードを示す次ノード識別子(ルート探索パケットでの隣接ノード識別子)を取得すると共に、復号されたデータを返信用匿名ルート情報としてルート通知パケットに設定する(ステップS11)。最後に、中継ノード2は、次ノード識別子で示されるノードに対して、ルート通知パケットを送信する(ステップS12)。これにより、ルート情報に中継ノード2のノード識別子と公開鍵とが付加されたルート通知パケットが、返信用匿名ルート情報に従ったルートに転送される。
【0033】
送信ノード1は、ルート通知パケットを受け取ると、ルート情報を送信元公開鍵に対応する送信元秘密鍵で復号する(ステップS13)。そして、送信ノード1は、復号により得られた宛先までのルート上の各ノードの識別子と公開鍵との組を配列を保ったまま記録装置に格納する(ステップS14)。格納された情報を参照すれば、受信ノード3までの匿名ルートを認識することができる。しかも、各ノードの公開鍵を用いれば、ルート上の各ノードに対して、匿名ルート上の次のノードのみを知らせることができる。
【0034】
このようにして、データの送受信者の匿名性を守ると共に、データの送受信経路を動的に検索し、匿名性の高いデータ通信を行うことができる。しかも、ルーティングを実行時にノード構成が変更されても、先に検出された他の匿名ルート経由でデータを伝送することで、データ伝送の確実性を向上させることができる。
【0035】
以上のような匿名通信の機能は、P2Pネットワークにも適用することができる。すなわち、各ノードが匿名ルートを適宜探索できるため、ネットワークの構成が動的に変化する場合であっても、匿名ルートにより送信元を秘匿したままのデータ通信が可能となる。
【0036】
ところで、ルート探索パケットに含める送信元の匿名識別子や送信元公開鍵は、適宜変更することができる。たとえば、ルート探索パケットを送出する度に、異なる匿名識別子、異なる送信元公開鍵を用いることができる。送信元公開鍵を固定化しないことで、送信元の匿名性を高めることができる。すなわち、匿名識別子と公開鍵を常に送信者に対して固定にすると以下の問題が生じてしまう。
1.同一匿名識別子を持つ暗号化されないメッセージ(掲示板への投稿等)が複数集まると、その内容から発信者を特定できる可能性が生じる。
2.暗号化されたメッセージでも、暗号化を解いた人(例えば、匿名掲示板の投稿に対する返信を投稿者が読む場合)が内容から発信者を特定できる可能性が生じる。
【0037】
そこで、同一送信者の匿名識別子と公開鍵をメッセージ間で固定にしないことで、匿名掲示板を検索するノードや、ネットワーク上のスキミング、或いは、返信メッセージの受信者がメッセージの送信者を特定するのを防ぐことができる。すなわち、ノードの匿名識別子、公開鍵の使い捨て管理を行うことで、メッセージ間のアンリンカビリティ(unlinkability)を高めることができる。これを電子掲示板に利用すれば、データの送信者や受信者の匿名性を守った匿名掲示板機能を実現できる。なお、アンリンカビリティとは、二種類の処理が同じユーザによって行われたことを決定できないことを示す。
【0038】
[発明の実施の形態]
以上のような機能を実現するための具体例を、本発明の実施の形態として以下に説明する。なお、以下の実施の形態は、P2Pネットワークに本発明を適用したものであり、匿名通信機能を、P2PオニオンプロキシとP2Pオニオンルータによって実現する。各P2PオニオンノードのP2PオニオンプロキシによりP2Pオニオンルート発見プロトコルに応じたルート探索が行われる。また、各P2PオニオンノードのP2Pオニオンルータにより、P2Pオニオンルーティングが行われ、P2Pオニオンルート情報が検出される。
【0039】
ここで、P2Pオニオンルート発見プロトコルは、受信側のP2PオニオンノードまでのP2Pオニオンルートを発見するプロトコルである。P2Pオニオンプロキシは、P2PオニオンノードのP2Pオニオンルート発見プロトコルを司る機能単位である。P2Pオニオンルートは、多重に暗号化され、且つ、ノード構成変更に対処可能な経路情報である。P2Pオニオンルータは、P2Pオニオンノードにおいて、P2Pオニオンルート情報に従ったP2Pオニオンルーティング処理を司る機能単位である。
【0040】
図2は、匿名通信網の概念図である。本実施の形態では、P2Pオニオンノード100が、P2Pオニオンノード200,300,410,420,430,440,450を含む匿名通信網10に参加する。ここで、P2Pオニオンノード100のノード名を「A」、P2Pオニオンノード200のノード名を「B」、P2Pオニオンノード410のノード名を「C」、P2Pオニオンノード420のノード名を「D」、P2Pオニオンノード430のノード名を「E」、P2Pオニオンノード440のノード名を「F」、P2Pオニオンノード450のノード名を「G」、P2Pオニオンノード300のノード名を「X」とする。
【0041】
P2Pオニオンノード100は、P2Pオニオンノード200との間でP2P通信接続を行うことで匿名通信網10に参加する。
P2Pオニオンノード200は、他のP2Pオニオンノード410,420,440,450との間でP2P通信接続が確立している。P2Pオニオンノード410は、さらにP2Pオニオンノード430との間でP2P通信接続が確立している。P2Pオニオンノード420も同様に、P2Pオニオンノード430との間でP2P通信接続が確立している。P2Pオニオンノード430は、さらにP2Pオニオンノード300との間でP2P通信接続が確立している。
【0042】
このようにP2Pネットワークでは、多数のP2Pオニオンノード間でのP2P接続の連鎖によって通信網が確立している。
図3は、本発明の実施の形態に用いるP2Pオニオンノードのハードウェア構成例を示す図である。P2Pオニオンノード100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0043】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0044】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0045】
通信インタフェース106は、他のP2Pオニオンノード200との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、P2Pオニオンノード100のハードウェア構成例を示したが、他のP2Pオニオンノード200,300,410,420,430,440,450も同様のハードウェア構成で実現可能である。
【0046】
ところで、本実施の形態に係る各P2Pオニオンノードは、大別して、匿名通信基盤接続認証機能、匿名経路発見機能、および匿名通信機能を有している。
匿名通信基盤接続認証機能は、自身が匿名通信網10に参加するための認証要求機能、および他のP2Pオニオンノードが匿名通信網10に参加する際にそのP2Pオニオンノードを認証するための機能である。匿名通信網10に参加するP2Pオニオンノードに対して接続認証を行うことで、予め会員登録された者以外が匿名通信網10に参加することを防止できる。
【0047】
匿名経路発見機能は、P2Pオニオンルート発見プロトコルに従って、送信相手までの伝送路を探索する機能である。
匿名通信機能は、発見された経路を介して匿名通信を行う機能である。
【0048】
図4は、P2Pオニオンノードの概略機能構成を示すブロック図である。P2Pオニオンノード100は、P2Pオニオンプロキシ110、P2Pオニオンルータ120及び複数のアプリケーション131,132を有している。P2Pオニオンプロキシ110は、匿名通信基盤接続認証機能と匿名経路発見機能とを有している。また、P2Pオニオンルータ120は、匿名通信機能を有している。アプリケーション131,132は、ユーザからの操作入力等に応答して、メッセージの送信や受信を行う。図4の例では、アプリケーション131がメッセージを送信し、アプリケーション132がメッセージを受信する場合を示している。
【0049】
P2Pオニオンノード200には、P2Pオニオンプロキシ210とP2Pオニオンルータ220とを有している。P2Pオニオンプロキシ210は、匿名通信基盤接続認証機能と匿名経路発見機能とを有している。また、P2Pオニオンルータ220は、匿名通信機能を有している。
【0050】
このような機能構成のP2Pオニオンノード100,200間では、たとえば、アプリケーション131,132から匿名通信網10への接続要求が出されると、P2Pオニオンノード100のP2Pオニオンプロキシ110とP2Pオニオンノード200のP2Pオニオンプロキシ210との匿名通信基盤接続認証機能が連携して動作することで、接続相互認証が行われる。
【0051】
また、アプリケーション131がユーザからのメッセージ送信依頼を受け付けると、P2Pオニオンプロキシ110に対して、P2Pオニオンルートの探索と獲得依頼が出される。すると、P2Pオニオンノード100のP2Pオニオンプロキシ110とP2Pオニオンノード200のP2Pオニオンプロキシ210との匿名経路発見機能がP2Pオニオンルート発見プロトコルに従って連携動作することで、ルート探索処理が行われる。ルート探索が終了すると、アプリケーション131からP2Pオニオンルータ120に対して、メッセージ送信要求が出される。すると、P2Pオニオンノード100のP2Pオニオンルータ120とP2Pオニオンノード200のP2Pオニオンルータ220との匿名通信機能が連携して動作することで、オニオンルーティングが行われ、データパケットによってメッセージが送信される。
【0052】
また、他のP2PオニオンノードからP2Pオニオンノード100に対するメッセージがオニオンルーティングによって送られると、P2Pオニオンルータ120からアプリケーション132にメッセージが渡される。
【0053】
次に、本発明の実施の形態を実現するための各P2Pオニオンノードの機能を詳細に説明する。なお、各P2Pオニオンノードは、パケットの発信者(発信Peer)となる場合、パケットの受信者(受信Peer)となる場合、およびパケットのルーディングを行うルータ(中継Peer)となる場合があり得る。従って、各P2Pオニオンノードは、発信Peer、受信Peer、および中継Peerとしての機能を備えている必要がある。
【0054】
図5は、P2Pオニオンノードの機能構成を示すブロック図である。P2Pオニオンノード100は、P2Pオニオンプロキシ110、P2Pオニオンルータ120、アプリケーション131、会員証情報保持部141、固定鍵保持部142、匿名ルート情報保持部143、一時鍵生成部151、および匿名ID生成部152を有している。
【0055】
P2Pオニオンプロキシ110は、匿名通信接続部111、匿名ルート探索要求部112、ルート探索要求中継部113、およびルート探索要求応答部114を有している。
【0056】
匿名通信接続部111は、匿名通信基板接続認証処理を実行する。具体的には、匿名通信接続部111は、アプリケーション131から匿名基板への接続要求を受け取ると、会員証情報保持部141から会員証情報を取得するとともに、固定鍵保持部142から固定公開鍵142aを取得する。そして、匿名通信接続部111は、接続可能な他のP2Pオニオンノードとの間で、会員証情報と固定公開鍵142aとを用いて接続認証を行う。また、匿名通信接続部111は、他のP2Pオニオンノードから接続認証要求を受け取った際にも、会員証情報と固定公開鍵142aとを用いて接続認証を行う。
【0057】
匿名ルート探索要求部112は、P2Pオニオンルート発見プロトコルにおけるルート探索要求送信機能を実現する。具体的には匿名ルート探索要求部112は、アプリケーション131からP2Pオニオンルート探索要求を受け取ると、固定鍵保持部142から固定公開鍵142aを取得すると共に、一時鍵生成部151から一時公開鍵と一時秘密鍵とを受け取る。また、匿名ルート探索要求部112は、匿名ID生成部152から匿名IDを取得する。そして、匿名ルート探索要求部112は、取得した鍵情報、匿名IDおよび自分のノードID等を含むルート探索パケットを生成し、ブロードバンドで送信する。なお、ノードIDは、公開鍵で暗号化された状態で、ルート探索パケット内に設定される。
【0058】
ルート探索要求中継部113は、P2Pオニオンルート発見プロトコルにおけるルート探索要求の中継機能を実現する。具体的には、他のP2Pオニオンノードからルート探索パケットを受け取ると、ルート探索要求中継部113は、固定鍵保持部142から固定公開鍵142aを取得する。次に、ルート探索要求中継部113は、ルート探索パケット内の戻りオニオン(ルートスタック:それまでの伝送経路を示している)内の情報を自分の固定公開鍵142aで暗号化する。その後、ルート探索要求中継部113は、暗号化された情報に自分のノードIDを付加して、新たな戻りオニオンとする。そして、ルート探索要求中継部113は、ルートスタックが更新されたルート探索パケットを、他のP2Pオニオンノード(ルート探索パケットの送信元を除く)に対して転送する。
【0059】
ルート探索要求応答部114は、P2Pオニオンルート発見プロトコルにおけるルート探索要求への応答機能を実現する。具体的には、ルート探索要求応答部114は、他のP2Pオニオンノードから送られたルート探索パケットにおける探索対象ノードとして自分が指定されていたとき、P2Pオニオンノードに対してルート通知パケットを生成する。応答する際には、ルート探索要求応答部114は、固定鍵保持部142から固定公開鍵142aを取得する。そして、ルート探索要求応答部114は、ルート探索パケット送信元の一時公開鍵を用いて、自分のノードIDと固定公開鍵142aとを暗号化してルート通知パケットに含める。ルート通知パケットは、P2Pオニオンルータ120の匿名データ送信部121を介して送信される。
【0060】
P2Pオニオンルータ120は、匿名データ送信部121、匿名データ中継部122、および匿名データ受信部123を有している。
匿名データ送信部121は、匿名通信機能における匿名通信データパケットの送信機能を実現する。具体的には、匿名データ送信部121は、アプリケーション131等からの要求に応答して匿名通信のデータパケットを生成し、送信する。データパケットには、匿名ルートを示す宛先オニオンが含まれる。宛先オニオンは、匿名経路上の各P2Pオニオンノードの公開鍵を用いて、各P2Pオニオンノードの次の伝送先の情報を暗号化したものである。
【0061】
匿名データ中継部122は、匿名通信機能における匿名通信のデータパケットの中継機能を実現する。具体的には、匿名データ中継部122は、データパケット内の宛先オニオンを自分の秘密鍵で復号し、次の伝送先を確認する。そして、匿名データ中継部122は、次の伝送先へデータパケットを転送する。
【0062】
匿名データ受信部123は、匿名通信機能における匿名通信のデータパケットの受信機能を実現する。具体的には、匿名データ受信部123は、データパケットの送信先の匿名IDが自分のIDであれば、自分宛のデータパケットであることを認識し、アプリケーション131にパケット内のデータ(ペイロード内のデータ)を渡す。なお、匿名データ受信部123は、受信した自分宛のパケットがルート通知パケットの場合、その内容から匿名ルートを認識し、匿名ルート情報保持部143に格納する。
【0063】
アプリケーション131は、ユーザの操作入力等に応じて、匿名通信を利用した各種処理を実行する。
会員証情報保持部141は、匿名通信網10に参加するための所定の手続きを行ったユーザに渡される情報である。会員証情報を有しているP2Pオニオンノードのみが匿名通信網10に参加可能となる。
【0064】
固定鍵保持部142は、予め用意された鍵情報を格納している。鍵情報は、固定公開鍵142aと固定秘密鍵142bである。固定公開鍵142aで暗号化した暗号データは、固定秘密鍵142bでのみ復号することができる。なお、固定公開鍵142aと固定秘密鍵142bとは、会員証情報の一部として供給することもできる。
【0065】
匿名ルート情報保持部143は、探索された匿名ルート情報を格納している。
一時鍵生成部151は、匿名ルート探索要求部112等からの要求に応答して、一時鍵を生成する。一時鍵は、一時公開鍵と一時秘密鍵の組である。
【0066】
匿名ID生成部152は、匿名ルート探索要求部112等からの要求に応答して、匿名IDを生成する。匿名IDは、一連の匿名通信(匿名ルート探索とその匿名ルートによる匿名通信)毎に個別に設定する識別情報である。
【0067】
以上のような構成のP2Pオニオンノード100によって、本実施の形態に係る匿名通信基盤接続認証機能、匿名経路発見機能、および匿名通信機能が実現される。なお、図5には、P2Pオニオンノード100が有する機能の構成要素を示したが、他のP2Pオニオンノード200,300,410,420,430,440,450も同様の機能を有している。
【0068】
[匿名通信基盤接続認証機能]
まず、匿名通信基盤接続認証機能について説明する。
図6は、匿名通信基盤接続認証機能を示す図である。匿名通信基盤接続認証機能は、あるP2Pオニオンノード(図6の例では、P2Pオニオンノード100)が、匿名通信網10に参加するために他のP2Pオニオンノード(図6の例では、P2Pオニオンノード200)へ接続するための機能である。なお、接続先となるP2Pオニオンノード200を、P2Pオニオンノード100から見たときの第1接続ノードと呼ぶこととする。ここでは、P2Pオニオンノード100は、接続する第1接続ノードのIPアドレスやポート番号などを最初から分かっているものとする。たとえば、任意に接続可能なP2Pオニオンノード(第1接続ノードとなり得るP2Pオニオンノード)が予め公開されているものとする。
【0069】
匿名通信網10で使用するP2Pオニオンルートなどの暗号方式にはRSA暗号を用いる。RSA暗号の公開鍵とその証明書(公開鍵証明書)、秘密鍵などは既に各P2Pオニオンノードが持っている状態を前提とする。この公開鍵証明書はこの匿名通信基盤の会員証として使用し、ノードがこの匿名通信基盤に参加するための認証に使用する。公開鍵証明書は、会員証情報保持部141に格納される。
【0070】
ここで、図6を参照して、P2Pオニオンノード100がP2Pオニオンノード200を第1接続ノードとして匿名通信網10に参加するときの匿名通信基盤接続認証機能の処理手順を説明する。このとき、匿名通信基盤接続認証機能は、P2Pオニオンノード100のP2Pオニオンプロキシ110内の匿名通信接続部111と、P2Pオニオンノード200のP2Pオニオンプロキシ210内の匿名通信接続部211との間で実行される。
【0071】
[第1の処理]P2Pオニオンノード100内の匿名通信接続部111は、第1接続ノードを決定する。ここで、第1接続ノードは、隣接するP2Pオニオンノード200であり、複数の場合もある。第1接続ノードとして指定可能なノードのIPアドレス等は、会員証情報保持部141に予め格納しておくことができる。また、第1接続ノードのIPアドレス等を、GUIによりユーザが直接入力することもできる。
【0072】
[第2の処理]新規参加ノード(P2Pオニオンノード100)のP2Pオニオン・プロキシ(P2Pオニオンプロキシ110内の匿名通信接続部111)は第1接続ノード(P2Pオニオンノード200)へ接続を開始して、自分の固定公開鍵142aと会員証141aとを渡す。
【0073】
[第3の処理]接続された第1接続ノード(P2Pオニオンノード200)のP2Pオニオン・プロキシ(P2Pオニオンプロキシ210内の匿名通信接続部211)も自分の固定公開鍵242aと会員証241aを新規参加ノード(P2Pオニオンノード100)へ渡す。
【0074】
[第4の処理]新規参加ノード(P2Pオニオンノード100)および第1接続ノード(P2Pオニオンノード200)の双方で会員証の確認を行う。失効しているなど問題があれば通信を停止する。
【0075】
[第5の処理]新規参加ノード(P2Pオニオンノード100)および第1接続ノード(P2Pオニオンノード200)で、互いに相手の固定公開鍵で暗号化したデータを交換する。そして、双方のノードが、受け取ったデータを復号して相手に返す。各P2Pオニオンノード100,200は、相手方に送信したデータが正しく復号されて戻ってくれば匿名P2Pネットワーク基盤上サービス利用資格保有者と判断する。以後、P2Pオニオンノード100は、P2Pオニオンノード200を介して、匿名通信網10に参加できる。すなわち、P2Pオニオンノード100が匿名通信基盤上のノードとなる。その結果、図2に示すような匿名通信網10が形成される。
【0076】
[匿名経路発見機能]
次に、匿名経路発見機能について、P2Pオニオンノード100からP2Pオニオンノード300に対してデータを送信する際の匿名経路探索例を用いて説明する。
【0077】
図7は、匿名経路発見機能を示す図である。匿名経路発見機能は、P2Pオニオンルート発見プロトコルを用いて、送信Peer(図7の例では、P2Pオニオンノード100)から受信Peer(図7の例では、P2Pオニオンノード300)までのルート情報を匿名的に収集し、収集したルート情報からP2Pオニオンルートを構築する機能である。ルート情報は受信Peerまでの経路を構成する各Peerの識別子と公開鍵からなる。P2Pオニオンルート発見プロトコルは以下の手順でP2Pオニオンルートを構築する。なお、匿名経路発見機能は、各P2Pオニオンノード100,200,300のP2Pオニオンプロキシ110,210,310とP2Pオニオンルータ120,220,320によって実現される。特に送信Peer(P2Pオニオンノード100)ではP2Pオニオンプロキシ110の匿名ルート探索要求部112が処理を実行し、中継Peer(P2Pオニオンノード200)ではP2Pオニオンプロキシ210のルート探索要求中継部213が処理を実行し、受信Peer(P2Pオニオンノード300)では、ルート探索要求応答部314が処理を実行する。
【0078】
ルート探索の際には、送信Peer(P2Pオニオンノード100)からルート探索パケット20がブロードキャスト送信され、そのルート探索パケット20を受信した受信Peer(P2Pオニオンノード300)からルート通知パケット30が返信される。
【0079】
図8は、ルート探索パケットのデータ構造例を示す図である。ルート探索パケット20は、メッセージフラグ21、宛先(To)22、送信元(From)23、宛先オニオン24、戻りオニオン25、および返信暗号化用一時鍵情報26で構成される。
【0080】
メッセージフラグ21は、パケットの種別を示している。ルート探索パケット20の場合には、ルート探索ブロードキャスト送信用のパケットであることを示す情報が設定される。
【0081】
宛先22には、ルート探索パケット20の宛先が設定される。宛先は、予め公開された受信Peerの識別情報(公開ID)等で示される。
送信元23には、送信peerの匿名IDが設定される。
【0082】
宛先オニオン24は、宛先までのルートを示す情報であるが、ルート探索パケット20では空欄となる。
戻りオニオン25には、ルート探索パケット20に対してルート通知パケット30を返信する際の伝送経路が、多重に暗号化されて設定される。
【0083】
返信暗号化用一時鍵情報26は、ルート通知パケット30を返信する際に使用される送信Peerの一時公開鍵と暗号化された一時秘密鍵である。
図9は、ルート通知パケットのデータ構造例を示す図である。ルート通知パケット30は、メッセージフラグ31、宛先(To)32、送信元(From)33、宛先オニオン34、戻りオニオン35、ルート情報36、および返信暗号化用一時鍵情報37で構成される。
【0084】
メッセージフラグ31は、パケットの種別を示している。ルート通知パケット30の場合には、ルート探索返信用のパケットであることを示す情報が設定される。
【0085】
宛先32には、ルート通知パケット30の宛先が設定される。宛先は、ルート探索パケット20の送信元23に設定されている送信Peerの匿名IDである。
送信元33には、受信peerの公開されたID(公開ID)が設定される。
【0086】
宛先オニオン34は、宛先までのルートを示す情報である。これは、受信Peerにおいてルート探索パケット20の戻りオニオン25を転記したものである。ただし、宛先オニオン34は、パケットが中継される毎に過去の伝送経路を示す情報が削除される。
【0087】
戻りオニオン35は、ルート通知パケット30においては空欄となる。
ルート情報36は、匿名通信の伝送ルートを示す情報である。ルート情報には、伝送ルート上の各P2PオニオンノードのノードIDと固定公開鍵とが、送信Peerの固定公開鍵で暗号化されて設定されている。また、ルート情報36には、ルート探索パケット20の返信暗号化用一時鍵情報26も含まれている。
【0088】
返信暗号化用一時鍵情報37は、ルート探索パケット20の返信暗号化用一時鍵情報26の内容がそのまま設定される。
図10は、匿名経路発見機能の処理手順を示すシーケンス図である。以下、図10に示す処理をステップ番号に沿って説明する。
【0089】
[ステップS21]送信Peer(P2Pオニオンノード100)の匿名ルート探索要求部112は、アプリケーション131からメッセージの送信依頼を受け取る。なお、P2Pオニオンノード100のユーザは、受信PeerであるP2Pオニオンノード300のノードIDを予め知っているものとする。
【0090】
[ステップS22]匿名ルート探索要求部112は、ルート探索パケット20を生成する。ルート探索パケット20には、受信Peerの公開ID、送信Peerの匿名ID、送信Peerの一時鍵(一時公開鍵と一時秘密鍵)等が含まれる。受信Peerの公開IDは、ユーザからの操作入力等に基づいて、アプリケーション131が取得する。送信Peerの匿名IDは、匿名ID生成部152から取得する。送信PeerのノードIDは、P2Pオニオンノード100の一般の通信機能(通信プロトコル)から取得する。送信Peerの一時鍵は、一時鍵生成部151から取得する。
【0091】
ルート探索パケット20の戻りオニオン25は、送信PeerのノードIDと固定公開鍵とから生成される。具体的には、匿名ルート探索要求部112は、固定鍵保持部142から固定公開鍵142aを取得する。次に、匿名ルート探索要求部112は、送信PeerのノードIDを、固定公開鍵142aで暗号化する。そして、匿名ルート探索要求部112は、暗号化された送信PeerのノードIDと、暗号化されていない送信PeerのノードIDとの組を、戻りオニオン25とする。この際、暗号化されていない送信PeerのノードIDには、戻りフラグ(本実施の形態では「^」の記号)が付加される。戻りフラグは、送信元に戻るためのルートであることを示している。
【0092】
返信暗号化用一時鍵情報26は、送信Peerの一時鍵と固定公開鍵142aとから生成される。具体的には、匿名ルート探索要求部112は、送信Peerの一時秘密鍵を固定公開鍵142aで暗号化する。そして、匿名ルート探索要求部112は、暗号化された一時秘密鍵と、暗号化されていない一時公開鍵との組を、返信暗号化用一時鍵情報26とする。
【0093】
[ステップS23]匿名ルート探索要求部112は、ルート探索パケットをブロードキャストで送信する。本実施の形態では、P2Pオニオンノード100に接続されたノードは、P2Pオニオンノード200のみであるため、一段目としては、P2Pオニオンノード200のみに転送される(図2参照)。
【0094】
[ステップS24]中継Peer(P2Pオニオンノード200)のルート探索要求中継部213は、ルート探索パケット20を受け取ると、宛先22に設定されている受信Peerの公開IDを確認する。自分宛のルート探索パケット20でなければ、パケット中継のためにステップS25に処理を進める。なお、各P2Pオニオンノードは、自身の公開IDについては、予めメモリ等(たとえば、会員証情報保持部)に保持している。
【0095】
[ステップS25]ルート探索要求中継部213は、戻りオニオンを更新する。具体的には、ルート探索要求中継部213は、受信したルート探索パケット20内の戻りオニオン25に中継Peerの固定公開鍵で暗号化する。そして、ルート探索要求中継部213は、暗号化された情報に中継PeerのノードID(戻りフラグ付き)を付加して、新たな戻りオニオン25とする。
【0096】
[ステップS26]ルート探索要求中継部213は、ルート探索パケット20をブロードキャストで送信する。本実施の形態では、P2Pオニオンノード200に対して、送信Peer(P2Pオニオンノード100)以外に4台のP2Pオニオンノード410,420,440,450が接続されているため、それら4台のP2Pオニオンノード410,420,440,450に対して、ルート探索パケット20が送信される(図2参照)。
【0097】
以後、各P2Pオニオンノード410,420,440,450において、ルート探索パケット20が中継され、最終的に受信Peer(P2Pオニオンノード300)に到達する。ルート探索パケット20を受け取った受信Peer(P2Pオニオンノード300)では、以下の処理が行われる。
【0098】
[ステップS27]ルート探索要求応答部314は、ルート探索パケット20を受け取ると、宛先22を確認する。自分宛のルート探索パケット20であれば、応答するためにステップS28に処理を進める。
【0099】
なお、各P2Pオニオンノードにおけるルート探索パケット20の宛先22の確認機能は、ルート探索要求中継部とルート探索要求応答部とが共用する機能である。すなわち、実際には、ルート探索パケット20受信時に宛先22の確認機能が動作し、自分宛であればその旨の確認結果がルート要求応答部に伝えられ、自分宛でなければその旨の確認結果がルート探索要求中継部に伝えられる。
【0100】
[ステップS28]ルート探索要求応答部314は、ルート通知パケット30を生成する。ルート通知パケット30には、ルート探索パケット20に含まれる情報以外に、受信PeerのノードIDと固定公開鍵とが含まれる。
【0101】
具体的には、ルート探索要求応答部314は、ルート探索パケット20の送信元23の情報をルート通知パケットの30の宛先32に設定する。ルート探索要求応答部314は、ルート探索パケット20の宛先22の情報を、ルート通知パケットの30の送信元33に設定する。ルート探索要求応答部314は、ルート探索パケット20の戻りオニオン25の情報を、ルート通知パケットの30の宛先オニオン34に設定する。ルート探索要求応答部314は、ルート探索パケット20の返信暗号化用一時鍵情報26内の送信Peerの一時公開鍵を用いて、受信PeerのノードIDと固定公開鍵との組を暗号化し、ルート情報36に設定する。そして、ルート探索要求応答部314は、ルート探索パケット20の返信暗号化用一時鍵情報26の情報を、ルート通知パケットの30の返信暗号化用一時鍵情報37に設定する。
【0102】
ルート探索要求応答部314は、生成したルート通知パケット30を、受信PeerのP2Pオニオンルータ320内の匿名データ送信部321に渡し、匿名通信を依頼する。
【0103】
[ステップS29]匿名データ送信部321は、ルート通知パケット30の送信先をルート探索パケット20の戻りオニオン25に基づいて判断し、その送信先へルート通知パケット30を送信する。具体的には、戻りオニオン25には、暗号化されていないノードID(隣のP2PオニオンノードのノードID)と、暗号化された情報(隣のP2Pオニオンノードに到達するまでの経路が暗号化されたもの)が含まれている。そこで、匿名データ送信部321は、暗号化されていないノードIDのP2Pオニオンノードに対して、ルート通知パケット30を送信する。
【0104】
ルート通知パケット30は、各P2Pオニオンノードにおいて中継される。P2Pオニオンノード200における中継処理を以下に示す。
[ステップS30]中継Peer(P2Pオニオンノード200)のP2Pオニオンルータ220内の匿名データ中継部222は、宛先を確認する。なお、各P2Pオニオンノードは、自身が発行した匿名IDのリストを記憶しており、その匿名IDのリストとパケットの宛先とを比較することで、そのパケットが自分宛か否かを判断することができる。他のノード宛のルート通知パケット30の場合、匿名データ中継部222は、処理をステップS31に進める。
【0105】
[ステップS31]匿名データ中継部222は、ルート通知パケット30の宛先オニオン34を更新する。具体的には、匿名データ中継部222は、宛先オニオン34に付加されている自分のノードIDを削除し、暗号化されている情報を、固定秘密鍵を用いて復号する。そして、匿名データ中継部222は、復号した情報を新たな宛先オニオン34とする。
【0106】
[ステップS32]匿名データ中継部222は、ルート通知パケット30のルート情報36を更新する。具体的には、匿名データ中継部222は、自分のノードIDと固定公開鍵とを送信Peerの一時公開鍵で暗号化し、ルート情報36にスタックする(本実施の形態では、それまでのルート情報の後に、暗号化した情報を追加格納する)。これにより、ルート情報36には、伝送経路上の各P2Pオニオンノードに関する情報(ノードIDと固定公開鍵)が経路に沿った順番で並べられていく。
【0107】
[ステップS33]匿名データ中継部222は、ルート通知パケット30の送信先を宛先オニオン34に基づいて判断し、その送信先へルート通知パケット30を送信する。具体的には、宛先オニオン34には、暗号化されていないノードID(隣のP2PオニオンノードのノードID)と、暗号化された情報(隣のP2Pオニオンノードに到達するまでの経路が暗号化されたのも)が含まれている。そこで、匿名データ中継部222は、暗号化されていないノードIDのP2Pオニオンノードに対して、ルート通知パケット30を送信する。
【0108】
これにより、ルート通知パケット30が送信PeerであるP2Pオニオンノード100に渡される。P2Pオニオンノード100では、以下の処理が行われる。
[ステップS34]送信PeerのP2Pオニオンルータ120の匿名データ受信部123は、宛先を確認する。他のノード宛のルート通知パケット30の場合、匿名データ中継部222は、処理をステップS31に進める。
【0109】
なお、各P2Pオニオンノードにおけるルート通知パケットの宛先32の確認機能は、匿名データ中継部と匿名データ受信部とが共用する機能である。すなわち、実際には、ルート通知パケット30受信時に宛先32の確認機能が動作し、自分宛であればその旨の確認結果が匿名データ受信部に伝えられ、自分宛でなければその旨の確認結果が匿名データ中継部に伝えられる。
【0110】
[ステップS35]匿名データ受信部123は、ルート通知パケット30内のルート情報36から受信Peerまでの匿名ルート情報を取得し、匿名ルート情報保持部143に格納する。具体的には、匿名データ受信部123は、返信暗号化用一時鍵情報37に含まれる暗号化された情報(一時秘密鍵を固定公開鍵142aで暗号化したもの)を、固定秘密鍵142bを用いて復号する。これにより、一時秘密鍵が取得できる。なお、固定秘密鍵142bは、固定鍵保持部142から取得できる。
【0111】
次に、匿名データ受信部123は、取得した一時秘密鍵を用いて、ルート情報36に含まれる各情報を復号する。これにより、受信Peerまでの経路上のP2PオニオンノードのノードIDのリスト(経路に沿った順番に並べられている)が得られる。匿名データ受信部123は、取得したリストを、匿名ルート情報として匿名ルート情報保持部143に格納する。
【0112】
以上のようにして、匿名経路の探索が完了する。
図11は、ルート探索パケットの伝送経路を示す図である。図11には、送信PeerであるP2Pオニオンノード100から出力されたルート探索パケット20aが内容の変更を受けながら中継され、受信PeerであるP2Pオニオンノード300に到達するまでの様子を示している。
【0113】
P2Pオニオンノード100から出力されたルート探索パケット20aを受け取ったP2Pオニオンノード200は、戻りオニオンに自分の情報を付加したルート探索パケット20b,20eを生成し、P2Pオニオンノード410やP2Pオニオンノード420等に送信する。
【0114】
P2Pオニオンノード410は、戻りオニオンに自分の情報を付加したルート探索パケット20cを生成し、P2Pオニオンノード430に対して送信する。P2Pオニオンノード430は、戻りオニオンに自分の情報を付加したルート探索パケット20dを生成し、P2Pオニオンノード300に対して送信する。
【0115】
同様に、P2Pオニオンノード420は、戻りオニオンに自分の情報を付加したルート探索パケット20fを生成し、P2Pオニオンノード430に対して送信する。P2Pオニオンノード430は、戻りオニオンに自分の情報を付加したルート探索パケット20gを生成し、P2Pオニオンノード300に対して送信する。
【0116】
このように、受信peerであるP2Pオニオンノード300には、2つのルート探索パケット20d,20gが到達する。すなわち、受信Peerには、様々な経路を通ってルート探索パケットが届く。そのため、ルート通知パケットも複数個返信される。
【0117】
ここで、P2Pオニオンノード420を経由して伝送されるルート探索パケットの内部情報について詳細に説明する。
図12は、ルート探索パケットの状態遷移状況を示す図である。なお、以下の説明において、鍵の記号の右に括弧で他の情報を示した場合、括弧内の情報をその鍵で暗号化した情報を示す。
【0118】
P2Pオニオンノード100からP2Pオニオンノード200に渡されるルート探索パケット20aには、メッセージフラグ”ルート探索ブロードキャスト”、宛先(To)”ノード「X」の公開ID”、送信元(From)”ノード「A」の匿名ID#1”、宛先オニオン(無し)、戻りオニオン”^Aid+APk(Aid)”、返信暗号化用一時鍵情報”ATPk,APk(ATSk)”が登録されている。ここで、戻りオニオンにおける「^」は戻りフラグである。Aidは、ノード「A」のノードIDである。APkは、ノード「A」の固定公開鍵である。また、返信暗号化用一時鍵情報において、ATPkはノード「A」の一時公開鍵を示し、ATSkはノード「A」の一時秘密鍵を示す。
【0119】
P2Pオニオンノード200からP2Pオニオンノード420に渡されるルート探索パケット20eでは、戻りオニオンが”^Bid+BPk[^Aid+APk(Aid)]”に変更されている。ここで、戻りオニオンにおけるBidはノード「B」のノードIDであり、BPkはノード「B」の固定公開鍵である。このように、ノード「B」の固定公開鍵でノード「A」の情報を暗号化することで、送信元が隠される。
【0120】
P2Pオニオンノード420からP2Pオニオンノード430に渡されるルート探索パケット20fでは、戻りオニオンが^Did+DPk[^Bid+BPk[^Aid+APk(Aid)]]に変更されている。ここで、戻りオニオンにおけるDidはノード「D」のノードIDであり、DPkはノード「D」の固定公開鍵である。
【0121】
P2Pオニオンノード430からP2Pオニオンノード300に渡されるルート探索パケット20gでは、戻りオニオンが^Eid+EPk[^Did+DPk[^Bid+BPk[^Aid+APk(Aid)]]]に変更されている。ここで、戻りオニオンにおけるEidはノード「E」のノードIDであり、EPkはノード「E」の固定公開鍵である。
【0122】
ルート探索パケット20gを受け取ったP2Pオニオンノード300は、宛先によって、自分宛であることを認識できる。しかし、どのような経路で送られてきたのかは、ノード名「E」のP2Pオニオンノード430から送られてきたことしか認識できない。
【0123】
次に、P2Pオニオンノード300から送信されるルート通知パケットの伝送経路について説明する。
図13は、ルート通知パケットの伝送経路を示す図である。図13には、受信PeerであるP2Pオニオンノード300から出力された2つのルート通知パケット30a,30eが内容の変更を受けながら中継され、送信PeerであるP2Pオニオンノード100に到達するまでの様子を示している。
【0124】
P2Pオニオンノード300から出力されたルート通知パケット30aを受け取ったP2Pオニオンノード430は、戻りオニオンから自分の情報を削除して、ルート情報に自分の情報を付加したルート通知パケット30bを生成し、P2Pオニオンノード410に送信する。P2Pオニオンノード410は、戻りオニオンから自分の情報を削除して、ルート情報に自分の情報を付加したルート通知パケット30cを生成し、P2Pオニオンノード200に送信する。P2Pオニオンノード200は、戻りオニオンから自分の情報を削除して、ルート情報に自分の情報を付加したルート通知パケット30dを生成し、P2Pオニオンノード100に送信する。
【0125】
また、P2Pオニオンノード300から出力されたルート通知パケット30eを受け取ったP2Pオニオンノード430は、戻りオニオンから自分の情報を削除して、ルート情報に自分の情報を付加したルート通知パケット30fを生成し、P2Pオニオンノード420に送信する。P2Pオニオンノード420は、戻りオニオンから自分の情報を削除して、ルート情報に自分の情報を付加したルート通知パケット30gを生成し、P2Pオニオンノード200に送信する。P2Pオニオンノード200は、戻りオニオンから自分の情報を削除して、ルート情報に自分の情報を付加したルート通知パケット30hを生成し、P2Pオニオンノード100に送信する。
【0126】
このように、送信peerであるP2Pオニオンノード100には、2つのルート通知パケット30d,30hが到達する。
ここで、P2Pオニオンノード420を経由して伝送されるルート探索パケットの内部情報について詳細に説明する。
【0127】
図14は、ルート通知パケットの状態遷移状況を示す図である。
P2Pオニオンノード300からP2Pオニオンノード430に渡されるルート通知パケット30eには、メッセージフラグ”ルート探索返信”、宛先(To)”ノード「A」の匿名ID#1”、送信元(From)”ノード「X」の公開ID”、宛先オニオン”^Eid+EPk[^Did+DPk[^Bid+BPk[^Aid+APk(Aid)]]]”、戻りオニオン(無し)、ルート情報”ATPk(Xid,XPk)”、返信暗号化用一時鍵情報”ATPk,APk(ATSk)”が登録されている。ここで、ルート情報におけるXidはノード「X」のノードIDであり、XPkはノード「X」の固定公開鍵である。
【0128】
P2Pオニオンノード430からP2Pオニオンノード420に渡されるルート通知パケット30fでは、宛先オニオンが^Did+DPk[^Bid+BPk[^Aid+APk(Aid)]]に変更されている。このように、ノード名「E」のP2Pオニオンノード430では、自分のノードIDを宛先オニオンから削除し、残りの情報を自分の固定秘密鍵で復号している。これにより、ルート通知パケットの伝送経路が秘匿されると共に、次の転送先(Did)のみが認識可能となる。また、ルート情報には、ATPk(Eid,EPk)がスタックされている。
【0129】
P2Pオニオンノード420からP2Pオニオンノード200に渡されるルート通知パケット30gでは、宛先オニオンが^Bid+BPk[^Aid+APk(Aid)]に変更されている。また、ルート情報には、ATPk(Did,DPk)がスタックされている。
【0130】
P2Pオニオンノード200からP2Pオニオンノード100に渡されるルート通知パケット30hでは、宛先オニオンが^Aid+APk(Aid)に変更されている。また、ルート情報には、ATPk(Bid,BPk)がスタックされている。
【0131】
ルート通知パケット30hを受け取ったP2Pオニオンノード100は、宛先によって、自分宛であることを認識できる。また、ルート情報を、一時秘密鍵で復号すれば匿名通信の伝送経路(匿名ルート)を認識できる。その結果、匿名ルート情報保持部143には、1以上の匿名ルート情報が格納される。
【0132】
図15は、匿名ルート情報保持部内のデータ構造例を示す図である。図15には、図13に示した2つの経路で返信されたルート通知パケット30d,30hに基づいて格納された匿名ルート情報143a,143bを示している。
【0133】
匿名ルート情報143aには、ルート情報として「Bid→Cid→Eid→Xid」が設定されている。これは、左側のノードIDで示されるP2Pオニオンノード程、送信PeerであるP2Pオニオンノードに近いことを示している。すなわち、ルート情報で示されるノードIDの配列の左から右に向かってパケットを転送することで、ノードID「Xid」のP2Pオニオンノード300にパケットが到達する。
【0134】
また、匿名ルート情報143aには、ルート上の各P2Pオニオンノードの固定公開鍵「BPk,CPk,EPk,XPk」が登録されている。この固定公開鍵を利用することで、オニオンルーティングを行うためのパケットの暗号化が可能となる。
【0135】
匿名ルート情報143bには、ルート情報として「Bid→Did→Eid→Xid」と、ルート上の各P2Pオニオンノードの固定公開鍵「BPk,DPk,EPk,XPk」とが登録されている。
【0136】
[匿名通信機能]
次に、取得した匿名ルート経由の匿名通信機能について説明する。
図16は、匿名通信機能を示す概念図である。図16には、P2Pオニオンノード100からP2Pオニオンノード200を経由してP2Pオニオンノード300宛のデータパケット40を送信する場合の例を示している。このとき、送信PeerであるP2Pオニオンノード100では匿名データ送信部121が処理を実行し、中継PeerであるP2Pオニオンノード200では匿名データ中継部222が処理を実行し、受信PeerであるP2Pオニオンノード300では匿名データ受信部323が処理を実行する。
【0137】
図17は、データパケットのデータ構造例を示す図である。データパケット40は、メッセージフラグ41、宛先(To)42、送信元(From)43、宛先オニオン44、戻り&バックトラックオニオン45、およびペイロード46で構成される。
【0138】
メッセージフラグ41は、パケットの種別を示している。データパケット40の場合には、データ通信用のパケット(通常のパケット)であることを示す情報が設定される。
【0139】
宛先42には、データパケット40の宛先が設定される。宛先は、受信Peerのの公開IDである。
送信元43には、送信peerの匿名IDが設定される。この匿名IDは、匿名ルート探索時とは別のものが使用される。
【0140】
宛先オニオン44は、宛先までのルートを示す情報である。これは、匿名ルート情報保持部143から取得した匿名ルート情報に基づいて生成される。宛先オニオン44は、匿名ルート上の各P2Pオニオンノードにおいて、次のノードのみが認識できるように各P2Pオニオンノードの公開鍵でルート情報を暗号化したものである。
【0141】
戻り&バックトラックオニオン45は、戻りルートおよびバックトラック処理を行うときのルートを示すルート情報である。バックトラック処理は、予定したルートでの通信ができなかった場合に、他のルート経由でパケットを伝送する処理である。
【0142】
ペイロード46は、転送すべきメッセージを受信Peerの固定公開鍵で暗号化したデータを含む実データである。
次に、匿名通信機能の処理手順について説明する。
【0143】
図18は、匿名通信機能の処理手順を示すシーケンス図である。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS41]送信PeerであるP2Pオニオンノード100のP2Pオニオンルータ120内の匿名データ送信部121は、アプリケーション131からメッセージ送信の指示を受け付ける。
【0144】
[ステップS42]匿名データ送信部121は、匿名ルート情報保持部143の中から送信相手のP2Pオニオンノードまでの匿名ルートを選択する。この際、多数の匿名ルートが有る場合、その中から所定の数の匿名ルートを選択する。たとえば、中継するノード数が少ない匿名ルートを優先的に選択する。
【0145】
[ステップS43]匿名データ送信部121は、データパケット40を生成する。データパケット40には、受信Peerの公開ID、自分の匿名ID、匿名ルート情報、メッセージデータ、自分の一時鍵(一時公開鍵と一時秘密鍵)、等の情報が含められる。
【0146】
具体的には、匿名データ送信部121は、メッセージフラグ41に、データパケットであることを示す情報を設定する。宛先42には、P2Pオニオンノード300の公開IDが設定される。送信元43には、匿名IDが設定される。設定される匿名IDは、匿名ID生成部152によって新たに生成されたものである。
【0147】
宛先オニオン44には、匿名ルート情報保持部143から選択した匿名ルート情報が設定される。この際、匿名データ送信部121は、匿名ルート情報で示されるノードIDを、宛先のノードに近い順に順次選択する。匿名データ送信部121は、最初に選択したノードID(宛先のノードID)を、次に選択したノードIDに対応する固定公開鍵で暗号する。そして、匿名データ送信部121は、順次選択するノードIDを直前に暗号化されたデータに付与し、その次に選択したノードIDに対応する固定公開鍵で全体を暗号化する。そして、匿名データ送信部121は、最後に選択されたノードIDを、直前に暗号化されたデータに付与し、宛先オニオン44のデータが生成される。これにより、データパケットを中継する各ノードは、宛先オニオン44を自分の固定秘密鍵で復号すると、次の送信先のみが認識可能となる。
【0148】
戻り&バックトラックオニオン45には、自分のノードIDと、そのノードIDを固定公開鍵142aで暗号化したデータとが設定される。ペイロード46には、アプリケーション131から渡されたメッセージデータに加え、所定の情報を受信Peerの固定公開鍵で暗号化した情報が設定される。暗号化対象の情報は、メッセージヘッダ、自分の一時公開鍵、および自分の一時秘密鍵を固定公開鍵で暗号化した情報である。なお、このときの一時公開鍵と一時秘密鍵とは、一時鍵生成部151によって新たに生成されたものである。
【0149】
[ステップS44]匿名データ送信部121は、データパケットを匿名ルートに従って送信する。この例では、P2Pオニオンノード200に送信される。
[ステップS45]P2Pオニオンノード200のP2Pオニオンルータ220内の匿名データ中継部222は、データパケット40を受け取り宛先42を確認する。他のP2Pオニオンノード宛であれば、以下の処理を行う。
【0150】
[ステップS46]匿名データ中継部222は、次のルートを選択する。具体的には、匿名データ中継部222は、宛先オニオン44から自分のノードIDを削除する。次に、匿名データ中継部222は、残りの情報を自分の固定秘密鍵で復号する。これにより、次の転送先のノードIDと匿名ルート情報との組が参照可能となる。転送先を示す1以上のノードIDの中から、次の転送先を1つ選択する。選択されなかった匿名ルート情報は、バックトラック処理に使用される。
【0151】
[ステップS47]匿名データ中継部222は、宛先オニオン44を更新する。具体的には、ステップS46で選択したノードIDと、そのノードIDに応じた匿名ルートとの組を宛先オニオン44に設定する。
【0152】
[ステップS48]匿名データ中継部222は、戻り&バックトラックオニオン45を更新する。
具体的には、匿名データ中継部222は、データパケット40の戻り&バックトラックオニオン45に、ステップS46で選択されなかったノードIDと匿名ルート情報との組をバックトラック処理用に追加する。そして、匿名データ中継部222は、戻り&バックトラックオニオン45を自分の固定公開鍵で暗号化すると共に、自分のノードIDを戻り&バックトラックオニオン45に追加する。
【0153】
なお、バックトラック処理用の匿名ルート情報が無い場合、暗号化された情報の内容が戻りオニオンのみとなるため、自分のノードIDに戻りフラグ(^)を付加する。
【0154】
[ステップS49]匿名データ中継部222は、データパケット40を送信する。データパケット40の送信先は、宛先オニオン44の情報のうち参照可能なノードIDで示されている隣接のP2Pオニオンノードである。
【0155】
[ステップS50]匿名データ中継部222は、送信したデータパケット40が次のノードに正しく伝送されたかどうかを判断する。正常に伝送されていれば、処理を終了する。伝送に失敗したときは、ステップS51に処理を進める。なお、データパケット40送信前に、送信先のノードへの通信が途絶えていることが分かっている場合、ステップS49の送信処理を行わずに処理がステップS51に進められる。
【0156】
[ステップS51]匿名データ中継部222は、別の匿名ルート情報があるか否かを判断する。送信に失敗したデータパケット40の戻り&バックトラックオニオン45に戻りフラグが設定されている場合、別の匿名ルート情報は存在しない(ステップS45で受信したデータパケット40の宛先オニオン44に1つしか匿名ルート情報が含まれておらず、そのデータパケット40の戻り&バックトラックオニオン45に戻りフラグが設定されている場合)。別の匿名ルート情報があれば、処理がステップS52に進められる。別の匿名ルート情報がない場合、処理がステップS55に進められる。
【0157】
[ステップS52]匿名データ中継部222は、データパケット40の宛先オニオン44を更新する。具体的には、匿名データ中継部222は、ステップS51で復号したデータを、宛先オニオン44に設定する。
【0158】
[ステップS53]匿名データ中継部222は、データパケット40の戻り&バックトラックオニオン45を更新する。具体的には、匿名データ中継部222は、データパケット40の戻り&バックトラックオニオン45の内容を空(null)にする。
【0159】
[ステップS54]匿名データ中継部222は、データパケット40を送信する。このときのデータパケット40の送信先は、ステップS51で復号された戻りオニオンで認識可能なノードIDで示されるP2Pオニオンノードである。
【0160】
[ステップS55]匿名データ中継部222は、別の匿名ルート情報が無い場合、データパケットをマルチキャストで、そのとき認識している全ての接続先に送信する。
【0161】
[ステップS56]データパケット40が受信PeerであるP2Pオニオンノード300に到達すると、P2Pオニオンノード300のP2Pオニオンルータ320内の匿名データ受信部323は宛先を確認する。自分宛のデータパケット40であれば、処理がステップS57に進められる。
【0162】
[ステップS57]匿名データ受信部323は、自分の固定秘密鍵でペイロード46を復号する。
[ステップS58]匿名データ受信部323は、復号されたメッセージヘッダ、送信Peerの鍵情報(一時公開鍵と暗号化された一時秘密鍵)、およびメッセージをアプリケーションに渡す。
【0163】
このようにして、データパケット40が受信Peerに送信される。受信Peerから返信手順は、ルート通知パケット30の送信手順と同様である。
図19は、データパケットの伝送経路を示す図である。図19に示すように、P2Pオニオンノード100から出力されたデータパケット40aは、ルート探索時に発見された匿名ルートの伝送経路が存続していれば、中継Peerである複数のP2Pオニオンノード200,410,430で内容の変更を受けながら、受信PeerであるP2Pオニオンノード300に渡される。
【0164】
データパケット40aを受け取ったP2Pオニオンノード200は、宛先オニオンと戻り&バックトラックオニオンとを更新したデータパケット40bを、P2Pオニオンノード410に送信する。データパケット40bを受け取ったP2Pオニオンノード410は、宛先オニオンと戻り&バックトラックオニオンとを更新したデータパケット40cを、P2Pオニオンノード430に送信する。データパケット40cを受け取ったP2Pオニオンノード430は、宛先オニオンと戻り&バックトラックオニオンとを更新したデータパケット40dを、P2Pオニオンノード300に送信する。
【0165】
図20は、データパケットの状態遷移状況を示す図である。P2Pオニオンノード100から出力されるデータパケット40aは、メッセージフラグ”通常”、宛先(To)”ノード「X」の公開ID、送信元(From)”ノード「A」の匿名ID#2、宛先オニオン”Bid+BPk[Cid+CPk(Eid+EPk(Xid)),Did+DPk(Eid+EPk(Xid))]”、戻り&バックトラックオニオン”^Aid+APk(Aid)”、ペイロード”XPk[メッセージヘッダ、ATPk,APk(ATSk)、メッセージデータ]”が設定されている。
【0166】
P2Pオニオンノード200からP2Pオニオンノード410に渡されるデータパケット40bでは、宛先オニオンが”Cid+CPk(Eid+EPk(Xid))”に変更され、戻り&バックトラックオニオンが”Bid+BPk[^Aid+APk(Aid),Did+DPk(Eid+EPk(Xid))]”に変更されている。
【0167】
P2Pオニオンノード410からP2Pオニオンノード430に渡されるデータパケット40cでは、宛先オニオンが”Eid+EPk(Xid)”に変更され、戻り&バックトラックオニオンが”Cid+CPk[Bid+BPk[^Aid+APk(Aid),Did+DPk(Eid+EPk(Xid))]]”に変更されている。
【0168】
P2Pオニオンノード430からP2Pオニオンノード300に渡されるデータパケット40dでは、宛先オニオンが”Xid”に変更され、戻り&バックトラックオニオンが”Eid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid),Did+DPk(Eid+EPk(Xid))]]]”に変更されている。
【0169】
このように、中継される毎に、宛先オニオンの暗号化された情報が1回ずつ復号され、その都度、次の転送先が認識可能となる。また、戻り&バックトラックオニオンには、中継される毎に暗号化され、中継したP2PオニオンノードのノードIDが付加される。
【0170】
ここで、P2Pオニオンノード410からP2Pオニオンノード430へのデータパケット40cの送信に失敗した場合を考える。そのとき、P2Pオニオンノード410では、バックトラック処理が行われる。
【0171】
図21は、バックトラック処理におけるデータパケットの伝送経路を示す図である。P2Pオニオンノード410においてデータパケット40cの送信に失敗すると、P2Pオニオンノード410からP2Pオニオンノード200に対してデータパケット40eが送信される。
【0172】
P2Pオニオンノード200は、別ルートであるP2Pオニオンノード420に対してデータパケット40fを送信する。P2Pオニオンノード420はP2Pオニオンノード430に対してデータパケット40gを送信する。P2Pオニオンノード430は、P2Pオニオンノード300に対してデータパケット40hを送信する。
【0173】
図22は、バックトラック転送時のデータパケットの状態遷移状況を示す図である。P2Pオニオンノード410から送信されるデータパケット40eは、メッセージフラグ”通常”、宛先(To)”ノード「X」の公開ID、送信元(From)”ノード「A」の匿名ID#2、宛先オニオン”Bid+BPk[^Aid+APk(Aid),Did+DPk(Eid+EPk(Xid))]”、戻り&バックトラックオニオン”null”、ペイロード“XPk[メッセージヘッダ、ATPk,APk(ATSk)、メッセージデータ]”が設定されている。
【0174】
この例では、宛先オニオンには、別の匿名ルート情報と、戻り匿名ルート情報とが含まれている。そこで、P2Pオニオンノード200は、別の匿名ルート情報を以降の宛先オニオンとし、戻り匿名ルート情報は戻り&バックトラックオニオンに設定する。
【0175】
P2Pオニオンノード200からP2Pオニオンノード420に渡されるデータパケット40fでは、宛先オニオンがDid+DPk(Eid+EPk(Xid))”に変更され、戻り&バックトラックオニオンが”^Bid+BPk[^Aid+APk(Aid)]”に変更されている。戻り&バックトラックオニオンは、内容が戻り匿名ルート情報のみであるため戻りフラグが設定されている。
【0176】
P2Pオニオンノード420からP2Pオニオンノード430に渡されるデータパケット40gでは、宛先オニオンが”Eid+EPk(Xid)”に変更され、戻り&バックトラックオニオンが”^Cid+CPk[^Bid+BPk[^Aid+APk(Aid),]]”に変更されている。
【0177】
P2Pオニオンノード430からP2Pオニオンノード300に渡されるデータパケット40hでは、宛先オニオンが”Xid”に変更され、戻り&バックトラックオニオンが”^Eid+EPk[^Cid+CPk[^Bid+BPk[^Aid+APk(Aid)]]]”に変更されている。
【0178】
このようにして、バックトラック処理により、最初に選択した匿名ルートでのパケット転送に失敗しても、別の匿名ルート経由でデータパケットを受信Peerに届けることができる。このようなバックトラック処理は再帰的に行われる。すなわち、バックトラックによる伝送にも失敗したときは、さらに別の匿名ルートに基づいてデータパケットのバックトラック処理が行われる。
【0179】
ここで、データパケットの宛先オニオンに設定されている全ての匿名ルートにおいて伝送が失敗したときには、マルチキャストでデータパケットが転送される。なお、未送信の匿名ルートの存在の有無は、戻り&バックトラックオニオン45の戻りフラグの有無で判断できる。
【0180】
たとえば、P2Pオニオンノード420からP2Pオニオンノード430へのデータパケット40gの送信に失敗したとき、P2Pオニオンノード420では、データパケット40gの戻り&バックトラックオニオン45の戻りフラグの有無を判断する。戻りフラグが設定されている場合、他の匿名ルートはない。従って、P2Pオニオンノード420は、マルチキャスト送信が必要と判断する。
【0181】
図23は、マルチキャストにおけるデータパケットの伝送経路を示す図である。P2Pオニオンノード430においてデータパケット40gの送信に失敗すると、P2Pオニオンノード420からそのとき接続されている他のP2Pオニオンノード460(ノード名「F」)に対してデータパケット40iが送信される。P2Pオニオンノード460からP2Pオニオンノード300までの経路が存在していれば、データパケットがP2Pオニオンノード300に伝送される。この場合でも、送信Peerや受信Peerの匿名性は保たれる。
【0182】
以上のようにして、受信Peerは送信peerの匿名性を保持したまま、受信メッセージに対する返信を行うことができる。返信経路は戻り&バックトラックオニオンに保持されるため、受信Peerは送信peerに対して、戻りオニオン(戻りフラグ「^」の設定された匿名ルート情報)を用いてオニオンルーティングで返信できる。返信時のオニオンルーティングは、返信用P2Pオニオンルートが経路を1本しか持たないことを除いて送信と同じである。つまり、P2Pオニオンルートを利用したルーティングに失敗した場合には、P2Pマルチキャスト機能によって返信メッセージを到達させる。この場合も匿名性は担保される。
【0183】
[匿名掲示板への適用例]
上記のような匿名通信網を電子掲示板に適用すれば、不特定多数のユーザ間の匿名の情報交換を安全に行うことができる。
【0184】
図24は、匿名掲示板に適用した匿名通信網の構成例を示す図である。図24の例では、匿名通信網10内のP2Pオニオンノード300にデータベース(DB)360が接続され、掲示板システムが構築されている。この掲示板システムは、一般に公開された公開DBである。この場合、P2Pオニオンノード300の公開IDは、雑誌やインターネットのウェブページ等で公開されている。
【0185】
このように、匿名掲示板機能では、匿名通信網10上のP2Pオニオンノード300に匿名掲示板(公開DB)を実装し、他のP2Pオニオンノードから、匿名掲示板(公開DB)に投稿された情報を利用する。
【0186】
掲示板(公開DB)を利用するP2Pオニオンノードは、主に以下の機能を実現する。
1.匿名の掲示板(公開DB)に投稿できる。
2.匿名の掲示板(公開DB)の投稿データを検索できる。
3.匿名の掲示板(公開DB)に投稿された情報に返信できる。
【0187】
掲示板(公開DB)は、匿名通信網10上の一P2Pオニオンノード300上で動作するアプリケーションとして実装される。各P2Pオニオンノードには、この掲示板(公開DB)ノード(P2Pオニオンノード300)に上記3つの機能を行うためのメッセージを匿名通信網10経由で通知するための機能が実装される。掲示板(公開DB)ノード(P2Pオニオンノード300)には、匿名通信網10経由で通知されたメッセージに応答した投稿データの格納、投稿データの検索、検索結果の返信機能が実現される。
【0188】
以下に匿名掲示板が実現する機能を示す。
1.投稿された書き込みが誰によってなされたか探知できない(投稿者の秘匿機能)。
2.投稿された情報を指定時間経過すると自動的に消去する。
3.検索が誰によってなされたか探知できない(検索者の秘匿機能)。
4.検索したときに探している投稿データがなかった場合でも目的の投稿データが後から投稿された場合に通知されるよう予約可能とする。
5.検索予約は指定時間経過すると自動的にキャンセルされる。
【0189】
なお、DB360としては、たとえば、XSR(XML Service Registry)を利用して実現できる。XSRは株式会社富士通プライムソフトテクノロジが所有するオブジェクトデータベース技術である。本ソフトの機能は以下の通りである。
【0190】
・UP機能:オブジェクトを保存する機能。
オブジェクトの保存期間に有効期限が設定できる。有効期限が切れたオブジェクトはXSRから自動的に消去される。
【0191】
・LOOKUP機能:ユーザが探しているオブジェクトを検索できる。
検索を予約する機能を有する。
・RESPONSE機能:予約された検索にマッチする情報があればユーザに非同期に通知する。
【0192】
また、メッセージ間のアンリンカビリティを高めるために、Peerノードの匿名識別子、公開鍵の使い捨て管理を以下の様に行う。
1.秘密鍵とランダムな数値を使用して匿名識別子を生成する。その秘密鍵をもつ自分だけがその匿名識別子に対して自分の識別子である確認ができる。
2.一時公開鍵・一時秘密鍵ペアを生成する。その一時秘密鍵を会員証の公開鍵で暗号化し、一時公開鍵といっしょに返信情報としてメッセージに付加する。返信者はその一時公開鍵で返信メッセージを暗号化し返信する。返信された暗号化データは会員証の秘密鍵を持つ自分だけが復号できる。
3.緊急事態において匿名識別子の匿名性を暴くには、上記「匿名通信基盤接続認証機能」での認証局へ匿名識別子(生成に使用したランダム数を含む)を持込み、登録されている全ての秘密鍵総当たりで匿名識別子に含まれるランダム数を使用して匿名識別子を生成し、一致する秘密鍵を特定する。
【0193】
以上のような構成の匿名掲示板を匿名通信網10上に設置することで、匿名のメッセージ交換が可能となる。
たとえば、ユーザは、P2Pオニオンノード100を用いてP2Pオニオンノード300に投稿データを含むデータパケット51を送信し、DB360に投稿データを登録することができる。投稿データは、たとえば、P2Pオニオンノード420を用いて、P2Pオニオンノード300に検索要求を含むデータパケット52を送信し、DB360に格納されている投稿データの検索行うことができる。
【0194】
P2Pオニオンノード300は検索要求に応じてDB360内の投稿データを検索し、検索結果を取得する。そして、P2Pオニオンノード300は、P2Pオニオンノード420に対して検索結果を含むデータパケット53を送信する。これにより、P2Pオニオンノード420に検索結果が渡される。
【0195】
なお、検索結果には、掲示板ノード(P2Pオニオンノード300)から投稿者のP2Pオニオンノードまでの匿名ルート情報(戻りオニオン)や、投稿者のP2Pオニオンノード用の一時公開鍵などが含められる。これにより、検索要求を出力したP2Pオニオンノードにおいて、投稿者のP2Pオニオンノードまでの匿名ルート情報を得ることができると共に、投稿者宛のメッセージを投稿者のP2Pオニオンノードでのみ復号可能な形式で暗号化することができる。
【0196】
図25は、投稿データを含むデータパケットの例を示す図である。P2Pオニオンノード100で生成されるデータパケット51aは、メッセージフラグ”通常”、宛先(To)”ノード「X」の公開ID、送信元(From)”ノード「A」の匿名ID#3”、宛先オニオン”Bid+BPk[Cid+CPk(Eid+EPk(Xid))]”、戻り&バックトラックオニオン”^Aid+APk(Aid)”、ペイロード”XPk[メッセージヘッダ、ATPk,APk(ATSk)、メッセージデータ]”が設定されている。なお、この例では説明を簡単にするために、宛先オニオンには1つの匿名ルート情報のみが設定されているものとする。
【0197】
このようなデータパケット51bが伝送途中で一度も送信に失敗せずにP2Pオニオンノード300に到達したとき、そのときのデータパケット51bでは、宛先オニオンが”Xid”に変更され、戻り&バックトラックオニオンが”Eid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid)]]]”に変更される。
【0198】
このようなデータパケット51aを受け取ったP2Pオニオンノード300は、DB360に所定の情報を格納する。
図26は、DB内のデータ構造例を示す図である。DB360内には、匿名ID、戻りオニオン、返信暗号化用一時鍵情報、及びメッセージデータの項目が、互いに関連付けて登録されている。たとえば、データパケット51bに基づいて、匿名IDの項目には、”ノード「A」の匿名ID#3”が登録されている。戻りオニオンには、”Eid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid)]]]”が登録されている。返信暗号化用一時鍵情報には、”ATPk,APk(ATSk)”が登録されている。メッセージデータの項目には、”投稿リクエスト、アップ日時、実データなどの情報が登録されている。
【0199】
その後、P2Pオニオンノード420からP2Pオニオンノード300に対して、検索要求を含むデータパケット52が送信される。
図27は、検索要求を含むデータパケットの例を示す図である。P2Pオニオンノード420で生成されるデータパケット52aは、メッセージフラグ”通常”、宛先(To)”ノード「X」の公開ID、送信元(From)”ノード「D」の匿名ID#4”、宛先オニオン”Eid+EPk(Xid)”、戻り&バックトラックオニオン”^Did+DPk(Did)”、ペイロード”XPk[メッセージヘッダ、DTPk,DPk(DTSk)、メッセージデータ]”が設定されている。
【0200】
このようなデータパケット52aが伝送途中で一度も送信に失敗せずにP2Pオニオンノード300に到達したとき、そのときのデータパケット52bでは、宛先オニオンが”Xid”に変更され、戻り&バックトラックオニオンが”Eid+EPk[^Did+DPk(Did)]”に変更される。ここで、ペイロード内のデータは「メッセージヘッダ、DPk(DTSk)、DTPk、メッセージデータ(検索リクエスト、アップ日時、・・・)」である。
【0201】
データパケット52bを受け取ったP2Pオニオンノード300は、検索リクエスト(検索キーワード等が示される)の指示に従ってDB360を検索する。ここで、検索結果としてデータパケット51bによって投稿された投稿データが得られたものとする。すると、P2Pオニオンノード300は、P2Pオニオンノード420に対して、検索結果を含むデータパケット53を送信する。
【0202】
図28は、検索結果を含むデータパケットの例を示す図である。P2Pオニオンノード300で生成されるデータパケット53aは、メッセージフラグ”リクエストレスポンス”、宛先(To)”ノード「D」の匿名ID#4”、送信元(From)”ノード「X」の公開ID”、宛先オニオン”Eid+EPk[^Did+DPk(Did)]”、戻り&バックトラックオニオン”^Xid+XPk(Xid)”、ペイロード”XPk[メッセージヘッダ、DTPk,DPk(DTSk)、メッセージデータ]”が設定されている。
【0203】
このようなデータパケット53aが伝送途中で一度も送信に失敗せずにP2Pオニオンノード300に到達したとき、そのときのデータパケット53bでは、宛先オニオンが” ^Did+DPk(Did)”に変更され、戻り&バックトラックオニオンが”Eid+EPk[^Xid+XPk(Xid)]”に変更される。ここで、ペイロード内のデータは「メッセージヘッダ、DPk(DTSk)、DTPk[ノード「A」匿名ID#3、メッセージデータ(検索リクエスト、アップ日時、・・・)、Eid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid)]]]]」である。DPk(DTSk)は、P2Pオニオンノード420の一時復号鍵を固定公開鍵で暗号化したものである。メッセージデータは、検索結果であり、この例では、データパケット51aに含まれる実データである。「Eid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid)]]]」は、P2Pオニオンノード300からP2Pオニオンノード100への戻りオニオンである。また、ノード「A」匿名ID#3、メッセージデータ、およびEid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid)]](戻りオニオン)は、P2Pオニオンノード420の一時公開鍵(DTPk)で暗号化されている。
【0204】
ペイロード内の暗号化されたデータを、P2Pオニオンノード420の一時秘密鍵(DTSk)で復号することで、検索結果を参照できる。P2Pオニオンノード420を使用しているユーザは、検索結果を参照することで、投稿データの内容を確認する。投稿内容に対して応答する場合、ユーザは、P2Pオニオンノード420に対して返信メッセージを入力し、その後、返信の指示を入力する。
【0205】
すると、P2Pオニオンノード420は、投稿データへの返信メッセージを含むデータパケットをP2Pオニオンノード430に対して送信する。
図29は、返信メッセージを含むデータパケットの例を示す図である。P2Pオニオンノード420で生成されるデータパケット61は、メッセージフラグ”返信”、宛先(To)”ノード「A」の匿名ID#3”、送信元”ノード「D」の匿名ID5”、宛先オニオン”Eid+EPk[^Xid+XPk(Xid)]、Eid+EPk[Cid+CPk[Bid+BPk[^Aid+APk(Aid)]]]”、戻り&バックトラックオニオン”^Did+DPk(Did)”、ペイロード”メッセージヘッダ、DTPk、DPk(DTSk)、ATPk(返信メッセージ)、APk(ATSk)”が設定されている。
【0206】
ここで、宛先オニオンは、P2Pオニオンノード420からP2Pオニオンノード300までの戻りオニオンに、P2Pオニオンノード300からP2Pオニオンノード100までの戻りオニオンを繋いだものである。中継Peerとなる各P2Pオニオンノードは、前に繋げられている戻りオニオンから順に処理する。これにより、P2Pオニオンノード420からP2Pオニオンノード100までの匿名ルート情報が、宛先オニオンに設定されることとなる。
【0207】
また、ペイロード内の「DTPk、DPk(DTSk)」は、返信暗号化用一時鍵情報であり、P2Pオニオンノード100からP2Pオニオンノード420への返信用に利用される。「ATPk(返信メッセージ)」は、P2Pオニオンノード100宛の返信メッセージをP2Pオニオンノード100の一時公開鍵で暗号化していることを示している。
【0208】
図30は、返信内容を含むデータパケットの伝送経路を示す図である。P2Pオニオンノード420からP2Pオニオンノード430に送信されたデータパケット61は、宛先オニオンや戻り&バックトラックオニオンの更新を受けながら中継される。P2Pオニオンノード430は、データパケット62をP2Pオニオンノード300に送信する。P2Pオニオンノード300は、データパケット63をP2Pオニオンノード430に送信する。P2Pオニオンノード430は、データパケット64をP2Pオニオンノード410に送信する。P2Pオニオンノード410は、データパケット65をP2Pオニオンノード200に送信する。P2Pオニオンノード200は、データパケット66をP2Pオニオンノード100に送信する。
【0209】
このようにして、掲示板を介したユーザ間の互いに匿名の通信が可能となる。しかも、本発明を適用した掲示板を利用することにより、不特定多数のユーザ間で匿名の情報交換が行える。さらには、ノードIDや一時公開鍵が使い捨てであり、所定の手続き毎に別の値が使用されるため、同一投稿者が掲示板へ投稿した複数のメッセージに関して、投稿者の同一性を隠しておくことができる。
【0210】
このようなシステムを利用すれば、個人的な情報を交換しても、その情報に対応する個人を悪意のある第三者から隠すことができる。そのため、このような匿名掲示板の技術は、ネットワーク技術を活用した予防医療・ヘルスケアサービス(HCS)に応用することができる。HCS事業を実現するためには受益者本人の体調、生理データ等、秘匿の必要性の高いデータに対するセキュリティが非常に重要な要因となる。そこで、HCSに上記匿名掲示板を適用すると、ユーザの生理データを、P2Pオニオンノード100を用いて匿名のままP2Pオニオンノード300に登録することができる。そして、登録された生理データを他のP2Pオニオンノード420を使用する医者が参照し、生活習慣のアドバイス等をユーザに対して匿名のまま送信することができる。
【0211】
以上説明したように、本発明の実施の形態によれば、データ送信前に、送信相手までのルートを探索し、そのルート経由で匿名通信を行うための情報(各ノードの公開鍵)を収集する。そのため、ネットワーク構成が動的に変更する場合でも、匿名通信が可能となる。その結果、P2Pネットワークシステムなどの不安定なネットワークシステムにおいて、データを送受信する場合に、送信経路を動的に検索できると共に、送受信者の匿名性を守ることができるという効果を奏する。
【0212】
しかも、匿名通信を行う際のデータパケットには、転送中の匿名ルートとは別の匿名ルートの情報が含まれているため、送信に失敗した場合には、別の匿名ルート経由でデータを伝送させることができる。これにより、データ伝送の確実性が増す。
【0213】
また、データパケットに含まれる全ての匿名ルート経由でのデータ伝送に失敗した場合には、マルチキャストで他のルート経由でのデータ送信を試みるようにした。そのため、ルート探索時には存在していないが、データ送信時には存在している別のルートが有る場合、そのルート経由で宛先のP2Pオニオンノードにパケットを送信することが可能となる。
【0214】
さらに、通信の際の匿名性を高めるために、他のP2Pオニオンノードに通知する公開鍵を一時公開鍵とし、所定の通信(たとえば、要求の送信とその要求に対する応答)毎に一時公開鍵を作り直すようにしたため、公開鍵の内容を監視しても、複数のパケットが同一のP2Pオニオンノードから出力されたか否かを同定することができない。
【0215】
さらに、匿名IDによって自分宛のパケットであるか否かを判断し、しかも匿名IDを、所定の通信(たとえば、要求の送信とその要求に対する応答)毎に作り直すようにしたため、これらの識別情報によってP2Pオニオンノードを同定することはできない。
【0216】
なお、上記の説明では返信暗号化用一時鍵情報の中に、固定公開鍵で暗号化された送信Peerの一時秘密鍵を含めているが、これは、一時公開鍵と一時秘密鍵との組を送信Peerで管理せずにするための処理である。
【0217】
また、上記の処理機能はコンピュータによって実現することができ、その場合、P2Pオニオンノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
【0218】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0219】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0220】
(付記1) 送信元を隠した状態で宛先までの伝送経路探索処理をコンピュータで実行するための匿名ルート探索要求方法において、
宛先識別子で前記宛先を指定した経路探索要求を受け取ると、自分の識別情報である自ノード識別子を自分のみが復号可能な形式で暗号化して返信用匿名ルート情報とし、
任意に生成した匿名識別子、前記宛先識別子、前記返信用匿名ルート情報、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを生成し、
前記ルート探索パケットをブロードキャストで送信する、
ことを特徴とする匿名ルート探索要求方法。
【0221】
(付記2) 固定公開鍵と固定秘密鍵との組が予め用意されており、前記固定公開鍵を用いて前記自ノード識別子の暗号化を行うことを特徴とする付記1記載の匿名ルート探索要求方法。
【0222】
(付記3) 前記経路探索要求を受け取る毎に一時公開鍵と一時秘密鍵との組を生成し、生成した前記一時公開鍵を返信データ暗号化用の前記送信元公開鍵とすることを特徴とする付記1記載の匿名ルート探索要求方法。
【0223】
(付記4) 固定公開鍵と固定秘密鍵との組が予め用意されており、前記一時秘密鍵を前記固定公開鍵で暗号化し、前記ルート探索パケットに含めることを特徴とする付記3記載の匿名ルート探索要求方法。
【0224】
(付記5) 前記ルート探索パケットに対する応答として、前記コンピュータから前記宛先までのルート上の各ノードのノード識別子と公開鍵との組を前記送信元公開鍵で暗号化したルート情報を含むルート通知パケットを受け取ると、前記ルート情報を前記送信元公開鍵に対応する送信元秘密鍵で復号し、
復号により得られた前記ノード識別子と前記公開鍵との組を記録装置に格納する、
ことを特徴とする付記1記載の匿名ルート探索要求方法。
【0225】
(付記6) 送信元が隠された伝送経路探索要求をコンピュータで中継するための匿名ルート探索要求中継方法において、
前記送信元の匿名識別子、探索相手を指定する宛先識別子、前記送信元から前記コンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、前記返信用匿名ルート情報と前記隣接ノード識別子とを自分のみが復号可能な形式で暗号化し、
前記ルート探索パケットに自分の識別情報である自ノード識別子を追加し、
前記ルート探索パケットをブロードキャストで送信する、
ことを特徴とする匿名ルート探索要求中継方法。
【0226】
(付記7) 前記ブロードキャストでの送信は、前記ルート探索パケットが入力された伝送路以外の伝送路に対して行うことを特徴とする付記6記載の匿名ルート探索要求中継方法。
【0227】
(付記8) 匿名ルート経由の匿名通信をコンピュータで中継するための匿名データ中継方法において、
前記匿名ルート上の次の送信先を示す次ノード識別子と次の送信先から宛先までの匿名ルート情報とが前記コンピュータの公開鍵で暗号化された宛先匿名ルート情報、前記コンピュータから送信元までの伝送ルートを示す戻り匿名ルート情報、および前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子を含むデータパケットを受け取ると、前記宛先匿名ルート情報を前記公開鍵に対応する秘密鍵で復号して、前記次ノード識別子を判別するとともに、復号されたデータを新たな前記宛先匿名ルート情報として前記データパケットに設定し、
前記戻り匿名ルート情報と前記隣接ノード識別子とを前記公開鍵で暗号化して新たな前記戻り匿名ルート情報とし、
前記データパケットに前記コンピュータの自ノード識別子を追加し、
前記次ノード識別子で示されるノードに対して、前記データパケットを送信する、
ことを特徴とする匿名データ中継方法。
【0228】
(付記9) 前記宛先匿名ルート情報の復号により隣接ノードのノード識別子と前記匿名ルート情報との組が複数得られたとき、1つの組を新たな前記宛先ルート情報とし、他の組をバックトラック匿名ルート情報として前記戻り匿名ルート情報と合わせて前記公開鍵で暗号化し、暗号化されたデータに前記コンピュータの自ノード識別子を付加して新たな前記戻り匿名ルート情報とすることを特徴とする付記8記載の匿名データ中継方法。
【0229】
(付記10) 前記データパケットの送信に失敗した場合、前記データパケットの前記宛先匿名ルート情報を前記データパケット受信時の前記戻り匿名ルート情報に置き換えて、前記データパケットを送信してきたノードへ前記データパケットを返送することを特徴とする付記8記載の匿名データ中継方法。
【0230】
(付記11) 返送された前記データパケットの前記宛先匿名ルート情報を復号したとき、前記バックトラック匿名ルート情報が含まれていた場合、前記バックトラック匿名ルート情報で示されるノード識別子を前記次ノード識別子とすることを特徴とする付記10記載の匿名データ中継方法。
【0231】
(付記12) 前記データパケットの送信に失敗した場合、前記宛先匿名ルート情報と前記戻り匿名ルート情報とのいずれにも他の匿名ルート情報がなければ、前記コンピュータに隣接している各ノードに、前記データパケットをマルチキャストで送信することを特徴とする付記8記載の匿名データ中継方法。
【0232】
(付記13) 送信元が隠された伝送経路探索要求に対して宛先となるコンピュータで応答するための匿名ルート探索要求応答方法において、
前記送信元の匿名識別子、前記コンピュータ宛のパケットを示す宛先識別子、前記送信元から前記コンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、自分の識別情報である自ノード識別子と、自ノード宛て情報の暗号化用の受信ノード公開鍵とを前記送信元公開鍵で暗号化してルート情報とし、
前記匿名識別子でルート通知先が指定され、前記返信用匿名ルート情報、前記ルート情報、および前記送信元公開鍵を含むルート通知パケットを生成し、
前記隣接ノード識別子で示されるノードに対して前記ルート通知パケットを送信する、
ことを特徴とする匿名ルート探索要求応答方法。
【0233】
(付記14) 宛先までの伝送経路を送信元を隠して探索するための匿名ルート探索要求プログラムにおいて、
コンピュータに、
宛先識別子で前記宛先を指定した経路探索要求を受け取ると、自分の識別情報である自ノード識別子を自分のみが復号可能な形式で暗号化して返信用匿名ルート情報とし、
任意に生成した匿名識別子、前記宛先識別子、前記返信用匿名ルート情報、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを生成し、
前記ルート探索パケットをブロードキャストで送信する、
処理を実行させることを特徴とする匿名ルート探索要求プログラム。
【0234】
(付記15) 送信元が隠された伝送経路探索要求を中継するための匿名ルート探索要求中継プログラムにおいて、
コンピュータに、
前記送信元の匿名識別子、探索相手を指定する宛先識別子、前記送信元から前記コンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、前記返信用匿名ルート情報と前記隣接ノード識別子とを自分のみが復号可能な形式で暗号化し、
前記ルート探索パケットに自分の識別情報である自ノード識別子を追加し、
前記ルート探索パケットをブロードキャストで送信する、
処理を実行させることを特徴とする匿名ルート探索要求中継プログラム。
【0235】
(付記16) 匿名ルート経由の匿名通信を中継するための匿名データ中継プログラムにおいて、
コンピュータに、
前記匿名ルート上の次の送信先を示す次ノード識別子と次の送信先から宛先までの匿名ルート情報とが前記コンピュータの公開鍵で暗号化された宛先匿名ルート情報、前記コンピュータから送信元までの伝送ルートを示す戻り匿名ルート情報、および前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子を含むデータパケットを受け取ると、前記宛先匿名ルート情報を前記公開鍵に対応する秘密鍵で復号して、前記次ノード識別子を判別するとともに、復号されたデータを新たな前記宛先匿名ルート情報として前記データパケットに設定し、
前記戻り匿名ルート情報と前記隣接ノード識別子とを前記公開鍵で暗号化して新たな前記戻り匿名ルート情報とし、
前記データパケットに前記コンピュータの自ノード識別子を追加し、
前記次ノード識別子で示されるノードに対して、前記データパケットを送信する、
処理を実行させることを特徴とする匿名データ中継プログラム。
【0236】
(付記17) 送信元が隠された伝送経路探索要求に対して宛先となるコンピュータで応答するための匿名ルート探索要求応答プログラムにおいて、
コンピュータに、
前記送信元の匿名識別子、前記コンピュータ宛のパケットを示す宛先識別子、前記送信元から前記コンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、自分の識別情報である自ノード識別子と、自ノード宛て情報の暗号化用の受信ノード公開鍵とを前記送信元公開鍵で暗号化してルート情報とし、
前記匿名識別子でルート通知先が指定され、前記返信用匿名ルート情報、前記ルート情報、および前記送信元公開鍵を含むルート通知パケットを生成し、
前記隣接ノード識別子で示されるノードに対して前記ルート通知パケットを送信する、
処理を実行させることを特徴とする匿名ルート探索要求応答プログラム。
【0237】
(付記18) 宛先までの伝送経路を送信元を隠して探索する匿名ルート探索要求装置において、
宛先識別子で前記宛先を指定した経路探索要求を受け取ると、自分の識別情報である自ノード識別子を自分のみが復号可能な形式で暗号化して返信用匿名ルート情報を生成する返信用匿名ルート情報生成手段と、
任意に生成した匿名識別子、前記宛先識別子、前記返信用匿名ルート情報、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを生成するルート探索パケット生成手段と、
前記ルート探索パケットをブロードキャストで送信する送信手段と、
を有することを特徴とする匿名ルート探索要求装置。
【0238】
(付記19) 送信元が隠された伝送経路探索要求を中継するための匿名ルート探索要求中継装置において、
前記送信元の匿名識別子、探索相手を指定する宛先識別子、前記送信元から自装置までの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、前記返信用匿名ルート情報と前記隣接ノード識別子とを自分のみが復号可能な形式で暗号化する暗号化手段と、
前記ルート探索パケットに自分の識別情報である自ノード識別子を追加する自ノード識別子追加手段と、
前記ルート探索パケットをブロードキャストで送信する送信手段と、
を有することを特徴とする匿名ルート探索要求中継装置。
【0239】
(付記20) 送信元が隠された伝送経路探索要求に対して応答するための匿名ルート探索要求応答装置において、
前記送信元の匿名識別子、自装置宛のパケットを示す宛先識別子、前記送信元から自装置までの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、自分の識別情報である自ノード識別子と、自ノード宛て情報の暗号化用の受信ノード公開鍵とを前記送信元公開鍵で暗号化してルート情報を生成するルート情報生成手段と、
前記匿名識別子でルート通知先が指定され、前記返信用匿名ルート情報、前記ルート情報、および前記送信元公開鍵を含むルート通知パケットを生成するルート通知パケット生成手段と、
前記隣接ノード識別子で示されるノードに対して前記ルート通知パケットを送信する送信手段と、
を有することを特徴とする匿名ルート探索要求応答装置。
【0240】
(付記21) ネットワーク上で匿名のメッセージ交換を行うための電子掲示板提供装置において、
掲示板に掲載するメッセージ、投稿者の送信元から辿ってきた第1伝送ルートを示す第1戻り匿名ルート情報、および前記第1伝送ルート上で隣接するノードの識別情報である第1隣接ノード識別子を含む自分宛の投稿データパケットを受け取ると、前記データパケットの内容をデータベースに登録する登録手段と、
前記メッセージに対する検索条件、検索者の送信元から辿ってきた第2伝送ルートを示す第2戻り匿名ルート情報、前記第2伝送ルート上で隣接するノードの識別情報である第2隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含む自分宛の検索データパケットを受け取ると、前記検索条件により前記データベース内を検索する検索手段と、
前記検索手段で検出された前記メッセージ、前記第1戻り匿名ルート情報、および前記第1隣接ノード識別子を前記送信元公開鍵で暗号化する暗号化手段と、
暗号化されたデータ、および前記第2戻りルート情報を含む応答データパケットを生成するパケット生成手段と、
前記第2隣接ノード識別子で示されるノードに対して前記応答データパケットを送信する送信手段と、
を有することを特徴とする電子掲示板提供装置。
【0241】
(付記22) ネットワーク上で匿名のメッセージ交換を行うための電子掲示板へメッセージをコンピュータで投稿するためのメッセージ投稿方法において、
前記メッセージの投稿要求を受け取ると、前記コンピュータの自ノード識別子を自分のみが復号可能な形式で暗号化し、暗号化後のデータに前記自ノード識別子を付加して戻りルート情報とし、
前記電子掲示板が提供されるサーバに対して匿名通信を行うための伝送ルートが定義された宛先匿名ルート情報、前記戻り匿名ルート情報、返信データ暗号化用の送信元公開鍵、および前記メッセージを含むデータパケットを生成し、
前記宛先匿名ルート情報で示されるルート上の隣接するノードへ、前記データパケットを送信する、
ことを特徴とするメッセージ投稿方法。
【0242】
(付記23) ネットワーク上で匿名のメッセージ交換を行うための電子掲示板に投稿されたメッセージをコンピュータで検索するための投稿メッセージ検索方法において、
前記メッセージの検索条件を受け取ると、前記コンピュータの自ノード識別子を自分のみが復号可能な形式で暗号化し、暗号化後のデータに前記自ノード識別子を付加して戻りルート情報とし、
前記電子掲示板が提供されるサーバに対して匿名通信を行うための伝送ルートが定義された宛先匿名ルート情報、前記戻り匿名ルート情報、および返信データ暗号化用の送信元公開鍵および前記検索条件を含むデータパケットを生成し、
前記宛先匿名ルート情報で示されるルート上の隣接するノードへ、前記データパケットを送信する、
ことを特徴とする投稿メッセージ検索方法。
【0243】
(付記24) ネットワーク上の匿名のメッセージ交換を行うための電子掲示板をコンピュータで提供するための電子掲示板提供プログラムにおいて、
前記コンピュータに、
掲示板に掲載するメッセージ、投稿者の送信元から辿ってきた第1伝送ルートを示す第1戻り匿名ルート情報、および前記第1伝送ルート上で隣接するノードの識別情報である第1隣接ノード識別子を含む自分宛の投稿データパケットを受け取ると、前記データパケットの内容をデータベースに登録し、
前記メッセージに対する検索条件、検索者の送信元から辿ってきた第2伝送ルートを示す第2戻り匿名ルート情報、前記第2伝送ルート上で隣接するノードの識別情報である第2隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含む自分宛の検索データパケットを受け取ると、前記検索条件により前記データベース内を検索し、
前記検索手段で検出された前記メッセージ、前記第1戻り匿名ルート情報、および前記第1隣接ノード識別子を前記送信元公開鍵で暗号化し、
暗号化されたデータ、および前記第2戻りルート情報を含む応答データパケットを生成し、
前記第2隣接ノード識別子で示されるノードに対して前記応答データパケットを送信する、
処理を実行させることを特徴とする電子掲示板提供プログラム。
【0244】
【発明の効果】
以上説明したように本発明では、ルート探索パケットをマルチキャストで送信し、伝送ルート上の各ノードが、返信用匿名ルート情報に自分のノード識別子を追加して全体を暗号化し、ルート探索パケットを次のノードに転送するようにした。そのため、宛先のノードにルート探索パケットが到達したときの返信用匿名ルート情報の内容が匿名ルートを示すこととなる。返信用匿名ルート情報はそれぞれのノードを経由する毎に暗号化されるため、個々のノードではルート全体を認識することができず、送信元の匿名性が保たれる。
【0245】
また、本発明では、匿名のルートを介して電子掲示板に投稿されたメッセージに対する検索が行われると、そのメッセージに投稿者の送信元までの匿名ルート情報を付加して検索者に送信するようにしたため、検索者は、匿名の投稿者に対して匿名のルートを介して応答することができる。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】匿名通信網の概念図である。
【図3】本発明の実施の形態に用いるP2Pオニオンノードのハードウェア構成例を示す図である。
【図4】P2Pオニオンノードの概略機能構成を示すブロック図である。
【図5】P2Pオニオンノードの機能構成を示すブロック図である。
【図6】匿名通信基盤接続認証機能を示す図である。
【図7】匿名経路発見機能を示す図である。
【図8】ルート探索パケットのデータ構造例を示す図である。
【図9】ルート通知パケットのデータ構造例を示す図である。
【図10】匿名経路発見機能の処理手順を示すシーケンス図である。
【図11】ルート探索パケットの伝送経路を示す図である。
【図12】ルート探索パケットの状態遷移状況を示す図である。
【図13】ルート通知パケットの伝送経路を示す図である。
【図14】ルート通知パケットの状態遷移状況を示す図である。
【図15】匿名ルート情報保持部内のデータ構造例を示す図である。
【図16】匿名通信機能を示す概念図である。
【図17】データパケットのデータ構造例を示す図である。
【図18】匿名通信機能の処理手順を示すシーケンス図である。
【図19】データパケットの伝送経路を示す図である。
【図20】データパケットの状態遷移状況を示す図である。
【図21】バックトラック処理におけるデータパケットの伝送経路を示す図である。
【図22】バックトラック転送時のデータパケットの状態遷移状況を示す図である。
【図23】マルチキャストにおけるデータパケットの伝送経路を示す図である。
【図24】匿名掲示板に適用した匿名通信網の構成例を示す図である。
【図25】投稿データを含むデータパケットの例を示す図である。
【図26】DB内のデータ構造例を示す図である。
【図27】検索要求を含むデータパケットの例を示す図である。
【図28】検索結果を含むデータパケットの例を示す図である。
【図29】返信メッセージを含むデータパケットの例を示す図である。
【図30】返信内容を含むデータパケットの伝送経路を示す図である。
【符号の説明】
1 送信ノード
2 中継ノード
3 受信ノード
10 匿名通信網
100、200,300,410,420,430,440,450 P2Pオニオンノード
110,210,310 P2Pオニオンプロキシ
120,220,320 P2Pオニオンルータ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an anonymous route search request method, an anonymous route search request relay method, an anonymous data relay method, an anonymous route search request response method, and an electronic bulletin board providing apparatus that protect anonymity of a data sender / receiver. The present invention relates to an anonymous route search request method, an anonymous route search request relay method, an anonymous data relay method, an anonymous route search request response method, and an electronic bulletin board providing apparatus that are used.
[0002]
[Prior art]
Various information exchanges via the Internet are actively performed. In a technique generally used on the Internet, by analyzing a transmitted packet, a receiver can be determined from the header of the packet, and a packet route can be tracked. As a result, there is a possibility that the privacy of the Internet user may be violated. For example, if the location (IP address or the like) of the terminal used by the poster is known from the contents of the posting on the anonymous bulletin board, there is a risk of being harassed by a malicious third party.
[0003]
Therefore, various techniques for protecting the anonymity of the sender and receiver of data on the Internet have been considered. In order to protect the anonymity of data transmission and reception, it is necessary to encrypt all data communication and not to leak the packet transmission path.
[0004]
In order to prevent leakage of a packet transmission path, it is necessary to shut out leakage of information such as a source and a transfer destination of a packet during communication by utilizing a plurality of relay points (routers). As a technique for preventing such a transmission path from leaking, a technique named "onion routing" is known (for example, see Patent Document 1).
[0005]
In the onion routing method, a robust and fixed router called an onion router controls routing. The transmitting terminal determines a transmission path to the transmission destination in advance, and encrypts information on the transmission path of the packet using the public key of each onion router that relays the packet.
[0006]
The onion router that has received the packet decrypts information about the transmission path using its own secret key. This decoding determines the next transfer destination of the packet, and the onion router transfers the packet to the next node (onion router or receiving terminal). As described above, since each onion router can keep the concealed state except for the next transfer destination, it is not possible to specify the final information of the receiving terminal. In addition, when transmitting a packet, the onion router does not add information on the transmission path up to that point to the packet, thereby preventing leakage of the transmission source.
[0007]
As described above, in onion routing, a data packet multiplexes and retains route information to a destination in a multiplexed manner, so that a part of the route information can be transmitted to each routing node or a person who performs skimming on a network. So that they can only be referenced.
[0008]
[Patent Document 1]
US Patent No. 6,266,704
[0009]
[Problems to be solved by the invention]
However, it is difficult to apply the conventional onion routing method to an environment in which the node configuration changes dynamically. An environment in which the node configuration dynamically changes includes a P2P (Peer to Peer) network.
[0010]
In the P2P network, the participation of the peer node in the network and the exit from the network are arbitrary. For this reason, when communication is performed on the P2P network, the packet is transferred to the peer node of the transmission partner while performing P2P communication between the participating peer nodes at that time. When applying the onion routing method to such a P2P environment, the following problem occurs.
-Fixed routers and fixed routes cannot be determined in advance.
-It is difficult to dynamically respond to node configuration changes during routing.
[0011]
For this reason, in order to perform anonymous communication on an unstable network such as a P2P network, it is necessary to dynamically and anonymously find a route and to cope with a change in node configuration during routing.
[0012]
The present invention has been made in view of such a point, and in a network environment in which a node configuration is dynamically changed, a method for searching for a communication route capable of performing communication while maintaining the anonymity of a data transmitter / receiver. An object of the present invention is to provide an anonymous route search request method, an anonymous route search request relay method, and an anonymous route search request response method.
[0013]
Another object of the present invention is to provide an anonymous data relay method capable of performing reliable communication while protecting anonymity of a data transmitter / receiver in a network environment in which a node configuration changes dynamically. is there.
[0014]
It is another object of the present invention to provide an electronic bulletin board providing apparatus that enables anonymous message exchange between a contributor and a reader of the post.
[0015]
[Means for Solving the Problems]
In the present invention, a system as shown in FIG. 1 is provided to solve the above problems.
[0016]
The transmitting node 1 provides an anonymous route search request method for executing a transmission route search process to a destination by a computer while hiding the transmission source. In the anonymous route search request method, upon receiving a route search request specifying a destination by a destination identifier, the transmitting node 1 encrypts its own node identifier, which is its own identification information, in a format that can be decrypted only by itself, and returns the anonymous reply. The route information is set (step S1). Next, the transmitting node 1 generates a route search packet including the arbitrarily generated anonymous identifier, destination identifier, reply anonymous route information, and source public key for encrypting the reply data (step S2). Finally, the transmitting node 1 transmits a route search packet by broadcast (step S3).
[0017]
As a result, the return route information including the encrypted own node identification information and the route search packet including the transmission source public key are transmitted by broadcast.
In the relay node 2, an anonymous route search request relay method for relaying a transmission route search request in which the transmission source is hidden by a computer is provided. In this anonymous route search request relay method, the relay node 2 includes an anonymous identifier of a transmission source, a destination identifier for designating a search partner, anonymous return route information in which a transmission route from the transmission source to the computer is encrypted, When receiving a route search packet including an adjacent node identifier, which is identification information of an adjacent node, and a source public key for encrypting return data, only the user can decrypt the anonymous route information for reply and the adjacent node identifier. Encrypt in a format (step S4). Next, the relay node 2 adds its own node identifier, which is its own identification information, to the route search packet (step S5). Finally, the relay node 2 broadcasts the route search packet (step S6).
[0018]
As a result, the anonymous route information for reply is given the adjacent node identifier, and is encrypted in a format that can be decrypted only by the relay node 2. Then, a route search packet to which the node identifier of the relay node 2 is added is transmitted by broadcast.
[0019]
The receiving node 3 provides a method of responding to an anonymous route search request for the destination computer to respond to the transmission route search request whose source is hidden. In this anonymous route search request response method, the receiving node 3 transmits the anonymous identifier of the transmission source, the destination identifier indicating the packet addressed to the computer, the anonymous return route information in which the transmission route from the transmission source to the computer is encrypted, the transmission route When receiving a route search packet including an adjacent node identifier, which is identification information of an adjacent node above, and a transmission source public key for return data encryption, the own node identifier, which is its own identification information, and the information addressed to its own node. The receiving node public key for encryption is encrypted with the source public key to obtain root information (step S7). Next, the receiving node 3 specifies the route notification destination with the anonymous identifier, and generates a route notification packet including the anonymous route information for reply, the route information, and the source public key (step S8). Finally, the receiving node 3 transmits a route notification packet to the node indicated by the adjacent node identifier (Step S9).
[0020]
As a result, a route notification packet including the node identifier of the receiving node 3 and the public key is returned via the route according to the return anonymous route information.
In another invention related to the relay node 2, an anonymous data relay method for relaying anonymous communication via an anonymous route by a computer is provided. In this anonymous data relay method, destination anonymous route information in which the next node identifier indicating the next destination on the anonymous route and the anonymous route information from the next destination to the destination are encrypted with the public key of the computer, When receiving a data packet including return anonymous route information indicating a transmission route from the computer to a transmission source and an adjacent node identifier which is identification information of an adjacent node on the transmission route, the destination anonymous route information is stored in the public key. Decrypting with the secret key corresponding to, and determining the next node identifier, set the decrypted data in the data packet as the new destination anonymous route information, the return anonymous route information and the adjacent node identifier Is encrypted with the public key to obtain new return anonymous route information, and the computer is added to the data packet. Add the own node identifier of data to the node indicated by the next node identifier, processing of transmitting the data packet is performed.
[0021]
Thereby, the data packet is relayed while the transmission source and the destination remain anonymous.
Further, in order to solve the above problem, in an electronic bulletin board providing apparatus for performing anonymous message exchange on a network, a message posted on a bulletin board, a first transmission route indicating a first transmission route tracing from a sender of a poster. Registration means for registering the contents of the data packet in a database upon receiving a post data packet addressed to itself including return anonymous route information and a first adjacent node identifier which is identification information of an adjacent node on the first transmission route. And search conditions for the message, second return anonymous route information indicating a second transmission route tracing from the sender of the searcher, and a second adjacent node identifier being identification information of an adjacent node on the second transmission route Receiving a search data packet addressed to itself including a source public key for encrypting return data, Searching means for searching the database, and encrypting means for encrypting the message, the first return anonymous route information, and the first adjacent node identifier detected by the searching means with the source public key. Packet generating means for generating a response data packet including the encrypted data and the second return route information; and transmitting means for transmitting the response data packet to a node indicated by the second adjacent node identifier. An electronic bulletin board providing device is provided.
[0022]
As a result, the message of the poster is notified to a searcher of another country name while the poster of the electronic bulletin board remains anonymous.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, an outline of the invention applied to the embodiment will be described, and then, specific contents of the embodiment will be described.
[0024]
[Summary of the Invention]
FIG. 1 is a conceptual diagram of the invention applied to the embodiment. The communication according to the present invention is performed between the transmitting node 1, the relay node 2, and the receiving node 3. As will be described later, there are generally a plurality of relay nodes 2.
[0025]
When receiving the route search request specifying the destination by the destination identifier, the transmitting node 1 encrypts its own node identifier, which is its own identification information, in a format that can be decrypted only by itself and sets it as the reply anonymous route information (step S1). ). In order to perform encryption so that only oneself can decrypt, for example, encryption is performed using a public key (encryption key) corresponding to a secret key (decryption key) that only the transmission node 1 has.
[0026]
Next, the transmitting node 1 generates a route search packet including the arbitrarily generated anonymous identifier, destination identifier, reply anonymous route information, and source public key for encrypting the reply data (step S2). The anonymous identifier is used for associating the transmitted route search packet with the returned route notification packet. The destination identifier is information for specifying the destination receiving node 3. The destination identifier may be information published in advance. The transmission source public key is an encryption key for encrypting the information when another node passes information such as its own node identifier to the transmission node 1. The secret key (decryption key) corresponding to the transmission source public key is stored in the transmission node 1 in advance.
[0027]
Finally, the transmitting node 1 transmits a route search packet by broadcast (step S3).
Upon receiving the route search packet, the relay node 2 encrypts the return anonymous route information and the adjacent node identifier in a format that only the user can decrypt (step S4). The adjacent node identifier is an identifier of a node adjacent to the relay node 2 in the transmission route of the route search packet. If the route search packet has been sent directly from the transmitting node 1, the node identifier of the transmitting node 1 is the adjacent node identifier. In the encryption processing, for example, encryption is performed using a public key (encryption key) corresponding to a secret key (decryption key) of the relay node 2. Since the reply anonymous route information has already been encrypted by the transmission node or another relay node interposed in the middle of the transmission, it is multiplexly encrypted by the encryption in step S4. Moreover, by encrypting the information including the adjacent node identifier, the node identifier of the adjacent node can be recognized when the information is decrypted.
[0028]
Next, the relay node 2 adds its own node identifier, which is its own identification information, to the route search packet (step S5). Finally, the relay node 2 broadcasts the route search packet (step S6). When a third party analyzes the transmitted route search packet, it can recognize that the packet has been transmitted from the relay node 2, but cannot know the previous transfer route.
[0029]
Upon receiving the route search packet including the destination identifier indicating that the packet is addressed to the receiving node 3, the receiving node 3 discloses the node identifier as its own identification information and the receiving node for encrypting the information addressed to the receiving node 3. The key is encrypted with the source public key to obtain root information (step S7). The source public key can be obtained from the route search packet. Since the set of the node identifier and the receiving node public key is encrypted with the source public key, only the transmitting node 1 can refer to such information.
[0030]
Next, the receiving node 3 specifies the route notification destination by the anonymous identifier of the transmitting node 1, and generates a route notification packet including the anonymous route information for reply, the route information, and the source public key (step S8). Finally, the receiving node 3 transmits a route notification packet to the node indicated by the adjacent node identifier (Step S9). As a result, a route notification packet including the node identifier of the receiving node 3 and the public key is returned via the route according to the return anonymous route information.
[0031]
Upon receiving the route notification packet, the relay node 2 encrypts the own node identifier, which is its own identification information, and the relay node public key for encrypting information addressed to the own node with the source public key, and adds it to the route information. (Step S10). As described above, by adding the pair of the node identifier and the public key of each relay node to the route information, the sending node can be notified of the anonymous route. When a pair of a node identifier and a public key is added to the route information, the pair is added according to a predetermined rule so that the order of adding information can be determined. For example, new information is added before the original information in the route information. Thereby, the transmitting node 1 can recognize the arrangement of each node on the anonymous route.
[0032]
Next, the relay node 2 decodes the anonymous route information for reply, acquires a next node identifier (adjacent node identifier in the route search packet) indicating the node to be the next transmission destination, and transmits the decoded data. The anonymous route information for reply is set in the route notification packet (step S11). Finally, the relay node 2 transmits a route notification packet to the node indicated by the next node identifier (Step S12). Thereby, the route notification packet in which the node identifier of the relay node 2 and the public key are added to the route information is transferred to the route according to the reply anonymous route information.
[0033]
Upon receiving the route notification packet, the transmitting node 1 decrypts the route information with the source private key corresponding to the source public key (step S13). Then, the transmitting node 1 stores the set of the identifier and the public key of each node on the route to the destination obtained by decryption in the recording device while maintaining the array (step S14). By referring to the stored information, an anonymous route to the receiving node 3 can be recognized. In addition, if the public key of each node is used, each node on the root can be notified of only the next node on the anonymous root.
[0034]
In this way, it is possible to protect the anonymity of the data sender / receiver, dynamically search the data transmission / reception path, and perform highly anonymous data communication. Moreover, even if the node configuration is changed during execution of the routing, the data is transmitted via another previously detected anonymous route, so that the reliability of the data transmission can be improved.
[0035]
The function of the anonymous communication as described above can be applied to a P2P network. That is, since each node can appropriately search for an anonymous route, even when the configuration of the network changes dynamically, data communication can be performed with the transmission source kept secret by the anonymous route.
[0036]
By the way, the sender's anonymous identifier and the sender's public key included in the route search packet can be changed as appropriate. For example, each time a route search packet is transmitted, a different anonymous identifier and a different source public key can be used. By not fixing the source public key, the anonymity of the source can be improved. That is, if the anonymous identifier and the public key are always fixed to the sender, the following problem occurs.
1. If a plurality of unencrypted messages having the same anonymous identifier (postings on a bulletin board, etc.) are collected, there is a possibility that the sender can be identified from the contents.
2. Even in the case of an encrypted message, there is a possibility that a person who has decrypted the encrypted message (for example, when a contributor reads a reply to a post on an anonymous bulletin board) can identify the sender from the content.
[0037]
Therefore, by not fixing the anonymous identifier and public key of the same sender between messages, a node that searches an anonymous bulletin board, skimming on the network, or a receiver of a reply message specifies the sender of the message. Can be prevented. That is, by performing disposable management of the anonymous identifier of the node and the public key, the unlinkability between messages can be enhanced. If this is used for an electronic bulletin board, an anonymous bulletin board function that protects the anonymity of data senders and receivers can be realized. Note that unlinkability indicates that it cannot be determined that two types of processing have been performed by the same user.
[0038]
[Embodiment of the invention]
Specific examples for realizing the above functions will be described below as embodiments of the present invention. In the following embodiment, the present invention is applied to a P2P network, and the anonymous communication function is realized by a P2P onion proxy and a P2P onion router. The P2P onion proxy of each P2P onion node performs a route search according to the P2P onion route discovery protocol. Further, P2P onion routing is performed by the P2P onion router of each P2P onion node, and P2P onion route information is detected.
[0039]
Here, the P2P onion route discovery protocol is a protocol for discovering a P2P onion route to a P2P onion node on the receiving side. The P2P onion proxy is a functional unit that manages the P2P onion route discovery protocol of the P2P onion node. The P2P onion route is route information that is multiply encrypted and can cope with a node configuration change. The P2P onion router is a functional unit that manages P2P onion routing processing in a P2P onion node according to P2P onion route information.
[0040]
FIG. 2 is a conceptual diagram of an anonymous communication network. In the present embodiment, the P2P onion node 100 participates in the anonymous communication network 10 including the P2P onion nodes 200, 300, 410, 420, 430, 440, 450. Here, the node name of the P2P onion node 100 is “A”, the node name of the P2P onion node 200 is “B”, the node name of the P2P onion node 410 is “C”, and the node name of the P2P onion node 420 is “D”. , The node name of the P2P onion node 430 is “F”, the node name of the P2P onion node 440 is “F”, the node name of the P2P onion node 450 is “G”, and the node name of the P2P onion node 300 is “X”. .
[0041]
The P2P onion node 100 participates in the anonymous communication network 10 by performing a P2P communication connection with the P2P onion node 200.
The P2P onion node 200 has established a P2P communication connection with the other P2P onion nodes 410, 420, 440, and 450. The P2P onion node 410 further establishes a P2P communication connection with the P2P onion node 430. Similarly, the P2P onion node 420 has established a P2P communication connection with the P2P onion node 430. The P2P onion node 430 has further established a P2P communication connection with the P2P onion node 300.
[0042]
As described above, in the P2P network, a communication network is established by a chain of P2P connections between many P2P onion nodes.
FIG. 3 is a diagram illustrating a hardware configuration example of the P2P onion node used in the embodiment of the present invention. The entire device of the P2P onion node 100 is controlled by a CPU (Central Processing Unit) 101. To the CPU 101, a RAM (Random Access Memory) 102, a hard disk drive (HDD: Hard Disk Drive) 103, a graphic processing device 104, an input interface 105, and a communication interface 106 are connected via a bus 107.
[0043]
The RAM 102 temporarily stores at least a part of an OS (Operating System) program and application programs to be executed by the CPU 101. Further, the RAM 102 stores various data necessary for processing by the CPU 101. The OS and application programs are stored in the HDD 103.
[0044]
The monitor 11 is connected to the graphic processing device 104. The graphic processing device 104 displays an image on the screen of the monitor 11 according to a command from the CPU 101. The keyboard 12 and the mouse 13 are connected to the input interface 105. The input interface 105 transmits a signal transmitted from the keyboard 12 or the mouse 13 to the CPU 101 via the bus 107.
[0045]
The communication interface 106 transmits and receives data to and from another P2P onion node 200.
With the above hardware configuration, the processing functions of the present embodiment can be realized. Although FIG. 3 shows an example of the hardware configuration of the P2P onion node 100, the other P2P onion nodes 200, 300, 410, 420, 430, 440, and 450 can be realized with the same hardware configuration. .
[0046]
By the way, each P2P onion node according to the present embodiment roughly has an anonymous communication infrastructure connection authentication function, an anonymous route discovery function, and an anonymous communication function.
The anonymous communication infrastructure connection authentication function is an authentication request function for itself to participate in the anonymous communication network 10 and a function for authenticating the P2P onion node when another P2P onion node participates in the anonymous communication network 10. is there. By performing connection authentication for the P2P onion node participating in the anonymous communication network 10, it is possible to prevent a person other than a member registered in advance from participating in the anonymous communication network 10.
[0047]
The anonymous route discovery function is a function of searching for a transmission route to a transmission destination according to a P2P onion route discovery protocol.
The anonymous communication function is a function for performing anonymous communication via the discovered route.
[0048]
FIG. 4 is a block diagram showing a schematic functional configuration of the P2P onion node. The P2P onion node 100 has a P2P onion proxy 110, a P2P onion router 120, and a plurality of applications 131 and 132. The P2P onion proxy 110 has an anonymous communication infrastructure connection authentication function and an anonymous route discovery function. Further, the P2P onion router 120 has an anonymous communication function. The applications 131 and 132 transmit and receive a message in response to an operation input or the like from a user. The example of FIG. 4 illustrates a case where the application 131 transmits a message and the application 132 receives the message.
[0049]
The P2P onion node 200 has a P2P onion proxy 210 and a P2P onion router 220. The P2P onion proxy 210 has an anonymous communication infrastructure connection authentication function and an anonymous route discovery function. Further, the P2P onion router 220 has an anonymous communication function.
[0050]
Between the P2P onion nodes 100 and 200 having such a functional configuration, for example, when a connection request to the anonymous communication network 10 is issued from the application 131 or 132, the P2P onion proxy 110 of the P2P onion node 100 and the P2P onion node 200 When the anonymous communication infrastructure connection authentication function with the P2P onion proxy 210 operates in cooperation, mutual connection authentication is performed.
[0051]
Further, when the application 131 receives a message transmission request from the user, a request for searching and obtaining a P2P onion route is issued to the P2P onion proxy 110. Then, the anonymous route discovery function between the P2P onion proxy 110 of the P2P onion node 100 and the P2P onion proxy 210 of the P2P onion node 200 cooperates according to the P2P onion route discovery protocol, thereby performing a route search process. When the route search ends, a message transmission request is issued from the application 131 to the P2P onion router 120. Then, the anonymous communication function between the P2P onion router 120 of the P2P onion node 100 and the P2P onion router 220 of the P2P onion node 200 operates in cooperation, so that onion routing is performed and a message is transmitted by a data packet.
[0052]
When a message to the P2P onion node 100 is sent from another P2P onion node to the P2P onion node 100 by onion routing, the message is passed from the P2P onion router 120 to the application 132.
[0053]
Next, the function of each P2P onion node for realizing the embodiment of the present invention will be described in detail. In addition, each P2P onion node may be a sender of a packet (originating Peer), a recipient of a packet (receiving Peer), or a router that performs packet routing (relay Peer). . Therefore, each P2P onion node needs to have a function as a sending peer, a receiving peer, and a relay peer.
[0054]
FIG. 5 is a block diagram showing a functional configuration of the P2P onion node. The P2P onion node 100 includes a P2P onion proxy 110, a P2P onion router 120, an application 131, a membership card information holding unit 141, a fixed key holding unit 142, an anonymous route information holding unit 143, a temporary key generation unit 151, and an anonymous ID generation unit. 152.
[0055]
The P2P onion proxy 110 includes an anonymous communication connection unit 111, an anonymous route search request unit 112, a route search request relay unit 113, and a route search request response unit 114.
[0056]
The anonymous communication connection unit 111 executes an anonymous communication board connection authentication process. Specifically, upon receiving a connection request from the application 131 to the anonymous board, the anonymous communication connection unit 111 acquires the membership card information from the membership card information holding unit 141, and acquires the fixed public key 142a from the fixed key holding unit 142. To get. Then, the anonymous communication connection unit 111 performs connection authentication with another connectable P2P onion node using the membership card information and the fixed public key 142a. Also, when receiving the connection authentication request from another P2P onion node, the anonymous communication connection unit 111 performs the connection authentication using the membership card information and the fixed public key 142a.
[0057]
The anonymous route search request unit 112 implements a route search request transmission function in the P2P onion route discovery protocol. Specifically, upon receiving the P2P onion route search request from the application 131, the anonymous route search request unit 112 acquires the fixed public key 142a from the fixed key holding unit 142, and sends the temporary public key and the temporary public key from the temporary key generation unit 151. Receive the secret key. Further, the anonymous route search request unit 112 acquires an anonymous ID from the anonymous ID generation unit 152. Then, the anonymous route search request unit 112 generates a route search packet including the obtained key information, the anonymous ID, the own node ID, and the like, and transmits the generated packet through broadband. The node ID is set in the route search packet in a state where the node ID is encrypted with the public key.
[0058]
The route search request relay unit 113 implements a function of relaying a route search request in the P2P onion route discovery protocol. Specifically, when receiving a route search packet from another P2P onion node, the route search request relay unit 113 acquires the fixed public key 142a from the fixed key holding unit 142. Next, the route search request relay unit 113 encrypts information in the return onion (route stack: indicating a transmission route up to that point) in the route search packet with its own fixed public key 142a. After that, the route search request relay unit 113 adds its own node ID to the encrypted information to make a new return onion. Then, the route search request relay unit 113 transfers the route search packet with the updated route stack to another P2P onion node (excluding the source of the route search packet).
[0059]
The route search request response unit 114 implements a function of responding to a route search request in the P2P onion route discovery protocol. Specifically, the route search request response unit 114 generates a route notification packet to the P2P onion node when the route search request responding unit 114 specifies itself as a search target node in a route search packet sent from another P2P onion node. . When responding, the route search request responding unit 114 acquires the fixed public key 142a from the fixed key holding unit 142. Then, the route search request responding unit 114 encrypts its own node ID and the fixed public key 142a using the temporary public key of the route search packet transmission source, and includes it in the route notification packet. The route notification packet is transmitted via the anonymous data transmission unit 121 of the P2P onion router 120.
[0060]
The P2P onion router 120 has an anonymous data transmission unit 121, an anonymous data relay unit 122, and an anonymous data reception unit 123.
The anonymous data transmission unit 121 implements a function of transmitting an anonymous communication data packet in the anonymous communication function. Specifically, the anonymous data transmission unit 121 generates and transmits a data packet for anonymous communication in response to a request from the application 131 or the like. The data packet includes a destination onion indicating an anonymous route. The destination onion is obtained by encrypting the information of the next transmission destination of each P2P onion node using the public key of each P2P onion node on the anonymous route.
[0061]
The anonymous data relay unit 122 implements a data packet relay function of anonymous communication in the anonymous communication function. Specifically, the anonymous data relay unit 122 decrypts the destination onion in the data packet with its own secret key, and confirms the next transmission destination. Then, the anonymous data relay unit 122 transfers the data packet to the next transmission destination.
[0062]
The anonymous data receiving unit 123 implements a function of receiving an anonymous communication data packet in the anonymous communication function. Specifically, if the anonymous ID of the transmission destination of the data packet is its own ID, the anonymous data receiving unit 123 recognizes that the data packet is addressed to itself, and notifies the application 131 of the data in the packet (payload in the payload). Pass). When the received packet addressed to itself is a route notification packet, the anonymous data receiving unit 123 recognizes the anonymous route from the content thereof and stores it in the anonymous route information holding unit 143.
[0063]
The application 131 executes various processes using anonymous communication according to a user's operation input or the like.
The membership card information holding unit 141 is information passed to a user who has performed a predetermined procedure for participating in the anonymous communication network 10. Only the P2P onion node having the membership card information can participate in the anonymous communication network 10.
[0064]
The fixed key holding unit 142 stores key information prepared in advance. The key information is a fixed public key 142a and a fixed secret key 142b. The encrypted data encrypted with the fixed public key 142a can be decrypted only with the fixed secret key 142b. Note that the fixed public key 142a and the fixed secret key 142b can be supplied as a part of the membership card information.
[0065]
The anonymous route information holding unit 143 stores the searched anonymous route information.
The temporary key generation unit 151 generates a temporary key in response to a request from the anonymous route search request unit 112 and the like. The temporary key is a pair of a temporary public key and a temporary secret key.
[0066]
The anonymous ID generation unit 152 generates an anonymous ID in response to a request from the anonymous route search request unit 112 and the like. The anonymous ID is identification information set individually for each series of anonymous communication (anonymous route search and anonymous communication based on the anonymous route).
[0067]
The P2P onion node 100 configured as described above implements the anonymous communication infrastructure connection authentication function, anonymous route discovery function, and anonymous communication function according to the present embodiment. Although FIG. 5 shows constituent elements of the functions of the P2P onion node 100, the other P2P onion nodes 200, 300, 410, 420, 430, 440, and 450 also have similar functions.
[0068]
[Anonymous communication platform connection authentication function]
First, the anonymous communication infrastructure connection authentication function will be described.
FIG. 6 is a diagram illustrating the anonymous communication infrastructure connection authentication function. The anonymous communication infrastructure connection authentication function is such that a certain P2P onion node (in the example of FIG. 6, the P2P onion node 100) participates in the anonymous communication network 10 with another P2P onion node (in the example of FIG. 6, the P2P onion node). 200). Note that the P2P onion node 200 that is the connection destination is referred to as a first connection node when viewed from the P2P onion node 100. Here, it is assumed that the P2P onion node 100 knows the IP address and port number of the first connection node to be connected from the beginning. For example, it is assumed that a freely connectable P2P onion node (a P2P onion node that can be a first connection node) has been published in advance.
[0069]
RSA encryption is used for a cryptographic method such as a P2P onion route used in the anonymous communication network 10. It is assumed that each P2P onion node already has the public key of the RSA encryption, its certificate (public key certificate), private key, and the like. The public key certificate is used as a membership card for the anonymous communication infrastructure, and is used for authentication for the node to participate in the anonymous communication infrastructure. The public key certificate is stored in the membership card information holding unit 141.
[0070]
Here, the processing procedure of the anonymous communication infrastructure connection authentication function when the P2P onion node 100 joins the anonymous communication network 10 with the P2P onion node 200 as the first connection node will be described with reference to FIG. At this time, the anonymous communication infrastructure connection authentication function is executed between the anonymous communication connection unit 111 in the P2P onion proxy 110 of the P2P onion node 100 and the anonymous communication connection unit 211 in the P2P onion proxy 210 of the P2P onion node 200. Is done.
[0071]
[First Processing] The anonymous communication connection unit 111 in the P2P onion node 100 determines a first connection node. Here, the first connection node is an adjacent P2P onion node 200, and there may be a plurality of connection nodes. The IP address and the like of the node that can be designated as the first connection node can be stored in the membership card information holding unit 141 in advance. Further, the user can directly input the IP address and the like of the first connection node by using the GUI.
[0072]
[Second Process] The P2P onion proxy (the anonymous communication connection unit 111 in the P2P onion proxy 110) of the new participating node (P2P onion node 100) starts connection to the first connection node (P2P onion node 200). Hand over the fixed public key 142a and the membership card 141a.
[0073]
[Third Process] The P2P onion proxy (anonymous communication connection unit 211 in the P2P onion proxy 210) of the connected first connection node (P2P onion node 200) also newly adds its own fixed public key 242a and membership card 241a. Hand over to the participating node (P2P onion node 100).
[0074]
[Fourth Process] The membership card is confirmed at both the newly joining node (P2P onion node 100) and the first connection node (P2P onion node 200). If there is a problem such as expiration, stop communication.
[0075]
[Fifth Process] The new participant node (P2P onion node 100) and the first connection node (P2P onion node 200) exchange data encrypted with each other's fixed public key. Then, both nodes decrypt the received data and return it to the other party. Each of the P2P onion nodes 100 and 200 judges that the data transmitted to the other party is a service qualification holder on the anonymous P2P network platform if the data is correctly decrypted and returns. Thereafter, the P2P onion node 100 can participate in the anonymous communication network 10 via the P2P onion node 200. That is, the P2P onion node 100 is a node on the anonymous communication platform. As a result, an anonymous communication network 10 as shown in FIG. 2 is formed.
[0076]
[Anonymous route discovery function]
Next, the anonymous route discovery function will be described using an example of an anonymous route search when data is transmitted from the P2P onion node 100 to the P2P onion node 300.
[0077]
FIG. 7 is a diagram illustrating the anonymous route discovery function. The anonymous route discovery function uses the P2P onion route discovery protocol to anonymously route information from the transmitting peer (P2P onion node 100 in the example of FIG. 7) to the receiving peer (P2P onion node 300 in the example of FIG. 7). It is a function to construct a P2P onion route from the collected route information. The route information includes an identifier of each peer that constitutes a route to the receiving peer and a public key. The P2P onion route discovery protocol constructs a P2P onion route in the following procedure. The anonymous route discovery function is realized by the P2P onion proxies 110, 210, 310 and the P2P onion routers 120, 220, 320 of each of the P2P onion nodes 100, 200, 300. In particular, in the transmission Peer (P2P onion node 100), the anonymous route search request unit 112 of the P2P onion proxy 110 performs processing, and in the relay Peer (P2P onion node 200), the route search request relay unit 213 of the P2P onion proxy 210 performs processing. Then, in the receiving peer (P2P onion node 300), the route search request response unit 314 executes the processing.
[0078]
At the time of the route search, the route search packet 20 is broadcast-transmitted from the transmission peer (P2P onion node 100), and the route notification packet 30 is returned from the reception peer (P2P onion node 300) that has received the route search packet 20. .
[0079]
FIG. 8 is a diagram illustrating an example of a data structure of a route search packet. The route search packet 20 includes a message flag 21, a destination (To) 22, a source (From) 23, a destination onion 24, a return onion 25, and temporary key information 26 for reply encryption.
[0080]
The message flag 21 indicates the type of the packet. In the case of the route search packet 20, information indicating that the packet is for route search broadcast transmission is set.
[0081]
In the destination 22, the destination of the route search packet 20 is set. The destination is indicated by identification information (public ID) of the receiving peer that has been published in advance.
In the transmission source 23, the anonymous ID of the transmission peer is set.
[0082]
The destination onion 24 is information indicating a route to the destination, but is blank in the route search packet 20.
In the return onion 25, a transmission path for returning the route notification packet 30 to the route search packet 20 is set by being multiplexed and encrypted.
[0083]
The reply encryption temporary key information 26 is a temporary public key of the sending peer and an encrypted temporary secret key used when returning the route notification packet 30.
FIG. 9 is a diagram illustrating an example of the data structure of the route notification packet. The route notification packet 30 includes a message flag 31, a destination (To) 32, a source (From) 33, a destination onion 34, a return onion 35, route information 36, and temporary key information 37 for reply encryption.
[0084]
The message flag 31 indicates the type of the packet. In the case of the route notification packet 30, information indicating that the packet is for returning a route search is set.
[0085]
In the destination 32, the destination of the route notification packet 30 is set. The destination is the anonymous ID of the transmission peer set as the transmission source 23 of the route search packet 20.
A public ID (public ID) of the receiving peer is set in the transmission source 33.
[0086]
The destination onion 34 is information indicating a route to the destination. This is a transcription of the return onion 25 of the route search packet 20 in the receiving peer. However, the destination onion 34 deletes the information indicating the past transmission path every time the packet is relayed.
[0087]
The return onion 35 is blank in the route notification packet 30.
The route information 36 is information indicating a transmission route of anonymous communication. In the route information, the node ID and the fixed public key of each P2P onion node on the transmission route are set by being encrypted with the fixed public key of the transmission peer. The route information 36 also includes temporary key information 26 for reply encryption of the route search packet 20.
[0088]
In the reply encryption temporary key information 37, the content of the reply encryption temporary key information 26 of the route search packet 20 is set as it is.
FIG. 10 is a sequence diagram illustrating a processing procedure of the anonymous route discovery function. Hereinafter, the processing illustrated in FIG. 10 will be described along with step numbers.
[0089]
[Step S21] The anonymous route search request unit 112 of the transmission peer (P2P onion node 100) receives a message transmission request from the application 131. It is assumed that the user of the P2P onion node 100 knows in advance the node ID of the P2P onion node 300 that is the receiving peer.
[0090]
[Step S22] The anonymous route search request unit 112 generates the route search packet 20. The route search packet 20 includes the public ID of the receiving peer, the anonymous ID of the transmitting peer, the temporary key (temporary public key and temporary secret key) of the transmitting peer, and the like. The application 131 acquires the public ID of the receiving peer based on an operation input or the like from the user. The anonymous ID of the transmission peer is obtained from the anonymous ID generation unit 152. The node ID of the sending peer is obtained from a general communication function (communication protocol) of the P2P onion node 100. The temporary key of the transmission peer is acquired from the temporary key generation unit 151.
[0091]
The return onion 25 of the route search packet 20 is generated from the node ID of the sending peer and the fixed public key. Specifically, the anonymous route search request unit 112 acquires the fixed public key 142a from the fixed key holding unit 142. Next, the anonymous route search request unit 112 encrypts the node ID of the transmission peer with the fixed public key 142a. Then, the anonymous route search request unit 112 sets a set of the node ID of the encrypted transmission Peer and the node ID of the unencrypted transmission Peer as the return onion 25. At this time, a return flag (in this embodiment, a symbol “^”) is added to the node ID of the transmission peer that has not been encrypted. The return flag indicates that the route is for returning to the transmission source.
[0092]
The reply encryption temporary key information 26 is generated from the temporary key of the transmission peer and the fixed public key 142a. Specifically, the anonymous route search request unit 112 encrypts the temporary private key of the transmission peer with the fixed public key 142a. Then, the anonymous route search request unit 112 sets a pair of the encrypted temporary secret key and the unencrypted temporary public key as the return encryption temporary key information 26.
[0093]
[Step S23] The anonymous route search request unit 112 broadcasts a route search packet. In the present embodiment, since the only node connected to the P2P onion node 100 is the P2P onion node 200, the first stage is to transfer only to the P2P onion node 200 (see FIG. 2).
[0094]
[Step S24] When receiving the route search packet 20, the route search request relay unit 213 of the relay peer (P2P onion node 200) checks the public ID of the received peer set as the destination 22. If it is not the route search packet 20 addressed to itself, the process proceeds to step S25 for packet relay. Each P2P onion node holds its own public ID in a memory or the like (for example, a membership card information holding unit) in advance.
[0095]
[Step S25] The route search request relay unit 213 updates the return onion. Specifically, the route search request relay unit 213 encrypts the return onion 25 in the received route search packet 20 with the fixed public key of the relay peer. Then, the route search request relay unit 213 adds the node ID (with a return flag) of the relay Peer to the encrypted information to obtain a new return onion 25.
[0096]
[Step S26] The route search request relay unit 213 broadcasts the route search packet 20. In the present embodiment, since four P2P onion nodes 410, 420, 440, and 450 are connected to the P2P onion node 200 in addition to the transmitting peer (P2P onion node 100), the four P2P onions are connected. The route search packet 20 is transmitted to the nodes 410, 420, 440, and 450 (see FIG. 2).
[0097]
Thereafter, in each of the P2P onion nodes 410, 420, 440, and 450, the route search packet 20 is relayed, and finally arrives at the receiving peer (P2P onion node 300). In the receiving peer (P2P onion node 300) that has received the route search packet 20, the following processing is performed.
[0098]
[Step S27] Upon receiving the route search packet 20, the route search request responding unit 314 checks the destination 22. If it is the route search packet 20 addressed to itself, the process proceeds to step S28 to respond.
[0099]
The function of confirming the destination 22 of the route search packet 20 in each P2P onion node is a function shared by the route search request relay unit and the route search request response unit. That is, in practice, when the route search packet 20 is received, the confirmation function of the destination 22 operates, and if it is addressed to itself, the confirmation result to that effect is transmitted to the route request response unit. Is transmitted to the route search request relay unit.
[0100]
[Step S28] The route search request responding unit 314 generates the route notification packet 30. The route notification packet 30 includes the node ID of the receiving peer and the fixed public key in addition to the information included in the route search packet 20.
[0101]
Specifically, the route search request response unit 314 sets the information of the transmission source 23 of the route search packet 20 to the destination 32 of the route notification packet 30. The route search request responding unit 314 sets the information of the destination 22 of the route search packet 20 to the source 33 of the route notification packet 30. The route search request response unit 314 sets the information of the return onion 25 of the route search packet 20 to the destination onion 34 of the route notification packet 30. The route search request responding unit 314 uses the temporary public key of the transmission peer in the return encryption temporary key information 26 of the route search packet 20 to encrypt the set of the node ID of the reception peer and the fixed public key. Information 36 is set. Then, the route search request response unit 314 sets the information of the reply encryption temporary key information 26 of the route search packet 20 in the reply encryption temporary key information 37 of the route notification packet 30.
[0102]
The route search request responding unit 314 passes the generated route notification packet 30 to the anonymous data transmitting unit 321 in the P2P onion router 320 of the receiving peer, and requests anonymous communication.
[0103]
[Step S29] The anonymous data transmission unit 321 determines the destination of the route notification packet 30 based on the return onion 25 of the route search packet 20, and transmits the route notification packet 30 to the destination. Specifically, the return onion 25 includes an unencrypted node ID (a node ID of an adjacent P2P onion node) and encrypted information (an encrypted path that reaches the adjacent P2P onion node). That was included). Therefore, the anonymous data transmission unit 321 transmits the route notification packet 30 to the P2P onion node with the node ID that has not been encrypted.
[0104]
The route notification packet 30 is relayed in each P2P onion node. The relay process in the P2P onion node 200 will be described below.
[Step S30] The anonymous data relay unit 222 in the P2P onion router 220 of the relay peer (P2P onion node 200) checks the destination. Each P2P onion node stores a list of anonymous IDs issued by itself and compares the list of anonymous IDs with the destination of the packet to determine whether the packet is addressed to itself. Can be. In the case of the route notification packet 30 addressed to another node, the anonymous data relay unit 222 proceeds with the process to step S31.
[0105]
[Step S31] The anonymous data relay unit 222 updates the destination onion 34 of the route notification packet 30. Specifically, the anonymous data relay unit 222 deletes its own node ID added to the destination onion 34 and decrypts the encrypted information using the fixed secret key. Then, the anonymous data relay unit 222 sets the decrypted information as a new destination onion 34.
[0106]
[Step S32] The anonymous data relay unit 222 updates the route information 36 of the route notification packet 30. Specifically, the anonymous data relay unit 222 encrypts its own node ID and fixed public key with the temporary public key of the transmission Peer and stacks it on the route information 36 (in the present embodiment, the route information up to that time). Followed by additional encrypted information). As a result, in the route information 36, information (node ID and fixed public key) on each P2P onion node on the transmission path is arranged in the order along the path.
[0107]
[Step S33] The anonymous data relay unit 222 determines the destination of the route notification packet 30 based on the destination onion 34, and transmits the route notification packet 30 to the destination. More specifically, the destination onion 34 has an unencrypted node ID (node ID of the adjacent P2P onion node) and encrypted information (a path until reaching the adjacent P2P onion node is encrypted). Was also included). Therefore, the anonymous data relay unit 222 transmits the route notification packet 30 to the P2P onion node having the unencrypted node ID.
[0108]
As a result, the route notification packet 30 is passed to the P2P onion node 100 that is the transmission peer. In the P2P onion node 100, the following processing is performed.
[Step S34] The anonymous data receiving unit 123 of the P2P onion router 120 of the sending peer confirms the destination. In the case of the route notification packet 30 addressed to another node, the anonymous data relay unit 222 proceeds with the process to step S31.
[0109]
The function of confirming the destination 32 of the route notification packet in each P2P onion node is a function shared by the anonymous data relay unit and the anonymous data reception unit. That is, in practice, when the route notification packet 30 is received, the check function of the destination 32 operates, and if it is addressed to itself, the confirmation result to that effect is transmitted to the anonymous data receiving unit. Is transmitted to the anonymous data relay unit.
[0110]
[Step S35] The anonymous data receiving unit 123 acquires anonymous route information from the route information 36 in the route notification packet 30 to the receiving peer, and stores it in the anonymous route information holding unit 143. Specifically, the anonymous data receiving unit 123 converts the encrypted information (the temporary secret key encrypted with the fixed public key 142a) included in the reply encryption temporary key information 37 into the fixed secret key 142b. And decrypt it. Thereby, a temporary secret key can be obtained. The fixed secret key 142b can be obtained from the fixed key holding unit 142.
[0111]
Next, the anonymous data receiving unit 123 decrypts each piece of information included in the route information 36 using the obtained temporary secret key. Thus, a list of node IDs of P2P onion nodes on the route to the receiving peer (ordered in the order along the route) is obtained. The anonymous data receiving unit 123 stores the obtained list in the anonymous route information holding unit 143 as anonymous route information.
[0112]
As described above, the search for the anonymous route is completed.
FIG. 11 is a diagram illustrating a transmission route of a route search packet. FIG. 11 shows a state in which the route search packet 20a output from the P2P onion node 100, which is the transmission peer, is relayed while being changed in content, and reaches the P2P onion node 300, which is the reception peer.
[0113]
The P2P onion node 200 that has received the route search packet 20a output from the P2P onion node 100 generates route search packets 20b and 20e in which the own information is added to the return onion, and generates the P2P onion node 410, the P2P onion node 420, and the like. Send to
[0114]
The P2P onion node 410 generates a route search packet 20c in which its own information is added to the return onion, and transmits it to the P2P onion node 430. The P2P onion node 430 generates a route search packet 20d in which its own information is added to the return onion, and transmits the route search packet 20d to the P2P onion node 300.
[0115]
Similarly, the P2P onion node 420 generates a route search packet 20f in which its own information is added to the return onion, and transmits it to the P2P onion node 430. The P2P onion node 430 generates a route search packet 20g in which its own information is added to the return onion, and transmits the route search packet 20g to the P2P onion node 300.
[0116]
Thus, the two route search packets 20d and 20g reach the P2P onion node 300 that is the receiving peer. That is, the route search packet reaches the receiving peer via various routes. Therefore, a plurality of route notification packets are also returned.
[0117]
Here, the internal information of the route search packet transmitted via the P2P onion node 420 will be described in detail.
FIG. 12 is a diagram illustrating a state transition state of the route search packet. In the following description, when other information is shown in parentheses to the right of the key symbol, the information in parentheses is information encrypted with the key.
[0118]
The route search packet 20a passed from the P2P onion node 100 to the P2P onion node 200 includes a message flag “route search broadcast”, a destination (To) “public ID of the node“ X ””, and a transmission source (From) ”node“ A ”. , Anonymous ID # 1 ”, destination onion (none), return onion“ @ Aid + APk (Aid) ”, and reply encryption temporary key information“ ATPk, APk (ATSk) ”are registered here. “^” in the above is a return flag. Aid is the node ID of the node “A”. APk is a fixed public key of the node “A”. In the reply encryption temporary key information, ATPk indicates the temporary public key of the node “A”, and ATSk indicates the temporary secret key of the node “A”.
[0119]
In the route search packet 20e passed from the P2P onion node 200 to the P2P onion node 420, the return onion has been changed to "@ Bid + BPk [@ Aid + APk (Aid)]". Here, Bid in the return onion is a node ID of the node “B”, and BPk is a fixed public key of the node “B”. As described above, the transmission source is hidden by encrypting the information of the node “A” with the fixed public key of the node “B”.
[0120]
In the route search packet 20f passed from the P2P onion node 420 to the P2P onion node 430, the return onion has been changed to ^ Did + DPk [^ Bid + BPk [^ Aid + APk (Aid)]]. Here, Did in the return onion is the node ID of the node “D”, and DPk is the fixed public key of the node “D”.
[0121]
In the route search packet 20g passed from the P2P onion node 430 to the P2P onion node 300, the return onion is changed to $ Eid + EPk [$ Did + DPk [$ Bid + BPk [$ Aid + APk (Aid)]]. Here, Eid in the return onion is the node ID of the node “E”, and EPk is the fixed public key of the node “E”.
[0122]
The P2P onion node 300 that has received the route search packet 20g can recognize that it is addressed to itself by the destination. However, it is only possible to recognize what route has been sent from the P2P onion node 430 with the node name “E”.
[0123]
Next, a transmission path of a route notification packet transmitted from the P2P onion node 300 will be described.
FIG. 13 is a diagram illustrating a transmission route of the route notification packet. FIG. 13 shows a state in which two route notification packets 30a and 30e output from the P2P onion node 300, which is the receiving peer, are relayed while being changed in content, and reach the P2P onion node 100, which is the transmitting peer. Is shown.
[0124]
Upon receiving the route notification packet 30a output from the P2P onion node 300, the P2P onion node 430 deletes its own information from the return onion, generates a route notification packet 30b in which its information is added to the route information, and generates a P2P onion. Transmit to the onion node 410. The P2P onion node 410 deletes its own information from the return onion, generates a route notification packet 30c in which its information is added to the route information, and transmits it to the P2P onion node 200. The P2P onion node 200 deletes its own information from the return onion, generates a route notification packet 30 d in which its own information is added to the route information, and transmits it to the P2P onion node 100.
[0125]
Also, the P2P onion node 430, which has received the route notification packet 30e output from the P2P onion node 300, deletes its own information from the return onion and generates a route notification packet 30f in which its own information is added to the route information. , P2P onion node 420. The P2P onion node 420 deletes its information from the return onion, generates a route notification packet 30g in which its information is added to the route information, and transmits it to the P2P onion node 200. The P2P onion node 200 deletes its own information from the return onion, generates a route notification packet 30h in which its information is added to the route information, and transmits it to the P2P onion node 100.
[0126]
Thus, the two route notification packets 30d and 30h arrive at the P2P onion node 100 that is the transmission peer.
Here, the internal information of the route search packet transmitted via the P2P onion node 420 will be described in detail.
[0127]
FIG. 14 is a diagram illustrating a state transition state of the route notification packet.
The route notification packet 30e passed from the P2P onion node 300 to the P2P onion node 430 includes a message flag “route search reply”, a destination (To) “anonymous ID # 1 of the node“ A ”, and a transmission source (From)” node. "X" public ID ", destination onion" @ Eid + EPk [@ Did + DPk [@ Bid + BPk [@ Aid + APk (Aid)]]] ", return onion (none), route information" ATPk (Xid, XPk) ", reply encryption The temporary key information “ATPk, APk (ATSk)” is registered, where Xid in the route information is the node ID of the node “X”, and XPk is the fixed public key of the node “X”.
[0128]
In the route notification packet 30f passed from the P2P onion node 430 to the P2P onion node 420, the destination onion is changed to ^ Did + DPk [^ Bid + BPk [^ Aid + APk (Aid)]]. As described above, the P2P onion node 430 having the node name “E” deletes its own node ID from the destination onion and decrypts the remaining information with its own fixed secret key. As a result, the transmission route of the route notification packet is concealed, and only the next transfer destination (Did) can be recognized. ATPk (Eid, EPk) is stacked in the route information.
[0129]
In the route notification packet 30g passed from the P2P onion node 420 to the P2P onion node 200, the destination onion has been changed to $ Bid + BPk [$ Aid + APk (Aid)]. ATPk (Did, DPk) is stacked in the route information.
[0130]
In the route notification packet 30h passed from the P2P onion node 200 to the P2P onion node 100, the destination onion is changed to ^ Aid + APk (Aid). ATPk (Bid, BPk) is stacked in the route information.
[0131]
The P2P onion node 100 that has received the route notification packet 30h can recognize that it is addressed to itself by the destination. If the route information is decrypted with the temporary secret key, the transmission route (anonymous route) of the anonymous communication can be recognized. As a result, the anonymous route information holding unit 143 stores one or more anonymous route information.
[0132]
FIG. 15 is a diagram illustrating an example of a data structure in the anonymous route information holding unit. FIG. 15 shows anonymous route information 143a and 143b stored based on the route notification packets 30d and 30h returned on the two routes shown in FIG.
[0133]
In the anonymous route information 143a, “Bid → Cid → Eid → Xid” is set as the route information. This indicates that the P2P onion node indicated by the node ID on the left is closer to the P2P onion node that is the transmission peer. That is, by transferring the packet from left to right in the array of node IDs indicated by the route information, the packet reaches the P2P onion node 300 with the node ID “Xid”.
[0134]
In the anonymous route information 143a, a fixed public key "BPk, CPk, EPk, XPk" of each P2P onion node on the route is registered. By using the fixed public key, it is possible to encrypt a packet for performing onion routing.
[0135]
In the anonymous route information 143b, “Bid → Did → Eid → Xid” and the fixed public key “BPk, DPk, EPk, XPk” of each P2P onion node on the route are registered as the route information.
[0136]
[Anonymous communication function]
Next, the acquired anonymous communication function via the anonymous route will be described.
FIG. 16 is a conceptual diagram illustrating the anonymous communication function. FIG. 16 illustrates an example in which a data packet 40 addressed to the P2P onion node 300 is transmitted from the P2P onion node 100 via the P2P onion node 200. At this time, in the P2P onion node 100 that is the transmission peer, the anonymous data transmission unit 121 performs the processing, in the P2P onion node 200 that is the relay peer, the anonymous data relay unit 222 performs the processing, and the P2P onion node that is the reception peer In 300, the anonymous data receiving unit 323 executes a process.
[0137]
FIG. 17 is a diagram illustrating an example of the data structure of a data packet. The data packet 40 includes a message flag 41, a destination (To) 42, a transmission source (From) 43, a destination onion 44, a return & backtrack onion 45, and a payload 46.
[0138]
The message flag 41 indicates the type of the packet. In the case of the data packet 40, information indicating that the packet is a data communication packet (normal packet) is set.
[0139]
In the destination 42, the destination of the data packet 40 is set. The destination is the public ID of the receiving peer.
In the transmission source 43, the anonymous ID of the transmission peer is set. This anonymous ID is different from that used when searching for an anonymous route.
[0140]
The destination onion 44 is information indicating a route to the destination. This is generated based on the anonymous route information acquired from the anonymous route information holding unit 143. The destination onion 44 is obtained by encrypting the route information with the public key of each P2P onion node so that only the next node can recognize each P2P onion node on the anonymous route.
[0141]
The return & backtrack onion 45 is route information indicating a return route and a route for performing backtrack processing. The backtracking process is a process of transmitting a packet via another route when communication cannot be performed on a scheduled route.
[0142]
The payload 46 is actual data including data obtained by encrypting the message to be transferred with the fixed public key of the receiving peer.
Next, a processing procedure of the anonymous communication function will be described.
[0143]
FIG. 18 is a sequence diagram illustrating a processing procedure of the anonymous communication function. Hereinafter, the processing illustrated in FIG. 18 will be described along with step numbers.
[Step S41] The anonymous data transmission unit 121 in the P2P onion router 120 of the P2P onion node 100 that is the transmission peer receives a message transmission instruction from the application 131.
[0144]
[Step S42] The anonymous data transmitting unit 121 selects an anonymous route from the anonymous route information holding unit 143 to the P2P onion node of the transmission partner. At this time, if there are many anonymous routes, a predetermined number of anonymous routes are selected from among them. For example, an anonymous route with a small number of relay nodes is preferentially selected.
[0145]
[Step S43] The anonymous data transmission unit 121 generates the data packet 40. The data packet 40 includes information such as the public ID of the received peer, its own anonymous ID, anonymous route information, message data, and its own temporary key (temporary public key and temporary secret key).
[0146]
Specifically, the anonymous data transmission unit 121 sets information indicating that the packet is a data packet in the message flag 41. The public ID of the P2P onion node 300 is set in the destination 42. The sender 43 is set with an anonymous ID. The set anonymous ID is newly generated by the anonymous ID generation unit 152.
[0147]
Anonymous route information selected from the anonymous route information holding unit 143 is set in the destination onion 44. At this time, the anonymous data transmission unit 121 sequentially selects the node IDs indicated by the anonymous route information in order from the closest to the destination node. The anonymous data transmission unit 121 encrypts the first selected node ID (destination node ID) with the fixed public key corresponding to the next selected node ID. Then, the anonymous data transmission unit 121 adds sequentially selected node IDs to the data encrypted immediately before, and then encrypts the whole with the fixed public key corresponding to the next selected node ID. Then, the anonymous data transmission unit 121 assigns the last selected node ID to the data encrypted immediately before, and the data of the destination onion 44 is generated. Thus, each node that relays the data packet decrypts the destination onion 44 with its own fixed secret key, so that only the next destination can be recognized.
[0148]
In the return & backtrack onion 45, its own node ID and data obtained by encrypting the node ID with the fixed public key 142a are set. In the payload 46, in addition to the message data passed from the application 131, information obtained by encrypting predetermined information with the fixed public key of the receiving peer is set. The information to be encrypted is information obtained by encrypting the message header, own temporary public key, and own temporary secret key with a fixed public key. Note that the temporary public key and the temporary secret key at this time are newly generated by the temporary key generation unit 151.
[0149]
[Step S44] The anonymous data transmission unit 121 transmits a data packet according to an anonymous route. In this example, it is transmitted to the P2P onion node 200.
[Step S45] The anonymous data relay unit 222 in the P2P onion router 220 of the P2P onion node 200 receives the data packet 40 and checks the destination 42. If it is addressed to another P2P onion node, the following processing is performed.
[0150]
[Step S46] The anonymous data relay unit 222 selects the next route. Specifically, the anonymous data relay unit 222 deletes its own node ID from the destination onion 44. Next, the anonymous data relay unit 222 decrypts the remaining information with its own fixed secret key. This makes it possible to refer to the set of the next transfer destination node ID and the anonymous route information. One next transfer destination is selected from one or more node IDs indicating the transfer destination. The unselected anonymous route information is used for backtracking.
[0151]
[Step S47] The anonymous data relay unit 222 updates the destination onion 44. Specifically, a set of the node ID selected in step S46 and an anonymous route corresponding to the node ID is set in the destination onion 44.
[0152]
[Step S48] The anonymous data relay unit 222 updates the return & backtrack onion 45.
Specifically, the anonymous data relay unit 222 adds a set of the node ID and the anonymous route information not selected in step S46 to the return & backtrack onion 45 of the data packet 40 for backtrack processing. Then, the anonymous data relay unit 222 encrypts the return & backtrack onion 45 with its own fixed public key, and adds its own node ID to the return & backtrack onion 45.
[0153]
If there is no anonymous route information for backtracking, the content of the encrypted information is only the return onion, and thus a return flag (フ ラ グ) is added to its own node ID.
[0154]
[Step S49] The anonymous data relay unit 222 transmits the data packet 40. The transmission destination of the data packet 40 is an adjacent P2P onion node indicated by a referenceable node ID in the information of the destination onion 44.
[0155]
[Step S50] The anonymous data relay unit 222 determines whether the transmitted data packet 40 has been correctly transmitted to the next node. If the transmission is normal, the process ends. If the transmission has failed, the process proceeds to step S51. If it is known before the transmission of the data packet 40 that the communication to the destination node is interrupted, the process proceeds to step S51 without performing the transmission process of step S49.
[0156]
[Step S51] The anonymous data relay unit 222 determines whether there is another piece of anonymous route information. If the return flag is set in the return & backtrack onion 45 of the data packet 40 for which transmission failed, there is no other anonymous route information (only one anonymous destination anion 44 of the data packet 40 received in step S45). When the route information is not included and the return flag of the return & backtrack onion 45 of the data packet 40 is set). If there is another piece of anonymous route information, the process proceeds to step S52. If there is no other anonymous route information, the process proceeds to Step S55.
[0157]
[Step S52] The anonymous data relay unit 222 updates the destination onion 44 of the data packet 40. Specifically, the anonymous data relay unit 222 sets the data decrypted in step S51 in the destination onion 44.
[0158]
[Step S53] The anonymous data relay unit 222 updates the return & backtrack onion 45 of the data packet 40. Specifically, the anonymous data relay unit 222 sets the contents of the return & backtrack onion 45 of the data packet 40 to null (null).
[0159]
[Step S54] The anonymous data relay unit 222 transmits the data packet 40. The transmission destination of the data packet 40 at this time is a P2P onion node indicated by a node ID recognizable by the return onion decoded in step S51.
[0160]
[Step S55] If there is no other anonymous route information, the anonymous data relay unit 222 transmits the data packet by multicast to all the connection destinations recognized at that time.
[0161]
[Step S56] When the data packet 40 reaches the P2P onion node 300 that is the receiving peer, the anonymous data receiving unit 323 in the P2P onion router 320 of the P2P onion node 300 checks the destination. If it is the data packet 40 addressed to itself, the process proceeds to step S57.
[0162]
[Step S57] The anonymous data receiving unit 323 decrypts the payload 46 with its own fixed secret key.
[Step S58] The anonymous data receiving unit 323 passes the decrypted message header, the key information of the transmission peer (the temporary public key and the encrypted temporary secret key), and the message to the application.
[0163]
Thus, the data packet 40 is transmitted to the receiving peer. The procedure for returning from the receiving peer is the same as the procedure for transmitting the route notification packet 30.
FIG. 19 is a diagram illustrating a transmission path of a data packet. As shown in FIG. 19, the data packet 40a output from the P2P onion node 100 includes a plurality of P2P onion nodes 200 and 410, which are relay peers, when the transmission path of the anonymous route discovered at the time of the route search continues. , 430, the content is changed and passed to the P2P onion node 300 that is the receiving peer.
[0164]
The P2P onion node 200 that has received the data packet 40a transmits the data packet 40b in which the destination onion and the return & backtrack onion are updated to the P2P onion node 410. The P2P onion node 410 that has received the data packet 40b transmits the data packet 40c in which the destination onion and the return & backtrack onion have been updated to the P2P onion node 430. The P2P onion node 430 that has received the data packet 40c transmits the data packet 40d in which the destination onion and the return & backtrack onion are updated to the P2P onion node 300.
[0165]
FIG. 20 is a diagram illustrating a state transition state of a data packet. The data packet 40a output from the P2P onion node 100 includes a message flag “normal”, a destination (To) “public ID of the node“ X ”, a transmission source (From)” anonymous ID # 2 of the node “A”, and a destination onion. "Bid + BPk [Cid + CPk (Eid + EPk (Xid)), Did + DPk (Eid + EPk (Xid))]]", return & backtrack onion "@Aid + APk (Aid)", payload "XPk [message, ATPk, APk (ATSK), data] ] ”Is set.
[0166]
In the data packet 40b passed from the P2P onion node 200 to the P2P onion node 410, the destination onion is changed to “Cid + CPk (Eid + EPk (Xid))”, and the return & backtrack onion is changed to “Bid + BPk [^ Aid + APk (Aid), Did + DPk ( Eid + EPk (Xid))] ”.
[0167]
In the data packet 40c passed from the P2P onion node 410 to the P2P onion node 430, the destination onion is changed to “Eid + EPk (Xid)”, and the return & backtrack onion is changed to “Cid + CPk [Bid + BPk [^ Aid + APk (Aid), Did + DPk (Eid + EPk). (Xid))]] ”.
[0168]
In the data packet 40d passed from the P2P onion node 430 to the P2P onion node 300, the destination onion is changed to “Xid”, and the return & backtrack onion is changed to “Eid + EPk [Cid + CPk [Bid + BPk [^ Aid + APk (Aid), Did + DPk (Eid + EPk). Xid))]]] ”.
[0169]
In this way, each time the data is relayed, the encrypted information of the destination onion is decrypted once, and each time, the next transfer destination can be recognized. Further, the return & backtrack onion is encrypted each time relaying is performed, and the node ID of the relayed P2P onion node is added.
[0170]
Here, consider a case where transmission of data packet 40c from P2P onion node 410 to P2P onion node 430 has failed. At that time, the backtracking process is performed in the P2P onion node 410.
[0171]
FIG. 21 is a diagram showing a transmission path of a data packet in the backtrack processing. If the transmission of the data packet 40c fails in the P2P onion node 410, the data packet 40e is transmitted from the P2P onion node 410 to the P2P onion node 200.
[0172]
The P2P onion node 200 transmits the data packet 40f to the P2P onion node 420, which is another route. P2P onion node 420 transmits data packet 40 g to P2P onion node 430. The P2P onion node 430 transmits the data packet 40h to the P2P onion node 300.
[0173]
FIG. 22 is a diagram showing a state transition state of a data packet at the time of backtrack transfer. The data packet 40e transmitted from the P2P onion node 410 has a message flag “normal”, a destination (To) “public ID of the node“ X ”, a transmission source (From)” anonymous ID # 2 of the node “A”, and a destination onion. "Bid + BPk [@ Aid + APk (Aid), Did + DPk (Eid + EPk (Xid))]", return & backtrack onion "null", and payload "XPk [message header, ATPk, APk (ATSk), message data]" are set. I have.
[0174]
In this example, the destination onion includes another anonymous route information and return anonymous route information. Therefore, the P2P onion node 200 sets another anonymous route information as the subsequent destination onion, and sets the return anonymous route information as the return & backtrack onion.
[0175]
In the data packet 40f passed from the P2P onion node 200 to the P2P onion node 420, the destination onion is changed to Did + DPk (Eid + EPk (Xid)), and the return & backtrack onion is changed to "@ Bid + BPk [@ Aid + APk (Aid)]". Since the content of the return & backtrack onion is only the anonymous route information, the return flag is set.
[0176]
In the data packet 40g passed from the P2P onion node 420 to the P2P onion node 430, the destination onion is changed to “Eid + EPk (Xid)”, and the return & backtrack onion is changed to “^ Cid + CPk [^ Bid + BPk [^ Aid + APk (Aid),]”. ]].
[0177]
In the data packet 40h passed from the P2P onion node 430 to the P2P onion node 300, the destination onion is changed to “Xid”, and the return & backtrack onion is changed to “$ Eid + EPk [$ Cid + CPk [$ Bid + BPk [$ Aid + APk (Aid)]]. ]].
[0178]
In this way, the data packet can be delivered to the receiving peer via another anonymous route even if the packet transfer on the anonymous route selected first fails due to the backtracking process. Such backtrack processing is performed recursively. That is, when the transmission by the backtrack also fails, the backtrack processing of the data packet is performed based on still another anonymous route.
[0179]
Here, when transmission fails in all anonymous routes set in the destination onion of the data packet, the data packet is transferred by multicast. The presence / absence of an untransmitted anonymous route can be determined by the presence / absence of a return flag of the return & backtrack onion 45.
[0180]
For example, when the transmission of the data packet 40g from the P2P onion node 420 to the P2P onion node 430 has failed, the P2P onion node 420 determines whether the return of the data packet 40g and the return flag of the backtrack onion 45 are present. If the return flag is set, there is no other anonymous route. Therefore, the P2P onion node 420 determines that multicast transmission is necessary.
[0181]
FIG. 23 is a diagram illustrating a transmission path of a data packet in multicast. If the transmission of the data packet 40g fails in the P2P onion node 430, the data packet 40i is transmitted from the P2P onion node 420 to another P2P onion node 460 (node name “F”) connected at that time. If there is a path from the P2P onion node 460 to the P2P onion node 300, the data packet is transmitted to the P2P onion node 300. Even in this case, the anonymity of the sending peer and the receiving peer is maintained.
[0182]
As described above, the receiving peer can reply to the received message while maintaining the anonymity of the transmitting peer. Since the return route is held in the return & backtrack onion, the receiving peer can return to the transmitting peer by onion routing using the return onion (anonymous route information set with the return flag “^”). The onion routing at the time of reply is the same as the transmission except that the reply P2P onion route has only one route. That is, when the routing using the P2P onion route fails, the reply message is reached by the P2P multicast function. Also in this case, anonymity is secured.
[0183]
[Example of application to anonymous bulletin board]
If the anonymous communication network as described above is applied to an electronic bulletin board, anonymous information exchange between an unspecified number of users can be performed safely.
[0184]
FIG. 24 is a diagram illustrating a configuration example of an anonymous communication network applied to an anonymous bulletin board. In the example of FIG. 24, a database (DB) 360 is connected to the P2P onion node 300 in the anonymous communication network 10, and a bulletin board system is constructed. This bulletin board system is a public DB that is open to the public. In this case, the public ID of the P2P onion node 300 is disclosed in a magazine or a web page on the Internet.
[0185]
As described above, in the anonymous bulletin board function, an anonymous bulletin board (public DB) is mounted on the P2P onion node 300 on the anonymous communication network 10 and information posted from another P2P onion node to the anonymous bulletin board (public DB) is used. I do.
[0186]
A P2P onion node using a bulletin board (public DB) mainly implements the following functions.
1. Post to an anonymous bulletin board (public DB).
2. Post data on an anonymous bulletin board (public DB) can be searched.
3. Reply to information posted on an anonymous bulletin board (public DB).
[0187]
The bulletin board (public DB) is implemented as an application that operates on one P2P onion node 300 on the anonymous communication network 10. Each P2P onion node has a function for notifying the bulletin board (public DB) node (P2P onion node 300) of a message for performing the above three functions via the anonymous communication network 10. The bulletin board (public DB) node (P2P onion node 300) has a function of storing posted data in response to a message notified via the anonymous communication network 10, searching for posted data, and returning a search result.
[0188]
The functions realized by the anonymous bulletin board are shown below.
1. It is not possible to detect who posted the message (post concealment function).
2. Automatically delete posted information after a specified time.
3. Unable to detect who made the search (searcher concealment function).
4. It is possible to make a reservation so that even if there is no post data to be searched for at the time of the search, notification is made when the target post data is posted later.
5. Search reservations are automatically canceled after the specified time has elapsed.
[0189]
Note that the DB 360 can be implemented using, for example, XSR (XML Service Registry). XSR is an object database technology owned by Fujitsu Prime Software Technology Co., Ltd. The functions of this software are as follows.
[0190]
UP function: a function to save an object.
An expiration date can be set for the storage period of the object. Expired objects are automatically deleted from the XSR.
[0191]
LOOKUP function: The object that the user is looking for can be searched.
It has a function to reserve a search.
RESPONSE function: Asynchronously notifies the user if there is information matching the reserved search.
[0192]
Also, in order to enhance the unlinkability between messages, the disposable management of the anonymous identifier of the peer node and the public key is performed as follows.
1. Generate an anonymous identifier using a secret key and a random number. Only one with the secret key can confirm that it is his own identifier with respect to the anonymous identifier.
2. Generate a temporary public / temporary private key pair. The temporary secret key is encrypted with the public key of the membership card, and added to the message as reply information together with the temporary public key. The responder encrypts the reply message with the temporary public key and replies. The returned encrypted data can be decrypted only by the user having the private key of the membership card.
3. To expose the anonymity of the anonymous identifier in an emergency, bring the anonymous identifier (including the random number used for generation) to the certificate authority in the above "Anonymous Communication Infrastructure Connection Authentication Function", and register all registered private keys. An anonymous identifier is generated using a random number included in the anonymous identifier in a round robin manner, and a matching secret key is specified.
[0193]
By installing the anonymous bulletin board having the above configuration on the anonymous communication network 10, anonymous message exchange becomes possible.
For example, the user can use the P2P onion node 100 to transmit the data packet 51 including the posting data to the P2P onion node 300 and register the posting data in the DB 360. As the posted data, for example, the data packet 52 including the search request is transmitted to the P2P onion node 300 using the P2P onion node 420, and the posted data stored in the DB 360 can be searched.
[0194]
The P2P onion node 300 searches the posted data in the DB 360 in response to the search request, and obtains a search result. Then, the P2P onion node 300 transmits the data packet 53 including the search result to the P2P onion node 420. As a result, the search result is passed to the P2P onion node 420.
[0195]
Note that the search result includes anonymous route information (return onion) from the bulletin board node (P2P onion node 300) to the poster's P2P onion node, a temporary public key for the poster's P2P onion node, and the like. This allows the P2P onion node that has output the search request to obtain anonymous route information to the poster's P2P onion node, and that a message addressed to the poster can be decrypted only by the poster's P2P onion node. Can be encrypted.
[0196]
FIG. 25 is a diagram illustrating an example of a data packet including post data. The data packet 51a generated by the P2P onion node 100 includes a message flag "normal", a destination (To) "public ID of the node" X ", a transmission source (From)" anonymous ID # 3 of the node "A", and a destination. Onion "Bid + BPk [Cid + CPk (Eid + EPk (Xid))]", return & backtrack onion "@ Aid + APk (Aid)", payload "XPk [message header, ATPk, APk (ATSk), message data]" are set. In this example, for simplicity of description, it is assumed that only one piece of anonymous route information is set in the destination onion.
[0197]
When such a data packet 51b arrives at the P2P onion node 300 without any transmission failure during transmission, in the data packet 51b at that time, the destination onion is changed to "Xid", and the return & backtrack onion is changed. Is changed to "Eid + EPk [Cid + CPk [Bid + BPk [@ Aid + APk (Aid)]]]".
[0198]
The P2P onion node 300 receiving such a data packet 51a stores predetermined information in the DB 360.
FIG. 26 is a diagram illustrating an example of a data structure in the DB. In the DB 360, items of anonymous ID, return onion, reply encryption temporary key information, and message data are registered in association with each other. For example, “Anonymous ID # 3 of node“ A ”is registered in the item of anonymous ID based on data packet 51 b. In the return onion,“ Eid + EPk [Cid + CPk [Bid + BPk [^ Aid + APk (Aid)] ” ]]] ”Is registered. In the reply encryption temporary key information,“ ATPk, APk (ATSk) ”is registered. In the message data item,“ post request, upload date and time, actual data ” And other information are registered.
[0199]
Thereafter, the data packet 52 including the search request is transmitted from the P2P onion node 420 to the P2P onion node 300.
FIG. 27 is a diagram illustrating an example of a data packet including a search request. The data packet 52a generated by the P2P onion node 420 includes a message flag "normal", a destination (To) "public ID of the node" X ", a transmission source (From)" anonymous ID # 4 of the node "D", and a destination. Onion "Eid + EPk (Xid)", return & backtrack onion "@ Did + DPk (Did)", payload "XPk [message header, DTPk, DPk (DTSk), message data]" are set.
[0200]
When such a data packet 52a arrives at the P2P onion node 300 without any transmission failure during transmission, the destination onion is changed to "Xid" in the data packet 52b at that time, and the return & backtrack onion is changed. Is changed to “Eid + EPk [^ Did + DPk (Did)]”. Here, the data in the payload is “message header, DPk (DTSk), DTPk, message data (search request, up date and time,...)”.
[0201]
The P2P onion node 300 that has received the data packet 52b searches the DB 360 according to the instruction of the search request (indicating a search keyword or the like). Here, it is assumed that the posted data posted by the data packet 51b is obtained as a search result. Then, the P2P onion node 300 transmits the data packet 53 including the search result to the P2P onion node 420.
[0202]
FIG. 28 is a diagram illustrating an example of a data packet including a search result. The data packet 53a generated by the P2P onion node 300 includes a message flag "request response", a destination (To) "anonymous ID # 4 of the node" D ", and a transmission source (From)" public ID of the node "X"". , Destination onion "Eid + EPk [@ Did + DPk (Did)]", return & backtrack onion "@ Xid + XPk (Xid)", and payload "XPk [message header, DTPk, DPk (DTSk), message data]". .
[0203]
When such a data packet 53a arrives at the P2P onion node 300 without any transmission failure during the transmission, in the data packet 53b at that time, the destination onion is changed to "@ Did + DPk (Did)" and the process returns. & The backtrack onion is changed to “Eid + EPk [^ Xid + XPk (Xid)]”. Here, the data in the payload are “message header, DPk (DTSk), DTPk [node“ A ”anonymous ID # 3, message data (search request, up date and time,...)”, Eid + EPk [Cid + CPk [Bid + BPk [^ Aid + APk] (Aid)]]]] ”. DPk (DTSk) is obtained by encrypting the temporary decryption key of the P2P onion node 420 with a fixed public key. The message data is a search result. In this example, the message data is actual data included in the data packet 51a. “Eid + EPk [Cid + CPk [Bid + BPk [^ Aid + APk (Aid)]]]” is a return onion from the P2P onion node 300 to the P2P onion node 100. Also, the node “A” anonymous ID # 3, message data, and Eid + EPk [Cid + CPk [Bid + BPk [+ Aid + APk (Aid)]] (return onion)) are encrypted with the temporary public key (DTPk) of the P2P onion node 420. I have.
[0204]
The search result can be referenced by decrypting the encrypted data in the payload with the temporary secret key (DTSk) of the P2P onion node 420. The user using the P2P onion node 420 confirms the contents of the posted data by referring to the search result. When responding to the posted content, the user inputs a reply message to the P2P onion node 420, and then inputs a reply instruction.
[0205]
Then, P2P onion node 420 transmits a data packet including a reply message to the posted data to P2P onion node 430.
FIG. 29 is a diagram illustrating an example of a data packet including a reply message. The data packet 61 generated by the P2P onion node 420 includes a message flag “reply”, a destination (To) “anonymous ID # 3 of the node“ A ”, a transmission source“ anonymous ID 5 ”of the node“ D ”, and a destination onion” Eid + EPk [@ Xid + XPk (Xid)], Eid + EPk [Cid + CPk [Bid + BPk [@ Aid + APk (Aid)]]] ", return & backtrack onion" @ Did + DPk (Did) ", payload" message header, DTPk, DPk (DPk). ATPk (reply message), APk (ATSk) "are set.
[0206]
Here, the destination onion is a connection of a return onion from the P2P onion node 420 to the P2P onion node 300 and a return onion from the P2P onion node 300 to the P2P onion node 100. Each P2P onion node serving as a relay peer processes in order from the previously connected return onion. Thereby, the anonymous route information from the P2P onion node 420 to the P2P onion node 100 is set in the destination onion.
[0207]
“DTPk, DPk (DTSk)” in the payload is temporary key information for return encryption, and is used for returning from the P2P onion node 100 to the P2P onion node 420. "ATPk (reply message)" indicates that the reply message addressed to the P2P onion node 100 is encrypted with the temporary public key of the P2P onion node 100.
[0208]
FIG. 30 is a diagram illustrating a transmission path of a data packet including a reply content. The data packet 61 transmitted from the P2P onion node 420 to the P2P onion node 430 is relayed while receiving the update of the destination onion and the return & backtrack onion. The P2P onion node 430 sends the data packet 62 to the P2P onion node 300. The P2P onion node 300 transmits the data packet 63 to the P2P onion node 430. The P2P onion node 430 sends the data packet 64 to the P2P onion node 410. The P2P onion node 410 transmits the data packet 65 to the P2P onion node 200. The P2P onion node 200 transmits the data packet 66 to the P2P onion node 100.
[0209]
In this way, anonymous communication between users via the bulletin board is possible. Moreover, by using a bulletin board to which the present invention is applied, anonymous information exchange can be performed between an unspecified number of users. Furthermore, since the node ID and the temporary public key are disposable and different values are used for each predetermined procedure, the identity of the poster is hidden for a plurality of messages posted to the bulletin board by the same poster. be able to.
[0210]
By using such a system, even if personal information is exchanged, an individual corresponding to the information can be hidden from a malicious third party. Therefore, such an anonymous bulletin board technology can be applied to preventive medicine and health care services (HCS) utilizing network technology. In order to realize the HCS business, security for data that needs to be kept secret, such as the physical condition and physiological data of the beneficiary, is a very important factor. Therefore, if the anonymous bulletin board is applied to the HCS, the physiological data of the user can be registered in the P2P onion node 300 as anonymous using the P2P onion node 100. Then, the doctor using the other P2P onion node 420 refers to the registered physiological data, and can transmit lifestyle advice and the like to the user anonymously.
[0211]
As described above, according to the embodiment of the present invention, before data transmission, a route to a transmission partner is searched, and information (public key of each node) for performing anonymous communication via the route is collected. I do. Therefore, anonymous communication is possible even when the network configuration changes dynamically. As a result, when transmitting and receiving data in an unstable network system such as a P2P network system, the transmission path can be dynamically searched and the anonymity of the sender and receiver can be protected.
[0212]
In addition, since the data packet used for anonymous communication contains information on an anonymous route different from the anonymous route being transferred, if transmission fails, data is transmitted via another anonymous route. Can be done. This increases the reliability of data transmission.
[0213]
Also, when data transmission via all anonymous routes included in a data packet fails, data transmission via another route is attempted by multicast. Therefore, if there is another route that does not exist at the time of route search but exists at the time of data transmission, it becomes possible to transmit a packet to the destination P2P onion node via that route.
[0214]
Further, in order to enhance anonymity in communication, the public key notified to other P2P onion nodes is used as a temporary public key, and the temporary public key is used for each predetermined communication (for example, transmission of a request and response to the request). Due to the re-creation, even if the contents of the public key are monitored, it is not possible to identify whether or not a plurality of packets have been output from the same P2P onion node.
[0215]
Furthermore, it is determined whether or not the packet is addressed to itself by the anonymous ID, and the anonymous ID is recreated for each predetermined communication (for example, transmission of a request and response to the request). P2P onion nodes cannot be identified.
[0216]
In the above description, the temporary secret key of the transmission peer encrypted with the fixed public key is included in the reply encryption temporary key information, but this is a combination of the temporary public key and the temporary secret key. Is a process for not managing by the transmission peer.
[0219]
Further, the above processing functions can be realized by a computer. In this case, a program describing the processing contents of the functions that the P2P onion node should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing content can be recorded on a computer-readable recording medium. Computer-readable recording media include magnetic recording devices, optical disks, magneto-optical recording media, and semiconductor memories. The magnetic recording device includes a hard disk device (HDD), a flexible disk (FD), a magnetic tape, and the like. Examples of the optical disc include a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only Memory), and a CD-R (Recordable) / RW (ReWritable). Magneto-optical recording media include MO (Magneto-Optical disc).
[0218]
When distributing the program, for example, portable recording media such as DVDs and CD-ROMs on which the program is recorded are sold. Alternatively, the program may be stored in a storage device of a server computer, and the program may be transferred from the server computer to another computer via a network.
[0219]
The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, the computer may execute the processing according to the received program each time the program is transferred from the server computer.
[0220]
(Supplementary Note 1) In an anonymous route search request method for performing a transmission route search process to a destination with a computer in a state in which a source is hidden,
Upon receiving a route search request specifying the destination with the destination identifier, encrypting its own node identifier, which is its own identification information, in a format that can be decrypted only by itself and returning it as anonymous route information for reply,
An arbitrarily generated anonymous identifier, the destination identifier, the reply anonymous route information, and a route search packet including a source public key for return data encryption,
Transmitting the route search packet by broadcast,
An anonymous route search request method, characterized in that:
[0221]
(Supplementary note 2) An anonymous route search request according to Supplementary note 1, wherein a set of a fixed public key and a fixed secret key is prepared in advance, and the own node identifier is encrypted using the fixed public key. Method.
[0222]
(Supplementary Note 3) Each time the route search request is received, a pair of a temporary public key and a temporary secret key is generated, and the generated temporary public key is used as the transmission source public key for encrypting reply data. 5. The method of requesting an anonymous route search according to claim 1, wherein
[0223]
(Supplementary note 4) The anonymous statement according to supplementary note 3, wherein a set of a fixed public key and a fixed secret key is prepared in advance, and the temporary secret key is encrypted with the fixed public key and included in the route search packet. Route search request method.
[0224]
(Supplementary Note 5) A route notification packet including, as a response to the route search packet, route information obtained by encrypting a set of a node identifier and a public key of each node on the route from the computer to the destination with the source public key. Receiving the root information, decrypts the route information with a source private key corresponding to the source public key,
Storing a set of the node identifier and the public key obtained by decryption in a recording device,
3. The method of requesting an anonymous route search according to claim 1, wherein
[0225]
(Supplementary Note 6) In an anonymous route search request relay method for relaying a transmission route search request in which a transmission source is hidden by a computer,
Anonymous identifier of the transmission source, destination identifier specifying a search partner, anonymous return route information in which a transmission route from the transmission source to the computer is encrypted, and neighbor information which is identification information of an adjacent node on the transmission route Node identifier, and upon receiving a route search packet including the source public key for return data encryption, encrypts the reply anonymous route information and the adjacent node identifier in a format that only one can decrypt,
Add own node identifier which is its own identification information to the route search packet,
Transmitting the route search packet by broadcast,
An anonymous route search request relay method, characterized in that:
[0226]
(Supplementary note 7) The anonymous route search request relay method according to supplementary note 6, wherein the broadcast transmission is performed on a transmission path other than the transmission path to which the route search packet is input.
[0227]
(Supplementary Note 8) In an anonymous data relay method for relaying anonymous communication via an anonymous route by a computer,
The next node identifier indicating the next transmission destination on the anonymous route and the anonymous route information from the next transmission destination to the destination are the destination anonymous route information encrypted with the public key of the computer. Upon receiving a data packet including return anonymous route information indicating a transmission route and an adjacent node identifier which is identification information of an adjacent node on the transmission route, decrypts the destination anonymous route information with a secret key corresponding to the public key. And, while determining the next node identifier, set the decrypted data in the data packet as the new destination anonymous route information,
The return anonymous route information and the adjacent node identifier are encrypted with the public key to obtain new return anonymous route information,
Adding the own node identifier of the computer to the data packet,
Transmitting the data packet to a node indicated by the next node identifier;
A method for relaying anonymous data, comprising:
[0228]
(Supplementary Note 9) When a plurality of sets of the node identifier of the adjacent node and the anonymous route information are obtained by decoding the destination anonymous route information, one set is set as the new destination route information and the other set is backtracked. The anonymous route information is encrypted with the public key together with the return anonymous route information, and the encrypted data is added with the own node identifier of the computer to obtain new return anonymous route information. 8. The method for relaying anonymous data according to item 8.
[0229]
(Supplementary Note 10) When the transmission of the data packet fails, the destination anonymous route information of the data packet is replaced with the return anonymous route information at the time of receiving the data packet, and the data is transmitted to the node that transmitted the data packet. The anonymous data relay method according to claim 8, wherein the method returns a packet.
[0230]
(Supplementary Note 11) If the backtrack anonymous route information is included when the destination anonymous route information of the returned data packet is decoded, the node identifier indicated by the backtrack anonymous route information is replaced with the next node identifier. 11. The method for relaying anonymous data according to supplementary note 10, wherein
[0231]
(Supplementary Note 12) When the transmission of the data packet fails, if there is no other anonymous route information in either the destination anonymous route information or the return anonymous route information, each node adjacent to the computer may: The anonymous data relay method according to claim 8, wherein the data packet is transmitted by multicast.
[0232]
(Supplementary Note 13) In a method of responding to an anonymous route search request in which a destination computer responds to a transmission route search request in which a transmission source is hidden,
The source anonymous identifier, a destination identifier indicating a packet addressed to the computer, a reply anonymous route information obtained by encrypting a transmission route from the source to the computer, and identification information of an adjacent node on the transmission route. Upon receiving a route search packet including a certain adjacent node identifier and a transmission source public key for return data encryption, the own node identifier which is its own identification information, and the receiving node public key for encrypting the information addressed to the own node. Is encrypted with the source public key to obtain root information,
The route notification destination is specified by the anonymous identifier, the reply anonymous route information, the route information, and generating a route notification packet including the source public key,
Transmitting the route notification packet to the node indicated by the adjacent node identifier,
A method of responding to an anonymous route search request characterized by the following.
[0233]
(Supplementary Note 14) In an anonymous route search request program for searching a transmission route to a destination while hiding a transmission source,
On the computer,
Upon receiving a route search request specifying the destination with the destination identifier, encrypting its own node identifier, which is its own identification information, in a format that can be decrypted only by itself and returning it as anonymous route information for reply,
An arbitrarily generated anonymous identifier, the destination identifier, the reply anonymous route information, and a route search packet including a source public key for return data encryption,
Transmitting the route search packet by broadcast,
An anonymous route search request program for executing a process.
[0234]
(Supplementary Note 15) In an anonymous route search request relay program for relaying a transmission route search request whose source is hidden,
On the computer,
Anonymous identifier of the transmission source, destination identifier specifying a search partner, anonymous return route information in which a transmission route from the transmission source to the computer is encrypted, and neighbor information which is identification information of an adjacent node on the transmission route Node identifier, and upon receiving a route search packet including the source public key for return data encryption, encrypts the reply anonymous route information and the adjacent node identifier in a format that only one can decrypt,
Add own node identifier which is its own identification information to the route search packet,
Transmitting the route search packet by broadcast,
An anonymous route search request relay program for executing a process.
[0235]
(Supplementary Note 16) In an anonymous data relay program for relaying anonymous communication via an anonymous route,
On the computer,
The next node identifier indicating the next transmission destination on the anonymous route and the anonymous route information from the next transmission destination to the destination are the destination anonymous route information encrypted with the public key of the computer. Upon receiving a data packet including return anonymous route information indicating a transmission route and an adjacent node identifier which is identification information of an adjacent node on the transmission route, decrypts the destination anonymous route information with a secret key corresponding to the public key. And, while determining the next node identifier, set the decrypted data in the data packet as the new destination anonymous route information,
The return anonymous route information and the adjacent node identifier are encrypted with the public key to obtain new return anonymous route information,
Adding the own node identifier of the computer to the data packet,
Transmitting the data packet to a node indicated by the next node identifier;
An anonymous data relay program for executing processing.
[0236]
(Supplementary Note 17) In an anonymous route search request response program for making a destination computer respond to a transmission route search request whose source is hidden,
On the computer,
The source anonymous identifier, a destination identifier indicating a packet addressed to the computer, a reply anonymous route information obtained by encrypting a transmission route from the source to the computer, and identification information of an adjacent node on the transmission route. Upon receiving a route search packet including a certain adjacent node identifier and a transmission source public key for return data encryption, the own node identifier which is its own identification information, and the receiving node public key for encrypting the information addressed to the own node. Is encrypted with the source public key to obtain root information,
The route notification destination is specified by the anonymous identifier, the reply anonymous route information, the route information, and generating a route notification packet including the source public key,
Transmitting the route notification packet to the node indicated by the adjacent node identifier,
An anonymous route search request response program for executing a process.
[0237]
(Supplementary Note 18) In an anonymous route search request device that searches for a transmission route to a destination while hiding a source,
Upon receiving a route search request specifying the destination by the destination identifier, generating the reply anonymous route information for generating the reply anonymous route information by encrypting the own node identifier which is its own identification information in a format which only the user can decrypt. Means,
Route search packet generating means for generating a route search packet including an arbitrarily generated anonymous identifier, the destination identifier, the reply anonymous route information, and a source public key for encrypting reply data,
Transmitting means for transmitting the route search packet by broadcast,
An anonymous route search request device comprising:
[0238]
(Supplementary Note 19) In an anonymous route search request relay device for relaying a transmission route search request whose source is hidden,
Anonymous identifier of the transmission source, destination identifier designating the search partner, anonymous return route information in which the transmission route from the transmission source to the own device is encrypted, and neighbor information which is identification information of an adjacent node on the transmission route Upon receiving a route search packet including a node identifier and a source public key for encrypting return data, encrypting means for encrypting the return anonymous route information and the adjacent node identifier in a format that can be decrypted only by the user. When,
Own node identifier adding means for adding own node identifier which is own identification information to the route search packet;
Transmitting means for transmitting the route search packet by broadcast,
An anonymous route search request relay device comprising:
[0239]
(Supplementary Note 20) In an anonymous route search request response device for responding to a transmission route search request in which a transmission source is hidden,
The source anonymous identifier, a destination identifier indicating a packet addressed to the own device, a reply anonymous route information in which a transmission route from the source to the own device is encrypted, and identification information of an adjacent node on the transmission route. Upon receiving a route search packet including a certain adjacent node identifier and a transmission source public key for return data encryption, the own node identifier which is its own identification information, and the receiving node public key for encrypting the information addressed to the own node. Route information generating means for generating route information by encrypting with the source public key,
Route notification destination specified by the anonymous identifier, the return anonymous route information, the route information, and a route notification packet generating means for generating a route notification packet including the source public key,
Transmitting means for transmitting the route notification packet to a node indicated by the adjacent node identifier,
An anonymous route search request responding device characterized by having:
[0240]
(Supplementary Note 21) In an electronic bulletin board providing apparatus for performing anonymous message exchange on a network,
A message to be posted on a bulletin board, first return anonymous route information indicating a first transmission route tracing from a sender of the poster, and a first adjacent node identifier which is identification information of an adjacent node on the first transmission route. Registration means for registering the contents of the data packet in a database upon receipt of the post data packet addressed to the user,
A search condition for the message, second return anonymous route information indicating a second transmission route tracing from a sender of the searcher, a second adjacent node identifier which is identification information of an adjacent node on the second transmission route, and When receiving a search data packet addressed to itself including a transmission source public key for return data encryption, a search means for searching the database according to the search condition,
Encrypting means for encrypting the message detected by the search means, the first return anonymous route information, and the first adjacent node identifier with the source public key;
Packet generating means for generating a response data packet including the encrypted data and the second return route information;
Transmitting means for transmitting the response data packet to a node indicated by the second adjacent node identifier;
An electronic bulletin board providing device, comprising:
[0241]
(Supplementary Note 22) In a message posting method for posting a message to an electronic bulletin board for anonymous message exchange on a network by a computer,
Upon receiving the message posting request, encrypting the own node identifier of the computer in a format that only the user can decrypt, adding the own node identifier to the encrypted data as return route information,
Including destination anonymous route information defining a transmission route for performing anonymous communication with the server provided with the electronic bulletin board, the return anonymous route information, a source public key for encrypting return data, and the message Generate data packets,
Transmitting the data packet to an adjacent node on the route indicated by the destination anonymous route information;
A message posting method characterized in that:
[0242]
(Supplementary Note 23) In a posted message search method for searching a message posted on an electronic bulletin board for anonymous message exchange on a network by a computer,
Upon receiving the search condition of the message, encrypts the own node identifier of the computer in a format that only the user can decrypt, adds the own node identifier to the encrypted data as return route information,
The destination anonymous route information in which a transmission route for performing anonymous communication with the server provided with the electronic bulletin board is defined, the return anonymous route information, a source public key for return data encryption, and the search condition. Generate a data packet containing
Transmitting the data packet to an adjacent node on the route indicated by the destination anonymous route information;
Post message search method characterized by the following.
[0243]
(Supplementary Note 24) In an electronic bulletin board providing program for providing an electronic bulletin board for exchanging anonymous messages on a network by a computer,
To the computer,
A message posted on a bulletin board, first return anonymous route information indicating a first transmission route tracing from a sender of a contributor, and a first adjacent node identifier which is identification information of an adjacent node on the first transmission route. When receiving a post data packet addressed to itself, including the content of the data packet is registered in the database,
A search condition for the message, second return anonymous route information indicating a second transmission route tracing from a sender of the searcher, a second adjacent node identifier which is identification information of an adjacent node on the second transmission route, and Upon receiving a search data packet addressed to itself including a source public key for return data encryption, searching the database using the search condition,
Encrypting the message detected by the search means, the first return anonymous route information, and the first adjacent node identifier with the source public key;
Generating a response data packet including the encrypted data and the second return route information;
Transmitting the response data packet to a node indicated by the second adjacent node identifier;
An electronic bulletin board providing program for executing a process.
[0244]
【The invention's effect】
As described above, in the present invention, a route search packet is transmitted by multicast, and each node on the transmission route adds its own node identifier to the anonymous route information for reply and encrypts the entirety. Was transferred to the node. Therefore, the content of the reply anonymous route information when the route search packet reaches the destination node indicates the anonymous route. Since the reply anonymous route information is encrypted each time it passes through each node, individual nodes cannot recognize the entire route, and the sender's anonymity is maintained.
[0245]
Further, in the present invention, when a search is performed on a message posted on an electronic bulletin board via an anonymous route, the message is added to the anonymous route information up to the sender of the poster and transmitted to the searcher. Therefore, the searcher can respond to the anonymous poster via an anonymous route.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram of the invention applied to an embodiment.
FIG. 2 is a conceptual diagram of an anonymous communication network.
FIG. 3 is a diagram illustrating a hardware configuration example of a P2P onion node used in the embodiment of the present invention.
FIG. 4 is a block diagram illustrating a schematic functional configuration of a P2P onion node;
FIG. 5 is a block diagram showing a functional configuration of a P2P onion node.
FIG. 6 illustrates an anonymous communication infrastructure connection authentication function.
FIG. 7 illustrates an anonymous route discovery function.
FIG. 8 is a diagram illustrating an example of a data structure of a route search packet.
FIG. 9 is a diagram illustrating an example of a data structure of a route notification packet.
FIG. 10 is a sequence diagram illustrating a processing procedure of an anonymous route discovery function.
FIG. 11 is a diagram showing a transmission route of a route search packet.
FIG. 12 is a diagram showing a state transition state of a route search packet.
FIG. 13 is a diagram showing a transmission route of a route notification packet.
FIG. 14 is a diagram illustrating a state transition state of a route notification packet.
FIG. 15 is a diagram illustrating an example of a data structure in an anonymous route information holding unit.
FIG. 16 is a conceptual diagram showing an anonymous communication function.
FIG. 17 is a diagram illustrating an example of a data structure of a data packet.
FIG. 18 is a sequence diagram illustrating a processing procedure of an anonymous communication function.
FIG. 19 is a diagram illustrating a transmission path of a data packet.
FIG. 20 is a diagram showing a state transition state of a data packet.
FIG. 21 is a diagram illustrating a transmission path of a data packet in backtrack processing.
FIG. 22 is a diagram illustrating a state transition state of a data packet during backtrack transfer.
FIG. 23 is a diagram illustrating a transmission path of a data packet in multicast.
FIG. 24 is a diagram illustrating a configuration example of an anonymous communication network applied to an anonymous bulletin board;
FIG. 25 is a diagram illustrating an example of a data packet including post data.
FIG. 26 is a diagram illustrating an example of a data structure in a DB.
FIG. 27 is a diagram illustrating an example of a data packet including a search request.
FIG. 28 is a diagram illustrating an example of a data packet including a search result.
FIG. 29 is a diagram illustrating an example of a data packet including a reply message.
FIG. 30 is a diagram illustrating a transmission path of a data packet including reply contents.
[Explanation of symbols]
1 sending node
2 Relay node
3 receiving node
10 Anonymous communication network
100, 200, 300, 410, 420, 430, 440, 450 P2P onion nodes
110,210,310 P2P onion proxy
120,220,320 P2P onion router

Claims (5)

送信元を隠した状態で宛先までの伝送経路探索処理をコンピュータで実行するための匿名ルート探索要求方法において、
宛先識別子で前記宛先を指定した経路探索要求を受け取ると、自分の識別情報である自ノード識別子を自分のみが復号可能な形式で暗号化して返信用匿名ルート情報とし、
任意に生成した匿名識別子、前記宛先識別子、前記返信用匿名ルート情報、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを生成し、
前記ルート探索パケットをブロードキャストで送信する、
ことを特徴とする匿名ルート探索要求方法。
An anonymous route search request method for executing a transmission route search process to a destination with a computer in a state in which a source is hidden,
Upon receiving a route search request specifying the destination with the destination identifier, encrypting its own node identifier, which is its own identification information, in a format that can be decrypted only by itself and returning it as anonymous route information for reply,
An arbitrarily generated anonymous identifier, the destination identifier, the reply anonymous route information, and a route search packet including a source public key for return data encryption,
Transmitting the route search packet by broadcast,
An anonymous route search request method, characterized in that:
送信元が隠された伝送経路探索要求をコンピュータで中継するための匿名ルート探索要求中継方法において、
前記送信元の匿名識別子、探索相手を指定する宛先識別子、前記送信元から前記コンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、前記返信用匿名ルート情報と前記隣接ノード識別子とを自分のみが復号可能な形式で暗号化し、
前記ルート探索パケットに自分の識別情報である自ノード識別子を追加し、
前記ルート探索パケットをブロードキャストで送信する、
ことを特徴とする匿名ルート探索要求中継方法。
An anonymous route search request relay method for relaying a transmission path search request in which a transmission source is hidden by a computer,
Anonymous identifier of the transmission source, destination identifier specifying a search partner, anonymous return route information in which a transmission route from the transmission source to the computer is encrypted, and neighbor information which is identification information of an adjacent node on the transmission route Node identifier, and upon receiving a route search packet including the source public key for return data encryption, encrypts the reply anonymous route information and the adjacent node identifier in a format that only one can decrypt,
Add own node identifier which is its own identification information to the route search packet,
Transmitting the route search packet by broadcast,
An anonymous route search request relay method, characterized in that:
匿名ルート経由の匿名通信をコンピュータで中継するための匿名データ中継方法において、
前記匿名ルート上の次の送信先を示す次ノード識別子と次の送信先から宛先までの匿名ルート情報とが前記コンピュータの公開鍵で暗号化された宛先匿名ルート情報、前記コンピュータから送信元までの伝送ルートを示す戻り匿名ルート情報、および前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子を含むデータパケットを受け取ると、前記宛先匿名ルート情報を前記公開鍵に対応する秘密鍵で復号して、前記次ノード識別子を判別するとともに、復号されたデータを新たな前記宛先匿名ルート情報として前記データパケットに設定し、前記戻り匿名ルート情報と前記隣接ノード識別子とを前記公開鍵で暗号化して新たな前記戻り匿名ルート情報とし、
前記データパケットに前記コンピュータの自ノード識別子を追加し、
前記次ノード識別子で示されるノードに対して、前記データパケットを送信する、
ことを特徴とする匿名データ中継方法。
An anonymous data relay method for relaying anonymous communication via an anonymous route by a computer,
The next node identifier indicating the next destination on the anonymous route and the anonymous route information from the next destination to the destination are destination anonymous route information encrypted with the public key of the computer, Upon receiving a data packet including return anonymous route information indicating a transmission route and an adjacent node identifier which is identification information of an adjacent node on the transmission route, decrypts the destination anonymous route information with a secret key corresponding to the public key. Determining the next node identifier, setting the decrypted data in the data packet as new destination anonymous route information, encrypting the return anonymous route information and the adjacent node identifier with the public key. The new return anonymous route information,
Adding the own node identifier of the computer to the data packet,
Transmitting the data packet to a node indicated by the next node identifier;
A method for relaying anonymous data, comprising:
送信元が隠された伝送経路探索要求に対して宛先となるコンピュータで応答するための匿名ルート探索要求応答方法において、
前記送信元の匿名識別子、前記コンピュータ宛のパケットを示す宛先識別子、前記送信元から前記コンピュータまでの伝送ルートが暗号化された返信用匿名ルート情報、前記伝送ルート上で隣接するノードの識別情報である隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含むルート探索パケットを受け取ると、自分の識別情報である自ノード識別子と、自ノード宛て情報の暗号化用の受信ノード公開鍵とを前記送信元公開鍵で暗号化してルート情報とし、
前記匿名識別子でルート通知先が指定され、前記返信用匿名ルート情報、前記ルート情報、および前記送信元公開鍵を含むルート通知パケットを生成し、
前記隣接ノード識別子で示されるノードに対して前記ルート通知パケットを送信する、
ことを特徴とする匿名ルート探索要求応答方法。
An anonymous route search request response method for responding at a destination computer to a transmission route search request whose source is hidden,
The source anonymous identifier, a destination identifier indicating a packet addressed to the computer, a reply anonymous route information obtained by encrypting a transmission route from the source to the computer, and identification information of an adjacent node on the transmission route. Upon receiving a route search packet including a certain adjacent node identifier and a transmission source public key for return data encryption, the own node identifier which is its own identification information, and the receiving node public key for encrypting the information addressed to the own node. Is encrypted with the source public key to obtain root information,
The route notification destination is specified by the anonymous identifier, the reply anonymous route information, the route information, and generating a route notification packet including the source public key,
Transmitting the route notification packet to the node indicated by the adjacent node identifier,
A method of responding to an anonymous route search request characterized by the following.
ネットワーク上で匿名のメッセージ交換を行うための電子掲示板提供装置において、
掲示板に掲載するメッセージ、投稿者の送信元から辿ってきた第1伝送ルートを示す第1戻り匿名ルート情報、および前記第1伝送ルート上で隣接するノードの識別情報である第1隣接ノード識別子を含む自分宛の投稿データパケットを受け取ると、前記データパケットの内容をデータベースに登録する登録手段と、
前記メッセージに対する検索条件、検索者の送信元から辿ってきた第2伝送ルートを示す第2戻り匿名ルート情報、前記第2伝送ルート上で隣接するノードの識別情報である第2隣接ノード識別子、および返信データ暗号化用の送信元公開鍵を含む自分宛の検索データパケットを受け取ると、前記検索条件により前記データベース内を検索する検索手段と、
前記検索手段で検出された前記メッセージ、前記第1戻り匿名ルート情報、および前記第1隣接ノード識別子を前記送信元公開鍵で暗号化する暗号化手段と、
暗号化されたデータ、および前記第2戻りルート情報を含む応答データパケットを生成するパケット生成手段と、
前記第2隣接ノード識別子で示されるノードに対して前記応答データパケットを送信する送信手段と、
を有することを特徴とする電子掲示板提供装置。
In an electronic bulletin board providing device for performing anonymous message exchange on a network,
A message to be posted on a bulletin board, first return anonymous route information indicating a first transmission route tracing from a sender of the poster, and a first adjacent node identifier which is identification information of an adjacent node on the first transmission route. Registration means for registering the contents of the data packet in a database upon receipt of the post data packet addressed to the user,
A search condition for the message, second return anonymous route information indicating a second transmission route tracing from a sender of the searcher, a second adjacent node identifier which is identification information of an adjacent node on the second transmission route, and When receiving a search data packet addressed to itself including a transmission source public key for return data encryption, a search means for searching the database according to the search condition,
Encrypting means for encrypting the message detected by the search means, the first return anonymous route information, and the first adjacent node identifier with the source public key;
Packet generating means for generating a response data packet including the encrypted data and the second return route information;
Transmitting means for transmitting the response data packet to a node indicated by the second adjacent node identifier;
An electronic bulletin board providing device, comprising:
JP2003053673A 2003-02-28 2003-02-28 Anonymous route search request method, anonymous route search request relay method, anonymous data relay method, and anonymous route search request response method Expired - Fee Related JP4128094B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003053673A JP4128094B2 (en) 2003-02-28 2003-02-28 Anonymous route search request method, anonymous route search request relay method, anonymous data relay method, and anonymous route search request response method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003053673A JP4128094B2 (en) 2003-02-28 2003-02-28 Anonymous route search request method, anonymous route search request relay method, anonymous data relay method, and anonymous route search request response method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008010136A Division JP4401415B2 (en) 2008-01-21 2008-01-21 Electronic bulletin board providing device, message posting method, posted message search method, and electronic bulletin board providing program

Publications (2)

Publication Number Publication Date
JP2004266493A true JP2004266493A (en) 2004-09-24
JP4128094B2 JP4128094B2 (en) 2008-07-30

Family

ID=33118217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003053673A Expired - Fee Related JP4128094B2 (en) 2003-02-28 2003-02-28 Anonymous route search request method, anonymous route search request relay method, anonymous data relay method, and anonymous route search request response method

Country Status (1)

Country Link
JP (1) JP4128094B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007228087A (en) * 2006-02-21 2007-09-06 Nippon Telegr & Teleph Corp <Ntt> Path setting system and path setting method
JP2008245145A (en) * 2007-03-28 2008-10-09 D I System Co Ltd Security program and server
JP2015162128A (en) * 2014-02-27 2015-09-07 株式会社ナカヨ Information distribution system, communication device, program, and information distribution method
CN110289959A (en) * 2019-07-05 2019-09-27 郑州大学 A kind of two-way anonymous confidential corespondence agreement using bulletin board
CN114051236A (en) * 2022-01-12 2022-02-15 华东交通大学 Anonymous communication method, system, medium and electronic device based on rerouting mechanism

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007228087A (en) * 2006-02-21 2007-09-06 Nippon Telegr & Teleph Corp <Ntt> Path setting system and path setting method
JP4486600B2 (en) * 2006-02-21 2010-06-23 日本電信電話株式会社 Path setting system and path setting method
JP2008245145A (en) * 2007-03-28 2008-10-09 D I System Co Ltd Security program and server
JP2015162128A (en) * 2014-02-27 2015-09-07 株式会社ナカヨ Information distribution system, communication device, program, and information distribution method
CN110289959A (en) * 2019-07-05 2019-09-27 郑州大学 A kind of two-way anonymous confidential corespondence agreement using bulletin board
CN110289959B (en) * 2019-07-05 2022-07-29 郑州大学 Bidirectional anonymous secret communication method using bulletin board
CN114051236A (en) * 2022-01-12 2022-02-15 华东交通大学 Anonymous communication method, system, medium and electronic device based on rerouting mechanism
CN114051236B (en) * 2022-01-12 2022-04-12 华东交通大学 Anonymous communication method, system, medium and electronic device based on rerouting mechanism

Also Published As

Publication number Publication date
JP4128094B2 (en) 2008-07-30

Similar Documents

Publication Publication Date Title
US11522838B2 (en) Secure end-to-end transport through in intermediary nodes
JP2601983B2 (en) Secret communication method and device
US8364772B1 (en) System, device and method for dynamically securing instant messages
Maughan et al. Internet security association and key management protocol (ISAKMP)
US7509491B1 (en) System and method for dynamic secured group communication
US6826395B2 (en) System and method for secure trading mechanism combining wireless communication and wired communication
EP1635502B1 (en) Session control server and communication system
US20060280191A1 (en) Method for verifying and creating highly secure anonymous communication path in peer-to-peer anonymous proxy
US20050182937A1 (en) Method and system for sending secure messages over an unsecured network
JP6326173B1 (en) Data transmission / reception system and data transmission / reception method
CN114448730B (en) Packet forwarding method and device based on block chain network and transaction processing method
JP2008508573A (en) Improvements related to secure communications
JP5012173B2 (en) Encryption communication processing method and encryption communication processing apparatus
US11368288B2 (en) Apparatus and method of lightweight communication protocols between multiple blockchains
US20230403267A1 (en) Secure peer-to-peer based communication sessions via network operating system in secure data network
JP4233437B2 (en) Anonymous data transmission method, anonymous data relay method, anonymous data transmission device, anonymous data relay device, anonymous data transmission program, and anonymous data relay program
Maughan et al. RFC2408: Internet Security Association and Key Management Protocol (ISAKMP)
JP4401415B2 (en) Electronic bulletin board providing device, message posting method, posted message search method, and electronic bulletin board providing program
JP4128094B2 (en) Anonymous route search request method, anonymous route search request relay method, anonymous data relay method, and anonymous route search request response method
US20050044412A1 (en) Method and apparatus for private messaging among users supported by independent and interoperating couriers
Martin Jr Local anonymity in the Internet
US20010044905A1 (en) System and method for secure data communications
JP2005086428A (en) Method of obtaining authentication and performing crypto communication, authenticating system and authenticating method
JP2022021818A (en) Communication system, key management server device, router, and program
JP5018484B2 (en) Communication control device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050913

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050922

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080513

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080513

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees