説明

システム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェア

【課題】通信したい相手を安全でかつ実名性をもって検索することができるようなシステム、方法を提供する。
【解決手段】Aの個人情報Pa及びBの個人情報Pb’を記憶するAの情報端末と、Aの個人情報Pa’及びBの個人情報Pbを記憶するBの情報端末と、サーバとを有するシステムである。Bの情報端末はPa’及びPbを任意の演算によって演算したF(Pa’,Pb)を生成し、F(Pa’,Pb)をサーバに送信し、サーバはBの認識票とF(Pa’,Pb)とを関連づけて記憶し、Aの情報端末はPb’及びPaを任意の演算によって演算したF(Pa,Pb’)を生成し、F(Pa,Pb’)をサーバに送信し、サーバはF(Pa,Pb’)と一致する演算結果を検索し、F(Pa’,Pb)とF(Pa,Pb’)との一致を検出することによってF(Pa’,Pb)と関連づけて記憶されたBの認識票を検出しAの情報端末にBの認識票を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、およびアプリケーションソフトウェアに関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ、電話、ゲーム機のなどの各種情報端末がIP網に接続されるようになり、これまでは主としてWebに代表されるようにサーバ上での、世界に向けた情報公開に使われていたインターネットが、IP電話やネットワークゲーム、あるいはソーシャル・ネットワーク・サイト(SNS)などの、個人的な情報をサーバ上、あるいはピア・ツー・ピア(P2P)網上で、開示先を限定してやりとりすることのできるサービスに代表されるような、個人間のコミュニケーションの手段としても使われるようになってきた。
【0003】
さらに、デジタルカメラ、ビデオカメラ、携帯型音楽プレーヤー、ビデオレコーダ、ナビゲーションシステムなどの様々な民生機器も、IPネットワークへの接続が進んでおり、今後はこれらの様々な民生機器も、情報端末として個人間のコミュニケーションの手段として使われるようになると予想される。
【0004】
ネットワークに接続されたこのような各種情報端末を使ってのコミュニケーション、もしくはデータのやりとりを実現する場合、利用者はネットワーク上で通信したい相手を検索して見つける必要がある。
【0005】
ほとんどのサービスでは、個人間のコミュニケーションやデータのやりとりはサービス事業者の運営するサーバ上で行われるため、利用者はログイン時に認証を受けた上で、通信したい相手を探す際、その相手があらかじめサービス事業者に開示および登録しておいた個人情報を直接検索することで、相手を特定して通信をおこなう。
【0006】
また、ピア・ツー・ピア(P2P)型のようなサーバに依存しないアーキテクチャによって個人間のコミュニケーションやデータのやりとりを実現するサービスでは、通信したい相手を探す際、その相手がこのサービスの参加者に対して開示している個人情報を検索する問い合わせ(Query:クエリ)を、直接通信しているノード(近接ノード)に対して行う。このノードがこのクエリの検索対象である個人情報を持っていない場合、さらにこのノードの別の近接ノードに対してこのクエリを転送する。このクエリの検索対象である個人情報を持っているノードに出会うまでクエリの転送を繰り返すことで、通信したい相手を特定し、その相手のネットワーク上でのIDを得て通信を確立する。
【0007】
さらに、上記のようにサーバ上での個人情報を検索した上で、サーバのデータベース上で個人情報の一致を検出すると、通信を必要としている利用者に各々のネットワークIDを通知し、データ転送はP2Pで利用者同士が直接接続を確立しておこなう、いわゆるハイブリッド型のサービスも提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−244095号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
個人間のコミュニケーションやデータのやりとりをする際の、通信相手の特定やネットワークIDの取得のための、サーバ上、もしくはP2Pネットワーク上での個人情報の検索に関する解決すべき主な課題は以下の二点である。
【0010】
第一に、個人情報の機密性の問題である。この種のサービスの利用者があらかじめ登録した個人情報は、このサービスの利用者全員が検索対象として問い合わせることができ、問い合わせた情報とデータベース上の情報との一致が検出されると、その旨を問い合わせた者に通知する。したがって、不特定多数の利用者が登録された個人情報を入手可能であった。さらに巡回型のソフトウェアでこの検索対象を走査するなどすれば、このサービスの利用者のリスト等も作成できた。この種のサービスの利用者が登録し、検索に使われている個人情報は、事実上サービスの利用者全体に公開されていたといえる。さらに、サービス利用者がサービス事業者に開示した個人情報はそのサーバにデータベースとして保持されるため、これが何らかの形で外部に漏洩する危険もあった。利用者が誰かに検索してもらうためには、サービス事業者およびサービス利用者に対して個人情報を開示することは不可避であり、利用者が望む個人情報の秘匿とは本質的に矛盾があった。
【0011】
第二に、利用者が検索されたくない相手に検索されることを防ぐ手段がない点である。たとえばIP電話の電話帳において検索のための個人情報として利用者の名前を登録した場合、名前を知る世界中の誰もがこの利用者に電話をかけられるようになってしまう。また同様にSNSサービスで名前を登録すれば、勤務先には知られたくない個人的な人間関係、活動、嗜好などを知られてしまうかもしれない。悪意の第三者が、この検索に対して自動的に多数のクエリを送り、名前(氏名)やその他の付帯情報、さらにはネットワーク上のIDなどのデータベースを作成し、悪用するかもしれない。これらはすべて合法的な行為であり、これらを止めることは技術的手段のみならず法的手段をもってしてもあり得なかった。
【0012】
これらの問題により、現在実現されている個人間のコミュニケーションやデータのやりとりをするサービスでは、利用者のほとんどが検索対象となる個人情報から実名性を排除することを望む結果、検索となる個人情報には主として利用者が任意につけた本人確認のできないあだ名(ニックネーム)が使われており、その結果この種のサービス上ではほとんどが匿名者同士のコミュニケーションとなっていた。
【0013】
しかし、たとえばIP電話やSNSサービスの多くは、実名性をもったコミュニケーションがその本質である。これまでに提案されている方法によれば、電子メールや会話など、実名性をもった通信手段によって、直接通信したい相手本人からニックネームを入手することで、ニックネームをIP電話やSNSサービスで検索することで、通信を確立する場合がほとんどであり、このようなサービスで本来必要としている実名性のある検索は事実上機能しなくなっていた。
【0014】
図1は従来の検索方法を示した図である。利用者Aおよび利用者Bを含めてこのネットワークサービスの利用者は、あらかじめネットワークサービス事業者に個人を特定できる名前、電子メールアドレス、電話番号などの個人情報を登録しておく。ネットワークサービス事業者のサーバのデータベース11は、これら個人情報と、ネットワークサービス上で他者と接続および通信を行うために使う各利用者固有の認識票(ネットワークサービスID)との対応関係を記憶しておく。このネットワークサービス上でAがBを検索しBと通信したい時には、Aは、名前、ニックネーム、電子メールアドレスその他のAの知っているBの個人情報を、Aの情報端末12を通じてネットワークサービス事業者のサーバ17に送り、この個人情報をもとにネットワークサービス事業者のサーバ17にBの検索依頼13を行う。ネットワークサービス事業者のサーバ17のデータベース11において、Aの送ったBの個人情報とデータベース11に記憶されているBの個人情報との一致が検出されると、その旨をAの情報端末18に通知(14)した上、ネットワークサービス事業者のサーバ17などを経由してAの情報端末18とBの情報端末19との間の通信が確立(15)する。また、ネットワークサービス事業者がAの情報端末18のネットワークサービスIDをBの情報端末19を通してBに通知し、且つ、Bの情報端末のネットワークサービスIDをAの情報端末18を通してAに通知し、Aの情報端末18とBの情報端末19とが直接ピア・ツー・ピア(P2P)接続(16)を確立する。
【0015】
この従来の方法には二つの問題があった。
【0016】
第一に個人情報の機密性の問題である。この種のサービスの利用者があらかじめ登録した個人情報は、原則としてこのサービスの利用者全員が検索対象として問い合わせることができる。問い合わせた情報とデータベース上の情報との一致が検出されると、その旨を問い合わせた者に通知する。したがって、A及びBとは無関係な第三者である同じネットワークサービスの利用者Cは、たとえば名前や電子メールアドレスなどを問い合わせることによって、AやBの登録した個人情報を得ることができてしまう。さらに、巡回型のソフトウェアでこの検索対象を走査するなどすれば、このサービスの利用者のリスト等も作成できてしまう。この種のネットワークサービスの利用者が登録し、検索に使われている個人情報は、事実上ネットワークサービスの利用者全体に公開されている。さらに、ネットワークサービスの利用者がネットワークサービス事業者に開示した個人情報は、そのサーバにデータベースとして保持されるため、これが何らかの形で外部に漏洩する危険もあった。他者から検索してもらうためにはネットワークサービス事業者およびネットワークサービス利用者に対して、個人情報を開示することは不可避である。このような事情により、従来のネットワークサービスにおいては、利用者のほぼすべてが望む個人情報の秘匿とは本質的に矛盾するという問題があった。
【0017】
第二には、利用者が検索されたくない相手にもその利用者の情報が検索されることを防ぐ手段がない点である。たとえばIP電話の電話帳において、検索のための個人情報として利用者の名前を登録した場合、無関係の第三者CがBを検索できる結果、たとえBがCとの通信を望んでいなくとも、CはBに通信を求めることができてしまった。また同様に、BがSNSサービスで名前を登録すれば、勤務先には知られたくない個人的な人間関係、活動、嗜好などを知られてしまうかもしれない。悪意の第三者が、この検索に対して自動的に多数のクエリを送り、名前やその他の付帯情報、さらにはネットワーク上のIDなどのデータベースを作成し、悪用するかもしれない。これらはすべて合法的な行為であり、従来のネットワークサービスにおいては、これらを止めることは技術的手段のみならず法的手段をもってしてもあり得なかった。
【0018】
本発明は、このような事情に鑑みてなされたものであり、ネットワークに接続されたこのような各種情報端末を使ってのコミュニケーション、もしくはデータのやりとりを実現するサービスにおいて、通信したい相手を、安全で、かつ実名性をもって検索することができるようなシステム、方法、コンピュータプログラム、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、及びアプリケーションソフトウェアを提供することを目的とする。
【課題を解決するための手段】
【0019】
本発明の一実施形態によると、利用者Aの情報Pa及び利用者Bの情報Pb’を記憶する利用者Aの情報端末と、前記利用者Aの情報Pa’及び前記利用者Bの情報Pbを記憶する前記利用者Bの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Bの前記情報Pbを非可逆な任意の演算によって演算した第1の演算結果F(Pa’,Pb)を生成し、前記第1の演算結果F(Pa’,Pb)を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と前記第1の演算結果F(Pa’,Pb)とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Bの前記情報Pb’及び前記利用者Aの前記情報Paを非可逆な前記任意の演算によって演算した第2の演算結果F(Pa,Pb’)を生成し、前記第2の演算結果F(Pa,Pb’)を前記サーバに送信し、前記サーバは、前記第2の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa’,Pb)と前記第2の演算結果F(Pa,Pb’)との一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信することを特徴とするシステムが提供される。
【0020】
本発明の一実施形態によると、利用者Aの情報Pa及び利用者Bの情報Pb’を記憶する利用者Aの情報端末と、前記利用者Aの情報Pa’及び前記利用者Bの情報Pbを記憶する前記利用者Bの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Bの前記情報Pbを可逆な任意の演算によって演算した第1の演算結果F(Pa’,Pb)を生成し、前記第1の演算結果F(Pa’,Pb)を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と前記第1の演算結果F(Pa’,Pb)とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Bの前記情報Pb’及び前記利用者Aの前記情報Paを可逆な前記任意の演算によって演算した第2の演算結果F(Pa,Pb’)を生成し、前記第2の演算結果F(Pa,Pb’)を前記サーバに送信し、前記サーバは、前記第2の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa’,Pb)と前記第2の演算結果F(Pa,Pb’)との一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信することを特徴とするシステムが提供される。
【0021】
前記第1の演算結果は、前記利用者Aの情報端末および前記利用者Bの情報端末の両方に記憶された同一のワイルドカード情報*と、前記情報Pbとを演算した結果F(*,Pb)であり、前記第2の演算結果は、前記ワイルドカード情報*と、前記情報Pb’とを演算した結果F(*,Pb’)であるようにしてもよい。
【0022】
本発明の一実施形態によると、利用者Bの情報端末において生成された、利用者Aの情報Pa’及び利用者Bの情報Pbを非可逆な任意の演算によって演算した演算結果F(Pa’,Pb)を受信し、前記利用者Bの認識票と前記演算結果F(Pa’,Pb)とを関連づけて記憶することを特徴とするサーバが提供される。
【0023】
前記サーバは、前記利用者Aの情報端末において生成された、前記利用者Aの情報Pa及び前記利用者Bの情報Pb’を非可逆な前記任意の演算によって演算した第2の演算結果F(Pa,Pb’)を受信し、前記第2の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa’,Pb)と前記第2の演算結果F(Pa,Pb’)との一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信する。
【0024】
本発明の一実施形態によると、利用者Bの情報端末において生成された、利用者Aの情報Pa’及び利用者Bの情報Pbを可逆な任意の演算によって演算した演算結果F(Pa’,Pb)を受信し、前記利用者Bの認識票と前記演算結果F(Pa’,Pb)とを関連づけて記憶することを特徴とするサーバが提供される。
【0025】
本発明の一実施形態によると、前記サーバは、前記利用者Aの情報端末において生成された、前記利用者Aの情報Pa及び前記利用者Bの情報Pb’を可逆な前記任意の演算によって演算した第2の演算結果F(Pa,Pb’)を受信し、前記第2の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa’,Pb)と前記第2の演算結果F(Pa,Pb’)との一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信する。
用者Aの情報Pa及び利用者Bの情報Pb’を非可逆な任意の演算によって演算した第1の演算結果F(Pa,Pb’)を生成する演算手段と、前記第1の演算結果F(Pa,Pb’)をサーバに送信する送信手段と、前記サーバが、前記利用者Bの情報端末が前記利用者Aの情報Pa’及び前記利用者Bの情報Pbを非可逆な前記任意の演算によって演算した第2の演算結果F(Pa’,Pb)を前記利用者Bの認識票と関連づけて記憶し、前記利用者Aの情報端末から送信された前記第1の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa,Pb’)と前記第2の演算結果F(Pa’,Pb)との一致を検出することによって送信する前記利用者Bの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【0026】
本発明の一実施形態によると、利用者Aの情報Pa及び利用者Bの情報Pb’を可逆な任意の演算によって演算した第1の演算結果F(Pa,Pb’)を生成する演算手段と、前記第1の演算結果F(Pa,Pb’)をサーバに送信する送信手段と、前記サーバが、前記利用者Bの情報端末が前記利用者Aの情報Pa’及び前記利用者Bの情報Pbを可逆な前記任意の演算によって演算した第2の演算結果F(Pa’,Pb)を前記利用者Bの認識票と関連づけて記憶し、前記利用者Aの情報端末から送信された前記第1の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa,Pb’)と前記第2の演算結果F(Pa’,Pb)との一致を検出することによって送信する前記利用者Bの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【0027】
前記第1の演算結果は、前記利用者Aの情報端末および前記利用者Bの情報端末の両方に記憶された同一のワイルドカード情報*と、前記情報Pbとを演算した結果F(*,Pb)であり、前記第2の演算結果は、前記ワイルドカード情報*と、前記情報Pb’とを演算した結果F(*,Pb’)であるようにしてもよい。
【0028】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を記憶する利用者Aの情報端末と、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを記憶する前記利用者Bの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の第1の演算結果を生成し、前記第1の演算結果を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と前記第1の演算結果とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を生成し、前記第2の演算結果を前記サーバに送信し、前記サーバは、前記第2の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信することを特徴とするシステムが提供される。
【0029】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を記憶する利用者Aの情報端末と、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを記憶する前記利用者Bの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な任意の演算によって演算した一つ以上の第1の演算結果を生成し、前記第1の演算結果を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と前記第1の演算結果とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を生成し、前記第2の演算結果を前記サーバに送信し、前記サーバは、前記第2の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信することを特徴とするシステムが提供される。
【0030】
前記第1の演算結果は、F(P1a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pmb)のうち一つ以上であり、前記第2の演算結果は、F(P1b’,P1a)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)のうち一つ以上であるようにしてもよい。
【0031】
本発明の一実施形態によると、利用者Bの情報端末において生成された、利用者Aの情報P1a’、P2a’、・・・、Pna’(nは整数)及び前記利用者Bの情報P1b、P2b、・・・、Pmb(mは整数)を任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の演算結果を受信し、前記利用者Bの認識票と前記演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【0032】
本発明の一実施形態によると、利用者Bの情報端末において生成された、利用者Aの情報P1a’、P2a’、・・・、Pna’(nは整数)及び前記利用者Bの情報P1b、P2b、・・・、Pmb(mは整数)を任意に組み合わせて可逆な任意の演算によって演算した一つ以上の演算結果を受信し、前記利用者Bの認識票と前記演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【0033】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を組み合わせて非可逆な任意の演算によって演算した一つ以上の第1の演算結果を生成する演算手段と、前記第1の演算結果をサーバに送信する送信手段と、前記サーバが、前記利用者Bの情報端末が前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を前記利用者Bの認識票と関連づけて記憶し、前記利用者Aの情報端末から送信された前記第1の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって送信する前記利用者Bの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【0034】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を組み合わせて可逆な任意の演算によって演算した一つ以上の第1の演算結果を生成する演算手段と、前記第1の演算結果をサーバに送信する送信手段と、前記サーバが、前記利用者Bの情報端末が前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を前記利用者Bの認識票と関連づけて記憶し、前記利用者Aの情報端末から送信された前記第1の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって送信する前記利用者Bの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【0035】
本発明の一実施形態によると、前記第1の演算結果は、F(P1a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pmb)のうち一つ以上であり、前記第2の演算結果は、F(P1b’,P1a)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)のうち一つ以上である。
【0036】
本発明の一実施形態によると、前記第1の演算結果は、前記利用者AのP1a、P2a、・・・、Pnaのうち一つと前記利用者Bの情報P1b’、P2b’、・・・、Pmb’の一つを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の結果であり、前記第2の演算結果は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’のうち一つと前記利用者Bの情報P1b、P2b、・・・、Pmbの一つを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の結果である。
【0037】
本発明の一実施形態によると、利用者Aの情報Pa、利用者Bの情報Pb’及びQb’を記憶する利用者Aの情報端末と、前記利用者Aの情報Pa’並びに前記利用者Bの情報Pb及びQbを記憶する前記利用者Bの情報端末と、前記利用者Aの情報Pa’並びに前記利用者Cの情報Pc及びQcを記憶する前記利用者Cの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Bの前記情報Pbを非可逆な任意の演算によって演算した第1の演算結果F(Pa’,Pb)を生成し、前記第1の演算結果F(Pa’,Pb)を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と前記第1の演算結果F(Pa’,Pb)とを関連づけて記憶し、前記利用者Cの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Cの前記情報Pcを非可逆な前記任意の演算によって演算した第2の演算結果F(Pa’,Pc)を生成し、前記第2の演算結果F(Pa’,Pc)を前記サーバに送信し、前記サーバは、前記利用者Cの認識票と前記第2の演算結果F(Pa’,Pc)とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Bの前記情報Pb’及び前記利用者Aの前記情報Paを非可逆な前記任意の演算によって演算した第3の演算結果F(Pa,Pb’)を生成し、前記第3の演算結果F(Pa,Pb’)を前記サーバに送信し、前記サーバは、前記第3の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa’,Pb)と前記第3の演算結果F(Pa,Pb’)とが一致し且つ前記第2の演算結果F(Pa’,Pc)と前記第3の演算結果F(Pa,Pb’)とが一致する場合、前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票及び前記第2の演算結果と関連づけて記憶された前記利用者Cの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票及び前記利用者Cの前記認識票を送信し、前記利用者Aの情報端末は、前記利用者Bの前記情報Qb’を任意の第2の演算によって演算した第4の演算結果F(Qb’)を生成し且つ前記第4の演算結果F(Qb’)を前記利用者B及び前記利用者Cに要求し、前記利用者Bの情報端末は、前記情報Qbを前記任意の第2の演算によって演算した第5の演算結果F(Qb)を生成し、前記第4の演算結果F(Qb)を前記利用者Aの情報端末に送信し、前記利用者Aの情報端末は、前記第4の演算結果F(Qb’)と前記第5の演算結果F(Qb)との一致を検出することによって、前記利用者Bの情報端末を特定することを特徴とするシステムが提供される。
【0038】
本発明の一実施形態によると、利用者Aの情報Pa、利用者Bの情報Pb’及びQb’を記憶する利用者Aの情報端末と、前記利用者Aの情報Pa’並びに前記利用者Bの情報Pb及びQbを記憶する前記利用者Bの情報端末と、前記利用者Aの情報Pa’並びに前記利用者Cの情報Pc及びQcを記憶する前記利用者Cの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Bの前記情報Pbを可逆な任意の演算によって演算した第1の演算結果F(Pa’,Pb)を生成し、前記第1の演算結果F(Pa’,Pb)を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と前記第1の演算結果F(Pa’,Pb)とを関連づけて記憶し、前記利用者Cの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Cの前記情報Pcを可逆な前記任意の演算によって演算した第2の演算結果F(Pa’,Pc)を生成し、前記第2の演算結果F(Pa’,Pc)を前記サーバに送信し、前記サーバは、前記利用者Cの認識票と前記第2の演算結果F(Pa’,Pc)とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Bの前記情報Pb’及び前記利用者Aの前記情報Paを可逆な前記任意の演算によって演算した第3の演算結果F(Pa,Pb’)を生成し、前記第3の演算結果F(Pa,Pb’)を前記サーバに送信し、前記サーバは、前記第3の演算結果F(Pa,Pb’)と一致する演算結果を検索し、前記第1の演算結果F(Pa’,Pb)と前記第3の演算結果F(Pa,Pb’)とが一致し且つ前記第2の演算結果F(Pa’,Pc)と前記第3の演算結果F(Pa,Pb’)とが一致する場合、前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票及び前記第2の演算結果と関連づけて記憶された前記利用者Cの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票及び前記利用者Cの前記認識票を送信し、前記利用者Aの情報端末は、前記利用者Bの前記情報Qb’を任意の第2の演算によって演算した第4の演算結果F(Qb’)を生成し且つ前記第4の演算結果F(Qb’)を前記利用者B及び前記利用者Cに要求し、前記利用者Bの情報端末は、前記情報Qbを前記任意の第2の演算によって演算した第5の演算結果F(Qb)を生成し、前記第4の演算結果F(Qb)を前記利用者Aの情報端末に送信し、前記利用者Aの情報端末は、前記第4の演算結果F(Qb’)と前記第5の演算結果F(Qb)との一致を検出することによって、前記利用者Bの情報端末を特定することを特徴とするシステムが提供される。
【0039】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を記憶する利用者Aの情報端末と、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmb、および前記利用者Bの情報P1b、P2b、・・・、Pmbの各々に関連づけられたフラグ情報FLG1b、FLG2b、・・・、FLGmbを記憶する前記利用者Bの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の第1の演算結果を生成し、前記第1の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Bの情報に関連づけられた前記フラグ情報を関連づけ、前記第1の演算結果と対応する前記フラグ情報の対を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と、一つ以上の前記第1の演算結果とそれに対応する前記フラグ情報の対とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を生成し、前記第2の演算結果を前記サーバに送信し、前記サーバは、前記第2の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票、および各々の前記第1の演算結果と対をなす利用者Bの前記フラグ情報を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票および前記フラグ情報を送信することを特徴とするシステムあg提供される。
【0040】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を記憶する利用者Aの情報端末と、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmb、および前記利用者Bの情報P1b、P2b、・・・、Pmbの各々に関連づけられたフラグ情報FLG1b、FLG2b、・・・、FLGmbを記憶する前記利用者Bの情報端末と、サーバと、を有するシステムであって、前記利用者Bの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な任意の演算によって演算した一つ以上の第1の演算結果を生成し、前記第1の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Bの情報に関連づけられた前記フラグ情報を関連づけ、前記第1の演算結果と対応する前記フラグ情報の対を前記サーバに送信し、前記サーバは、前記利用者Bの認識票と、一つ以上の前記第1の演算結果とそれに対応するフラグ情報の対とを関連づけて記憶し、前記利用者Aの情報端末は、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を生成し、前記第2の演算結果を前記サーバに送信し、前記サーバは、前記第2の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票、および各々の前記第1の演算結果と対をなす前記利用者Bのフラグ情報を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票および前記フラグ情報を送信することを特徴とするシステムが提供される。
【0041】
前記第1の演算結果のそれぞれが、これに関連づけられる一つ以上の任意の数の前記フラグ情報を有するようにしてもよい。
【0042】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を任意に組み合わせて非可逆な任意の演算よって演算した一つ以上の第1の演算結果を生成し、前記第1の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Bの情報に関連づけられたフラグ情報を関連づける演算手段と、前記第1の演算結果と対応する前記フラグ情報との対を前記サーバに送信する送信手段と、前記サーバが、前記利用者Bの情報端末が前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmb、および利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な任意の演算よって演算した一つ以上の第2の演算結果を前記利用者Bの認識票と関連づけて記憶し、前記利用者Aの情報端末から送信された前記第1の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって送信する前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票、および各々の第1の演算結果と対をなす前記利用者Bの前記フラグ情報を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【0043】
本発明の一実施形態によると、利用者Aの情報P1a、P2a、・・・、Pna(nは整数)及び利用者Bの情報P1b’、P2b’、・・・、Pmb’(mは整数)を任意に組み合わせて可逆な任意の演算よって演算した一つ以上の第1の演算結果を生成し、前記第1の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Bの情報に関連づけられたフラグ情報を関連づける演算手段と、前記第1の演算結果と対応する前記フラグ情報との対を前記サーバに送信する送信手段と、前記サーバが、前記利用者Bの情報端末が前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmb、および利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な任意の演算よって演算した一つ以上の第2の演算結果を前記利用者Bの認識票と関連づけて記憶し、前記利用者Aの情報端末から送信された前記第1の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって送信する前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票、および各々の第1の演算結果と対をなす前記利用者Bの前記フラグ情報を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【0044】
前記第1の演算結果のそれぞれが、これに関連づけられる一つ以上の任意の数の前記フラグ情報を有するようにしてもよい。
【0045】
本発明の一実施形態によると、利用者Bの情報端末において生成された、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の第1の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Bの情報に関連づけられた前記フラグ情報と対応する前記第1の演算結果の対を受信し、前記利用者Bの認識票と前記第1の演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【0046】
前記サーバは、前記利用者Aの情報端末において生成された、前記利用者Aの情報P1a、P2a、・・・、Pna及び利用者Bの情報P1b’、P2b’、・・・、Pmb’を非可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を受信し、前記第2の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票および各々の前記第1の演算結果と対をなす前記利用者Bの前記フラグ情報を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信するようにしてもよい。
【0047】
本発明の一実施形態によると、利用者Bの情報端末において生成された、前記利用者Aの情報P1a’、P2a’、・・・、Pna’及び利用者Bの情報P1b、P2b、・・・、Pmbを任意に組み合わせて可逆な任意の演算によって演算した一つ以上の第1の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Bの情報に関連づけられた前記フラグ情報と対応する前記第1の演算結果の対を受信し、前記利用者Bの認識票と前記第1の演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【0048】
前記サーバは、前記利用者Aの情報端末において生成された、前記利用者Aの情報P1a、P2a、・・・、Pna及び利用者Bの情報P1b’、P2b’、・・・、Pmb’を可逆な前記任意の演算によって演算した一つ以上の第2の演算結果を受信し、前記第2の演算結果と一致する演算結果を検索し、前記第1の演算結果と前記第2の演算結果との少なくとも一つの一致を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票および各々の前記第1の演算結果と対をなす前記利用者Bの前記フラグ情報を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信するようにしてもよい。
【0049】
前記第1の演算結果のそれぞれが、これに関連づけられる一つ以上の任意の数の前記フラグ情報を有するようにしてもよい。
【0050】
前記任意の演算は、可換な演算であってもよい。
【0051】
前記任意の演算は、非可換な演算であってもよい。
【0052】
前記演算は、演算対象の文字列を結合する演算であってもよい。
【0053】
前記利用者Aと前記利用者Bとは、異なるネットワークサービスを使用していてもよい。
【0054】
前記利用者Aと前記利用者Bと前記利用者Cとは、異なるネットワークサービスを使用していてもよい。
【0055】
前記情報は、氏名、年齢、職業、居住地域又は嗜好の情報であってもよい。
【発明の効果】
【0056】
本発明に係るシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェアには、ネットワークに接続されたこのような各種情報端末を使っての通信、もしくはデータのやりとりを実現するサービスにおいて、利用者が、一切の個人情報を、サービス利用者に対して、更にサービス事業者に対してさえ開示することなく、かつ利用者が検索されたくない相手からはその利用者が決して探せないような、検索機能が組み込まれている。従って、本発明によれば、通信したい相手を実名性をもってかつ安全に検索することが実現できる。
【発明を実施するための形態】
【0057】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。なお、以下の実施形態は、本発明を実施するための例に過ぎず、本発明のシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、及びアプリケーションソフトウェアは、以下の実施形態に限定されるわけではない。
【0058】
(実施形態1)図2から図7を参照して、本発明の一実施形態に係るシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェアおける検索の原理について説明する。図2から図4においてはすべて、電子メール、IP電話、ネットワークゲーム、SNSなどの、ネットワークに接続された情報端末を利用して特定の個人間でのコミュニケーションやデータのやりとりをするネットワークサービスの利用者Aが、本発明の一実施形態に係るシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェアが提供する検索機能を利用して、Aの知っている同じネットワークサービスを利用している利用者Bを検索する方法を示している。
【0059】
図2は本発明の実施形態の一例を示している。ここでは、本発明の一実施形態に係るシステム及び方法について以下説明する。本発明のシステム、サーバ、情報端末、情報通信機器においては、本発明のオペレーティングシステム、ミドルウェア、認証方法、アプリケーションソフトウェアが搭載され、本発明の方法が実行される。
【0060】
本実施形態に係る本発明のシステムは、サーバ100並びに情報端末104及び情報端末106を有する。図2においては、サーバ100とインターネット、イントラネット、LAN、あるいはUSB等による直接接続等によって接続された、本発明の情報端末又は情報通信機器の一実施形態である利用者端末104及び106が示されている。利用者端末104及び106においては、本発明の本実施形態に係るオペレーティングシステム、ミドルウェア、認証方法、及びアプリケーションソフトウェアが搭載され、本発明の方法が実行される。
【0061】
図2において、利用者Aと利用者Bとは、それぞれ、ネットワークに接続された情報端末104及び情報端末106を利用して特定の個人間でのコミュニケーションやデータのやりとりをする、たとえば電子メール、IP電話、ネットワークゲーム、SNSなどの、特定のネットワークサービスの利用者である。
【0062】
いま、図2で、Aの情報端末104に記憶されている住所録には、B,C,DというAが知る三名の友人の個人情報として名前Pb’,Pc’,Pd’21が登録されている。図2に示す状態は、Aは、B、C及びDと通信してもよいということを示している。またBの情報端末106に記憶されている住所録には、A,E、FというBが直接知る三名の友人の名前Pa’,Pe’,Pf’22が登録されている。
【0063】
ただし、各情報(本実施形態においては、名前)の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえば図2ではPb’はAがAの端末104で記憶・保持しているBの名前を意味している。また、Pbは、BがBの端末106で記憶・保持しているB自身の名前であることを意味している。通常であればPb’=Pbであるが、たとえばどちらかの端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【0064】
図3は、本実施形態に係るサーバ100の概略構成図である。サーバ100は、本実施形態の本発明のシステムを使用する利用者の名前などの情報が記憶・保持されているデータベース102と、データ処理手段108とを有している。データ処理手段は、送受信手段108a、テーブル作成手段108b及び検索手段108cを有している。
【0065】
図4は、本実施形態に係る利用者Aの情報端末104のブロック図である。情報端末104は、本実施形態の本発明のシステムを使用する他の利用者の名前などの情報が記憶・保持されているデータベース21と、データ処理手段110とを有している。データ処理手段は、演算手段110a及び送受信手段110bを有している。
【0066】
図5は、本実施形態に係る利用者Bの情報端末106のブロック図である。情報端末106は、情報端末104と同様、本実施形態の本発明のシステムを使用する他の利用者の名前などの情報が記憶・保持されているデータベース22と、データ処理手段112とを有している。データ処理手段は、演算手段112a及び送受信手段112bを有している。
【0067】
以下、利用者Aが他の利用者B、C及びDの情報を情報端末104のデータベース21に記憶・保持しており、利用者Bが他の利用者A、E及びFの情報を情報端末106のデータベース22に記憶・保持している場合について、情報端末104が情報端末106を検索した上、通信を確立するステップについて図2〜図7を参照して説明する。図6は、本実施形態に係る本発明のシステム及び方法によって情報端末104が情報端末106を検索した上、通信を確立する動作のフローチャートである。なお、サーバ100、情報端末104及び情報端末106には、その他の利用者の情報が記憶されていてもよい。
【0068】
図2で、利用者Aの情報端末104では、演算手段110aが、データベース21に記憶・保持されているBの名前を表す文字列Pb’と、データベース21に記憶・保持されているA自身の名前を表す文字列Paとの結合Pb’+Paを生成し、更にこの結合文字列に対してSHA−1、MD−5などといった任意のハッシュ関数による演算を施した結果H(Pb’+Pa)をデータベース21に記憶・保持する(ステップS100)。ここでは、結合列文字列をハッシュ関数Hによって処理した演算結果をH(Pb’+Pa)と表す。同様に、Aの情報端末104において、演算手段110aは、CとA、DとAの各々の名前を表す文字列を結合した上ハッシュ関数で演算を施した演算結果H(Pc’+Pa)、H(Pd’+Pa)を生成し、データベース21に記憶・保持する(ステップS100)。次に、Aの情報端末104の送受信手段110bは、ネットワークサービス事業者のサーバ100に演算結果H(Pb’+Pa)、H(Pc’+Pa)、およびH(Pd’+Pa)を送る(ステップS101)。サーバ100のデータ処理手段108が、H(Pb’+Pa)、H(Pc’+Pa)、およびH(Pd’+Pa)を送受信手段108aで受信する。サーバ100のテーブル作成手段108bは、演算結果H(Pb’+Pa)、H(Pc’+Pa)、およびH(Pd’+Pa)をAのネットワークサービスIDなどこのネットワークサービス上でAを一意に特定するための認識票IDa、またはAとの接続のために必要な情報と関連づけた上で登録(23)し、データベース102に記憶・保持する(ステップS102)。ここでの認識票とは、このネットワークサービス上でAが一意に特定できる情報であれば何でもよく、たとえばこのネットワークサービス事業者があらかじめ利用者Aを含む全利用者に対して重複がないように割り当てた数値、あるいはこのネットワークサービスの他の利用者と重複がないことがあらかじめわかっている電子メールアドレスなどのような情報でもかまわない。本実施形態およびこれ以降示すすべての実施形態での認識票も同様とする。なお、サーバ100及びAの情報端末104における演算やデータの送受信は、データ処理手段108及び110に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【0069】
ここで、本実施形態1においては、Aの端末104に記憶されている、他者の名前および自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、PaはAの端末104で記憶されているAの名前であり、Pb’、Pc’およびPd’はAの端末104で記憶されている各々B、C、およびDの名前というように、すべて名前という同じ属性の個人情報を用いたが、PaはAの名前、Pb’はBの住所、Pc’はCの電話番号、Pd’はDの年齢というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【0070】
また、本実施形態においては、たとえばPb’とPaの文字列結合という操作をおこなった上でハッシュ関数による演算結果H(Pb’+Pa)を用いたが、この演算結果はPb’とPaをもとにして結果が一意に決まる任意の演算結果F(Pb’、Pa)であってもよい。この任意の演算F(Pb’、Pa)は可逆演算、すなわちF(Pb’、Pa)からPb’およびPaを逆算できるものでも、非可逆演算、すなわちすなわちF(Pb’、Pa)からPb’およびPaを逆算できないものであってもよい。また、この任意の演算F(Pb’、Pa)は、可換な演算、すなわちF(Pb’、Pa)=F(Pa、Pb’)であっても、非可換な演算、すなわちF(Pb’、Pa)≠F(Pa、Pb’)であってもよい。本実施形態で用いた文字列結合のハッシュ演算H(Pb’+Pa)は、任意の演算F(Pb’、Pa)のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。本実施形態、およびこれ以降示すすべての実施形態で用いられる文字列結合のハッシュ関数の演算結果も、すべてここで述べた任意の関数の演算結果であってもよい。
【0071】
同様に、図2で、利用者Bの情報端末106では、演算手段112aが、データベース22に記憶・保持されているAの名前を表す文字列Pa’と、データベース22に記憶・保持されているB自身の名前を表す文字列Pbとの結合Pa’+Pbを生成し、更にこの結合文字列に対してSHA−1、MD5などといった任意のハッシュ関数による演算を施した結果H(Pa’+Pb)を生成し、データベース22に記憶・保持する(ステップS103)。このBの情報端末106で行われる結合文字列のハッシュ演算Hは、如何なるハッシュ演算であってもよいが、Aの情報端末104で行われるハッシュ演算Hと同じ演算Hであることが要求される。同様に、Bの情報端末106において、演算手段112aは、EとB,FとB、の各々の名前の文字列結合のハッシュ演算結果H(Pe’+Pb)、およびH(Pf’+Pb)を生成し、これらの三つの演算結果H(Pa’+Pb)、H(Pe’+Pb)、およびH(Pf’+Pb)をデータベース22に記憶・保持する(ステップS103)。次に、Bの情報端末106の送受信手段112bは、ネットワークサービス事業者のサーバ100に演算結果H(Pa’+Pb)、H(Pe’+Pb)、およびH(Pf’+Pb)を送る(S104)。サーバ100のデータ処理手段108が、演算結果H(Pa’+Pb)、H(Pe’+Pb)、およびH(Pf’+Pb)を送受信手段108bで受信する。サーバ100のテーブル作成手段は、演算結果H(Pa’+Pb)、H(Pe’+Pb)、およびH(Pf’+Pb)を、ネットワークサービスIDなどこのネットワークサービス上でBを一意に特定するための認識票IDb、またはBとの接続のために必要な情報と関連づけた上で登録(24)し、データベース102に記憶・保持する(ステップS105)。なお、Bの情報端末106におけるハッシュ値の生成は、データ処理手段に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【0072】
ここで、本実施形態1においては、Bの端末106に記憶されている、他者の名前および自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、PbはBの端末106で記憶されているBの名前であり、Pa’、Pe’およびPf’はBの端末106で記憶されている各々A、E、およびFの名前というように、すべて名前という同じ属性の個人情報を用いたが、PbはBの名前、Pa’はAの住所、Pe’はEの電話番号、Pf’はFの職業というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【0073】
次に、利用者Aが利用者Bとの通信を望む場合、利用者Aの情報端末104において、演算手段110aは、Bの名前とAの名前の文字列結合をハッシュ演算した結果H(Pa+Pb’)を生成する(ステップS106)。このAの情報端末104で行われる任意のハッシュ演算Hは、如何なる演算であってもよいが、利用者Aの情報端末104がサーバ100に登録するためのハッシュ演算Hと同じハッシュ演算Hであることが要求される。そして、利用者Aの情報端末104の送受信手段110bは、演算結果H(Pa+Pb’)をネットワークサービス事業者のサーバ100に送ることによって、サーバ100に検索を依頼(25)する(ステップS107)。情報端末104から送信された演算結果H(Pa+Pb’)は、サーバ100におけるデータ処理手段108の送受信手段108aによって受信される。そして、データ処理手段108の検索手段108cが情報端末104から送信された演算結果H(Pa+Pb’)と一致するデータベース100に登録されている演算結果を検索する(ステップS108)。ここで、図2に示す例では、ネットワークサービス事業者のデータベース102にBの認識票またはBとの接続に必要な情報と関連づけられたH(Pa’+Pb)がBによって登録されている。この検索依頼に対して、ネットワークサービス事業者のサーバ100における検索手段108cは、データベース100においては、情報端末104から送信された演算結果H(Pa+Pb’)と、データベース100に登録されているBの認識票または接続に必要な情報と関連づけられて登録されている演算結果との一致、(即ち、H(Pa+Pb’)=H(Pa’+Pb))を検出(26)する。これをもとに、サーバ100は、利用者Aの情報端末104に利用者Bのこのネットワークサービス上での認識票IDb、または接続情報を送信する(ステップS109)。利用者Aの情報端末104は、サーバから送信された利用者Bのこのネットワークサービス上での認識票IDb、またはBとの接続のために必要な情報に基づき、接続サーバ200を介して利用者Bの情報案末106との通信(27)を確立する。また、この利用者Aによる検索依頼に対して、ネットワークサービス事業者のサーバ100における検索手段108cが、データベース100において、情報端末104から送信された演算結果H(Pa+Pb’)と、データベース100に登録されているBのこのネットワークサービス上での認識票、またはBとの接続のために必要な情報と関連づけて登録されている演算結果との一致を検出しない場合は、サーバ100は、利用者Aの情報端末104へ利用者Bのこのネットワークサービス上での認識票、またはBとの接続のために必要な情報を送信せず(ステップS110)、利用者Aの情報端末104と利用者Bの情報端末106との通信(27)を確立しない。
【0074】
本実施形態において、図2で、このネットワークサービスによる通信やデータ転送が、P2Pネットワーク上で構築されている場合には、Aの情報端末104からのサーバ100に対するH(Pa+Pb’)の問い合わせで、サーバ100においてBによってサーバ100に登録されたH(Pa’+Pb)との一致(H(Pa+Pb’)=H(Pa’+Pb))が検出された際、サービス事業者のサーバ100からAの情報端末104に対してBのこのネットワークサービス上での認識票、またはBとの接続のために必要な情報を通知することで、Aの情報端末104とBの情報端末106とのP2P接続28を確立するようにしてもよい。
【0075】
なお、本実施形態では、Aの端末104がサーバ100に問い合わせる情報H(Pa+Pb’)として、Aの端末に記憶されているA自身の名前とBの名前というように、同じ属性の個人情報の組み合わせのハッシュという演算結果を用いたが、たとえばPaとしてAの電話番号、Pb’としてBの住所、というように属性の異なる個人情報を組み合わせて、そのハッシュ値をサーバ100に問い合わせても良い。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。この場合でも、Aの端末104からサーバ100への問い合わせに用いる個人情報の組み合わせのハッシュ値と、Bの情報端末106がサーバ100に登録(ステップS104)した個人情報の組み合わせのハッシュ値が等しい(H(Pa+Pb’)=H(Pa’+Pb))なら、サーバ100は、Aの情報端末104に対してBの認識票を送る。この場合に、H(Pa+Pb’)≠H(Pa’+Pb)であれば、サーバ100はAの情報端末104に対してBの認識票を送らない。
【0076】
本実施形態では、一例として名前の文字列結合のハッシュ関数という非可換な演算を用いたが、既に述べたように、これは任意の演算Fでよい。一般に、ここで用いる任意の演算が非可換である場合には、利用者Aの情報端末104からの利用者Bの検索において、利用者Aの端末104に保持されているA自身の情報およびBの個人情報、および利用者Bの端末106に保持されているB自身の情報およびAの個人情報、の両方が正しい、すなわちPa’=PaかつPb’=Pbである場合には、サーバ100の検索手段108cは、一意に利用者Bの端末106を特定することができる。
【0077】
もし、ここで用いる任意の演算Fが可換である場合には、利用者Aの情報端末104からの、利用者Bの検索において、利用者Aの端末104に保持されているA自身の情報およびBの個人情報、および利用者Bの端末106に保持されているB自身の情報およびAの個人情報の両方が正しい、すなわちPa’=PaかつPb’=Pbである場合、利用者Bの情報端末104がネットワークサービス事業者サーバ100に送信し、利用者データベース102で保持されているF(Pa’,Pb)と利用者Aがネットワークサービス事業者サーバ100に対して問い合わせるF(Pb’,Pa)が等しくなる。このため、利用者Aが利用者Bとの通信を望む際におこなう問い合わせ25に対して、利用者Bを一意に特定するためには、サーバ100の検索手段108は、利用者Aが登録したF(Pa’,Pb)と、利用者Bが登録したF(Pb’,Pa)の二つの一致を検出する結果、これだけではAが通信を望む相手Bを一意に特定できない。したがって、ここで用いる任意の演算Fが可換である場合には、利用者Aが利用者Bの問い合わせ25を行う際に、利用者Aのこのネットワークサービスの認識票や接続情報もあわせてサーバ100に送信することで、サーバ100の検索手段においては一致を検出する二つの演算結果のうちで、どちらが検索対象である利用者Bのものかを判断するなどして、利用者Aが検索している利用者Bを一意に特定することができる。
【0078】
また、本実施形態において用いた演算結果H(Pa’+Pb)などは、ネットワークサービス事業者のサーバ100に記憶・保持しておいて、再度のAからBへの接続に利用しても良いが、一度サーバ100からAの端末104に送られた、このネットワークサービス上でのBの認識票IDb、またはBとの接続のために必要な情報を、Aの端末104のデータベース21に保存しておけば、二回目以降にAがBとの通信を望む場合にAは、Bの認識票や接続のために必要な情報を足がかりとしてBとの接続を確立できるので、一度検索されたH(Pa’+Pb)などをネットワークサービス事業者のサーバのデータベース102から削除するようにしてもよい。
【0079】
もし、たとえばBの情報端末106に保持されているAの名前の情報が間違っている場合、すなわち、Pa’≠Paである場合には、H(Pa+Pb’)≠H(Pa’+Pb)となり、上述したような手順でAがBを検索しても演算結果Fの一致が検出されない。このような場合には、名前以外の個人情報、たとえば住所、所属、電話番号、電子メールアドレスなどの他の個人情報について、同様の検索手段を用いることで、AがBを検索し一意に特定することができる。つまり、名前以外の個人情報、たとえば居住地域、住所、所属、電話番号、電子メールアドレス、出身地、嗜好(例えば、好きな映画、好きな音楽、好きな歌手、好きな自動車・自動車メーカ、好きな外国、好きなスポーツ、好きな作家、利用しているコンピュータのメーカ、好きな料理など)などの他の個人情報の文字列結合について、演算結果Hを生成し、同様の検索手段を実行することができる。
【0080】
なお、上述したとおり、Aの情報端末104とBの情報端末106とが通信の確立を行うとき、サービス事業者のサーバ100からAの情報端末104に対してBのこのネットワークサービス上での認識票IDb、またはBとの接続のために必要な情報通知することで、Aの情報端末104とBの情報端末106とのP2P接続28を確立するようにしてもよい。また、図7に示すように、別のネットワークサービス事業者の接続サーバ200を介してAの情報端末104とBの情報端末106との接続を確立してもよい。
【0081】
上述した本実施形態に係る本発明によるシステム及び方法によれば、図1に示した従来の方法に比べて以下三つの利点がある。
【0082】
第一に、本実施形態で用いた文字列結合のハッシュ関数演算というような、非可逆演算を用いた場合には、検索サービスにおける機密性保持が容易な点である。従来の検索方法では、個人情報をネットワークサービス事業者のサーバに登録しなければ利用者が検索できなかったのに対して、本発明によるシステム及び方法によれば、非可逆演算を用いた場合には、利用者二人の個人情報を非可逆演算によって処理した演算結果をネットワークサービス事業者のサーバに登録するので、被検索者は一切の個人情報を検索用に公開しないにもかかわらず検索者からの検索が可能となり、またネットワークサービス事業者は利用者の一切の個人情報を保持することなく検索手段を提供できる。たとえば、図2の例では、Bが他の利用者から検索してもらうための情報としてネットワークサービス事業者に開示するのはB自身の個人情報ではなく、たとえばAとBの名前の結合文字列のハッシュ関数による演算結果H(Pa’+Pb)であり、このハッシュ値からはAまたはBのいかなる個人情報も導けない。よって、本発明のシステム及方法によると、個人情報の保護を十分に図ることができる。もし、本発明によるシステム及び方法で、可逆演算を利用した場合には、ネットワークサービス事業者のサーバに登録する情報から、利用者の個人情報が復元できてしまうという点で、利用者の個人情報に関する機密保持レベルは、非可逆演算を利用する場合よりも低くなる。しかし可逆演算を利用した場合でも、従来の方法に比べると、非可逆演算を利用した場合と同様、以下残る二つの点で優れている。
【0083】
第二に、検索対象となる者にとって望まない検索者からの検索を排除できる点である。図1に示したような従来の方法では検索対象となる利用者は、すべての利用者からの検索が可能であるため、無関係な第三者から検索され、無関係な第三者に、被検索者が検索用に開示した個人情報を入手される危険があるという問題があった。それに対して、本発明によるシステム及び方法によれば、検索対象となる利用者は、たとえば本実施形態では、自分の名前と、自分が知っておりかつ検索されても良いと思っている他者の名前との組み合わせのハッシュを登録しておくので、自分の名前と組み合わせて登録した利用者以外の他者から検索されることがない。つまり、検索されることを望まない他者から検索されることがない。たとえば図2の例では、Aを検索できるのはB、C、およびDの三名のみであり、ハッシュが衝突する場合を除いて、これ以外の利用者はAを検索する手段を持たない。
【0084】
第三には、一意性の低い情報を使っても精度の高い検索が可能となる点である。従来の方法によれば、たとえば名前のような、同姓同名という重複の可能性の多い、言い換えれば一意性の低い個人情報を使った検索を行うと、同姓同名の利用者との一致が多数検出されてしまい、検索対象を特定できないという問題があった。そのために、あまり重複することのない個人情報、たとえば電子メールアドレス、電話番号、社会保険番号などの個人情報を検索に用いることが多いが、重複することのないことがあらかじめわかっている情報は、名前などよりも機密性が高く、これらをネットワークサービス事業者のサーバに登録し、かつ不特定の利用者に検索を許すことには情報漏洩のリスクという問題があった。本発明によるシステム及び方法によれば、たとえ名前といった一意性が低く、複数の利用者で重複が起こりえる個人情報を検索に使ったとしても、ネットワークサービス事業者のサーバに登録し検索に利用するのは、二人の利用者の個人情報の組み合わせのハッシュ値であるため、検索時に重複して一致が検出される可能性は極めて低くなる。たとえば、利用者Bの名前では同姓同名が多数いたとしても、AとBの組み合わせが、利用者の組み合わせの中に複数ある確率はBの同姓同名がいる確率よりはるかに小さい。このため、名前のような一意性が低く、したがって機密性の低く誰もが知っている単純な情報のみでも、効率的な検索が可能となる。
【0085】
また、そもそも本発明によるシステム及び方法では、上に述べたように非可逆演算を利用している限り、たとえ一意性の高い、すなわち機密性の高い情報を検索に使っても、組み合わせて非可逆演算した演算結果が検索対象となるため、検索対象となる演算結果から個人情報を導くことができないため安全である。たとえば電子メールアドレス、住所、電話番号のような、個人を特定できる情報を使うことによって、従来の方法によっても、本発明によっても検索時の重複は排除できるが、本発明による方法では、従来の方法に比べて圧倒的に高い機密保持性が確保できる。
【0086】
それでも同姓同名など、個人情報の重複によってサーバ100の検索手段108cにおいて、演算結果の一致が複数検出される場合には、名前の他に、住んでいる市、性別、所属など組み合わせの演算結果を使って正解率の高い者を、検索対象と推定する方法もある。
たとえば、Bがサーバ100のデータベース102に、名前P、性別Q、所属R、・・・などについて、AとB自身の個人情報の文字列結合のハッシュ関数による演算結果H(Pa’+Pb)、H(Qa’+Qb)、H(Ra’+Rb)を登録しておき、AがBを検索する際には、H(Pa+Pb’)、H(Qa+Qb’)、H(Ra+Rb’)についてサーバ100に検索依頼する。たとえば、サーバ100の検索手段108において、P、Q、Rすべての属性について演算結果の一致が成立、すなわちH(Pa’+Pb)=H(Pa+Pb’)かつH(Qa’+Qb)=H(Qa+Qb’)かつH(Ra’+Rb)=H(Ra+Rb’)が成立しない場合でも、Aはその情報端末104のデータベース21において、属性P,Q,R各々にあらかじめ重み係数(α、β、γ等)をつけておき、これらを使って演算結果の一致数の重み付き合計を計算することで、Aが通信したいBだと推定される相手を、このネットワークサービス上で探すこともできる。
【0087】
また、A、Bと同じネットワークサービスを使っており、かつAおよびBの名前を知っている悪意の第三者が、その第三者の端末で、A、とBとの名前の文字列結合のハッシュ関数の演算結果H(Pa’+Pb)を作成し、これをサーバ100に問い合わせ、その結果を得ることでAとBの間に関係が存在するという情報を入手する、あるいはAになりすましてBを検索するかもしれない。このような場合には、BはあらかじめパスコードμbをAに対して口頭や電子メールなどの手段で知らせておき、BがH(Pa’+Pb+μb)をサーバ100のデータベース102に登録しておく。AがBを検索する際には、Bからあらかじめ受け取っておいたμbを使い、H(Pa+Pb’+μb)をサーバ100に問い合わせることで、μbを知らない悪意の第三者にAとBとの関係を知られたり、AになりすましてBを検索される危険を小さくすることができる。
【0088】
また、被検索者であるBが、前記ステップS103において作成し、前記ステップS104においてサーバ100に送信し、ステップS105においてそのデータベース102にBの認識票IDbと関連づけて登録するハッシュ演算結果は、検索者であるAの情報端末のデータベース21、およびBの情報端末のデータベース22の両方に記憶されている、たとえばこのネットワークサービス全体で共通のワイルドカード文字列「*」と、Bの情報端末106のデータベース22に記憶されているB自身の情報Pbを表す文字列と、のハッシュ演算による演算結果H(*+Pb)でもよい。この場合に、検索者であるAが、前記ステップS106で、Aの情報端末104のデータベース21に記憶されているBの情報Pb’およびこのワイルドカード文字列「*」とのハッシュ演算結果H(*+Pb’)を生成し、前記ステップS107でこれをサーバ100に送ることで、利用者Bの検索を依頼すると、前記ステップS108において前記H(*+Pb’)による検索依頼に対して、前記H(*+Pb)との一致を検出し、前記ステップS109において、前記H(*+Pb)に関連づけてデータベース102に記憶された被検索者であるBの認識票IDbを、検索者であるAの情報端末104に送ることができる。こうすると、被検索者であるBは、本実施形態1で示した検索者Aからの検索に限定せず、このネットワークサービスの利用者全体のなかから、利用者Bの情報Pbを、その情報端末のデータベースに記憶している任意の利用者の端末からの検索に対して、前記ステップS109において、利用者Bの認識票IDbを送信することができる。
【0089】
(実施形態2)上述の実施形態1においては、被検索者が、検索することを許可した検索者の一つの個人情報と被検索者自身の一つの個人情報を、演算した結果をネットワークサービス事業者のサーバ100に登録しておき、検索者がこれを検索した。本実施形態2においては、被検索者が検索することを許可した検索者の一つ以上の情報と、被検索者自身の一つ以上の情報を順列に組み合わせたなかで任意の組み合わせの一つ以上の演算結果を、ネットワークサービス事業者のサーバ100に登録しておき、検索者は被検索者の一つ以上の個人情報と検索者自身の一つ以上の個人情報の任意の組み合わせの一つ以上の演算結果を、サーバ100に問い合わせるという、より一般的な方法について説明する。なお、実施形態1に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。本実施形態に係る本発明のシステム及び方法によって情報端末104と情報端末106とが通信を確立する動作のフローチャートは、実施形態1における図6と同様であるので、ここでは図6を参照する。
【0090】
例えば、利用者Aの個人情報をP1a、P2a、・・・、Pna(nは整数)などとする。利用者Bの個人情報をP1b、P2b、・・・、Pmb(mは整数)などとする。ここで、たとえばP1aとP1bというように、同じ数字の記号同士は、同じ属性の個人情報であっても、異なる属性の個人情報であってもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。利用者Aの情報端末104は、利用者Aの個人情報P1a、P2a、・・・、Pna及び利用者Bの個人情報P1b’、P2b’、・・・、Pmb’をそのデータベース21に記憶・保存している。利用者Bの情報端末105は、利用者Bの個人情報P1b、P2b、・・・、Pmb及び利用者Aの個人情報P1a’、P2a’、・・・、Pna’をそのデータベース22に記憶・保存している。利用者Aの個人情報の数、利用者Bの個人情報の種類、数は、それぞれ、任意である。
また、m=nであってもよいし、m≠nであってもよい。また、利用者Aの情報端末104に記憶・保存されているAの個人情報の数と、利用者Bの情報端末106に記憶・保持されているAの個人情報の数は、同じであっても異なっていても構わない。同様に、利用者Bの情報端末106に記憶・保存されているBの個人情報の数と、利用者Aの情報端末104に記憶・保持されているBの個人情報の数は、同じであっても異なっていても構わない。
【0091】
ただし、実施形態1と同様に、各情報の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえばP1aおよびP1bを名前、P2aおよびP2bを住所、P3aおよびP3bを勤務先などとすると、P1b’はAがAの端末104で記憶・保持しているBの名前であることを意味している。またたとえば、P2bは、BがBの端末106で記憶・保持しているB自身の住所であることを意味している。たとえば、通常であればP1b’=P1b、かつP2b’=P2bであるが、たとえばどちらか端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【0092】
ここで、利用者Aの情報端末104と利用者Bの情報端末106とが、複数の個人情報を用いて通信を確立するためのステップについて説明する。なお、このステップは、上記の実施形態1に示した図2及び図6に示すステップと同様であるので、ここでは適宜説明を省略している。また、上記実施形態1では、一例としてもっとも理解しやすい文字列結合のハッシュ演算を用いたが、本実施形態2で示す一例では、個人情報を変数とする任意の演算Fを用いて説明する。したがって、本実施形態2においては、図2に現れるたとえばH(Pb’+Pa)などの文字列結合のハッシュ演算の表記を、任意の関数Fを用いたF(Pb’,Pa)などに置きかえて説明する。
【0093】
上記実施形態1と同様に、ここで用いる任意の演算Fは、可逆な演算でも非可逆な演算でもかまわない。既に述べたように、ここで可逆な演算を用いた場合には、非可逆な演算を用いた場合にくらべて、実施形態1で述べた本発明の効果のうちで、守秘性は低くなるが、本発明によるこれ以外の効果は変わらない。さらに、ここで用いる任意の演算Fは、変数である個人情報について可換であっても非可換であってもよい。
【0094】
利用者Aの情報端末104においては、演算手段110aが、データベース21に記憶・保持されているBの個人情報P1b’、P2b’、・・・、Pmb’と、データベース21に記憶・保持されているA自身の個人情報P1a、P2a、・・・、Pnaとを任意の演算Fによって演算する(ステップS100)。利用者Aの情報端末104において演算するBの個人情報とA自身の個人情報とは、任意に順列に組み合わせることができる。つまり、Bの個人情報とAの個人情報との組み合わせは、(P1b’,P1a)、(P2b’,P1a)、(P1b’,P2b’,P1a,P2a)、・・・、(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)等があるが、Aの端末104の演算手段110aでは、これらのなかから任意の組み合わせの一つ以上の演算をおこなう。
【0095】
通常、利用者Aの端末にあるデータベース21に記憶・保持されているBの個人情報は、Aの端末にあるA自身の情報P1a、P2a、・・・、Pnaに比べて少ない。たとえば、AはA自身の名前、住所、電話番号、出身地など数多くの情報を知っており、これらの多くが利用者Aの端末にあるデータベース21に記憶・保持されていることが多いが、他人であるBの情報は名前と電話番号のみというように、他人についての個人情報は限られているのが普通である。このような状態においても、利用者Aの端末で組み合わせるこのBの個人情報とAの個人情報の組み合わせは、Aの端末のデータベース21に記憶されているもののなかから作ることのできる任意の一つ以上の組み合わせでよい。また、Aの端末のデータベース21に保存されているAの個人情報とBの個人情報のすべてを組み合わせる必要はなく、利用者Aがその組み合わせを任意に選択してもよい。
【0096】
さらに、Aの端末のデータベース21にA自身の情報の一部しか記憶・保持されていない場合も、Aの端末のデータベース21に記憶・保持されている情報のなかから、Aの個人情報とBの個人情報を任意に組み合わせればよい。たとえば、Aの端末のデータベースには、Aの個人情報のなかからAの名前と電話番号のみ、またBの個人情報のなかでBの住所のみが記憶・保持されているような状態では、Aの名前とBの住所の組み合わせ、およびAの名前とBの住所の組み合わせ、というように、Aの端末104で利用可能なBおよびA自身の情報のなかから任意に組み合わせれば良い。
【0097】
次に、Aの情報端末104において、演算手段110aは、ここで選択した任意の組み合わせに基づき任意の演算Fによって演算した結果F(P1b’,P1a)、F(P2b’,P1a)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)等を生成する(ステップS100)。本実施形態2においては、次に、Aの情報端末104の送受信手段110bは、ネットワークサービス事業者のサーバ100にここで選択した任意の組み合わせに基づく演算結果F(P1b’,P1a)、F(P2b’,P1a)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)等を送る(ステップS101)。サーバ100では、演算結果利用者Aの端末104で選択された任意の組み合わせに基づく演算結果F(P1b’,P1a)、F(P2b’,P1a)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)等を送受信手段108aで受信する。テーブル作成手段108bは、ここで受信した演算結果F(P1b’,P1a)、F(P2b’,P1a)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)等をAのこのネットワークサービス上の認識票IDa、または接続に必要な情報と関連づけた上で登録(23)し、データベース102に記憶・保持する(ステップS102)。なお、サーバ100及びAの情報端末104における任意の関数による演算やデータの送受信は、データ処理手段108及び110に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【0098】
同様に、図2で、利用者Bの情報端末106では、ハッシュ値生成手段112aが、データベース22に記憶・保持されているAの個人情報P1a’、P2a’、・・・、Pna’と、データベース22に記憶・保持されているB自身の個人情報P1b、P2b、・・・、Pmbとの任意の一つ以上の組み合わせを生成する(ステップS103)。ここで、たとえばP1aとP1bというように、同じ数字を記号同士は、同じ属性の個人情報であっても、異なる属性の個人情報であってもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。利用者Bの情報端末106におけるAの個人情報とBの個人情報とは、任意に順列に組み合わせることができる。つまり、Aの個人情報とBの個人情報との組み合わせは、(P1a’,P1b)、(P2a’,P1b)、(P1a’,P2a’,P1b,P2b)、・・・、(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pmb)等があるが、Bの端末106の演算手段112aでは、これらのなかから任意の組み合わせの演算をおこなう。ここで、Aの情報端末のデータベース21に記憶・保持されているA自身の個人情報P1a、P2a、・・・、Pnaと、Bの情報端末のデータベース22に記憶・保持されているAの個人情報P1a’、P2a’、・・・、Pna’は同じ、または同じ数である必要はない。同様にBの情報端末のデータベース22に記憶・保持されているB自身の個人情報P1b、P2b、・・・、Pmbと、Aの情報端末のデータベース21に記憶・保持されているBの個人情報P1b’、P2b’、・・・、Pmb’は同じ、または同じ数である必要はない
【0099】
通常、利用者Bの端末にあるデータベース22に記憶・保持されているAの個人情報は、Bの端末にあるB自身の情報P1b、P2b、・・・、Pnbに比べて少ない。たとえば、BはB自身の名前、住所、電話番号、出身地など数多くの情報を知っており、これらの多くが利用者Bの端末にあるデータベース22に記憶・保持されることが多いが、他人であるAの情報は、たとえば名前と電話番号のみというように、限られているのが普通である。このような状態において、利用者Bの端末で組み合わせるこのAの個人情報とBの個人情報の組み合わせは、Bの端末のデータベース22に記憶されているもののなかから作ることのできる任意の組み合わせでよい。また、Bの端末のデータベース22に保存されているBの個人情報とAの個人情報のすべてを組み合わせる必要はなく、利用者Bがその組み合わせを任意に選択してもよい。
【0100】
さらに、Bの端末のデータベース22にB自身の情報の一部しか記憶・保持されていない場合も、Bの個人情報の一部とAの個人情報の一部を任意に組み合わせればよい。たとえば、Bの端末のデータベースに、Bの個人情報のなかでBの電話番号のみ、またAの個人情報のなかでAの住所だけが記憶・保持されているような状態では、唯一の組み合わせとなるAの電話番号とBの住所の組み合わせでよい。
【0101】
Bの情報端末106において、演算手段112aは、ここで選択した組み合わせによって結合した文字列(P1a’,P1b)、(P2a’,P1b)、(P1a’,P2a’,P1b,P2b)、・・・、(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等に基づき任意の演算Fによって演算した演算結果F(P1a’,P1b)、F(P2a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等を生成する(ステップS103)。次に、Bの情報端末106の送受信手段112bは、ネットワークサービス事業者のサーバ100にここで選択した任意の組み合わせに基づく演算結果F(P1a’,P1b)、F(P2a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等を送る(S104)。サーバ100のデータ処理手段108が、Bの端末106より送られた演算結果F(P1a’,P1b)、F(P2a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等を送受信手段108bで受信する。テーブル作成手段108bは、演算結果F(P1a’,P1b)、F(P2a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等をBのこのネットワークサービス上での認識票またはとBとの接続に必要な情報と関連づけた上で登録(24)し、データベース102に記憶・保持する(ステップS105)。なお、Bの情報端末106における任意の関数による演算や送受信は、データ処理手段に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【0102】
次に、図2において、AがBとの通信を望む場合、利用者Aの情報端末104において、演算手段108aは、Bの個人情報とA自身の個人情報との任意の組み合わせを、任意の演算Fによって演算した結果F(P1a,P1b’)、F(P2a,P1b’)、F(P1a,P2a,P1b’,P2b’)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)等を一つ以上生成する(ステップS106)。
このAの情報端末104で行われる任意の演算Fは、如何なる演算であってもよいが、利用者Bの情報端末106が、そのデータベース22に保持している利用者Aの個人情報と利用者B自身の個人情報の演算結果をサーバ100に登録する(ステップS102及びステップS105)時に使った任意の演算Fと同じ演算Fであることが要求される。ただし、ここで検索依頼のためのBの個人情報とA自身の個人情報の組み合わせは、Bが上であらかじめサーバ100に登録したAの個人情報とB自身の個人情報の組み合わせと同じである必要はない。そして、Aの情報端末104の送受信手段110bは、ここで任意に組み合わせたBの個人情報とA自身の個人情報の文字列結合の演算結果F(P1a,P1b’)、F(P2a,P1b’)、F(P1a,P2a,P1b’,P2b)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)等をネットワークサービス事業者のサーバ100に送ることによって、サーバ100に検索を依頼(25)する(ステップS107)。Aの情報端末104から送信されたこれらの演算結果F(P1a,P1b’)、F(P2a,P1b’)、F(P1a,P2a,P1b’,P2b)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)等は、サーバ100におけるデータ処理手段108の送受信手段108bによって受信される。そして、データ処理手段108の検索手段108cがAの情報端末104から送信されたこれらの演算結果F(P1a,P1b’)、F(P2a,P1b’)、F(P1a,P2a,P1b’,P2b)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)等と、データベース100に登録されているBの認識票または接続情報と関連づけられた演算結果Fのうちで一致する演算結果を検索する(ステップS108)。ここで、本実施形態2においては、ネットワークサービス事業者のデータベース102にBの認識票IDb、または接続のために必要な情報と関連づけられた演算結果F(P1a’,P1b)、F(P2a,P1b’)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等がすでにBによって登録されている。このAからの検索依頼に対して、ネットワークサービス事業者のサーバ100における検索手段108cは、データベース100においては、Aの情報端末104から送信されたこれらの演算結果F(P1a,P1b’)、F(P2a,P1b’)、F(P1a,P2a,P1b’,P2b)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)等と、データベース100に登録されているBの認識票または接続に必要な情報と関連づけられた演算結果Fとの一致、(即ち、F(P1a,P1b’)=F(P1a’,P1b)、F(P2a,P1b’)=F(P2a’,P1b)、F(P1a,P2a,P1b’,P2b)=F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)=F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)等のうち一つ以上)を検出(26)する。この検出結果をもとに、サーバ100は、利用者Aの情報端末104に対して、利用者BのネットワークサービスIDなどこのネットワークサービス上でBの認識票や接続に必要な情報を送信する。そして、利用者Aの情報端末104と利用者Bの情報端末106との通信(27)を確立できるようになる(ステップS109)。
また、この検索依頼に対して、ネットワークサービス事業者のサーバ100における検索手段108cが、データベース100において、Aの情報端末104からBの検索のために送信された演算結果F(P1a,P1b’)、F(P2a,P1b’)、F(P1a,P2a,P1b’,P2b)、・・・、F(P1a,P2a,・・・,Pna,P1b’,P2b’,・・・,Pmb’)等と、データベース100に登録されているBのネットワークIDなどの接続情報と関連づけられた演算結果Fとの一致を一つも検出しない場合は、サーバ100は、利用者Aの情報端末104に利用者BのネットワークサービスIDなどこのネットワークサービス上でBの認識票や接続に必要な情報を送信しない(ステップS110)。
【0103】
ここで、Aの情報端末104からBの検索のためにサーバ100に送られる、Bの個人情報とA自身の個人情報の任意の組み合わせの演算結果F(P1b’,P1a)、F(P2a,P1b’)、F(P1b’,P2b’,P1a,P2a)、・・・、F(P1b’,P2b’,・・・,Pmb’,P1a,P2a,・・・,Pna)等は、あらかじめBの情報端末106からサーバ100に送られ、そのデータベース102上に保持されるAの個人情報とB自身の個人情報の任意の組み合わせの演算結果F(P1a’,P1b)、F(P2a’,P1b)、F(P1a’,P2a’,P1b,P2b)、・・・、F(P1a’,P2a’,・・・,Pna’,P1b,P2b,・・・,Pnb)とは、すべて同じ種類の個人情報の組み合わせである必要はなく、同じ個人情報の組み合わせが一つ以上あれば、AからのBの検索依頼に対して、サーバ100の検索手段108cはこのネットワークサービス上でBを一意に特定して、サーバ100の送受信手段108aはBから登録された個人情報の組み合わせの演算結果に関連づけられた認識票または接続に必要な情報をAの端末104に送信することができる。たとえば、Bの端末104でAの名前とB自身の名前、およびAの電話番号とB自身の名前組み合わせが選択され、これらの組み合わせの演算結果がサーバ100上のデータベース102に保持されている状態で、Aの端末104が、Bの端末106を検索するために、Bの住所とA自身の電話番号、およびBの名前とA自身の電話番号の組み合わせの各々の演算結果を、サーバ100に問い合わせた場合、Bの端末106がサーバ100に送った演算結果と、AがBの検索のために問い合わせた演算結果は、すべてが同じ個人情報の組み合わせがではないが、この両方の演算結果にAの電話番号とBの名前という同じ組み合わせの一つの演算結果が含まれているため、サーバの検索手段108cは、演算結果の一致を検出し、送受信手段108aは、Aの端末104に対してBの端末の認識票を送る。
【0104】
ここで、被検索者であるBが、前記ステップS103において作成し、前記ステップS104においてサーバ100に送信し、ステップS105においてそのデータベース102にBの認識票IDbと関連づけて登録する演算結果は、検索者であるAの情報端末のデータベース21、およびBの情報端末のデータベース22の両方に記憶されている、このネットワークサービス全体で共通のワイルドカード情報「*」と、Bの情報端末106のデータベース22に記憶されているB自身の情報P1b、P2b、・・・、Pmbと、演算結果F(*、P1b)、F(*、P2b)、・・・F(*、Pmb)、F(*、P1b、P2b)、・・・、F(*、P1b、P2b、・・・Pmb)のうち任意の一つ以上でもよい。この場合に、たとえば検索者であるAが、前記ステップS106で、Aの情報端末104のデータベース21に記憶されているBの情報P2b’およびこのワイルドカード文字列「*」との演算結果F(*、Pb’)を生成し、前記ステップS107でこれをサーバ100に送ることで、利用者Bの検索を依頼すると、前記ステップS108において前記F(*、P2b’)による検索依頼に対して、前記F(*、P2b)との一致を検出すれば、前記ステップS109において、前記F(*、P2b)に関連づけてデータベース102に記憶された被検索者であるBの認識票IDbを、検索者であるAの情報端末104に送ることができる。こうすると、被検索者であるBは、本実施形態1で示した検索者Aからの検索に限定せず、このネットワークサービスの利用者全体のなかから、利用者Bの情報P2bを、その情報端末のデータベースに記憶している任意の利用者の端末からの検索に対して、前記ステップS109において、利用者Bの認識票IDbを送信することができる。
【0105】
本実施形態に係る本発明によるシステム及び方法によれば、図1に示した従来の方法に比べて、実施形態1で示した三つの効果に加えて、さらに次の二つの効果がある。
【0106】
第一には、本実施形態2によれば、ネットワークサービス上で二人が相互に検索するような場合、Aの端末104に保持されているBの個人情報と、Bの端末106に保持されているAの個人情報が同じでなくとも、AがBを検索し、かつBがAを検索することができる点である。たとえば、図1に示したような被検索者が名前を検索用のサーバに登録して、検索者が名前を直接サーバ上で検索するという従来の方法では、ネットワークサービス上でAの端末104がBの端末106を検索する場合は、Aの端末104にBの名前を保持した上Bの名前についてサーバ100に対して検索依頼をする必要があり、逆にBがAを探す場合には、Bの端末106にAの名前を保持した上Aの名前についてサーバ100に対して検索依頼をする必要があった。すなわち、二人が相互に検索しあうような場合、Aの端末104はBの名前を、またBの端末106はAの名前を、というように同じ属性の個人情報を両方の端末に保持した上、各々の名前を検索用のサーバに問い合わせる必要があった。しかし、本実施形態2に示す方法によれば、Aの端末104のデータベース21にはBの電話番号だけが、またBの端末106のデータベース22にはAの住所だけが保持されているというように、AとBが各々異なる属性の個人情報しか各々の端末に保持できていない場合にでも、Aの端末104がBの電話番号とA自身の住所を、またBの端末106がAの住所とB自身の電話番号を各々サーバ100のデータベース102に登録してあれば、AがBを、またBがAをそれぞれ検索することができる。
【0107】
第二には、本実施形態2によれば、従来の方法にくらべてだけでなく、上述の実施形態1の方法にくらべても、一意性の低い個人情報を使っても、サーバ100の検索手段108cが、検索者からの検索要求に対して、被検索者を一意に特定できない可能性をさらに小さくすることができる点である。たとえば実施形態1の方法によれば、ごくありふれた名前であるAがごくありふれた名前であるBを検索するような場合には、検索サーバのデータベース102に登録された演算結果の中に、複数のF(Pa’,Pb)が存在する可能性があり、たとえばAがBを検索しようとする際に、検索サーバ100ではBを一意に特定できない可能性がある。しかし本実施形態2の方法によれば、AがBを検索する際には、Bの端末のデータベース22に保持されている一つ以上のAの個人情報とB自身の個人情報の任意の一つ以上の組み合わせの演算結果をサーバのデータベース108cに登録した上、AがAの端末のデータベースに保持されている一つ以上のBの個人情報とA自身の個人情報の一つ以上の任意の組み合わせの演算結果をサーバ100に対して問い合わせるので、多くの場合、複数の個人情報の組み合わせの演算結果を検索することになり、サーバのデータベース108cに登録された演算結果が重複する可能性は、実施形態1の方法にくらべて更に小さくなる。たとえば、ありふれた名前を持つAがBを検索する場合、Bの端末106があらかじめ、サーバのデータベース108cに、Aの名前とB自身の名前、Aの勤務先とB自身の名前、Aの名前とB自身の勤務先、およびAの勤務先とB自身の勤務先、の四つの組み合わせの演算結果を登録しておく場合を考える。ここでAの端末104がサーバ100に対して、Bの名前とA自身の名前、Bの名前とA自身の勤務先の二組の演算結果の検索を依頼した場合は、ありふれた名前、およびありふれた勤務先といういずれも単独では検索相手を一意に特定することが難しい情報を用いても、ほぼ確実に検索相手を一意に特定することができる。
【0108】
(実施形態3)上述の実施形態2においては、被検索者が検索することを許可した検索者の一つ以上の情報と、被検索者自身の一つ以上の情報とを順列に組み合わせたなかの任意の組み合わせの一つ以上の演算結果を、被検索者の認識票と関連づけてネットワークサービス事業者のサーバ100に登録しておく。検索者は被検索者の一つ以上の個人情報と検索者自身の一つ以上の個人情報との任意の組み合わせの一つ以上の演算結果を、サーバ100に問い合わせ、一致する登録があった場合には、被検索者の認識票または接続に必要な情報を検索者に送るようにしている。
【0109】
本実施形態3では、実施形態2において被検索者が、サーバ100に登録しておく演算結果に加えて、この演算結果とその演算を行うもとになる被検索者の情報ごとに何らかのフラグを生成する。その後、各々の演算結果とその演算結果の基になった被検索者の情報のフラグの組を作成し、各々の組に対して被検索者の認識票を関連づけて登録しておく。そして、実施形態2と同様の検索者からの問い合わせに対して、演算結果のフラグと被検索者の認識票を検索者に送る方法およびその効果について説明する。なお、実施形態2に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。本実施形態に係る本発明のシステム及び方法によって情報端末104と情報端末106とが通信を確立する動作のフローチャートは、実施形態1における図6と同様であるので、ここでは図6を参照する。
【0110】
図8で、利用者Aの情報端末104では、データベース21には、A自身の情報P1aとP2a、Bの情報P1b’とPb2b’、およびDの情報P3d’、さらにA自身の情報P1aに関連するフラグFLG1aとA自身の情報P2aに関連するフラグFLG2aが記憶されている。ここでこれらのフラグ(FLG1a、FLG2a)は、Aの各々の情報に関連する情報であれば如何なる情報でもあっても良く、たとえば各々の情報が現在有効か無効か(たとえば、その情報が有効であれば「1」、無効であれば「0」など)、各々の情報の生成された日付(たとえば「20061225」など)、あるいはAの各々の情報に対して演算手段110aが無作為に生成した任意の数値などでも良い。演算手段110aは、A自身の情報および他人の情報の任意の組み合わせのハッシュ関数による演算結果、たとえばH(P1b’+P1a)、H(P2b’+P2a)、H(P3d’+P2a)をデータベース21に記憶する(ステップS100)。ここでは各々の情報の文字列結合をハッシュ関数Hによって処理した演算結果をH(P1b’+P1a)などと表す。次に、Aの情報端末104の送受信手段110bは、これらの演算結果と、各々の演算結果のもとになったAの情報のフラグの組{H(P1b’+P1a)、FLG1a}、{H(P2b’+P2a)、FLG1a}、および{H(P3d’+P2a)、FLG2a}を、ネットワークサービス事業者のサーバ100に送る(ステップS101)。次にサーバ100のデータ処理手段108が{H(P1b’+P1a)、FLG1a}、{H(P2b’+P2a)、FLG1a}、および{H(P3d’+P2a)、FLG2a}を送受信手段108aで受信する。サーバ100のテーブル作成手段108bは、演算結果{H(P1b’+P1a)、FLG1a}、{H(P2b’+P2a)、FLG1a}、および{H(P3d’+P2a)、FLG2a}をAのネットワークサービスIDなどこのネットワークサービス上でAを一意に特定するための認識票IDa、またはAとの接続のために必要な情報と関連づけた上で登録(71)し、データベース102に記憶・保持する(ステップS102)。なお、サーバ100及びAの情報端末104における演算やデータの送受信は、データ処理手段108及び110に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【0111】
一方、利用者Bの情報端末106では、データベース22には、利用者B自身の情報P1bとP2b、および利用者Aの情報P1a’と同じく利用者Aの情報P2a’とFの情報P3f’、さらに利用者B自身の情報P1bに関連するフラグFLG1bと利用者B自身の情報P2bに関連するフラグFLG2bが記憶されている。既に述べたように、これらのフラグは、利用者Bの各々の情報に関連する情報であれば何でも良い。演算手段112aは、利用者B自身の情報および他人の情報の任意の組み合わせのハッシュ関数による演算結果、たとえばH(P1a’+P1b)、H(P1a’+P2b)、H(P2a’+P1b)、H(P2a’+P2b)、H(P3f’+P2b)をデータベース22に記憶する(ステップS103)。次に、利用者Bの情報端末106の送受信手段112bは、これらの演算結果と、各々の演算結果のもとになったBの情報のフラグの組{H(P1a’+P1b)、FLG1b}、{H(P1a’+P2b)、FLG2b}、{H(P2a’+P1b)、FLG1b}、{H(P2a’+P2b)、FLG2b}、および{H(P3f’+P2b)、FLG2b}を、ネットワークサービス事業者のサーバ100に送る(ステップS104)。次にサーバ100のデータ処理手段108が{H(P1a’+P1b)、FLG1b}、{H(P1a’+P2b)、FLG2b}、{H(P2a’+P1b)、FLG1b}、{H(P2a’+P2b)、FLG2b}、および{H(P3f’+P2b)、FLG2b}を送受信手段108aで受信する。サーバ100のテーブル作成手段108bは、演算結果とフラグの組{H(P1a’+P1b)、FLG1b}、{H(P1a’+P2b)、FLG2b}、{H(P2a’+P1b)、FLG1b}、{H(P2a’+P2b)、FLG2b}、および{H(P3f’+P2b)、FLG2b}をBのネットワークサービスIDなどこのネットワークサービス上でBを一意に特定するための認識票IDb、またはBとの接続のために必要な情報と関連づけた上で登録(72)し、データベース102に記憶・保持する(ステップS105)。なお、Bの情報端末106におけるハッシュ値の生成は、データ処理手段に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【0112】
ここで示したものは、様々な情報の組み合わせの演算の一例であり、実施形態2と同様に、本実施形態3においても利用者Aおよび利用者Bの端末に保持されている自分自身および他人の情報の数は任意であり、また利用者Aの端末および利用者Bの端末からサーバ100に送り、そのデータベースに登録される演算結果は、任意の数の情報P1a、P2a、・・・、Pna(nは整数)、利用者Bの情報P1b、P2b、・・・、Pmb(mは整数)などの任意の組み合わせの演算であってよい。また、ここで用いる各々の情報は、氏名、住所、電話番号などの個人情報、写真、文書など如何なる種類の情報であってもよい。また各々の演算結果と組み合わせてサーバ100に登録するフラグの数は一つ以上の任意の数であってよい。各情報の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえばP1aおよびP1bを名前、P2aおよびP2bを住所、P3aおよびP3bを勤務先などとすると、P1b’はAがAの端末104で記憶・保持しているBの名前であることを意味している。またたとえば、P2bは、BがBの端末106で記憶・保持しているB自身の住所であることを意味している。たとえば、通常であればP1b’=P1b、かつP2b’=P2bであるが、たとえばどちらか端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【0113】
また、本実施形態3では演算として、文字列結合のハッシュ関数を用いたが、上記実施形態2と同様に、ここで用いる演算は、任意の可逆な演算Fでも非可逆な演算Fでもかまわない。既に述べたように、ここで可逆な演算を用いた場合には、非可逆な演算を用いた場合に比べて、実施形態1で述べた本発明の効果のうちで、守秘性は低くなるが、これ以外の本発明による効果を奏する点については変わらない。さらに、ここで用いる任意の演算Fは、変数である個人情報について可換であっても非可換であってもよい。
【0114】
次に、本実施形態においては、利用者Aが利用者Bとの通信を望む場合、利用者Aの情報端末104において、演算手段110aは、Bの情報とA自身の情報の組み合わせの文字列結合をハッシュ演算したH(P1a+P1b’)、H(P1a+P2b’)、H(P2a+P1b’)およびH(P2a+P2b’)を生成する(ステップS106)。このとき利用者Aの情報端末が検索のために組み合わせるBの情報とAの情報は、この例に限らず任意の組み合わせであってよい。また、このBの情報端末104で行われる任意のハッシュ演算Hは、如何なる演算Fであってもよいが、利用者Aの情報端末104がサーバ100に登録するたに利用した演算と同じものであることが要求される。そして、利用者Aの情報端末104の送受信手段110bは、演算結果H(P1a+P1b’)、H(P1a+P2b’)、H(P2a+P1b’)およびH(P2a+P2b’)をネットワークサービス事業者のサーバ100に送ることによって、サーバ100に検索を依頼(73)する(ステップS107)。情報端末104から送信された演算結果H(P1a+P1b’)、H(P1a+P2b’)、H(P2a+P1b’)およびH(P2a+P2b’)は、サーバ100におけるデータ処理手段108の送受信手段108aによって受信される。そして、データ処理手段108の検索手段108cが情報端末104から送信された演算結果H(P1a+P1b’)、H(P1a+P2b’)、H(P2a+P1b’)およびH(P2a+P2b’)と一致するデータベース100に登録されている演算結果を検索する(ステップS108)。ここで、図8に示す例では、ネットワークサービス事業者のデータベース102にBの認識票IDbまたはBとの接続に必要な情報と関連づけられたH(P1a’+P1b)、H(P1a’+P2b)、H(P2a’+P1b)およびH(P2a’+P2b)がBによって登録されている。この検索依頼に対して、ネットワークサービス事業者のサーバ100における検索手段108cは、データベース100においては、情報端末104から送信された演算結果H(P1a’+P1b)、H(P1a’+P12b)、H(P2a’+P1b)、H(P2a’+P2b)と、データベース100に登録されているBの認識票または接続に必要な情報と関連づけられて登録されている演算結果との4つの一致、(即ち、H(P1a+P1b’)=H(P1a’+P1b)、H(P1a+P2b’)=H(P1a’+P2b)、H(P2a+P1b’)=H(P2a’+P1b)、およびH(P2a+P2b’)=H(P2a’+P2b))を検出する。(ステップS109)これをもとに、サーバ100は、利用者Aの端末104が問い合わせた4つの演算結果に各々対応するフラグ、(即ちH(P1a+P1b’)−FLG1b、H(P1a+P2b’)−FLG2b、H(P2a+P1b’)−FLG1bおよびH(P2a+P2b’)−FLG2b)と、利用者Bの端末106の認識票IDbを、利用者Aの端末104に送る。
【0115】
実施形態1および実施形態2と同様に、利用者Aの端末104の端末は、ここで得られた利用者Bの認識票IDbまたは利用者Bの接続情報をもとに、利用者Bとの通信をおこなうことができる。これに加えて本実施形態3では、利用者Aの端末は、利用者Bの認識票IDbとともにサーバ100から送られた、利用者Aが利用者Bを検索する際に利用した利用者Bの情報P1b’に関連したフラグFLG1b、および利用者Bの情報P2b’に関連したフラグFLG2bを利用することで、実施形態1および実施形態2において述べた効果に加えて、更に次に述べるような効果を得ることができる。
【0116】
以下に示す二つの例を用いて本実施形態3の効果について説明する。ここでは、図8に示す本実施形態において、P1aはAの電子メールアドレス、P2aはAの電話番号、P1bはBの電子メールアドレス、P2bはBの電話番号であるとする。これまでと同様、これらの記号にダッシュ「’」が付いていなければ、自分の端末に保持した自分の情報であることを表し、ダッシュ「’」が付いていれば、自分の端末に保持した他人の情報であることを表している。なお、P1a、P2a、・・・やP1b、P2b、・・・はこの例に限定されず、いかなる情報であってもよい。
【0117】
第一の例では、フラグFLG1bおよびフラグFLG2bは各々、利用者Bの情報端末22に記憶されているBの電子メールアドレスおよび電話番号が現在有効であるか、または無効であるかを示すフラグ(有効であれば「1」、古い情報であるなどの理由で無効であれば「0」)でであるとする。ここでAの端末104は、(1)H(P1a+P1b’)、(2)H(P1a+P2b’)、(3)H(P2a+P1b’)および(4)H(P2a+P2b’)、をサーバ100に問い合わせ、その結果、Bの認識票IDb、およびこれら問い合わせた4つのハッシュに対応するBのフラグをサーバ100より受信する(74)。たとえば、この場合図8に示すとおり、(1)H(P1a+P1b’)に対応するフラグとしてAの端末104が受け取るのはFLGb1である。したがって、もしここで受け取ったFLGb1=1であれば、AはAの端末104で保持されているBの電子メールアドレスP1b’が現在有効であることがわかる。一方、ここで受け取ったFLGb1=0であれば、AはAの端末104で保持されているBの電子メールアドレスP1b’が無効であることがわかる。この第一の例では、Aの情報端末がBの検索に使ったBの情報について、その情報の状態を、AとBとの通信を確立せずとも入手できるという効果が得られる。この効果により、実施形態1及び2と比較して、Bの電子メールアドレスが古く現在は無効であった場合、このフラグを使うことによって、Aの情報端末は無効な通信手段に対して通信の確立を試みる必要がないという利点がある。ここでフラグFLG1bおよびFLG2bは、ハッシュ演算されたものではなく、フラグ情報そのものがサーバ100に登録されるため、実施形態1の第一の利点として挙げた非可逆演算を用いた場合の機密性保持の効果は、このフラグ自身には当てはまらない。しかし、この例ではFLG1b、FLG2bは、有効か無効かという情報しか含まれておらず、さらにこれらのフラグの対象と関連づけられた情報はハッシュ値であり非可逆であることから、これが漏洩しても利用者Bの情報の機密保持という観点からは問題がない。
【0118】
第二の例では、フラグFLG1bとFLG2bは各々、利用者Bの情報端末22に記憶されているBの電子メールおよび電話番号の各々の利用開始日(たとえば2006年12月25日であれば「20061225」など)、あるいは利用者Bの情報端末22の演算手段112が各々無作為に生成した数値などであったとする。ここでAの端末104は、(1)H(P1a+P1b’)、(2)H(P1a+P2b’)、(3)H(P2a+P1b’)および(4)H(P2a+P2b’)、をサーバ100に問い合わせ、その結果、Bの認識票IDb、およびこれら問い合わせた4つのハッシュに対応するBの各々フラグをサーバ100より受信する(74)。
【0119】
ところで、実施形態1、2および本実施形態3における検索でハッシュ関数(不可逆圧縮演算)を使うことの利点は機密性保持である。一方、欠点としては演算結果の衝突が起こり得ること、すなわちPa≠Pbであっても、必ずしもH(Pa)≠H(Pb)であることが保証されていない点である。つまり、この第二の例で、利用者Aの情報端末21からサーバ100への4個のハッシュ値の検索依頼73に対して、ハッシュ演算結果衝突の結果、上記(1)から(4)の四つのハッシュ値に加えて、利用者B以外の第三者から登録されている別のハッシュ値(たとえばここでは利用者Yが利用者Xの情報と組み合わせて登録した{H(P1x’+P2y)、FLG2y}の一致が検出されることがある。この場合、実施形態1および実施形態2では、利用者Aの端末104では、ここで得られた5つのハッシュ値のどれが利用者Bからの登録であり、どれがハッシュ演算の衝突による不正な一致であるかを区別する手段がない。それに対して本実施形態3の方法によれば、問い合わせた(1)および(3)には同じFLG1bというフラグが、(2)および(4)には同じFLG2bというフラグが、サーバ100より返されることが期待されるので、サーバ100より帰ってきた5つの一致のうちで、一つだけ異なるFLG2yというフラグを持つハッシュ値とのは、ハッシュ演算結果衝突など何らかの理由で不正な一致を検出した、利用者B以外からの登録であることを、利用者Aの端末で推定することができるという効果が得られる。
【0120】
本実施形態3では、Bから登録するハッシュ値の各々に対して、そのハッシュ値を生成するもとになったBの情報ごとに付けたフラグをサーバ100に登録した。しかし、このフラグはハッシュ値を生成するもとになったBの情報ごとではなく、Bの認識票に対して関連づけられたフラグを、Bの認識票と関連づけてサーバ100に登録する方法でも構わない。
【0121】
(実施形態4)本実施形態4では、前述の実施形態1または実施形態2の方法によると、検索者からの一つまたは複数の演算結果の検索依頼に対して、サーバ100のデータベース102で複数の一致が検出され、検索者が被検索者を一意に特定できない場合に、更に一致の検出された複数の被検索者と検索者の間で別途個人情報のハッシュのやりとりをおこなうというステップを追加することで、目的とする被検索者を一意に特定するための方法について説明する。図9は本発明による本実施形態4の一例であり、このネットワークサービスの利用者BとCは同姓同名であり、利用者Aが、BとCを両方知っているような状況で、本発明による検索を利用して、Aが通信したい相手Bを検索し、一意に特定するシステム及び方法を示している。なお、実施形態1又は実施形態2に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。
【0122】
なお本実施形態4では、実施形態1で一例として示したのと同様に、被検索者が、あらかじめ検索者の名前と被検索者の名前の文字列結合のハッシュ関数による演算結果をサーバ100のデータベース102に登録していた上で、検索者が検索する時には、検索者の端末において、検索者自身の名前と被検索者の名前の文字列結合のハッシュ関数による演算結果をサーバ100に対して問い合わせるという検索方法を示している。しかし、実施形態1における説明で述べたのと同様、演算の対象となる個人情報は名前に限定されず、住所、勤務先、家族の情報、各種嗜好など何であってもよい。また、ここで用いる演算は、SHA−1やMD5などどのようなハッシュアルゴリズムを用いてもよく、さらにここで行う演算は、文字列結合のハッシュ演算には限定されず、任意の演算であってよい。さらに、上述の実施形態2で述べたのと同様に、本実施形態4でも、検索には、複数の被検索者の個人情報と複数の検索者の個人情報とを、順列に組み合わせたもののなから任意の組み合わせを選び、さらにこれらの組み合わせに対して任意の演算をした結果を用いてもよい。前述の実施形態1および2で述べたとおり、ここで用いる演算は、可換な演算でも非可換な演算でも、また可逆演算でも非可逆演算でもよい。
【0123】
いま、図9の例に示すように、利用者Aの情報端末104のデータベース21には、B,D,EというAが直接知る三名の友人の各々の名前Pb’,Pd’,Pe’31、およびこの三人の友人の住んでいる市の各々の名前Qb’,Qd’,Qe’32が保持されている。また、利用者Bの情報端末106には、A、F、GというBが直接知る三名の友人の各々の名前Pa’,Pf’,Pg’33が保持されている。また、利用者Cの情報端末120には、A、H、IというCが直接知る三名の友人の各々の名前Pa’、Ph’、Pi’34が保持されている。なお、サーバ100、情報端末104、情報端末106及び情報端末120には、その他の利用者の情報が記憶されていてもよいのは言うまでもない。
【0124】
ただし、この図9に示す例においては、利用者Bと利用者Cとは同姓同名(Pb=Pc)であるが、この二名の住んでいる市の名前は異なっている(Qb≠Qc)とする。また、A、B、Cが各々の情報端末で保持している自分自身の個人情報、および他者の個人情報はすべて正しく、かつ最新のものであるとする。
【0125】
図10は、本実施形態に係る本発明のシステム及び方法のフローチャートである。
【0126】
図9に示す例において、まず、Aの端末104のデータ処理手段の演算手段110aは、Bの名前を表す文字列Pb’と、Aの名前を表す文字列Paとの文字列結合をハッシュ関数にて演算する(ステップ200)。同様に、Aの端末104のデータ処理手段110の演算手段110aは、DとA,EとA、の各々の文字列結合のハッシュ値H(Pd’+Pa)、H(Pe’+Pa)を生成する(ステップS300)。情報端末104の送受信手段110bは、これらの三つのハッシュH(Pb’+Pa)、H(Pd’+Pa)、およびH(Pe’+Pa)をネットワークサービス事業者のサーバ100に送信する(ステップS201)。
【0127】
サーバ100のデータ処理手段108は、受信した三つのハッシュ値H(Pb’+Pa)、H(Pd’+Pa)、およびH(Pe’+Pa)をAのこのネットワークサービスにおける認識票IDaや接続に必要な情報と関連づけた上で登録し、データベース102に記憶・保持する(ステップS202)。
【0128】
同様に、利用者Bの情報端末106のデータ処理手段112の演算手段112aが、Bが通信をしてもよいと思っている友人A,F、Gの名前と、B自身の名前との文字列結合のハッシュ値H(Pa’+Pb)、H(Pf’+Pb)、およびH(Pg’+Pb)を生成する(ステップS203)。情報端末106の送受信手段112bは、これらの三つのハッシュ値H(Pa’+Pb)、H(Pf’+Pb)、およびH(Pg’+Pb)をネットワークサービス事業者のサーバ100に送信する(ステップS204)。
【0129】
サーバ100は、受信した三つのハッシュ値H(Pa’+Pb)、H(Pf’+Pb)、H(Pg’+Pb)をBの認識票IDbや接続に必要な情報と関連づけた上で登録し、データベース102に記憶・保持しておく(ステップS205)。
【0130】
同様に、利用者Cの情報端末120のデータ処理手段114(図示せず)の演算手段114a(図示せず)が、Cが通信をしてもよいと思っている友人A、H、Iの名前と、C自身の名前の文字列結合のハッシュ値H(Pa’+Pc)、H(Ph’+Pc)、およびH(Pi’+Pc)を生成する(ステップS206)。利用者Cの情報端末120においてハッシュ値を生成するためには、如何なるアルゴリズムを用いてもよいが、Bの情報端末106で行われるハッシュ値生成と同じアルゴリズムを用いることが要求される。もし、Bの情報端末106でおこなわれる個人情報の演算が、文字列結合のハッシュ値ではなく、任意の関数である場合には、この利用者Cの端末120において用いられる演算もBの情報端末106において用いられる演算と同じでなくてはならない。利用者Cの情報端末120の送受信手段114b(図示せず)は、これらの三つのハッシュ値H(Pa’+Pc)、H(Ph’+Pc)、およびH(Pi’+Pc)をネットワークサービス事業者のサーバ100に送信する(ステップS207)。
【0131】
サーバ100は、受信した三つのハッシュ値H(Pa’+Pc)、H(Ph’+Pc)、およびH(Pi’+Pc)をCの認識票IDcまたは接続に必要な情報と関連づけた上で登録し、データベース102に記憶・保持しておく(ステップS208)。
【0132】
さて、図9に示す例において、AがBとの通信を望む場合、Aの情報端末104の演算手段110aは、Bの名前と自分の名前の文字列結合のハッシュ値H(Pa+Pb’)を生成し、送受信手段110bは、これをネットワークサービス事業者のサーバ100に送ることで検索を依頼(36)する(ステップS209)。このとき、利用者Aの情報端末104において検索のために用いられるハッシュ値を生成するアルゴリズムは、Bの情報端末106およびCの情報端末120で、各々の端末に保持されている他者の名前と端末所有者自身の名前の文字列結合のハッシュ値をサーバへ登録するときに用いたハッシュ値を生成するアルゴリズムと同じであることが要求される。また、もしBの情報端末106およびCの情報端末120で、各々の端末に保持されている他者の名前と端末所有者自身の名前の任意の演算Fがサーバに登録されている場合には、ここで利用者Aの情報端末104で検索のために用いられる演算は、A自身の名前と、Aの端末102のデータベース21に保存されているBの名前の任意の演算には、Bの情報端末106およびCの情報端末120で使われた演算と同じものでなければならない。
【0133】
このAの情報端末102から、ネットワークサービス事業者のサーバ100への検索依頼に対して、サーバ100の検索手段108cは、あらかじめBの情報端末106およびCの情報端末120から登録されたハッシュ値のうち、この検索を依頼されたH(Pa+Pb’)と一致するハッシュ値を検索する(ステップ210)。この例では、利用者Bと利用者Cとは同姓同名(Pb=Pc)であることから、サーバ100の検索手段108cが、Aの情報端末104から送信されたハッシュ値H(Pa+Pb’)と、あらかじめBの情報端末106より登録されたハッシュ値H(Pa’+Pb)、およびあらかじめCの情報端末120より登録されたハッシュ値H(Pa’+Pc)との複数の一致を検出する。
この場合、サーバ100は、複数の一致を検出したBおよびCの、このネットワークサービスにおける認識票IDbおよびIDcまたは接続に必要な情報を、情報端末104に報告37する(ステップS211)。この時点ではAの情報端末104は、この検索によりネットワークサービス上で通信したいBの情報端末106を一意に特定できず、Bの情報端末106とCの情報端末120とが候補として残っている状態である。
【0134】
そこで、次に、図9に示す例では、Aの情報端末102に報告37されたBとCの認識票IDbおよびIDc、または接続に必要な情報を使って、ネットワークサービス事業者のサーバ100を通じて、あるいはAの情報端末102と、Bの情報端末106およびCの情報端末120との直接接続などによって、Aの情報端末104は、Bの情報端末106に対して、たとえばBの住んでいる市の名前Qbのハッシュ値H(Qb)を、またCの情報端末120に対して住んでいる市の名前Qcのハッシュ値H(Qc)を、それぞれAの端末104に対して送るように要求(38)する(ステップ212)。Bはこの要求に従ってその住んでいる市の名前のハッシュ値H(Qb)を、またCはその住んでいる市の名前のハッシュ値H(Qc)をそれぞれAに返送(39)する(ステップ213)。ここで、利用者Aの情報端末104、利用者Bの情報端末106及び利用者Cの情報端末120において用いられるハッシュ値を生成するアルゴリズムは、各情報端末において同じ演算及び同じアルゴリズムを用いればよく、如何なるアルゴリズムを用いてもよい。また、ここで利用者Aの情報端末104、利用者Bの情報端末106及び利用者Cの情報端末120において用いられる演算は、ハッシュ関数に限らず、どのような演算でもよい。ここで用いられる任意の演算が非可逆演算であれば、ここでAの端末104がBの端末106を一意に特定するために、Bの端末106およびCの端末120からAの端末104に送られるBおよびCの個人情報をAが解読または復元することができないので、Aがこの方法によって、無関係であるCの個人情報を入手することができない、という点で、個人情報の秘匿性が、可逆演算を用いた時よりも高くなる。
【0135】
図9に示す例では、BとCの住んでいる市の名前は異なる(Qb≠Qc)から、Aの端末104はあらかじめそのデータベース21に保持されている他者の情報32から、ハッシュ値H(Qb’)を生成して、これと39Bの端末106から返送されたH(Qb)、およびCの端末120から返送されたH(Qc)と比較することで、サーバ100から得た二件の一致のうちで、どちらが本来通信したいBであるかを判断する(ステップ214)。
【0136】
図11に示す例において、もし仮に、たとえばCがBの住んでいる市の名前Qbを知っており、Cが悪意をもってBになりすまそうと企てた場合、候補として残ったCは、Cの端末120において自分の知っているQb’からハッシュ値H(Qb’)を計算の上、Aに返送し、Bになりすますことができてしまう。これを防ぐために、秘密鍵を使う鍵付きハッシュアルゴリズムを用いて、Aの情報端末104がBの情報端末106,およびCの情報端末120に対してハッシュ値の要求をする際に、Aの情報端末104がB用の秘密鍵sbと、これとは別のC用の秘密鍵scを生成して、これらをそれぞれBの端末106,Cの端末120に送った後、Bの情報端末106、Cの情報端末120はそれぞれAより与えられた秘密鍵をもとにして、各々ハッシュ値Hsb(Qb)、およびHsc(Qc)を計算してこれらをAの端末104に返すようにする。Cは、AがBに送った秘密鍵sbを知らないので、たとえばCがBになりすます目的でHsc(Qb)をAの端末104に送ったとしても、Aの端末104で計算したBの端末106からAの端末104に返送される鍵付きハッシュ値の期待値Hsb(Qb)と、Cから返送されたHsc(Qb)とは等しくないので、CからBを装って返送されたハッシュ値が、Bから返送されたものではないと区別することができる。
【0137】
また、もし仮に、図11に示す例において、Pb=PcかつQb=Qcであるような場合は、このハッシュ照合の結果一致する者が複数出る結果、上記のような方法でハッシュ照合をしてもなお通信したい相手Bが一意に特定できない。このような場合には、さらにAの端末104のデータベース21に保持されているBの名前、住んでいる市の名前以外の個人情報のハッシュをBの情報端末106およびCの情報端末に要求し、それをAの情報端末104が照合する上記のステップを、Aの情報端末104がBの情報端末106を一意に特定できるまで繰り返すことによって、本来通信したいBの情報端末106を一意に特定することができる。
【0138】
(実施形態5)IP電話、ネットワークゲーム、SNSなどの、ネットワークに接続された情報端末を利用して特定の個人間でのコミュニケーションやデータのやりとりをするネットワークサービスが、通信相手の検索も含めて、P2P接続で実現されている場合がある。
【0139】
従来の方法では、このネットワークサービスでAの端末が通信したい相手Bの端末を検索する場合、まず、電子メールアドレスなどのBの端末を一意に特定できるBの個人情報の検索を、Aが直接P2P接続している端末(近接ノード)に問い合わせ(クエリ)を出す。もし近接ノードにクエリの情報との一致がない場合、クエリを受け取った近接ノードは、そのノードからみた別の近接ノードにこのクエリを転送する。ここでもなければまた更にそのノードからみた近接ノードへ、というようにバケツリレー式にクエリを転送し、Bの個人情報に出会うまでこれを繰り返すことでBを検索する。Bの個人情報を持った端末は、Aに対してBとのP2P接続に必要な情報を返すことで、AとBの間で新たなP2P接続が実現する。この場合は、Aの端末またはBの端末への接続に必要な情報をこの検索クエリを中継する端末で入手できる危険が大きく、機密性が保てない、あるいは検索されたくない相手に検索されることを防げない、という問題があった。
【0140】
図11は、本発明の他の一実施形態である。本実施形態に係る本発明のシステム及び方法は、このようなサーバを介さないP2P網での、通信相手の検索でも有効である。なお、実施形態1乃至3に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。
【0141】
図11に示す例における、P2Pネットワークサービスの利用者は、自分の名前と自分が通信しても良いと思う相手の名前の文字列結合をハッシュ関数によって演算し、その演算結果であるハッシュ値を生成して、各自の端末に保持しておく。たとえば図11では、Aの情報端末104に記憶・保持されているデータベース21にはB,D、EというAが知る三名の友人の個人情報として名前Pb’、Pd’、Pe’が登録されている。図11に示す状態は、AはB、DおよびEと通信してもよいということを示している。またBの情報端末106のデータベース22には、A、F、およびGというBが知る三名の友人の個人情報として名前Pa’、Pf’、およびPg’が記憶・保持されている。
【0142】
ただし、各情報(本実施形態5においては、名前)の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえば図11ではPb’はAがAの端末104で記憶・保持しているBの名前を意味している。また、Pbは、BがBの端末106で記憶・保持しているB自身の名前であることを意味している。通常であればPb’=Pbであるが、たとえばどちらか端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【0143】
図11で、利用者Aの情報端末104では、演算手段110aが、データベース21に記憶・保持されているBの名前を表す文字列Pb’と、データベース21に記憶・保持されているA自身の名前を表す文字列Paとの結合Pb’+Paを生成し、更にこの結合文字列に対してSHA−1、MD5などといった任意のハッシュ関数による演算を施した結果H(Pb’+Pa)をデータベース21に記憶・保持する。ここでは、結合列文字列をハッシュ関数Hによって処理した演算結果をH(Pb’+Pa)と表す。同様に、Aの情報端末104において、演算手段110aは、DとA、EとAの各々の名前を表す文字列を結合した上ハッシュ関数で演算を施した演算結果H(Pd’+Pa)、H(Pe’+Pa)を生成し、データベース21に記憶・保持する。
【0144】
ここで、本実施形態においては、Aの端末104に記憶されている、他者の名前よび自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、PaはAの端末104で記憶されているAの名前であり、Pb’、Pd’およびPe’はAの端末104で記憶されている各々B、D、およびEの名前というように、すべて名前という同じ属性の個人情報を用いたが、PaはAの名前、Pb’はBの住所、Pd’はDの電話番号、Pe’はEの年齢というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【0145】
また、本実施形態においては、たとえばPb’とPaの文字列結合という操作をおこなった上でハッシュ関数による演算結果H(Pb’+Pa)を用いたが、この演算結果はPb’とPaをもとにして結果が一意に決まる任意の演算結果F(Pb’、Pa)であってもよい。この任意の演算F(Pb’、Pa)は可逆演算、すなわちF(Pb’、Pa)からPb’およびPaを逆算できるものでも、非可逆演算、すなわちすなわちF(Pb’、Pa)からPb’およびPaを逆算できないものであってもよい。また、この任意の演算F(Pb’、Pa)は、可換な演算、すなわちF(Pb’、Pa)=F(Pa、Pb’)であっても、非可換な演算、すなわちF(Pb’、Pa)≠F(Pa、Pb’)であってもよい。本実施形態で用いた文字列結合のハッシュ演算H(Pb’、Pa)は、任意の演算F(Pb’、Pa)のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。本実施形態、およびこれ以降示すすべての実施形態で用いられる文字列結合のハッシュ関数の演算結果も、すべてここで述べた任意の関数の演算結果であってもよい。
【0146】
同様に、図11で、利用者Bの情報端末106では、演算手段112aが、データベース22に記憶・保持されているAの名前を表す文字列Pa’と、データベース22に記憶・保持されているB自身の名前を表す文字列Pbとの結合Pa’+Pbを生成し、更にこの結合文字列に対してSHA−1、MD5などといった任意のハッシュ関数による演算を施した結果H(Pa’+Pb)を生成し、データベース22に記憶・保持する。このBの情報端末106で行われる結合文字列のハッシュ演算Hは、如何なるハッシュ演算であってもよいが、Aの情報端末104で行われるハッシュ演算Hと同じ演算Hであることが要求される。同様に、Bの情報端末106において、演算手段112aは、FとB,GとB、の各々の名前の文字列結合のハッシュ演算結果H(Pf’+Pb)、およびH(Pg’+Pb)を生成し、これらの三つの演算結果H(Pa’+Pb)、H(Pf’+Pb)、およびH(Pg’+Pb)をデータベース22に記憶・保持する。
【0147】
ここで、本実施形態においては、Bの端末106に記憶されている、他者の名前および自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、PbはBの端末106で記憶されているBの名前であり、Pa’、Pf’およびPg’はBの端末106で記憶されている各々A、F、およびGの名前というように、すべて名前という同じ属性の個人情報を用いたが、PbはBの名前、Pa’はAの住所、Pf’はFの電話番号、Pg’はGの職業というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【0148】
ここの状態で、Bの情報端末106を検索しようとするAの情報端末104のハッシュ値生成手段110aは、ハッシュ値H(Pa+Pb’)を生成する。そして、Aの情報端末104は、生成したハッシュ値H(Pa,Pb’)に、たとえば、Bの公開鍵で暗号化するなどした、Aとの接続に必要な情報を付加して、近接ノードJ(Jの情報端末122)および近接ノードK(Kの情報端末124)にH(Pa+Pb’)の検索依頼のクエリ43を出す。これら隣接ノード(Jの情報端末122及びKの情報端末124)でH(Pa+Pb’)を持っていなければ、これらJおよびKの情報端末の近接ノードに対して、このクエリを転送する。たとえば、利用者Jの情報端末122は、その隣接ノードである利用者Lの情報端末にAからのクエリを転送する。このようにして、AがBの検索依頼のために発行したクエリは、バケツリレー的に転送され、Bの情報端末106にこのクエリが到達した時にはじめて、Bの情報端末106はハッシュ値の一致、すなわちH(Pa’+Pb)=H(Pa+Pb’))を検出する。この一致によって、Bの情報端末106は、Bの公開鍵で暗号化されたAの端末104への接続に必要な情報を、この公開鍵と対となる私有鍵で復号化することで、Aの端末104への接続に必要な情報を得た上、これを使ってAの情報端末104に対してBの情報端末106との接続に必要な情報を送付することで、Aの情報端末104とBの情報端末106との間のP2P接続44が実現する。
【0149】
なお、本実施形態では、Aの端末104がP2Pネットワークの隣接ノードに問い合わせる情報H(Pa+Pb’)として、Aの端末に記憶されているA自身の名前とBの名前というように、同じ属性の個人情報の組み合わせのハッシュという演算結果を用いたが、たとえばPaとしてAの電話番号、Pb’としてBの住所、というように属性の異なる個人情報を組み合わせて、そのハッシュ値をサーバ100に問い合わせても良い。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。この場合でも、Aの端末104から隣接ノードを経由してP2Pネットワークに対して問い合わせるハッシュ値と、Bの情報端末106がBの情報端末106に記憶・保持している個人情報の組み合わせのハッシュ値が等しい(H(Pa+Pb’)=H(Pa’+Pb))なら、Bの情報端末106は、Aの情報端末104に対してBとの接続に必要な情報をAの情報端末104に送る。
【0150】
また、本実施形態5においては、たとえばPb’とPaの文字列結合という操作をおこなった上でハッシュ関数による演算結果H(Pb’+Pa)を用いたが、この演算結果はPb’とPaをもとにして結果が一意に決まる任意の演算結果F(Pb’、Pa)であってもよい。この任意の演算F(Pb’、Pa)は可逆演算、すなわちF(Pb’、Pa)からPb’およびPaを逆算できるものでも、非可逆演算、すなわちすなわちF(Pb’、Pa)からPb’およびPaを逆算できないものであってもよい。ただし、ここで用いる任意の演算が可逆演算の場合には、上に述べた守秘性は保証されない。また、この任意の演算F(Pb’、Pa)は、可換な演算、すなわちF(Pb’、Pa)=F(Pa、Pb’)であっても、非可換な演算、すなわちF(Pb’、Pa)≠F(Pa、Pb’)であってもよい。本実施形態で用いた文字列結合のハッシュ演算H(Pb’、Pa)は、任意の演算F(Pb’+Pa)のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。
【0151】
(実施形態6)図12は、本発明の他の一実施形態である。現在使われているIP電話や携帯電話など通信端末の利用者が使っている端末の電話帳51にある名前、電話番号などの他者の個人情報は、従来の方法によれば、口頭や電子メールなどの別の通信手段によって各々の端末の利用者が入手し、自ら入力、蓄積したものである。従って、従来の方法では、これらの電話帳にある個人情報は、端末内のみで利用されるだけであり、たとえば電話帳に蓄積された情報をもとにした検索や、通話以外の様々なネットワークサービスに利用されることはなかった。これは、個々の端末に蓄積された電話帳にある他者の個人情報は、端末所有者だけが利用できるべきものであり、従来の方法によれば、これを検索やネットワークサービスに利用しようとすれば、これを携帯電話事業者などに開示することが必要だったためである。
【0152】
図12に示す本実施形態に係る本発明のシステム及び方法においては、Aの情報端末及びBの情報端末は、それぞれ、携帯電話128及び130である。なお、本実施形態においては、Aの情報端末及びBの情報端末は、それぞれ、携帯電話128及び130として説明しているが、これに限定されるわけではなく、PDA、ノートパソコン、ゲーム機、またはカメラ等で任意の種類の情報端末であってもよい。
【0153】
本実施形態に係る本発明のシステムおよび方法においては、図12に示すように、Aの情報端末128は、Aの情報端末128の電話番号帳に載っている人の各々の名前Pb’、Pc’、Pd’と、A自身の名前Paとの結合のハッシュ値H(Pb’+Pa)、H(Pc’+Pa)、H(Pd’+Pa)を生成し、Aの電話番号などの接続情報に関連づけて携帯電話事業者のサーバ100に送信し、データベース102に記憶・保持させ、登録しておく。また、Bの情報端末130は、Bの情報端末130の電話番号帳に載っている人の名前Pa’、Pe’、Pf’と、B自身の名前Pbとの結合のハッシュ値H(Pa’+Pb)、H(Pe’+Pb)、H(Pf’+Pb)を生成し、Bの電話番号などの接続情報に関連づけてサービス事業者のサーバ100に送信し、データベース102に記憶・保持させ、登録しておく。これと同様に、このネットワークサービスを利用する任意のIP電話もしくは携帯電話利用者の情報端末から、このAの情報端末128とBの情報端末130と同じやりかたで端末の所有者とその携帯電話帳に載っている各々の相手との結合のハッシュを生成し、サーバ100に送信し、データベース102に記憶・保持させ、登録しておく。
【0154】
図12に示す例において、たとえばAがBを検索しようとする場合、Aの情報端末128は、ハッシュ値H(Pa+Pb’)を検索ノードであるサーバ100に問い合わせる。サーバ100は、Bの情報端末130から送信されたハッシュ値H(Pa’+Pb)と登録されているハッシュ値とが一致するかどうかを検証する。このAの情報端末128からの問い合わせに対して、サーバ100がBの情報端末130から送信されたハッシュ値H(Pb+Pa’)と登録されているハッシュ値と一致を検出すれば、すなわちH(Pb’+Pa)=H(Pb+Pa’)であれば、Bの情報端末130の電話番号などの接続情報をAの情報端末128に送ることで、AからBへの通話が可能となる。
【0155】
このような状態では、各利用者が、その持っている電話帳という個人情報を携帯電話事業者に対してさえ一切開示することなく、個々の携帯電話の電話帳に載っている相手のみから検索される、という安全性の高い検索が実現でき、しかもその検索結果をもとにした安全な接続が実現できる。
【0156】
なお、本実施形態6においても、AやBが、自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、AやBが同様の操作をおこなう場合に用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような個人情報であってもよい。
【0157】
また、本実施形態6においては、たとえばPb’とPaの文字列結合という操作をおこなった上でハッシュ関数による演算結果H(Pb’+Pa)を用いたが、この演算結果はPb’とPaをもとにして結果が一意に決まる任意の演算結果F(Pb’、Pa)であってもよい。この任意の演算F(Pb’、Pa)は可逆演算、すなわちF(Pb’、Pa)からPb’およびPaを逆算できるものでも、非可逆演算、すなわちすなわちF(Pb’、Pa)からPb’およびPaを逆算できないものであってもよい。ただし、ここで用いる任意の演算が可逆演算の場合には、上に述べた守秘性は保証されない。また、この任意の演算F(Pb’、Pa)は、可換な演算、すなわちF(Pb’、Pa)=F(Pa、Pb’)であっても、非可換な演算、すなわちF(Pb’、Pa)≠F(Pa、Pb’)であってもよい。本実施形態で用いた文字列結合のハッシュ演算H(Pb’+Pa)は、任意の演算F(Pb’、Pa)のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。
【0158】
(実施形態7)図13を用いて、本発明の他の一実施形態を説明する。本実施形態においては、図13に示すように、すべての利用者A、B、C、D、EおよびFの情報端末がネットワークに接続されている。利用者A、B、Cの情報端末104、106及び120は、ネットワークサービスXでの通信を行っている。一方、利用者C、D、Eの情報端末120、128及び130は、ネットワークサービスYでの通信を行っている。本実施形態においては、ネットワークサービスXとネットワークサービスYとはそれぞれ独立している。
【0159】
たとえば、ネットワークサービスXの利用者であるAがネットワークサービスXの利用者であるBを検索する際には、従来の方法を用いている。すなわち、Aの情報端末104が、ネットワークサービスXの用意している検索用インデックスサーバ61に対し、Aの情報端末104があらかじめ持っていて、かつBの情報端末106があらかじめこのインデックスサーバ61に登録した個人情報そのものの検索を依頼し、インデックスサーバ61がAの情報端末104からの検索依頼と、Bからあらかじめ登録されたBの個人情報の一致を検出すると、インデックスサーバ61からネットワークサービスX上でのBの認識票またはBへの接続に必要な情報をAの情報端末104に通知することで、中継サーバを経由して、もしくはP2Pで直接接続するなどしてAの情報端末104からBの情報端末106への通信が確立する。
【0160】
また、ネットワークサービスYの利用者同士の検索においても、検索者はネットワークサービスYのインデックスサーバ62を利用して上記と同様の手順で通信相手を従来の被験者の個人情報そのものを直接検索する方法によって検索することにより、被検索者へのネットワークサービスY上での接続に必要な情報を入手した上で、通信を確立する。
【0161】
しかし、ネットワークサービスXとネットワークサービスYとは独立したネットワークサービスである。よって、独立したネットワークサービスの利用者間で検索し、通信を確立するためには、従来の方法によれば、ネットワークサービスX、ネットワークサービスYの双方のインデックスサーバにある検索用の個人情報と接続情報を統合したデータベースを作成し、ネットワークサービスXまたはネットワークサービスYの利用者がその統合したデータベースに対して検索を依頼するか、または、ネットワークサービスXの利用者へのネットワークサービスYのインデックスサーバ62の解放、または逆にネットワークサービスYの利用者へネットワークサービスXのインデックスサーバXの解放が不可欠であった。
【0162】
たとえば、従来の方法では、ネットワークサービスXのみの利用者であるAの端末104から、ネットワークサービスYのみの利用者Eの端末130を検索して、通信を確立するためには、Aは、ネットワークサービスXとネットワークサービスYのインデックスサーバが統合されたデータベース、すなわちX、Yの利用者全ての個人情報と接続情報を含む新たなデータベースに対して問い合わせを行うか、またはAの端末104によるネットワークサービスYのインデックスサーバ62への検索、認証、接続情報提供の依頼などを許可する必要があった。つまり、異なるネットワークサービス間での相互検索や接続をする場合、ネットワークサービスXとネットワークサービスYの独立性は保てないという問題があった。
【0163】
しかし、異なるネットワークサービスは、異なる事業者によって運営されている場合がほとんどであり、インデックスサーバにある利用者の個人情報が事業者にとっての貴重な資産であるだけでなく、サービス運営事業者は通常利用者の個人情報についての秘密保持義務を負う。このため、従来の方法で必要なインデックスサーバの統合や、他のプロトコル利用者へのインデックスサーバの解放はほとんどの場合、事業的観点から現実的ではなかった。
【0164】
本実施形態7に係る本発明のシステム及び方法においては、図13に例示するように、異なるプロトコル間の独立性を保ち、かつ利用者に相互接続の利便性を提供する、本発明の一実施形態を説明する。いま、図13における利用者A,B,C、D、Eはすべて互いに友人であり、これらの利用者の情報端末104、106、120、128及び130には、これら友人の名前が友人名簿として登録されているとする。たとえば、図13において、A104の端末に記憶・保持されているCの名前はPc’と表記されている。
【0165】
本実施形態7に係る本発明のシステム及び方法においては、ネットワークサービスXの利用者とネットワークサービスYの利用者の相互接続を実現するために、共通検索サーバ100を用いる。いま、この共通検索サーバによって検索をおこなった結果から相互接続をおこなうサービスを、ネットワークサービスZと新たに定義する。Aは、友人名簿にはあるが、ネットワークサービスXの利用者ではないDの名前Pd’およびEの名前Pe’と、自分の名前Paの文字列結合のハッシュ関数による演算結果であるハッシュ値H(Pd’+Pa)およびH(Pe’+Pa)を共通検索サーバ100に登録する。同様に、BはH(Pd’+Pb)とH(Pe’+Pb)を、DはH(Pa’+Pd)とH(Pb’+Pd)を、またEはH(Pa’+Pe)とH(Pb’+Pe)64をそれぞれ、共通検索サーバ100に登録する。これらすべてのハッシュ値には、登録した者が、各々の使っているネットワークサービスXおよびYを超えて、ネットワークサービスZ上で唯一に特定できる認識票IDa、IDb、IDd、およびIDe、またはハッシュ値の提出者に接続するための情報などを関連づけて保持しておく。
【0166】
このように各自がハッシュ値とその接続情報を登録しても、共通検索サーバ100には、認識票等が関連づけられた名前の組み合わせのハッシュ値が登録されているだけであり、ネットワークサービスXの運営者またはネットワークサービスYの運営者が管理している、ネットワークサービスXの利用者またはネットワークサービスYの利用者のいずれの個人情報は登録されていない。したがって、ネットワークサービスX、ネットワークサービスYは独立し、なおかつ共通検索サーバ、すなわちネットワークサービスZの運営者がネットワークサービスXの運営者、ネットワークサービスYの運営者各々の所有する個人情報を入手する手段を持たない。また、いずれの利用者も個人情報を検索用に公開する必要もない。
【0167】
このような状態で、ネットワークサービスXの利用者であるAがネットワークサービスYの利用者であるEを検索して接続したい場合について説明する。Aの情報端末104は、共通検索サーバ100に対してAの名前Paと相手の名前Pe’を文字列結合したもののハッシュ値H(Pa+Pe’)を送信し、検索を依頼65する。共通検索サーバ100では、Eからあらかじめ登録されたハッシュ値との一致、すなわちH(Pa+Pe’)=H(Pa’+Pe)を検出する。その結果、XおよびYからは独立したネットワークサービスZ上でのEの認識票IDe、またはEへの接続に必要な情報をAの情報端末104に対して通知67した上、Aの情報端末104はEの情報端末130へサーバ経由、またはP2P接続によってネットワークサービスZ上で通信を確立する。
【0168】
なお、本実施形態7においても、AやBが、自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、AやBが同様の操作をおこなう場合に用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような個人情報であってもよい。また、たとえばH(Pa+Pe’)やH(Pa’+Pe)などにおいて組み合わせる個人情報は、名前同士のように、同じ属性の個人情報でなくともよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【0169】
また、本実施形態7においては、たとえばPb’とPaの文字列結合という操作をおこなった上でハッシュ関数による演算結果H(Pb’+Pa)を用いたが、この演算結果はPb’とPaをもとにして結果が一意に決まる任意の演算結果F(Pb’、Pa)であってもよい。この任意の演算F(Pb’、Pa)は可逆演算、すなわちF(Pb’、Pa)からPb’およびPaを逆算できるものでも、非可逆演算、すなわちすなわちF(Pb’、Pa)からPb’およびPaを逆算できないものであってもよい。ただし、ここで用いる任意の演算が可逆演算の場合には、上に述べた守秘性は保証されない。また、この任意の演算F(Pb’、Pa)は、可換な演算、すなわちF(Pb’、Pa)=F(Pa、Pb’)であっても、非可換な演算、すなわちF(Pb’、Pa)≠F(Pa、Pb’)であってもよい。本実施形態で用いた文字列結合のハッシュ演算H(Pb’+Pa)は、任意の演算F(Pb’、Pa)のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。
【0170】
共通検索サーバで検索後のAの情報端末104とEの情報端末130との間の通信には、上記のようにX、Yから独立したネットワークサービスZを使ってもよいし、あるいはネットワークサービスXとネットワークサービスYの両方で通信可能なCの端末68を中継ノードとしてネットワークサービスX、ネットワークサービスYの両方を使ってもよい。
この場合でも、ネットワークXの運営者、ネットワークYの運営者にとって、各々の所有する個人情報を共通検索サーバの運営者を含む他者に開示する必要がなく、各々の運営者の独立は維持された状態で、ネットワークサービスを超えた相互接続サービスが提供できる。
【0171】
図13では、共通検索サーバ100には各自の端末にある友人名簿の中で、自分の使っていないネットワークサービスにある者の名前と、自分の名前のハッシュ値のみを登録したが、同じネットワークサービスを利用している友人も含めて各自の友人名簿にある名前のすべてと、自分の名前のハッシュ値を共通検索サーバに登録しておいても良い。このようにしても、各ネットワークサービスの独立性は同様に保たれ、なおかつネットワークサービスX、ネットワークサービスY各々の運営者が所有する利用者の個人情報を開示する必要もない。
【0172】
また、図13では利用者の個人情報を保管し検索を担う機能は、インデックスサーバや共通検索サーバなどのサーバでの集中管理としているが、P2P網などのように、複数の端末に分散した状態で情報の保管や検索をおこなうネットワークにも、本発明は適用できる。
【0173】
このように本発明によれば、通信端末同士が安全かつ自動的に通信を確立できるので、通信端末同士の自動的な情報のやりとりをもとに、様々なサービスが実現される。
【図面の簡単な説明】
【0174】
【図1】従来の方法による通信相手検索方法を示す図である。
【図2】本発明の一実施形態によるシステムを示す図である。
【図3】本発明の一実施形態によるサーバの構成を示す図である。
【図4】本発明の一実施形態による情報端末Aの構成を示す図である。
【図5】本発明の一実施形態による情報端末Bの構成を示す図である。
【図6】本発明の一実施形態による方法を示すフローチャートである。
【図7】本発明の一実施形態によるシステムを示す図である。
【図8】本発明の一実施形態によるシステムを示す図である。
【図9】本発明の一実施形態によるシステムを示す図である。
【図10】本発明の一実施形態によるシステムを示す図である。
【図11】本発明の一実施形態によるシステムを示す図である。
【図12】本発明の一実施形態によるシステムを示す図である。
【図13】本発明の一実施形態によるシステムを示す図である。
【符号の説明】
【0175】
100 サーバ 102 データベース 104 利用者Aの情報端末 106 利用者Bの情報端末 108 データ処理手段 108a 送受信手段 108b テーブル作成手段 108c 検索手段 110 データ処理手段 110a 演算手段 110b 送受信手段 112 データ処理手段 112a 演算手段 112b 送受信手段

【特許請求の範囲】
【請求項1】
利用者Aの情報Pa及び利用者Bの情報Pb’を記憶する利用者Aの情報端末と、
前記利用者Aの情報Pa’及び前記利用者Bの情報Pbを記憶する前記利用者Bの情報端末と、
サーバと、
を有するシステムであって、
前記利用者Bの情報端末は、前記利用者Aの前記情報Pa’及び前記利用者Bの前記情報Pbを所定の演算によって演算した第1の演算結果F(Pa’,Pb)を生成し、前記第1の演算結果F(Pa’,Pb)を前記サーバに送信し、
前記サーバは、前記利用者Bの認識票と前記第1の演算結果F(Pa’,Pb)とを関連づけて記憶し、
前記利用者Aの情報端末は、前記利用者Bの前記情報Pb’及び前記利用者Aの前記情報Paを前記所定の演算によって演算した第2の演算結果F(Pa,Pb’)を生成し、前記第2の演算結果F(Pa,Pb’)を前記サーバに送信し、
前記サーバは、前記第2の演算結果F(Pa,Pb’)により前記記憶された演算結果を検索し、前記検索により前記第1の演算結果F(Pa’,Pb)を検出することによって前記第1の演算結果と関連づけて記憶された前記利用者Bの前記認識票を検出し、前記利用者Aの情報端末に前記利用者Bの前記認識票を送信することを特徴とするシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図13】
image rotate

【図12】
image rotate


【公開番号】特開2013−69321(P2013−69321A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2012−251492(P2012−251492)
【出願日】平成24年11月15日(2012.11.15)
【分割の表示】特願2007−107756(P2007−107756)の分割
【原出願日】平成19年4月17日(2007.4.17)
【出願人】(506183731)リプレックス株式会社 (20)