JP2019522269A - データ関連アプリケーションデータをマスキングする方法、装置、およびコンピュータ読み取り可能な媒体 - Google Patents

データ関連アプリケーションデータをマスキングする方法、装置、およびコンピュータ読み取り可能な媒体 Download PDF

Info

Publication number
JP2019522269A
JP2019522269A JP2018561258A JP2018561258A JP2019522269A JP 2019522269 A JP2019522269 A JP 2019522269A JP 2018561258 A JP2018561258 A JP 2018561258A JP 2018561258 A JP2018561258 A JP 2018561258A JP 2019522269 A JP2019522269 A JP 2019522269A
Authority
JP
Japan
Prior art keywords
data
data element
data type
alphabets
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018561258A
Other languages
English (en)
Other versions
JP6887446B2 (ja
JP2019522269A5 (ja
Inventor
イゴール バラバイン、
イゴール バラバイン、
バラ クメルサン、
バラ クメルサン、
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Informatica LLC
Original Assignee
Informatica LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Informatica LLC filed Critical Informatica LLC
Publication of JP2019522269A publication Critical patent/JP2019522269A/ja
Publication of JP2019522269A5 publication Critical patent/JP2019522269A5/ja
Application granted granted Critical
Publication of JP6887446B2 publication Critical patent/JP6887446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データをマスキングするための装置、コンピュータ可読媒体、およびコンピュータ実装方法である。第1のデータ要素に不可逆関数を適用して派生データ要素を生成するステップを含む。第1のデータ要素は第1のデータタイプであり、派生データ要素は第1のデータタイプとは異なる第2のデータタイプであり、派生データ要素は派生データ要素の少なくとも一部をテンプレートとして選択し、テンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、マスクデータ要素を生成する。【選択図】図4

Description

本出願は、2016年5月23日に出願された米国非仮出願第15/161,586号の優先権を主張し、その開示は、その全体が参照により本明細書に組み込まれる。
データマスキングまたは編集は、権限のないユーザによる機密データへのアクセスを防止する重要なデータ管理技術である。データマスキングは、記憶されたデータに任意の時期に適用されてもよいし、データ要素が永続的データストア内で変更されるときに適用されてもよいし、伝送中のデータであって、データ要素がデータ利用者に送信される間に変更されるデータ、に適用されてもよい。
データマスキング技術は、データを可逆的にマスキングすることを含む。可逆データマスキングは、そのマスキングされた表現からオリジナルデータの回復を可能にする。データ要素暗号化は、可逆データマスキング技術の一例である。あるいは、不可逆データマスキングは、オリジナルデータ要素を、そのオリジナルコンテンツが完全にまたは部分的に失われるように変換する。例えば、1つの不可逆マスキング技術は、文字列のサブストリングを抽出し、残りの文字を任意の値に置き換える。
従来のデータマスキングは、アプリケーションに優しいものではない。部分的な編集などの従来のデータマスキング技術が適用される場合、アプリケーションは、マスキングされていない元のデータ要素を用いた場合とは異なる結果を生成する。これは、特に、機密データが、例えば、PA12345678などのデータ要素として格納された運転免許証番号などの、フォーマットされたデータ文字列として構文的に定義される場合に見られることである。上記の例では、最初の2つのデータ要素メンバーは、発行した州を表し、50個の2文字の州識別子のセットに制限される。そのような場合、アプリケーションによって受信されるデータ要素ZX87654321をもたらすマスキングは、アプリケーションが50の州識別子のうちの1つを予測する場合、処理中にエラーをもたらす可能性がある。あるいは、例えば、各々がマスクされたクレジットカード番号の最初の12桁(例えば、xxxx−xxxx−xxxx−1234)を有するデータ要素を含むデータセット上の照会は、口座番号の最後の4桁が同じである重複する可能性のあるクレジットカードのために、マスクされていないデータセット上の照会とは異なる結果を生成し得る。フォーマット保存暗号化技術(「FPE」)は、特定の望ましい特性を示すが、特殊なフォーマット変換規則を有するデータ要素を処理することが困難であり(または全く不可能である)、機密暗号材料の管理を必要とする。例えば、カリフォルニアのナンバープレートは、カリフォルニアのナンバープレートの最初のメンバーが2から7の間の数字であり、次の3つのメンバーが文字であり、最後の3つのメンバーが0から9の間の数字であるように、構文的に構築されたフォーマットを有する。FPEは、データオブジェクトコンポーネント間の独立性のために、カリフォルニアのナンバープレート番号などの複雑なデータ要素について、意味的に正しい変換を実行することができない。例えば、3文字コードは、シリアル番号値から導出することができず、その逆も同様である。ナンバープレート番号の意味的正しさを達成するために3文字コードを調整しようとすると、解読中に元の情報が失われたり、データベースに格納された追加情報が必要となり、データベース内の保護されたデータオブジェクトのサイズが事実上増加する。
したがって、同じ条件下でデータマスキングシステムによって変換されたときに、元のデータ要素の各インスタンスが、同じフォーマットを有する同じマスクデータ要素をもたらすように、決定論的な様式でフォーマットを保存しながらデータをマスキングするためのシステムにおいて、改善が必要とされる。
図1は、例示的な実施形態のマスクデータ要素(マスクされたデータ要素)を生成するための機能フローブロック図を示す。 図2は、例示的な実施形態による、マスクデータ要素を生成するための方法のフローチャートを示す。 図3は、例示的な実施形態による不可逆変換を適用するための機能フローブロック図を示す。 図4は、例示的な実施形態による、構文的に定義されたデータタイプに従ってデータ要素を特徴付けることを示す。 図5は、例示的な実施形態による、派生データ要素からテンプレートを選択するための機能フローブロック図を示す。 図6のa〜bは、例示的な実施形態による、マスクデータ要素を生成するための中間データ要素を生成するための方法のフローチャートを示す。 図7は、例示的な実施形態による、マスクデータ要素を生成するためのテンプレートから中間データ要素を生成するための機能フローブロック図を示す。 図8は、例示的な実施形態による、テンプレートからマスクデータ要素を生成するための機能フローブロック図を示す。 図9は、例示的な実施形態によるシステムの機能ブロック図である。 図10は、例示的な実施形態によるシステムの機能ブロック図である。 図11は、元のデータ要素からマスクデータ要素を生成する方法を実行するために使用することができる例示的なコンピューティング環境を示す。
本明細書では、方法と、装置と、コンピュータ可読媒体とを、例および実施形態として説明するが、当業者は、フォーマット保存データマスキングを利用してマスキングされたデータ要素を生成するための方法、装置と、コンピュータ可読媒体とが、説明された実施形態または図面に限定されないことを認識する。図面および説明は、開示された特定の形態に限定されることを意図していないことを理解されたい。むしろ、意図は、添付の特許請求の範囲の精神および範囲内に入るすべての修正、等価物、および代替物を網羅することである。本明細書で使用される見出しはいずれも、編成目的のためだけのものであり、説明または特許請求の範囲を限定することを意味しない。本明細書で使用されるように、単語「することができる(may)」は、必須の意味(すなわち、必須の意味)ではなく、許容される意味(すなわち、可能性を有することを意味する)で使用される。同様に、単語「含む(include)」、「含む(including)」、および「含む(includes)」は、これに限定されないが、含んでいることを意味する。
従来のマスキングの制限により、マスキングされたデータに対して動作するビジネスアプリケーションからロバストな結果を得るために、オリジナルデータ要素のフォーマットを保存するためのマスキングメカニズムを提供するための改良された技術が望ましい。本出願人は、フォーマット保存データマスキングを利用して、元のデータ要素からマスクされたデータ要素(マスクデータ要素)を生成するための方法、装置、およびコンピュータ可読媒体を発見した。開示される方法、媒体、およびシステムは、データタイプ、データ位置、1つ以上の基底セットまたはアルファベット、およびセキュリティパラメータなどの1つ以上の属性によるデータオブジェクトの特徴付けを含む。より具体的には、開示される方法およびシステムは、ユーザにとって透過的であり、マスクされた機密データに依存するアプリケーションのロバストな性能を維持する形で機密データをマスクするために機密データ要素を処理することを含み、その結果、コンピューティング環境の性能に悪影響を与えることなく、より安全なコンピューティング環境、および/または従来のマスキング技法よりもコンピューティング環境の性能を改善しながら、より安全なコンピューティング環境をもたらす。
本出願人は、コンピュータが異なる方法でデータ要素を処理することを可能にするために、データ要素のセットの構文的特徴付けに基づいてデータ要素を変換する新規なアプローチを発見した。データオブジェクト、例えば、機密データオブジェクトの構文的特徴付けは、同じタイプのデータ要素のセット、例えば、上述のカリフォルニアライセンスプレート番号などの特定の順序で配列された異なるタイプの値を含む順序付けられたペアの意味フォーマットを記述する方法である。
本システムは、データタイプXを有する元のデータ要素、例えばデータ要素xのフォーマットを保存するための新規な技術を利用する。マスクデータ要素、例えばマスクデータ要素x*を得るためにマスキング手順が適用される場合、x、x*∈X、すなわちデータ要素xおよびマスクデータ要素x*はそれぞれ、データタイプXを有するすべての要素セットの要素である。言い換えれば、本明細書で開示される様々な実施形態は、要素xの別の要素x*への一方向マッピングF(x)を提供する。ここで、xおよびx*は、同じ構文定義フォーマットを有する。
実施形態は、特定のタイプのデータ要素または特定のタイプのデータタイプに限定されない。データ要素は、限定はしないが、連続数、不連続数、ストリング、またはシンボルの形態をとることができ、それらのいずれもが特別な条件に従うこともできる。データ要素は、順序付けられた配列またはランダムな配列の番号データ要素メンバーから構成される。各データ要素またはデータ要素メンバーは、16進、8進、10進、10進の2進、2進数、ASCII値に対応する2進数、2進数として格納された10進数とASCII値として格納された文字数と記号との組み合わせ、または上記の任意の組み合わせなどの任意のタイプの符号化に従って表され、格納され得る。データ要素が格納されるとき、データ要素が検索されるとき、データが通信されるとき、データが処理されるとき、およびデータがユーザに表示されるとき、任意のタイプの符号化を使用して、データ要素を含む値を表すことができることを理解されたい。また、データ要素の符号化は、符号化の効率または実装のシステム効率を達成するための必要性によって、または設計によって、処理の過程で起こり得ることも理解されよう。また、記憶、検索、処理、通信等の過程におけるデータの様々な変換は、すべて、本明細書に開示されるデータマスキングシステムの様々な実施形態によって処理されることも理解されよう。
実施形態は、データマスキングデータ要素が検索され、通信され、または処理されるときに、中間値またはマスク値(マスクされた値)をそれらが必要とされた後に格納する必要なく、データマスキングデータ要素を適用する動的な様式で動作することができ、なぜなら、各オリジナルデータ要素は、常に、同じ条件下で同じフォーマットが保存されたマスクデータ要素をもたらすからである。例えば、条件は、ユーザ、ユーザ認証、ユーザアクセスレベル、要求アプリケーションのアクセスレベル、アプリケーションまたはアプリケーションが実行しているマシンの認証レベル、データ要素のインスタンス、データ要素が格納されているデータベーステーブル、データベースインスタンス、またはデータベースの特定の展開とすることができる。データ要素のマスキングを変更し得る条件のタイプは、多数であり、本明細書に列挙されたものによって限定されず、とりわけ、データ要素値に関連する処理コストおよびコストを含む設計仕様およびコストに基づいてシステム設計者によって選択されることが理解されるであろう。
本明細書で開示される実施形態は、暗号化方式を必要とせず、したがって、暗号化の使用に関連するいかなる制限もなく、同時に、データマスキング能力によって提供されるマスキング能力は、機密暗号情報を管理する必要なく、FPEなどの暗号化技術に依存するデータマスキング技術と同等であるか、またはそれを超えることがさらに理解されるであろう。また、本明細書で開示されるデータマスキングは、暗号化ベースのアプローチでは不可能な特殊なフォーマット保存変換ルールの妨げられない適用によって、同等の暗号化ベースのソリューションよりも著しく高い柔軟性を有することも理解されよう。
本明細書で説明される実施形態は、暗号化に依存しないが、特定のシステムにおける暗号化メカニズムから独立している一方で、暗号化されたデータと互換性がある。したがって、本明細書に開示されるデータマスキングメカニズムは、データオブジェクト暗号化のプロセスとフォーマット保存プレゼンテーションのプロセスを分離することを可能にする。本発明の例示的な実装では、データベース内のデータオブジェクトは、ガロアカウンタモード(GCM:Galois/Counter Mode)におけるAES暗号化などの標準的な暗号方法を使用して暗号化され、または、限定はしないが、フォーマット保存変換がリモートプロキシサービスによって実行される間、任意の他の標準的なブロック暗号アプリケーションモードを使用して暗号化される。
この説明は、複雑な構文的に定義されたデータ要素が1つ以上の実施形態に従ってどのように処理され得るかを示すためにライセンスプレート番号のマスキングを含む例を含むが、開示された方法、システム、およびコンピュータ可読媒体はまた、銀行口座番号、バッジ番号、識別番号、分類番号、名前、クレジットカード番号などの任意のデータオブジェクトの機密データ要素をマスクするために利用され得る。
図1は、例示的な実施形態100の機能フローブロック図によって、元のデータ要素からマスクデータ要素を生成する例を示す。ここで、元のデータ要素はデータ要素110である。データ要素110は、1つ以上のデータ要素メンバーから構成されてもよい。例えば、それは、7つのメンバー、あるいは16個のメンバー、あるいは任意に多数または少数のメンバーから構成されてもよい。各メンバーは、特定のデータタイプに従って符号化され、順序付けられた方法で配列されてもよい。
最初に、不可逆関数120がデータ要素110に適用される。不可逆関数は一方向関数である。不可逆関数120は、例えば、ハッシュ関数、決定性ランダムビットジェネレータ(「DRBG」)、または擬似乱数ジェネレータ(「PRNG」)であってもよい。不可逆関数は、例えば、sha−256またはmd5であり得る。任意の一方向関数は、それが所与の入力セットに対して同じ出力に決定論的に到達する限り、使用されてもよく、不可逆関数の特定の形式は、システムのセキュリティ要件に基づいて選択され得ることが理解されるであろう。
不可逆関数120は、データ要素110に適用されると、微分データ要素112を出力する。不可逆変換120としてどちらの方向関数が選択されるかに応じて、結果として得られる派生データ要素は、データ要素110と同じデータタイプではなく、すなわち派生データ要素112がデータ要素110と同じ方法で構文的に定義されない均一なフォーマットで符号化された固定数の値を含む。微分データ要素112は、例えば、不可逆変換がmd5である場合、例えば、2進数で符号化された32個の16進メンバー、2個の16進数から8進数で符号化された32個のメンバーを含むことができ、あるいは、それぞれがASCIIで符号化された32個のメンバーのストリングとして符号化することができる。あるいは、例えば、不可逆関数120がadler32である場合、微分データ要素112は、8つの値のストリングであってもよい。
より長い微分データ要素112が望まれる場合、例えば、md5を不可逆関数120として使用して、32個のメンバーを含む微分データ要素をもたらすが、所与のデータ要素xはデータタイプXのものであり、50個のデータ要素メンバーを含む要素を有する場合、微分データ要素の要素メンバーの長さは、例えば、md5をxに適用し、その結果をハッシュし、2つの値を連結することによって増加させることができる。例えば、結果として得られる微分データ値は、md5(x)||md5(md5(x))であってもよい。このプロセスを繰り返して、少なくとも任意の所望のサイズの微分データ値を得ることができる。
テンプレート114は、派生データ要素112の一部から選択される(122)。テンプレート114のこの選択は、任意の適切な方法で達成することができる。例えば、長さ10のデータ要素x110、すなわち、L(x)=10の場合、テンプレート114の選択は、左から数えて、派生データ要素112の第1の10個の派生データ要素メンバーを選択することによって達成される。あるいは、テンプレート114の選択は、右から10個の派生データ要素メンバーを選択することによって達成することができる。あるいは、テンプレート114の選択は、左または右のいずれかから26番目から35番目の派生データ要素メンバーを選択することによって達成することができる。派生データ要素112からテンプレート114を選択するために、任意の適切な決定論的アルゴリズムを使用できることが理解されよう。
次に、124で構文定義101をテンプレート114に適用することによって、マスクデータ要素118が得られる。構文定義101は、1つ以上のアルファベット102、位置マップ104、および一組の条件106に関して、データタイプXのすべての要素を特徴付ける。例えば、上述のように、1982年以降に発行されたカリフォルニアのナンバープレート、例えば、x=4SAM123は、フォーマットmSSnnnによって構文的に定義され、ここで、mは、2から9の間の数字のアルファベットから取られ、SSSは、英語のアルファベットから取られた3つの文字のシーケンス、すなわち、文字A〜Zのセットであり、nnnは、0から9の3桁の数字のシーケンスである。カリフォルニア州の乗用車ナンバープレート番号の特別な条件は、文字列中の欠落部分(ギャップ)である。ナンバープレート3YAA−3ZYZシリーズは発行されなかった。簡潔にするために簡略化したが、上記の例は、身近なデータオブジェクトタイプの特徴付けを完全に示している。
mSSSnnn形式の構文複合体を有するカリフォルニアのナンバープレートデータ要素x、例えば110は、データタイプXであり、0≦n≦6のデータ要素メンバーxはxの形式で順序付けられる。データタイプXの全ての要素は、x∈m、x∈SSS、x∈nnnのフォームのメンバーを含む。ここで、xは0≦n≦6の1つのオクテットを含む。例えばx∈mはタイプmの1つのオクテットを含み、SSSはタイプSの3つのオクテットを含み、nnnはタイプnの3つのオクテットを含み、例えば各オクテットはASCII文字または8ビットの2進数であり、xは合計で7オクテットである。データタイプXの各データ要素xは、メンバデータ要素を含み、各メンバデータ要素は、以下のアルファベットの1つによって特徴付けられる。x,x,x∈S∈A={ABCD...XYZ};x,x,x∈n∈A={0123456789};x∈m∈A={234567}である。したがって、mSSSnnn形式のデータ要素メンバーxとして表される構文複合データ要素x、例えば110は、各データ要素メンバーをアルファベット102、例えば位置マップ104にマッピングする位置マップに関連付けられる。x∈Aである。データタイプXの構文複合語x、例えばデータ要素110は、更に、1組の条件106(これらの特別な条件は、データ要素xにおける不連続性を許容する)に関連付けられ、例えば条件106は以下の通りである。x=3∈Aの場合、以下の条件が適用される。x<YAA または x>ZYZ。
テンプレート114に構文定義101を適用する(124)ことは、任意の適切な方法によってテンプレートをデータタイプXに変換することによって、マスクデータ要素118を生成する。マスクデータ要素118が構文定義に適合するために1つ以上の条件106が満たされなければならない場合、ステップ130で条件がチェックされ、条件が満たされたと判断される。条件が満たされない場合、結果は無効なマスクデータ要素116である。次に、不可逆関数120が無効なマスクデータ要素116に適用され、システムは再び上述の方法を実行し、条件が満たされるまでこれを繰り返し、マスクデータ要素118を生成する。
図2は、第1のデータオブジェクトからマスクデータ要素を生成するための方法のフローチャート200を示し、第1のデータオブジェクトは、例えば、アプリケーションによってデータベースから要求された機密データオブジェクトであってもよい。ステップ201において、第1のデータ要素を第2のデータタイプの第2のデータ要素に不可逆的に変換する第1のデータタイプの第1のデータ要素に不可逆関数が適用される。第1のデータ要素は、第1のデータタイプである。不可逆関数は、元の第1のデータ要素を得ることが不可能であるか、または元のデータ要素を得ることが非現実的に困難である結果を出力する任意の一方向関数である。ステップ201で適用される様々な不可逆変換の例は、DRBG、PRNG、および様々なハッシュ関数であり、いくつかの非限定的な例は、Adler32、CRC32、Haval、MD2、MD4、MD5、RipemD128、RipemD160、SHA−1、SHA−256、SHA−384、SHA−512、Tiger、およびWhirlpool等である。さらに、ステップ201で適用される不可逆関数は、1つ以上の不可逆関数の組み合わせを構成し得ることが理解される。また、ステップ201の不可逆変換は、最初に、固有のソルト(salt)値を適用し、その後、入力シードとして増補された第1のデータ要素を用いて擬似乱数を生成することによって、第1のデータ要素を増補すること、または増補された第1のデータ要素にハッシュ関数を適用すること、またはこれらの技法の任意の組合せを含むことができることも理解されよう。
図3は、タイプX302のデータ要素などの元のデータ要素に不可逆変換314を適用するシステムのプロセス300の一例を示す。例示の目的で、タイプX302のデータ要素は、x=4SAM123であり、これは、1982年以降に発行されるタイプのカリフォルニア州のナンバープレート番号である(すなわち、この非限定的な例では、タイプXは、1982年以降に発行されるタイプのカリフォルニア州のナンバープレート番号を示す)。例示の目的のために、この非限定的な例は、例示的な実施形態がどのようにマスクデータ要素を生成するかを実証するために全体を通して使用される。図3に示す例では、タイプXのデータ要素x302は、314で、ハッシュ関数md5をデータ要素xに適用することによって、タイプYの派生データ要素y304を得るために変換され、例えば、x=4SAM123、md5(x)=5e7e30dfa8dcl61afb2966ea981lf413は、派生データ要素304yである。
再び図2を参照すると、任意選択で、ステップ210で、不可逆変換、または不可逆関数、または一方向関数を、1つ以上のパラメータに基づいてルックアップテーブルから選択することができる。図3に示されるように、適用される変換314は、任意選択で、様々な不可逆変換のリストを含むルックアップテーブル310から選択することができる。ルックアップテーブル310からのこの選択は、例えば、1つ以上のパラメータ312に基づくことができ、これらのパラメータは、例えば、ユーザ、ユーザの許可、ユーザのアクセスレベル、要求しているアプリケーションのアクセスレベル、アプリケーションまたはアプリケーションが実行しているマシンの許可レベル、データ要素のインスタンス、データ要素が格納されているデータベーステーブル、データベースインスタンス、またはデータベースの特定の展開などの条件に関連付けることができる。あるいは、不可逆関数または不可逆変換314は、反復関数であってもよく、最初に1つの変換を適用し、次いで変換の一部、例えば最初の10ビットを識別して、310から第2の変換を選択するためのインデックス312を得る。元のデータ要素(例えば、302)に不可逆変換314を適用するために不可逆変換310の選択を変更する可能性のある条件のタイプは、多数であり、本明細書に列挙されたものによって限定されるものではないが、とりわけ、データ要素値に関連する処理コストおよびコストを含む設計仕様およびコストに基づいてシステム設計者によって選択されることが理解されるであろう。
任意選択で、不可逆変換314を適用する前に、タイプX302のデータ要素を、一意のソルト値316を適用することによって増補することができる。この一意のソルト値は、非限定的な例として、とりわけ、特定のデータオブジェクトインスタンス、データベーステーブル、データベース、または特定の展開に固有のものとすることができる。例えば、セキュリティの理由から、設計者が、無許可のユーザまたはアプリケーションが、同じデータエントリ、例えば「John Smith」が2つの別個のデータベースに存在することを「見る」ことを排除することを望む場合があり得る。例えば、データベースAは、第1の会社によって管理されてもよく、データベースBは、第2の会社によって管理されてもよく、データベースAおよびデータベースBのそれぞれは、エントリJohn Smithを有してもよい。各データベースのユーザまたはアプリケーションが、各データベースAおよびBが類似のエントリを有することを知ることを妨げられることが望ましい場合がある。不可逆変換314を適用する前にデータ要素302に固有のソルト316を適用することは、各実装、展開、またはインスタンスの派生データ要素304が異なることを保証する。
図4は、データタイプX410の例示的な構文定義に従ってタイプX402の例示的なデータ要素を特徴付け、データタイプY430の第2の例示的な構文定義に従ってタイプY404の第2の例示的なデータ要素を特徴付ける例示的なデータ構造400を示す。データタイプX410の例示的な構文定義は、1982年以降に発行されたカリフォルニアナンバープレートのデータタイプを記述する。この例は、その例示目的のために選択され、開示された実施形態がデータタイプを記述するロバストな能力を実証する。データタイプX410は、3つのアルファベットAxl412、Ax2414、およびAx3416、ならびに位置マップ418、ならびに1組の条件420によって特徴付けられる。アルファベットAxl412は、大文字、例えば、{A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z}に対応する英字の値の集合を含むアルファベットである。Ax1412は、長さL(Axl)を有する。長さL(Axl)は、集合内の値の数として計算され、L(Axl)=26である。アルファベットAx2414は、10進数のすべての数字の集合を含み、例えば、Ax2={0、1、2、3、4、5、6、7、8、9}であり、L(Ax2)=10である。アルファベットAx3416は、10進数の数字のサブセットを含むアルファベットであり、例えば、Ax3={2、3、4、5、6、7}であり、L(Ax3)=6である。
位置マップ418は、データタイプXのデータ要素のデータ要素メンバーの数、例えばx402、の両方に関してデータタイプXの全ての要素を特徴付ける。位置マップ418は、いずれのアルファベット(例えばAxl412、Ax2414、またはAx3416)によって、各データ要素メンバー(例えばデータ要素メンバーx422)が特徴付けられるかを指定することによって、データタイプXの全ての要素を特徴付ける。このように、データ要素x402は、各値xがデータ要素メンバー(例えばデータ要素メンバーx422)である7個の個別メンバーを有するデータ要素メンバーxを含む。得られたデータ要素x402は、各データ要素xを位置マップに従って順序付けることによって特徴付けられる。x=4SAM123について説明すると、位置マップ418に明確に示されているように、x=4∈Ax3、x=S∈Axl、x=A∈Axl、x=M∈Axl、x2=1∈Ax2、x1=2∈Ax2、X=3∈Ax2である。
データタイプX410の構文定義は、1組の条件420を含む。この例示的な例では、開示された実施形態のデータ構造400は、カリフォルニアが、3YAA−3ZYZで始まる一連のナンバープレートを発行しなかったため、1982年以降に発行されたカリフォルニアのナンバープレート番号が、データ要素メンバー3YAA−3ZYZの以下の範囲で始まる未発行のナンバープレートを除外するという事実を反映するために、条件420を含む。したがって、1982年以降に発行されたすべてのカリフォルニアナンバープレートのセット内のデータ要素、たとえばデータタイプXを正確に記述するために、1つのデータ要素(たとえば402)に1つ以上の条件420が必要である。この条件を記述する1つの方法は、データ要素メンバーx=3∈AX3を有するデータ要素402に関して、データ要素メンバーxが値YAA∈Axlxlxlよりも小さくなければならないか、またはxが値ZYZ∈Axlxlxlよりも大きくなければならないと表現することである。条件は、任意の適切な様式で記載され、適用され得ることが理解される。例えば、1つ以上の条件420は、チェックサム、またはそうでなければ連続するセット内の任意の他の不連続な範囲の値、またはデータ要素メンバー位置および対応するアルファベットの観点で一般には表現できない任意の条件とすることができる。
図4は、データタイプY430の構文定義によって、データタイプYの派生データ要素、例えば404をさらに特徴付ける。図から分かるように、データタイプYは、データタイプY430の構文定義によって定義されるより単純な特徴付けである。定義430は、1つのアルファベット432と、データタイプYの各データ要素メンバーを単一のアルファベットAyiにマッピングする位置マップとに関して、データタイプYの全ての要素(例えばy404)を特徴付ける。したがって、データタイプYのデータ要素の32個のデータ要素メンバーの各々(例えば、そのうちの1つがy31424である)、例えばy=5e7e30dfa8dcl61afb2966ea981lf413のデータ要素は、長さL(Ay1)=16を有するアルファベットAy1432にマッピングされる。この例では、アルファベットAy1432は、すべての16進数0〜fのセットであるが、これらの例示的な例に基づいて、データタイプYの派生データ要素、例えば、404は、適用される不可逆変換および結果の符号化に基づいて、任意の数のアルファベットおよび対応する位置によって特徴付けられてもよいことが理解されるであろう。
再び図2を参照すると、ステップ202において、マスキングテンプレートとして機能するテンプレートが選択される。このテンプレート(例えば、506)は、図5に示すシステムフロー図500に例示されるような様々な実施形態に従って、派生データ要素(例えば、502)の一部から選択される。図5には、派生データ要素502のデータ要素メンバーのサブセットを選択する選択が行われることが例として示されている(504)。この選択は、アルゴリズムに従って行われ、例えば、派生データ要素502から選択オクテット21〜27(理解されるように、0から始まる右から数える)がテンプレートt506を生成し、ここで、tは、データタイプYを記述する位置マップのサブセットによって特徴付けられるデータタイプY’である。例えば、図4に示される位置マップ434のサブセットは、データ要素メンバーy27262524232221∈Ay1によって特徴付けられる。したがって、データタイプY’の位置マップは、y27262524232221∈Ay1に対応することが理解されよう。選択された部分の長さは、選択されたデータ要素メンバーの数に関して、データタイプXの全ての要素のデータ要素メンバーの長さに対応する。この例示的な例では、7つのデータ要素メンバーが、派生データ要素502から7つのオクテットとして、例えばyから選択されて、テンプレート506、例えばt=30dfa8dを生成する。各データ要素メンバーは、データ要素メンバー値を例えばASCII符号化テキストを表すバイナリとして表現する2進数数字のオクテットである。派生データ要素502の一部のこの選択504は、代わりに、任意の適切なアルゴリズムに従って行われてもよい。例えば、左から最初の7オクテットを選択するようにしても良い。別の適切なアルゴリズムでは、左から最初の3つの要素を選択し、右から最初の4つの要素を選択し、2つの選択を連結して、7つのデータ要素メンバーを含むテンプレートを形成することによって選択を行うことができる。選択されたデータメンバーの符号化は、任意の符号化とすることができ、アルゴリズムは、バイナリ符号化16進数または10進数としてデータ要素メンバーを異なるように選択することができることを理解されたい。派生データ要素yの符号化は、設計上の理由からシステム設計者によって選択される任意の適切な符号化とすることができ、したがって、システム要件および設計上の考慮事項に基づいて、選択された部分がどのように選択されるか(504)、および選択されたデータ要素メンバーにどのような符号化が適用されるかを設計者に選択させる。以下の例では、説明を容易にするために様々なエンコーディングが説明されるが、これらは、オリジナルのデータ要素、例えば、402が、マスクデータ要素を生成することによってどのようにマスクされるかを明確に示すために、例示を目的としていることが理解されるであろう。
再び図2を参照すると、ステップ202において、実施形態は、テンプレートを第2のデータタイプ、例えばデータタイプY’から第1のデータタイプ、データタイプXに変換することによって、マスクデータ要素を生成する。例えば、データタイプY’のテンプレート506のこのデータ変換は、テンプレート506の個々のデータ要素メンバーの値に基づいて、データタイプXである順序付けられたデータ要素メンバーのセットを生成する。図6のaおよびbは、テンプレート(例えばt)をあるデータタイプから別のデータタイプに変換することによってマスクデータ要素を生成するプロセスを説明するフローチャートを示す。これらのフローチャートは、設計または符号化プロセスにおいて簡単に仮定することができるステップを明示的に示すことが理解されよう。例えば、値12345は、左から右に示される順序を有すると仮定されるが、テンプレートが1つのデータタイプから別のデータタイプにどのように変換されるかを明瞭かつ具体的に実証するために、様々なステップが、明瞭化のために示される。最初に、ステップ601で、テンプレートtの各データ要素メンバーに位置が割り当てられる。次に、ステップ602において、例えばオクテットによって特徴付けられるテンプレートtの各要素メンバーが、所望のデータタイプのデータ要素を記述する位置マップに基づいて、1つ以上のアルファベットのうちの1つから選択された値にマッピングされる。このマッピングは、ステップ603、604、および605においてさらに説明される。
図7は、テンプレート(例えばt=30dfa8dに対応するテンプレート702)からマスクデータ要素を生成することに付随する変換プロセスにおける種々の中間ステップを示す。サブプロセス750において、各データ要素メンバーは、データ要素メンバーt〜tに対応する位置704a〜705gに割り当てられる。例示の目的で、図示された例は、位置704a〜704gに割り当てられたt〜tに対するデータ要素メンバーがASCII形式でコード化されると仮定する。例示の目的で、これらの値は、ASCII値の基礎をなす2進オクテットの10進値または任意の他の底を利用することによって演算されてもよく、例えば、ASCII「3」は、10進値「51」に対応する8進値「63」に対応する16進値「33」に対応する2進オクテット「00110011」に対応する。実証を容易にするために図7に示される例示的な例では、値はそれらの対応する10進値に変換される。
したがって、サブプロセス760において、ASCII値は、値に対する演算を実行するために、それらの10進値に論理的に変換される。したがって、テンプレート702、t=30dfa8dに対応するデータ要素メンバー704a〜704gを含むデータ要素704の表現は、706において、論理10進数で「51」、「48」、「100」、「102」、「97」、「56」、「100」のデータ要素メンバー706a〜706gとして論理的に表される。これらの値は、所望のデータタイプ(例えば、元のデータ要素のデータタイプ、例えば、110、302、402、および702に対応する)の位置マップ、例えば(102または418)によって記述されるように、所望のアルファベット、例えば、102、412、414、または416内の値にマッピングされる必要がある。この例示的な実施形態では、このマッピングを達成するために、モジュロ除算が値706a〜706gの各々に適用され、ここで、基底モジュロは、関連する位置マップ、例えば102または418によって記述される所望のデータ要素メンバーに対応するアルファベット、例えば102、412、414または416の長さによって決定される。
図6のbに戻って参照すると、ステップ602は、チャート620、ステップ603〜605で詳述される。第1に、基底モジュロは、関連する位置マップ、例えば、102、412、414、または416に記述されるように、各データ要素メンバー、またはオクテットの位置に対応するアルファベットの長さに基づいて、テンプレートの各オクテットに対して決定される。次に、ステップ604において、中間結果を得るために、各オクテットに対して決定された基底モジュロに基づいて、各オクテットに基底モジュロ除算が適用される。次に、ステップ605で、中間結果がそれぞれのアルファベットの第1の要素の値に加算されて、マスクデータ要素内のそれぞれの位置についてのマスクデータ要素メンバーが得られる。したがって、図7および図8に一例として示されるように、サブプロセス770において、706gについて、モジュロ除算は、モジュロ基底=L(Ax3)=6を使用して10進値「51」に適用され、708g=3という結果を得て、706fについて、モジュロ除算は、モジュロ基底=L(Axl)=26を使用して10進値「48」に適用され、結果として708f=22を得る。706eについては、モジュロ基底=L(Axl)=26を用いてモジュロ除算を10進値「100」に適用し、結果として708e=22を得る。706dの場合、モジュロ基底=L(Axl)=26を使用してモジュロ除算が10進値「102」に適用され、結果として708d=24が得られる。706cの場合、モジュロ除算は、モジュロ基底=L(Ax2)=10を使用して10進値「97」に適用され、結果として708c=7が得られる。706bについて、モジュロ除算は、モジュロ基底=L(Ax2)=10を使用して10進値「56」に適用され、結果として708b=6を提供する。最後に、706aについて、モジュロ基底=L(Ax2)=10を使用して、モジュロ除算が10進値「100」に適用され、結果708a=0が与えられる。このプロセスは、中間結果データ要素708、708g=3、708f=20、708e=22、708d=24、708c=7、708b=6、708a=0を提供する。
中間結果データ要素708から、サブプロセス880において、各中間データ要素メンバー708a〜708gが、所望のマスクデータ要素の所望のデータタイプ、例えば812についての位置マップによって決定される対応するアルファベットの第1の値に加えられる。この例示におけるデータタイプXのすべてのデータ要素は、データタイプXの各要素、例えばマスクデータ要素x*812をそれぞれのアルファベット412、414、または416にマッピングする位置マップ418を含むデータタイプX410の構文定義によって記述されることを思い出されたい。したがって、x*812のデータ要素メンバーは、図8の位置810a〜810gに対応するx*x*x*x*x*x*x*であり、アルファベットにマッピングされ、x*x*x*x*x*x*x*∈Ax3x1x1x1x2x2x2となる。したがって、サブプロセス880は、アルファベットAx3の第1の要素の値に、3の値を有する中間データ要素メンバー808gを追加し、中間データ要素メンバー808f〜808aにも同様の処理を行う。これにより、マスクデータ要素メンバー810g=「5」、810f=「W」、810e=「W」、810d=「Y」、810c=「8」、810b=「7」、810a=「1」が得られ、最終的にマスクデータ要素812x*=5WWY871が得られる。この値は、x*が3に等しくないので、適用可能な例示的状態420に照らして保持され、従って、図1の機能フローブロック図を参照すると、130における判定は満たされ、マスクデータ要素812は、例えば、118に対応するシステムアウトプットである。
図9を参照すると、複数のアプリケーション901、902、903、904は、例えば、1つ以上のデータベース912、913、914、915に格納されたデータにアクセスを試みることができる。一実施形態では、アプリケーションは、要求がデータマスキングシステム910を介してルーティングされるようにデータを要求するように構成され、あるいは、データマスキングシステムは、アプリケーション901、902、903、904によるデータベース912、913、914、915への要求をインターセプトし、アプリケーションまたはアプリケーションのユーザに透過的な方法で要求を処理することができる。一実施形態では、アプリケーションは、データベース接続のために指定されたポートを利用するように構成され、システム910は、着信データ要求を受信するためにそれらのポートをリッスンするように構成される。あるいは、データマスキングシステム910は、アプリケーション901、902、903、904がデータベース要求を送信するように構成されるプロキシとして構成されてもよい。
図10を参照すると、マスキングシステム1000の一実施形態によれば、システム1000と同様に、システム1000は、要求アプリケーション、例えばアプリケーション901からデータベースクエリ1001を受信し、データベースクエリは、例えばデータベース915上で実行される(1005)。データベース照会1006の結果がシステム1000で受信されると、どのデータが要求され、受信されたらマスキング1002が必要であるかについて、システム1000によって判定が行われる。次いで、システムは、マスクされたデータをアプリケーション1005に提供する前に、フォーマット保存マスキングを受信データ1003に適用する。代替的に、どのデータがマスクされるべきかに関する決定1002は、データが受信される1003前に行われてもよく、システム1000が、それがシステム1000に受信されるときに、フォーマット保存データマスキングを受信されたデータ1003に適用することを可能にすることも理解されよう。
図11を参照すると、実施形態1100を含むコンピューティング環境は、少なくともプロセッサ1115およびメモリ1114を有するコンピュータと、フォーマット保存データマスキングサービス1110と、1つ以上の通信ポート1111と、データベース接続サービス1112(1001、1005、1006に対応する実施形態で開示される態様を含むことができる)と、ユーザインターフェース1116とを含むことができる。通信ポート1111は、アプリケーション1101、1102または1103によって送信されたクエリを受信し、マスクされたデータを含む結果をアプリケーション1101、1102または1103に送信する。データベース接続サービスは、様々な外部データベース1122、1123、1124、1125への接続を管理することができ、内部データベース1113へのデータベース接続も管理することができる。データベース接続サービス1112は、通信ポート1111に送信されたクエリを受信し、データベース1113、1122、1123、1124および1125のうちの1つ以上でこれらのクエリを実行する。データベース接続サービス1112は、フォーマット保存データマスキングサービス1110と通信して、要求されたデータをサービス1110に通知することができ、その結果、サービス1110は、どのデータがマスクされる必要があるか、また、どのマスキングがどの要求されたデータに適用されるべきかを、1つ以上の考慮に基づいて決定することができる。これらの考慮事項は、例えば、ユーザ、ユーザの許可、ユーザのアクセスレベル、要求アプリケーションのアクセスレベル、アプリケーションまたはアプリケーションが実行しているマシンの許可レベル、データ要素のインスタンス、データ要素が格納されているデータベーステーブル、データベースインスタンス、またはデータベースの特定の展開などの条件に関連付けることができ、1つ以上のパラメータの形態でフォーマット保存データマスキングサービス1110内に維持することができる。ユーザインタフェースモジュール1116は、さらに、上述の実施形態の構成、ならびにシステム管理者によるマスキングパラメータの入力および編集を可能にするために提供され得る。
様々な実施形態は、コンピュータ可読媒体上に記録され、1つ以上のプロセッサによって実行されるコンピュータソフトウェアコードからなることを開示する。実施形態が、この説明においてそれらの機能に関して開示される場合、それは、説明を明確にする目的のためであるが、別個のデバイスまたはコード部分である必要はなく、任意の特定の様式で分離または統合されて統合されてもよい。サービサー(servicers)、PC、モバイルデバイス、ラップトップコンピュータ、タブレット、ハンドヘルドコンピューティングデバイス、またはこれらのデバイスの様々な組合せなど、様々なコンピュータデバイスを使用して実施形態を実装することができる。さらに、実施形態は、ソフトウェアコードで実装される必要はなく、代わりに、例えば、FPGA、ASICチップ、カスタマイズされたプロセッサ、ストレッチマイクロプロセッサ、DSPチップ、ARMプロセッサ、マイクロプロセッサ、システムオンチップベースのデバイスなどにハードコードされてもよい。
記載された実施形態を参照して本発明の原理を説明し例示してきたが、記載された実施形態は、そのような原理から逸脱することなく、配置および詳細において変更され得ることが認識されるであろう。本明細書で説明されるプログラム、プロセス、または方法は、別段の指示がない限り、任意の特定のタイプのコンピューティング環境に関連または限定されないことを理解されたい。様々なタイプの汎用または特殊化されたコンピューティング環境を、本明細書で説明される教示に従って使用するか、または動作を実行することができる。ソフトウェアに示される説明される実施形態の要素は、上述したように、ハードウェアで実施することができ、その逆も同様である。本発明の原理を適用することができる多くの可能な実施形態を考慮して、本発明者らは、以下の特許請求の範囲およびその均等物の範囲および精神内に入ることができるすべてのそのような実施形態を本発明として特許請求する。

Claims (57)

  1. データをマスキングするために1つ以上のコンピューティングデバイスによって実行される方法であって、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、派生データ要素を生成するために、不可逆関数を第1のデータ要素に適用するステップであって、第1のデータ要素は第1のデータタイプであり、派生データ要素は第1のデータタイプとは異なる第2のデータタイプである、ステップと、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、派生データ要素の少なくとも一部をテンプレートとして選択するステップと、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、前記テンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、マスクデータ要素を生成するステップとを含む、方法。
  2. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、前記位置マップは、前記1つ以上のアルファベットに関して前記第1のデータタイプの構文構造を記述する、請求項1に記載の方法。
  3. 前記第1のデータタイプの全ての要素は、各々が位置を有する固定数の要素メンバーを含み、前記位置マップは、前記要素メンバーの位置に基づいて、前記1つ以上のアルファベットのうちの1つによって各要素メンバーを特徴付けることによって、前記第1のデータタイプの全ての要素の構文構造を記述する、請求項2に記載の方法。
  4. 前記1つ以上のアルファベットの各々は、数字、文字、または記号を含む値のセットを含む、請求項3に記載の方法。
  5. 前記不可逆関数は、ハッシュ関数、決定性ランダムビット生成器、または擬似乱数生成器である、請求項4に記載の方法。
  6. 前記第2のデータタイプは、2進数またはビットストリングである、請求項1に記載の方法。
  7. 前記第1のデータタイプの全ての要素は、各々が位置を有する固定数の要素メンバーを含み、前記テンプレートとして選択された前記派生データ要素の一部は、前記固定数の要素メンバーに等しい数のオクテットを含む、請求項6に記載の方法。
  8. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、
    前記テンプレートを前記第1のデータタイプから前記第2のデータタイプに変換するステップは、
    各オクテットに位置を割り当てるステップと、
    各オクテットを、当該オクテットに割り当てられた位置および位置マップに基づいて、1つ以上のアルファベットのうちの1つから選択されたそれぞれのアルファベットから選択された値にマッピングするステップと、
    を含む、請求項7に記載の方法。
  9. 前記1つ以上のアルファベットのそれぞれのアルファベットが、前記それぞれのアルファベットにおける複数の固有値に対応する長さを有し、
    前記1つ以上のアルファベットのうちの1つから選択された値に各オクテットをマッピングするステップが、各オクテットについて、
    それぞれのアルファベットの長さに基づいて基底モジュロを決定するステップと、
    結果を得るために、基底モジュロに基づいてオクテットに基底モジュラ除算を適用するステップと、
    前記結果をそれぞれのアルファベットの最初の値に加算するステップと、
    を含む、請求項8に記載の方法。
  10. 前記第1のデータタイプは、条件のセットによってさらに特徴付けられる、請求項1に記載の方法。
  11. 1つ以上のコンピューティングデバイスによって、マスクデータ要素が条件のセットを満たすかどうかを判定するステップと、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、マスクデータ要素が条件のセットを満たさないという決定に少なくとも部分的に基づいて、第2のマスクデータ要素を生成するステップと、
    をさらに含む、請求項10に記載の方法。
  12. 第2のマスクデータ要素を生成するステップが、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、不可逆関数をマスクデータ要素に適用するステップであって、二次微分データ要素を生成し、二次微分データ要素は第2のデータタイプである、ステップと、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、2次導関数データ要素の少なくとも一部を第2のテンプレートとして選択するステップと、
    1つ以上のコンピューティングデバイスのうちの少なくとも1つによって、第2のテンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、第2のマスクデータ要素を生成するステップと、
    を含む、請求項11に記載の方法。
  13. 前記不可逆関数は、ルックアップテーブルに少なくとも部分的に基づいて複数の不可逆関数から選択される、請求項1に記載の方法。
  14. 前記第1のデータ要素は、平文である、請求項1に記載の方法。
  15. 前記第1のデータ要素が暗号化される、請求項1に記載の方法。
  16. 前記テンプレートは、所定のアルゴリズムを使用して前記派生データ要素から選択される、請求項1に記載の方法。
  17. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、前記位置マップは、前記1つ以上のアルファベットおよびチェックサムに関して、前記第1のデータタイプの構文構造を記述する、請求項1に記載の方法。
  18. 前記不可逆関数を前記第1のデータ要素に適用する前に、固有のソルトを使用して前記第1のデータ要素を増補するステップをさらに含む、請求項1に記載の方法。
  19. 前記固有のソルトは、前記インスタンス、前記データベース、前記ハードウェア、前記要求アプリケーション、前記要求アプリケーションのユーザ、または前記配備に基づいて決定される、請求項19に記載の方法。
  20. データをマスキングする装置であって、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサの少なくとも1つに操作可能に結合され、命令を格納した1つ以上のメモリとを含み、
    前記命令は、前記1つ以上のプロセッサの少なくとも1つに実行されたとき、前記1つ以上のプロセッサの少なくとも1つに、
    派生データ要素を生成するために、不可逆関数を第1のデータ要素に適用するステップであって、第1のデータ要素は第1のデータタイプであり、派生データ要素は第1のデータタイプとは異なる第2のデータタイプである、ステップと、
    派生データ要素の少なくとも一部をテンプレートとして選択するステップと、
    前記テンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、マスクデータ要素を生成するステップと、
    を実行させる、装置。
  21. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、前記位置マップは、前記1つ以上のアルファベットに関して前記第1のデータタイプの構文構造を記述する、請求項10に記載の装置。
  22. 前記第1のデータタイプの全ての要素は、各々が位置を有する固定数の要素メンバーを含み、前記位置マップは、前記要素メンバーの位置に基づいて、前記1つ以上のアルファベットのうちの1つによって各要素メンバーを特徴付けることによって、前記第1のデータタイプの全ての要素の構文構造を記述する、請求項21に記載の装置。
  23. 前記1つ以上のアルファベットの各々は、数字、文字、または記号を含む値のセットを含む、請求項22に記載の装置。
  24. 前記不可逆関数は、ハッシュ関数、決定性ランダムビット生成器、または擬似乱数生成器である、請求項23に記載の装置。
  25. 前記第2のデータタイプは、2進数またはビットストリングである、請求項20に記載の装置。
  26. 前記第1のデータタイプの全ての要素は、各々が位置を有する固定数の要素メンバーを含み、前記テンプレートとして選択された前記派生データ要素の一部は、前記固定数の要素メンバーに等しい数のオクテットを含む、請求項25に記載の装置。
  27. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、
    前記テンプレートを前記第1のデータタイプから前記第2のデータタイプに変換するステップは、
    各オクテットに位置を割り当てるステップと、
    各オクテットを、当該オクテットに割り当てられた位置および位置マップに基づいて、1つ以上のアルファベットのうちの1つから選択されたそれぞれのアルファベットから選択された値にマッピングするステップと、
    を含む、請求項26に記載の装置。
  28. 前記1つ以上のアルファベットのそれぞれのアルファベットが、前記それぞれのアルファベットにおける複数の固有値に対応する長さを有し、
    前記1つ以上のアルファベットのうちの1つから選択された値に各オクテットをマッピングするステップが、各オクテットについて、
    それぞれのアルファベットの長さに基づいて基底モジュロを決定するステップと、
    結果を得るために、基底モジュロに基づいてオクテットに基底モジュラ除算を適用するステップと、
    前記結果をそれぞれのアルファベットの最初の値に加算するステップと、
    を含む、請求項27に記載の装置。
  29. 前記第1のデータタイプは、条件のセットによってさらに特徴付けられる、請求項20に記載の装置。
  30. マスクデータ要素が条件のセットを満たすかどうかを判定するステップと、
    マスクデータ要素が条件のセットを満たさないという決定に少なくとも部分的に基づいて、第2のマスクデータ要素を生成するステップと、
    を、少なくとも1つのプロセッサにさらに実行させる命令をさらに含む、請求項29に記載の装置。
  31. 前記少なくとも1つのプロセッサに、第2のマスクデータ要素を生成させるステップが、
    不可逆関数をマスクデータ要素に適用するステップであって、二次微分データ要素を生成し、二次微分データ要素は第2のデータタイプである、ステップと、
    2次導関数データ要素の少なくとも一部を第2のテンプレートとして選択するステップと、
    第2のテンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、第2のマスクデータ要素を生成するステップと、
    を含む、請求項29に記載の装置。
  32. 前記不可逆関数は、ルックアップテーブルに少なくとも部分的に基づいて複数の不可逆関数から選択される、請求項20に記載の装置。
  33. 前記第1のデータ要素は、平文である、請求項20に記載の装置。
  34. 前記第1のデータ要素が暗号化される、請求項20に記載の装置。
  35. 前記テンプレートは、所定のアルゴリズムを使用して前記派生データ要素から選択される、請求項20に記載の装置。
  36. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、前記位置マップは、前記1つ以上のアルファベットおよびチェックサムに関して、前記第1のデータタイプの構文構造を記述する、請求項20に記載の装置。
  37. 前記不可逆関数を前記第1のデータ要素に適用する前に、固有のソルトを使用して前記第1のデータ要素を増補するステップをさらに含む、請求項20に記載の装置。
  38. 前記固有のソルトは、前記インスタンス、前記データベース、前記ハードウェア、前記要求アプリケーション、前記要求アプリケーションのユーザ、または前記配備に基づいて決定される、請求項37に記載の装置。
  39. コンピュータ読み取り可能な命令を格納した、少なくとも1つの非一時的コンピュータ読み取り可能媒体であって、
    前記命令は、1つ以上のコンピューティングデバイスによって実行されたとき、前記1つ以上のコンピューティングデバイスの少なくとも1つに、
    派生データ要素を生成するために、不可逆関数を第1のデータ要素に適用するステップであって、第1のデータ要素は第1のデータタイプであり、派生データ要素は第1のデータタイプとは異なる第2のデータタイプである、ステップと、
    派生データ要素の少なくとも一部をテンプレートとして選択するステップと、
    前記テンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、マスクデータ要素を生成するステップと、
    を実行させる、媒体。
  40. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、前記位置マップは、前記1つ以上のアルファベットに関して前記第1のデータタイプの構文構造を記述する、請求項39に記載の媒体。
  41. 前記第1のデータタイプの全ての要素は、各々が位置を有する固定数の要素メンバーを含み、前記位置マップは、前記要素メンバーの位置に基づいて、前記1つ以上のアルファベットのうちの1つによって各要素メンバーを特徴付けることによって、前記第1のデータタイプの全ての要素の構文構造を記述する、請求項40に記載の媒体。
  42. 前記1つ以上のアルファベットの各々は、数字、文字、または記号を含む値のセットを含む、請求項41に記載の媒体。
  43. 前記不可逆関数は、ハッシュ関数、決定性ランダムビット生成器、または擬似乱数生成器である、請求項42に記載の媒体。
  44. 前記第2のデータタイプは、2進数またはビットストリングである、請求項39に記載の媒体。
  45. 前記第1のデータタイプの全ての要素は、各々が位置を有する固定数の要素メンバーを含み、前記テンプレートとして選択された前記派生データ要素の一部は、前記固定数の要素メンバーに等しい数のオクテットを含む、請求項44に記載の媒体。
  46. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、
    前記テンプレートを前記第1のデータタイプから前記第2のデータタイプに変換するステップは、
    各オクテットに位置を割り当てるステップと、
    各オクテットを、当該オクテットに割り当てられた位置および位置マップに基づいて、1つ以上のアルファベットのうちの1つから選択されたそれぞれのアルファベットから選択された値にマッピングするステップと、
    を含む、請求項45に記載の媒体。
  47. 前記1つ以上のアルファベットのそれぞれのアルファベットが、前記それぞれのアルファベットにおける複数の固有値に対応する長さを有し、
    前記1つ以上のアルファベットのうちの1つから選択された値に各オクテットをマッピングするステップが、各オクテットについて、
    それぞれのアルファベットの長さに基づいて基底モジュロを決定するステップと、
    結果を得るために、基底モジュロに基づいてオクテットに基底モジュラ除算を適用するステップと、
    前記結果をそれぞれのアルファベットの最初の値に加算するステップと、
    を含む、請求項46に記載の媒体。
  48. 前記第1のデータタイプは、条件のセットによってさらに特徴付けられる、請求項39に記載の媒体。
  49. 前記コンピュータ読み取り可能な命令が、実行されたときに、前記コンピュータデバイスに、
    マスクデータ要素が条件のセットを満たすかどうかを判定するステップと、
    マスクデータ要素が条件のセットを満たさないという決定に少なくとも部分的に基づいて、第2のマスクデータ要素を生成するステップと、
    をさらに実行させる、請求項48に記載の媒体。
  50. 第2のマスクデータ要素を生成させるステップが、
    不可逆関数をマスクデータ要素に適用するステップであって、二次微分データ要素を生成し、二次微分データ要素は第2のデータタイプである、ステップと、
    2次導関数データ要素の少なくとも一部を第2のテンプレートとして選択するステップと、
    第2のテンプレートを第2のデータタイプから第1のデータタイプに変換した結果として、第2のマスクデータ要素を生成するステップと、
    を含む、請求項49に記載の媒体。
  51. 前記不可逆関数は、ルックアップテーブルに少なくとも部分的に基づいて複数の不可逆関数から選択される、請求項39に記載の媒体。
  52. 前記第1のデータ要素は、平文である、請求項39に記載の媒体。
  53. 前記第1のデータ要素が暗号化される、請求項39に記載の媒体。
  54. 前記テンプレートは、所定のアルゴリズムを使用して前記派生データ要素から選択される、請求項39に記載の媒体。
  55. 前記第1のデータタイプは、1つ以上のアルファベットおよび位置マップによって特徴付けられ、前記位置マップは、前記1つ以上のアルファベットおよびチェックサムに関して、前記第1のデータタイプの構文構造を記述する、請求項39に記載の媒体。
  56. 前記不可逆関数を前記第1のデータ要素に適用する前に、固有のソルトを使用して前記第1のデータ要素を増補するステップをさらに含む、請求項39に記載の媒体。
  57. 前記固有のソルトは、前記インスタンス、前記データベース、前記ハードウェア、前記要求アプリケーション、前記要求アプリケーションのユーザ、または前記配備に基づいて決定される、請求項58に記載の媒体。
JP2018561258A 2016-05-23 2017-05-19 データ関連アプリケーションデータをマスキングする方法、装置、およびコンピュータ読み取り可能な媒体 Active JP6887446B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/161,586 US10164945B2 (en) 2016-05-23 2016-05-23 Method, apparatus, and computer-readable medium for masking data
US15/161,586 2016-05-23
PCT/US2017/033561 WO2017205208A1 (en) 2016-05-23 2017-05-19 Method, apparatus, and computer-readable medium for masking data

Publications (3)

Publication Number Publication Date
JP2019522269A true JP2019522269A (ja) 2019-08-08
JP2019522269A5 JP2019522269A5 (ja) 2020-07-02
JP6887446B2 JP6887446B2 (ja) 2021-06-16

Family

ID=60330559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018561258A Active JP6887446B2 (ja) 2016-05-23 2017-05-19 データ関連アプリケーションデータをマスキングする方法、装置、およびコンピュータ読み取り可能な媒体

Country Status (5)

Country Link
US (1) US10164945B2 (ja)
EP (1) EP3465508B1 (ja)
JP (1) JP6887446B2 (ja)
CA (1) CA3025282A1 (ja)
WO (1) WO2017205208A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584492B2 (en) * 2014-06-23 2017-02-28 Vmware, Inc. Cryptographic proxy service
US10528766B2 (en) * 2016-06-02 2020-01-07 Jpmorgan Chase Bank, N.A. Techniques for masking electronic data
US10749674B2 (en) * 2017-09-29 2020-08-18 Micro Focus Llc Format preserving encryption utilizing a key version
US10943027B2 (en) * 2018-03-28 2021-03-09 Sap Se Determination and visualization of effective mask expressions
US11030212B2 (en) 2018-09-06 2021-06-08 International Business Machines Corporation Redirecting query to view masked data via federation table
US11960623B2 (en) * 2020-03-27 2024-04-16 EMC IP Holding Company LLC Intelligent and reversible data masking of computing environment information shared with external systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141282A (ja) * 2003-11-04 2005-06-02 Fujitsu Ltd 文字データの暗号化プログラム
JP2009110179A (ja) * 2007-10-29 2009-05-21 Mizuho Information & Research Institute Inc テストデータ生成システム、テストデータ生成方法及びテストデータ生成プログラム
US20100074441A1 (en) * 2006-06-28 2010-03-25 Pauker Matthew J Data processing systems with format-preserving encryption and decryption engines
US20110113050A1 (en) * 2009-11-10 2011-05-12 Paul Youn Data masking with an encrypted seed
JP2017092929A (ja) * 2015-11-07 2017-05-25 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited フォーマット維持ベースマスキングシステムおよび方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060248079A1 (en) * 2005-04-28 2006-11-02 Freescale Semiconductor Incorporated Method and apparatus for finding a perfect hash function and making minimal hash table for a given set of keys
JP5306824B2 (ja) * 2006-01-11 2013-10-02 クゥアルコム・インコーポレイテッド 無線端末のビーコン信号の使用を含むタイミングおよび/または同期に関連する方法および装置
US7965297B2 (en) * 2006-04-17 2011-06-21 Microsoft Corporation Perfect hashing of variably-sized data
US8958554B2 (en) * 2009-11-30 2015-02-17 Red Hat, Inc. Unicode-compatible stream cipher
KR101106604B1 (ko) * 2011-06-14 2012-01-20 펜타시큐리티시스템 주식회사 특성 유지 암호화를 이용한 데이터 보안 방법 및 장치
US9141659B1 (en) * 2014-09-25 2015-09-22 State Farm Mutual Automobile Insurance Company Systems and methods for scrubbing confidential insurance account data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141282A (ja) * 2003-11-04 2005-06-02 Fujitsu Ltd 文字データの暗号化プログラム
US20100074441A1 (en) * 2006-06-28 2010-03-25 Pauker Matthew J Data processing systems with format-preserving encryption and decryption engines
JP2009110179A (ja) * 2007-10-29 2009-05-21 Mizuho Information & Research Institute Inc テストデータ生成システム、テストデータ生成方法及びテストデータ生成プログラム
US20110113050A1 (en) * 2009-11-10 2011-05-12 Paul Youn Data masking with an encrypted seed
JP2017092929A (ja) * 2015-11-07 2017-05-25 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited フォーマット維持ベースマスキングシステムおよび方法

Also Published As

Publication number Publication date
EP3465508B1 (en) 2021-04-28
US10164945B2 (en) 2018-12-25
WO2017205208A1 (en) 2017-11-30
JP6887446B2 (ja) 2021-06-16
US20170339111A1 (en) 2017-11-23
CA3025282A1 (en) 2017-11-30
EP3465508A4 (en) 2020-01-01
EP3465508A1 (en) 2019-04-10

Similar Documents

Publication Publication Date Title
JP6887446B2 (ja) データ関連アプリケーションデータをマスキングする方法、装置、およびコンピュータ読み取り可能な媒体
AU2018367363B2 (en) Processing data queries in a logically sharded data store
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
US10476662B2 (en) Method for operating a distributed key-value store
US8938067B2 (en) Format preserving encryption methods for data strings with constraints
US7694147B2 (en) Hashing method and system
US8862897B2 (en) Increasing data security in enterprise applications by using formatting, checksums, and encryption to detect tampering of a data buffer
US8375224B2 (en) Data masking with an encrypted seed
JP6144992B2 (ja) 検索可能暗号処理システム及び方法
US9519805B2 (en) Digest obfuscation for data cryptography
JP6120961B2 (ja) 特定フォーマットを有する代替データの生成および検証
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
CN106980794A (zh) 基于TrustZone的文件加解密方法、装置及终端设备
US20220019678A1 (en) Method, apparatus, and computer-readable medium for automated construction of data masks
US8600048B1 (en) Format-translating encryption systems
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
US9946720B1 (en) Searching data files using a key map
US20170032108A1 (en) Licensable function for securing stored data
EP3402117B1 (en) Method, apparatus, and computer-readable medium for automated construction of data masks
Attri et al. Enhancing Cloud Security Using Secured Binary-DNA Approach with Impingement Resolution and Complex Key Generation
JP7440662B2 (ja) マルチキー情報検索
Raja et al. Enhancing Communication Skills of the Learners in Professional Advancement
CN117828680A (zh) 数据访问方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200518

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200518

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210420

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210518

R150 Certificate of patent or registration of utility model

Ref document number: 6887446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150