(57)【要約】      （修正有）【課題】フォーマットを維持し、データをマスキングするフォーマット維持ベースマスキングシステムおよび方法を提供する。【解決手段】複数の字の第１のセットと、プライベートキーとを取得し、第１のセットおよびプライベートキーを用いて、複数の字の第１のセットを暗号化し、複数の暗号化済みの字のリストを取得する。複数の暗号化済みの字のリストは、複数の暗号化済みの字のセットを含む。複数の暗号化済みの字に基づいて、動的マップを作成する。動的マップは、１つ以上のキーを含み、キーのそれぞれは、複数の字の第１のセット内の字に対して特有である。動的マップを用いて、複数の字の第２のセット内の複数のマスキング可能な字のそれぞれの位置を算出する。動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行する。【選択図】図２
2017092929.tif 000002
【特許請求の範囲】
【請求項１】
フォーマット維持ベースマスキングシステムであって、
複数の命令を保存しているメモリーと、
前記メモリーに接続されたハードウェアプロセッサーと、を含み、
前記ハードウェアプロセッサーは、前記複数の命令によって、
ユーザーから、複数の字の入力セットおよびプライベートキーを取得する工程と、
複数の字のセットおよび前記プライベートキーを用いて、前記複数の字のセットを暗号化し、複数の暗号化済みの字のリストを取得する工程と、
前記複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、
前記動的マップを用いてマスキングされる前記複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、
前記動的マップを用い、前記複数のマスキング可能な字のそれぞれの前記位置に基づいて、前記複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行するよう構成されており、
前記複数の暗号化済みの字のリストは、複数の暗号化済みの字のセットを含み、
前記動的マップは、複数のキーのセットを含み、
前記複数のキーのそれぞれは、前記複数の字のセット内の字に特有であることを特徴とするフォーマット維持ベースマスキングシステム。
【請求項２】
前記複数の字のセットおよび前記複数の字の入力セットは、文字、数字、および記号の少なくとも１つを含む請求項１に記載のフォーマット維持ベースマスキングシステム。
【請求項３】
前記複数の字のセットおよび前記複数の字の入力セットは、１つ以上の言語から選択される請求項１に記載のフォーマット維持ベースマスキングシステム。
【請求項４】
前記複数の字の入力セットが１つ以上の数字を含む場合、前記ハードウェアプロセッサーは、さらに、前記複数の命令によって、
前記１つ以上の数字の最重要ビット（ＭＳＢ）マップを作成する工程と、
前記動的マップおよび前記ＭＳＢマップを用いて、前記複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、
前記動的マップおよび前記ＭＳＢマップを用い、前記複数のマスキング可能な字のそれぞれの前記位置に基づいて、前記複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行するよう構成されている請求項１に記載のフォーマット維持ベースマスキングシステム。
【請求項５】
前記ハードウェアプロセッサーは、さらに、前記複数の命令によって、
前記複数の暗号化済みの字のリスト内の複数の字の順番を判別する工程と、
前記複数の字の順番から、前記複数の暗号化済みの字のリストをソートし、ソートされた複数の暗号化済みの字のリストを取得する工程と、
前記ソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、
前記動的マップを用いてマスキングされる前記複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、
前記動的マップを用い、前記複数のマスキング可能な字のそれぞれの前記位置に基づいて、前記複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行するよう構成されており、
前記動的マップは、複数のキーのセットと、複数の値とを含み、
前記複数のキーのそれぞれは、前記複数の字のセット内の少なくとも１つの字に特有であり、
前記複数の値のそれぞれは、前記複数の字のセットからマスキングされる１つ以上の再配置された字を含む請求項１に記載のフォーマット維持ベースマスキングシステム。
【請求項６】
前記動的マップは、前記複数の字のセット内のそれぞれの字用にマスキングされ、置換された字を示すインデックスをさらに含む請求項１に記載のフォーマット維持ベースマスキングシステム。
【請求項７】
前記１つ以上の数字が、特定の範囲を示す場合、前記１つ以上の数字を含む前記複数のマスキング可能な字は、前記特定の範囲内においてマスキングされる請求項４に記載のフォーマット維持ベースマスキングシステム。
【請求項８】
コンピューター実施のフォーマット維持ベースマスキング方法であって、
ユーザーから、複数の字の入力セットおよびプライベートキーを取得する工程と、
複数の字のセットおよび前記プライベートキーを用いて、前記複数の字のセットを暗号化し、複数の暗号化済みの字のリストを取得する工程と、
前記複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、
前記動的マップを用いてマスキングされる前記複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、
前記動的マップを用い、前記複数のマスキング可能な字のそれぞれの前記位置に基づいて、前記複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を含み、
前記複数の暗号化済みの字のリストは、複数の暗号化済みの字のセットを含み、
前記動的マップは、複数のキーのセットを含み、
前記複数のキーのそれぞれは、前記複数の字のセット内の字に特有であることを特徴とするコンピューター実施のフォーマット維持ベースマスキング方法。
【請求項９】
前記複数の字のセットおよび前記複数の字の入力セットは、文字、数字、および記号の少なくとも１つを含み、
前記複数の字のセットおよび前記複数の字の入力セットは、１つ以上の言語から選択される請求項８に記載のコンピューター実施のフォーマット維持ベースマスキング方法。
【請求項１０】
前記複数の字の入力セットが１つ以上の数字を含む場合、前記コンピューター実施のフォーマット維持ベースマスキング方法は、
前記１つ以上の数字の最重要ビット（ＭＳＢ）マップを作成する工程と、
前記動的マップおよび前記ＭＳＢマップを用いて、前記複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、
前記動的マップおよび前記ＭＳＢマップを用い、前記複数のマスキング可能な字のそれぞれの前記位置に基づいて、前記複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、をさらに含む請求項８に記載のコンピューター実施のフォーマット維持ベースマスキング方法。
【請求項１１】
前記複数の暗号化済みの字のリスト内の複数の字の順番を判別する工程と、
前記複数の字の順番から、前記複数の暗号化済みの字のリストをソートし、ソートされた複数の暗号化済みの字のリストを取得する工程と、
前記ソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、
前記動的マップを用いてマスキングされる前記複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、
前記動的マップを用い、前記複数のマスキング可能な字のそれぞれの前記位置に基づいて、前記複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、をさらに含み、
前記動的マップは、複数のキーのセットと、複数の値とを含み、
前記複数のキーのそれぞれは、前記複数の字のセット内の少なくとも１つの字に特有であり、
前記複数の値のそれぞれは、前記複数の字のセットからマスキングされる１つ以上の再配置された字を含む請求項８に記載のコンピューター実施のフォーマット維持ベースマスキング方法。
【請求項１２】
前記１つ以上の数字が、特定の範囲を示す場合、前記１つ以上の数字を含む前記複数のマスキング可能な字は、前記特定の範囲内においてマスキングされる請求項１０に記載のコンピューター実施のフォーマット維持ベースマスキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照および優先権
本出願は、２０１５年１１月７日出願のインド国特許出願第４２４４／ＭＵＭ／２０１５号に基づく優先権を主張し、該インド国特許出願の開示内容の全てが、参照によりここに組み込まれる。
【０００２】
本発明は、一般に、情報プライバシーシステムに関し、より具体的には、フォーマット維持ベースマスキングシステムおよび方法（format preservation based masking system and method）に関する。
【背景技術】
【０００３】
複数の組織が、非生産環境（non-production environment）において、ある目的をテストするために、意図せず、製品データを共有してしまうことがある。これは、データブリーチ（data breach:セキュアに管理すべきデータが漏洩してしまうこと）のリスクを増大させることになる。極秘データ（sensitive data）のマスキングは、複数の組織がデータプライバシー規則を順守するために導入する発見的問題解決（heuristic）アプローチである。現在のデータマスキングツールは、高いデータ有用性（data utility）を維持し、さらに、顧客の極秘データの非開示を維持する非生産環境におけるデータ共有のために、複数の組織によって用いられている。これらのツールは、極秘データをマスキングし、いくつかのデータプライバシー予想（data privacy expectations）を満たすことができる様々なマスキング技術を提供している。しかしながら、これらのツールは、オリジナルデータを置き換えるための所定の静的ルックアップ（static lookup）を用いることにより、データをマスキングする。このような技術（またはツール）を用いると、オリジナルデータを容易に復元（または解読）することができるため、有用性およびプライバシーへの不正アクセスに繋がる脆弱なセキュリティになってしまう。さらに、既存の方法では、データを特定の範囲内で特定する必要がある。
【０００４】
さらに、既存の方法は、オリジナルおよびマスキングされたデータマッピングの物理ルックアップに対して作用する。これは、提供可能（presentable）かつ安全なフォーマットでのデータの生成、更新、および処理の観点から、より多くのディスクスペースおよびより多くの時間を消費する演算システムを必要とする。そのため、データのフォーマットを破壊することなく、企業レベルでのデータ共有の整合性（consistency）を維持することが課題となっている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下の記述は、本発明の基本的な理解を提供するために、本発明のいくつかの実施形態の簡略化された概要を提供する。この概要は、実施形態の詳細な概観ではない。本概要は、本発明の重要／決定的な要素を特定、または本発明の範囲を正確に記述するよう意図されたものではない。本概要の唯一つの目的は、以下に提供されるより詳細な記述の前置きとして、簡略化された形式で、いくつかの実施形態を提供することにある。
【０００６】
上述の事項を参照し、実施形態の１つにおいて、フォーマット維持ベースマスキングシステムが提供される。フォーマット維持ベースマスキングシステムは、複数の命令を保存しているメモリーと、該メモリーに接続されたハードウェアプロセッサーとを含む。ハードウェアプロセッサーは、複数の命令によって、ユーザーから、複数の字（letters）の入力セットおよびプライベートキーを取得する工程と、複数の字のセットおよびプライベートキーを用いて、複数の字のセットを暗号化し、複数の暗号化済みの字のリストを取得する工程と、複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いてマスキングされる複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行するよう構成されている。ここで、複数の暗号化済みの字のリストは、複数の暗号化済みの字のセットを含み、動的マップは、複数のキーのセットを含む。また、複数のキーのそれぞれは、複数の字のセット内の字にそれぞれ特有（specific：特有、固有、一意的）である。
【０００７】
複数の字のセットおよび複数の字の入力セットは、文字（characters）、数字、および記号の少なくとも１つを含む。さらに、複数の字のセットおよび複数の字の入力セットは、１つ以上の言語から選択される。複数の字の入力セットが１つ以上の数字を含む場合、ハードウェアプロセッサーは、さらに、複数の命令によって、１つ以上の数字の最重要ビット（ＭＳＢ：Most Significant Bit）マップを作成する工程と、動的マップおよびＭＳＢマップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップおよびＭＳＢマップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行するよう構成されている。
【０００８】
さらに、ハードウェアプロセッサーは、複数の命令によって、複数の暗号化済みの字のリスト内の複数の字の順番を判別する工程と、複数の字の順番から、複数の暗号化済みの字のリストをソートし、ソートされた複数の暗号化済みの字のリストを取得する工程と、ソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いてマスキングされる複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行するよう構成されている。ここで、動的マップは、複数のキーのセットと、複数の値を含み、複数のキーのそれぞれは、複数の字のセット内の少なくとも１つの字に特有であり、複数の値のそれぞれは、複数の字のセットからマスキングされる１つ以上の置換された字を含む。さらに、動的マップは、複数の字のセット内のそれぞれの字用のマスキングされ、置換された字を示すインデックスを含む。
【０００９】
１つ以上の数字が特定の範囲を示す場合、１つ以上の数字を含む複数のマスキング可能な字は、特定の範囲内においてマスキングされる。
【００１０】
別の様態において、コンピューター実施のフォーマット維持ベースマスキング方法が提供される。該方法は、ユーザーから、複数の字の入力セットおよびプライベートキーを取得する工程と、複数の字のセットおよびプライベートキーを用いて、複数の字のセットを暗号化し、複数の暗号化済みの字のセットを含む複数の暗号化済みの字のリストを取得する工程と、複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いてマスキングされる複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を含む。ここで、動的マップは、複数のキーのセットを含み、複数のキーのそれぞれは、複数の字のセット内の字に特有である。
【００１１】
複数の字のセットおよび複数の字の入力セットは、文字、数字、および記号の少なくとも１つを含む。さらに、複数の字のセットおよび複数の字の入力セットは、１つ以上の言語から選択される。
【００１２】
複数の字の入力セットが１つ以上の数字を含む場合、該方法は、１つ以上の数字の最重要ビット（ＭＳＢ）マップを作成する工程と、動的マップおよびＭＳＢマップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップおよびＭＳＢマップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を含む。
【００１３】
該方法は、複数の暗号化済みの字のリスト内の複数の字の順番を判別する工程と、複数の字の順番から、複数の暗号化済みの字のリストをソート（sort）し、ソートされた複数の暗号化済みの字のリストを取得する工程と、ソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いてマスキングされる複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を含む。ここで、動的マップは、複数のキーのセットと、複数の値とを含み、複数のキーのそれぞれは、複数の字のセット内の少なくとも１つの字に特有であり、複数の値のそれぞれは、複数の字のセットからマスキングされる１つ以上の再配置された字を含む。
【００１４】
さらに別の様態において、１つ以上の命令を含む非一時的マシーン可読情報記憶媒体（non-transitory machine readable information storage medium）が提供される。１つ以上の命令は、１つ以上のハードウェアプロセッサーによって実行されたとき、ユーザーから、複数の字の入力セットおよびプライベートキーを取得する工程と、複数の字のセットおよびプライベートキーを用いて、複数の字のセットを暗号化し、複数の暗号化済みの字のセットを含む複数の暗号化済みの字のリストを取得する工程と、複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いてマスキングされる複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行させる。ここで、動的マップは、複数のキーのセットを含み、複数のキーのそれぞれは、複数の字のセット内の字に特有である。
【００１５】
複数の字のセットおよび複数の字の入力セットは、文字、数字、および記号の少なくとも１つを含む。さらに、複数の字のセットおよび複数の字の入力セットは、１つ以上の言語から選択される。
【００１６】
複数の字の入力セットが１つ以上の数字を含む場合、１つ以上の命令は、１つ以上のハードウェアプロセッサーによって実行されたとき、１つ以上の数字の最重要ビット（ＭＳＢ）マップを作成する工程と、動的マップおよびＭＳＢマップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップおよびＭＳＢマップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行させる。
【００１７】
さらに、１つ以上の命令は、１つ以上のハードウェアプロセッサーによって実行されたとき、複数の暗号化済みの字のリスト内の複数の字の順番を判別する工程と、複数の字の順番から、複数の暗号化済みの字のリストをソートし、ソートされた複数の暗号化済みの字のリストを取得する工程と、ソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いてマスキングされる複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程と、を実行させる。ここで、動的マップは、複数のキーのセットと、複数の値とを含み、複数のキーのそれぞれは、複数の字のセット内の少なくとも１つの字に特有であり、複数の値のそれぞれは、複数の字のセットからマスキングされる１つ以上の再配置された字を含む。さらに、１つ以上の数字が特定の範囲を示す場合、１つ以上の数字を含む複数のマスキング可能な字は、特定の範囲内においてマスキングされる。
【００１８】
本分野における当業者であれば、ここに提供される任意のブロック図が、本発明の原理を具体化する説明のシステムの概念図を表すことを適切に理解できるであろう。同様に、任意のフローチャート、フロー図、状態遷移図、擬似コード等は、コンピューター可読媒体内において実質的に実現され、明示的に図示または図示されない演算デバイスまたはプロセッサーによって実行される様々な処理を表すことは、適切に理解されるであろう。
【図面の簡単な説明】
【００１９】
ここに開示される本発明は、図面を参照した以下の詳細な説明から、より深く理解されるであろう。
【００２０】
【図１】図１は、本発明の実施形態に係るフォーマット維持ベースマスキングシステム１００のブロック図である。
【００２１】
【図２】図２は、本発明の実施形態に係る図１のフォーマット維持ベースマスキングシステムを用いたコンピューター実施のフォーマット維持ベースマスキング方法を示すフロー図である。
【００２２】
【図３Ａ】図３Ａは、本発明の１つ以上の実施形態に係る複数の文字（例えば、所在地住所）を含む複数の字のセットのオリジナルデータおよびマスキングされたデータの例示的な比較図である。
【００２３】
【図３Ｂ】図３Ｂは、本発明の１つ以上の実施形態に係る特定の範囲内の最低給料のオリジナルデータおよびマスキングされたデータの例示的な図である。
【００２４】
【図３Ｃ】図３Ｃは、本発明の１つ以上の実施形態に係る特定の範囲内ではない最低給料のオリジナルデータおよびマスキングされたデータの例示的な図である。
【００２５】
【図３Ｄ】図３Ｄは、本発明の１つ以上の実施形態に係る漢字のオリジナルデータおよびマスキングされたデータの例示的な図である。
【００２６】
【図３Ｅ】図３Ｅは、本発明の１つ以上の実施形態に係る所定の値でマスキングされる特定の値を示す例外シナリオのオリジナルデータおよびマスキングされたデータの例示的な図である。
【発明を実施するための形態】
【００２７】
本発明、並びに、その様々な特徴および利点の詳細は、添付の図面に示され、以下の詳細な説明において記述される非限定的な実施形態を参照することにより、さらに十分に説明される。ここで用いられる実施例は、本発明を実施可能とし、さらに、本分野における当業者が本発明を実施可能とするような様態での発明の理解を容易とするためにのみ用いられるものである。したがって、実施例は、本発明の範囲の限定として解釈されるべきではない。
【００２８】
用語「含む（comprising）」、「有する（having）」、「含む／含有する（containing）」、「備える（including）」、およびこれらの他の形式は、同等の意味を表すものであり、これらの任意の１つの用語に続く１つまたは複数の項目が含まれるオープンエンドなリストを意味し、これらの１つまたは複数の項目の完全網羅的なリスト（クローズドエンドなリスト）を意味するものではなく、リストされた１つまたは複数の項目にのみ限定されるという意味ではない。
【００２９】
本明細書および添付の特許請求の範囲において用いられる単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が明示的に示していない限り、複数への参照を含むことに留意すべきである。ここに記述されるものと同様または同等の任意のシステムおよび方法は、本発明の実施形態の実施またはテストにおいて使用可能であるが、好適なシステムおよび方法が、以下に記述される。
【００３０】
その全ての特徴が説明される本発明のいくつかの実施形態が、詳細に記述される。開示の実施形態は、様々な形態において実施可能な本発明の例示にすぎない。
【００３１】
詳細な例示を説明する前に、以下の議論の全ては、記述される特定の実施形態に関わらず、限定のためではなく、事実上、説明のためのものであることを留意されたし。
【００３２】
図面、より具体的には図１から図３Ｅを参照すると、同様の参照記号が、対応する特徴に、全ての図面を通して一貫して付されている。好適な実施形態が示され、これらの実施形態が以下の例示的なシステムおよび／または方法の文脈において記述される。
【００３３】
図１は、本発明の実施形態に係るフォーマット維持ベースマスキングシステムのブロック図を示している。用語「フォーマット維持ベースマスキングシステム」および「システム」は、本明細書において、ほぼ同じ意味で用いられる。フォーマット維持ベースマスキングシステム１００は、メモリー１０２と、ハードウェアプロセッサー１０４と、入力／出力（Ｉ／Ｏ）インターフェース１０６とを含む。さらに、メモリー１０２は、１つ以上のモジュール１０８を含む。メモリー１０２、ハードウェアプロセッサー１０４、入力／出力（Ｉ／Ｏ）インターフェース１０６、および／またはモジュール１０８は、システムバスまたは同様のメカニズムによって接続されている。
【００３４】
メモリー１０２は、本発明の機能（または実施形態）を実施するためにコンピューターシステム、例えば、フォーマット維持ベースマスキングシステム１００によって用いられる複数の命令、任意の数の情報およびデータを保存している。メモリー１０２は、例えば、揮発性メモリーおよび／または不揮発性メモリーを含む。揮発性メモリーの例としては、これに限定されるものではないが、揮発性ランダムアクセスメモリー（ＲＡＭ）が挙げられる。不揮発性メモリーは、追加的または代替的に、電気的消去可能プラグラム可能リードオンリーメモリー（ＥＥＰＲＯＭ）、フラッシュメモリー、ハードドライブ等を含む。揮発性メモリーのいくつかの例としては、これに限定されるものではないが、ランダムアクセスメモリー、ダイナミックランダムアクセスメモリー、スタティックランダムアクセスメモリー等が挙げられる。非揮発性メモリーのいくつかの例としては、これに限定されるものではないが、ハードディスク、磁気テープ、光ディスク、プログラム可能リードオンリーメモリー、消去可能プログラム可能リードオンリーメモリー、電気的消去可能プログラム可能リードオンリーメモリー、フラッシュメモリー等が挙げられる。メモリー１０２は、フォーマット維持ベースマスキングシステム１００が様々な例示的な実施形態に係る様々な機能を実行することを可能とする情報、データ、アプリケーション、命令等を保存するよう構成されている。
【００３５】
追加的または代替的に、メモリー１０２は、ハードウェアプロセッサー１０４によって実行されたとき、フォーマット維持ベースマスキングシステム１００に、様々な実施形態において記述される方法（例えば、動的マップ作成、データのマスキング、複数の字のリストの暗号化、および複数の暗号化済みの字のリストのソート）を実行させる複数の命令を保存するよう構成されている。メモリー１０２は、情報、例えば、少なくとも１つの字等を含む情報を保存している。複数の字は、文字（character）、数字、記号、および空白／空欄（whitespace/blank space）の少なくとも１つを含む。文字は、大文字または小文字の少なくとも一方である。複数の字は、１つ以上の言語（例えば、英語、ヒンディー語、カンナダ語、タミル語、テルグ語、中国語、日本語等）を含む。
【００３６】
ハードウェアプロセッサー１０４は、１つ以上のマイクロプロセッサー、マイクロコンピューター、マイクロコントローラー、デジタル信号プロセッサー、中央演算ユニット（ＣＰＵ）、状態マシーン、論理回路、および／または動作命令に基づいて信号を操作する任意のデバイスとして実施される。さらに、ハードウェアプロセッサー１０４は、マルチコアアーキテクチャを含んでいてもよい。機能の中でも特に、ハードウェアプロセッサー１０４は、メモリー１０２内に保存されている複数のコンピューター可読命令（computer-readable instruction）またはモジュールをフェッチ（fetch:命令コードを読み出すこと）および実行するよう構成されている。ハードウェアプロセッサー１０４は、特に、通信関連の音声および論理機能を実施する電気回路を含んでいてもよい。例えば、ハードウェアプロセッサー１０４は、これに限定されるものではないが、１つ以上のデジタル信号プロセッサー（ＤＳＰｓ）、１つ以上のマイクロプロセッサー、１つ以上の特殊用途コンピューターチップ、１つ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）、１つ以上の特定用途向け集積回路（ＡＳＩＣｓ）、１つ以上のコンピューター、様々なアナログ−デジタルコンバーター、デジタル−アナログコンバーター、および／またはその他のサポート回路を含む。
【００３７】
また、このハードウェアプロセッサー１０４は、メッセージおよび／またはデータ、または情報を暗号化（エンコード）する機能を含む。ハードウェアプロセッサー１０４は、特に、ハードウェアプロセッサー１０４の動作をサポートするよう構成されたクロック、演算論理ユニット（ＡＬＵ）、および論理ゲートを含む。さらに、ハードウェアプロセッサー１０４は、メモリー１０２またはハードウェアプロセッサー１０４がアクセス可能な他の媒体内に保存された１つ以上のソフトウェアプログラムを実行する機能を含む。
【００３８】
ハードウェアプロセッサー１０４は、メモリー１０２内に保存されている複数の命令によって設定される。複数の命令によって設定されたとき、ハードウェアプロセッサー１０４は、入力として、複数の字のセットとプライベートキーとを取得する。入力は、１人以上のユーザーから、１つ以上の言語で取得される。入力は、上述のように、１つ以上の入力デバイス（例えば、マルチ言語キーボード）を介した１つ以上の言語からの複数の字の選択を含む。複数の字のセット（以下、「Ｃｈａｒｓｅｔ」とも称される）およびプライベートキー（以下、「ユーザーキー」とも称される）は、以下のようなものであるとする。
複数の字のセット＝｛ａ，ｂ，ｃ，ｄ，ｅ，．．．．ｘ，ｙ，ｚ｝
プライベートキー＝「Ｋｅｙ」
【００３９】
ハードウェアプロセッサー１０４は、ユーザーから、複数の字の入力セット（例えば、名前、給料、所在地住所等）を受信するよう構成されている。フォーマット維持ベースマスキングシステム１００が英文字キーボードを利用する場合（例えば、英語キーボードを用いるクライアントシステムの場合）、複数の字のセットは、任意（オプショナル）である。複数の字のセット（以下、複数の字の第１のセットとも称される）、および複数の字の入力セット（複数の字の第２のセット）が非英語の文字の場合、複数の字のセットおよび複数の字の入力セットは、１つ以上の入力デバイス（例えば、非英語キーボード、または非英語の字を提供可能な任意の仮想キーボード）からの入力として受信される。実施形態の１つにおいて、複数の非英語の字は、メモリー１０２内に保存されなくてもよい。（１つ以上の言語の）複数の字のセットおよび複数の字の入力セットは、メモリー１０２内に保存されても、保存されなくてもよい。別の実施形態において、（１つ以上の言語の）複数の字のセットおよび複数の字の入力セットは、リアルタイムまたは準リアルタイム（near real time）で、１つ以上のソース（例えば、クラウド、遠隔サーバー、および／またはサードパーティーソース）から、取得可能となっている。さらに、ハードウェアプロセッサー１０４は、複数の命令によって設定され、１つ以上の暗号化技術を用いて、複数の字のセット（例えば、複数の字の第１のセット）を暗号化する。ハードウェアプロセッサー１０４は、プライベートキーをパラメーターの１つとし、複数の字のセットに対し暗号化を実行する。換言すれば、ハードウェアプロセッサー１０４は、複数の字のセットおよびプライベートキーを用いて、複数の字のセットを暗号化し、複数の暗号化済みの字のリストを取得する。複数の暗号化済みの字のリストは、以下の表１に示すような複数の暗号化済みの字のセットを含む。
表１
2017092929.tif 000003
【００４０】
暗号化の後、ハードウェアプロセッサー１０４は、リストがソートされた複数の暗号化済みの字のセットを含んでいるか否かをチェックする。複数の暗号化済みの字のセットを含む複数の暗号化済みの字のリストが特定の順番（例えば、昇順）でソートされていることが判明した場合、ハードウェアプロセッサー１０４は、ソートを実行せずに、複数の暗号化済みの字のセットに基づいて、動的マップを作成する。動的マップは、複数のキーのセットを含む。ここで、複数のキーのそれぞれは、複数の字のセット内の字に特有である。
【００４１】
複数の暗号化済みの字のセットを含む複数の暗号化済みの字のリストが、別の特定の順番（例えば、許容できない順番）で並んでいると判明した場合、ハードウェアプロセッサー１０４は、複数の暗号化済みの字のセット（例えば、ソートされていない複数の暗号化済みの字）をソートし、フォーマット維持ベースマスキングシステム１００が以下の表２に示すようなソートされた複数の暗号化済みの字のリストを出力できるようにする。
表２
2017092929.tif 000004
【００４２】
（必要であれば）ソートを実行した後、ハードウェアプロセッサー１０４は、その後、以下の表３に示すような動的マップを作成する。
表３
2017092929.tif 000005
【００４３】
フォーマット維持ベースマスキングシステム１００がソートされた複数の暗号化済みの字のリストを出力したとき、ソートされた複数の暗号化済みの字のリストを用いて作成された動的マップは、複数のキーのセットと、複数の値とを含む。複数の値のそれぞれは、複数の字のセットからマスキングされる１つ以上の再配置された字を含む。作成された動的マップは、プライベートキーに変化があった場合、異なったものとなる。さらに、ハードウェアプロセッサー１０４は、動的マップを用いて、複数の字の入力セット（例えば、これに限定されるものではないが、名前、給料、所在地住所等の複数の字の第２のセット）内の複数のマスキング可能な字のそれぞれの位置を算出し、さらに、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得するよう構成されている。例えば、プライベートキー＝「Ｍｙ  ｋｅｙ」の場合、マスキングされたデータは、以下の表４に示すようなものである。
表４
2017092929.tif 000006
【００４４】
さらに、上述のように、生成された動的マップは、プライベートキーに変化があった場合、異なったものとなる。例えば、プライベートキーが「Ｎｅｗ  Ｋｅｙ」である場合、マスキングされたデータは、以下の表５に示すようなものである。
表５
2017092929.tif 000007
【００４５】
上記の表４および表５からわかるように、フォーマットの、またはオリジナルの複数の字（複数の文字）は、データがマスクキングされたときでも、維持される。動的マップは、上記の表からわかるように、複数の字のセット内のそれぞれの字用にマスキングされ、置換された字を示すインデックスを含んでいる。また、入力が複数の数字（数字のみ、または、文字と記号との組み合わせ）を含む場合の課題が残っている。
【００４６】
また、本発明の実施形態は、ユニークなマスキングされた数値を生成し、上述のアプローチにおける主要な課題の１つを解決する。１つ以上の数字を含む複数の字のセットを想定すると、ハードウェアプロセッサー１０４は、１つ以上の数字の非最重要ビット（非ＭＳＢ：Non-Most Significant Bit）マップを作成し、さらに、非ＭＳＢマップ（および、入力が文字と数字の双方を含む場合には、既に生成されている動的マップ）を用いて、複数の暗号化済みの字のリスト内の複数のマスキング可能な字（この場合には、複数のマスキング可能な数字）のそれぞれの位置を算出する。複数の暗号化済みの字は、暗号化されている複数の字のセットおよび１つ以上の数字を含む。その後、ハードウェアプロセッサー１０４は、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字（または数字）のマスキングを実行し、マスキングされたデータを取得する。プライベートキー＝「Ｋｅｙ」である場合、１つ以上の数字（入力として取得されたもの）のマスキングされたデータの図示の例は、以下の表６（非ＭＳＢマップテーブル６）に示すようなものとなる。
表６
2017092929.tif 000008
【００４７】
非ＭＳＢマップに基づき、マスキングされた値は、以下の表７に示すようなものとなる。
表７
2017092929.tif 000009
【００４８】
ハードウェアプロセッサー１０４（または、フォーマット維持ベースマスキングシステム１００）は、数字データタイプのデータの最重要ビット（ＭＳＢ）マップを作成する。このＭＳＢマップは、非ゼロ（non-zero）の数字にのみ生成される。これにより、その一意性（uniqueness）を損なうことなく、一貫したデータ（consistent data）を取得および保証することができる。例えば、プライベートキー＝「Ｋｅｙ」の場合、ＭＳＢマップは、以下の表８（ＭＳＢマップテーブル８）に示すようなものとなる。
表８
2017092929.tif 000010
【００４９】
表６および表８に基づき、マスキングされた値のマップは、以下の表９に示すようなものとなる。
表９
2017092929.tif 000011
【００５０】
表４から、動的マップを用いた場合であっても、マスキングされた値の作成がセキュア（安全）であることがわかる。しかしながら、ユーザーが特定のキー値のマップ情報を理解している場合、マスキングされたデータからオリジナルデータを突き止めることは依然として可能である。そのため、データマスキングをより安全で、データ一貫性のあるものとするため、任意のデータの最終的なマスキングされた出力は、データ内の個々の字（文字、数字、または記号）の位置に応じたものとなる。
【００５１】
ここに説明される本発明の実施形態のより深い理解のため、動的マップ作成の例が記述される。動的マップ（Ａ〜Ｚ、ａ〜ｚ、０〜９、ユーザー入力数値およびアルファベット）が形成される。ここで、キーは、オリジナルの文字であり、一方、値は、ソートされたマスキング済みアレイ内のマスキングされた文字のリストインデックス（list-index）と、ソートされたマスキング済みアレイポインター（sorted masked array pointer）とを含む。同時に、マップが形成され、該マップの形成では、キーは、ソートされたマスキング済みアレイポインターであり、値は、ソートされたマスキング済みアレイである。多言語文字のマスキングは、ユーザーに、複数の非英語の文字と、［０〜９］以外の複数の数字とを取り込む選択肢を提供する事によって実行される。これらの文字は、取り込まれた後、動的マップ形成と同じ手順を経る。さらに、入力データのマスキングされた値は、このマップと、このマップ内の個々の文字の位置に応じたものとなる。
【００５２】
代替的に、フォーマット維持ベースマスキングシステム１００は、入力処理モジュールを含む複数のモジュールを実行してもよい。入力処理モジュールは、ハードウェアプロセッサー１０４によって実行されたとき、（ユーザーが複数の字を、１つ以上の入力デバイス、例えば、キーボードを用いて入力することによって）複数の字のセットと、プライベートキーとを取得し、暗号化のために処理する。フォーマット維持ベースマスキングシステム１００は、暗号化モジュールを含む複数のモジュールを実行する。暗号化モジュールは、ハードウェアプロセッサー１０４によって実行されたとき、複数の字およびプライベートキーを用いて、複数の字を暗号化し、複数の暗号化済みの字のリストを取得する。フォーマット維持ベースマスキングシステム１００は、マップ作成モジュールを含む複数のモジュールを実行する。マップ作成モジュールは、ハードウェアプロセッサー１０４によって実行されたとき、複数の暗号化済みの字のセットに基づいて、動的マップを作成する。フォーマット維持ベースマスキングシステム１００は、位置算出モジュールを含む複数のモジュールを実行する。位置算出モジュールは、ハードウェアプロセッサー１０４によって実行されたとき、動的マップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する。
【００５３】
フォーマット維持ベースマスキングシステム１００は、マスキングモジュールを含む複数のモジュールを実行する。マスキングモジュールは、ハードウェアプロセッサー１０４によって実行されたとき、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する。フォーマット維持ベースマスキングシステム１００は、ソートモジュールを含む複数のモジュールを実行する。ソートモジュールは、ハードウェアプロセッサー１０４によって実行されたとき、複数の暗号化済みの字のリスト内の複数の字の順番を判別し、複数の字の順番から、複数の暗号化済みの字のリストをソートし、ソートされた複数の暗号化済みの字のリストを取得する。これにより、マップ作成モジュールがソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成することが可能となる。ソートされた複数の暗号化済みの字のリストを用いて作成された動的マップは、複数のキーのセットと、複数の値とを含む。複数の値のそれぞれは、複数の字のセットからマスキングされる１つ以上の再配置された字を含む。
【００５４】
その後、位置算出モジュールは、動的マップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する。さらに、マスキングモジュールは、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する。複数の字が複数の数字を含む場合、マップ作成モジュールは、１つ以上の数字の最重要ビット（ＭＳＢ）マップを作成する。これにより、位置算出モジュールが、動的マップおよびＭＳＢマップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出することが可能となる。その後、マスキングモジュールは、動的マップおよびＭＳＢマップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する。
【００５５】
複数のモジュール（例えば、入力処理モジュール、暗号化モジュール、マップ生成モジュール、位置算出モジュール、マスキングモジュール、およびソートモジュール）は、ソフトウェアプログラムの論理的自己完結型の部分（a logically self-contained part of a software program）、自己完結型のハードウェアコンポーネント、および／または、ソフトウェアプログラムの論理的自己完結型の部分がハードウェアコンポーネント内に実装され、実行されたとき、任意の実施形態において説明された上述の方法を実行する自己完結型のハードウェアコンポーネントの少なくとも１つとして実施することができる。
【００５６】
図１に関連する図２は、本発明の実施形態に係る図１のフォーマット維持ベースマスキングシステム１００を用いたコンピューター実施のフォーマット維持ベースマスキング方法を図示するフロー図である。工程２０２において、複数の字のセットおよびプライベートキーが、（例えば、ユーザーから）取得される。複数の字の入力セット（例えば、名前、住所、国名等）は、複数の字のセット（例えば、ａ、ｂ、ｃ、ｄ、ｅ、．．．．ｘ、ｙ、ｚ）とは別に、追加的に受信される。フォーマット維持ベースマスキングシステム１００が英文字キーボードを利用する場合（例えば、英語キーボードを用いたクライアントシステムである場合）、複数の字のセットは、任意（オプショナル）である。複数の非英語の文字の場合、複数の字のセットは、原則的に、入力として受信される。ここで、複数の非英語の文字は、メモリー１０２内に保存されない。しかしながら、（１つ以上の言語の）複数の字のセットは、メモリー１０２内に保存されてもよく、または、（１つ以上の言語の）複数の字のセットは、リアルタイムまたは準リアルタイムで、１つ以上のソース（例えば、クラウド、遠隔サーバー、および／またはサードパーティーソース）から取得されてもよい。工程２０４において、複数の字のセットが、複数の字のセットおよびプライベートキーを用いて暗号化され、複数の暗号化済みの字のリストが取得される。複数の暗号化済みの字のリストは、複数の暗号化済みの字のセットを含む。
【００５７】
工程２０６において、複数の暗号化済みの字のリスト内の複数の暗号化済みの字のセットに基づいて（または、複数の暗号化済みの字のセットを用いて）、動的マップが作成される。動的マップは、複数のキーのセットを含む。ここで、複数のキーのそれぞれは、複数の字のセット内の字（例えば、文字）に特有である。工程２０８において、複数の字の入力セット内のマスキング可能な字のそれぞれの位置が、動的マップを用いて、算出される。
【００５８】
工程２１０において、複数のマスキング可能な字のそれぞれの位置および動的マップに基づいて（または、複数のマスキング可能な字のそれぞれの位置および動的マップを用いて）、複数のマスキング可能な字のマスキングが実行され、マスキングされたデータが取得される。上述のように、複数の字が複数の数字を含む場合、フォーマット維持ベースマスキングシステム１０２は、ＭＳＢマップを生成する。換言すれば、本方法は、複数の数字の最重要ビット（ＭＳＢ）マップを生成する工程と、動的マップおよびＭＳＢマップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップおよびＭＳＢマップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程とを含む。
【００５９】
さらに、本方法は、複数の暗号化済みの字のリスト内の複数の字の順番を判別する工程と、複数の字の順番から、複数の暗号化済み字のリストをソートし、ソートされた複数の暗号化済みの字のリストを取得する工程と、ソートされた複数の暗号化済みの字のリストに基づいて、動的マップを作成する工程と、動的マップを用いて、複数の字の入力セット内の複数のマスキング可能な字のそれぞれの位置を算出する工程と、動的マップを用い、複数のマスキング可能な字のそれぞれの位置に基づいて、複数のマスキング可能な字のマスキングを実行し、マスキングされたデータを取得する工程とを含む。ここで、動的マップは、複数のキーのセットと、複数の値とを含んでおり、複数のキーのそれぞれは、複数の字のセット内の少なくとも１つの字に特有であり、複数の値のそれぞれは、複数の字のセットからマスキングされる１つ以上の置換された字を含む。１つ以上の数字が、特定の範囲を示す場合、１つ以上の数字を含む複数のマスキング可能な字は、特定の範囲内でマスキングされる。
【００６０】
本実施形態のより深い理解のため、以下の実施例を用いて、提案の方法が説明される。
【００６１】
複数の字のセットの動的マップが形成される。オリジナル入力データである複数の字Ａ〜Ｚ、ａ〜ｚ、０〜９、ユーザー入力数字、およびアルファベットを想定する。上述のように、ここでは、キーは、オリジナルの文字であり、一方、値は、ソートされたマスキング済みアレイ内のマスキング済みの字のリストインデックスと、ソートされたマスキング済みアレイポインターとを含む。同時に、マップが形成される。マップにおいて、キーは、ソートされたマスキング済みアレイポインターであり、値は、ソートされたマスキング済みアレイである。動的マップを作成したのと同様の方法で、複数の数字（ゼロ以外の数）のＭＳＢマップが形成される。複数のマスキング可能な文字（動的マップ内に存在する複数の文字）の数と、オリジナル入力データ内の第１のマスキング可能な文字のインデックスとが算出される。これらの値は、オリジナルデータのフォーマットを維持するために後に必要とされる。第１のマスキング可能な文字が数字である場合、その後、マスキングされる。この文字がゼロである場合、その後、マスキングされない。すなわち、非ゼロの文字に到達するまで（非ゼロの文字が特定されるまで）、先行するゼロ（preceding zeros）の全ては、ゼロのまま維持される。例えば、１２３４５６７８９０は、上述のように、２１４３６５８７０９にマスキングされる。同様に、１２３−４５６−７８９０は、特殊文字「−」が存在していないものとして、２１４−３６５−８７０９にマスキングされる。動的マップ内において、マスキングの間、特殊文字「−」は無視される。
【００６２】
実施例を参照して、任意の所与の文字の最終的なマスキング済み値が説明される。
実施例：１２３−ＡＢＣ−ｐｑｒ
2017092929.tif 000012
【００６３】
第１のマスキング可能な文字に、複数のマスキング可能な文字の合計数であるインデックス値が割り当てられ、さらに、次に続く文字用に、インデックス値が「１」だけインクリメント（値を増加）される。上述のように、このインデックス値は、オリジナルの文字の第１のマスキング可能文字を取得するためのパラメーターの１つとして後に必要とされる。入力データは、１文字ずつ繰り返される（iterated character by character）。第１の文字は、数字なので、ＭＳＢマップが作成されることになる。キー「１」用のＭＳＢマップからの値は、以下のようになる。
ａ．マスキングされた文字：６
ｂ．リストインデックス：１
ｃ．ソートされたマスキング済みアレイポインター（アレイ（５，４，３，２，７，１，８，６，９）へのポインティング）
得られるインデックス＝（インデックス値＋リストインデックス）％（ソートされたマスキング済みアレイのサイズ）
＝（９＋１）％９
＝１０％９
＝１
【００６４】
インデックス値「１」における文字が取得される。この場合、５である。同様に、残りの複数の文字のマスキングされた文字が、動的マップを用いて取得され、さらに、マスキングされた文字列へ追加される。そのため、マスキングされた出力は、５０１−ＧＩＳ−ｋｓｊとなる。フォーマット維持ベースマスキングシステム１００は、データのマスキング、特に、入力が１つ以上の数字（特定の範囲内または特定の範囲外の数字）を含む場合のデータのマスキングを可能とする。
【００６５】
図１および図２に関連する図３Ａ〜図３Ｅは、本発明の１つ以上の実施形態に係るオリジナルデータおよびマスキングされたデータの例示的な図を示している。具体的には、図３Ａは、本発明の１つ以上の実施形態に係る複数の文字（例えば、所在地住所）を含む複数の字のセットのオリジナルデータおよびマスキングされたデータの例示的な比較図を示している。図３Ｂは、本発明の１つ以上の実施形態に係る最低給料（例えば、データを特定の範囲内（最小値：１０００、最大値２５０００）でマスキングするための入力として受信された数字（給料））のオリジナルデータおよびマスキングされたデータの例示的な図を示している。この範囲は特定されているため、マスキングされたデータの出力もまた、この範囲内となり、ユーザーは、この範囲を入力するための設定を行う。１つ以上の数字が、特定の範囲を示す場合、１つ以上の数字を含む複数のマスキング可能な文字は、特定の範囲内でマスキングされる。換言すれば、この範囲は、数字を含む複数の字が提供されるときに、ユーザーによって提供される。フォーマット維持ベースマスキングシステム１００は、特定の範囲内において、複数の数字をマスキングする。
【００６６】
図３Ｃは、本発明の１つ以上の実施形態に係る最低給料（例えば、特定の範囲外においてデータをマスキングするための入力として受信される複数の数字）のオリジナルデータおよびマスキングされたデータの例示的な図を示している。範囲が特定されていない場合、入力値の範囲から外れた複数の値が存在し得る。例えば、最低給料１５０００は、最低給料６９６２８にマスキングされる。
【００６７】
図３Ｄは、本発明の１つ以上の実施形態に係る非英語の文字のオリジナルデータおよびマスキングされたデータの例示的な図を示している。具体的には、図３Ｄは、漢字のオリジナルデータおよびマスキングされたデータの例示的な図を示している。図３Ｅは、ユーザーが、特定の値は所定の値によってマスキングされなければならないと指定した場合の例外的な状況におけるオリジナルデータおよびマスキングされたデータの例示的な図を示している。フォーマット維持ベースマスキングシステム１００は、オーストラリアが英国にマスキングされ、イタリアがシンガポールにマスキングされるように設定されている。そのため、これら２つの値がいつ発生しようと、それぞれの所定の値によってマスキングされることとなり、これらの値は、文字置換マスキングを経ない。
【００６８】
上記の記述は、本分野における当業者が本発明を実施および使用することを可能とするために、本発明を説明するものである。本発明の範囲は、特許請求の範囲によって規定され、本分野における当業者が想到し得るその他の変形例を含む。そのようなその他の変形例が特許請求の範囲の文言と変わらない同等の要素を有するか、特許請求の範囲の文言と実質的に変わらない同等の要素を含んでいるのであれば、そのようなその他の変形例は、特許請求の範囲の権利範囲内に含まれる。
【００６９】
本開示の実施形態は、データの一貫性を企業レベルで保ち、入力データのフォーマットを維持し、マスキングされたデータが解読可能ではないことを保証し、データセキュリティに繋がるフォーマット維持ベースマスキングシステムおよび方法を実施する。さらに、フォーマット維持ベースマスキングシステム１００は、非英語の文字および数字をサポートする。セキュリティの低い方法を用いてデータの生成、更新、および処理するために、より多くのディスクスペースと、より多くの時間を消費する静的ルックアップテーブルを作成する従来のシステムや方法と異なり、複数のマップ（データのマスキングを実行するための参照として用いられる、実行中における動的ルックアップテーブルとして機能する動的マップ、非ＭＳＢマップ、およびＭＳＢマップ）を動的に生成するフォーマット維持ベースマスキングシステム１００は、より少ないディスクスペース消費（または、より少ないメモリースペース消費）、より少ないデータ更新時間、および、より少ないデータ処理時間を可能とする。従来のマスキングツールと異なり、フォーマット維持ベースマスキングシステム１００は、それぞれの字の最終的な置換（または、マスキング）の決定において重要な役割を果たす入力データ内の字の位置を算出する。
【００７０】
しかしながら、本発明による保護範囲は、メッセージを有するコンピューター可読手段に加え、プログラムにも及ぶことは理解されるであろう。そのようなコンピューター可読記憶媒体は、サーバー、携帯デバイス、または任意の適切なプログラム可能デバイス上でプログラムが実行されたとき、本発明の方法の１つ以上の工程を実施するプログラムコード手段（program-code means）を含む。ハードウェアデバイスは、例えば、サーバー、パーソナルコンピューター等、または、これらの組み合わせの任意の種類のコンピューターを含む任意の種類のプログラム可能なデバイスであってもよい。また、デバイスは、例えば、ハードウェア手段（例えば、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））、ハードウェア手段およびソフトウェア手段の組み合わせ（例えば、ＡＳＩＣおよびＦＰＧＡ）、少なくとも１つのマイクロプロセッサー、および、ソフトウェアモジュールが内部に保存されている少なくとも１つのメモリーのような手段を含む。よって、手段は、ハードウェア手段と、ソフトウェア手段の双方を含む。本発明の方法は、ハードウェアおよびソフトウェアにおいて実施可能である。また、デバイスは、ソフトウェア手段を含んでいてもよい。代替的に、本発明は、複数の異なるハードウェアデバイス、例えば、複数のＣＰＵを用いて、実施されていてもよい。
【００７１】
本発明は、ハードウェア要素と、ソフトウェア要素とを含むことができる。本発明は、ソフトウェアにおいて実施することができ、これに限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。ここに説明された様々なモジュールによって実行される機能は、他のモジュールや他のモジュールの組み合わせにおいて実施されてもよい。説明の目的のため、コンピューター使用可能またはコンピューター可読媒体は、命令実行システム、装置、またはデバイスによって使用可能またはこれらに関連したプログラムを含み、保存し、通信し、伝播し、または伝送可能な任意の装置であってもよい。
【００７２】
媒体は、電気、磁気、光、電磁気、赤外線、半導体システム（または、装置やデバイス）、または、伝播媒体であってもよい。コンピューター可読媒体の例としては、半導体または固体メモリー、磁気テープ、リムーバブルコンピューターディスケット、ランダムアクセスモメリー（ＲＡＭ）、リードオンリーメモリー（ＲＯＭ）、リジッド磁気ディスク、および光ディスクが挙げられる。光ディスクの最近の例としては、コンパクトディスク−リードオンリーメモリー（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが挙げられる。
【００７３】
プログラムコードの保存および／または実行に適したデータ処理システムは、メモリー要素に直接的またはシステムバスを介して間接的に接続された少なくとも１つのプロセッサーを含む。メモリー要素は、プログラムコードの実際の実行の際に用いられるローカルメモリー、大容量記憶装置、および、実行の間に大容量記憶装置からの必須読み出しの回数を低減させるために少なくとも複数のプログラムコードの一時保存を提供するキャッシュメモリーを含む。
【００７４】
入力／出力（Ｉ／Ｏ）デバイス（これに限定されるものではないが、キーボード、ディスプレイ、ポインティングデバイス等を含む）は、システムに直接的またはＩ／Ｏコントローラーを介して接続されている。また、ネットワークアダプターは、システムに接続され、データ処理システムが、プライベートまたは公共ネットワークを介して、他のデータ処理システム、遠隔プリンター、または記憶デバイスに接続されることを可能とする。モデム、ケーブルモデム、およびイーサネット（登録商標）カードは、ネットワークアダプターの現在使用可能なタイプのいくつかの例である。
【００７５】
本発明を実施するための代表的なハードウェア環境は、本発明に係る情報操作／コンピューターシステムのハードウェア構成を含む。システムは、少なくとも１つのプロセッサーまたは中央演算ユニット（ＣＰＵ）を含む。ＣＰＵは、システムバスを介して、様々なデバイス（例えば、ランダムアクセスメモリー（ＲＡＭ）、リードオンリーメモリー（ＲＯＭ）、入力／出力（Ｉ／Ｏ）アダプター）に相互接続されている。Ｉ／Ｏアダプターは、周辺機器（例えば、ディスクユニット、テープドライバー）や、システムによって読み込まれることが可能なその他のプログラム記憶デバイスを接続することができる。システムは、プログラム記憶デバイス上の複数の命令を読み込み、これらの命令に従って、本発明の方法を実行可能である。
【００７６】
さらに、システムは、キーボード、マウス、スピーカー、マイク、および／または、タッチスクリーンデバイス（図示せず）のようなその他のユーザーインターフェースデバイスをバスに接続し、ユーザー入力を収集するユーザーインターフェースアダプターを含む。追加的に、通信アダプターは、バスをデータ処理ネットワークに接続し、表示アダプターは、バスを、例えば、モニター、プリンター、送信機のような出力デバイスとしても実装可能な表示デバイスに接続する。
【００７７】
上記の記述が、様々な実施形態を参照して提供された。本発明の属する分野および技術における当業者であれば、記述された構造および動作方法における変形および変更が、本発明の原理、考え方、および範囲から有意に逸脱することなく、実行可能であることを理解できるであろう。
【図１】
2017092929.tif 000013
【図２】
2017092929.tif 000014
【図３Ａ】
2017092929.tif 000015
【図３Ｂ】
2017092929.tif 000016
【図３Ｃ】
2017092929.tif 000017
【図３Ｄ】
2017092929.tif 000018
【図３Ｅ】
2017092929.tif 000019
【外国語明細書】
2017092929.tif 000020
2017092929.tif 000021
2017092929.tif 000022
2017092929.tif 000023
2017092929.tif 000024
2017092929.tif 000025
2017092929.tif 000026
2017092929.tif 000027
2017092929.tif 000028
2017092929.tif 000029
2017092929.tif 000030
2017092929.tif 000031
2017092929.tif 000032
2017092929.tif 000033
2017092929.tif 000034
2017092929.tif 000035
2017092929.tif 000036
2017092929.tif 000037
2017092929.tif 000038
2017092929.tif 000039
2017092929.tif 000040
2017092929.tif 000041
2017092929.tif 000042
2017092929.tif 000043
2017092929.tif 000044
2017092929.tif 000045
2017092929.tif 000046
2017092929.tif 000047
2017092929.tif 000048
2017092929.tif 000049
2017092929.tif 000050
2017092929.tif 000051
2017092929.tif 000052