(57)【要約】【課題】      データ・プロバイダ・コンピュータにおいてデータをマスキングし、（信頼できない）データ・ユーザ・コンピュータに送る方法、装置及びコンピュータ・プログラムを提供する。【解決手段】  送られるデータ内の少なくとも１つの所定のデータ項目について、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目をマスク・データ項目に置換することによって、データ・マスキングが提供される。データ・プロバイダ・コンピュータは、マスク・データをデータ・ユーザ・コンピュータに送る。現在のエポックの満了時に、データ・プロバイダ・コンピュータは、新しいエポックにおける暗号化スキームのための新しい暗号化鍵を生成し、現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、マスク更新データをデータ・ユーザ・コンピュータに送る。マスク更新データにより、データ・ユーザ・コンピュータにおいて、現在の暗号化鍵を用いて生成されたマスク・データ項目を新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することが可能になる。【選択図】      図３
2020506597.tif 000002
【特許請求の範囲】
【請求項１】
データ・プロバイダ・コンピュータにおけるデータ・マスキングのためのコンピュータ実施方法であって、
プロセッサ・システムを用いて、データ・ユーザ・コンピュータに送られるデータにアクセスすることと、
前記プロセッサ・システムを用いて、前記送られるデータ内の少なくとも１つの所定のデータ項目に対して、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目を前記マスク・データ項目に置換することにより、マスク・データを生成することと、
前記マスク・データを前記データ・ユーザ・コンピュータに送ることと、
前記現在のエポックの満了時に、新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵を生成し、前記現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送ることと、
を含み、
前記マスク更新データは、前記データ・ユーザ・コンピュータにおいて、前記現在の暗号化鍵を用いて生成されたマスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することを可能にする、方法。
【請求項２】
前記新しいエポック及び後の新しいエポックの各々の満了時に、前記新しい暗号化鍵を生成し、前記マスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送るステップを実行することを含む、請求項１に記載の方法。
【請求項３】
前記新しいエポックの少なくとも一部の各々の間、
前記データ・ユーザ・コンピュータに送られる更なるデータにアクセスすることと、
前記更なるデータについて、そのエポックについての前記現在の暗号化鍵として前記新しい暗号化鍵を用いてマスク・データを生成し、前記更なるマスク・データを前記データ・ユーザ・コンピュータに送るステップを実行することと、
を含む、請求項２に記載の方法。
【請求項４】
前記暗号化スキームは、対称暗号化スキームを含み、前記マスク更新データは、前記現在の暗号化鍵及び前記新しい暗号化鍵を含む、請求項１に記載の方法。
【請求項５】
前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成することを含む、請求項４に記載の方法。
【請求項６】
前記一方向性関数は、ハッシュ関数を含む、請求項５に記載の方法。
【請求項７】
前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、前記暗号化スキームは、
ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、
Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）
となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含む、請求項１に記載の方法。
【請求項８】
前記アルゴリズムＥｎｃ（ｋ，Ｘ）＝Ｘｋ及びδ＝ｓｅ＋１／ｓｅである、請求項７に記載の方法。
【請求項９】
前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成することを含む、請求項８に記載の方法。
【請求項１０】
前記一方向性関数は、ハッシュ関数を含む、請求項９に記載の方法。
【請求項１１】
データ・ユーザ・コンピュータにおいてマスク・データを管理するためのコンピュータ実施方法であって、
プロセッサ・システムを用いて、データ・プロバイダ・コンピュータからマスク・データを受け取ることであって、前記マスク・データは、一方向性関数をデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することにより生成される少なくとも１つのマスク・データ項目を含む、受け取ることと、
メモリを用いて、前記マスク・データを格納することと、
前記現在のエポックの満了時に、前記データ・プロバイダ・コンピュータから、前記現在の暗号化鍵及び新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受け取ることと、
前記マスク更新データを用いて、前記格納されたマスク・データ内の、前記現在の暗号化鍵を用いて生成された各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することと、
を含む、方法。
【請求項１２】
前記新しいエポック及び後の新しいエポックの各々の満了時に、
前記データ・プロバイダ・コンピュータから、そのエポックについての前記暗号化鍵及び次のエポックにおける前記暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受け取ることと、
そのマスク更新データを用いて、前記格納されたマスク・データ内の各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することと、
を含む、請求項１１に記載の方法。
【請求項１３】
前記新しいエポックの少なくとも一部の各々の間、
前記データ・プロバイダ・コンピュータから、前記一方向性関数をデータ項目に適用して第１の値を生成し、そのエポックについての前記暗号化鍵を用いて前記暗号化スキームを介して前記第１の値を暗号化することにより生成される少なくとも１つのマスク・データ項目を含む更なるマスク・データを受け取ることと、
前記更なるマスク・データを格納することと、
を含む、請求項１２に記載の方法。
【請求項１４】
前記暗号化スキームは対称暗号化スキームを含み、前記マスク更新データは、前記現在の暗号化鍵及び前記新しい暗号化鍵を含み、前記方法は、
前記マスク更新データを用いて、前記暗号化スキームの復号アルゴリズムを介して、前記現在の暗号化鍵を用いてそのマスク・データ項目を復号して前記第１の値を取得し、前記新しい暗号化鍵を用いて前記暗号化スキームを介して前記第１の値を再暗号化することにより、前記格納されたマスク・データ内の各マスク・データ項目を更新することを含む、請求項１１に記載の方法。
【請求項１５】
前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、前記暗号化スキームは、
ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、
Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）
となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含み、前記方法は、
前記マスク更新データを用いて、前記暗号化鍵ｋ＝δを用いて前記アルゴリズムＥｎｃ（ｋ，Ｘ）を介してそのマスク・データ項目を暗号化することにより、前記格納されたマスク・データ内の各マスク・データ項目を更新することを含む、請求項１１に記載の方法。
【請求項１６】
前記アルゴリズムＥｎｃ（ｋ，Ｘ）＝Ｘｋ及びδ＝ｓｅ＋１／ｓｅである、請求項１５に記載の方法。
【請求項１７】
データ・マスキングのためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プログラム命令を含み、前記プログラム命令は、データ・プロバイダ・コンピュータにより実行可能であり、前記データ・プロバイダ・コンピュータに、
データ・ユーザ・コンピュータに送られるデータにアクセスすることと、
前記送られるデータ内の少なくとも１つの所定のデータ項目に対して、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目を前記マスク・データ項目に置換することにより、マスク・データを生成することと、
前記マスク・データを前記データ・ユーザ・コンピュータに送ることと、
前記現在のエポックの満了時に、新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵を生成し、前記現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送ることと、
を行わせ、
前記マスク更新データは、前記データ・ユーザ・コンピュータにおいて、前記現在の暗号化鍵を用いて生成されたマスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することを可能にする、コンピュータ・プログラム。
【請求項１８】
前記プログラム命令は、前記データ・プロバイダ・コンピュータに、前記新しいエポック及び後の新しいエポックの各々の満了時に、前記新しい暗号化鍵を生成し、前記マスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送るステップを実行させるように、さらに実行可能である、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記プログラム命令は、
前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成し、
前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、
前記暗号化スキームは、ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含む、ように実行可能である、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
マスク・データを管理するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プログラム命令を含み、前記プログラム命令は、データ・ユーザ・コンピュータにより実行可能であり、前記データ・ユーザ・コンピュータに、
データ・プロバイダ・コンピュータから、一方向性関数をデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することにより生成される少なくとも１つのマスク・データ項目を含むマスク・データを受信することに応答して、前記マスク・データを格納することと、
前記データ・プロバイダ・コンピュータから、前記現在のエポックの満了時に、前記現在の暗号化鍵及び新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受信することに応答して、前記マスク更新データを用いて、前記格納されたマスク・データ内の、前記現在の暗号化鍵を用いて生成された各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することと、
を行わせる、コンピュータ・プログラム。
【請求項２１】
前記プログラム命令は、前記データ・ユーザ・コンピュータに、
前記新しいエポック及び後の新しいエポックの各々の満了時に、前記データ・プロバイダ・コンピュータから、そのエポックについての前記暗号化鍵及び次のエポックにおける前記暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受け取ることに応答して、そのマスク更新データを用いて、前記格納されたマスク・データ内の各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新すること、
を行わせるようにさらに実行可能である、請求項２０に記載のコンピュータ・プログラム。
【請求項２２】
前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、
前記暗号化スキームは、ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含み、前記プログラム命令は、前記データ・ユーザ・コンピュータに、前記マスク更新データを用いて、暗号化鍵ｋ＝δを用いて前記アルゴリズムＥｎｃ（ｋ、Ｘ）を介してそのマスク・データ項目を暗号化することにより、前記格納されたマスク・データ内の各マスク・データ項目を更新させるように実行可能である、請求項２０に記載のコンピュータ・プログラム。
【請求項２３】
ネットワークを介して通信するように動作可能なデータ・プロバイダ・コンピュータ及びデータ・ユーザ・コンピュータを含むシステムであって、
前記データ・プロバイダ・コンピュータは、
データ・ユーザ・コンピュータに送られるデータにアクセスし、
前記送られるデータ内の少なくとも１つの所定のデータ項目に対して、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目を前記マスク・データ項目に置換することにより、マスク・データを生成し、
前記マスク・データを前記データ・ユーザ・コンピュータに送り、
前記現在のエポックの満了時に、新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵を生成し、前記現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送る、
ように適合され、
前記データ・ユーザ・コンピュータは、前記データ・プロバイダ・コンピュータから前記マスク・データを受け取ることに応答して、前記マスク・データを格納し、前記データ・プロバイダ・コンピュータから前記マスク更新データを受け取ることに応答して、前記マスク更新データを用いて、前記格納されたマスク・データ内の、前記現在の暗号化鍵を用いて生成された各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新するように適合される、システム。
【請求項２４】
前記データ・プロバイダ・コンピュータは、前記新しいエポック及び後の新しいエポックの各々の満了時に、前記新しい暗号化鍵を生成し、前記マスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送るようにさらに適合され、
前記データ・ユーザ・コンピュータは、前記新しいエポックの各々の満了時に、前記データ・プロバイダ・コンピュータから前記マスク更新データを受け取ることに応答して、前記マスク更新データを用いて、前記格納されたマスク・データ内の各マスク・データを、前記新しい鍵を用いて生成されるマスク・データ項目に更新するようにさらに適合される、請求項２３に記載のシステム。
【請求項２５】
前記データ・プロバイダ・コンピュータは、前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成するように適合され、前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、前記暗号化スキームは、ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含むように適合され、
前記データ・ユーザ・コンピュータは、前記マスク更新データを用いて、暗号化鍵ｋ＝δを用いて前記アルゴリズムＥｎｃ（ｋ、Ｘ）を介してそのマスク・データ項目を暗号化することにより、前記格納されたマスク・データ内の各マスク・データを更新するように適合される、請求項２３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ・マスキングに関し、より具体的には、データ・プロバイダ・コンピュータにおいてデータをマスキングし、（信頼できない）データ・ユーザ・コンピュータに送る方法、装置及びコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
データ・マスキングは、機密情報を含むデータを信頼性が低い環境にコピーする必要があるときに使用されるプロセスである。データ・マスキングの目的は、機密データ項目を隠す（又は「マスクする(mask)」）ようにデータの機密性を低下させ（de-sensitize）、データが全体として意図した目的のために有用なままであるようにすることである。例えば、データセットは、信頼できないパーティに漏らすべきではない、社会保障番号、パスポート・データ、クレジットカード番号、健康の記録の詳細等といった情報を含み得る。典型的な用途のシナリオとして、統計分析のためにデータセットを送り出すこと、現実的なワークロードを有するテスト環境においてアプリケーションを実行すること、顧客からサービス品質情報を収集すること、及びトランザクション処理が挙げられる。近年、サービスをサードパーティ及びクラウドに移動する傾向と共に、データ・プライバシーに関する問題が増大している。マスキングは、信頼できない環境における機密データの曝露を阻止し、国境を超えたデータの移動と関連した法的問題に対処する。
【０００３】
セキュリティのために、データ・マスキング・プロセスでは、マスク・データ項目（masked data item）が、オリジナルの非マスク・データ（unmasked data）についての情報を公開しないようにする必要がある。しかしながら、ユーザビリティ（usability）は、マスク・データセットが、参照整合性（referential integrity）を保持することを要求する。つまり、非マスク・データセットにおいて同じデータ項目が複数回発生する場合、それを一貫して同じマスク値にマッピングしなければならない。
【０００４】
多くのデータ・マスキング技術が提案されており、今日商業的に実施されている。例えば、マスキングは、ハッシングを介して実行され得る。ここで、データ項目は、データ・プロバイダの長期ハッシュ鍵と共にハッシュされる。次に、データ項目は、ユーザに送られたマスク・データにおける結果として得られるハッシュ値と置き換えられる。他の周知の方法は、置換（substitution）、シャフリング、削除（「ヌル化（nulling）」）、難読化、又は摂動技術に基づく。しかしながら、こうした方法は、データ・セキュリティに必要とされるますます厳しさを増す保証を提供することができない。さらに、これらの方法は、マスク・データ（masked data）の鍵再生成（rekeying）を可能にしない。所定のデータ項目とそのマスクされた形態との間の関係は決して変化せず、マスキングに使用される鍵を変更することができない。ハッシングでは、例えば、参照整合性を破壊せずに、ハッシュ鍵を変更することができない。例えば、金融機関などのセキュリティが重要な環境においては、規則的な鍵再生成動作、及び非マスク・データとマスク・データとの間の関係の定期的更新が求められる。定期的更新は、データが時間の経過と共に徐々に漏れる曝露のリスクも減らす。マスク・データセットは多くの場合大容量であるので、データ・プロバイダが最新の鍵を用いて完全なデータセットを再マスクしてユーザに再送する、そうした更新を最初から実行することは、非常に効率が悪い。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データ・プロバイダ・コンピュータにおいてデータをマスキングし、（信頼できない）データ・ユーザ・コンピュータに送る方法、装置及びコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の実施形態によれば、データ・プロバイダ・コンピュータにおけるデータ・マスキングのためのコンピュータ実施方法が提供される。方法は、データ・ユーザ・コンピュータに送られるデータにアクセスし、送られるデータ内の少なくとも１つの所定のデータ項目に対して、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキーム（deterministic encryption scheme）を介して第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目をマスク・データ項目に置換することにより、マスク・データを生成することを含む。方法は、マスク・データをデータ・ユーザ・コンピュータに送ることと、現在のエポックの満了時に、新しいエポックにおける暗号化スキームのための新しい暗号化鍵を生成し、現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、マスク更新データをデータ・ユーザ・コンピュータに送ることを含む。マスク更新データは、データ・ユーザ・コンピュータにおいて、現在の暗号化鍵を用いて生成されたマスク・データ項目を、新しい暗号化鍵を用いて生成されたマスク・データ項目に更新するのを可能にする。
【０００７】
本発明の実施形態は、参照整合性を保持しながら、マスキング鍵を更新し、マスク・データの鍵を再生成することができるセキュアなデータ・マスキング方法を提供する。以前にマスクされたデータを更新するための鍵再生成動作は、マスク・データのセキュリティを損なうことなく、信頼できないドメインにおいて、データ・ユーザにより行われ得る。
【０００８】
本発明の実施形態は、静的データ・マスキング・シナリオで用いることができ、そこでは、ユーザが必要とする全てのデータ（例えば、データベース全体、又は他の完全なデータセット）が、一回で、マスクされユーザに送られる。しかしながら、本発明を具体化する方法は、動的データ・マスキング・シナリオにおいても非常に有利である。動的データ・マスキング・シナリオにおいて、データは、要求に応じて、例えばユーザからの一連のアクセス要求に応答して、マスクされ、ユーザに送られる。データは、「オン・ザ・フライ式に（on-the-fly）」マスクし、オン・デマンドで（on demand）ユーザに送ることができる。両方のシナリオにおいて、現在のエポック中にマスクされ、送られるデータは、データ・プロバイダにより送られるマスク更新データを用いて、新しいエポックのために鍵再生成することができる。新しい暗号化鍵を生成し、マスク更新データを生成し、マスク更新データをデータ・ユーザ・コンピュータに送るステップは、その新しいエポック及び後の新しいエポックの各々の満了時に実行することができ、それにより、連続するエポックの各々について、繰り返しマスク・データの鍵を再生成することができる。動的シナリオにおいては、各々の新しいエポックについての新しい暗号化鍵を、そのエポックにおいて送り出される更なるデータをマスクするためのデータ・マスキング・ステップにおける現在の暗号化鍵として使用することができる。特に、新しいエポック（の少なくとも一部）の各々の間、データ・プロバイダ・コンピュータは、データ・ユーザ・コンピュータに送られる更なるデータにアクセスし、その更なるデータについて、新しい暗号化鍵をそのエポックについての現在の暗号化鍵として用いてマスク・データを生成するステップを実行することができる。次に、更なるマスク・データをデータ・ユーザ・コンピュータに送ることができる。マスク更新データを用いる鍵再生成動作は、現在の暗号化鍵を用いて生成されたマスク・データ項目を、新しい暗号化鍵を用いて生成されたマスク・データ項目に変換するので、以前のエポックにおいて送り出されたマスク・データと任意の所定のエポックについての新しい暗号化鍵を用いてマスクされたいずれかの更なるデータとの間の参照整合性が保持される。
【０００９】
好ましい実施形態のデータ・マスキング・ステップにおいて、一方向性関数をそのデータ項目及びデータ・プロバイダ・コンピュータの秘密鍵に適用することにより、データ項目に対応する第１の値が生成される。マスキング・プロセスのこの第１の層における秘密鍵の使用は、データ曝露に対する付加的なセキュリティを与える。マスキング・プロセスの第２の暗号化層及び関連したマスク更新データを異なる方法で構成し、基礎をなす暗号法のセキュリティに従って異なるセキュリティ保証を与えることができる。幾つかの実施形態においては、暗号化スキームは対称暗号化スキームを含み、マスク更新データは、現在の暗号化鍵及び新しい暗号化鍵を含むことができる。ここで、データ・ユーザは、暗号化スキームの復号アルゴリズムを介して、現在の暗号化鍵を用いて、各マスク・データ項目を復号して第１の値を取得し、新しい暗号化鍵を用いて暗号化スキームを介して第１の値を再暗号化することによって、以前に受け取ったデータの鍵を再生成することができる。これにより、多くの用途に対して十分に高いセキュリティ・レベルが与えられる。
【００１０】
幾つかの実施形態において、マスク更新データは、現在の及び新しい暗号化鍵の所定の関数δを含み、暗号化スキームは、ｓｅが現在の暗号化鍵であり、ｓｅ＋１が新しい暗号化鍵である場合に、Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含む。ここで、データ・ユーザは、暗号化鍵ｋ＝δを用いて暗号化アルゴリズムＥｎｃ（ｋ，Ｘ）を介して各マスク・データ項目を暗号化することによって、以前に受け取ったデータの鍵を再生成することができる。このことは、再マスキング・プロセスにより、データ項目についての最初に暗号化された第１の値が曝露されることもないという点で、非常に優れたセキュリティを与える。こうしたスキームの効率的な実施において、アルゴリズムＥｎｃ（ｋ，Ｘ）＝Ｘｋ及びδ＝ｓｅ＋１／ｓｅである。
【００１１】
本発明の実施形態は、データ・ユーザ・コンピュータにおいてマスク・データを管理するためのコンピュータ実施方法を提供する。この方法は、データ・プロバイダ・コンピュータからマスク・データを受け取ることであって、マスク・データは、一方向性関数をデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して第１の値を暗号化することにより生成される少なくとも１つのマスク・データ項目を含む、受け取ることと、次に、マスク・データを格納することとを含む。方法は、現在のエポックの満了時に、データ・プロバイダ・コンピュータから、現在の暗号化鍵及び新しいエポックにおける暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受け取ることをさらに含む。マスク更新データを用いて、格納されたマスク・データ内の、現在の暗号化鍵を用いて生成された各マスク・データ項目を、新しい暗号化鍵を用いて生成されたマスク・データ項目に更新する。
【００１２】
本発明の実施形態は、データ・プロバイダ・コンピュータ又はデータ・ユーザ・コンピュータにより実行可能であり、コンピュータに上述のような方法を実行させるプログラム命令を具体化するコンピュータ可読ストレージ媒体をそれぞれが含むコンピュータ・プログラム製品を提供する。少なくとも１つの付加的な実施形態は、上述した方法を実施するように適合されたデータ・プロバイダ・コンピュータ又はデータ・ユーザ・コンピュータを含むシステムを提供する。
【００１３】
添付図面を参照して、例証及び限定されない例として、本発明の実施形態を以下により詳細に説明する。
ここで、添付図面を参照して、単なる例として、本発明の実施形態を説明する。
【図面の簡単な説明】
【００１４】
【図１】本発明を具体化するデータ・マスキング・スキームを実装するためのシステムの概略図である。
【図２】図１のシステムにおけるコンピュータの一般化した概略図である。
【図３】データ・マスキング・スキームの動作における、システム１において実行されるステップを示す。
【図４】データ・マスキング・スキームの動作における、システム１において実行されるステップをさらに示す。
【図５】データ・マスキング・システムの実施形態において実行されるより詳細なステップを示す。
【図６】データ・マスキング・システムの実施形態において実行されるより詳細なステップをさらに示す。
【図７】データ・マスキング・システムの別の実施形態において実行されるより詳細なステップを示す。
【図８】データ・マスキング・システムの別の実施形態において実行されるより詳細なステップをさらに示す。
【発明を実施するための形態】
【００１５】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００１６】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【００１７】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
【００１８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【００１９】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００２０】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製品を含むようにすることもできる。
【００２１】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００２２】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【００２３】
図１に示されるシステム１は、ネットワーク４（ここで、ネットワーク４は、一般に、１つ又は複数のコンポーネント・ネットワーク、及び／又はインターネットを含む相互ネットワークを含む）を介して通信するように動作可能な、データ・プロバイダ・コンピュータ２及びデータ・ユーザ・コンピュータ３を含む。データ・プロバイダ（ＤＰ）コンピュータ２は、ＤＰコンピュータ２に動作可能に結合された、ここではデータベース５で表されるストレージ内のデータセットにアクセスすることができる。データベース５は、動作中、データ・ユーザ（ＤＵ）コンピュータ３に送られるデータを含む。ＤＰコンピュータ２は、それにより必要に応じて、データにアクセスし、データをマスクし、ＤＵコンピュータ３に送ることができる、動的データ・マスキング・プロセスを実施する。特に、ＤＵコンピュータ３に送られるデータは、常に、データを送り出する前にマスクしなければならない特定のデータ項目を含み得る。こうしたデータ項目は、ＤＰコンピュータ２において予め定められており、例えば、当該データのタイプ、カテゴリ、性質、位置等によって、いずれかの従来の方法で定めることができる。例えば、ＤＰコンピュータ２は、マスクされるデータ項目を決定するマスキング規則のセットを実装することができる。個々のデータ項目は、例えば、データ・フィールド、又はその部分（例えば、バイト）、又はデータのいずれかの他の定められた単位を含み得る。しかしながら、特定のデータ項目及び適用されるマスキング基準は、本明細書で説明されるマスキング・スキームとは別問題である。ＤＵコンピュータ３は、ネットワーク４を介してマスク・データを受け取り、マスク・データを、本明細書ではＤＵコンピュータ３に動作可能に結合されたデータベース６により表されるストレージ内に格納する。以下に説明されるように、ＤＵコンピュータ３は、データベース６内に格納されるマスク・データをさらに管理する。
【００２４】
システム１内に実装されるマスキング・スキームは、連続的期間、すなわち「エポック（epoch）」内に機能する。手短に言えば、任意の所定のエポックｅにおいて、そのエポックの間、ＤＰコンピュータ２により送り出されたデータは、マスキング鍵ｋｅを用いてマスクされる。任意のエポックｅの満了時、新しいマスキング鍵ｋｅ＋１が、ＤＰコンピュータ２における新しいエポックに対して生成される。新しいマスキング鍵との一貫性を保つために、ＤＵコンピュータ３において、以前に送り出されたマスク・データの鍵も再生成される。以下にさらに説明されるように、鍵再生成動作は、ＤＰコンピュータ２により与えられるマスク更新データを用いる。
【００２５】
エポックは、システム１において様々な方法で定めることができ、異なるエポックは、固定した又は可変の期間を有することができる。例えば、新しいエポックは、規則的な間隔で定期的に開始することができ、その期間は、所望のように設定することができる。新しいエポックは、何らかのイベント、例えばシステムにおける悪意の介入の検出に応答して開始することもできる。
【００２６】
ＤＰコンピュータ２は、データ所有者により操作することができ、データセット５は、データ所有者により格納された専用データを含むことができる。代替的に、ＤＰコンピュータ２は、データ所有者の代わりにデータ・マスキングを実行するように委ねられたエンティティにより操作することができる。従って、一般に、マスクされるデータセットは、ＤＰコンピュータ２にローカルのストレージ装置に格納すること、又は、例えば別のコンピュータ（例えば、データ所有者のコンピュータ）とのネットワーク上の通信を介して、ＤＰコンピュータ２にアクセス可能な遠隔ストレージ装置内に格納することができる。
【００２７】
データ・ストレージ５、６は、一般に、１つ又は複数のデータ・ストレージ媒体を含むいずれかの便利なデータ・ストレージ装置を含むことができる。典型的な実装は、磁気又は光ディスクのような１つ又は複数のディスクを含むディスク・ストレージ装置を含み、それらは、例えばハードディスク・ドライブ内などコンピュータの内部にあってもよく、又は、例えばＲＡＩＤアレイのようなディスクドライブ・アレイ内など外部からアクセス可能なディスク装置により提供され得る。
【００２８】
ＤＰコンピュータ２及びＤＵコンピュータ３の各々は、汎用又は専用コンピュータにより実装することができ、本明細書で説明される動作を実施するための機能を提供する１つ又は複数の（実又は仮想）マシンを含むことができる。この機能は、ハードウェア若しくはソフトウェア、又はその組み合わせで実装される論理により提供することができる。こうした論理は、コンピューティング装置によって実行される、プログラム・モジュールのようなコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造等を含むことができる。コンピューティング装置は、通信ネットワークを通じてリンクされる遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、データ及びプログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【００２９】
図２のブロック図は、システム１のコンピュータ２、３を実装するための例示的なコンピューティング装置を示す。装置は、本明細書では、汎用コンピューティング・デバイス１０の形態で示される。コンピュータ１０のコンポーネントは、処理ユニット１１、システム・メモリ１２、及びシステム・メモリ１２を含む種々のシステム・コンポーネントを処理ユニット１１に結合するバス１３により表される１つ又は複数のプロセッサのような処理装置を含むことができる。
【００３０】
バス１３は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Industry Standard Architecture、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Micro Channel Architecture、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００３１】
コンピュータ１０は、典型的には、種々のコンピュータ可読媒体を含む。このような媒体は、揮発性及び不揮発性媒体、並びに取り外し可能及び取り外し不能媒体を含む、コンピュータ１０によりアクセス可能ないずれかの利用可能媒体とすることができる。例えば、システム・メモリ１２は、ランダム・アクセス・メモリ（ＲＡＭ）１４及び／又はキャッシュ・メモリ１５のような、揮発性メモリの形のコンピュータ可読媒体を含むことができる。コンピュータ１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（一般的に「ハードドライブ」と呼ばれる）との間の読み書きのために、ストレージ・システム１６を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）との間の読み書きのための磁気ディスクドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み書きのための光ディスクドライブとを設けることもできる。こうした例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによりバス１３に接続することができる。
【００３２】
メモリ１２は、本発明の実施形態の機能を実行するように構成された１つ又は複数のプログラム・モジュールを有する少なくとも１つのプログラム製品を含むことができる。限定ではなく例として、メモリ１２内に、プログラム・モジュール１８のセット（少なくとも１つ）を有するプログラム／ユーティリティ１７、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール１８は、一般に、本明細書で説明されるような本発明の実施形態の機能及び／又は方法を実行する。
【００３３】
コンピュータ１０は、キーボード、ポインティング・デバイス、ディスプレイ２０等のような１つ又は複数の外部デバイス１９；ユーザがコンピュータ１０と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ１０が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース２１を経由して行うことができる。さらに、コンピュータ１０は、ネットワーク・アダプタ２２を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ２２は、バス１３を介して、コンピュータ１０の他のコンポーネントと通信する。図示されないが、コンピュータ１０と共に他のハードウェア及び／又はソフトウェア・コンポーネントも使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスクドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が含まれる。
【００３４】
システム１の動作の前の設定手順において、ＤＰコンピュータ２は、第１のエポックｅ＝０についての第１のマスキング鍵ｋ０を生成する。説明される実施形態において、各エポックｅについてのマスキング鍵ｋｅは、決定的暗号化スキームＥＮＣのための（少なくとも）１つの暗号化鍵ｓｅを含む。（決定的暗号化スキームは、鍵ｋの下で平文Ｘを暗号化するための暗号化アルゴリズムＥｎｃ（ｋ，Ｘ）が、常に同じ鍵ｋ及び平文Ｘについて同じ暗号文を生成するスキームである。）図３及び図４は、システム１の後の動作における動的データ・マスキング・スキームの基本的ステップを示す。
【００３５】
図３は、現在のエポックｅにおけるＤＰコンピュータ２とＤＵコンピュータ３との間のデータ転送のために実行されるステップを示す。ステップ３０において、ＤＰコンピュータ２は、ＤＵコンピュータ３に送られるデータにアクセスする。供給されるデータは、例えば、処理のために送り出されるオリジナルのデータセットの部分として、又はＤｕコンピュータ３からのデータ要求に応答して、又は新しいデータがデータベース５において利用可能になるときなど、様々な方法で決定され得る。いずれの場合も、ＤＰコンピュータ２は、データベース５にアクセスして、必要なデータを取り出す。ステップ３１において、ＤＰコンピュータは、先に説明したマスキング基準に従ってマスクしなければならない、送られるデータにおいて、ここではｘｉで示される任意のデータ項目を識別する。データが、これらの所定のデータ項目ｘｉの少なくとも１つを含むと仮定して、次に、ＤＰコンピュータは、ステップ３２〜３４のプロセスを介して、マスク・データを生成する。特に、各データ項目ｘｉについて、ステップ３２において、ＤＰコンピュータ２は、ここではＦで示される一方向性関数（one way function）を（少なくとも）そのデータ項目ｘｉに適用し、ｈｉで示される第１の値を生成する。（当技術分野において周知のように、一方向性関数は、逆関数にするのが困難な関数である。つまり、入力Ｘに適用されるとき、関数は出力Ｙを生成し、Ｙが与えられたときのＸ（Ｘ  ｇｉｖｅｎ  Ｙ）を推測するのは困難である（すなわち、計算的に実行不可能である）。ステップ３３において、次に、ＤＰコンピュータは、現在のエポックｅについての現在の暗号化鍵ｓｅを用いて、決定的暗号化スキームＥＮＣを介して第１の値ｈｉを暗号化することにより、マスク・データ項目ｙｉ，ｅを生成する。ステップ３４において、ＤＰコンピュータ２は、オリジナルのデータ項目ｘｉを、送られるデータ内の対応するマスク・データ項目ｙｉ，ｅに置換する。ステップ３５において、ＤＰコンピュータ２は、ネットワーク４を介して、結果として得られるマスク・データ（マスク・データ項目及びマスクされていないデータ項目の両方を含み得る）をＤＵコンピュータ３に送る。ステップ３６においてマスク・データを受け取ることに応答して、ＤＵコンピュータは、マスク・データをデータベース６内に格納し、データ転送は完了する。
【００３６】
図４は、現在のエポックｅの満了時に、システム１において実行されるステップを示す。ステップ４０において、ＤＰコンピュータ２は、新しいエポック（ｅ＋１）における暗号化スキームＥＮＣについての新しい暗号化鍵ｓｅ＋１を生成する。ステップ４１において、ＤＰコンピュータ２は、ここではδで示されるマスク更新データを生成する。マスク更新データδは、現在の暗号化鍵ｓｅ及び新しい暗号化鍵ｓｅ＋１に依存し、ＤＵコンピュータ３において、現在の暗号化鍵ｓｅを用いて生成されたマスク・データ項目ｙｉ，ｅを、新しい暗号化鍵ｓｅ＋１を用いて生成されたマスク・データ項目ｙｉ，ｅ＋１に更新することを可能にする。ステップ４２において、ＤＰコンピュータ２は、マスク更新データδをＤＵコンピュータ３に送り、ステップ４３において、エポック・カウンタｅを（ｅ＋１）に更新する。従って、新しい暗号化鍵ｓｅ＋１が、新しい現在のエポックにおける更なるデータ転送のための現在の暗号化鍵ｓｅになる。ステップ４４におけるマスク更新データδの受信に応答して、ＤＵコンピュータ３は、マスク更新データを用いて、データベース６に格納されたマスク・データの鍵を再生成する。特に、ＤＵコンピュータ３は、マスク更新データδを用いて、各々のマスク・データ項目ｙｉ，ｅ（古い現在の暗号化鍵ｓｅを用いて生成された）を、新しい現在の暗号化鍵ｓｅ＋１を用いて生成されたマスク・データ項目ｙｉ，ｅ＋１に更新する。次に、更新プロセスは終了する。
【００３７】
図４のプロセスは、新しいエポック及び各々の後の新しいエポックの満了時に再び実行され、これにより、暗号化鍵ｓｅは、各々の新しいエポックについて更新され、新しい暗号化鍵との一貫性のために、マスク更新データδを用いて、ＤＵコンピュータ３に既に送られたマスク・データの鍵を再生成する。新しいエポックにおける、ＤＵコンピュータ３に送られたあらゆる更なるデータも、そのエポックについての現在の暗号化鍵として新しい暗号化鍵を用いて、図３のプロセスを介して転送される。
【００３８】
マスキング・プロセスは、２つの層、すなわち一方向性関数Ｆを用いる静的な内側層と、決定的暗号化を用いるエポック特有の外側層とを含むことが分かる。これにより、マスキング鍵を更新し、オリジナルのマスクされていないデータ項目ｘｉを暴露することなく、各々の新しいエポックについてマスク・データの鍵を再生成することが可能になる。マスキング・プロセスは不可逆的であり、マスクされた値ｙｉ、ｅは、オリジナルのデータｘｉについての情報を公開しない（暗号化鍵ｓｅが開示された場合でも）。鍵再生成動作は、ステップ４４において信頼できないＤＵコンピュータによって実行されることがあり、以前のエポックにおいて送り出されたマスク・データと所定のエポックについての新しい暗号化鍵を用いてマスクされたいずれかの更なるデータとの間で参照整合性が保持されることを保証する。従って、スキームは、鍵進化（key evolution）による動的データ・マスキングを提供し、そこで、鍵の曝露は、過去にマスクされたデータの間の関係を開示せず、鍵再生成の場合、前にマスクされたデータの更新は、信頼できないエンティティにより実行され得る。
【００３９】
上記のスキームの実施は、以下のように形式化することができる。
【００４０】
鍵進化動的データ・マスキング。鍵進化動的データ・マスキング・スキームＤＤＭは、データ空間
【数１】
2020506597.tif 000003
マスクされた空間
【数２】
2020506597.tif 000004
及び以下の条件を満たす多項式時間アルゴリズムＤＤＭ．ｓｅｔｕｐ、ＤＤＭ．ｎｅｘｔ、ＤＤＭ．ｍａｓｋ、及びＤＤＭ．ｕｐｄのセットからなる。
【００４１】
ＤＤＭ．ｓｅｔｕｐ。アルゴリズムＤＤＭ．ｓｅｔｕｐは、データ・プロバイダにより実行される確率的アルゴリズム（probabilistic algorithm）である。セキュリティ・パラメータλの入力時、このアルゴリズムは、システム・パラメータのセットｐａｒ、及びエポックｅ＝０についてのマスキング鍵ｋ０を戻す。つまり、
【数３】
2020506597.tif 000005
であり、ここで、ｒは、アルゴリズムが確率的であることを表す。
【００４２】
ＤＤＭ．ｎｅｘｔ。この確率的アルゴリズムも、データ・プロバイダにより実行される。ｐａｒ、エポックｅ≧０及びそのエポックについてのマスキング鍵ｋｅを入力すると、エポックｅ＋１について、マスキング鍵ｋｅ＋１及びマスク更新値δｅ＋１が出力される。つまり、
【数４】
2020506597.tif 000006
である。
【００４３】
ＤＤＭ．ｍａｓｋ。これは、データ・プロバイダにより実行される決定的単射アルゴリズムである。システム・パラメータｐａｒ、何らかの入力データ
【数５】
2020506597.tif 000007
エポックｅ及びその対応するマスキング鍵ｋｅが与えられた場合、アルゴリズムは、マスクされた値
【数６】
2020506597.tif 000008
を出力する。つまり、ｙｅ←ＤＤＭ．ｍａｓｋ（ｐａｒ，ｘ，ｅ，ｋｅ）である。
【００４４】
ＤＤＭ．ｕｐｄ。この決定的アルゴリズムは、データ・ユーザにより実行され、マスク更新値を使用する。エポックｅからのマスク・データｙｅ及びマスク更新値δｅ＋１の入力時に、ＤＤＭ．ｕｐｄは、ｙｅをｙｅ＋１に更新し、つまり、ｙｅ＋１←ＤＤＭ．ｕｐｄ（ｙｅ，δｅ＋１）である。
【００４５】
上記のスキームの例示的な実施形態が、以下に詳細に説明される。幾つかの予備的なものを最初に説明する。
【００４６】
決定的対称暗号化。対称暗号化スキームＳＥは、鍵空間
【数７】
2020506597.tif 000009
及び以下の条件を満たす３つの多項式時間アルゴリズムＳＥ．ＫｅｙＧｅｎ、ＳＥ．Ｅｎｃ、ＳＥ．Ｄｅｃからなる。
【００４７】
ＳＥ．ＫｅｙＧｅｎ。鍵生成アルゴリズムＳＥ．ＫｅｙＧｅｎは、入力としてセキュリティ・パラメータλを取り、暗号化鍵
【数８】
2020506597.tif 000010
を生成する確率的アルゴリズムである。つまり、
【数９】
2020506597.tif 000011
である。
【００４８】
ＳＥ．Ｅｎｃ。決定的暗号化アルゴリズムは、鍵
【数１０】
2020506597.tif 000012
及びメッセージ
【数１１】
2020506597.tif 000013
を取り、ここで、
【数１２】
2020506597.tif 000014
は、メッセージ空間であり、暗号文Ｃを戻す。ｓ及びｍに対してＳＥ．Ｅｎｃを実行する動作のために、Ｃ←ＳＥ．Ｅｎｃ（ｓ，ｍ）と書き、Ｃは、出力暗号文を示すものとする。
【００４９】
ＳＥ．Ｄｅｃ。決定的暗号化アルゴリズムＳＥ．Ｄｅｃは、鍵
【数１３】
2020506597.tif 000015
及び暗号文Ｃを取り、メッセージ
【数１４】
2020506597.tif 000016
を戻し、ここで、
【数１５】
2020506597.tif 000017
は、エラー記号を示す。ｓ及びＣに対してＳＥ．Ｄｅｃを実行する動作のために、ｍ←ＳＥ．Ｄｅｃ（ｓ，Ｃ）と書き、ｍは、出力メッセージを示すものとする。
【００５０】
ハッシュ関数。我々は、ハッシュ関数
【数１６】
2020506597.tif 000018
をさらに使用し、ここで、
【数１７】
2020506597.tif 000019
は、ハッシュ関数のファミリーを示し、ハッシュ鍵
【数１８】
2020506597.tif 000020
を選択することにより、特定のインスタンスが選択される。入力ｘについてのハッシュ計算は、
【数１９】
2020506597.tif 000021
として示される。我々の構成において、我々は、（弱い）衝突困難性（collision resistant）があり、疑似乱数であり、逆関数にするのが困難な（一方向の）ハッシュ関数を使用する。
【００５１】
決定ディフィー・ヘルマン・グループ（Ｄｅｃｉｓｉｏｎａｌ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ  Ｇｒｏｕｐｓ）。以下の第２の構成は、決定ディフィー・ヘルマン仮定に基づく。我々は、決定ディフィー・ヘルマン・パラメータ生成器を多項式時間アルゴリズムＤＤＨｇｅｎとして定義し、これは、セキュリティ・パラメータλの入力時に、位数ｐの巡回群
【数２０】
2020506597.tif 000022
の記載と共に整数ｐを生成する。
【００５２】
鍵進化ＤＤＭスキームのプライバシー。ＤＤＭの主要目的は、データ値のプライバシーを達成し、相手方がマスクされた値についての情報を得ることができず、それらを、過去のエポックにおいてマスクされた入力データにリンクできないことを保証することである。我々は、マスクされた値のプライバシーについての３つの区別性（indistinguishability）ベースの概念、及び相手方がマスキングを逆にし、以下のように、マスクされたものからの入力値の回復を不可能にする１つの概念について言及する。
【００５３】
ＩＮＤ−ＨＯＣＨ：正直な所有者（Ｈｏｎｅｓｔ  Ｏｗｎｅｒ）とホストの破損（Ｃｏｒｒｕｐｔｅｄ  Ｈｏｓｔ）との区別性。これは、ＤＤＭの鍵進化動的態様に焦点を合わせた最も基本的なセキュリティ基準である。これは、正直であるべき所有者（データ・プロバイダ）を考慮し、対話の間、ホスト（データ・ユーザ）の破損を許容する。相手方は、妥協後の全てのエポックについての更新値にアクセスし、さらに、（大まかに言うと）破損前にマスクされた値を識別することができないはずである。
【００５４】
ＩＮＤ−ＣＯＨＨ。ホストの破損（Ｃｏｒｒｕｐｔｅｄ  Ｈｏｓｔ）と正直な所有者（Ｈｏｎｅｓｔ  Ｏｗｎｅｒ）との区別性。いずれかの時点における所有者（データ・プロバイダ）の破損をモデル化し、相手方は、妥協したエポックのマスキング鍵及び所有者の全ての秘密を学習する。その後、相手方は、所有者を制御することができるが、破損前にマスクされた値の間の対応を学習する必要はない。ホスト（データ・ユーザ）は、（大部分は）正直なままであると考えられる。
【００５５】
ＩＮＤ−ＣＯＴＨ：所有者の破損（Ｃｏｒｒｕｐｔｅｄ  Ｏｗｎｅｒ）とホストの一時的破損（Ｔｒａｎｓｉｅｎｔｌｙ  Ｃｏｒｒｕｐｔｅｄ  Ｈｏｓｔ）との区別性。最初の２つの概念の改良点として、相手方は、その選択に従った複数のエポックの間、ホスト（データ・ユーザ）を一時的に破損させることがあり、また、所有者（データ・プロバイダ）を一度破損させることもある。相手方は、ホストを破損させる場合、特定のエポックの更新値を学習し、所有者を破損させる場合、エポックのマスキング鍵を学習する。所有者の秘密を暴露する前にマスクされたデータ値は、リンク不能なままにする必要がある。
【００５６】
不可逆性：この概念は、所有者（データ・プロバイダ）が第１のエポックにおいて完全に破損し、従って、相手方が全ての秘密を知るシナリオをモデル化する。さらに、マスキング動作は、マスクされた値の観察が、入力空間からの対応する入力を推測するための利点を相手方に与えないという点で、一方向性であるべきである。
【００５７】
図５及び図６は、決定的対称暗号化スキームＳＥ＝（ＳＥ．ＫｅｙＧｅｎ，ＳＥ．Ｅｎｃ；ＳＥ．Ｄｅｃ）、及び衝突計算困難性鍵付きハッシュ関数
【数２１】
2020506597.tif 000023
のファミリーに基づいた、鍵進化データ・マスキング・スキームＤＤＭＳＥを用いるシステム１の動作を示す。この構成において、各エポックｅについてのマスキング鍵ｋｅは、暗号化スキームＳＥについての離散ランダム対称鍵ｓｅと、データ・プロバイダの長期（固定）秘密ハッシュ鍵ｈｋとを含む。エポックｅ＝０についての初期マスキング鍵ｋ０＝（ｓ０，ｈｋ）は、
【数２２】
2020506597.tif 000024
を計算し、
【数２３】
2020506597.tif 000025
を選択することにより、設定動作においてＤＰコンピュータ２により生成される。
【００５８】
最初に図５のデータ転送手順を参照すると、ステップ５０及びステップ５１は、それぞれ図３のステップ３０及びステップ３１に対応する。ステップ５２において、マスクされる各データ項目ｘｉについて、ＤＰコンピュータ２は、ハッシュ関数
【数２４】
2020506597.tif 000026
をそのｘｉ及び秘密ハッシュ鍵ｈｋに適用することにより、第１の値ｈｉを計算する、すなわち、
【数２５】
2020506597.tif 000027
ステップ５３において、ＤＰコンピュータ２は、現在のエポックｅについての暗号化鍵ｓｅを用いて、暗号化スキームＳＥを介してハッシュ値ｈｉを暗号化することにより、マスク・データ項目ｙｉ，ｅを生成する、すなわち、ｙｉ，ｅ←ＳＥ．Ｅｎｃ（ｓｅ，ｈｉ）。後のステップ５４〜５６は、図３のステップ３４〜３６に対応する。
【００５９】
図６の更新プロセスは、各々の現在のエポックｅの満了時に実行される。ステップ６０において、ＤＰコンピュータ２は、次のエポックについての新しい暗号化鍵ｓｅ＋１を、
【数２６】
2020506597.tif 000028
として生成する。ステップ６１において生成されたマスク更新データは、現在の暗号化鍵ｓｅと、新しい暗号化鍵ｓｅ＋１とを含む、すなわち、δ＝（ｓｅ，ｓｅ＋１）。ステップ６２においてδをＤＵコンピュータ３に送った後、ＤＰコンピュータは、ｓｅ及びδを削除し、ステップ６３において、エポック・カウントｅを更新する。従って、新しい暗号化鍵ｓｅ＋１は、新しいエポックにおけるデータ転送のための現在の暗号化鍵ｓｅになる。ステップ６４においてマスク更新データδ＝（ｓｅ，ｓｅ＋１）を受信すると、ＤＵコンピュータ３は、データベース６内に格納されたマスク・データの鍵を再生成する。鍵再生成は、（ａ）復号アルゴリズムＳＥ．Ｄｅｃを介して現在の暗号化鍵ｓｅを用いて各マスク・データ項目ｙｉ，ｅを復号して、第１の値ｈｉを得ること、及び（ｂ）新しい暗号化鍵ｓｅ＋１を用いて暗号化アルゴリズムＳＥ．Ｅｎｃを介して第１の値ｈｉを再暗号化し、これによりｙｉ，ｅ＋１を得ることによって達成される。次に、ＤＵコンピュータは、ステップ６５においてマスク更新データδを削除し、更新プロセスが完了する。
【００６０】
上記の構成は、次のように、鍵進化ＤＤＭスキームのアルゴリズムに関して定めることができる。
【００６１】
ＤＤＭＳＥ．ｓｅｔｕｐ（λ）
（ａ）対称暗号化鍵ｓ０を得るために、
【数２７】
2020506597.tif 000029
を実行する。
（ｂ）ハッシュ鍵
【数２８】
2020506597.tif 000030
をランダムに選ぶ。
（ｃ）ｋ０←（ｓ０，ｈｋ）及び
【数２９】
2020506597.tif 000031
とする。（ｐａｒ，ｋ０）を出力する。
【００６２】
ＤＤＭＳＥ．ｎｅｘｔ（ｐａｒ，ｅ，ｋｅ）。
（ａ）ｋｅを（ｓｅ，ｈｋ）としてパースする。
（ｂ）対称暗号化鍵ｓｅ＋１を得るために、
【数３０】
2020506597.tif 000032
を実行する。
（ｃ）ｋｅ＋１←（ｓｅ＋１，ｈｋ）とし、δｅ＋１＝（ｓｅ，ｓｅ＋１）とする。
（ｄ）（ｋｅ＋１，δｅ＋１）を出力する。
【００６３】
ＤＤＭＳＥ．ｍａｓｋ（ｐａｒ，ｘｉ，ｅ，ｋｅ）。
（ａ）ｋｅを（ｓｅ，ｈｋ）としてパースする。
（ｂ）値
【数３１】
2020506597.tif 000033
を計算する。
（ｃ）ｙｉ，ｅを出力する。
【００６４】
ＤＤＭＳＥ．ｕｐｄ（ｙｉ，ｅ，δｅ＋１）。
（ａ）δｅ＋１を（ｓｅ，ｓｅ＋１）としてパースする。
（ｂ）値ｙｉ，ｅ＋１←ＳＥ．Ｅｎｃ（ｓｅ＋１，ＳＥ．Ｄｅｃ（ｓｅ，ｙｅ））を計算する。
（ｃ）ｙｉ，ｅ＋１を出力する。
【００６５】
前述の構成は、ＩＮＤ−ＨＯＣＨ及びＩＮＤ−ＣＯＨＨのセキュリティ概念、並びに不可逆性要件を達成する効率的なＤＤＭスキームを与える。
【００６６】
図７及び図８は、プロキシ再暗号化方式で更新が実行される離散対数仮定に基づいて、鍵進化データ・マスキング・スキームＤＤＭＤＬを用いるシステム１の動作を示す。このスキームもまた、衝突困難性鍵付きハッシュ関数
【数３２】
2020506597.tif 000034
のファミリー及び決定的暗号化スキームを用いる。しかしながら、このスキームにおいて、マスク更新データは、現在及び新しい暗号化鍵ｓｅ、ｓｅ＋１の所定の関数δを含み、暗号化スキームは、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含み、Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）となる。その結果、マスク・データ項目は、暗号化鍵ｋ＝δを用いてアルゴリズムＥｎｃ（ｋ、Ｘ）を介し、各マスク・データ項目を暗号化することによって更新できることになる。
【００６７】
既述のように、各エポックｅについてのマスキング鍵ｋｅは、ランダム・エポック特有鍵ｓｅと、データ・プロバイダの長期ハッシュ鍵ｈｋとを含む。エポックｅ＝０における初期マスキング鍵ｋ０＝（ｓ０，ｈｋ）は、設定動作において、ＤＰコンピュータ２により生成される。この例においては、鍵ｓ０は、指数
【数３３】
2020506597.tif 000035
をランダムに選択することにより生成され、ここで、
【数３４】
2020506597.tif 000036
は、ｐを法とする整数の群である。ハッシュ鍵は、
【数３５】
2020506597.tif 000037
を選択することにより、既述のように生成される。
【００６８】
図７のデータ転送手順において、ステップ７０〜７２は、それぞれ図５のステップ５０〜５２に対応する。ここでステップ７３において、ＤＰコンピュータ２は、アルゴリズム
【数３６】
2020506597.tif 000038
を介して暗号化鍵ｓｅを用いてデータ項目ｘｉについてのハッシュ値ｈｉを暗号化することによって、マスク・データ項目ｙｉ，ｅを生成する、すなわち、
【数３７】
2020506597.tif 000039
後のステップ７４〜７６は、図５のステップ５４〜５６に対応する。図８の更新プロセスにおいて、ＤＰコンピュータ２は、ステップ８０において新しい暗号化鍵ｓｅ＋１を
【数３８】
2020506597.tif 000040
として生成する。ステップ８１において、現在及び新しい暗号化鍵の商として、マスク更新データが生成される：δ＝ｓｅ＋１／ｓｅ。ステップ８２において、δをＤＵコンピュータ３に送った後、ステップ８３において、ＤＰコンピュータは、ｓｅ及びδを削除し、エポック・カウントｅを更新する。従って、新しい暗号化鍵ｓｅ＋１は、新しいエポックにおけるデータ転送のための現在の暗号化鍵ｓｅとなる。ステップ８４においてマスク更新データδ＝ｓｅ＋１／ｓｅを受信すると、ＤＵコンピュータ３は、暗号化鍵ｋ＝δを用いてアルゴリズムＥｎｃ（ｋ，Ｘ）を介して各マスク・データ項目ｙｉ，ｅを暗号化することによって、データベース６内のマスク・データの鍵を再生成する。従って、
【数３９】
2020506597.tif 000041
であり、これにより、マスク・データ項目は、ｙｉ，ｅ＋１に更新される。ステップ８５において、ＤＵコンピュータはマスク更新データδを削除し、更新プロセスは終了する。
【００６９】
第２の構成は、次のように、鍵進化ＤＤＭスキームのアルゴリズムに関して定めることができる。
【００７０】
ＤＤＭＤＬ．ｓｅｔｕｐ（λ）。
（ａ）指数
【数４０】
2020506597.tif 000042
及びハッシュ鍵
【数４１】
2020506597.tif 000043
をランダムに選ぶ。
（ｂ）ｋ０←（ｓ０，ｈｋ）及び
【数４２】
2020506597.tif 000044
とする。（ｐａｒ，ｋ０）を出力する。
【００７１】
ＤＤＭＤＬ．ｎｅｘｔ（ｐａｒ，ｅ，ｋｅ）。
（ａ）ｋｅを（ｓｅ，ｈｋ）としてパースする。
（ｂ）指数
【数４３】
2020506597.tif 000045
をランダムに選ぶ。
（ｃ）ｋｅ＋１←（ｓｅ＋１，ｈｋ）とし、δｅ＋１＝ｓｅ＋１／Ｓｅとする。
（ｄ）（ｋｅ＋１，δｅ＋１）を出力する。
【００７２】
ＤＤＭＤＬ．ｍａｓｋ（ｐａｒ，ｘｉ，ｅ，ｋｅ）。
（ａ）ｋｅを（ｓｅ，ｈｋ）としてパースする。
（ｂ）
【数４４】
2020506597.tif 000046
を計算する。
（ｃ）ｙｉ，ｅを出力する。
【００７３】
ＤＤＭＳＥ．ｕｐｄ（ｙｉ，ｅ，δｅ＋１）。
（ａ）
【数４５】
2020506597.tif 000047
を計算する。
（ｂ）ｙｉ，ｅ＋１を出力する。
【００７４】
第２の構成は、不可逆性及び３つのセキュリティ概念ＩＮＤ−ＨＯＣＨ、ＩＮＤ−ＣＯＨＨ、及びＩＮＤ−ＣＯＴＨの全てを達成する、並外れてセキュアで効率的なＤＤＭスキームを与える。マスクされた値を更新するために、データ・ユーザには、暗号化鍵自体は与えられず、現在及び新しい指数の商だけが与えられる。このことは、データ・ユーザがマスク・データを一貫して更新することを可能にするが、更新プロセスにおける内部ハッシュを公開せず、エポックにわたるマスクされた値の非連結性（unlinkability）を保証し、従って、ＩＮＤ−ＣＯＴＨセキュリティの最強の概念を満足させる。
【００７５】
上記の実施形態は、証明可能なセキュアな（provably-secure）暗号法に基づいた動的データ・マスキング・スキームを提供し、信頼できないドメインにおけるマスク・データの効率的かつ一貫した鍵再生成により鍵進化をサポートすることが分かるであろう。
【００７６】
もちろん、説明される例示的な実施形態に対して、多くの変更及び修正をなすことができる。例えば、当業者であれば、アルゴリズムＥｎｃ（ｋ，Ｘ）及びＥｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）を満たすマスク更新値δのための代替的な構成も考えることができる。内部マスキング層において、他の一方向性関数Ｆを使用することもできる。また、この層内の静的秘密鍵ｈｋの使用によりセキュリティが付加されるが、幾つかの実施形態においては、静的鍵ｈｋを用いずに、一方向性関数をデータ項目ｘｉに適用することができる。例えば内部ハッシュｈｉを公開しない実施形態において、静的鍵の使用はあまり重要でない。
【００７７】
上の第１の構成は、対称暗号化スキームを用いるが、効率の低下はあるが、所望であれば、非対称暗号化スキームを用いることもできる。非対称暗号化を用いる場合、暗号化及び復号のために異なる鍵対の鍵が用いられ、それにより、マスク更新データは、現在のエポックについての復号鍵、及び次のエポックについての暗号化鍵を含む。さらに、具体的な例は、動的データ・マスキング・スキームを説明するが、説明される原理を静的データ・マスキング・シナリオにおいて利点に適用することもできる。
【００７８】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際的な用途、若しくは市場において見いだされる技術に優る技術的改善を最も良く説明するように、又は当業者が本明細書で開示される実施形態を理解することを可能にするように、選択されたものである。
【符号の説明】
【００７９】
１：システム
２：データ・プロバイダ（ＤＰ）コンピュータ
３：データ・ユーザ（ＤＵ）コンピュータ
４：ネットワーク
５、６：データベース（データ・ストレージ）
１０：コンピュータ
１１：処理ユニット
１２：メモリ
１３：バス
１８：プログラム・モジュール
１９：外部デバイス
【図１】
2020506597.tif 000048
【図２】
2020506597.tif 000049
【図３】
2020506597.tif 000050
【図４】
2020506597.tif 000051
【図５】
2020506597.tif 000052
【図６】
2020506597.tif 000053
【図７】
2020506597.tif 000054
【図８】
2020506597.tif 000055
【手続補正書】
【提出日】令和1年9月18日(2019.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ・プロバイダ・コンピュータにおけるデータ・マスキングのためのコンピュータ実施方法であって、
プロセッサ・システムを用いて、データ・ユーザ・コンピュータに送られるデータにアクセスすることと、
前記プロセッサ・システムを用いて、前記送られるデータ内の少なくとも１つの所定のデータ項目に対して、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目を前記マスク・データ項目に置換することにより、マスク・データを生成することと、
前記マスク・データを前記データ・ユーザ・コンピュータに送ることと、
前記現在のエポックの満了時に、新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵を生成し、前記現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送ることと、
を含み、
前記マスク更新データは、前記データ・ユーザ・コンピュータにおいて、前記現在の暗号化鍵を用いて生成されたマスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することを可能にする、方法。
【請求項２】
前記新しいエポック及び後の新しいエポックの各々の満了時に、前記新しい暗号化鍵を生成し、前記マスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送るステップを実行することを含む、請求項１に記載の方法。
【請求項３】
前記新しいエポックの少なくとも一部の各々の間、
前記データ・ユーザ・コンピュータに送られる更なるデータにアクセスすることと、
前記更なるデータについて、そのエポックについての前記現在の暗号化鍵として前記新しい暗号化鍵を用いてマスク・データを生成し、前記更なるマスク・データを前記データ・ユーザ・コンピュータに送るステップを実行することと、
を含む、請求項２に記載の方法。
【請求項４】
前記暗号化スキームは、対称暗号化スキームを含み、前記マスク更新データは、前記現在の暗号化鍵及び前記新しい暗号化鍵を含む、請求項１に記載の方法。
【請求項５】
前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成することを含む、請求項４に記載の方法。
【請求項６】
前記一方向性関数は、ハッシュ関数を含む、請求項５に記載の方法。
【請求項７】
前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、前記暗号化スキームは、
ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、
Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）
となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含む、請求項１に記載の方法。
【請求項８】
前記アルゴリズムＥｎｃ（ｋ，Ｘ）＝Ｘｋ及びδ＝ｓｅ＋１／ｓｅである、請求項７に記載の方法。
【請求項９】
前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成することを含む、請求項８に記載の方法。
【請求項１０】
前記一方向性関数は、ハッシュ関数を含む、請求項９に記載の方法。
【請求項１１】
データ・ユーザ・コンピュータにおいてマスク・データを管理するためのコンピュータ実施方法であって、
プロセッサ・システムを用いて、データ・プロバイダ・コンピュータからマスク・データを受け取ることであって、前記マスク・データは、一方向性関数をデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することにより生成される少なくとも１つのマスク・データ項目を含む、受け取ることと、
メモリを用いて、前記マスク・データを格納することと、
前記現在のエポックの満了時に、前記データ・プロバイダ・コンピュータから、前記現在の暗号化鍵及び新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受け取ることと、
前記マスク更新データを用いて、前記格納されたマスク・データ内の、前記現在の暗号化鍵を用いて生成された各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することと、
を含む、方法。
【請求項１２】
前記新しいエポック及び後の新しいエポックの各々の満了時に、
前記データ・プロバイダ・コンピュータから、そのエポックについての前記暗号化鍵及び次のエポックにおける前記暗号化スキームのための新しい暗号化鍵に依存するマスク更新データを受け取ることと、
そのマスク更新データを用いて、前記格納されたマスク・データ内の各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新することと、
を含む、請求項１１に記載の方法。
【請求項１３】
前記新しいエポックの少なくとも一部の各々の間、
前記データ・プロバイダ・コンピュータから、前記一方向性関数をデータ項目に適用して第１の値を生成し、そのエポックについての前記暗号化鍵を用いて前記暗号化スキームを介して前記第１の値を暗号化することにより生成される少なくとも１つのマスク・データ項目を含む更なるマスク・データを受け取ることと、
前記更なるマスク・データを格納することと、
を含む、請求項１２に記載の方法。
【請求項１４】
前記暗号化スキームは対称暗号化スキームを含み、前記マスク更新データは、前記現在の暗号化鍵及び前記新しい暗号化鍵を含み、前記方法は、
前記マスク更新データを用いて、前記暗号化スキームの復号アルゴリズムを介して、前記現在の暗号化鍵を用いてそのマスク・データ項目を復号して前記第１の値を取得し、前記新しい暗号化鍵を用いて前記暗号化スキームを介して前記第１の値を再暗号化することにより、前記格納されたマスク・データ内の各マスク・データ項目を更新することを含む、請求項１１に記載の方法。
【請求項１５】
前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、前記暗号化スキームは、
ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、
Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）
となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含み、前記方法は、
前記マスク更新データを用いて、前記暗号化鍵ｋ＝δを用いて前記アルゴリズムＥｎｃ（ｋ，Ｘ）を介してそのマスク・データ項目を暗号化することにより、前記格納されたマスク・データ内の各マスク・データ項目を更新することを含む、請求項１１に記載の方法。
【請求項１６】
前記アルゴリズムＥｎｃ（ｋ，Ｘ）＝Ｘｋ及びδ＝ｓｅ＋１／ｓｅである、請求項１５に記載の方法。
【請求項１７】
データ・マスキングのためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プログラム命令を含み、前記プログラム命令は、データ・プロバイダ・コンピュータにより実行可能であり、前記データ・プロバイダ・コンピュータに、請求項１ないし１０のいずれか一項に記載の方法を実行させる、コンピュータ・プログラム。
【請求項１８】
マスク・データを管理するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プログラム命令を含み、前記プログラム命令は、データ・ユーザ・コンピュータにより実行可能であり、前記データ・ユーザ・コンピュータに、請求項１１ないし１６のいずれか一項に記載の方法を実行させる、コンピュータ・プログラム。
【請求項１９】
ネットワークを介して通信するように動作可能なデータ・プロバイダ・コンピュータ及びデータ・ユーザ・コンピュータを含むシステムであって、
前記データ・プロバイダ・コンピュータは、
データ・ユーザ・コンピュータに送られるデータにアクセスし、
前記送られるデータ内の少なくとも１つの所定のデータ項目に対して、一方向性関数をそのデータ項目に適用して第１の値を生成し、現在のエポックについての現在の暗号化鍵を用いて決定的暗号化スキームを介して前記第１の値を暗号化することによりマスク・データ項目を生成し、そのデータ項目を前記マスク・データ項目に置換することにより、マスク・データを生成し、
前記マスク・データを前記データ・ユーザ・コンピュータに送り、
前記現在のエポックの満了時に、新しいエポックにおける前記暗号化スキームのための新しい暗号化鍵を生成し、前記現在の及び新しい暗号化鍵に依存するマスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送る、
ように適合され、
前記データ・ユーザ・コンピュータは、前記データ・プロバイダ・コンピュータから前記マスク・データを受け取ることに応答して、前記マスク・データを格納し、前記データ・プロバイダ・コンピュータから前記マスク更新データを受け取ることに応答して、前記マスク更新データを用いて、前記格納されたマスク・データ内の、前記現在の暗号化鍵を用いて生成された各マスク・データ項目を、前記新しい暗号化鍵を用いて生成されたマスク・データ項目に更新するように適合される、システム。
【請求項２０】
前記データ・プロバイダ・コンピュータは、前記新しいエポック及び後の新しいエポックの各々の満了時に、前記新しい暗号化鍵を生成し、前記マスク更新データを生成し、前記マスク更新データを前記データ・ユーザ・コンピュータに送るようにさらに適合され、
前記データ・ユーザ・コンピュータは、前記新しいエポックの各々の満了時に、前記データ・プロバイダ・コンピュータから前記マスク更新データを受け取ることに応答して、前記マスク更新データを用いて、前記格納されたマスク・データ内の各マスク・データを、前記新しい鍵を用いて生成されるマスク・データ項目に更新するようにさらに適合される、請求項１９に記載のシステム。
【請求項２１】
前記データ・プロバイダ・コンピュータは、前記一方向性関数を前記データ項目及び前記データ・プロバイダ・コンピュータの秘密鍵に適用して前記第１の値を生成するように適合され、前記マスク更新データは、前記現在の及び新しい暗号化鍵の所定の関数δを含み、前記暗号化スキームは、ｓｅが前記現在の暗号化鍵であり、ｓｅ＋１が前記新しい暗号化鍵である場合に、Ｅｎｃ（δ，（Ｅｎｃ（ｓｅ，Ｘ））＝Ｅｎｃ（ｓｅ＋１，Ｘ）となるように、暗号化鍵ｋの下で値Ｘを暗号化するためのアルゴリズムＥｎｃ（ｋ，Ｘ）を含むように適合され、
前記データ・ユーザ・コンピュータは、前記マスク更新データを用いて、暗号化鍵ｋ＝δを用いて前記アルゴリズムＥｎｃ（ｋ、Ｘ）を介してそのマスク・データ項目を暗号化することにより、前記格納されたマスク・データ内の各マスク・データを更新するように適合される、請求項１９に記載のシステム。
【国際調査報告】
2020506597.tif 000056
2020506597.tif 000057