(57)【特許請求の範囲】
【請求項１】
ネットワークを介して通信するように構成された、データソース・コンピュータ、トークン化コンピュータ、およびデータ収集コンピュータを含むデータ・トークン化システムであって、
前記データソース・コンピュータは、前記データ収集コンピュータに送信するための、関連ＩＤデータを有するメッセージ・データを用意し、さらに、ノンスを使って前記ＩＤデータをブラインド化することによってブラインドＩＤを生成し、前記ブラインドＩＤを前記トークン化コンピュータに送信し、前記ノンスおよび前記メッセージ・データを、前記データ収集コンピュータによって受信されるように前記ネットワークを介して送信するように構成され、
前記トークン化コンピュータは、前記ブラインドＩＤの受信に応じ、前記ブラインドＩＤから、前記ノンスでブラインド化された前記ＩＤデータの関数および前記トークン化コンピュータの秘密鍵を含むブラインド・トークンを生成し、前記ブラインド・トークンを前記データ収集コンピュータに送信するように構成され、
前記データ収集コンピュータは、前記トークン化コンピュータからの前記ブラインド・トークンと、前記データソース・コンピュータによって送信された前記ノンスおよび前記メッセージ・データとの受信に応じ、前記ＩＤデータの確定関数および前記秘密鍵を含むＩＤトークンを得るべく前記ブラインド・トークンを可視化するため前記ノンスを使用し、前記ＩＤトークンおよび前記メッセージ・データを、前記データ収集コンピュータに動作可能に連結されたストレージ中に格納するように構成される、
システム。
【請求項２】
前記データソース・コンピュータは、前記ブラインドＩＤが値Ｒ＝Ｆ（Ｎ，ｈ）を含むように構成され、このＦは所定の関数であり、Ｎは前記ノンスであり、ｈは前記ＩＤデータの関数であり、
前記トークン化コンピュータは、前記ブラインド・トークンが値Ｒ’＝Ｆ（ｋ，Ｒ）を含むように構成され、このｋは前記秘密鍵であり、
前記データ収集コンピュータは、前記ＩＤトークンが値Ｆ（ｎ，Ｒ’）を含むように構成され、このｎは前記ノンスＮの関数であり、
前記所定の関数Ｆは、Ｆ（ｎ，Ｒ’）＝Ｆ’（ｋ，ｈ）となるような関数であり、このＦ’は前記確定関数である、
請求項１に記載のシステム。
【請求項３】
前記所定の関数Ｆが、Ｆ（ｘ，ｙ）＝ｙｘとなるような関数であり、前記関数ｎが値Ｎ−１を含む、請求項２に記載のシステム。
【請求項４】
前記トークン化コンピュータが、値ｋ’／ｋを含むトークン更新データΔを生成するため、新規の秘密鍵ｋ’を周期的に生成し、前記トークン更新データΔを前記データ収集コンピュータに送信するようにさらに構成され、
前記データ収集コンピュータが、前記トークン更新データΔの受信に応じて、前記ストレージ中の前記ＩＤトークンｔｏｋを、値ｔｏｋΔを含む更新されたトークンによって置き換えるようにさらに構成される、
請求項３に記載のシステム。
【請求項５】
前記関数ｈが前記ＩＤデータのハッシュを含む、請求項２に記載のシステム。
【請求項６】
前記データソース・コンピュータが、前記データ収集コンピュータに送信するための前記メッセージ・データに対するセッション識別子を選択し、前記ブラインドＩＤとともに前記セッション識別子を前記トークン化コンピュータに送信し、前記セッション識別子、前記メッセージ・データ、および前記ノンスを前記データ収集コンピュータに送信するようにさらに構成され、
前記トークン化コンピュータが、前記ブラインド・トークンとともに前記セッション識別子を前記データ収集コンピュータに送信するようにさらに構成される、
請求項１に記載のシステム。
【請求項７】
前記データソース・コンピュータが、暗号データを生成するため前記メッセージ・データおよび前記ノンスを暗号化し、前記ブラインドＩＤとともに前記暗号データを前記トークン化コンピュータに送信するようにさらに構成され、
前記トークン化コンピュータが、前記暗号データを前記ブラインド・トークンとともに前記データ収集コンピュータに送信するようにさらに構成され、
前記データ収集コンピュータが、前記メッセージ・データおよび前記ノンスを復元するために前記暗号データを解読するようにさらに構成される、
請求項１に記載のシステム。
【請求項８】
複数の前記データ収集コンピュータを含む、請求項１に記載のシステム。
【請求項９】
ネットワークを介して、データ収集コンピュータにデータを供給するためのコンピュータ実装の方法であって、前記方法は、前記ネットワーク中のトークン化コンピュータと通信するように構成されたデータソース・コンピュータにおいて、
前記データ収集コンピュータに送信するための、関連するＩＤデータを有するメッセージ・データを用意するステップと、
ノンスを使って前記ＩＤデータをブラインド化することによってブラインドＩＤを生成するステップと、
前記トークン化コンピュータによって前記データ収集コンピュータに送信するための、前記ノンスでブラインド化された前記ＩＤデータの関数および前記トークン化コンピュータの秘密鍵を含むブラインド・トークンのブラインドＩＤからの生成のため、前記ブラインドＩＤを前記トークン化コンピュータに送信するステップと、
前記ノンスおよび前記メッセージ・データを、前記データ収集コンピュータが受信するように前記ネットワークを介して送信するステップと、を含み、
これらにより、前記データ収集コンピュータは、前記メッセージ・データに対する前記ＩＤデータの確定関数および前記秘密鍵を含むＩＤトークンを得るべく前記ブラインド・トークンを可視化するため前記ノンスを使ことが可能となる、
方法。
【請求項１０】
データソース・コンピュータによってネットワークを介してデータ収集コンピュータに供給するためのメッセージ・データに関連付けられた、ＩＤデータをトークン化するためのコンピュータ実装の方法であって、前記方法は、前記ネットワーク中のトークン化コンピュータにおいて、
前記データソース・コンピュータから、ノンスを使って前記ＩＤデータをブラインド化することによって生成されたブラインドＩＤを受信するステップと、
前記ブラインドＩＤから、前記ノンスでブラインド化された前記ＩＤデータの関数および前記トークン化コンピュータの秘密鍵を含む、ブラインド・トークンを生成するステップと、
前記ブラインド・トークンを前記データ収集コンピュータに送信するステップと、
を含み、
これらにより、前記データ収集コンピュータは、前記ノンスおよび前記メッセージ・データを受信すると、前記メッセージ・データに対する、前記ＩＤデータの確定関数および前記秘密鍵を含むＩＤトークンを得るべく前記ブラインド・トークンを可視化するため、前記ノンスを用いることが可能となる、
方法。
【請求項１１】
ネットワークを介してデータソース・コンピュータからデータを取得するためのコンピュータ実装の方法であって、前記方法は、前記ネットワーク中でトークン化コンピュータと通信するように構成されたデータ収集コンピュータにおいて、
前記データソース・コンピュータによって送信された、前記データソース・コンピュータでＩＤデータに関連付けられたメッセージ・データ、およびノンスを前記ネットワークを介して受信するステップと、
前記トークン化コンピュータから、前記データソース・コンピュータで、前記ノンスを使って前記ＩＤデータをブラインド化することによって生成されたブラインドＩＤから生成されたブラインド・トークンを受信するステップであって、前記ブラインド・トークンは、前記ノンスでブラインド化された前記ＩＤデータの関数、および前記トークン化コンピュータの秘密鍵を含む、前記受信するステップと、
前記ＩＤデータの確定関数および前記秘密鍵を含むＩＤトークンを得るべく前記ブラインド・トークンを可視化するため、前記ノンスを使用するステップと、
前記ＩＤトークンおよび前記メッセージ・データを、前記データ収集コンピュータに動作可能に連結されたストレージ中に格納するステップと、
を含む、方法。
【請求項１２】
コンピュータ・プログラムがコンピュータ上で実行されたとき、請求項９〜１１のいずれか一項に記載の方法を遂行するように構成されたプログラム・コード手段を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータのトークン化に関する。
【背景技術】
【０００２】
データのトークン化は、より信頼性の低い環境にデータを移す際にデータのセンシティビティを減じるために使われる技法である。例えば、データセットが外注される、または取引データなどのデータが何らかの目的のため収集または集合されるとき、法規制またはセキュリティ上の懸念から、国境を越えて、または信頼できない環境中にデータを移す前にはトークン化技法の使用が求められることが多い。具体的に、ネットワークを介して送信されるデータは、ソーシャル・セキュリティ番号、銀行口座番号、車両識別番号、または他の一意的識別記号など、データ・プロバイダから漏れてはならない識別情報を含み得る。このため、かかるＩＤデータは、他の、一般にはランダム様のデータ（トークン）に置き換えられる。データの使用性を全体として保つために、トークン化処理では参照の整合性が維持されなければならない。すなわち、トークン化オペレーションは、同じＩＤデータの全ての出現は一貫して同じトークンによって置き換えられるように確定的なプロセスでなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
昨今、いくつかのトークン化技法が提案され商業運用されている。典型的なアプローチは、代替、摂動、または変換表などの非暗号的方法に依拠するか、または鍵付きハッシュ関数もしくは確定的暗号化などの暗号メカニズムを使用する。全てのアプローチに共通なのは、これが、信頼できる環境で、すなわち信頼できるデータ・ソースそれ自体、またはデータ・ソースの信頼できるドメイン内の専用のエンティティによって行われるトークン化オペレーションを必要とすることである。これは、トークン化システムの実装に制約を課す。さらに、この前提は、データが、いろいろな、おそらくは広範に分散されたデータ・ソースから収集される場合、安全且つ効率的な仕方で実現するのは困難である。参照の整合性は、トークン化オペレーションが全データ・ソースに亘って一貫していることを必要とし、そのため、全データ・ソースが同じ秘密トークン化鍵を共有しなければならず、さらに悪いことには、共有の一貫した変換表のバージョンを保持しなければならない。より実際的なアプローチは、トークン化業務を、全てのトークン要求を取り扱う中央の信頼できるエンティティ、またはＴＴＰ（ｔｒｕｓｔｅｄ  ｔｈｉｒｄ  ｐａｒｔｙ（信頼できる第三者機関））に集中することである。その場合、ＴＴＰは、センシティブなＩＤデータを保護トークンに変換するサービスを提供する。現在のソリューションはＴＴＰへのＩＤデータの開示を必要とし、これは、ＴＴＰをセキュリティおよびプライバシのボトルネックにしている。例えば、トークン化が、複数の要求に応じもしくは複数のデータ・ソースに対し、またはその両方に対して動的な方法で行われる場合に、ＩＤデータに対応するユーザまたは他のエンティティの活動を認識し追跡できる単一のエンティティを有することは明らかに望ましくない
【課題を解決するための手段】
【０００４】
本発明の少なくとも１つの実施形態によれば、ネットワークを介して通信するように構成されたデータソース・コンピュータ、トークン化コンピュータ、およびデータ収集コンピュータを含むデータ・トークン化システムが提供される。データソース・コンピュータは、データ収集コンピュータに送信するための、関連するＩＤデータを有するメッセージ・データを用意し、また、データソース・コンピュータは、ノンスを使ってＩＤをブライド化することによってブラインドＩＤを生成するように構成される。データソース・コンピュータは、該ブラインドＩＤをトークン化コンピュータに送信し、ノンスおよびメッセージ・データを、データ収集コンピュータが受信するようにネットワークを介して送信するようにさらに構成される。トークン化コンピュータは、ブラインドＩＤの受信に応じ、該ブラインドＩＤから、前記ノンスでブラインド化された前記ＩＤデータの関数、およびトークン化コンピュータの秘密鍵を含むブラインド・トークンを生成し、そのブラインド・トークンをデータ収集コンピュータに送信するように構成される。データ収集コンピュータは、トークン化コンピュータからのブラインド・トークンと、データソース・コンピュータによって送信されたノンスおよびメッセージ・データとの受信に応じて、ＩＤデータの確定関数および秘密鍵を含むＩＤトークンを得るべくブラインド・トークンを可視化するためノンスを使用するように構成される。次いで、データ収集コンピュータは、そのＩＤトークンおよびメッセージ・データを、該データ収集コンピュータに動作可能に連結されたストレージ中に格納する。
【０００５】
本発明の諸実施形態においては、データ収集コンピュータに送信するための、他のデータ（本明細書では総称して「メッセージ・データ」と言う）に関連付けられたセンシティブなＩＤデータに対するＩＤトークンは、信頼できないドメインにおいて安全に生成することができる。トークン化コンピュータは、集中化されたトークン化点を提供するが、そのトークン化オペレーションは内容不知の仕方で実行する。該コンピュータは、トークン化されたＩＤデータについても、ブラインドで計算されたＩＤトークンについても何の情報も知らない。さらに、トークン化コンピュータは、２つのトークン要求が同じＩＤデータに対するものであるかどうかさえ判断できない。これは、所与のＩＤに対する要求をリンクすることによって諸活動を追跡することを防止し、しかして、諸イベントへのリンク可能性を利用することを狙った妨害アタックを防止する。同様に、データ収集コンピュータは、トークン化されたＩＤデータについて何も知らず、また、データ・ソースも得られたトークンについて何も知らない。しかして、本発明の諸実施形態は、安全且つ大いに実用的なデータ・トークン化システムを提供する。
【０００６】
本発明を具現化する諸システムは、各々が、前述のようにトークン化コンピュータおよびデータ収集コンピュータと通信するように構成された、複数のデータソース・コンピュータを容易に収容することができる。全ソースに対して確定型トークンを提供するために、保護トークン化オペレーションが内容不知の仕方で中央集中で行われているので、複数のデータ・ソースに亘ってトークン化鍵または他の保護トークン化情報を同期する必要はない。
【０００７】
好適な実施形態の或る効率的な実装において、データソース・コンピュータは、ブラインドＩＤが値Ｒ＝Ｆ（Ｎ，ｈ）を含むように構成され、このＦは所定の関数であり、Ｎはノンスであり、ｈはＩＤデータの関数である。トークン化コンピュータは、ブラインド・トークンが値Ｒ’＝Ｆ（ｋ，Ｒ）を含むように構成され、このｋは秘密鍵である。データ収集コンピュータは、ＩＤトークンが値Ｆ（ｎ，Ｒ’）を含むように構成され、このｎはノンスＮの関数である。ここで、所定の関数Ｆは、Ｆ（ｎ，Ｒ’）＝Ｆ’（ｋ，ｈ）となるような関数であり、このＦ’は、前述した確定関数である。或るとりわけ効率的な実装において、所定の関数ＦはＦ（ｘ，ｙ）＝ｙｘであるような関数であり、関数ｎは値Ｎ−１を含む。また、これは、簡単で効率的な鍵更新手順を使うことも可能にする。トークン化コンピュータは、新規の秘密鍵ｋ’を周期的に生成して、値ｋ’／ｋを含むトークン更新データΔを作成し、そのトークン更新データΔをデータ収集コンピュータに送信するようにさらに構成することができる。トークン更新データΔの受信に応じ、データ収集コンピュータは、単に、その関連ストレージ中のＩＤトークン（ｔｏｋと表す）を値ｔｏｋΔを含む更新トークンに置き換えることができる。このようにして、新規の鍵ｋ’の下で生成された新規トークンと、旧鍵ｋの下で生成された前に格納されていたトークンとの間の参照の整合性を維持しながら、必要に応じ、保護トークン化鍵を新たにすることができる。
【０００８】
本発明のそれぞれのさらなる実施形態は、前述したように、データ・トークン化システムのデータソース・コンピュータ、トークン化コンピュータ、およびデータ収集コンピュータによって行われる方法を提供する。
【０００９】
一態様によれば、ネットワークを介してデータ収集コンピュータにデータを供給するためのコンピュータ実装の方法が提供され、本方法は、前記ネットワーク中のトークン化コンピュータと通信するように構成されたデータソース・コンピュータにおいて、データ収集コンピュータに送信するための、関連するＩＤデータを有するメッセージ・データを用意するステップと、ノンスを使って前記ＩＤデータをブラインド化することによって、ブラインドＩＤを生成するステップと、トークン化コンピュータによってデータ収集コンピュータに送信するための、前記ノンスでブラインド化された前記ＩＤデータの関数およびトークン化コンピュータの秘密鍵を含むブラインド・トークンのブラインドＩＤからの生成のため、該ブラインドＩＤをトークン化コンピュータに送信するステップと、該ノンスおよび前記メッセージ・データを、データ収集コンピュータが受信するようにネットワークを介して送信するステップと、を含み、これらにより、データ収集コンピュータは、前記メッセージ・データに対する前記ＩＤデータの確定関数および前記秘密鍵を含む、ＩＤトークンを得るべく前記ブラインド・トークンを可視化するためノンスを使うことが可能となる。
【００１０】
別の態様によれば、データソース・コンピュータによってネットワークを介してデータ収集コンピュータに供給するためのメッセージ・データに関連付けられたＩＤデータをトークン化するためのコンピュータ実装の方法が提供され、本方法は、前記ネットワーク中のトークン化コンピュータにおいて、データソース・コンピュータから、ノンスを使って前記ＩＤデータをブラインド化することによって生成されたブラインドＩＤを受信するステップと、該ブラインドＩＤから、前記ノンスでブラインド化された前記ＩＤデータの関数、およびトークン化コンピュータの秘密鍵を含むブラインド・トークンを生成するステップと、そのブラインド・トークンをデータ収集コンピュータに送信するステップと、を含み、これらにより、データ収集コンピュータは、前記ノンスおよび前記メッセージ・データを受信すると、前記メッセージ・データに対する、前記ＩＤデータの確定関数および前記秘密鍵を含むＩＤトークンを得るべく前記ブラインド・トークンを可視化するため、該ノンスを用いることが可能となる。
【００１１】
別の態様によれば、ネットワークを介してデータソース・コンピュータからデータを取得するためのコンピュータ実装の方法が提供され、本方法は、前記ネットワーク中でトークン化コンピュータと通信するように構成されたデータ収集コンピュータにおいて、データソース・コンピュータによって送信された、データソース・コンピュータでＩＤデータに関連付けられたメッセージ・データ、およびノンスをネットワークを介して受信するステップと、トークン化コンピュータから、データソース・コンピュータで前記ノンスを使って前記ＩＤデータをブラインド化することによって生成されたブラインドＩＤから生成されたブラインド・トークンを受信するステップであって、該ブラインド・トークンは、前記ノンスでブラインド化された前記ＩＤデータの関数、およびトークン化コンピュータの秘密鍵を含む、該受信するステップと、前記ＩＤデータの確定関数および前記秘密鍵を含むＩＤトークンを得るべく前記ブラインド・トークンを可視化するため、ノンスを使用するステップと、このＩＤトークンおよび前記メッセージ・データを、データ収集コンピュータに動作可能に連結されたストレージ中に格納するステップと、を含む。
【００１２】
また、本発明はコンピュータ・プログラムとして実装することも可能である。
【００１３】
以降で、単に例示として、添付の図面を参照しながら本発明を説明する。
【図面の簡単な説明】
【００１４】
【図１】本発明の或る実施形態による、データ・トークン化システムの概略的表現である。
【図２】本発明の或る実施形態による、図１のシステムのコンピュータの一般化された概略図である。
【図３ａ】本発明の或る実施形態による、システム１において、データ・トークン化オペレーションで行われるステップを示す。
【図３ｂ】本発明の或る実施形態による、システム１において、データ・トークン化オペレーションで行われるステップを示す。
【図３ｃ】本発明の或る実施形態による、システム１において、データ・トークン化オペレーションで行われるステップを示す。
【図４ａ】トークン化システムの或る実施形態において行われるさらに詳細なステップを示す。
【図４ｂ】トークン化システムの或る実施形態において行われるさらに詳細なステップを示す。
【図４ｃ】トークン化システムの或る実施形態において行われるさらに詳細なステップを示す。
【図５】或る実施形態において行われる鍵更新手順のステップを示す。
【図６】トークン化システムのさらなる実施形態において行われるステップを示す。
【図７】トークン化システムのさらなる実施形態において行われるステップを示す。
【図８】トークン化システムのさらなる実施形態において行われるステップを示す。
【発明を実施するための形態】
【００１５】
図１のブロック図は、本発明を具現化する或る例示的なトークン化システムを示す。システム１は、複数のデータソース・コンピュータ２、ここではサーバ３によって実装されたトークン化コンピュータ、およびここではサーバ４によって実装されたデータ収集コンピュータを含む。データソース・コンピュータ２、トークン化サーバ３、およびデータ収集サーバ４は、ネットワーク５を介して通信するように構成され、ネットワーク５は、一般に１つ以上の構成ネットワークもしくはインターネットを含むインターネットワーク、またはその両方を含み得る。
【００１６】
システム１のオペレーションにおいて、データ収集（ＤＣ：ｄａｔａ−ｃｏｌｌｅｃｔｉｏｎ）サーバ４は、データ・ソース（ＤＳ：ｄａｔａ−ｓｏｕｒｃｅ）コンピュータ２によってネットワーク５を介して供給されるデータを収集する。トークン化サーバ３は、このプロセスにおいてＤＳコンピュータ２にトークン化サービスを提供する。具体的に、何時においてもＤＳコンピュータ２によって送信されることになるデータは、タプル（ｕｉｄｉ，ｍ）で表現することができ、このｕｉｄｉは、ＤＣサーバに漏らすべきでないセキュリティ−センシティブなＩＤデータを表し、ｍは、ＩＤデータｕｉｄｉに関連付けられた他の添付データ（「メッセージ・データ」）を表す。ＤＳコンピュータ２で用意されるデータ・タプル（ｕｉｄｉ，ｍ）は、ＤＳコンピュータにおいて、例えば取引オペレーションで動的に生成されたデータ、もしくは、ＤＳコンピュータに動作可能に連結されたストレージ、例えばＤＳコンピュータ２中のローカル・ストレージまたはＤＳコンピュータに、別途にアクセス可能なストレージ中に格納されたデータ、またはその両方のデータを含み得る。ＤＳコンピュータ２によって供給され、ＤＣサーバ４によって収集されるデータは、複数の識別子ｕｉｄｉ、ｉ＝１、２、３、・・・、に関連付けることが可能であり、その各々は、トークン化プロセスを介して一貫性をもってトークン化されなければならない。トークン化サーバ３によって行われるトークン化オペレーションは、当のトークン化サーバに対しては秘密の暗号鍵ｋを用いる。データ・タプル（ｕｉｄｉ，ｍ）中のｕｉｄｉに対する、ｔｏｋｉで示される最終のＩＤトークンが、下で詳記するプロセスに従ってＤＣサーバ４で導出される。このＤＣサーバは、得られたトークン化データ（ｔｏｋｉ，ｍ）を、ＤＣサーバ４に動作可能に連結された、ここではデータベース６で表された、ストレージ中に格納する。データ・ストレージ６は、一般に、１つ以上のデータ・ストレージ媒体を含む任意の便利なデータ・ストレージ装置を含んでよい。典型的な実装は、磁気もしくは光ディスクなど１つ以上のディスクを含むディスク型ストレージ装置を含み、これらは、コンピュータ内部、例えばハード・ディスク・ドライブの中にあってもよく、または、外部のアクセス可能なディスク装置、例えばＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋ（独立ディスクの冗長アレイ））アレイなどで提供されてもよい。
【００１７】
トークン化オペレーションに対する典型的な応用シナリオは、銀行、店舗などから取引データ収集／集合すること、車両プールから車両の使用／パフォーマンス・データを収集すること、ユーザ・デバイスからウェブ・ブラウジングのデータを収集すること、等々を含む。この応用シナリオに応じて、ＤＳコンピュータ２は、データを収集する対象の、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット、ノートブック、パームトップ、携帯電話、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ（携帯情報端末））、パーソナル音楽プレイヤーなど、ユーザのコンピュータによって、あるいは、車載の、または、銀行、店舗、もしくは他のエンティティのコンピュータによって実装されてよい。
【００１８】
一般に、システム１のコンピュータ２、３、４は、汎用または特殊用途コンピュータによって実装することが可能であり、これらには、本明細書に記載のオペレーションを実装するための機能性を備える１つ以上の（実際のまたは仮想の）マシンが含まれてよい。この機能性は、ハードウェアもしくはソフトウェアまたはそれらの組合せで実装されたロジックによって備えることができる。かかるロジックは、コンピューティング装置によって実行される、プログラム・モジュールなど、コンピュータ・システム実行可能命令の一般的文脈で表すことが可能である。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーティン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体等々を含んでよい。このコンピューティング装置は、タスクが、通信ネットワークを通してリンクされた遠隔の処理デバイスによって実行される、分散型クラウド・コンピューティング環境で実践することができる。分散型クラウド・コンピューティング環境では、データおよびプログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよび遠隔両方のコンピュータ・システム・ストレージ媒体中に配置することが可能である。具体的に、トークン化サーバ３の機能性は、クラウド・コンピューティング環境におけるサービスとして便利に実装することができる。ＤＣサーバ４は、複数のソースからデータを収集している専有のエンティティによって全体を運用することが可能であり、または、クラウド・コンピューティング環境においてサービスとして、全体的にまたは部分的に実装することも可能である。例えば、ＤＣサーバ４は、データベース６に対しクラウドベースのストレージを利用してよい。
【００１９】
図２のブロック図は、システム１のコンピュータ２、３を実装するための例示的なコンピューティング装置を示す。ここでは、この装置は、汎用コンピューティング・デバイス１０の形で示されている。コンピュータ１０のコンポーネントは、処理ユニット１１で表された１つ以上のプロセッサなどの処理装置、システム・メモリ１２、およびシステム・メモリ１２の処理ユニット１１への連結を含め、様々なシステム・コンポーネントを連結しているバス１３を含んでよい。
【００２０】
バス１３は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使ったプロセッサまたはローカル・バスを含め、いくつかの種類のバス構造体のいずれか１つ以上を表す。限定でなく例として、かかるアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張ＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バス、および周辺機器相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００２１】
コンピュータ１０は、通常、様々なコンピュータ可読媒体を含む。かかる媒体は、揮発性および不揮発性媒体ならびにリムーバブルおよび非リムーバブル媒体を含め、コンピュータ１０によってアクセスが可能な任意の利用可能な媒体であってよい。例えば、システム・メモリ１２は、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１４もしくはキャッシュ・メモリ１５またはその両方など、揮発性メモリの形でコンピュータ可読媒体を含むことができる。コンピュータ１０は、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単なる例に過ぎないが、ストレージ・システム１６は、非リムーバブルで不揮発性の磁気媒体（一般に「ハード・ドライブ」と呼ばれる）から読み取りこれに書込むように設けることができる。図示されていないが、リムーバブルで不揮発性の磁気ディスク（例えば「フレキシブルディスク」）から読み取りこれに書込むための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体などの、リムーバブルで不揮発性の光ディスクから読み取りこれに書込むための光ディスク・ドライブを設けることも同様に可能である。かかる例では、各々を、１つ以上のデータ媒体インターフェースによってバス１３に連結することができる。
【００２２】
メモリ１２は、本発明の諸実施形態の機能を遂行するように構成された１つ以上のプログラム・モジュールを有する、少なくとも１つのプログラム製品を含むことが可能である。例として、メモリ１２中には、（少なくとも１つの）プログラム・モジュール１８のセットを有するプログラム／ユーティリティ１７と、オペレーティング・システムと、１つ以上のアプリケーション・プログラムと、他のプログラム・モジュールと、プログラム・データとが格納されてよい。オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはこれらの何らかの組合せは、ネットワーキング環境の実装を含むことができる。プログラム・モジュール１８は、一般に、本明細書に記載された本発明の諸実施形態の機能もしくは方法またはその両方を実行する。
【００２３】
また、コンピュータ１０は、キーボード、ポインティング・デバイス、ディスプレイ２０など、１つ以上の外部デバイス１９、ユーザがコンピュータ１０とやり取りすることを可能にする１つ以上のデバイス、もしくは、コンピュータ１０が１つ以上の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えば、ネットワーク・カード、モデムなど）またはこれらの組合せと通信することが可能である。かかる通信は、入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェース２１を介して行うことができる。また、コンピュータ１０は、ネットワーク・アダプタ２２を介して、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、一般広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、もしくはパブリック・ネットワーク（例えばインターネット）またはこれらの組合せと通信することが可能である。図示のように、ネットワーク・アダプタ２２は、バス１３を介してコンピュータ１０の他のコンポーネントと通信する。図示はされていないが、他のハードウェア・コンポーネントもしくはソフトウェア・コンポーネントまたはその両方をコンピュータ１０と併せて用いてよいことを理解すべきである。諸例には、以下に限らないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、データ・アーカイブ・ストレージ・システムなどが含まれる。
【００２４】
図３ａ〜３ｃは、システム１において、トークン化オペレーションで行われる基本的なステップを示す。（説明対象のこれら諸実施形態において、コンピュータ２、３、４の間の全ての通信は、暗号化されもしくは標準的なＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（公開鍵インフラストラクチャ））の暗号化／署名スキームを用いる通常の仕方で署名され、またはその両方が行われてよい。かかる手順は当該技術分野では周知であり、簡明化のため以下では詳細は省略する。）このトークン化オペレーションは、ＤＣサーバ４に送信するためのデータを有するＤＳコンピュータ２によって開始される。図３ａは、ＤＳコンピュータ２によってそのデータ・タプル（ｕｉｄｉ，ｍ）に対して行われるステップを示す。ステップ３０で、ＤＳコンピュータはノンスＮを選択する。ステップ３１で、ＤＳコンピュータは、ノンスＮを使ってＩＤデータｕｉｄｉをブラインド化することによって、ここではＲで示されているブラインドＩＤを生成する。ここで、ブラインドＩＤであるＲは、下記の例によって示されるように、ｕｉｄｉ自体に、またはその関数にブラインド化関数を適用することによって生成することができる。ステップ３２で、ＤＳコンピュータは、ブラインドＩＤであるＲを含むトークン要求を、ネットワーク５を介してトークン化サーバ３に送信する。ステップ３３で、ＤＳコンピュータは、ノンスＮおよびメッセージ・データｍをＤＣサーバ４が受信するようにネットワーク５を介して送信する。この通信は、下記の例によって示されるように、いろいろなチャネルを介して行うことが可能である。この後、ＤＳコンピュータ２でのプロセスは完了する。
【００２５】
図３ｂは、トークン化サーバ３でのトークン化オペレーションを表す。ステップ３５で、トークン化サーバはＤＳコンピュータ２からブラインドＩＤであるＲを受信する。ステップ３６で、トークン化サーバ３は、ブラインドＩＤであるＲから、ＩＤデータｕｉｄｉに対する、ここではＲ’で示されているブラインド・トークンを生成する。ブラインド・トークンＲ’は、ノンスＮでブラインド化されたＩＤデータｕｉｄｉの関数、およびトークン化サーバの秘密鍵ｋを含む。次いで、ステップ３７で、トークン化サーバは、そのブラインド・トークンＲ’をＤＣサーバ４に送信し、このプロセスは完了する。
【００２６】
図３ｃは、ＤＣサーバ４においてデータを取得するプロセスを表す。ステップ３８で、該ＤＣサーバは、トークン化サーバ３からブラインド・トークンＲ’を受信する。ステップ３９は、図３ａのステップ３３でＤＳコンピュータ２によって送信されたノンスＮおよびメッセージ・データｍの、ＤＣサーバ４による受信を表す。ステップ４０で、ＤＣサーバはノンスＮを使ってブラインド・トークンＲ’を可視化し、ＩＤデータｕｉｄｉに対するＩＤトークンｔｏｋｉを得る。この可視化オペレーションは、ノンスＮによるブラインド化の逆処理をする。得られたトークンｔｏｋｉは、ＩＤデータｕｉｄｉの確定関数（Ｆ’で示す）、およびトークン化サーバ３の秘密鍵ｋを含む。ステップ４１で、ＤＣサーバは、ＩＤトークンｔｏｋｉおよびメッセージ・データｍのタプルを含むトークン化データを、データベース６中に格納し、トークン化オペレーションは完了する。このトークン化オペレーションは、ＤＳコンピュータ群２からの全てのデータ送信に対して行われ、これにより、ＤＣサーバは、全ソースからのトークン化データのプールをデータベース６中に収集することができる。
【００２７】
上記のシステムによって、トークン化サーバ３は、ＤＳコンピュータ２の信頼可能ドメインの外にありながら、ＤＳコンピュータに保護トークン化サービスを提供することができる。トークン化サーバは、そのトークン化オペレーションを正確に遂行することだけを信頼されており、該サーバは、ＩＤデータｕｉｄｉまたは最終的なＩＤトークンｔｏｋｉを知ることはない。該サーバは、各々のデータ送信に対しＤＳコンピュータ２によって選択されたノンスＮを用いて生成された、ブラインド化ＩＤのＲだけを受信する。しかして、トークン化サーバは、２つのトークン要求が同じｕｉｄｉに対するものかどうかさえ判断できず、したがって、どの所与の身元に関連付けられた諸活動もリンクすることができない。ＤＣサーバはトークン化されたｕｉｄｉについて知ることなく、ＤＳコンピュータ２は最終のＩＤトークンｔｏｋｉを知ることはない。これらトークンは確定的仕方で生成され、同じｕｉｄｉに対する２つのトークン要求は、同じトークンｔｏｋｉをもたらすことになるが、これはＤＣサーバ４での可視化オペレーションの後でだけである。したがって、トークン化を完全にブラインドな仕方で行っているにもかかわらず、必要な参照の整合性は保証される。トークン化サーバに必要とされるのは、プロトコル特有の鍵ｋを格納し、簡単な鍵管理を提供することだけである。ＤＳコンピュータは、トークン化鍵またはトークン化プロトコルについての他の状態を保管する必要がないので、複数のソースに亘る保護状態の分散に関連するリスクがなく、本システムは、データ・ソースの大きなグループに対し容易に拡大することが可能である。
【００２８】
図４ａ〜４ｃは、トークン化システムの一実施形態におけるさらに詳細なステップを示す。図４ａは、ＤＳコンピュータ２によって、データ・タプル（ｕｉｄｉ，ｍ）に対して行われるステップを示す。ステップ４５で、ＤＳコンピュータは、データ送信のため、前と同様にノンスＮを、さらにはセッション識別子ｓｉｄを選択する。ステップ４６で、ＤＳコンピュータは、ｕｉｄｉにハッシュ関数Ｈを適用し、ハッシュ値ｈｉを得る。ステップ４７で、ＤＳコンピュータは、Ｒ＝Ｆ（Ｎ，ｈ）としてブラインドＩＤを生成し、このＦは、トークン化オペレーションのための所定の関数である。ステップ４８で、ＤＳコンピュータは、トークン化サーバ３にトークン要求を送信する。ここでこのトークン要求は、前と同様、ブラインドＩＤであるＲ、ならびに、トークン化サーバによってＤＣサーバ４に転送するためのセッションＩＤであるｓｉｄを含む。ステップ４９で、ＤＳコンピュータは、セッションＩＤｓｉｄ、ノンスＮ、およびメッセージ・データｍをＤＣサーバ４に送信し、このプロセスは完了する。
【００２９】
図４ｂは、トークン化サーバ３によって行われるステップを示す。ステップ５０で、トークン化サーバは、ＤＳコンピュータ２から（ｓｉｄ，Ｒ）を受信する。ステップ５１で、トークン化サーバ３は、Ｒ’＝Ｆ（ｋ，Ｒ）としてブラインド・トークンを生成する。ステップ５２で、トークン化サーバはセッション識別子ｓｉｄとともに、ブラインド・トークンＲ’をＤＣサーバ４に送信する。その後、このプロセスは完了する。
【００３０】
図４ｃは、ＤＣサーバ４によって行われるステップを示す。ステップ５５で、ＤＣサーバは、ＤＳコンピュータから（ｓｉｄ，Ｎ，ｍ）を、ステップ５６で、トークン化サーバから（ｓｉｄ，Ｒ’）を受信する。合致するセッション識別子ｓｉｄとともにこれら２つのタプルを受信すると、オペレーションはステップ５７に進む。ここで、ＤＣサーバはｔｏｋｉ＝Ｆ（ｎ，Ｒ’）としてＩＤトークンを計算し、このｎは、ステップ５５で受信されたノンスＮの関数である。この実施形態において、図４ａ〜４ｃで使われた所定の関数Ｆは、Ｆ（ｎ，Ｒ’）＝Ｆ’（ｋ，ｈｉ）となるように選ばれ、このＦ’は、前述した確定関数である。ステップ５８で、ＤＣサーバは、（ｔｏｋｉ，ｍ）をデータベース６中のデータ・プールに加え、トークン化オペレーションは完了する。
【００３１】
離散対数問題に基づく、上記のスキームの或る例示的な実装を以下で詳しく説明する。この例において、所定の関数Ｆは、Ｆ（ｘ，ｙ）＝ｙｘとなるような関数であり、図４ｃのステップ５７中で使われた関数ｎは、ｎ＝Ｎ−１である。確定関数Ｆ’＝Ｆである。これらシステム・パラメータは、保護パラメータτおよび次数ｑの巡回群Ｇ＝＜ｇ＞（これはτビット素数）、ならびにＧの中にマップされるハッシュ関数Ｈの記述から成る。ここでは、例えば、ＳＳＬ／ＴＬＳ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ／Ｔｒａｎｓｐｏｒｔ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ（セキュア・ソケット・レイヤ／搬送セキュリティ・レイヤ）プロトコルおよびサーバ証明書を介する、全関係装置間の安全な通信チャネルを前提とする。この内容不知のトークン化プロセスは、以下のような４つの手順から成る。
【００３２】
セットアップ。トークン化サーバは、ランダムな秘密鍵
【００３３】
【数１】
0006941183.tif 000002
【００３４】
を選び、この＄はランダム選択を示し、Ｚｐは整数のモジュロｐの群である。
【００３５】
ＤＳコンピュータによるトークン要求。データ・タプル（ｕｉｄｉ，ｍ）を有するデータ・ソースが以下を行う。
１．ランダムなセッション識別子ｓｉｄを選ぶ。
２．ランダムなノンス
【００３６】
【数２】
0006941183.tif 000003
【００３７】
を選んで、ブラインド化
【００３８】
【数３】
0006941183.tif 000004
【００３９】
を計算し、Ｒ←［Ｈ（ｕｉｄｉ）］Ｎを計算する。
３．トークン化サーバにトークン要求（ｓｉｄ，Ｒ）を送信し、ＤＣサーバに（ｓｉｄ，Ｎ，ｍ）を送信する。
４．ｓｉｄ，Ｎを削除する。
【００４０】
トークン化サーバでの応答。トークン要求（ｓｉｄ，Ｒ）が入力されると、トークン化サーバは以下を行う。
１．Ｒ’←Ｒｋを計算する。
２．ＤＣサーバに応答（ｓｉｄ，Ｒ’）を送信する。
３．ｓｉｄ，Ｒを削除する。
【００４１】
ＤＣサーバでの可視化およびアセンブル。データ・ソースから（ｓｉｄ，Ｎ，ｍ）を、トークン化サーバから（同じｓｉｄに対する）応答（ｓｉｄ，Ｒ’）を受信すると、ＤＣサーバは以下を行う。
１．ｔｏｋｉ←Ｒ’１／Ｎを計算することによって、該応答をトークン
【００４２】
【数４】
0006941183.tif 000005
【００４３】
として可視化する。
２．アウトプット（ｔｏｋｉ，ｍ）を格納する。
３．ｓｉｄ，Ｎ，Ｒ’を削除する。
【００４４】
最終的暗号トークンが、ｕｉｄｉ、および秘密鍵ｋ、ｔｏｋｉ←Ｒ’１／Ｎ＝（Ｒｋ）１／Ｎ＝（Ｈ（ｕｉｄｉ）Ｎ）ｋ）１／Ｎ＝（Ｈ（ｕｉｄｉ）ｋ＝ｔｏｋｅｎ（ｋ，ｕｉｄｉ）から確定的に導出されることが分かる。全体として、これら関係装置は、以下のセキュリティおよび機能的特性を用いてトークンを共同で計算する。
【００４５】
内容不知の計算。トークン化サーバは、内容不知の第三者（ＯＴＰ：ｏｂｌｉｖｉｏｕｓ  ｔｈｉｒｄ  ｐａｒｔｙ）として働く。このＯＴＰは、入来する識別子ｕｉｄｉも、ブラインドで計算されたトークンｔｏｋｉも知ることなく、同じｕｉｄｉに対する２つの要求をリンクすることもできない。
【００４６】
疑似乱数のトークン。ブラインドで生成されたトークンｔｏｋｉは，秘密鍵ｋを知らないどのエンティティに対しても、乱数と見分けがつかない。すなわち、逆処理で得られた識別子｛ｕｉｄｉ｝とトークン｛ｔｏｋｊ｝とは、それらの間の関係が判断できない。具体的に、データ・ソースは、得られたトークンについて何も知らず、データ収集者は、トークンの背後にある識別子について何も知らない。
【００４７】
確定的な導出。トークンは、一意的識別子から確定的に導出される。しかして、たとえＯＴＰへの入力およびそれからの出力がランダム化されても、データ・プールへの最終的なアウトプットは一貫した値である。
【００４８】
上記によって、高効率の動的データ・トークン化スキームを提供し、これにより、データを「オンザフライ」でトークン化することができ、大きく多様な環境で複数の分散されたデータ・ソースに対し安全で一貫性のあるトークン化を提供できることが分かる。内容不知のトークン化サーバは、プライバシ・リスクとなることなく、暗号的に強固なトークンをブラインドで計算にする。さらに、上記のスキームは、多くのセキュリティが重要なアプリケーションに必要とされる、周期的な鍵更新手順を好都合に収容する。この鍵更新の手順は、図５に示されている。
【００４９】
図５のステップ６０〜６３は、トークン化サーバ３によって実行される。ステップ６０で、トークン化サーバは、ここでは、
【００５０】
【数５】
0006941183.tif 000006
【００５１】
を選択することによって、新規の秘密鍵ｋ’を生成する。ステップ６１で、トークン化サーバは、Δ＝ｋ’／ｋとして、トークン更新データΔを生成する。ステップ６２で、トークン化サーバは、このトークン更新データΔをＤＣサーバ４に送信し、その後、ステップ６３で旧鍵ｋおよびトークン更新データΔを削除する。新規鍵ｋ’は、現行のトークン化鍵ｋとなり、ＤＳコンピュータ２からのその後の全てのトークン要求に対し使用される。
【００５２】
図５のステップ６４〜６７は、ＤＣサーバ４によって実行される。ステップ６４で、ＤＣサーバは、トークン更新データΔを受信する。ステップ６５で、データベース６中に格納された各トークンｔｏｋｉに対し、ＤＣサーバは、更新トークンｔｏｋ’ｉを、ｔｏｋ’ｉ＝ｔｏｋｉΔとして計算する。ステップ６６で、ＤＣサーバは、各旧トークンｔｏｋｉを対応する更新されたトークンｔｏｋ’ｉと置き換える。ステップ６７で、ＤＣサーバは、全ての旧トークンｔｏｋｉおよびトークン更新データΔを削除し、更新プロセスは完了する。
【００５３】
鍵更新手順は、必要に応じ、一定のまたは不規則な間隔で、もしくはシステム１における悪意の介入検出に応じて、またはその両方で周期的に実行することができる。新規の鍵ｋ’の下で生成された新規トークンと、旧鍵ｋの下で生成され前に格納されていたトークンとの間の参照の整合性は保持される：ｔｏｋ’ｉ＝ｔｏｋｉΔ＝ｔｏｋｉｋ’／ｋ＝（Ｈ（ｕｉｄｉ）ｋ）ｋ’／ｋ＝Ｈ（ｕｉｄｉ）ｋ’＝ｔｏｋｅｎ（ｋ’，ｕｉｄｉ）。あらゆる鍵更新に関し、以前に失われたまたは損傷されたデータは、新規の鍵ｋ’とは整合しなくなる。しかして、いかなる時においても、攻撃者がセキュリティを破るためには、データを盗窃することと、そのデータをトークン化するのに使用された現行の鍵を破ることの両方をしなければならない。
【００５４】
図６〜図８は、離散対数問題にも基づく、別の実施形態のステップを示す。図６は、ＤＳコンピュータ２によって実行されるステップを示す。ステップ７０で、ＤＳコンピュータはノンスＮを選択し、ステップ７１で、ＤＳコンピュータは、前と同様に、ハッシュ値ｈｉ＝Ｈ（ｕｉｄｉ）を計算する。ステップ７２で、ＤＳコンピュータは、Ｒ＝ｈｉＮとしてブラインドＩＤを生成する。ここで、ステップ７３で、ＤＳコンピュータは、暗号化スキームＥｎｃによってメッセージ・データｍおよびノンスＮを暗号化し、暗号データＥｎｃ（Ｎ，ｍ）を生成する。暗号化は、ＤＣサーバ４が知る秘密鍵の下で対称暗号化スキームによって、または公開−秘密鍵対（ｐｋ，ｓｋ）の公開鍵ｐｋの下で非対称暗号化スキームによって行われ、この秘密鍵ｓｋは、ＤＣサーバには知らされている。ステップ７４で、ＤＳコンピュータは、この暗号データであるＥｎｃ（Ｎ，ｍ）およびブラインドＩＤであるＲを包含するトークン要求をトークン化サーバ３に送信し、このプロセスは完了する。
【００５５】
図７は、トークン化サーバ３によって実行されるステップを示す。ステップ７６で、トークン化サーバは、トークン要求（Ｒ，Ｅｎｃ（Ｎ，ｍ））を受信する。ステップ７７で、トークン化サーバ３は、Ｒ’＝Ｒｋとしてブラインド・トークンを生成する。ステップ７８で、トークン化サーバは、暗号データＥｎｃ（Ｎ，ｍ）とともにブラインド・トークンＲ’をＤＣサーバ４に送信し、このプロセスは完了する。
【００５６】
図８は、ＤＣサーバ４によって実行されるステップを示す。ステップ８０で、ＤＣサーバは、トークン化サーバから（Ｒ’，Ｅｎｃ（Ｎ，ｍ））を受信する。ステップ８１で、ＤＣサーバは、前述したその秘密鍵を使って暗号データＥｎｃ（Ｎ，ｍ）を解読し、メッセージ・データｍおよびノンスＮを復元する。ステップ８２で、ＤＣサーバは、ｔｏｋｉ＝Ｒ’１／ＮとしてＩＤトークンを計算する。ステップ８３で、ＤＣサーバは、（ｔｏｋｉ，ｍ）を格納し、トークン化オペレーションは完了する。
【００５７】
ブラインドＩＤは、上記の値Ｒ＝Ｆ（Ｎ，ｈｉ）として計算されるが、他の実施形態では、このブラインドＩＤは、別途に、値Ｒ＝Ｆ（Ｎ，ｈｉ）の関数、例えばＦ（Ｎ，ｈｉ）＝ｈｉＮの倍数または累乗を含んでもよい。同様に、ブラインド・トークン、ＩＤトークンｔｏｋｉ、関数ｎ、トークン更新データΔ、および更新トークンｔｏｋ’ｉ＝ｔｏｋｉΔ）は、適切な場合、上で規定された値の倍数または累乗などの関数を含んでもよい。また、システムは、Ｆ（ｘ，ｙ）＝ｙｘ以外の所定の関数Ｆに基づいてもよい。例として、乗算（例えば、Ｆ（ｘ，ｙ）＝ｘ×ｙ）、または除算（例えば、Ｆ（ｘ，ｙ）＝ｘ／ｙ）に基づくシステムを容易に考え付くことができよう。
【００５８】
ブラインドＩＤ、ブラインド・トークン、およびＩＤトークンを計算するのに、それぞれにいろいろな関数を用いることが可能である。１つの例を、以下の実施形態で提示する。この実施形態におけるトークン化サーバ３は、秘密トークン化鍵ｋに加え、加法準同型暗号化スキームＨＥｎｃに対する公開／秘密鍵の対（ｅｐｋ，ｅｓｋ）を保持する。かかる暗号化スキームは準同型特性を有し、これにより、公開鍵ｅｐｋの下でメッセージｍを暗号化している暗号文Ｃ＝ＨＥｎｃｅｐｋ（ｍ）に対する効率的な演算
【００５９】
【数６】
0006941183.tif 000007
【００６０】
が、
【数７】
0006941183.tif 000008
【００６１】
として存在する。
この実施形態は、スキームＨＥｎｃの一例としてパイリヤ暗号を用いてもよい。トークン化サーバ３は、秘密トークン化鍵ｋを暗号化している暗号文Ｃｋ＝ＨＥｎｃｅｐｋ（ｋ）と一緒に、公開鍵ｅｐｋを発行する。公開鍵ｅｐｋおよび暗号文Ｃｋは、しかして、全てのＤＳコンピュータ２に利用可能である。図３ａ〜３ｃのように、システムのオペレーションは、ステップ３１でＤＳコンピュータ２による、以下のようなブラインドＩＤの計算に進む。
Ｒ＝（ＨＥｎｃｅｐｋ（ｈｉ）Ｃｋ）Ｎ＝（ＨＥｎｃｅｐｋ（ｈｉ）ＨＥｎｃｅｐｋ（ｋ））Ｎ＝ＨＥｎｃｅｐｋ（Ｎ（ｈｉ＋ｋ））、式中
【００６２】
【数８】
0006941183.tif 000009
【００６３】
は乗算に対応し、ｈｉ＝Ｈ（ｕｉｄｉ）であり、ここでのハッシュ関数Ｈは、Ｚｑの中にマップされる。
【００６４】
ステップ３６で、トークン化サーバ３は、秘密鍵ｅｓｋを使い、暗号化スキームの解読アルゴリズムＨＤｅｃによりＲを解読することによってブラインド・トークンを生成し、
ν＝ＨＤｅｃｅｓｋ（Ｒ）＝Ｎ（ｈｉ＋ｋ）を得て、次いで、ブラインド・トークンとして、
【００６５】
【数９】
0006941183.tif 000010
【００６６】
を計算し、このｇは、上で定義された巡回群Ｇの生成元である。次いで、ＤＣサーバ４は、ステップ４０で、以下の式を計算して、ブラインド・トークンを可視化する。
【００６７】
【数１０】
0006941183.tif 000011
【００６８】
ブラインドに計算された確定関数
【００６９】
【数１１】
0006941183.tif 000012
【００７０】
も同様に疑似ランダム関数である。秘密トークン化鍵ｋが、ブラインドＩＤを計算するのに使われた暗号文Ｃｋによって導入されるこのスキームは、しかしながら、前述した好適な諸実施形態よりも効率が低い。
【００７１】
当然のことながら、説明された例示的な諸実施形態には多くの他の変更および修改を加えることが可能である。例えば、鍵付きハッシュ関数Ｈは、望まれる場合、値ｈｉを計算するために用いることができ、この場合、ハッシュ鍵はデータ・ソースの特定のグループに特有のものとすることが可能である。また、値ｈｉは、ＩＤデータｕｉｄｉの他の確定型関数として計算されてもよい。さらに、上記ではハッシュ関数Ｈが、ｕｉｄｉを記述された詳細プロトコルに対する正確なグループにマップするために使われているが、他の実施形態では、ブラインドＩＤは、ｕｉｄｉの関数を使うよりも、むしろ、例えばプロトコル演算に対する必要なグループ内のｕｉｄｉを選んで、ｕｉｄｉそのものをブラインド化することによって計算することが可能である。
【００７２】
複数のＤＳコンピュータ２を含むシステム１が説明されてきたが、他の実施形態では、本トークン化プロセスは、単一のデータ・ソースからのデータ送信のために用いることも可能である。
【００７３】
一般に、フロー・チャートのステップは、図示されたのと異なる順序で実行することが可能であり、適切な場合、いくつかのステップが同時に行われてもよい。
【００７４】
本発明の様々な実施形態の説明を、例証のために提示してきたが、これらは、網羅的であることも、開示された実施形態に限定することも意図されていない。当業者には、記述された実施形態の範囲および趣旨から逸脱することのない、多くの修改および別形が明らかであろう。本明細書で使われた用語は、本発明の原理、実際の応用、もしくは市販されている技術に対する技術的改良を最善に説明するために、または、他の当業者が本明細書に開示された諸実施形態を理解できるように選ばれたものである。
【符号の説明】
【００７５】
１  トークン化システム
２  データソース・コンピュータ
３  トークン化サーバ
４  データ収集サーバ
５  ネットワーク
６  トークン化データ
【図１】
0006941183.tif 000013
【図２】
0006941183.tif 000014
【図３ａ】
0006941183.tif 000015
【図３ｂ】
0006941183.tif 000016
【図３ｃ】
0006941183.tif 000017
【図４ａ】
0006941183.tif 000018
【図４ｂ】
0006941183.tif 000019
【図４ｃ】
0006941183.tif 000020
【図５】
0006941183.tif 000021
【図６】
0006941183.tif 000022
【図７】
0006941183.tif 000023
【図８】
0006941183.tif 000024