(57)【特許請求の範囲】
【請求項１】
利用者Ａの情報Ｐａ及び利用者Ｂの情報Ｐｂ’を記憶する利用者Ａの情報端末と、
前記利用者Ａの情報Ｐａ’及び前記利用者Ｂの情報Ｐｂを記憶する前記利用者Ｂの情報端末と、
サーバと、
を有するシステムであって、
前記利用者Ｂの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｂの前記情報Ｐｂを所定の演算によって演算した第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を生成し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記サーバに送信し、
前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶し、
前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｐｂ’及び前記利用者Ａの前記情報Ｐａを前記所定の演算によって演算した第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成し、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を前記サーバに送信し、
前記サーバは、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）により前記記憶された演算結果を検索し、前記検索により前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、およびアプリケーションソフトウェアに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、電話、ゲーム機のなどの各種情報端末がＩＰ網に接続されるようになり、これまでは主としてＷｅｂに代表されるようにサーバ上での、世界に向けた情報公開に使われていたインターネットが、ＩＰ電話やネットワークゲーム、あるいはソーシャル・ネットワーク・サイト（ＳＮＳ）などの、個人的な情報をサーバ上、あるいはピア・ツー・ピア（Ｐ２Ｐ）網上で、開示先を限定してやりとりすることのできるサービスに代表されるような、個人間のコミュニケーションの手段としても使われるようになってきた。
【０００３】
さらに、デジタルカメラ、ビデオカメラ、携帯型音楽プレーヤー、ビデオレコーダ、ナビゲーションシステムなどの様々な民生機器も、ＩＰネットワークへの接続が進んでおり、今後はこれらの様々な民生機器も、情報端末として個人間のコミュニケーションの手段として使われるようになると予想される。
【０００４】
ネットワークに接続されたこのような各種情報端末を使ってのコミュニケーション、もしくはデータのやりとりを実現する場合、利用者はネットワーク上で通信したい相手を検索して見つける必要がある。
【０００５】
ほとんどのサービスでは、個人間のコミュニケーションやデータのやりとりはサービス事業者の運営するサーバ上で行われるため、利用者はログイン時に認証を受けた上で、通信したい相手を探す際、その相手があらかじめサービス事業者に開示および登録しておいた個人情報を直接検索することで、相手を特定して通信をおこなう。
【０００６】
また、ピア・ツー・ピア（Ｐ２Ｐ）型のようなサーバに依存しないアーキテクチャによって個人間のコミュニケーションやデータのやりとりを実現するサービスでは、通信したい相手を探す際、その相手がこのサービスの参加者に対して開示している個人情報を検索する問い合わせ(Ｑｕｅｒｙ:クエリ)を、直接通信しているノード（近接ノード）に対して行う。このノードがこのクエリの検索対象である個人情報を持っていない場合、さらにこのノードの別の近接ノードに対してこのクエリを転送する。このクエリの検索対象である個人情報を持っているノードに出会うまでクエリの転送を繰り返すことで、通信したい相手を特定し、その相手のネットワーク上でのＩＤを得て通信を確立する。
【０００７】
さらに、上記のようにサーバ上での個人情報を検索した上で、サーバのデータベース上で個人情報の一致を検出すると、通信を必要としている利用者に各々のネットワークＩＤを通知し、データ転送はＰ２Ｐで利用者同士が直接接続を確立しておこなう、いわゆるハイブリッド型のサービスも提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２４４０９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
個人間のコミュニケーションやデータのやりとりをする際の、通信相手の特定やネットワークＩＤの取得のための、サーバ上、もしくはＰ２Ｐネットワーク上での個人情報の検索に関する解決すべき主な課題は以下の二点である。
【００１０】
第一に、個人情報の機密性の問題である。この種のサービスの利用者があらかじめ登録した個人情報は、このサービスの利用者全員が検索対象として問い合わせることができ、問い合わせた情報とデータベース上の情報との一致が検出されると、その旨を問い合わせた者に通知する。したがって、不特定多数の利用者が登録された個人情報を入手可能であった。さらに巡回型のソフトウェアでこの検索対象を走査するなどすれば、このサービスの利用者のリスト等も作成できた。この種のサービスの利用者が登録し、検索に使われている個人情報は、事実上サービスの利用者全体に公開されていたといえる。さらに、サービス利用者がサービス事業者に開示した個人情報はそのサーバにデータベースとして保持されるため、これが何らかの形で外部に漏洩する危険もあった。利用者が誰かに検索してもらうためには、サービス事業者およびサービス利用者に対して個人情報を開示することは不可避であり、利用者が望む個人情報の秘匿とは本質的に矛盾があった。
【００１１】
第二に、利用者が検索されたくない相手に検索されることを防ぐ手段がない点である。たとえばＩＰ電話の電話帳において検索のための個人情報として利用者の名前を登録した場合、名前を知る世界中の誰もがこの利用者に電話をかけられるようになってしまう。また同様にＳＮＳサービスで名前を登録すれば、勤務先には知られたくない個人的な人間関係、活動、嗜好などを知られてしまうかもしれない。悪意の第三者が、この検索に対して自動的に多数のクエリを送り、名前（氏名）やその他の付帯情報、さらにはネットワーク上のＩＤなどのデータベースを作成し、悪用するかもしれない。これらはすべて合法的な行為であり、これらを止めることは技術的手段のみならず法的手段をもってしてもあり得なかった。
【００１２】
これらの問題により、現在実現されている個人間のコミュニケーションやデータのやりとりをするサービスでは、利用者のほとんどが検索対象となる個人情報から実名性を排除することを望む結果、検索となる個人情報には主として利用者が任意につけた本人確認のできないあだ名（ニックネーム）が使われており、その結果この種のサービス上ではほとんどが匿名者同士のコミュニケーションとなっていた。
【００１３】
しかし、たとえばＩＰ電話やＳＮＳサービスの多くは、実名性をもったコミュニケーションがその本質である。これまでに提案されている方法によれば、電子メールや会話など、実名性をもった通信手段によって、直接通信したい相手本人からニックネームを入手することで、ニックネームをＩＰ電話やＳＮＳサービスで検索することで、通信を確立する場合がほとんどであり、このようなサービスで本来必要としている実名性のある検索は事実上機能しなくなっていた。
【００１４】
図１は従来の検索方法を示した図である。利用者Ａおよび利用者Ｂを含めてこのネットワークサービスの利用者は、あらかじめネットワークサービス事業者に個人を特定できる名前、電子メールアドレス、電話番号などの個人情報を登録しておく。ネットワークサービス事業者のサーバのデータベース１１は、これら個人情報と、ネットワークサービス上で他者と接続および通信を行うために使う各利用者固有の認識票（ネットワークサービスＩＤ）との対応関係を記憶しておく。このネットワークサービス上でＡがＢを検索しＢと通信したい時には、Ａは、名前、ニックネーム、電子メールアドレスその他のＡの知っているＢの個人情報を、Ａの情報端末１２を通じてネットワークサービス事業者のサーバ１７に送り、この個人情報をもとにネットワークサービス事業者のサーバ１７にＢの検索依頼１３を行う。ネットワークサービス事業者のサーバ１７のデータベース１１において、Ａの送ったＢの個人情報とデータベース１１に記憶されているＢの個人情報との一致が検出されると、その旨をＡの情報端末１８に通知（１４）した上、ネットワークサービス事業者のサーバ１７などを経由してＡの情報端末１８とＢの情報端末１９との間の通信が確立（１５）する。また、ネットワークサービス事業者がＡの情報端末１８のネットワークサービスＩＤをＢの情報端末１９を通してＢに通知し、且つ、Ｂの情報端末のネットワークサービスＩＤをＡの情報端末１８を通してＡに通知し、Ａの情報端末１８とＢの情報端末１９とが直接ピア・ツー・ピア（Ｐ２Ｐ）接続（１６）を確立する。
【００１５】
この従来の方法には二つの問題があった。
【００１６】
第一に個人情報の機密性の問題である。この種のサービスの利用者があらかじめ登録した個人情報は、原則としてこのサービスの利用者全員が検索対象として問い合わせることができる。問い合わせた情報とデータベース上の情報との一致が検出されると、その旨を問い合わせた者に通知する。したがって、Ａ及びＢとは無関係な第三者である同じネットワークサービスの利用者Ｃは、たとえば名前や電子メールアドレスなどを問い合わせることによって、ＡやＢの登録した個人情報を得ることができてしまう。さらに、巡回型のソフトウェアでこの検索対象を走査するなどすれば、このサービスの利用者のリスト等も作成できてしまう。この種のネットワークサービスの利用者が登録し、検索に使われている個人情報は、事実上ネットワークサービスの利用者全体に公開されている。さらに、ネットワークサービスの利用者がネットワークサービス事業者に開示した個人情報は、そのサーバにデータベースとして保持されるため、これが何らかの形で外部に漏洩する危険もあった。他者から検索してもらうためにはネットワークサービス事業者およびネットワークサービス利用者に対して、個人情報を開示することは不可避である。このような事情により、従来のネットワークサービスにおいては、利用者のほぼすべてが望む個人情報の秘匿とは本質的に矛盾するという問題があった。
【００１７】
第二には、利用者が検索されたくない相手にもその利用者の情報が検索されることを防ぐ手段がない点である。たとえばＩＰ電話の電話帳において、検索のための個人情報として利用者の名前を登録した場合、無関係の第三者ＣがＢを検索できる結果、たとえＢがＣとの通信を望んでいなくとも、ＣはＢに通信を求めることができてしまった。また同様に、ＢがＳＮＳサービスで名前を登録すれば、勤務先には知られたくない個人的な人間関係、活動、嗜好などを知られてしまうかもしれない。悪意の第三者が、この検索に対して自動的に多数のクエリを送り、名前やその他の付帯情報、さらにはネットワーク上のＩＤなどのデータベースを作成し、悪用するかもしれない。これらはすべて合法的な行為であり、従来のネットワークサービスにおいては、これらを止めることは技術的手段のみならず法的手段をもってしてもあり得なかった。
【００１８】
本発明は、このような事情に鑑みてなされたものであり、ネットワークに接続されたこのような各種情報端末を使ってのコミュニケーション、もしくはデータのやりとりを実現するサービスにおいて、通信したい相手を、安全で、かつ実名性をもって検索することができるようなシステム、方法、コンピュータプログラム、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、及びアプリケーションソフトウェアを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の一実施形態によると、利用者Ａの情報Ｐａ及び利用者Ｂの情報Ｐｂ’を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐａ’及び前記利用者Ｂの情報Ｐｂを記憶する前記利用者Ｂの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｂの前記情報Ｐｂを非可逆な任意の演算によって演算した第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を生成し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｐｂ’及び前記利用者Ａの前記情報Ｐａを非可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成し、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を前記サーバに送信し、前記サーバは、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）と前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）との一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信することを特徴とするシステムが提供される。
【００２０】
本発明の一実施形態によると、利用者Ａの情報Ｐａ及び利用者Ｂの情報Ｐｂ’を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐａ’及び前記利用者Ｂの情報Ｐｂを記憶する前記利用者Ｂの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｂの前記情報Ｐｂを可逆な任意の演算によって演算した第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を生成し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｐｂ’及び前記利用者Ａの前記情報Ｐａを可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成し、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を前記サーバに送信し、前記サーバは、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）と前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）との一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信することを特徴とするシステムが提供される。
【００２１】
前記第１の演算結果は、前記利用者Ａの情報端末および前記利用者Ｂの情報端末の両方に記憶された同一のワイルドカード情報＊と、前記情報Ｐｂとを演算した結果Ｆ（＊，Ｐｂ）であり、前記第２の演算結果は、前記ワイルドカード情報＊と、前記情報Ｐｂ’とを演算した結果Ｆ（＊，Ｐｂ’）であるようにしてもよい。
【００２２】
本発明の一実施形態によると、利用者Ｂの情報端末において生成された、利用者Ａの情報Ｐａ’及び利用者Ｂの情報Ｐｂを非可逆な任意の演算によって演算した演算結果Ｆ（Ｐａ’，Ｐｂ）を受信し、前記利用者Ｂの認識票と前記演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶することを特徴とするサーバが提供される。
【００２３】
前記サーバは、前記利用者Ａの情報端末において生成された、前記利用者Ａの情報Ｐａ及び前記利用者Ｂの情報Ｐｂ’を非可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を受信し、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）と前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）との一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信する。
【００２４】
本発明の一実施形態によると、利用者Ｂの情報端末において生成された、利用者Ａの情報Ｐａ’及び利用者Ｂの情報Ｐｂを可逆な任意の演算によって演算した演算結果Ｆ（Ｐａ’，Ｐｂ）を受信し、前記利用者Ｂの認識票と前記演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶することを特徴とするサーバが提供される。
【００２５】
本発明の一実施形態によると、前記サーバは、前記利用者Ａの情報端末において生成された、前記利用者Ａの情報Ｐａ及び前記利用者Ｂの情報Ｐｂ’を可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ，Ｐｂ’）を受信し、前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）と前記第２の演算結果Ｆ（Ｐａ，Ｐｂ’）との一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信する。
用者Ａの情報Ｐａ及び利用者Ｂの情報Ｐｂ’を非可逆な任意の演算によって演算した第１の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成する演算手段と、前記第１の演算結果Ｆ（Ｐａ，Ｐｂ’）をサーバに送信する送信手段と、前記サーバが、前記利用者Ｂの情報端末が前記利用者Ａの情報Ｐａ’及び前記利用者Ｂの情報Ｐｂを非可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記利用者Ｂの認識票と関連づけて記憶し、前記利用者Ａの情報端末から送信された前記第１の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ，Ｐｂ’）と前記第２の演算結果Ｆ（Ｐａ’，Ｐｂ）との一致を検出することによって送信する前記利用者Ｂの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【００２６】
本発明の一実施形態によると、利用者Ａの情報Ｐａ及び利用者Ｂの情報Ｐｂ’を可逆な任意の演算によって演算した第１の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成する演算手段と、前記第１の演算結果Ｆ（Ｐａ，Ｐｂ’）をサーバに送信する送信手段と、前記サーバが、前記利用者Ｂの情報端末が前記利用者Ａの情報Ｐａ’及び前記利用者Ｂの情報Ｐｂを可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記利用者Ｂの認識票と関連づけて記憶し、前記利用者Ａの情報端末から送信された前記第１の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ，Ｐｂ’）と前記第２の演算結果Ｆ（Ｐａ’，Ｐｂ）との一致を検出することによって送信する前記利用者Ｂの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【００２７】
前記第１の演算結果は、前記利用者Ａの情報端末および前記利用者Ｂの情報端末の両方に記憶された同一のワイルドカード情報＊と、前記情報Ｐｂとを演算した結果Ｆ（＊，Ｐｂ）であり、前記第２の演算結果は、前記ワイルドカード情報＊と、前記情報Ｐｂ’とを演算した結果Ｆ（＊，Ｐｂ’）であるようにしてもよい。
【００２８】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを記憶する前記利用者Ｂの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の第１の演算結果を生成し、前記第１の演算結果を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を生成し、前記第２の演算結果を前記サーバに送信し、前記サーバは、前記第２の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信することを特徴とするシステムが提供される。
【００２９】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを記憶する前記利用者Ｂの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な任意の演算によって演算した一つ以上の第１の演算結果を生成し、前記第１の演算結果を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を生成し、前記第２の演算結果を前記サーバに送信し、前記サーバは、前記第２の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信することを特徴とするシステムが提供される。
【００３０】
前記第１の演算結果は、Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｍｂ）のうち一つ以上であり、前記第２の演算結果は、Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）のうち一つ以上であるようにしてもよい。
【００３１】
本発明の一実施形態によると、利用者Ｂの情報端末において生成された、利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’（ｎは整数）及び前記利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ（ｍは整数）を任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の演算結果を受信し、前記利用者Ｂの認識票と前記演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【００３２】
本発明の一実施形態によると、利用者Ｂの情報端末において生成された、利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’（ｎは整数）及び前記利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ（ｍは整数）を任意に組み合わせて可逆な任意の演算によって演算した一つ以上の演算結果を受信し、前記利用者Ｂの認識票と前記演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【００３３】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を組み合わせて非可逆な任意の演算によって演算した一つ以上の第１の演算結果を生成する演算手段と、前記第１の演算結果をサーバに送信する送信手段と、前記サーバが、前記利用者Ｂの情報端末が前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を前記利用者Ｂの認識票と関連づけて記憶し、前記利用者Ａの情報端末から送信された前記第１の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって送信する前記利用者Ｂの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【００３４】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を組み合わせて可逆な任意の演算によって演算した一つ以上の第１の演算結果を生成する演算手段と、前記第１の演算結果をサーバに送信する送信手段と、前記サーバが、前記利用者Ｂの情報端末が前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を前記利用者Ｂの認識票と関連づけて記憶し、前記利用者Ａの情報端末から送信された前記第１の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって送信する前記利用者Ｂの認識票を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【００３５】
本発明の一実施形態によると、前記第１の演算結果は、Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｍｂ）のうち一つ以上であり、前記第２の演算結果は、Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）のうち一つ以上である。
【００３６】
本発明の一実施形態によると、前記第１の演算結果は、前記利用者ＡのＰ１ａ、Ｐ２ａ、・・・、Ｐｎａのうち一つと前記利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’の一つを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の結果であり、前記第２の演算結果は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’のうち一つと前記利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂの一つを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の結果である。
【００３７】
本発明の一実施形態によると、利用者Ａの情報Ｐａ、利用者Ｂの情報Ｐｂ’及びＱｂ’を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐａ’並びに前記利用者Ｂの情報Ｐｂ及びＱｂを記憶する前記利用者Ｂの情報端末と、前記利用者Ａの情報Ｐａ’並びに前記利用者Ｃの情報Ｐｃ及びＱｃを記憶する前記利用者Ｃの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｂの前記情報Ｐｂを非可逆な任意の演算によって演算した第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を生成し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶し、前記利用者Ｃの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｃの前記情報Ｐｃを非可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ’，Ｐｃ）を生成し、前記第２の演算結果Ｆ（Ｐａ’，Ｐｃ）を前記サーバに送信し、前記サーバは、前記利用者Ｃの認識票と前記第２の演算結果Ｆ（Ｐａ’，Ｐｃ）とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｐｂ’及び前記利用者Ａの前記情報Ｐａを非可逆な前記任意の演算によって演算した第３の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成し、前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）を前記サーバに送信し、前記サーバは、前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）と前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）とが一致し且つ前記第２の演算結果Ｆ（Ｐａ’，Ｐｃ）と前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）とが一致する場合、前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票及び前記第２の演算結果と関連づけて記憶された前記利用者Ｃの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票及び前記利用者Ｃの前記認識票を送信し、前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｑｂ’を任意の第２の演算によって演算した第４の演算結果Ｆ（Ｑｂ’）を生成し且つ前記第４の演算結果Ｆ（Ｑｂ’）を前記利用者Ｂ及び前記利用者Ｃに要求し、前記利用者Ｂの情報端末は、前記情報Ｑｂを前記任意の第２の演算によって演算した第５の演算結果Ｆ（Ｑｂ）を生成し、前記第４の演算結果Ｆ（Ｑｂ）を前記利用者Ａの情報端末に送信し、前記利用者Ａの情報端末は、前記第４の演算結果Ｆ（Ｑｂ’）と前記第５の演算結果Ｆ（Ｑｂ）との一致を検出することによって、前記利用者Ｂの情報端末を特定することを特徴とするシステムが提供される。
【００３８】
本発明の一実施形態によると、利用者Ａの情報Ｐａ、利用者Ｂの情報Ｐｂ’及びＱｂ’を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐａ’並びに前記利用者Ｂの情報Ｐｂ及びＱｂを記憶する前記利用者Ｂの情報端末と、前記利用者Ａの情報Ｐａ’並びに前記利用者Ｃの情報Ｐｃ及びＱｃを記憶する前記利用者Ｃの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｂの前記情報Ｐｂを可逆な任意の演算によって演算した第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を生成し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）とを関連づけて記憶し、前記利用者Ｃの情報端末は、前記利用者Ａの前記情報Ｐａ’及び前記利用者Ｃの前記情報Ｐｃを可逆な前記任意の演算によって演算した第２の演算結果Ｆ（Ｐａ’，Ｐｃ）を生成し、前記第２の演算結果Ｆ（Ｐａ’，Ｐｃ）を前記サーバに送信し、前記サーバは、前記利用者Ｃの認識票と前記第２の演算結果Ｆ（Ｐａ’，Ｐｃ）とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｐｂ’及び前記利用者Ａの前記情報Ｐａを可逆な前記任意の演算によって演算した第３の演算結果Ｆ（Ｐａ，Ｐｂ’）を生成し、前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）を前記サーバに送信し、前記サーバは、前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）と一致する演算結果を検索し、前記第１の演算結果Ｆ（Ｐａ’，Ｐｂ）と前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）とが一致し且つ前記第２の演算結果Ｆ（Ｐａ’，Ｐｃ）と前記第３の演算結果Ｆ（Ｐａ，Ｐｂ’）とが一致する場合、前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票及び前記第２の演算結果と関連づけて記憶された前記利用者Ｃの前記認識票を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票及び前記利用者Ｃの前記認識票を送信し、前記利用者Ａの情報端末は、前記利用者Ｂの前記情報Ｑｂ’を任意の第２の演算によって演算した第４の演算結果Ｆ（Ｑｂ’）を生成し且つ前記第４の演算結果Ｆ（Ｑｂ’）を前記利用者Ｂ及び前記利用者Ｃに要求し、前記利用者Ｂの情報端末は、前記情報Ｑｂを前記任意の第２の演算によって演算した第５の演算結果Ｆ（Ｑｂ）を生成し、前記第４の演算結果Ｆ（Ｑｂ）を前記利用者Ａの情報端末に送信し、前記利用者Ａの情報端末は、前記第４の演算結果Ｆ（Ｑｂ’）と前記第５の演算結果Ｆ（Ｑｂ）との一致を検出することによって、前記利用者Ｂの情報端末を特定することを特徴とするシステムが提供される。
【００３９】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ、および前記利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂの各々に関連づけられたフラグ情報ＦＬＧ１ｂ、ＦＬＧ２ｂ、・・・、ＦＬＧｍｂを記憶する前記利用者Ｂの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の第１の演算結果を生成し、前記第１の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Ｂの情報に関連づけられた前記フラグ情報を関連づけ、前記第１の演算結果と対応する前記フラグ情報の対を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と、一つ以上の前記第１の演算結果とそれに対応する前記フラグ情報の対とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を生成し、前記第２の演算結果を前記サーバに送信し、前記サーバは、前記第２の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票、および各々の前記第１の演算結果と対をなす利用者Ｂの前記フラグ情報を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票および前記フラグ情報を送信することを特徴とするシステムあｇ提供される。
【００４０】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を記憶する利用者Ａの情報端末と、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ、および前記利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂの各々に関連づけられたフラグ情報ＦＬＧ１ｂ、ＦＬＧ２ｂ、・・・、ＦＬＧｍｂを記憶する前記利用者Ｂの情報端末と、サーバと、を有するシステムであって、前記利用者Ｂの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な任意の演算によって演算した一つ以上の第１の演算結果を生成し、前記第１の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Ｂの情報に関連づけられた前記フラグ情報を関連づけ、前記第１の演算結果と対応する前記フラグ情報の対を前記サーバに送信し、前記サーバは、前記利用者Ｂの認識票と、一つ以上の前記第１の演算結果とそれに対応するフラグ情報の対とを関連づけて記憶し、前記利用者Ａの情報端末は、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を生成し、前記第２の演算結果を前記サーバに送信し、前記サーバは、前記第２の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票、および各々の前記第１の演算結果と対をなす前記利用者Ｂのフラグ情報を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票および前記フラグ情報を送信することを特徴とするシステムが提供される。
【００４１】
前記第1の演算結果のそれぞれが、これに関連づけられる一つ以上の任意の数の前記フラグ情報を有するようにしてもよい。
【００４２】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を任意に組み合わせて非可逆な任意の演算よって演算した一つ以上の第１の演算結果を生成し、前記第１の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Ｂの情報に関連づけられたフラグ情報を関連づける演算手段と、前記第１の演算結果と対応する前記フラグ情報との対を前記サーバに送信する送信手段と、前記サーバが、前記利用者Ｂの情報端末が前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ、および利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な任意の演算よって演算した一つ以上の第２の演算結果を前記利用者Ｂの認識票と関連づけて記憶し、前記利用者Ａの情報端末から送信された前記第１の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって送信する前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票、および各々の第１の演算結果と対をなす前記利用者Ｂの前記フラグ情報を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【００４３】
本発明の一実施形態によると、利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’（ｍは整数）を任意に組み合わせて可逆な任意の演算よって演算した一つ以上の第１の演算結果を生成し、前記第１の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Ｂの情報に関連づけられたフラグ情報を関連づける演算手段と、前記第１の演算結果と対応する前記フラグ情報との対を前記サーバに送信する送信手段と、前記サーバが、前記利用者Ｂの情報端末が前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ、および利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な任意の演算よって演算した一つ以上の第２の演算結果を前記利用者Ｂの認識票と関連づけて記憶し、前記利用者Ａの情報端末から送信された前記第１の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって送信する前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票、および各々の第１の演算結果と対をなす前記利用者Ｂの前記フラグ情報を受信する受信手段と、を有することを特徴とする情報端末が提供される。
【００４４】
前記第1の演算結果のそれぞれが、これに関連づけられる一つ以上の任意の数の前記フラグ情報を有するようにしてもよい。
【００４５】
本発明の一実施形態によると、利用者Ｂの情報端末において生成された、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて非可逆な任意の演算によって演算した一つ以上の第１の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Ｂの情報に関連づけられた前記フラグ情報と対応する前記第１の演算結果の対を受信し、前記利用者Ｂの認識票と前記第１の演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【００４６】
前記サーバは、前記利用者Ａの情報端末において生成された、前記利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’を非可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を受信し、前記第２の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票および各々の前記第１の演算結果と対をなす前記利用者Ｂの前記フラグ情報を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信するようにしてもよい。
【００４７】
本発明の一実施形態によると、利用者Ｂの情報端末において生成された、前記利用者Ａの情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’及び利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂを任意に組み合わせて可逆な任意の演算によって演算した一つ以上の第１の演算結果のそれぞれに、それぞれの演算に用いた前記利用者Ｂの情報に関連づけられた前記フラグ情報と対応する前記第１の演算結果の対を受信し、前記利用者Ｂの認識票と前記第１の演算結果とを関連づけて記憶することを特徴とするサーバが提供される。
【００４８】
前記サーバは、前記利用者Ａの情報端末において生成された、前記利用者Ａの情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ及び利用者Ｂの情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’を可逆な前記任意の演算によって演算した一つ以上の第２の演算結果を受信し、前記第２の演算結果と一致する演算結果を検索し、前記第１の演算結果と前記第２の演算結果との少なくとも一つの一致を検出することによって前記第１の演算結果と関連づけて記憶された前記利用者Ｂの前記認識票および各々の前記第１の演算結果と対をなす前記利用者Ｂの前記フラグ情報を検出し、前記利用者Ａの情報端末に前記利用者Ｂの前記認識票を送信するようにしてもよい。
【００４９】
前記第1の演算結果のそれぞれが、これに関連づけられる一つ以上の任意の数の前記フラグ情報を有するようにしてもよい。
【００５０】
前記任意の演算は、可換な演算であってもよい。
【００５１】
前記任意の演算は、非可換な演算であってもよい。
【００５２】
前記演算は、演算対象の文字列を結合する演算であってもよい。
【００５３】
前記利用者Ａと前記利用者Ｂとは、異なるネットワークサービスを使用していてもよい。
【００５４】
前記利用者Ａと前記利用者Ｂと前記利用者Ｃとは、異なるネットワークサービスを使用していてもよい。
【００５５】
前記情報は、氏名、年齢、職業、居住地域又は嗜好の情報であってもよい。
【発明の効果】
【００５６】
本発明に係るシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェアには、ネットワークに接続されたこのような各種情報端末を使っての通信、もしくはデータのやりとりを実現するサービスにおいて、利用者が、一切の個人情報を、サービス利用者に対して、更にサービス事業者に対してさえ開示することなく、かつ利用者が検索されたくない相手からはその利用者が決して探せないような、検索機能が組み込まれている。従って、本発明によれば、通信したい相手を実名性をもってかつ安全に検索することが実現できる。
【発明を実施するための形態】
【００５７】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。なお、以下の実施形態は、本発明を実施するための例に過ぎず、本発明のシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、及びアプリケーションソフトウェアは、以下の実施形態に限定されるわけではない。
【００５８】
（実施形態１）図２から図７を参照して、本発明の一実施形態に係るシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェアおける検索の原理について説明する。図２から図４においてはすべて、電子メール、ＩＰ電話、ネットワークゲーム、ＳＮＳなどの、ネットワークに接続された情報端末を利用して特定の個人間でのコミュニケーションやデータのやりとりをするネットワークサービスの利用者Ａが、本発明の一実施形態に係るシステム、方法、コンピュータプログラム、サーバ、情報端末、オペレーティングシステム、ミドルウェア、情報通信機器、認証方法、システム及びアプリケーションソフトウェアが提供する検索機能を利用して、Ａの知っている同じネットワークサービスを利用している利用者Ｂを検索する方法を示している。
【００５９】
図２は本発明の実施形態の一例を示している。ここでは、本発明の一実施形態に係るシステム及び方法について以下説明する。本発明のシステム、サーバ、情報端末、情報通信機器においては、本発明のオペレーティングシステム、ミドルウェア、認証方法、アプリケーションソフトウェアが搭載され、本発明の方法が実行される。
【００６０】
本実施形態に係る本発明のシステムは、サーバ１００並びに情報端末１０４及び情報端末１０６を有する。図２においては、サーバ１００とインターネット、イントラネット、ＬＡＮ、あるいはＵＳＢ等による直接接続等によって接続された、本発明の情報端末又は情報通信機器の一実施形態である利用者端末１０４及び１０６が示されている。利用者端末１０４及び１０６においては、本発明の本実施形態に係るオペレーティングシステム、ミドルウェア、認証方法、及びアプリケーションソフトウェアが搭載され、本発明の方法が実行される。
【００６１】
図２において、利用者Ａと利用者Ｂとは、それぞれ、ネットワークに接続された情報端末１０４及び情報端末１０６を利用して特定の個人間でのコミュニケーションやデータのやりとりをする、たとえば電子メール、ＩＰ電話、ネットワークゲーム、ＳＮＳなどの、特定のネットワークサービスの利用者である。
【００６２】
いま、図２で、Ａの情報端末１０４に記憶されている住所録には、Ｂ，Ｃ，ＤというＡが知る三名の友人の個人情報として名前Ｐｂ’，Ｐｃ’，Ｐｄ’２１が登録されている。図２に示す状態は、Ａは、Ｂ、Ｃ及びＤと通信してもよいということを示している。またＢの情報端末１０６に記憶されている住所録には、Ａ，Ｅ、ＦというＢが直接知る三名の友人の名前Ｐａ’，Ｐｅ’，Ｐｆ’２２が登録されている。
【００６３】
ただし、各情報（本実施形態においては、名前）の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえば図２ではＰｂ’はＡがＡの端末１０４で記憶・保持しているＢの名前を意味している。また、Ｐｂは、ＢがＢの端末１０６で記憶・保持しているＢ自身の名前であることを意味している。通常であればＰｂ’＝Ｐｂであるが、たとえばどちらかの端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【００６４】
図３は、本実施形態に係るサーバ１００の概略構成図である。サーバ１００は、本実施形態の本発明のシステムを使用する利用者の名前などの情報が記憶・保持されているデータベース１０２と、データ処理手段１０８とを有している。データ処理手段は、送受信手段１０８ａ、テーブル作成手段１０８ｂ及び検索手段１０８ｃを有している。
【００６５】
図４は、本実施形態に係る利用者Ａの情報端末１０４のブロック図である。情報端末１０４は、本実施形態の本発明のシステムを使用する他の利用者の名前などの情報が記憶・保持されているデータベース２１と、データ処理手段１１０とを有している。データ処理手段は、演算手段１１０ａ及び送受信手段１１０ｂを有している。
【００６６】
図５は、本実施形態に係る利用者Ｂの情報端末１０６のブロック図である。情報端末１０６は、情報端末１０４と同様、本実施形態の本発明のシステムを使用する他の利用者の名前などの情報が記憶・保持されているデータベース２２と、データ処理手段１１２とを有している。データ処理手段は、演算手段１１２ａ及び送受信手段１１２ｂを有している。
【００６７】
以下、利用者Ａが他の利用者Ｂ、Ｃ及びＤの情報を情報端末１０４のデータベース２１に記憶・保持しており、利用者Ｂが他の利用者Ａ、Ｅ及びＦの情報を情報端末１０６のデータベース２２に記憶・保持している場合について、情報端末１０４が情報端末１０６を検索した上、通信を確立するステップについて図２〜図７を参照して説明する。図６は、本実施形態に係る本発明のシステム及び方法によって情報端末１０４が情報端末１０６を検索した上、通信を確立する動作のフローチャートである。なお、サーバ１００、情報端末１０４及び情報端末１０６には、その他の利用者の情報が記憶されていてもよい。
【００６８】
図２で、利用者Ａの情報端末１０４では、演算手段１１０ａが、データベース２１に記憶・保持されているＢの名前を表す文字列Ｐｂ’と、データベース２１に記憶・保持されているＡ自身の名前を表す文字列Ｐａとの結合Ｐｂ’＋Ｐａを生成し、更にこの結合文字列に対してＳＨＡ−１、ＭＤ−５などといった任意のハッシュ関数による演算を施した結果Ｈ（Ｐｂ’＋Ｐａ）をデータベース２１に記憶・保持する（ステップＳ１００）。ここでは、結合列文字列をハッシュ関数Ｈによって処理した演算結果をＨ（Ｐｂ’＋Ｐａ）と表す。同様に、Ａの情報端末１０４において、演算手段１１０ａは、ＣとＡ、ＤとＡの各々の名前を表す文字列を結合した上ハッシュ関数で演算を施した演算結果Ｈ（Ｐｃ’＋Ｐａ）、Ｈ（Ｐｄ’＋Ｐａ）を生成し、データベース２１に記憶・保持する（ステップＳ１００）。次に、Ａの情報端末１０４の送受信手段１１０ｂは、ネットワークサービス事業者のサーバ１００に演算結果Ｈ（Ｐｂ’＋Ｐａ）、Ｈ（Ｐｃ’＋Ｐａ）、およびＨ（Ｐｄ’＋Ｐａ）を送る（ステップＳ１０１）。サーバ１００のデータ処理手段１０８が、Ｈ（Ｐｂ’＋Ｐａ）、Ｈ（Ｐｃ’＋Ｐａ）、およびＨ（Ｐｄ’＋Ｐａ）を送受信手段１０８ａで受信する。サーバ１００のテーブル作成手段１０８ｂは、演算結果Ｈ（Ｐｂ’＋Ｐａ）、Ｈ（Ｐｃ’＋Ｐａ）、およびＨ（Ｐｄ’＋Ｐａ）をＡのネットワークサービスＩＤなどこのネットワークサービス上でＡを一意に特定するための認識票ＩＤａ、またはＡとの接続のために必要な情報と関連づけた上で登録（２３）し、データベース１０２に記憶・保持する（ステップＳ１０２）。ここでの認識票とは、このネットワークサービス上でＡが一意に特定できる情報であれば何でもよく、たとえばこのネットワークサービス事業者があらかじめ利用者Ａを含む全利用者に対して重複がないように割り当てた数値、あるいはこのネットワークサービスの他の利用者と重複がないことがあらかじめわかっている電子メールアドレスなどのような情報でもかまわない。本実施形態およびこれ以降示すすべての実施形態での認識票も同様とする。なお、サーバ１００及びＡの情報端末１０４における演算やデータの送受信は、データ処理手段１０８及び１１０に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【００６９】
ここで、本実施形態１においては、Ａの端末１０４に記憶されている、他者の名前および自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、ＰａはＡの端末１０４で記憶されているＡの名前であり、Ｐｂ’、Ｐｃ’およびＰｄ’はＡの端末１０４で記憶されている各々Ｂ、Ｃ、およびＤの名前というように、すべて名前という同じ属性の個人情報を用いたが、ＰａはＡの名前、Ｐｂ’はＢの住所、Ｐｃ’はＣの電話番号、Ｐｄ’はＤの年齢というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【００７０】
また、本実施形態においては、たとえばＰｂ’とＰａの文字列結合という操作をおこなった上でハッシュ関数による演算結果Ｈ（Ｐｂ’＋Ｐａ）を用いたが、この演算結果はＰｂ’とＰａをもとにして結果が一意に決まる任意の演算結果Ｆ（Ｐｂ’、Ｐａ）であってもよい。この任意の演算Ｆ（Ｐｂ’、Ｐａ）は可逆演算、すなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できるものでも、非可逆演算、すなわちすなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できないものであってもよい。また、この任意の演算Ｆ（Ｐｂ’、Ｐａ）は、可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）＝Ｆ（Ｐａ、Ｐｂ’）であっても、非可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）≠Ｆ（Ｐａ、Ｐｂ’）であってもよい。本実施形態で用いた文字列結合のハッシュ演算Ｈ（Ｐｂ’＋Ｐａ）は、任意の演算Ｆ（Ｐｂ’、Ｐａ）のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。本実施形態、およびこれ以降示すすべての実施形態で用いられる文字列結合のハッシュ関数の演算結果も、すべてここで述べた任意の関数の演算結果であってもよい。
【００７１】
同様に、図２で、利用者Ｂの情報端末１０６では、演算手段１１２ａが、データベース２２に記憶・保持されているＡの名前を表す文字列Ｐａ’と、データベース２２に記憶・保持されているＢ自身の名前を表す文字列Ｐｂとの結合Ｐａ’＋Ｐｂを生成し、更にこの結合文字列に対してＳＨＡ−１、ＭＤ５などといった任意のハッシュ関数による演算を施した結果Ｈ（Ｐａ’＋Ｐｂ）を生成し、データベース２２に記憶・保持する（ステップＳ１０３）。このＢの情報端末１０６で行われる結合文字列のハッシュ演算Ｈは、如何なるハッシュ演算であってもよいが、Ａの情報端末１０４で行われるハッシュ演算Ｈと同じ演算Ｈであることが要求される。同様に、Ｂの情報端末１０６において、演算手段１１２ａは、ＥとＢ，ＦとＢ、の各々の名前の文字列結合のハッシュ演算結果Ｈ（Ｐｅ’＋Ｐｂ）、およびＨ（Ｐｆ’＋Ｐｂ）を生成し、これらの三つの演算結果Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｅ’＋Ｐｂ）、およびＨ（Ｐｆ’＋Ｐｂ）をデータベース２２に記憶・保持する（ステップＳ１０３）。次に、Ｂの情報端末１０６の送受信手段１１２ｂは、ネットワークサービス事業者のサーバ１００に演算結果Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｅ’＋Ｐｂ）、およびＨ（Ｐｆ’＋Ｐｂ）を送る（Ｓ１０４）。サーバ１００のデータ処理手段１０８が、演算結果Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｅ’＋Ｐｂ）、およびＨ（Ｐｆ’＋Ｐｂ）を送受信手段１０８ｂで受信する。サーバ１００のテーブル作成手段は、演算結果Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｅ’＋Ｐｂ）、およびＨ（Ｐｆ’＋Ｐｂ）を、ネットワークサービスＩＤなどこのネットワークサービス上でＢを一意に特定するための認識票ＩＤｂ、またはＢとの接続のために必要な情報と関連づけた上で登録（２４）し、データベース１０２に記憶・保持する（ステップＳ１０５）。なお、Ｂの情報端末１０６におけるハッシュ値の生成は、データ処理手段に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【００７２】
ここで、本実施形態１においては、Ｂの端末１０６に記憶されている、他者の名前および自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、ＰｂはＢの端末１０６で記憶されているＢの名前であり、Ｐａ’、Ｐｅ’およびＰｆ’はＢの端末１０６で記憶されている各々Ａ、Ｅ、およびＦの名前というように、すべて名前という同じ属性の個人情報を用いたが、ＰｂはＢの名前、Ｐａ’はＡの住所、Ｐｅ’はＥの電話番号、Ｐｆ’はＦの職業というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【００７３】
次に、利用者Ａが利用者Ｂとの通信を望む場合、利用者Ａの情報端末１０４において、演算手段１１０ａは、Ｂの名前とＡの名前の文字列結合をハッシュ演算した結果Ｈ（Ｐａ＋Ｐｂ’）を生成する（ステップＳ１０６）。このＡの情報端末１０４で行われる任意のハッシュ演算Ｈは、如何なる演算であってもよいが、利用者Ａの情報端末１０４がサーバ１００に登録するためのハッシュ演算Ｈと同じハッシュ演算Ｈであることが要求される。そして、利用者Ａの情報端末１０４の送受信手段１１０ｂは、演算結果Ｈ（Ｐａ＋Ｐｂ’）をネットワークサービス事業者のサーバ１００に送ることによって、サーバ１００に検索を依頼（２５）する（ステップＳ１０７）。情報端末１０４から送信された演算結果Ｈ（Ｐａ＋Ｐｂ’）は、サーバ１００におけるデータ処理手段１０８の送受信手段１０８ａによって受信される。そして、データ処理手段１０８の検索手段１０８ｃが情報端末１０４から送信された演算結果Ｈ（Ｐａ＋Ｐｂ’）と一致するデータベース１００に登録されている演算結果を検索する（ステップＳ１０８）。ここで、図２に示す例では、ネットワークサービス事業者のデータベース１０２にＢの認識票またはＢとの接続に必要な情報と関連づけられたＨ（Ｐａ’＋Ｐｂ）がＢによって登録されている。この検索依頼に対して、ネットワークサービス事業者のサーバ１００における検索手段１０８ｃは、データベース１００においては、情報端末１０４から送信された演算結果Ｈ（Ｐａ＋Ｐｂ’）と、データベース１００に登録されているＢの認識票または接続に必要な情報と関連づけられて登録されている演算結果との一致、（即ち、Ｈ（Ｐａ＋Ｐｂ’）＝Ｈ（Ｐａ’＋Ｐｂ））を検出（２６）する。これをもとに、サーバ１００は、利用者Ａの情報端末１０４に利用者Ｂのこのネットワークサービス上での認識票ＩＤｂ、または接続情報を送信する（ステップＳ１０９）。利用者Ａの情報端末１０４は、サーバから送信された利用者Ｂのこのネットワークサービス上での認識票ＩＤｂ、またはＢとの接続のために必要な情報に基づき、接続サーバ２００を介して利用者Ｂの情報案末１０６との通信（２７）を確立する。また、この利用者Ａによる検索依頼に対して、ネットワークサービス事業者のサーバ１００における検索手段１０８ｃが、データベース１００において、情報端末１０４から送信された演算結果Ｈ（Ｐａ＋Ｐｂ’）と、データベース１００に登録されているＢのこのネットワークサービス上での認識票、またはＢとの接続のために必要な情報と関連づけて登録されている演算結果との一致を検出しない場合は、サーバ１００は、利用者Ａの情報端末１０４へ利用者Ｂのこのネットワークサービス上での認識票、またはＢとの接続のために必要な情報を送信せず（ステップＳ１１０）、利用者Ａの情報端末１０４と利用者Ｂの情報端末１０６との通信（２７）を確立しない。
【００７４】
本実施形態において、図２で、このネットワークサービスによる通信やデータ転送が、Ｐ２Ｐネットワーク上で構築されている場合には、Ａの情報端末１０４からのサーバ１００に対するＨ（Ｐａ＋Ｐｂ’）の問い合わせで、サーバ１００においてＢによってサーバ１００に登録されたＨ（Ｐａ’＋Ｐｂ）との一致（Ｈ（Ｐａ＋Ｐｂ’）＝Ｈ（Ｐａ’＋Ｐｂ））が検出された際、サービス事業者のサーバ１００からＡの情報端末１０４に対してＢのこのネットワークサービス上での認識票、またはＢとの接続のために必要な情報を通知することで、Ａの情報端末１０４とＢの情報端末１０６とのＰ２Ｐ接続２８を確立するようにしてもよい。
【００７５】
なお、本実施形態では、Ａの端末１０４がサーバ１００に問い合わせる情報Ｈ（Ｐａ＋Ｐｂ’）として、Ａの端末に記憶されているＡ自身の名前とＢの名前というように、同じ属性の個人情報の組み合わせのハッシュという演算結果を用いたが、たとえばＰａとしてＡの電話番号、Ｐｂ’としてＢの住所、というように属性の異なる個人情報を組み合わせて、そのハッシュ値をサーバ１００に問い合わせても良い。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。この場合でも、Ａの端末１０４からサーバ１００への問い合わせに用いる個人情報の組み合わせのハッシュ値と、Ｂの情報端末１０６がサーバ１００に登録(ステップＳ１０４)した個人情報の組み合わせのハッシュ値が等しい（Ｈ（Ｐａ＋Ｐｂ’）＝Ｈ（Ｐａ’＋Ｐｂ））なら、サーバ１００は、Ａの情報端末１０４に対してＢの認識票を送る。この場合に、Ｈ（Ｐａ＋Ｐｂ’）≠Ｈ（Ｐａ’＋Ｐｂ）であれば、サーバ１００はＡの情報端末１０４に対してＢの認識票を送らない。
【００７６】
本実施形態では、一例として名前の文字列結合のハッシュ関数という非可換な演算を用いたが、既に述べたように、これは任意の演算Ｆでよい。一般に、ここで用いる任意の演算が非可換である場合には、利用者Ａの情報端末１０４からの利用者Ｂの検索において、利用者Ａの端末１０４に保持されているＡ自身の情報およびＢの個人情報、および利用者Ｂの端末１０６に保持されているＢ自身の情報およびＡの個人情報、の両方が正しい、すなわちＰａ’＝ＰａかつＰｂ’＝Ｐｂである場合には、サーバ１００の検索手段１０８ｃは、一意に利用者Ｂの端末１０６を特定することができる。
【００７７】
もし、ここで用いる任意の演算Ｆが可換である場合には、利用者Ａの情報端末１０４からの、利用者Ｂの検索において、利用者Ａの端末１０４に保持されているＡ自身の情報およびＢの個人情報、および利用者Ｂの端末１０６に保持されているＢ自身の情報およびＡの個人情報の両方が正しい、すなわちＰａ’＝ＰａかつＰｂ’＝Ｐｂである場合、利用者Ｂの情報端末１０４がネットワークサービス事業者サーバ１００に送信し、利用者データベース１０２で保持されているＦ（Ｐａ’，Ｐｂ）と利用者Ａがネットワークサービス事業者サーバ１００に対して問い合わせるＦ（Ｐｂ’，Ｐａ）が等しくなる。このため、利用者Ａが利用者Ｂとの通信を望む際におこなう問い合わせ２５に対して、利用者Ｂを一意に特定するためには、サーバ１００の検索手段１０８は、利用者Ａが登録したＦ（Ｐａ’，Ｐｂ）と、利用者Ｂが登録したＦ（Ｐｂ’，Ｐａ）の二つの一致を検出する結果、これだけではＡが通信を望む相手Ｂを一意に特定できない。したがって、ここで用いる任意の演算Ｆが可換である場合には、利用者Ａが利用者Ｂの問い合わせ２５を行う際に、利用者Ａのこのネットワークサービスの認識票や接続情報もあわせてサーバ１００に送信することで、サーバ１００の検索手段においては一致を検出する二つの演算結果のうちで、どちらが検索対象である利用者Ｂのものかを判断するなどして、利用者Ａが検索している利用者Ｂを一意に特定することができる。
【００７８】
また、本実施形態において用いた演算結果Ｈ（Ｐａ’＋Ｐｂ）などは、ネットワークサービス事業者のサーバ１００に記憶・保持しておいて、再度のＡからＢへの接続に利用しても良いが、一度サーバ１００からＡの端末１０４に送られた、このネットワークサービス上でのＢの認識票ＩＤｂ、またはＢとの接続のために必要な情報を、Ａの端末１０４のデータベース２１に保存しておけば、二回目以降にＡがＢとの通信を望む場合にＡは、Ｂの認識票や接続のために必要な情報を足がかりとしてＢとの接続を確立できるので、一度検索されたＨ（Ｐａ’＋Ｐｂ）などをネットワークサービス事業者のサーバのデータベース１０２から削除するようにしてもよい。
【００７９】
もし、たとえばＢの情報端末１０６に保持されているＡの名前の情報が間違っている場合、すなわち、Ｐａ’≠Ｐａである場合には、Ｈ（Ｐａ＋Ｐｂ’）≠Ｈ（Ｐａ’＋Ｐｂ）となり、上述したような手順でＡがＢを検索しても演算結果Ｆの一致が検出されない。このような場合には、名前以外の個人情報、たとえば住所、所属、電話番号、電子メールアドレスなどの他の個人情報について、同様の検索手段を用いることで、ＡがＢを検索し一意に特定することができる。つまり、名前以外の個人情報、たとえば居住地域、住所、所属、電話番号、電子メールアドレス、出身地、嗜好（例えば、好きな映画、好きな音楽、好きな歌手、好きな自動車・自動車メーカ、好きな外国、好きなスポーツ、好きな作家、利用しているコンピュータのメーカ、好きな料理など）などの他の個人情報の文字列結合について、演算結果Ｈを生成し、同様の検索手段を実行することができる。
【００８０】
なお、上述したとおり、Ａの情報端末１０４とＢの情報端末１０６とが通信の確立を行うとき、サービス事業者のサーバ１００からＡの情報端末１０４に対してＢのこのネットワークサービス上での認識票ＩＤｂ、またはＢとの接続のために必要な情報通知することで、Ａの情報端末１０４とＢの情報端末１０６とのＰ２Ｐ接続２８を確立するようにしてもよい。また、図７に示すように、別のネットワークサービス事業者の接続サーバ２００を介してＡの情報端末１０４とＢの情報端末１０６との接続を確立してもよい。
【００８１】
上述した本実施形態に係る本発明によるシステム及び方法によれば、図１に示した従来の方法に比べて以下三つの利点がある。
【００８２】
第一に、本実施形態で用いた文字列結合のハッシュ関数演算というような、非可逆演算を用いた場合には、検索サービスにおける機密性保持が容易な点である。従来の検索方法では、個人情報をネットワークサービス事業者のサーバに登録しなければ利用者が検索できなかったのに対して、本発明によるシステム及び方法によれば、非可逆演算を用いた場合には、利用者二人の個人情報を非可逆演算によって処理した演算結果をネットワークサービス事業者のサーバに登録するので、被検索者は一切の個人情報を検索用に公開しないにもかかわらず検索者からの検索が可能となり、またネットワークサービス事業者は利用者の一切の個人情報を保持することなく検索手段を提供できる。たとえば、図２の例では、Ｂが他の利用者から検索してもらうための情報としてネットワークサービス事業者に開示するのはＢ自身の個人情報ではなく、たとえばＡとＢの名前の結合文字列のハッシュ関数による演算結果Ｈ（Ｐａ’＋Ｐｂ）であり、このハッシュ値からはＡまたはＢのいかなる個人情報も導けない。よって、本発明のシステム及方法によると、個人情報の保護を十分に図ることができる。もし、本発明によるシステム及び方法で、可逆演算を利用した場合には、ネットワークサービス事業者のサーバに登録する情報から、利用者の個人情報が復元できてしまうという点で、利用者の個人情報に関する機密保持レベルは、非可逆演算を利用する場合よりも低くなる。しかし可逆演算を利用した場合でも、従来の方法に比べると、非可逆演算を利用した場合と同様、以下残る二つの点で優れている。
【００８３】
第二に、検索対象となる者にとって望まない検索者からの検索を排除できる点である。図１に示したような従来の方法では検索対象となる利用者は、すべての利用者からの検索が可能であるため、無関係な第三者から検索され、無関係な第三者に、被検索者が検索用に開示した個人情報を入手される危険があるという問題があった。それに対して、本発明によるシステム及び方法によれば、検索対象となる利用者は、たとえば本実施形態では、自分の名前と、自分が知っておりかつ検索されても良いと思っている他者の名前との組み合わせのハッシュを登録しておくので、自分の名前と組み合わせて登録した利用者以外の他者から検索されることがない。つまり、検索されることを望まない他者から検索されることがない。たとえば図２の例では、Ａを検索できるのはＢ、Ｃ、およびＤの三名のみであり、ハッシュが衝突する場合を除いて、これ以外の利用者はＡを検索する手段を持たない。
【００８４】
第三には、一意性の低い情報を使っても精度の高い検索が可能となる点である。従来の方法によれば、たとえば名前のような、同姓同名という重複の可能性の多い、言い換えれば一意性の低い個人情報を使った検索を行うと、同姓同名の利用者との一致が多数検出されてしまい、検索対象を特定できないという問題があった。そのために、あまり重複することのない個人情報、たとえば電子メールアドレス、電話番号、社会保険番号などの個人情報を検索に用いることが多いが、重複することのないことがあらかじめわかっている情報は、名前などよりも機密性が高く、これらをネットワークサービス事業者のサーバに登録し、かつ不特定の利用者に検索を許すことには情報漏洩のリスクという問題があった。本発明によるシステム及び方法によれば、たとえ名前といった一意性が低く、複数の利用者で重複が起こりえる個人情報を検索に使ったとしても、ネットワークサービス事業者のサーバに登録し検索に利用するのは、二人の利用者の個人情報の組み合わせのハッシュ値であるため、検索時に重複して一致が検出される可能性は極めて低くなる。たとえば、利用者Ｂの名前では同姓同名が多数いたとしても、ＡとＢの組み合わせが、利用者の組み合わせの中に複数ある確率はＢの同姓同名がいる確率よりはるかに小さい。このため、名前のような一意性が低く、したがって機密性の低く誰もが知っている単純な情報のみでも、効率的な検索が可能となる。
【００８５】
また、そもそも本発明によるシステム及び方法では、上に述べたように非可逆演算を利用している限り、たとえ一意性の高い、すなわち機密性の高い情報を検索に使っても、組み合わせて非可逆演算した演算結果が検索対象となるため、検索対象となる演算結果から個人情報を導くことができないため安全である。たとえば電子メールアドレス、住所、電話番号のような、個人を特定できる情報を使うことによって、従来の方法によっても、本発明によっても検索時の重複は排除できるが、本発明による方法では、従来の方法に比べて圧倒的に高い機密保持性が確保できる。
【００８６】
それでも同姓同名など、個人情報の重複によってサーバ１００の検索手段１０８ｃにおいて、演算結果の一致が複数検出される場合には、名前の他に、住んでいる市、性別、所属など組み合わせの演算結果を使って正解率の高い者を、検索対象と推定する方法もある。
たとえば、Ｂがサーバ１００のデータベース１０２に、名前Ｐ、性別Ｑ、所属Ｒ、・・・などについて、ＡとＢ自身の個人情報の文字列結合のハッシュ関数による演算結果Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｑａ’＋Ｑｂ）、Ｈ（Ｒａ’＋Ｒｂ）を登録しておき、ＡがＢを検索する際には、Ｈ（Ｐａ＋Ｐｂ’）、Ｈ（Ｑａ＋Ｑｂ’）、Ｈ（Ｒａ＋Ｒｂ’）についてサーバ１００に検索依頼する。たとえば、サーバ１００の検索手段１０８において、Ｐ、Ｑ、Ｒすべての属性について演算結果の一致が成立、すなわちＨ（Ｐａ’＋Ｐｂ）＝Ｈ（Ｐａ＋Ｐｂ’）かつＨ（Ｑａ’＋Ｑｂ）＝Ｈ（Ｑａ＋Ｑｂ’）かつＨ（Ｒａ’＋Ｒｂ）＝Ｈ（Ｒａ＋Ｒｂ’）が成立しない場合でも、Ａはその情報端末１０４のデータベース２１において、属性Ｐ，Ｑ，Ｒ各々にあらかじめ重み係数（α、β、γ等）をつけておき、これらを使って演算結果の一致数の重み付き合計を計算することで、Ａが通信したいＢだと推定される相手を、このネットワークサービス上で探すこともできる。
【００８７】
また、Ａ、Ｂと同じネットワークサービスを使っており、かつＡおよびＢの名前を知っている悪意の第三者が、その第三者の端末で、Ａ、とＢとの名前の文字列結合のハッシュ関数の演算結果Ｈ（Ｐａ’＋Ｐｂ）を作成し、これをサーバ１００に問い合わせ、その結果を得ることでＡとＢの間に関係が存在するという情報を入手する、あるいはＡになりすましてＢを検索するかもしれない。このような場合には、ＢはあらかじめパスコードμｂをＡに対して口頭や電子メールなどの手段で知らせておき、ＢがＨ（Ｐａ’＋Ｐｂ＋μｂ）をサーバ１００のデータベース１０２に登録しておく。ＡがＢを検索する際には、Ｂからあらかじめ受け取っておいたμｂを使い、Ｈ（Ｐａ＋Ｐｂ’＋μｂ）をサーバ１００に問い合わせることで、μｂを知らない悪意の第三者にＡとＢとの関係を知られたり、ＡになりすましてＢを検索される危険を小さくすることができる。
【００８８】
また、被検索者であるＢが、前記ステップＳ１０３において作成し、前記ステップＳ１０４においてサーバ１００に送信し、ステップＳ１０５においてそのデータベース１０２にＢの認識票ＩＤｂと関連づけて登録するハッシュ演算結果は、検索者であるＡの情報端末のデータベース２１、およびＢの情報端末のデータベース２２の両方に記憶されている、たとえばこのネットワークサービス全体で共通のワイルドカード文字列「＊」と、Ｂの情報端末１０６のデータベース２２に記憶されているＢ自身の情報Ｐｂを表す文字列と、のハッシュ演算による演算結果Ｈ（＊＋Ｐｂ）でもよい。この場合に、検索者であるＡが、前記ステップＳ１０６で、Ａの情報端末１０４のデータベース２１に記憶されているＢの情報Ｐｂ’およびこのワイルドカード文字列「＊」とのハッシュ演算結果Ｈ（＊＋Ｐｂ’）を生成し、前記ステップＳ１０７でこれをサーバ１００に送ることで、利用者Ｂの検索を依頼すると、前記ステップＳ１０８において前記Ｈ（＊＋Ｐｂ’）による検索依頼に対して、前記Ｈ（＊＋Ｐｂ）との一致を検出し、前記ステップＳ１０９において、前記Ｈ（＊＋Ｐｂ）に関連づけてデータベース１０２に記憶された被検索者であるＢの認識票ＩＤｂを、検索者であるＡの情報端末１０４に送ることができる。こうすると、被検索者であるＢは、本実施形態１で示した検索者Ａからの検索に限定せず、このネットワークサービスの利用者全体のなかから、利用者Ｂの情報Ｐｂを、その情報端末のデータベースに記憶している任意の利用者の端末からの検索に対して、前記ステップＳ１０９において、利用者Ｂの認識票ＩＤｂを送信することができる。
【００８９】
（実施形態２）上述の実施形態１においては、被検索者が、検索することを許可した検索者の一つの個人情報と被検索者自身の一つの個人情報を、演算した結果をネットワークサービス事業者のサーバ１００に登録しておき、検索者がこれを検索した。本実施形態２においては、被検索者が検索することを許可した検索者の一つ以上の情報と、被検索者自身の一つ以上の情報を順列に組み合わせたなかで任意の組み合わせの一つ以上の演算結果を、ネットワークサービス事業者のサーバ１００に登録しておき、検索者は被検索者の一つ以上の個人情報と検索者自身の一つ以上の個人情報の任意の組み合わせの一つ以上の演算結果を、サーバ１００に問い合わせるという、より一般的な方法について説明する。なお、実施形態１に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。本実施形態に係る本発明のシステム及び方法によって情報端末１０４と情報端末１０６とが通信を確立する動作のフローチャートは、実施形態１における図６と同様であるので、ここでは図６を参照する。
【００９０】
例えば、利用者Ａの個人情報をＰ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）などとする。利用者Ｂの個人情報をＰ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ（ｍは整数）などとする。ここで、たとえばＰ１ａとＰ１ｂというように、同じ数字の記号同士は、同じ属性の個人情報であっても、異なる属性の個人情報であってもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。利用者Ａの情報端末１０４は、利用者Ａの個人情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ及び利用者Ｂの個人情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’をそのデータベース２１に記憶・保存している。利用者Ｂの情報端末１０５は、利用者Ｂの個人情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ及び利用者Ａの個人情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’をそのデータベース２２に記憶・保存している。利用者Ａの個人情報の数、利用者Ｂの個人情報の種類、数は、それぞれ、任意である。
また、ｍ＝ｎであってもよいし、ｍ≠ｎであってもよい。また、利用者Ａの情報端末１０４に記憶・保存されているＡの個人情報の数と、利用者Ｂの情報端末１０６に記憶・保持されているＡの個人情報の数は、同じであっても異なっていても構わない。同様に、利用者Ｂの情報端末１０６に記憶・保存されているＢの個人情報の数と、利用者Ａの情報端末１０４に記憶・保持されているＢの個人情報の数は、同じであっても異なっていても構わない。
【００９１】
ただし、実施形態１と同様に、各情報の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえばＰ１ａおよびＰ１ｂを名前、Ｐ２ａおよびＰ２ｂを住所、Ｐ３ａおよびＰ３ｂを勤務先などとすると、Ｐ１ｂ’はＡがＡの端末１０４で記憶・保持しているＢの名前であることを意味している。またたとえば、Ｐ２ｂは、ＢがＢの端末１０６で記憶・保持しているＢ自身の住所であることを意味している。たとえば、通常であればＰ１ｂ’＝Ｐ１ｂ、かつＰ２ｂ’＝Ｐ２ｂであるが、たとえばどちらか端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【００９２】
ここで、利用者Ａの情報端末１０４と利用者Ｂの情報端末１０６とが、複数の個人情報を用いて通信を確立するためのステップについて説明する。なお、このステップは、上記の実施形態１に示した図２及び図６に示すステップと同様であるので、ここでは適宜説明を省略している。また、上記実施形態１では、一例としてもっとも理解しやすい文字列結合のハッシュ演算を用いたが、本実施形態２で示す一例では、個人情報を変数とする任意の演算Ｆを用いて説明する。したがって、本実施形態２においては、図２に現れるたとえばＨ（Ｐｂ’＋Ｐａ）などの文字列結合のハッシュ演算の表記を、任意の関数Ｆを用いたＦ（Ｐｂ’，Ｐａ）などに置きかえて説明する。
【００９３】
上記実施形態１と同様に、ここで用いる任意の演算Ｆは、可逆な演算でも非可逆な演算でもかまわない。既に述べたように、ここで可逆な演算を用いた場合には、非可逆な演算を用いた場合にくらべて、実施形態１で述べた本発明の効果のうちで、守秘性は低くなるが、本発明によるこれ以外の効果は変わらない。さらに、ここで用いる任意の演算Ｆは、変数である個人情報について可換であっても非可換であってもよい。
【００９４】
利用者Ａの情報端末１０４においては、演算手段１１０ａが、データベース２１に記憶・保持されているＢの個人情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’と、データベース２１に記憶・保持されているＡ自身の個人情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａとを任意の演算Ｆによって演算する（ステップＳ１００）。利用者Ａの情報端末１０４において演算するＢの個人情報とＡ自身の個人情報とは、任意に順列に組み合わせることができる。つまり、Ｂの個人情報とＡの個人情報との組み合わせは、（Ｐ１ｂ’，Ｐ１ａ）、（Ｐ２ｂ’，Ｐ１ａ）、（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）等があるが、Ａの端末１０４の演算手段１１０ａでは、これらのなかから任意の組み合わせの一つ以上の演算をおこなう。
【００９５】
通常、利用者Ａの端末にあるデータベース２１に記憶・保持されているＢの個人情報は、Ａの端末にあるＡ自身の情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａに比べて少ない。たとえば、ＡはＡ自身の名前、住所、電話番号、出身地など数多くの情報を知っており、これらの多くが利用者Ａの端末にあるデータベース２１に記憶・保持されていることが多いが、他人であるＢの情報は名前と電話番号のみというように、他人についての個人情報は限られているのが普通である。このような状態においても、利用者Ａの端末で組み合わせるこのＢの個人情報とＡの個人情報の組み合わせは、Ａの端末のデータベース２１に記憶されているもののなかから作ることのできる任意の一つ以上の組み合わせでよい。また、Ａの端末のデータベース２１に保存されているＡの個人情報とＢの個人情報のすべてを組み合わせる必要はなく、利用者Ａがその組み合わせを任意に選択してもよい。
【００９６】
さらに、Ａの端末のデータベース２１にＡ自身の情報の一部しか記憶・保持されていない場合も、Ａの端末のデータベース２１に記憶・保持されている情報のなかから、Ａの個人情報とＢの個人情報を任意に組み合わせればよい。たとえば、Ａの端末のデータベースには、Ａの個人情報のなかからＡの名前と電話番号のみ、またＢの個人情報のなかでＢの住所のみが記憶・保持されているような状態では、Ａの名前とＢの住所の組み合わせ、およびＡの名前とＢの住所の組み合わせ、というように、Ａの端末１０４で利用可能なＢおよびＡ自身の情報のなかから任意に組み合わせれば良い。
【００９７】
次に、Ａの情報端末１０４において、演算手段１１０ａは、ここで選択した任意の組み合わせに基づき任意の演算Ｆによって演算した結果Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ２ｂ’，Ｐ１ａ）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）等を生成する（ステップＳ１００）。本実施形態２においては、次に、Ａの情報端末１０４の送受信手段１１０ｂは、ネットワークサービス事業者のサーバ１００にここで選択した任意の組み合わせに基づく演算結果Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ２ｂ’，Ｐ１ａ）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）等を送る（ステップＳ１０１）。サーバ１００では、演算結果利用者Ａの端末１０４で選択された任意の組み合わせに基づく演算結果Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ２ｂ’，Ｐ１ａ）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）等を送受信手段１０８ａで受信する。テーブル作成手段１０８ｂは、ここで受信した演算結果Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ２ｂ’，Ｐ１ａ）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）等をＡのこのネットワークサービス上の認識票ＩＤａ、または接続に必要な情報と関連づけた上で登録（２３）し、データベース１０２に記憶・保持する（ステップＳ１０２）。なお、サーバ１００及びＡの情報端末１０４における任意の関数による演算やデータの送受信は、データ処理手段１０８及び１１０に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【００９８】
同様に、図２で、利用者Ｂの情報端末１０６では、ハッシュ値生成手段１１２ａが、データベース２２に記憶・保持されているＡの個人情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’と、データベース２２に記憶・保持されているＢ自身の個人情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂとの任意の一つ以上の組み合わせを生成する（ステップＳ１０３）。ここで、たとえばＰ１ａとＰ１ｂというように、同じ数字を記号同士は、同じ属性の個人情報であっても、異なる属性の個人情報であってもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。利用者Ｂの情報端末１０６におけるＡの個人情報とＢの個人情報とは、任意に順列に組み合わせることができる。つまり、Ａの個人情報とＢの個人情報との組み合わせは、（Ｐ１ａ’，Ｐ１ｂ）、（Ｐ２ａ’，Ｐ１ｂ）、（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｍｂ）等があるが、Ｂの端末１０６の演算手段１１２ａでは、これらのなかから任意の組み合わせの演算をおこなう。ここで、Ａの情報端末のデータベース２１に記憶・保持されているＡ自身の個人情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａと、Ｂの情報端末のデータベース２２に記憶・保持されているＡの個人情報Ｐ１ａ’、Ｐ２ａ’、・・・、Ｐｎａ’は同じ、または同じ数である必要はない。同様にＢの情報端末のデータベース２２に記憶・保持されているＢ自身の個人情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂと、Ａの情報端末のデータベース２１に記憶・保持されているＢの個人情報Ｐ１ｂ’、Ｐ２ｂ’、・・・、Ｐｍｂ’は同じ、または同じ数である必要はない
【００９９】
通常、利用者Ｂの端末にあるデータベース２２に記憶・保持されているＡの個人情報は、Ｂの端末にあるＢ自身の情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｎｂに比べて少ない。たとえば、ＢはＢ自身の名前、住所、電話番号、出身地など数多くの情報を知っており、これらの多くが利用者Ｂの端末にあるデータベース２２に記憶・保持されることが多いが、他人であるＡの情報は、たとえば名前と電話番号のみというように、限られているのが普通である。このような状態において、利用者Ｂの端末で組み合わせるこのＡの個人情報とＢの個人情報の組み合わせは、Ｂの端末のデータベース２２に記憶されているもののなかから作ることのできる任意の組み合わせでよい。また、Ｂの端末のデータベース２２に保存されているＢの個人情報とＡの個人情報のすべてを組み合わせる必要はなく、利用者Ｂがその組み合わせを任意に選択してもよい。
【０１００】
さらに、Ｂの端末のデータベース２２にＢ自身の情報の一部しか記憶・保持されていない場合も、Ｂの個人情報の一部とＡの個人情報の一部を任意に組み合わせればよい。たとえば、Ｂの端末のデータベースに、Ｂの個人情報のなかでＢの電話番号のみ、またＡの個人情報のなかでＡの住所だけが記憶・保持されているような状態では、唯一の組み合わせとなるＡの電話番号とＢの住所の組み合わせでよい。
【０１０１】
Ｂの情報端末１０６において、演算手段１１２ａは、ここで選択した組み合わせによって結合した文字列（Ｐ１ａ’，Ｐ１ｂ）、（Ｐ２ａ’，Ｐ１ｂ）、（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等に基づき任意の演算Ｆによって演算した演算結果Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等を生成する（ステップＳ１０３）。次に、Ｂの情報端末１０６の送受信手段１１２ｂは、ネットワークサービス事業者のサーバ１００にここで選択した任意の組み合わせに基づく演算結果Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等を送る（Ｓ１０４）。サーバ１００のデータ処理手段１０８が、Ｂの端末１０６より送られた演算結果Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等を送受信手段１０８ｂで受信する。テーブル作成手段１０８ｂは、演算結果Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等をＢのこのネットワークサービス上での認識票またはとＢとの接続に必要な情報と関連づけた上で登録（２４）し、データベース１０２に記憶・保持する（ステップＳ１０５）。なお、Ｂの情報端末１０６における任意の関数による演算や送受信は、データ処理手段に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【０１０２】
次に、図２において、ＡがＢとの通信を望む場合、利用者Ａの情報端末１０４において、演算手段１０８ａは、Ｂの個人情報とＡ自身の個人情報との任意の組み合わせを、任意の演算Ｆによって演算した結果Ｆ（Ｐ１ａ，Ｐ１ｂ’）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ’）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）等を一つ以上生成する（ステップＳ１０６）。
このＡの情報端末１０４で行われる任意の演算Ｆは、如何なる演算であってもよいが、利用者Ｂの情報端末１０６が、そのデータベース２２に保持している利用者Ａの個人情報と利用者Ｂ自身の個人情報の演算結果をサーバ１００に登録する（ステップＳ１０２及びステップＳ１０５）時に使った任意の演算Ｆと同じ演算Ｆであることが要求される。ただし、ここで検索依頼のためのＢの個人情報とＡ自身の個人情報の組み合わせは、Ｂが上であらかじめサーバ１００に登録したＡの個人情報とＢ自身の個人情報の組み合わせと同じである必要はない。そして、Ａの情報端末１０４の送受信手段１１０ｂは、ここで任意に組み合わせたＢの個人情報とＡ自身の個人情報の文字列結合の演算結果Ｆ（Ｐ１ａ，Ｐ１ｂ’）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）等をネットワークサービス事業者のサーバ１００に送ることによって、サーバ１００に検索を依頼（２５）する（ステップＳ１０７）。Ａの情報端末１０４から送信されたこれらの演算結果Ｆ（Ｐ１ａ，Ｐ１ｂ’）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）等は、サーバ１００におけるデータ処理手段１０８の送受信手段１０８ｂによって受信される。そして、データ処理手段１０８の検索手段１０８ｃがＡの情報端末１０４から送信されたこれらの演算結果Ｆ（Ｐ１ａ，Ｐ１ｂ’）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）等と、データベース１００に登録されているＢの認識票または接続情報と関連づけられた演算結果Ｆのうちで一致する演算結果を検索する（ステップＳ１０８）。ここで、本実施形態２においては、ネットワークサービス事業者のデータベース１０２にＢの認識票ＩＤｂ、または接続のために必要な情報と関連づけられた演算結果Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等がすでにＢによって登録されている。このＡからの検索依頼に対して、ネットワークサービス事業者のサーバ１００における検索手段１０８ｃは、データベース１００においては、Ａの情報端末１０４から送信されたこれらの演算結果Ｆ（Ｐ１ａ，Ｐ１ｂ’）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）等と、データベース１００に登録されているＢの認識票または接続に必要な情報と関連づけられた演算結果Ｆとの一致、（即ち、Ｆ（Ｐ１ａ，Ｐ１ｂ’）＝Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）＝Ｆ（Ｐ２ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ）＝Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）＝Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）等のうち一つ以上）を検出（２６）する。この検出結果をもとに、サーバ１００は、利用者Ａの情報端末１０４に対して、利用者ＢのネットワークサービスＩＤなどこのネットワークサービス上でＢの認識票や接続に必要な情報を送信する。そして、利用者Ａの情報端末１０４と利用者Ｂの情報端末１０６との通信（２７）を確立できるようになる（ステップＳ１０９）。
また、この検索依頼に対して、ネットワークサービス事業者のサーバ１００における検索手段１０８ｃが、データベース１００において、Ａの情報端末１０４からＢの検索のために送信された演算結果Ｆ（Ｐ１ａ，Ｐ１ｂ’）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ａ，Ｐ２ａ，Ｐ１ｂ’，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ，Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’）等と、データベース１００に登録されているＢのネットワークＩＤなどの接続情報と関連づけられた演算結果Ｆとの一致を一つも検出しない場合は、サーバ１００は、利用者Ａの情報端末１０４に利用者ＢのネットワークサービスＩＤなどこのネットワークサービス上でＢの認識票や接続に必要な情報を送信しない（ステップＳ１１０）。
【０１０３】
ここで、Ａの情報端末１０４からＢの検索のためにサーバ１００に送られる、Ｂの個人情報とＡ自身の個人情報の任意の組み合わせの演算結果Ｆ（Ｐ１ｂ’，Ｐ１ａ）、Ｆ（Ｐ２ａ，Ｐ１ｂ’）、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，Ｐ１ａ，Ｐ２ａ）、・・・、Ｆ（Ｐ１ｂ’，Ｐ２ｂ’，・・・，Ｐｍｂ’，Ｐ１ａ，Ｐ２ａ，・・・，Ｐｎａ）等は、あらかじめＢの情報端末１０６からサーバ１００に送られ、そのデータベース１０２上に保持されるＡの個人情報とＢ自身の個人情報の任意の組み合わせの演算結果Ｆ（Ｐ１ａ’，Ｐ１ｂ）、Ｆ（Ｐ２ａ’，Ｐ１ｂ）、Ｆ（Ｐ１ａ’，Ｐ２ａ’，Ｐ１ｂ，Ｐ２ｂ）、・・・、Ｆ（Ｐ１ａ’，Ｐ２ａ’，・・・，Ｐｎａ’，Ｐ１ｂ，Ｐ２ｂ，・・・，Ｐｎｂ）とは、すべて同じ種類の個人情報の組み合わせである必要はなく、同じ個人情報の組み合わせが一つ以上あれば、ＡからのＢの検索依頼に対して、サーバ１００の検索手段１０８ｃはこのネットワークサービス上でＢを一意に特定して、サーバ１００の送受信手段１０８ａはＢから登録された個人情報の組み合わせの演算結果に関連づけられた認識票または接続に必要な情報をＡの端末１０４に送信することができる。たとえば、Ｂの端末１０４でＡの名前とＢ自身の名前、およびＡの電話番号とＢ自身の名前組み合わせが選択され、これらの組み合わせの演算結果がサーバ１００上のデータベース１０２に保持されている状態で、Ａの端末１０４が、Ｂの端末１０６を検索するために、Ｂの住所とＡ自身の電話番号、およびＢの名前とＡ自身の電話番号の組み合わせの各々の演算結果を、サーバ１００に問い合わせた場合、Ｂの端末１０６がサーバ１００に送った演算結果と、ＡがＢの検索のために問い合わせた演算結果は、すべてが同じ個人情報の組み合わせがではないが、この両方の演算結果にＡの電話番号とＢの名前という同じ組み合わせの一つの演算結果が含まれているため、サーバの検索手段１０８ｃは、演算結果の一致を検出し、送受信手段１０８ａは、Ａの端末１０４に対してＢの端末の認識票を送る。
【０１０４】
ここで、被検索者であるＢが、前記ステップＳ１０３において作成し、前記ステップＳ１０４においてサーバ１００に送信し、ステップＳ１０５においてそのデータベース１０２にＢの認識票ＩＤｂと関連づけて登録する演算結果は、検索者であるＡの情報端末のデータベース２１、およびＢの情報端末のデータベース２２の両方に記憶されている、このネットワークサービス全体で共通のワイルドカード情報「＊」と、Ｂの情報端末１０６のデータベース２２に記憶されているＢ自身の情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂと、演算結果Ｆ（＊、Ｐ１ｂ）、Ｆ（＊、Ｐ２ｂ）、・・・Ｆ（＊、Ｐｍｂ）、Ｆ（＊、Ｐ１ｂ、Ｐ２ｂ）、・・・、Ｆ（＊、Ｐ１ｂ、Ｐ２ｂ、・・・Ｐｍｂ）のうち任意の一つ以上でもよい。この場合に、たとえば検索者であるＡが、前記ステップＳ１０６で、Ａの情報端末１０４のデータベース２１に記憶されているＢの情報Ｐ２ｂ’およびこのワイルドカード文字列「＊」との演算結果Ｆ（＊、Ｐｂ’）を生成し、前記ステップＳ１０７でこれをサーバ１００に送ることで、利用者Ｂの検索を依頼すると、前記ステップＳ１０８において前記Ｆ（＊、Ｐ２ｂ’）による検索依頼に対して、前記Ｆ（＊、Ｐ２ｂ）との一致を検出すれば、前記ステップＳ１０９において、前記Ｆ（＊、Ｐ２ｂ）に関連づけてデータベース１０２に記憶された被検索者であるＢの認識票ＩＤｂを、検索者であるＡの情報端末１０４に送ることができる。こうすると、被検索者であるＢは、本実施形態１で示した検索者Ａからの検索に限定せず、このネットワークサービスの利用者全体のなかから、利用者Ｂの情報Ｐ２ｂを、その情報端末のデータベースに記憶している任意の利用者の端末からの検索に対して、前記ステップＳ１０９において、利用者Ｂの認識票ＩＤｂを送信することができる。
【０１０５】
本実施形態に係る本発明によるシステム及び方法によれば、図１に示した従来の方法に比べて、実施形態１で示した三つの効果に加えて、さらに次の二つの効果がある。
【０１０６】
第一には、本実施形態２によれば、ネットワークサービス上で二人が相互に検索するような場合、Ａの端末１０４に保持されているＢの個人情報と、Ｂの端末１０６に保持されているＡの個人情報が同じでなくとも、ＡがＢを検索し、かつＢがＡを検索することができる点である。たとえば、図１に示したような被検索者が名前を検索用のサーバに登録して、検索者が名前を直接サーバ上で検索するという従来の方法では、ネットワークサービス上でＡの端末１０４がＢの端末１０６を検索する場合は、Ａの端末１０４にＢの名前を保持した上Ｂの名前についてサーバ１００に対して検索依頼をする必要があり、逆にＢがＡを探す場合には、Ｂの端末１０６にＡの名前を保持した上Ａの名前についてサーバ１００に対して検索依頼をする必要があった。すなわち、二人が相互に検索しあうような場合、Ａの端末１０４はＢの名前を、またＢの端末１０６はＡの名前を、というように同じ属性の個人情報を両方の端末に保持した上、各々の名前を検索用のサーバに問い合わせる必要があった。しかし、本実施形態２に示す方法によれば、Ａの端末１０４のデータベース２１にはＢの電話番号だけが、またＢの端末１０６のデータベース２２にはＡの住所だけが保持されているというように、ＡとＢが各々異なる属性の個人情報しか各々の端末に保持できていない場合にでも、Ａの端末１０４がＢの電話番号とＡ自身の住所を、またＢの端末１０６がＡの住所とＢ自身の電話番号を各々サーバ１００のデータベース１０２に登録してあれば、ＡがＢを、またＢがＡをそれぞれ検索することができる。
【０１０７】
第二には、本実施形態２によれば、従来の方法にくらべてだけでなく、上述の実施形態１の方法にくらべても、一意性の低い個人情報を使っても、サーバ１００の検索手段１０８ｃが、検索者からの検索要求に対して、被検索者を一意に特定できない可能性をさらに小さくすることができる点である。たとえば実施形態１の方法によれば、ごくありふれた名前であるＡがごくありふれた名前であるＢを検索するような場合には、検索サーバのデータベース１０２に登録された演算結果の中に、複数のＦ（Ｐａ’，Ｐｂ）が存在する可能性があり、たとえばＡがＢを検索しようとする際に、検索サーバ１００ではＢを一意に特定できない可能性がある。しかし本実施形態２の方法によれば、ＡがＢを検索する際には、Ｂの端末のデータベース２２に保持されている一つ以上のＡの個人情報とＢ自身の個人情報の任意の一つ以上の組み合わせの演算結果をサーバのデータベース１０８ｃに登録した上、ＡがＡの端末のデータベースに保持されている一つ以上のＢの個人情報とＡ自身の個人情報の一つ以上の任意の組み合わせの演算結果をサーバ１００に対して問い合わせるので、多くの場合、複数の個人情報の組み合わせの演算結果を検索することになり、サーバのデータベース１０８ｃに登録された演算結果が重複する可能性は、実施形態１の方法にくらべて更に小さくなる。たとえば、ありふれた名前を持つＡがＢを検索する場合、Ｂの端末１０６があらかじめ、サーバのデータベース１０８ｃに、Ａの名前とＢ自身の名前、Ａの勤務先とＢ自身の名前、Ａの名前とＢ自身の勤務先、およびＡの勤務先とＢ自身の勤務先、の四つの組み合わせの演算結果を登録しておく場合を考える。ここでＡの端末１０４がサーバ１００に対して、Ｂの名前とＡ自身の名前、Ｂの名前とＡ自身の勤務先の二組の演算結果の検索を依頼した場合は、ありふれた名前、およびありふれた勤務先といういずれも単独では検索相手を一意に特定することが難しい情報を用いても、ほぼ確実に検索相手を一意に特定することができる。
【０１０８】
（実施形態３）上述の実施形態２においては、被検索者が検索することを許可した検索者の一つ以上の情報と、被検索者自身の一つ以上の情報とを順列に組み合わせたなかの任意の組み合わせの一つ以上の演算結果を、被検索者の認識票と関連づけてネットワークサービス事業者のサーバ１００に登録しておく。検索者は被検索者の一つ以上の個人情報と検索者自身の一つ以上の個人情報との任意の組み合わせの一つ以上の演算結果を、サーバ１００に問い合わせ、一致する登録があった場合には、被検索者の認識票または接続に必要な情報を検索者に送るようにしている。
【０１０９】
本実施形態３では、実施形態２において被検索者が、サーバ１００に登録しておく演算結果に加えて、この演算結果とその演算を行うもとになる被検索者の情報ごとに何らかのフラグを生成する。その後、各々の演算結果とその演算結果の基になった被検索者の情報のフラグの組を作成し、各々の組に対して被検索者の認識票を関連づけて登録しておく。そして、実施形態２と同様の検索者からの問い合わせに対して、演算結果のフラグと被検索者の認識票を検索者に送る方法およびその効果について説明する。なお、実施形態２に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。本実施形態に係る本発明のシステム及び方法によって情報端末１０４と情報端末１０６とが通信を確立する動作のフローチャートは、実施形態１における図６と同様であるので、ここでは図６を参照する。
【０１１０】
図８で、利用者Ａの情報端末１０４では、データベース２１には、Ａ自身の情報Ｐ１ａとＰ２ａ、Ｂの情報Ｐ１ｂ’とＰｂ２ｂ’、およびＤの情報Ｐ３ｄ’、さらにＡ自身の情報Ｐ１ａに関連するフラグＦＬＧ１ａとＡ自身の情報Ｐ２ａに関連するフラグＦＬＧ２ａが記憶されている。ここでこれらのフラグ（ＦＬＧ１ａ、ＦＬＧ２ａ）は、Ａの各々の情報に関連する情報であれば如何なる情報でもあっても良く、たとえば各々の情報が現在有効か無効か（たとえば、その情報が有効であれば「１」、無効であれば「０」など）、各々の情報の生成された日付（たとえば「２００６１２２５」など）、あるいはＡの各々の情報に対して演算手段１１０ａが無作為に生成した任意の数値などでも良い。演算手段１１０ａは、Ａ自身の情報および他人の情報の任意の組み合わせのハッシュ関数による演算結果、たとえばＨ（Ｐ１ｂ’＋Ｐ１ａ）、Ｈ（Ｐ２ｂ’＋Ｐ２ａ）、Ｈ（Ｐ３ｄ’＋Ｐ２ａ）をデータベース２１に記憶する（ステップＳ１００）。ここでは各々の情報の文字列結合をハッシュ関数Ｈによって処理した演算結果をＨ（Ｐ１ｂ’＋Ｐ１ａ）などと表す。次に、Ａの情報端末１０４の送受信手段１１０ｂは、これらの演算結果と、各々の演算結果のもとになったＡの情報のフラグの組｛Ｈ（Ｐ１ｂ’＋Ｐ１ａ）、ＦＬＧ１ａ｝、｛Ｈ（Ｐ２ｂ’＋Ｐ２ａ）、ＦＬＧ１ａ｝、および｛Ｈ（Ｐ３ｄ’＋Ｐ２ａ）、ＦＬＧ２ａ｝を、ネットワークサービス事業者のサーバ１００に送る（ステップＳ１０１）。次にサーバ１００のデータ処理手段１０８が｛Ｈ（Ｐ１ｂ’＋Ｐ１ａ）、ＦＬＧ１ａ｝、｛Ｈ（Ｐ２ｂ’＋Ｐ２ａ）、ＦＬＧ１ａ｝、および｛Ｈ（Ｐ３ｄ’＋Ｐ２ａ）、ＦＬＧ２ａ｝を送受信手段１０８ａで受信する。サーバ１００のテーブル作成手段１０８ｂは、演算結果｛Ｈ（Ｐ１ｂ’＋Ｐ１ａ）、ＦＬＧ１ａ｝、｛Ｈ（Ｐ２ｂ’＋Ｐ２ａ）、ＦＬＧ１ａ｝、および｛Ｈ（Ｐ３ｄ’＋Ｐ２ａ）、ＦＬＧ２ａ｝をＡのネットワークサービスＩＤなどこのネットワークサービス上でＡを一意に特定するための認識票ＩＤａ、またはＡとの接続のために必要な情報と関連づけた上で登録（７１）し、データベース１０２に記憶・保持する（ステップＳ１０２）。なお、サーバ１００及びＡの情報端末１０４における演算やデータの送受信は、データ処理手段１０８及び１１０に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【０１１１】
一方、利用者Ｂの情報端末１０６では、データベース２２には、利用者Ｂ自身の情報Ｐ１ｂとＰ２ｂ、および利用者Ａの情報Ｐ１ａ’と同じく利用者Ａの情報Ｐ２ａ’とＦの情報Ｐ３ｆ’、さらに利用者Ｂ自身の情報Ｐ１ｂに関連するフラグＦＬＧ１ｂと利用者Ｂ自身の情報Ｐ２ｂに関連するフラグＦＬＧ２ｂが記憶されている。既に述べたように、これらのフラグは、利用者Ｂの各々の情報に関連する情報であれば何でも良い。演算手段１１２ａは、利用者Ｂ自身の情報および他人の情報の任意の組み合わせのハッシュ関数による演算結果、たとえばＨ（Ｐ１ａ’＋Ｐ１ｂ）、Ｈ（Ｐ１ａ’＋Ｐ２ｂ）、Ｈ（Ｐ２ａ’＋Ｐ１ｂ）、Ｈ（Ｐ２ａ’＋Ｐ２ｂ）、Ｈ（Ｐ３ｆ’＋Ｐ２ｂ）をデータベース２２に記憶する（ステップＳ１０３）。次に、利用者Ｂの情報端末１０６の送受信手段１１２ｂは、これらの演算結果と、各々の演算結果のもとになったＢの情報のフラグの組｛Ｈ（Ｐ１ａ’＋Ｐ１ｂ）、ＦＬＧ１ｂ｝、｛Ｈ（Ｐ１ａ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝、｛Ｈ（Ｐ２ａ’＋Ｐ１ｂ）、ＦＬＧ１ｂ｝、｛Ｈ（Ｐ２ａ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝、および｛Ｈ（Ｐ３ｆ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝を、ネットワークサービス事業者のサーバ１００に送る（ステップＳ１０４）。次にサーバ１００のデータ処理手段１０８が｛Ｈ（Ｐ１ａ’＋Ｐ１ｂ）、ＦＬＧ１ｂ｝、｛Ｈ（Ｐ１ａ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝、｛Ｈ（Ｐ２ａ’＋Ｐ１ｂ）、ＦＬＧ１ｂ｝、｛Ｈ（Ｐ２ａ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝、および｛Ｈ（Ｐ３ｆ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝を送受信手段１０８ａで受信する。サーバ１００のテーブル作成手段１０８ｂは、演算結果とフラグの組｛Ｈ（Ｐ１ａ’＋Ｐ１ｂ）、ＦＬＧ１ｂ｝、｛Ｈ（Ｐ１ａ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝、｛Ｈ（Ｐ２ａ’＋Ｐ１ｂ）、ＦＬＧ１ｂ｝、｛Ｈ（Ｐ２ａ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝、および｛Ｈ（Ｐ３ｆ’＋Ｐ２ｂ）、ＦＬＧ２ｂ｝をＢのネットワークサービスＩＤなどこのネットワークサービス上でＢを一意に特定するための認識票ＩＤｂ、またはＢとの接続のために必要な情報と関連づけた上で登録（７２）し、データベース１０２に記憶・保持する（ステップＳ１０５）。なお、Ｂの情報端末１０６におけるハッシュ値の生成は、データ処理手段に組み込まれたオペレーティングシステム上で動作するコンピュータプログラム、ミドルウェア、アプリケーション上で処理されるようにしてもよい。
【０１１２】
ここで示したものは、様々な情報の組み合わせの演算の一例であり、実施形態２と同様に、本実施形態３においても利用者Ａおよび利用者Ｂの端末に保持されている自分自身および他人の情報の数は任意であり、また利用者Ａの端末および利用者Ｂの端末からサーバ１００に送り、そのデータベースに登録される演算結果は、任意の数の情報Ｐ１ａ、Ｐ２ａ、・・・、Ｐｎａ（ｎは整数）、利用者Ｂの情報Ｐ１ｂ、Ｐ２ｂ、・・・、Ｐｍｂ（ｍは整数）などの任意の組み合わせの演算であってよい。また、ここで用いる各々の情報は、氏名、住所、電話番号などの個人情報、写真、文書など如何なる種類の情報であってもよい。また各々の演算結果と組み合わせてサーバ１００に登録するフラグの数は一つ以上の任意の数であってよい。各情報の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえばＰ１ａおよびＰ１ｂを名前、Ｐ２ａおよびＰ２ｂを住所、Ｐ３ａおよびＰ３ｂを勤務先などとすると、Ｐ１ｂ’はＡがＡの端末１０４で記憶・保持しているＢの名前であることを意味している。またたとえば、Ｐ２ｂは、ＢがＢの端末１０６で記憶・保持しているＢ自身の住所であることを意味している。たとえば、通常であればＰ１ｂ’＝Ｐ１ｂ、かつＰ２ｂ’＝Ｐ２ｂであるが、たとえばどちらか端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【０１１３】
また、本実施形態３では演算として、文字列結合のハッシュ関数を用いたが、上記実施形態２と同様に、ここで用いる演算は、任意の可逆な演算Ｆでも非可逆な演算Ｆでもかまわない。既に述べたように、ここで可逆な演算を用いた場合には、非可逆な演算を用いた場合に比べて、実施形態１で述べた本発明の効果のうちで、守秘性は低くなるが、これ以外の本発明による効果を奏する点については変わらない。さらに、ここで用いる任意の演算Ｆは、変数である個人情報について可換であっても非可換であってもよい。
【０１１４】
次に、本実施形態においては、利用者Ａが利用者Ｂとの通信を望む場合、利用者Ａの情報端末１０４において、演算手段１１０ａは、Ｂの情報とＡ自身の情報の組み合わせの文字列結合をハッシュ演算したＨ（Ｐ１ａ＋Ｐ１ｂ’）、Ｈ（Ｐ１ａ＋Ｐ２ｂ’）、Ｈ（Ｐ２ａ＋Ｐ１ｂ’）およびＨ（Ｐ２ａ＋Ｐ２ｂ’）を生成する（ステップＳ１０６）。このとき利用者Ａの情報端末が検索のために組み合わせるＢの情報とＡの情報は、この例に限らず任意の組み合わせであってよい。また、このＢの情報端末１０４で行われる任意のハッシュ演算Ｈは、如何なる演算Ｆであってもよいが、利用者Ａの情報端末１０４がサーバ１００に登録するたに利用した演算と同じものであることが要求される。そして、利用者Ａの情報端末１０４の送受信手段１１０ｂは、演算結果Ｈ（Ｐ１ａ＋Ｐ１ｂ’）、Ｈ（Ｐ１ａ＋Ｐ２ｂ’）、Ｈ（Ｐ２ａ＋Ｐ１ｂ’）およびＨ（Ｐ２ａ＋Ｐ２ｂ’）をネットワークサービス事業者のサーバ１００に送ることによって、サーバ１００に検索を依頼（７３）する（ステップＳ１０７）。情報端末１０４から送信された演算結果Ｈ（Ｐ１ａ＋Ｐ１ｂ’）、Ｈ（Ｐ１ａ＋Ｐ２ｂ’）、Ｈ（Ｐ２ａ＋Ｐ１ｂ’）およびＨ（Ｐ２ａ＋Ｐ２ｂ’）は、サーバ１００におけるデータ処理手段１０８の送受信手段１０８ａによって受信される。そして、データ処理手段１０８の検索手段１０８ｃが情報端末１０４から送信された演算結果Ｈ（Ｐ１ａ＋Ｐ１ｂ’）、Ｈ（Ｐ１ａ＋Ｐ２ｂ’）、Ｈ（Ｐ２ａ＋Ｐ１ｂ’）およびＨ（Ｐ２ａ＋Ｐ２ｂ’）と一致するデータベース１００に登録されている演算結果を検索する（ステップＳ１０８）。ここで、図８に示す例では、ネットワークサービス事業者のデータベース１０２にＢの認識票ＩＤｂまたはＢとの接続に必要な情報と関連づけられたＨ（Ｐ１ａ’＋Ｐ１ｂ）、Ｈ（Ｐ１ａ’＋Ｐ２ｂ）、Ｈ（Ｐ２ａ’＋Ｐ１ｂ）およびＨ（Ｐ２ａ’＋Ｐ２ｂ）がＢによって登録されている。この検索依頼に対して、ネットワークサービス事業者のサーバ１００における検索手段１０８ｃは、データベース１００においては、情報端末１０４から送信された演算結果Ｈ（Ｐ１ａ’＋Ｐ１ｂ）、Ｈ（Ｐ１ａ’＋Ｐ１２ｂ）、Ｈ（Ｐ２ａ’＋Ｐ１ｂ）、Ｈ（Ｐ２ａ’＋Ｐ２ｂ）と、データベース１００に登録されているＢの認識票または接続に必要な情報と関連づけられて登録されている演算結果との４つの一致、（即ち、Ｈ（Ｐ１ａ＋Ｐ１ｂ’）＝Ｈ（Ｐ１ａ’＋Ｐ１ｂ）、Ｈ（Ｐ１ａ＋Ｐ２ｂ’）＝Ｈ（Ｐ１ａ’＋Ｐ２ｂ）、Ｈ（Ｐ２ａ＋Ｐ１ｂ’）＝Ｈ（Ｐ２ａ’＋Ｐ１ｂ）、およびＨ（Ｐ２ａ＋Ｐ２ｂ’）＝Ｈ（Ｐ２ａ’＋Ｐ２ｂ））を検出する。（ステップＳ１０９）これをもとに、サーバ１００は、利用者Ａの端末１０４が問い合わせた４つの演算結果に各々対応するフラグ、（即ちＨ（Ｐ１ａ＋Ｐ１ｂ’）−ＦＬＧ１ｂ、Ｈ（Ｐ１ａ＋Ｐ２ｂ’）−ＦＬＧ２ｂ、Ｈ（Ｐ２ａ＋Ｐ１ｂ’）−ＦＬＧ１ｂおよびＨ（Ｐ２ａ＋Ｐ２ｂ’）−ＦＬＧ２ｂ）と、利用者Ｂの端末１０６の認識票ＩＤｂを、利用者Ａの端末１０４に送る。
【０１１５】
実施形態１および実施形態２と同様に、利用者Ａの端末１０４の端末は、ここで得られた利用者Ｂの認識票ＩＤｂまたは利用者Ｂの接続情報をもとに、利用者Ｂとの通信をおこなうことができる。これに加えて本実施形態３では、利用者Ａの端末は、利用者Ｂの認識票ＩＤｂとともにサーバ１００から送られた、利用者Ａが利用者Ｂを検索する際に利用した利用者Ｂの情報Ｐ１ｂ’に関連したフラグＦＬＧ１ｂ、および利用者Ｂの情報Ｐ２ｂ’に関連したフラグＦＬＧ２ｂを利用することで、実施形態１および実施形態２において述べた効果に加えて、更に次に述べるような効果を得ることができる。
【０１１６】
以下に示す二つの例を用いて本実施形態３の効果について説明する。ここでは、図８に示す本実施形態において、Ｐ１ａはＡの電子メールアドレス、Ｐ２ａはＡの電話番号、Ｐ１ｂはＢの電子メールアドレス、Ｐ２ｂはＢの電話番号であるとする。これまでと同様、これらの記号にダッシュ「’」が付いていなければ、自分の端末に保持した自分の情報であることを表し、ダッシュ「’」が付いていれば、自分の端末に保持した他人の情報であることを表している。なお、Ｐ１ａ、Ｐ２ａ、・・・やＰ１ｂ、Ｐ２ｂ、・・・はこの例に限定されず、いかなる情報であってもよい。
【０１１７】
第一の例では、フラグＦＬＧ１ｂおよびフラグＦＬＧ２ｂは各々、利用者Ｂの情報端末２２に記憶されているＢの電子メールアドレスおよび電話番号が現在有効であるか、または無効であるかを示すフラグ（有効であれば「１」、古い情報であるなどの理由で無効であれば「０」）でであるとする。ここでＡの端末１０４は、（１）Ｈ（Ｐ１ａ＋Ｐ１ｂ’）、（２）Ｈ（Ｐ１ａ＋Ｐ２ｂ’）、（３）Ｈ（Ｐ２ａ＋Ｐ１ｂ’）および（４）Ｈ（Ｐ２ａ＋Ｐ２ｂ’）、をサーバ１００に問い合わせ、その結果、Ｂの認識票ＩＤｂ、およびこれら問い合わせた４つのハッシュに対応するＢのフラグをサーバ１００より受信する（７４）。たとえば、この場合図８に示すとおり、（１）Ｈ（Ｐ１ａ＋Ｐ１ｂ’）に対応するフラグとしてＡの端末１０４が受け取るのはＦＬＧｂ１である。したがって、もしここで受け取ったＦＬＧｂ１＝１であれば、ＡはＡの端末１０４で保持されているＢの電子メールアドレスＰ１ｂ’が現在有効であることがわかる。一方、ここで受け取ったＦＬＧｂ１＝０であれば、ＡはＡの端末１０４で保持されているＢの電子メールアドレスＰ１ｂ’が無効であることがわかる。この第一の例では、Ａの情報端末がＢの検索に使ったＢの情報について、その情報の状態を、ＡとＢとの通信を確立せずとも入手できるという効果が得られる。この効果により、実施形態１及び２と比較して、Ｂの電子メールアドレスが古く現在は無効であった場合、このフラグを使うことによって、Ａの情報端末は無効な通信手段に対して通信の確立を試みる必要がないという利点がある。ここでフラグＦＬＧ１ｂおよびＦＬＧ２ｂは、ハッシュ演算されたものではなく、フラグ情報そのものがサーバ１００に登録されるため、実施形態１の第一の利点として挙げた非可逆演算を用いた場合の機密性保持の効果は、このフラグ自身には当てはまらない。しかし、この例ではＦＬＧ１ｂ、ＦＬＧ２ｂは、有効か無効かという情報しか含まれておらず、さらにこれらのフラグの対象と関連づけられた情報はハッシュ値であり非可逆であることから、これが漏洩しても利用者Ｂの情報の機密保持という観点からは問題がない。
【０１１８】
第二の例では、フラグＦＬＧ１ｂとＦＬＧ２ｂは各々、利用者Ｂの情報端末２２に記憶されているＢの電子メールおよび電話番号の各々の利用開始日（たとえば２００６年１２月２５日であれば「２００６１２２５」など）、あるいは利用者Ｂの情報端末２２の演算手段１１２が各々無作為に生成した数値などであったとする。ここでＡの端末１０４は、（１）Ｈ（Ｐ１ａ＋Ｐ１ｂ’）、（２）Ｈ（Ｐ１ａ＋Ｐ２ｂ’）、（３）Ｈ（Ｐ２ａ＋Ｐ１ｂ’）および（４）Ｈ（Ｐ２ａ＋Ｐ２ｂ’）、をサーバ１００に問い合わせ、その結果、Ｂの認識票ＩＤｂ、およびこれら問い合わせた４つのハッシュに対応するＢの各々フラグをサーバ１００より受信する（７４）。
【０１１９】
ところで、実施形態１、２および本実施形態３における検索でハッシュ関数（不可逆圧縮演算）を使うことの利点は機密性保持である。一方、欠点としては演算結果の衝突が起こり得ること、すなわちＰａ≠Ｐｂであっても、必ずしもＨ（Ｐａ）≠Ｈ（Ｐｂ）であることが保証されていない点である。つまり、この第二の例で、利用者Ａの情報端末２１からサーバ１００への４個のハッシュ値の検索依頼７３に対して、ハッシュ演算結果衝突の結果、上記（１）から（４）の四つのハッシュ値に加えて、利用者Ｂ以外の第三者から登録されている別のハッシュ値（たとえばここでは利用者Ｙが利用者Ｘの情報と組み合わせて登録した｛Ｈ（Ｐ１ｘ’＋Ｐ２ｙ）、ＦＬＧ２ｙ｝の一致が検出されることがある。この場合、実施形態１および実施形態２では、利用者Ａの端末１０４では、ここで得られた５つのハッシュ値のどれが利用者Ｂからの登録であり、どれがハッシュ演算の衝突による不正な一致であるかを区別する手段がない。それに対して本実施形態３の方法によれば、問い合わせた（１）および（３）には同じＦＬＧ１ｂというフラグが、（２）および（４）には同じＦＬＧ２ｂというフラグが、サーバ１００より返されることが期待されるので、サーバ１００より帰ってきた５つの一致のうちで、一つだけ異なるＦＬＧ２ｙというフラグを持つハッシュ値とのは、ハッシュ演算結果衝突など何らかの理由で不正な一致を検出した、利用者Ｂ以外からの登録であることを、利用者Ａの端末で推定することができるという効果が得られる。
【０１２０】
本実施形態３では、Ｂから登録するハッシュ値の各々に対して、そのハッシュ値を生成するもとになったＢの情報ごとに付けたフラグをサーバ１００に登録した。しかし、このフラグはハッシュ値を生成するもとになったＢの情報ごとではなく、Ｂの認識票に対して関連づけられたフラグを、Ｂの認識票と関連づけてサーバ１００に登録する方法でも構わない。
【０１２１】
（実施形態４）本実施形態４では、前述の実施形態１または実施形態２の方法によると、検索者からの一つまたは複数の演算結果の検索依頼に対して、サーバ１００のデータベース１０２で複数の一致が検出され、検索者が被検索者を一意に特定できない場合に、更に一致の検出された複数の被検索者と検索者の間で別途個人情報のハッシュのやりとりをおこなうというステップを追加することで、目的とする被検索者を一意に特定するための方法について説明する。図９は本発明による本実施形態４の一例であり、このネットワークサービスの利用者ＢとＣは同姓同名であり、利用者Ａが、ＢとＣを両方知っているような状況で、本発明による検索を利用して、Ａが通信したい相手Ｂを検索し、一意に特定するシステム及び方法を示している。なお、実施形態１又は実施形態２に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。
【０１２２】
なお本実施形態４では、実施形態１で一例として示したのと同様に、被検索者が、あらかじめ検索者の名前と被検索者の名前の文字列結合のハッシュ関数による演算結果をサーバ１００のデータベース１０２に登録していた上で、検索者が検索する時には、検索者の端末において、検索者自身の名前と被検索者の名前の文字列結合のハッシュ関数による演算結果をサーバ１００に対して問い合わせるという検索方法を示している。しかし、実施形態１における説明で述べたのと同様、演算の対象となる個人情報は名前に限定されず、住所、勤務先、家族の情報、各種嗜好など何であってもよい。また、ここで用いる演算は、ＳＨＡ−１やＭＤ５などどのようなハッシュアルゴリズムを用いてもよく、さらにここで行う演算は、文字列結合のハッシュ演算には限定されず、任意の演算であってよい。さらに、上述の実施形態２で述べたのと同様に、本実施形態４でも、検索には、複数の被検索者の個人情報と複数の検索者の個人情報とを、順列に組み合わせたもののなから任意の組み合わせを選び、さらにこれらの組み合わせに対して任意の演算をした結果を用いてもよい。前述の実施形態１および２で述べたとおり、ここで用いる演算は、可換な演算でも非可換な演算でも、また可逆演算でも非可逆演算でもよい。
【０１２３】
いま、図９の例に示すように、利用者Ａの情報端末１０４のデータベース２１には、Ｂ，Ｄ，ＥというＡが直接知る三名の友人の各々の名前Ｐｂ’，Ｐｄ’，Ｐｅ’３１、およびこの三人の友人の住んでいる市の各々の名前Ｑｂ’，Ｑｄ’，Ｑｅ’３２が保持されている。また、利用者Ｂの情報端末１０６には、Ａ、Ｆ、ＧというＢが直接知る三名の友人の各々の名前Ｐａ’，Ｐｆ’，Ｐｇ’３３が保持されている。また、利用者Ｃの情報端末１２０には、Ａ、Ｈ、ＩというＣが直接知る三名の友人の各々の名前Ｐａ’、Ｐｈ’、Ｐｉ’３４が保持されている。なお、サーバ１００、情報端末１０４、情報端末１０６及び情報端末１２０には、その他の利用者の情報が記憶されていてもよいのは言うまでもない。
【０１２４】
ただし、この図９に示す例においては、利用者Ｂと利用者Ｃとは同姓同名（Ｐｂ＝Ｐｃ）であるが、この二名の住んでいる市の名前は異なっている（Ｑｂ≠Ｑｃ）とする。また、Ａ、Ｂ、Ｃが各々の情報端末で保持している自分自身の個人情報、および他者の個人情報はすべて正しく、かつ最新のものであるとする。
【０１２５】
図１０は、本実施形態に係る本発明のシステム及び方法のフローチャートである。
【０１２６】
図９に示す例において、まず、Ａの端末１０４のデータ処理手段の演算手段１１０ａは、Ｂの名前を表す文字列Ｐｂ’と、Ａの名前を表す文字列Ｐａとの文字列結合をハッシュ関数にて演算する（ステップ２００）。同様に、Ａの端末１０４のデータ処理手段１１０の演算手段１１０ａは、ＤとＡ，ＥとＡ、の各々の文字列結合のハッシュ値Ｈ（Ｐｄ’＋Ｐａ）、Ｈ（Ｐｅ’＋Ｐａ）を生成する（ステップＳ３００）。情報端末１０４の送受信手段１１０ｂは、これらの三つのハッシュＨ（Ｐｂ’＋Ｐａ）、Ｈ（Ｐｄ’＋Ｐａ）、およびＨ（Ｐｅ’＋Ｐａ）をネットワークサービス事業者のサーバ１００に送信する（ステップＳ２０１）。
【０１２７】
サーバ１００のデータ処理手段１０８は、受信した三つのハッシュ値Ｈ（Ｐｂ’＋Ｐａ）、Ｈ（Ｐｄ’＋Ｐａ）、およびＨ（Ｐｅ’＋Ｐａ）をＡのこのネットワークサービスにおける認識票ＩＤａや接続に必要な情報と関連づけた上で登録し、データベース１０２に記憶・保持する（ステップＳ２０２）。
【０１２８】
同様に、利用者Ｂの情報端末１０６のデータ処理手段１１２の演算手段１１２ａが、Ｂが通信をしてもよいと思っている友人Ａ，Ｆ、Ｇの名前と、Ｂ自身の名前との文字列結合のハッシュ値Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｆ’＋Ｐｂ）、およびＨ（Ｐｇ’＋Ｐｂ）を生成する（ステップＳ２０３）。情報端末１０６の送受信手段１１２ｂは、これらの三つのハッシュ値Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｆ’＋Ｐｂ）、およびＨ（Ｐｇ’＋Ｐｂ）をネットワークサービス事業者のサーバ１００に送信する（ステップＳ２０４）。
【０１２９】
サーバ１００は、受信した三つのハッシュ値Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｆ’＋Ｐｂ）、Ｈ（Ｐｇ’＋Ｐｂ）をＢの認識票ＩＤｂや接続に必要な情報と関連づけた上で登録し、データベース１０２に記憶・保持しておく（ステップＳ２０５）。
【０１３０】
同様に、利用者Ｃの情報端末１２０のデータ処理手段１１４（図示せず）の演算手段１１４ａ（図示せず）が、Ｃが通信をしてもよいと思っている友人Ａ、Ｈ、Ｉの名前と、Ｃ自身の名前の文字列結合のハッシュ値Ｈ（Ｐａ’＋Ｐｃ）、Ｈ（Ｐｈ’＋Ｐｃ）、およびＨ（Ｐｉ’＋Ｐｃ）を生成する（ステップＳ２０６）。利用者Ｃの情報端末１２０においてハッシュ値を生成するためには、如何なるアルゴリズムを用いてもよいが、Ｂの情報端末１０６で行われるハッシュ値生成と同じアルゴリズムを用いることが要求される。もし、Ｂの情報端末１０６でおこなわれる個人情報の演算が、文字列結合のハッシュ値ではなく、任意の関数である場合には、この利用者Ｃの端末１２０において用いられる演算もＢの情報端末１０６において用いられる演算と同じでなくてはならない。利用者Ｃの情報端末１２０の送受信手段１１４ｂ（図示せず）は、これらの三つのハッシュ値Ｈ（Ｐａ’＋Ｐｃ）、Ｈ（Ｐｈ’＋Ｐｃ）、およびＨ（Ｐｉ’＋Ｐｃ）をネットワークサービス事業者のサーバ１００に送信する（ステップＳ２０７）。
【０１３１】
サーバ１００は、受信した三つのハッシュ値Ｈ（Ｐａ’＋Ｐｃ）、Ｈ（Ｐｈ’＋Ｐｃ）、およびＨ（Ｐｉ’＋Ｐｃ）をＣの認識票ＩＤｃまたは接続に必要な情報と関連づけた上で登録し、データベース１０２に記憶・保持しておく（ステップＳ２０８）。
【０１３２】
さて、図９に示す例において、ＡがＢとの通信を望む場合、Ａの情報端末１０４の演算手段１１０ａは、Ｂの名前と自分の名前の文字列結合のハッシュ値Ｈ（Ｐａ＋Ｐｂ’）を生成し、送受信手段１１０ｂは、これをネットワークサービス事業者のサーバ１００に送ることで検索を依頼（３６）する（ステップＳ２０９）。このとき、利用者Ａの情報端末１０４において検索のために用いられるハッシュ値を生成するアルゴリズムは、Ｂの情報端末１０６およびＣの情報端末１２０で、各々の端末に保持されている他者の名前と端末所有者自身の名前の文字列結合のハッシュ値をサーバへ登録するときに用いたハッシュ値を生成するアルゴリズムと同じであることが要求される。また、もしＢの情報端末１０６およびＣの情報端末１２０で、各々の端末に保持されている他者の名前と端末所有者自身の名前の任意の演算Ｆがサーバに登録されている場合には、ここで利用者Ａの情報端末１０４で検索のために用いられる演算は、Ａ自身の名前と、Ａの端末１０２のデータベース２１に保存されているＢの名前の任意の演算には、Ｂの情報端末１０６およびＣの情報端末１２０で使われた演算と同じものでなければならない。
【０１３３】
このＡの情報端末１０２から、ネットワークサービス事業者のサーバ１００への検索依頼に対して、サーバ１００の検索手段１０８ｃは、あらかじめＢの情報端末１０６およびＣの情報端末１２０から登録されたハッシュ値のうち、この検索を依頼されたＨ（Ｐａ＋Ｐｂ’）と一致するハッシュ値を検索する（ステップ２１０）。この例では、利用者Ｂと利用者Ｃとは同姓同名（Ｐｂ＝Ｐｃ）であることから、サーバ１００の検索手段１０８ｃが、Ａの情報端末１０４から送信されたハッシュ値Ｈ（Ｐａ＋Ｐｂ’）と、あらかじめＢの情報端末１０６より登録されたハッシュ値Ｈ（Ｐａ’＋Ｐｂ）、およびあらかじめＣの情報端末１２０より登録されたハッシュ値Ｈ（Ｐａ’＋Ｐｃ）との複数の一致を検出する。
この場合、サーバ１００は、複数の一致を検出したＢおよびＣの、このネットワークサービスにおける認識票ＩＤｂおよびＩＤｃまたは接続に必要な情報を、情報端末１０４に報告３７する（ステップＳ２１１）。この時点ではＡの情報端末１０４は、この検索によりネットワークサービス上で通信したいＢの情報端末１０６を一意に特定できず、Ｂの情報端末１０６とＣの情報端末１２０とが候補として残っている状態である。
【０１３４】
そこで、次に、図９に示す例では、Ａの情報端末１０２に報告３７されたＢとＣの認識票ＩＤｂおよびＩＤｃ、または接続に必要な情報を使って、ネットワークサービス事業者のサーバ１００を通じて、あるいはＡの情報端末１０２と、Ｂの情報端末１０６およびＣの情報端末１２０との直接接続などによって、Ａの情報端末１０４は、Ｂの情報端末１０６に対して、たとえばＢの住んでいる市の名前Ｑｂのハッシュ値Ｈ（Ｑｂ）を、またＣの情報端末１２０に対して住んでいる市の名前Ｑｃのハッシュ値Ｈ（Ｑｃ）を、それぞれＡの端末１０４に対して送るように要求（３８）する（ステップ２１２）。Ｂはこの要求に従ってその住んでいる市の名前のハッシュ値Ｈ（Ｑｂ）を、またＣはその住んでいる市の名前のハッシュ値Ｈ（Ｑｃ）をそれぞれＡに返送（３９）する（ステップ２１３）。ここで、利用者Ａの情報端末１０４、利用者Ｂの情報端末１０６及び利用者Ｃの情報端末１２０において用いられるハッシュ値を生成するアルゴリズムは、各情報端末において同じ演算及び同じアルゴリズムを用いればよく、如何なるアルゴリズムを用いてもよい。また、ここで利用者Ａの情報端末１０４、利用者Ｂの情報端末１０６及び利用者Ｃの情報端末１２０において用いられる演算は、ハッシュ関数に限らず、どのような演算でもよい。ここで用いられる任意の演算が非可逆演算であれば、ここでＡの端末１０４がＢの端末１０６を一意に特定するために、Ｂの端末１０６およびＣの端末１２０からＡの端末１０４に送られるＢおよびＣの個人情報をＡが解読または復元することができないので、Ａがこの方法によって、無関係であるＣの個人情報を入手することができない、という点で、個人情報の秘匿性が、可逆演算を用いた時よりも高くなる。
【０１３５】
図９に示す例では、ＢとＣの住んでいる市の名前は異なる（Ｑｂ≠Ｑｃ）から、Ａの端末１０４はあらかじめそのデータベース２１に保持されている他者の情報３２から、ハッシュ値Ｈ（Ｑｂ’）を生成して、これと３９Ｂの端末１０６から返送されたＨ（Ｑｂ）、およびＣの端末１２０から返送されたＨ（Ｑｃ）と比較することで、サーバ１００から得た二件の一致のうちで、どちらが本来通信したいＢであるかを判断する（ステップ２１４）。
【０１３６】
図１１に示す例において、もし仮に、たとえばＣがＢの住んでいる市の名前Ｑｂを知っており、Ｃが悪意をもってＢになりすまそうと企てた場合、候補として残ったＣは、Ｃの端末１２０において自分の知っているＱｂ’からハッシュ値Ｈ（Ｑｂ’）を計算の上、Ａに返送し、Ｂになりすますことができてしまう。これを防ぐために、秘密鍵を使う鍵付きハッシュアルゴリズムを用いて、Ａの情報端末１０４がＢの情報端末１０６，およびＣの情報端末１２０に対してハッシュ値の要求をする際に、Ａの情報端末１０４がＢ用の秘密鍵ｓｂと、これとは別のＣ用の秘密鍵ｓｃを生成して、これらをそれぞれＢの端末１０６，Ｃの端末１２０に送った後、Ｂの情報端末１０６、Ｃの情報端末１２０はそれぞれＡより与えられた秘密鍵をもとにして、各々ハッシュ値Ｈｓｂ（Ｑｂ）、およびＨｓｃ（Ｑｃ）を計算してこれらをＡの端末１０４に返すようにする。Ｃは、ＡがＢに送った秘密鍵ｓｂを知らないので、たとえばＣがＢになりすます目的でＨｓｃ（Ｑｂ）をＡの端末１０４に送ったとしても、Ａの端末１０４で計算したＢの端末１０６からＡの端末１０４に返送される鍵付きハッシュ値の期待値Ｈｓｂ（Ｑｂ）と、Ｃから返送されたＨｓｃ（Ｑｂ）とは等しくないので、ＣからＢを装って返送されたハッシュ値が、Ｂから返送されたものではないと区別することができる。
【０１３７】
また、もし仮に、図１１に示す例において、Ｐｂ＝ＰｃかつＱｂ＝Ｑｃであるような場合は、このハッシュ照合の結果一致する者が複数出る結果、上記のような方法でハッシュ照合をしてもなお通信したい相手Ｂが一意に特定できない。このような場合には、さらにＡの端末１０４のデータベース２１に保持されているＢの名前、住んでいる市の名前以外の個人情報のハッシュをＢの情報端末１０６およびＣの情報端末に要求し、それをＡの情報端末１０４が照合する上記のステップを、Ａの情報端末１０４がＢの情報端末１０６を一意に特定できるまで繰り返すことによって、本来通信したいＢの情報端末１０６を一意に特定することができる。
【０１３８】
（実施形態５）ＩＰ電話、ネットワークゲーム、ＳＮＳなどの、ネットワークに接続された情報端末を利用して特定の個人間でのコミュニケーションやデータのやりとりをするネットワークサービスが、通信相手の検索も含めて、Ｐ２Ｐ接続で実現されている場合がある。
【０１３９】
従来の方法では、このネットワークサービスでＡの端末が通信したい相手Ｂの端末を検索する場合、まず、電子メールアドレスなどのＢの端末を一意に特定できるＢの個人情報の検索を、Ａが直接Ｐ２Ｐ接続している端末（近接ノード）に問い合わせ（クエリ）を出す。もし近接ノードにクエリの情報との一致がない場合、クエリを受け取った近接ノードは、そのノードからみた別の近接ノードにこのクエリを転送する。ここでもなければまた更にそのノードからみた近接ノードへ、というようにバケツリレー式にクエリを転送し、Ｂの個人情報に出会うまでこれを繰り返すことでＢを検索する。Ｂの個人情報を持った端末は、Ａに対してＢとのＰ２Ｐ接続に必要な情報を返すことで、ＡとＢの間で新たなＰ２Ｐ接続が実現する。この場合は、Ａの端末またはＢの端末への接続に必要な情報をこの検索クエリを中継する端末で入手できる危険が大きく、機密性が保てない、あるいは検索されたくない相手に検索されることを防げない、という問題があった。
【０１４０】
図１１は、本発明の他の一実施形態である。本実施形態に係る本発明のシステム及び方法は、このようなサーバを介さないＰ２Ｐ網での、通信相手の検索でも有効である。なお、実施形態１乃至３に係る本発明のシステム及び方法と同様の構成要素については、同じ符号を付し、改めて説明しない場合がある。
【０１４１】
図１１に示す例における、Ｐ２Ｐネットワークサービスの利用者は、自分の名前と自分が通信しても良いと思う相手の名前の文字列結合をハッシュ関数によって演算し、その演算結果であるハッシュ値を生成して、各自の端末に保持しておく。たとえば図１１では、Ａの情報端末１０４に記憶・保持されているデータベース２１にはＢ，Ｄ、ＥというＡが知る三名の友人の個人情報として名前Ｐｂ’、Ｐｄ’、Ｐｅ’が登録されている。図１１に示す状態は、ＡはＢ、ＤおよびＥと通信してもよいということを示している。またＢの情報端末１０６のデータベース２２には、Ａ、Ｆ、およびＧというＢが知る三名の友人の個人情報として名前Ｐａ’、Ｐｆ’、およびＰｇ’が記憶・保持されている。
【０１４２】
ただし、各情報（本実施形態５においては、名前）の右上につけた「ダッシュ」は、各端末の所有者がその端末において記憶・保持している他人の情報であることを表す。たとえば図１１ではＰｂ’はＡがＡの端末１０４で記憶・保持しているＢの名前を意味している。また、Ｐｂは、ＢがＢの端末１０６で記憶・保持しているＢ自身の名前であることを意味している。通常であればＰｂ’＝Ｐｂであるが、たとえばどちらか端末に記憶・保持されている情報が間違っていたり、古かったりして、これが常に成立するとは限らない。
【０１４３】
図１１で、利用者Ａの情報端末１０４では、演算手段１１０ａが、データベース２１に記憶・保持されているＢの名前を表す文字列Ｐｂ’と、データベース２１に記憶・保持されているＡ自身の名前を表す文字列Ｐａとの結合Ｐｂ’＋Ｐａを生成し、更にこの結合文字列に対してＳＨＡ−１、ＭＤ５などといった任意のハッシュ関数による演算を施した結果Ｈ（Ｐｂ’＋Ｐａ）をデータベース２１に記憶・保持する。ここでは、結合列文字列をハッシュ関数Ｈによって処理した演算結果をＨ（Ｐｂ’＋Ｐａ）と表す。同様に、Ａの情報端末１０４において、演算手段１１０ａは、ＤとＡ、ＥとＡの各々の名前を表す文字列を結合した上ハッシュ関数で演算を施した演算結果Ｈ（Ｐｄ’＋Ｐａ）、Ｈ（Ｐｅ’＋Ｐａ）を生成し、データベース２１に記憶・保持する。
【０１４４】
ここで、本実施形態においては、Ａの端末１０４に記憶されている、他者の名前よび自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、ＰａはＡの端末１０４で記憶されているＡの名前であり、Ｐｂ’、Ｐｄ’およびＰｅ’はＡの端末１０４で記憶されている各々Ｂ、Ｄ、およびＥの名前というように、すべて名前という同じ属性の個人情報を用いたが、ＰａはＡの名前、Ｐｂ’はＢの住所、Ｐｄ’はＤの電話番号、Ｐｅ’はＥの年齢というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【０１４５】
また、本実施形態においては、たとえばＰｂ’とＰａの文字列結合という操作をおこなった上でハッシュ関数による演算結果Ｈ（Ｐｂ’＋Ｐａ）を用いたが、この演算結果はＰｂ’とＰａをもとにして結果が一意に決まる任意の演算結果Ｆ（Ｐｂ’、Ｐａ）であってもよい。この任意の演算Ｆ（Ｐｂ’、Ｐａ）は可逆演算、すなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できるものでも、非可逆演算、すなわちすなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できないものであってもよい。また、この任意の演算Ｆ（Ｐｂ’、Ｐａ）は、可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）＝Ｆ（Ｐａ、Ｐｂ’）であっても、非可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）≠Ｆ（Ｐａ、Ｐｂ’）であってもよい。本実施形態で用いた文字列結合のハッシュ演算Ｈ（Ｐｂ’、Ｐａ）は、任意の演算Ｆ（Ｐｂ’、Ｐａ）のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。本実施形態、およびこれ以降示すすべての実施形態で用いられる文字列結合のハッシュ関数の演算結果も、すべてここで述べた任意の関数の演算結果であってもよい。
【０１４６】
同様に、図１１で、利用者Ｂの情報端末１０６では、演算手段１１２ａが、データベース２２に記憶・保持されているＡの名前を表す文字列Ｐａ’と、データベース２２に記憶・保持されているＢ自身の名前を表す文字列Ｐｂとの結合Ｐａ’＋Ｐｂを生成し、更にこの結合文字列に対してＳＨＡ−１、ＭＤ５などといった任意のハッシュ関数による演算を施した結果Ｈ（Ｐａ’＋Ｐｂ）を生成し、データベース２２に記憶・保持する。このＢの情報端末１０６で行われる結合文字列のハッシュ演算Ｈは、如何なるハッシュ演算であってもよいが、Ａの情報端末１０４で行われるハッシュ演算Ｈと同じ演算Ｈであることが要求される。同様に、Ｂの情報端末１０６において、演算手段１１２ａは、ＦとＢ，ＧとＢ、の各々の名前の文字列結合のハッシュ演算結果Ｈ（Ｐｆ’＋Ｐｂ）、およびＨ（Ｐｇ’＋Ｐｂ）を生成し、これらの三つの演算結果Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｆ’＋Ｐｂ）、およびＨ（Ｐｇ’＋Ｐｂ）をデータベース２２に記憶・保持する。
【０１４７】
ここで、本実施形態においては、Ｂの端末１０６に記憶されている、他者の名前および自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ここで用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような情報であってもよい。またここで、ＰｂはＢの端末１０６で記憶されているＢの名前であり、Ｐａ’、Ｐｆ’およびＰｇ’はＢの端末１０６で記憶されている各々Ａ、Ｆ、およびＧの名前というように、すべて名前という同じ属性の個人情報を用いたが、ＰｂはＢの名前、Ｐａ’はＡの住所、Ｐｆ’はＦの電話番号、Ｐｇ’はＧの職業というように、異なる属性の個人情報の組み合わせでもよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【０１４８】
ここの状態で、Ｂの情報端末１０６を検索しようとするＡの情報端末１０４のハッシュ値生成手段１１０ａは、ハッシュ値Ｈ（Ｐａ＋Ｐｂ’）を生成する。そして、Ａの情報端末１０４は、生成したハッシュ値Ｈ（Ｐａ，Ｐｂ’）に、たとえば、Ｂの公開鍵で暗号化するなどした、Ａとの接続に必要な情報を付加して、近接ノードＪ（Ｊの情報端末１２２）および近接ノードＫ（Ｋの情報端末１２４）にＨ（Ｐａ＋Ｐｂ’）の検索依頼のクエリ４３を出す。これら隣接ノード（Ｊの情報端末１２２及びＫの情報端末１２４）でＨ（Ｐａ＋Ｐｂ’）を持っていなければ、これらＪおよびＫの情報端末の近接ノードに対して、このクエリを転送する。たとえば、利用者Ｊの情報端末１２２は、その隣接ノードである利用者Ｌの情報端末にＡからのクエリを転送する。このようにして、ＡがＢの検索依頼のために発行したクエリは、バケツリレー的に転送され、Ｂの情報端末１０６にこのクエリが到達した時にはじめて、Ｂの情報端末１０６はハッシュ値の一致、すなわちＨ（Ｐａ’＋Ｐｂ）＝Ｈ（Ｐａ＋Ｐｂ’））を検出する。この一致によって、Ｂの情報端末１０６は、Ｂの公開鍵で暗号化されたＡの端末１０４への接続に必要な情報を、この公開鍵と対となる私有鍵で復号化することで、Ａの端末１０４への接続に必要な情報を得た上、これを使ってＡの情報端末１０４に対してＢの情報端末１０６との接続に必要な情報を送付することで、Ａの情報端末１０４とＢの情報端末１０６との間のＰ２Ｐ接続４４が実現する。
【０１４９】
なお、本実施形態では、Ａの端末１０４がＰ２Ｐネットワークの隣接ノードに問い合わせる情報Ｈ（Ｐａ＋Ｐｂ’）として、Ａの端末に記憶されているＡ自身の名前とＢの名前というように、同じ属性の個人情報の組み合わせのハッシュという演算結果を用いたが、たとえばＰａとしてＡの電話番号、Ｐｂ’としてＢの住所、というように属性の異なる個人情報を組み合わせて、そのハッシュ値をサーバ１００に問い合わせても良い。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。この場合でも、Ａの端末１０４から隣接ノードを経由してＰ２Ｐネットワークに対して問い合わせるハッシュ値と、Ｂの情報端末１０６がＢの情報端末１０６に記憶・保持している個人情報の組み合わせのハッシュ値が等しい（Ｈ（Ｐａ＋Ｐｂ’）＝Ｈ（Ｐａ’＋Ｐｂ））なら、Ｂの情報端末１０６は、Ａの情報端末１０４に対してＢとの接続に必要な情報をＡの情報端末１０４に送る。
【０１５０】
また、本実施形態５においては、たとえばＰｂ’とＰａの文字列結合という操作をおこなった上でハッシュ関数による演算結果Ｈ（Ｐｂ’＋Ｐａ）を用いたが、この演算結果はＰｂ’とＰａをもとにして結果が一意に決まる任意の演算結果Ｆ（Ｐｂ’、Ｐａ）であってもよい。この任意の演算Ｆ（Ｐｂ’、Ｐａ）は可逆演算、すなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できるものでも、非可逆演算、すなわちすなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できないものであってもよい。ただし、ここで用いる任意の演算が可逆演算の場合には、上に述べた守秘性は保証されない。また、この任意の演算Ｆ（Ｐｂ’、Ｐａ）は、可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）＝Ｆ（Ｐａ、Ｐｂ’）であっても、非可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）≠Ｆ（Ｐａ、Ｐｂ’）であってもよい。本実施形態で用いた文字列結合のハッシュ演算Ｈ（Ｐｂ’、Ｐａ）は、任意の演算Ｆ（Ｐｂ’＋Ｐａ）のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。
【０１５１】
（実施形態６）図１２は、本発明の他の一実施形態である。現在使われているＩＰ電話や携帯電話など通信端末の利用者が使っている端末の電話帳５１にある名前、電話番号などの他者の個人情報は、従来の方法によれば、口頭や電子メールなどの別の通信手段によって各々の端末の利用者が入手し、自ら入力、蓄積したものである。従って、従来の方法では、これらの電話帳にある個人情報は、端末内のみで利用されるだけであり、たとえば電話帳に蓄積された情報をもとにした検索や、通話以外の様々なネットワークサービスに利用されることはなかった。これは、個々の端末に蓄積された電話帳にある他者の個人情報は、端末所有者だけが利用できるべきものであり、従来の方法によれば、これを検索やネットワークサービスに利用しようとすれば、これを携帯電話事業者などに開示することが必要だったためである。
【０１５２】
図１２に示す本実施形態に係る本発明のシステム及び方法においては、Ａの情報端末及びＢの情報端末は、それぞれ、携帯電話１２８及び１３０である。なお、本実施形態においては、Ａの情報端末及びＢの情報端末は、それぞれ、携帯電話１２８及び１３０として説明しているが、これに限定されるわけではなく、ＰＤＡ、ノートパソコン、ゲーム機、またはカメラ等で任意の種類の情報端末であってもよい。
【０１５３】
本実施形態に係る本発明のシステムおよび方法においては、図１２に示すように、Ａの情報端末１２８は、Ａの情報端末１２８の電話番号帳に載っている人の各々の名前Ｐｂ’、Ｐｃ’、Ｐｄ’と、Ａ自身の名前Ｐａとの結合のハッシュ値Ｈ（Ｐｂ’＋Ｐａ）、Ｈ（Ｐｃ’＋Ｐａ）、Ｈ（Ｐｄ’＋Ｐａ）を生成し、Ａの電話番号などの接続情報に関連づけて携帯電話事業者のサーバ１００に送信し、データベース１０２に記憶・保持させ、登録しておく。また、Ｂの情報端末１３０は、Ｂの情報端末１３０の電話番号帳に載っている人の名前Ｐａ’、Ｐｅ’、Ｐｆ’と、Ｂ自身の名前Ｐｂとの結合のハッシュ値Ｈ（Ｐａ’＋Ｐｂ）、Ｈ（Ｐｅ’＋Ｐｂ）、Ｈ（Ｐｆ’＋Ｐｂ）を生成し、Ｂの電話番号などの接続情報に関連づけてサービス事業者のサーバ１００に送信し、データベース１０２に記憶・保持させ、登録しておく。これと同様に、このネットワークサービスを利用する任意のＩＰ電話もしくは携帯電話利用者の情報端末から、このＡの情報端末１２８とＢの情報端末１３０と同じやりかたで端末の所有者とその携帯電話帳に載っている各々の相手との結合のハッシュを生成し、サーバ１００に送信し、データベース１０２に記憶・保持させ、登録しておく。
【０１５４】
図１２に示す例において、たとえばＡがＢを検索しようとする場合、Ａの情報端末１２８は、ハッシュ値Ｈ（Ｐａ＋Ｐｂ’）を検索ノードであるサーバ１００に問い合わせる。サーバ１００は、Ｂの情報端末１３０から送信されたハッシュ値Ｈ（Ｐａ’＋Ｐｂ）と登録されているハッシュ値とが一致するかどうかを検証する。このＡの情報端末１２８からの問い合わせに対して、サーバ１００がＢの情報端末１３０から送信されたハッシュ値Ｈ（Ｐｂ＋Ｐａ’）と登録されているハッシュ値と一致を検出すれば、すなわちＨ（Ｐｂ’＋Ｐａ）＝Ｈ（Ｐｂ＋Ｐａ’）であれば、Ｂの情報端末１３０の電話番号などの接続情報をＡの情報端末１２８に送ることで、ＡからＢへの通話が可能となる。
【０１５５】
このような状態では、各利用者が、その持っている電話帳という個人情報を携帯電話事業者に対してさえ一切開示することなく、個々の携帯電話の電話帳に載っている相手のみから検索される、という安全性の高い検索が実現でき、しかもその検索結果をもとにした安全な接続が実現できる。
【０１５６】
なお、本実施形態６においても、ＡやＢが、自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ＡやＢが同様の操作をおこなう場合に用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような個人情報であってもよい。
【０１５７】
また、本実施形態６においては、たとえばＰｂ’とＰａの文字列結合という操作をおこなった上でハッシュ関数による演算結果Ｈ（Ｐｂ’＋Ｐａ）を用いたが、この演算結果はＰｂ’とＰａをもとにして結果が一意に決まる任意の演算結果Ｆ（Ｐｂ’、Ｐａ）であってもよい。この任意の演算Ｆ（Ｐｂ’、Ｐａ）は可逆演算、すなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できるものでも、非可逆演算、すなわちすなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できないものであってもよい。ただし、ここで用いる任意の演算が可逆演算の場合には、上に述べた守秘性は保証されない。また、この任意の演算Ｆ（Ｐｂ’、Ｐａ）は、可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）＝Ｆ（Ｐａ、Ｐｂ’）であっても、非可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）≠Ｆ（Ｐａ、Ｐｂ’）であってもよい。本実施形態で用いた文字列結合のハッシュ演算Ｈ（Ｐｂ’＋Ｐａ）は、任意の演算Ｆ（Ｐｂ’、Ｐａ）のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。
【０１５８】
（実施形態７）図１３を用いて、本発明の他の一実施形態を説明する。本実施形態においては、図１３に示すように、すべての利用者Ａ、Ｂ、Ｃ、Ｄ、ＥおよびＦの情報端末がネットワークに接続されている。利用者Ａ、Ｂ、Ｃの情報端末１０４、１０６及び１２０は、ネットワークサービスＸでの通信を行っている。一方、利用者Ｃ、Ｄ、Ｅの情報端末１２０、１２８及び１３０は、ネットワークサービスＹでの通信を行っている。本実施形態においては、ネットワークサービスＸとネットワークサービスＹとはそれぞれ独立している。
【０１５９】
たとえば、ネットワークサービスＸの利用者であるＡがネットワークサービスＸの利用者であるＢを検索する際には、従来の方法を用いている。すなわち、Ａの情報端末１０４が、ネットワークサービスＸの用意している検索用インデックスサーバ６１に対し、Ａの情報端末１０４があらかじめ持っていて、かつＢの情報端末１０６があらかじめこのインデックスサーバ６１に登録した個人情報そのものの検索を依頼し、インデックスサーバ６１がＡの情報端末１０４からの検索依頼と、Ｂからあらかじめ登録されたＢの個人情報の一致を検出すると、インデックスサーバ６１からネットワークサービスＸ上でのＢの認識票またはＢへの接続に必要な情報をＡの情報端末１０４に通知することで、中継サーバを経由して、もしくはＰ２Ｐで直接接続するなどしてＡの情報端末１０４からＢの情報端末１０６への通信が確立する。
【０１６０】
また、ネットワークサービスＹの利用者同士の検索においても、検索者はネットワークサービスＹのインデックスサーバ６２を利用して上記と同様の手順で通信相手を従来の被験者の個人情報そのものを直接検索する方法によって検索することにより、被検索者へのネットワークサービスＹ上での接続に必要な情報を入手した上で、通信を確立する。
【０１６１】
しかし、ネットワークサービスＸとネットワークサービスＹとは独立したネットワークサービスである。よって、独立したネットワークサービスの利用者間で検索し、通信を確立するためには、従来の方法によれば、ネットワークサービスＸ、ネットワークサービスＹの双方のインデックスサーバにある検索用の個人情報と接続情報を統合したデータベースを作成し、ネットワークサービスＸまたはネットワークサービスＹの利用者がその統合したデータベースに対して検索を依頼するか、または、ネットワークサービスＸの利用者へのネットワークサービスＹのインデックスサーバ６２の解放、または逆にネットワークサービスＹの利用者へネットワークサービスＸのインデックスサーバＸの解放が不可欠であった。
【０１６２】
たとえば、従来の方法では、ネットワークサービスＸのみの利用者であるＡの端末１０４から、ネットワークサービスＹのみの利用者Ｅの端末１３０を検索して、通信を確立するためには、Ａは、ネットワークサービスＸとネットワークサービスＹのインデックスサーバが統合されたデータベース、すなわちＸ、Ｙの利用者全ての個人情報と接続情報を含む新たなデータベースに対して問い合わせを行うか、またはＡの端末１０４によるネットワークサービスＹのインデックスサーバ６２への検索、認証、接続情報提供の依頼などを許可する必要があった。つまり、異なるネットワークサービス間での相互検索や接続をする場合、ネットワークサービスＸとネットワークサービスＹの独立性は保てないという問題があった。
【０１６３】
しかし、異なるネットワークサービスは、異なる事業者によって運営されている場合がほとんどであり、インデックスサーバにある利用者の個人情報が事業者にとっての貴重な資産であるだけでなく、サービス運営事業者は通常利用者の個人情報についての秘密保持義務を負う。このため、従来の方法で必要なインデックスサーバの統合や、他のプロトコル利用者へのインデックスサーバの解放はほとんどの場合、事業的観点から現実的ではなかった。
【０１６４】
本実施形態７に係る本発明のシステム及び方法においては、図１３に例示するように、異なるプロトコル間の独立性を保ち、かつ利用者に相互接続の利便性を提供する、本発明の一実施形態を説明する。いま、図１３における利用者Ａ，Ｂ，Ｃ、Ｄ、Ｅはすべて互いに友人であり、これらの利用者の情報端末１０４、１０６、１２０、１２８及び１３０には、これら友人の名前が友人名簿として登録されているとする。たとえば、図１３において、Ａ１０４の端末に記憶・保持されているＣの名前はＰｃ’と表記されている。
【０１６５】
本実施形態７に係る本発明のシステム及び方法においては、ネットワークサービスＸの利用者とネットワークサービスＹの利用者の相互接続を実現するために、共通検索サーバ１００を用いる。いま、この共通検索サーバによって検索をおこなった結果から相互接続をおこなうサービスを、ネットワークサービスＺと新たに定義する。Ａは、友人名簿にはあるが、ネットワークサービスＸの利用者ではないＤの名前Ｐｄ’およびＥの名前Ｐｅ’と、自分の名前Ｐａの文字列結合のハッシュ関数による演算結果であるハッシュ値Ｈ（Ｐｄ’＋Ｐａ）およびＨ（Ｐｅ’＋Ｐａ）を共通検索サーバ１００に登録する。同様に、ＢはＨ（Ｐｄ’＋Ｐｂ）とＨ（Ｐｅ’＋Ｐｂ）を、ＤはＨ（Ｐａ’＋Ｐｄ）とＨ（Ｐｂ’＋Ｐｄ）を、またＥはＨ（Ｐａ’＋Ｐｅ）とＨ（Ｐｂ’＋Ｐｅ）６４をそれぞれ、共通検索サーバ１００に登録する。これらすべてのハッシュ値には、登録した者が、各々の使っているネットワークサービスＸおよびＹを超えて、ネットワークサービスＺ上で唯一に特定できる認識票ＩＤａ、ＩＤｂ、ＩＤｄ、およびＩＤｅ、またはハッシュ値の提出者に接続するための情報などを関連づけて保持しておく。
【０１６６】
このように各自がハッシュ値とその接続情報を登録しても、共通検索サーバ１００には、認識票等が関連づけられた名前の組み合わせのハッシュ値が登録されているだけであり、ネットワークサービスＸの運営者またはネットワークサービスＹの運営者が管理している、ネットワークサービスＸの利用者またはネットワークサービスＹの利用者のいずれの個人情報は登録されていない。したがって、ネットワークサービスＸ、ネットワークサービスＹは独立し、なおかつ共通検索サーバ、すなわちネットワークサービスＺの運営者がネットワークサービスＸの運営者、ネットワークサービスＹの運営者各々の所有する個人情報を入手する手段を持たない。また、いずれの利用者も個人情報を検索用に公開する必要もない。
【０１６７】
このような状態で、ネットワークサービスＸの利用者であるＡがネットワークサービスＹの利用者であるＥを検索して接続したい場合について説明する。Ａの情報端末１０４は、共通検索サーバ１００に対してＡの名前Ｐａと相手の名前Ｐｅ’を文字列結合したもののハッシュ値Ｈ（Ｐａ＋Ｐｅ’）を送信し、検索を依頼６５する。共通検索サーバ１００では、Ｅからあらかじめ登録されたハッシュ値との一致、すなわちＨ（Ｐａ＋Ｐｅ’）＝Ｈ（Ｐａ’＋Ｐｅ）を検出する。その結果、ＸおよびＹからは独立したネットワークサービスＺ上でのＥの認識票ＩＤｅ、またはＥへの接続に必要な情報をＡの情報端末１０４に対して通知６７した上、Ａの情報端末１０４はＥの情報端末１３０へサーバ経由、またはＰ２Ｐ接続によってネットワークサービスＺ上で通信を確立する。
【０１６８】
なお、本実施形態７においても、ＡやＢが、自分自身の名前の文字列結合のハッシュ関数による演算結果を用いたが、ＡやＢが同様の操作をおこなう場合に用いる個人情報は、名前に限定されず、住所、年齢、電話番号、電子メールアドレス、職業、勤務先、出身校、出生地など、どのような個人情報であってもよい。また、たとえばＨ（Ｐａ＋Ｐｅ’）やＨ（Ｐａ’＋Ｐｅ）などにおいて組み合わせる個人情報は、名前同士のように、同じ属性の個人情報でなくともよい。さらに、ここで用いる情報は、一般に個人情報と呼ばれる個人を特定できる情報である必要もなく、通信する者同士があらかじめ決めた合い言葉のような一般の情報でもよい。
【０１６９】
また、本実施形態７においては、たとえばＰｂ’とＰａの文字列結合という操作をおこなった上でハッシュ関数による演算結果Ｈ（Ｐｂ’＋Ｐａ）を用いたが、この演算結果はＰｂ’とＰａをもとにして結果が一意に決まる任意の演算結果Ｆ（Ｐｂ’、Ｐａ）であってもよい。この任意の演算Ｆ（Ｐｂ’、Ｐａ）は可逆演算、すなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できるものでも、非可逆演算、すなわちすなわちＦ（Ｐｂ’、Ｐａ）からＰｂ’およびＰａを逆算できないものであってもよい。ただし、ここで用いる任意の演算が可逆演算の場合には、上に述べた守秘性は保証されない。また、この任意の演算Ｆ（Ｐｂ’、Ｐａ）は、可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）＝Ｆ（Ｐａ、Ｐｂ’）であっても、非可換な演算、すなわちＦ（Ｐｂ’、Ｐａ）≠Ｆ（Ｐａ、Ｐｂ’）であってもよい。本実施形態で用いた文字列結合のハッシュ演算Ｈ（Ｐｂ’＋Ｐａ）は、任意の演算Ｆ（Ｐｂ’、Ｐａ）のなかで非可換かつ非可逆な演算を用いた一例に過ぎない。
【０１７０】
共通検索サーバで検索後のＡの情報端末１０４とＥの情報端末１３０との間の通信には、上記のようにＸ、Ｙから独立したネットワークサービスＺを使ってもよいし、あるいはネットワークサービスＸとネットワークサービスＹの両方で通信可能なＣの端末６８を中継ノードとしてネットワークサービスＸ、ネットワークサービスＹの両方を使ってもよい。
この場合でも、ネットワークＸの運営者、ネットワークＹの運営者にとって、各々の所有する個人情報を共通検索サーバの運営者を含む他者に開示する必要がなく、各々の運営者の独立は維持された状態で、ネットワークサービスを超えた相互接続サービスが提供できる。
【０１７１】
図１３では、共通検索サーバ１００には各自の端末にある友人名簿の中で、自分の使っていないネットワークサービスにある者の名前と、自分の名前のハッシュ値のみを登録したが、同じネットワークサービスを利用している友人も含めて各自の友人名簿にある名前のすべてと、自分の名前のハッシュ値を共通検索サーバに登録しておいても良い。このようにしても、各ネットワークサービスの独立性は同様に保たれ、なおかつネットワークサービスＸ、ネットワークサービスＹ各々の運営者が所有する利用者の個人情報を開示する必要もない。
【０１７２】
また、図１３では利用者の個人情報を保管し検索を担う機能は、インデックスサーバや共通検索サーバなどのサーバでの集中管理としているが、Ｐ２Ｐ網などのように、複数の端末に分散した状態で情報の保管や検索をおこなうネットワークにも、本発明は適用できる。
【０１７３】
このように本発明によれば、通信端末同士が安全かつ自動的に通信を確立できるので、通信端末同士の自動的な情報のやりとりをもとに、様々なサービスが実現される。
【図面の簡単な説明】
【０１７４】
【図１】従来の方法による通信相手検索方法を示す図である。
【図２】本発明の一実施形態によるシステムを示す図である。
【図３】本発明の一実施形態によるサーバの構成を示す図である。
【図４】本発明の一実施形態による情報端末Ａの構成を示す図である。
【図５】本発明の一実施形態による情報端末Ｂの構成を示す図である。
【図６】本発明の一実施形態による方法を示すフローチャートである。
【図７】本発明の一実施形態によるシステムを示す図である。
【図８】本発明の一実施形態によるシステムを示す図である。
【図９】本発明の一実施形態によるシステムを示す図である。
【図１０】本発明の一実施形態によるシステムを示す図である。
【図１１】本発明の一実施形態によるシステムを示す図である。
【図１２】本発明の一実施形態によるシステムを示す図である。
【図１３】本発明の一実施形態によるシステムを示す図である。
【符号の説明】
【０１７５】
１００    サーバ    １０２    データベース    １０４    利用者Ａの情報端末    １０６    利用者Ｂの情報端末    １０８    データ処理手段    １０８ａ  送受信手段    １０８ｂ  テーブル作成手段    １０８ｃ  検索手段    １１０    データ処理手段    １１０ａ  演算手段    １１０ｂ  送受信手段    １１２    データ処理手段    １１２ａ  演算手段    １１２ｂ  送受信手段
【図１】
0005531196.tif 000002
【図２】
0005531196.tif 000003
【図３】
0005531196.tif 000004
【図４】
0005531196.tif 000005
【図５】
0005531196.tif 000006
【図６】
0005531196.tif 000007
【図７】
0005531196.tif 000008
【図８】
0005531196.tif 000009
【図９】
0005531196.tif 000010
【図１０】
0005531196.tif 000011
【図１１】
0005531196.tif 000012
【図１３】
0005531196.tif 000013
【図１２】
0005531196.tif 000014