JP6457660B2 - データ加工システム及びデータ加工方法 - Google Patents

データ加工システム及びデータ加工方法 Download PDF

Info

Publication number
JP6457660B2
JP6457660B2 JP2017555883A JP2017555883A JP6457660B2 JP 6457660 B2 JP6457660 B2 JP 6457660B2 JP 2017555883 A JP2017555883 A JP 2017555883A JP 2017555883 A JP2017555883 A JP 2017555883A JP 6457660 B2 JP6457660 B2 JP 6457660B2
Authority
JP
Japan
Prior art keywords
encrypted
data
encrypted data
queries
processor
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.)
Active
Application number
JP2017555883A
Other languages
English (en)
Other versions
JPWO2017103970A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2017103970A1 publication Critical patent/JPWO2017103970A1/ja
Application granted granted Critical
Publication of JP6457660B2 publication Critical patent/JP6457660B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/24Querying
    • G06F16/245Query processing
    • 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
    • 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/42Anonymization, e.g. involving pseudonyms
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

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

Description

本発明は、匿名化データベースを作成する技術に関する。
機微情報が含まれているデータを加工し、加工後はデータに機微情報が含まれないような技術が匿名化技術と呼ばれ、古くから検討されている。しかしながら、従来技術では、匿名化前の元データの知識を有する攻撃者に対しては、匿名化後も元データが識別可能な場合があることが知られている。
非特許文献1には、この課題を解消するため、データ内の定められた属性に対しては、必ず同一値がk件以上存在するよう、匿名化する技術が開示されている。ここで、kが2以上の数であれば、匿名化後の属性からは元データが一意には定まらない。
特許文献1には、指定された匿名性の要求を満たすように匿名化されたデータを出力するシステムが開示されている。
特許文献2には、個人情報の保護技術において、属性値の一般化階層木を自動で構成する匿名化装置を提供することが開示されている。
特許文献1:米国特許第7269578号明細書
特許文献2:米国特許出願公開第2013/0138698号明細書
非特許文献1:Kristen LeFevre, David J. DeWitt, Raghu Ramakrishnan, ”Incognito: efficient full-domain K-anonymity”, Proceedings of the 2005 ACM SIGMOD international conference on Management Data, p49-60
情報システムの開発・運用管理費の効率化を目的に、近年、情報システムを自組織が維持するのではなく、他組織が提供するクラウドと呼ばれる情報システム上でデータ加工を依頼するシステムが注目されている。この場合、データを他組織が管理する情報システムに預ける必要があるため、情報漏洩の予防を目的とした、暗号技術が有効な策として研究されている。
特許文献1に開示される方式では、必ず匿名化の実行環境にデータを開示する必要があるが、クラウド等の外部組織が運用する匿名化の実行環境を用いる場合には、ユーザのデータはクラウド側に開示されるため、情報漏洩の危険性がある。また、特に機微性の高いデータに対しては、この情報漏洩の懸念から、ユーザはクラウドを利用できない。
上記課題を解決するための、本発明の代表的なものの一例を示すと、次の通りである。すなわち、第1計算機を有するデータ加工システムであって、前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、前記第1プロセッサは、前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算し、前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データの少なくとも二つを変更し、前記複数の暗号化データを出力し、前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、前記補助情報は、二つ以上の暗号化クエリと、前記二つ以上の暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データとを対応付ける情報を含み、前記第1プロセッサは、前記二つ以上の暗号化クエリのいずれか一つを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記二つ以上の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記二つ以上の暗号化クエリの各々を用いて検索された各暗号化データを、前記二つ以上の暗号化クエリに対応付けられた前記置換用暗号化データによって置換することによって、前記所定の匿名性を満たすように前記暗号化されたデータを変更することを特徴とする。
本発明の一態様によれば、ユーザはデータが機微情報を含む場合であっても、そのデータの匿名化処理を他組織が管理する情報システムに委託できる。
本発明の実施例1のデータ加工システムのユースケースの概要を示した説明図である。 本発明の実施例1の管理サーバのハードウェア構成を示すブロック図である。 本発明の実施例1の登録PC、管理サーバおよび復号PCに格納されるデータおよびプログラム、ならびに、ネットワーク経由で送受信されるデータの概要を示す説明図である。 本発明の実施例1の登録PCが実行する暗号化データベースの作成及び登録の処理を示すフローチャートである。 本発明の実施例1の登録PCによって作成される暗号化データベースの説明図である。 本発明の実施例1の登録PCが実行する匿名化の依頼処理を示すフローチャートである。 本発明の実施例1の登録PCによる一般化階層木の暗号化の説明図である。 本発明の実施例1の登録PCによって暗号化された一般化階層木の実装例の説明図である。 本発明の実施例1の登録PCによって生成される暗号化クエリと暗号化データとの対応表の第1の例の説明図である。 本発明の実施例1の登録PCによって生成される暗号化クエリと暗号化データとの対応表の第2の例の説明図である。 本発明の実施例1の管理サーバが、暗号化された一般化階層木を用い、葉ノードと同じ値を有する暗号化データの出現頻度を集計する処理を示すフローチャートである。 本発明の実施例1の管理サーバが実行する匿名化処理を示すフローチャートである。 本発明の実施例1の管理サーバが生成する頻度付き暗号化された一般化階層木の説明図である。 本発明の実施例1の管理サーバが生成する匿名化暗号化データベースの説明図である。 本発明の実施例2の登録PCが実行する匿名化の依頼処理を示すフローチャートである。 本発明の実施例2の登録PCによる一般化階層木補助パラメータの作成の説明図である。 本発明の実施例2の登録PCによって生成される暗号化クエリと暗号化データとの対応表の説明図である。 本発明の実施例2の管理サーバが実行する匿名化処理を示すフローチャートである。 本発明の実施例2の管理サーバによって集計された葉ノードの出現頻度の説明図である。 本発明の実施例2の管理サーバが生成する頻度付き一般化階層木の説明図である。 本発明の実施例1の変形例の登録PCが実行する暗号化データベースの作成及び登録の処理の説明図である。 本発明の実施例1の変形例の管理サーバが実行するノードの頻度集計処理の説明図である。
以下、本発明の実施例を図面に基づいて詳細に説明する。なお、これによって本発明が限定されるものではない。実施の形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。
まず、本発明の実施例で使用する用語を定義する。
(1)データベース
データの管理形態の一種である。データを平文で保存する場合、平文データベースと記す。また、データとして暗号文を保存する場合、暗号化データベースと記す。単にデータベースと呼ぶ場合は、データの状態は暗号化の有無を問わない。
(2)暗号鍵
データの暗号化に用いる鍵である。
(3)復号鍵
データの復号に用いる鍵である。共通鍵暗号の場合、暗号鍵と復号鍵は等しい。
(4)平文データ(または平文)
暗号化対象のデータを指す。
(5)平文空間
平文がとりえる値の集合を指す。例えば、平文空間を0以上t未満とするとき、整数[0、1、2、・・・t−1]のいずれかを平文が取りうる。
(6)検索可能暗号
データの暗号化/復号機能とクエリの暗号化機能を保有する。暗号化データの暗号化を維持したまま、暗号化クエリと比較し、元のデータとクエリの値が等しいかを判定することが可能である。本発明では、この判定関数が0または1を出力するものとし、1の場合は等しい、0の場合は等しくないものとする。なお、暗号プリミティブレベルでは復号機能を有さない検索可能暗号でも、別の暗号プリミティブと組み合わせ、復号機能を有する検索可能暗号が構成できる。
(7)匿名化補助パラメータ
k−匿名化をする際に利用するパラメータの総称である。k値、k−匿名化のアルゴリズム、匿名化対象の属性(もしくは、暗号化対象となる暗号化データベースの列番号、または列名)等を含んでもよい。
(8)匿名化補助データ
匿名化の状態を示すデータである。k値に加え、匿名化後の情報量などに基づくスコア等を含んでもよい。
(9)一般化階層木
一般化階層木は、一般には属性毎に定められた、データの再符号化(匿名化)の手順に利用されるデータである。後述する図5Bの一般化階層木112Aに示すように、単一の属性(図5Bの例では属性1)に対し、一般化階層木が与えられる。一般化階層木内のノードには値がラベル付け(a,b,abなど)され、ノード同士は結線構造を有する。各ノードには一般化階層木における高さが与えられており、例えば一般化階層木112Aでは、ノード{*}が最も高い位置にあり、次いでノード{abc,def}と{bc,de}、最後(すなわち最も低い位置)にノード{a,b,c,d,e,f}がある。直接的に線で結ばれたノードのうち、位置が高い方を親ノードと呼び、低い方を子ノードと呼ぶ。また、親ノードをもたないノードを根ノード、子ノードをもたないノードを葉ノードと呼ぶ。葉ノードは、もともとのデータの値を直接指しており、例えば表4.1の属性1における値{a,b,c,d,e,f}が葉ノードのラベルとして割り当てられている。ノードの高さが最も低い位置を0階層とし、高さが上がるたびに階層を1ずつ増やす。例えば、一般化階層木112Aでは、0階層から1、2、3階層まで、4種類の階層がある。本実施例で開示する匿名化技術では、一般化階層木は、データの再符号化(匿名化)の手順に利用される。例えば、一般化階層木112Aでは、0階層目にデータの平文空間の値が{a,b,c,d,e,f}として列挙されている。1階層目には、{b,c}を再符号化した値として{bc}、{d,e}を再符号化した値として{de}がある。2階層目には、{a},{bc}を再符号化した値として{abc}、{de,f}を再符号化した値として{def}がある。3階層目には{abc,def}を再符号化した値として、記号{*}がある。
(10)順序保存暗号
データの暗号化/復号機能とクエリの暗号化機能を保有する。暗号化データの暗号化を維持したまま、暗号化クエリと比較し、元のデータとクエリの値の大小比較が判定可能である。暗号プリミティブによっては、データの暗号化機能とクエリの暗号化機能が同じ場合もある。
図1は、本発明の実施例1のデータ加工システムのユースケースの概要を示した説明図である。
図示するように、本実施例のデータ加工システムは、登録PC100、管理サーバ200および復号PC300から構成される。図1に示すように、例えば、登録PC100はデータ登録業者が保有し、管理サーバ200はクラウド運用業者が保有し、復号PC300はサービス提供業者が保有してもよい。登録PC100が暗号鍵100Cを用いてデータ100Aを暗号化し、暗号化データ200Aとして、ネットワーク400(図2参照)経由で管理サーバ200に登録する。さらに、登録PC100は匿名化の際に利用する匿名化補助情報100Bを暗号化し、ネットワーク400経由で管理サーバ200に登録する。
管理サーバ200は、暗号化された匿名化補助情報200Bを用い、暗号化データ200Aを匿名化した、匿名化済暗号化データ200Cを作成し、復号PC300にネットワーク400経由で提供する。復号PC300は、復号鍵300Bを用い、匿名化済暗号化データ300Cを復号し、匿名化データ300Aを入手する。
上記の処理では、管理サーバ200は匿名化データを作成できる一方、暗号化によって、データの内容は管理サーバ200には漏れないため、機微性の高いデータでも、データ登録業者(登録PC100)は安全にクラウド(管理サーバ200)に匿名化処理を委託できる。
図2は、本発明の実施例1の管理サーバ200のハードウェア構成を示すブロック図である。
図示するように、管理サーバ200は、CPU(Central Processing Unit)201、メモリ202、記憶装置203、入力装置205、出力装置206、読書装置207、および通信装置208が内部信号線304によって連結されることで構成される。記憶装置203には、プログラムが格納されている。プログラムは、メモリ202にロードされ、CPU201によって実行される。以下の説明において管理サーバ200が実行する処理は、実際には、CPU201がプログラムに従って、必要に応じてメモリ202、記憶装置203、入力装置205、出力装置206、読書装置207及び通信装置208を制御することによって実行される。
読書装置207は、例えばCD−R/CD−RWドライブ、SDカードリーダライタ等の、掛け替え可能な記憶媒体の読み書き装置である。通信装置208は、ネットワーク400に接続され、ネットワーク400を介して登録PC100及び復号PC300との間でデータの送受信を行う。
また、登録PC100及び復号PC300のハードウェア構成は、管理サーバ200と同様であるため、説明を省略する。登録PC100の記憶装置には、プログラムが格納され、そのプログラムが登録PC100のメモリにロードされ、登録PC100のCPUによって実行されることによって、登録PC100の処理が実現される。同様に、復号PC300の記憶装置には、プログラムが格納され、そのプログラムが復号PC300のメモリにロードされ、復号PC300のCPUによって実行されることによって、復号PC300の処理が実現される。
なお、管理サーバ200のプログラムは、読書装置207を介して入力されるか、または通信装置208を介してネットワーク400から入力され、記憶装置203に記憶され、その後、メモリ202上にロードされて、CPU201によって実行されてもよい。登録PC100及び復号PC300のプログラムも同様である。
図3は、本発明の実施例1の登録PC100、管理サーバ200および復号PC300に格納されるデータおよびプログラム、ならびに、ネットワーク経由で送受信されるデータの概要を示す説明図である。
登録PC100は、記憶装置内またはメモリ内に、平文データを格納した平文データベース111と、匿名化時に用いる情報である平文の一般化階層木112と、匿名化補助パラメータ113と、を保持する。さらに、登録PC100の記憶装置またはメモリは、平文データベース111および平文の一般化階層木112を暗号化する暗号化プログラム110を保持する。平文データベース111が図1のデータ100Aに、一般化階層木112及び匿名化補助パラメータ113が図1の匿名化補助情報100Bに、それぞれ対応する。
暗号化データベース121および暗号化された一般化階層木122は、登録PC100が保持する暗号化プログラム110によって、それぞれ平文データベース111および平文の一般化階層木112を暗号化することによって生成されたものであり、ネットワーク400経由で登録PC100から管理サーバ200に提供される。また、匿名化補助パラメータ113も、ネットワーク400経由で登録PC100から管理サーバ200に提供される。
管理サーバ200は、記憶装置203内またはメモリ202内に、暗号化データベース121と、匿名化時に用いる情報である暗号化された一般化階層木122と、匿名化補助パラメータ113とを保持する。さらに、記憶装置203またはメモリ202は、暗号化された一般化階層木および匿名化補助パラメータを用い、暗号化データを匿名化する、匿名化プログラム210を保持する。暗号化データベース121が図1の暗号化データ200Aに、暗号化された一般化階層木122及び匿名化補助パラメータ113が図1の暗号化した匿名化補助情報200Bに、それぞれ対応する。
匿名化暗号化データベース231は、管理サーバ200が保持する匿名化プログラム210によって、暗号化データベース121を匿名化することによって生成されたものであり、ネットワーク400経由で管理サーバ200から復号PC300に提供される。また、匿名化結果補助データ232も、ネットワーク400経由で管理サーバ200から復号PC300に提供される。匿名化暗号化データベース231が図1の匿名化済暗号化データ200Cに対応する。
復号PC300は、記憶装置内またはメモリ内に、匿名化暗号化データベース231を復号する復号プログラム310を保持する。復号PC300は、復号プログラム310を用いて匿名化暗号化データベース231を復号することによって、記憶装置内またはメモリ内に匿名化データベース331を保持することが可能である。匿名化データベース331が図1の匿名化データ300Aに対応する。
次に、登録PC100が暗号化データベース121を作成し、管理サーバ200に登録する手順について図4Aおよび図4Bを用いて説明する。
図4Aは、本発明の実施例1の登録PC100が実行する暗号化データベース121の作成及び登録の処理を示すフローチャートである。
図4Bは、本発明の実施例1の登録PC100によって作成される暗号化データベース121の説明図である。
平文データベース111は、図4Bに示すように、複数の属性(列)に対し、複数のレコード(行)を含む。属性毎に取りうる値が決まっており、図4Bに示す平文データベース111の属性1は必ず{a,b,c,d,e,f}のいずれかの値をとるものとする。これらの平文の属性値は、例えば人間の年齢のような数値データ又は人間の住所のような文字列データ等、任意の形式の平文データである。
暗号化データベース121は、登録PC100が、平文データベース111からセル単位で抜き出されたデータを、暗号化プログラム110が提供する検索可能暗号のデータ暗号化機能で暗号化することによって生成されたものである。E()は暗号化(Encyption)を意味し、例えば、E(a)は値aの暗号化データを意味する。従って、表4.2の属性1は必ず{E(a),E(b),E(c),E(d),E(e),E(f)}のいずれかの値をとる。
登録PC100は、平文データベース111から該当する平文データを全て抽出し、暗号鍵を用いて、暗号化データベース121を作成し(S111)、この暗号化データベース121をネットワーク400経由で管理サーバ200に登録する(S112)。
次に、登録PC100が暗号化された一般化階層木を作成し、それを匿名化補助パラメータと共に管理サーバ200に登録し、管理サーバ200に匿名化を依頼する手順について図5Aから図5Eを用いて説明する。
図5Aは、本発明の実施例1の登録PC100が実行する匿名化の依頼処理を示すフローチャートである。
図5Bは、本発明の実施例1の登録PC100による一般化階層木の暗号化の説明図である。
図5Cは、本発明の実施例1の登録PC100によって暗号化された一般化階層木の実装例の説明図である。
図5Dは、本発明の実施例1の登録PC100によって生成される暗号化クエリと暗号化データとの対応表の第1の例の説明図である。
図5Eは、本発明の実施例1の登録PC100によって生成される暗号化クエリと暗号化データとの対応表の第2の例の説明図である。
暗号化された一般化階層木は、一般化階層木におけるノードを検索可能暗号のクエリ暗号化機能で暗号化したものである。例えば、図5Bに示すように、一般化階層木112Aを暗号化した場合、暗号化された一般階層木122Aが得られる。Q()は暗号化クエリ(encypted Query)を意味し、例えば、Q(a)は値aの暗号化クエリを意味する。
管理サーバ200は、暗号化データを復号するための復号鍵を持たないため、例えば暗号化された属性値E(a)を復号することができず、したがって、属性値aを知ることができない。しかし、管理サーバ200は、暗号化クエリQ(a)を用いて暗号化データベース121に含まれる暗号化データE(a)をそれが暗号化されたままで検索することができ、それによって、例えば暗号化データベース121に含まれる暗号化データE(a)の数を計数することができる。
匿名化補助パラメータ113は、平文の一般化階層木の各ノードを暗号化することによって得られた暗号化データをそれが暗号化されたままで検索するための暗号化クエリと、その暗号化データを置き換えることができる暗号化データと、を対応付ける対応表を含む。この対応表によって、暗号化された一般化階層木の各ノードは、一つの属性値又は複数の属性値の組合せを暗号化することによって得られた暗号化データと対応付けられる。
図5Dには、一般化階層木112Aを対象とした対応表115Aを示す。なお、暗号化クエリと暗号化データは1対1関係である必要はない。例えば、複数の復号PC300があり、それぞれ異なる復号鍵(k1、k2・・・)を有する場合は、図5Eの対応表115Bに例示するように、一つの暗号化クエリに、復号鍵ごとの暗号化データが対応付けられても良い。また、もちろん暗号化クエリと暗号化データの関係は多対多でもよい。
対応表に保持された復号PC300用の暗号化データは、暗号化クエリを用いて検索された暗号化データを置換するための置換用暗号化データであり、復号PC300の復号鍵300Bによって復号できるように暗号化されている。例えば復号PC300が公開鍵暗号方式の秘密鍵を復号鍵300Bとして保持している場合、登録PC100は、それに対応する公開鍵を用いて復号PC300向けの置換用暗号化データを生成し、それを対応表115Aに登録してもよい。同様に、複数の復号PC300がある場合には、それぞれの復号PC300が保持する秘密鍵に対応する公開鍵を用いてそれぞれの復号PC向けの置換用暗号データを生成してそれらを対応表115Bに登録してもよい。ただし、共通鍵方式の暗号鍵を使用して置換用暗号化データを作成してもよいことは当然である。
あるいは、登録PC100は、S111において暗号化データベースを作成するときに使用した暗号鍵と同一の暗号鍵を用いて置換用暗号化データを作成し、それを復号するために使用する復号鍵を安全な方法で復号PC300に渡してもよい。これによって、それぞれの復号PC300に安全に所望の匿名化データベースを提供することができる。
一般化階層木の実装方法は一つに限定されないが、その一例として一般化階層木112Aの実装例112Bを図5Cに示す。さらに、図5Cは、実装例112Bのように一般化階層木112Aを実装した場合に、セル毎に暗号化クエリ機能で暗号化することによって生成された、暗号化された一般化階層木の実装例122Bを示す。
上記の手続きは一属性(例えば属性1)の一般化階層木の暗号化の例であるが、登録PC100は、他の属性(例えば属性2、・・・、属性n)の一般化階層木も検索可能暗号のクエリ暗号化機能で同様に暗号化できる。
登録PC100は、暗号鍵を用い、一般化階層木を暗号化することによって、暗号化された一般化階層木を作成し(S121)、この暗号化された一般化階層木と匿名化補助パラメータをネットワーク経由で管理サーバ200に送信し、登録する(S122)。このとき、登録PC100は、置換用の暗号化データおよびそれを含む対応表115Aまたは115Bも生成して管理サーバ200に送信し、登録する。最後に、登録PC100は管理サーバ200に匿名化を依頼する(S123)。
なお、S122において、登録PC100は、暗号化された一般化階層木と匿名化補助パラメータとを同時に送信しなくても良い。例えば、登録PC100は、事前に暗号化された一般化階層木を管理サーバ200に登録しておき、管理サーバ200に匿名化を依頼する際に、匿名化補助パラメータを送信しても良い。
管理サーバ200は、例えば、上記の暗号化された一般化階層木122Aおよび対応表115Aを参照して、暗号化クエリQ(b)を用いて検索された暗号化データE(b)を、置換用の暗号化データEk(b)、Ek(bc)またはEk(abc)のいずれとも置換できることを知ることができる。さらに、管理サーバ200は、例えば、暗号化された一般化階層木122Aおよび対応表115Aを参照して、暗号化データE(b)を置換用の暗号化データEk(bc)に置き換えた場合に実現される匿名性の程度(例えば出現頻度)が、暗号化クエリQ(b)を用いて検索された暗号化データの出現頻度と暗号化クエリQ(c)を用いて検索された暗号化データの出現頻度との合計によって計算できることを知ることができる。
図5Bから図5Eに示す暗号化された一般化階層木および対応表は、上記のように、各暗号化クエリを用いて検索された暗号化データを置き換えることができる置換用の暗号化データを特定する情報、および、その置換を行ったときに実現される匿名性の程度を計算するためにどの暗号化クエリによる検索結果の出現頻度を計算したらよいかを特定する情報の一つの実装例に過ぎず、このような情報が別の形態で実装されてもよい。例えば、図5Bから図5Eでは、暗号化クエリQ(b)およびQ(c)を、暗号化クエリQ(bc)を介して置換用の暗号化データEk(bc)と対応付けることによって、暗号化クエリQ(b)を用いて検索された暗号化データ及び暗号化クエリQ(c)を用いて検索された暗号化データがいずれも置換用の暗号化データEk(bc)によって置換できること等が表現されているが、暗号化クエリQ(bc)を介さずに暗号化クエリQ(b)およびQ(c)を置換用の暗号化データEk(bc)と対応付けることによってそのことを表現してもよい。
図6は、本発明の実施例1の管理サーバ200が、暗号化された一般化階層木を用い、葉ノードと同じ値を有する暗号化データの出現頻度を集計する処理を示すフローチャートである。
管理サーバ200は、匿名化補助パラメータ113を読み込み、匿名化の対象となる属性を暗号化データベース121の属性から全て抽出し、リスト化する(S202)。
次に、管理サーバ200は、S201でリスト化した匿名化対象の属性から1つの属性を選択する(S203)。もし、1つも属性が残っていない場合は、管理サーバ200は処理を終了する(S204)。S203においていずれかの属性を選択できた場合、管理サーバ200は、選択した属性における暗号化された一般化階層木の葉ノードを全て抽出し、リスト化する(S205)。なお、葉ノードには暗号化クエリが登録されている。
次に、管理サーバ200は、リスト化した葉ノードの1つを選択する(S211)。もし、一つも葉ノードが残っていない場合、処理はS210へ進む。管理サーバ200は、リスト化した葉ノードの1つを選択した後、頻度集計用の変数cntを0にセットする(S206)。
次に、管理サーバ200は、選択した属性における暗号化データを抽出する(S207)。暗号化データが抽出できた場合、管理サーバ200は、抽出した暗号化データと暗号化クエリ(葉ノード)を検索可能暗号の判定関数に入力し、出力された0(暗号化データと暗号化クエリは不一致)または1(暗号化データと暗号化クエリは一致)を変数cntに加算する(S208)。この操作によって、変数cntには、葉ノードと一致する暗号データの個数が集計される。新規に抽出できる暗号化データがない場合、管理サーバ200は、その時点の変数cntを、選択した属性における葉ノードの出現数として登録する(S209)。
次に、管理サーバ200は、S205で作成したリストからS211で選択した葉ノードを削除し(S212)、処理はS211に戻る。
S202で作成したリストからS203で選択した属性を削除する(S210)。
図6の処理によって、全ての匿名化対象の属性における暗号化された一般化階層木の葉ノードの出現数(又は出現数に基づいて計算される出現頻度)が得られる。
管理サーバ200が、暗号化データベースを匿名化した匿名化暗号化データベースを作成し、復号PCに提供する手順について図7Aから図7Cを用いて説明する。
図7Aは、本発明の実施例1の管理サーバ200が実行する匿名化処理を示すフローチャートである。
図7Bは、本発明の実施例1の管理サーバ200が生成する頻度付き暗号化された一般化階層木の説明図である。
図7Cは、本発明の実施例1の管理サーバ200が生成する匿名化暗号化データベースの説明図である。
管理サーバ200は、図6の処理フローに従い、全ての匿名化対象の属性における暗号化された一般化階層木の葉ノードの出現頻度を記憶する(S221)。図7Bには、図5Bに示した暗号化された一般化階層木122Aに出現頻度を付すことによって生成された頻度付き暗号化された一般化階層木122Cの一例を示す。この例では、一般化階層木の葉ノードのうち、暗号化クエリQ(a)がラベルとして付されたノード(以下、単にノードQ(a)とも記載する。他の暗号化クエリに対応するノードについても同様)には4回、ノードQ(b)には3回、ノードQ(c)には1回、ノードQ(d)には2回、ノードQ(e)には6回、ノードQ(f)には7回の出現頻度が付与された。なお、この例では、出現回数が出現頻度として扱われる。
次に、管理サーバ200は、葉ノードの出現頻度を用い、子ノードの出現頻度の総和を親ノードの出現頻度として割り当てる(S222)。例えば、頻度付き暗号化された一般化階層木112Cでは、出現頻度3回のノードQ(b)と1回のノードQ(c)の親ノードであるQ(bc)の出現頻度には3回と1回の合計値である4回が割り当てられる。同様に、管理サーバ200は、全てのノードに出現頻度を割り当てる。
さらに、管理サーバ200は、S222において、ノードの出現頻度に基づいて、k−匿名性を満たすノードの組み合わせを決める。このノードの決定方法は、従来技術を利用でき、例えば、特許文献1または非特許文献1に記載されている技術を用い、k−匿名性を満たすノードを決定できる。
例えば、図7Bに示す頻度付き暗号化された一般化階層木122Cが得られ、かつ、k値が7であるとすると、ノードQ(a)、Q(b)、Q(c)は、出現頻度が7より小さいため、k−匿名性を満たさない。さらに、Q(b)およびQ(c)の親ノードであるノードQ(bc)の出現頻度も7より小さい。しかし、ノードQ(a)およびQ(bc)の親ノードであるノードQ(abc)の出現頻度は7以上であるため、これがk−匿名性を満たすノードとして決定される。同様に、Q(d)およびQ(e)の親ノードであるノードQ(de)、ならびに、ノードQ(f)の出現頻度も7以上であるため、これらがk−匿名性を満たすノードとして決定される。
次に、管理サーバ200は、決定されたノードを葉ノードの値と置換し、更に対応表115Aまたは115Bを用いて、置換した葉ノードの値と対応する暗号化データを元の値と置換することによって、暗号化データベース121から匿名化暗号化データベース231を作成する(S224)。
例えば、図7の112CでQ(abc)、Q(de)、Q(f)がk−匿名性を満たすノードとして決定された場合は、暗号化データベース121の属性1の暗号化された属性値E(a)は、それを検索するために用いられた暗号化クエリQ(a)に対応するノードQ(a)の上位のk−匿名性を満たすノードQ(abc)が決定されたため、対応表115Aを用いて、Q(abc)に対応する暗号化データEk(abc)に置換される。
同様に、暗号化クエリQ(b)およびQ(c)によって検索される暗号化データE(b)およびE(c)は、いずれも、Q(abc)に対応する暗号化データEk(abc)に置換される。さらに、暗号化クエリQ(d)およびQ(e)によって検索される暗号化データE(d)およびE(e)は、いずれも、ノードQ(de)に対応する暗号化データEk(de)に置換される。さらに、暗号化クエリQ(f)によって検索される暗号化データE(f)は、ノードQ(f)に対応する暗号化データEk(f)によって置換される。
その結果、最終的には図7Cの匿名化暗号化データベース231の属性1のように置換される。管理サーバ200は、匿名化結果補助データ232を作成し、匿名化暗号化データベース231と共にネットワーク経由で復号PCに提供する(S225)。
なお、図5Eに示す対応表115Bが用意され、どの復号PC300に向けた匿名化データを作成するかを指示する情報が管理サーバ200に入力されている場合、管理サーバ200は、検索された暗号化データを、指示された復号PC300に対応する置換用暗号化データによって置換する(S224)。
また、管理サーバ200が暗号化データベースの匿名化を実行する時点で、匿名化したデータベースをどの復号PC300が利用するか判明していない場合があり得る。この場合、管理サーバ200は、上記の処理において、元の暗号化データを置換用暗号化データで置換する代わりに、それに対応する暗号化クエリによって置換し、その後、利用する復号PC300が判明して、その復号PC300に向けた置換用暗号化データのセットを含む対応表を入手したときに、それぞれの暗号化クエリをそれに対応する当該復号PC300向けの置換用暗号化データに置換してもよい。
復号PC300は、管理サーバ200から匿名化暗号化データベース231および匿名化結果補助データ232を受信する。また、復号PC300は、復号鍵300Bを用い、匿名化暗号化データベース231の暗号化を解除し、匿名化データベース331を作成し、記憶装置に格納する。
以上の処理によって、本実施例では、登録PC100は、管理サーバ200には平文データベースを開示することなく、データの機密性を維持しながら、管理サーバ200に匿名化処理を依頼し、復号PC300に匿名化データベースを提供することができる。
なお、本実施例のユースケースでは、図1が示すように、登録PCが保有する暗号鍵と復号PCが保有する復号鍵が異なる例を示したが、暗号化と復号に同一の鍵を用いるように変更しても良い。その場合、対応表115A等には、復号PC向け暗号化データとして、登録PC100が暗号化データを生成するときに使用したものと同じ暗号鍵を用いて暗号化した暗号化データが登録される。そして、管理サーバ200は、匿名化処理を行う前に既に所定の匿名性が満たされており、他の属性値と組み合わせた暗号化データによって置換する必要がない暗号化データについては、置換用の暗号化データと置換しなくてもよい。
また、本実施例のユースケースでは、図1が示すように、登録PC100と復号PC300がそれぞれ異なる事業者の異なる計算機によって運用される場合を想定したが、両者が同一の事業者の同一の計算機によって運用されても良い。
また、本実施例におけるユースケースでは、図1が示すように、登録PC100、管理サーバ200および復号PC300がそれぞれ1台ずつ動作する場合を記述したが、本発明では、計算機の台数は固定されない。即ち、登録PC100、管理サーバ200および復号PC300がそれぞれ複数台、存在しても良い。また、その場合は、それぞれ異なる暗号化鍵を、登録PC100ごとあるいはグループングした登録PC100ごとに持たせてもよい。同様に、それぞれ異なる復号鍵を、復号PC300ごとあるいはグルーピングした復号PC300ごとに持たせてもよい。また、管理サーバ200に、異なる暗号鍵で暗号化された暗号化データを取り扱え、頻度集計が可能な、特殊用途の鍵を持たせても良い。
また、本の暗号化データベース121では、図4に示すように、「属性1」等の属性を識別する情報が暗号化されていないが、属性を識別する情報も暗号化するように変更しても良い。この場合、登録PC100は、S111で検索可能暗号のデータ暗号化機能を用いて属性を識別する情報を暗号化し、S121で検索可能暗号のクエリ暗号化機能を用いて暗号化された属性を検索するクエリを暗号化する。その後、管理サーバ200は、S205で検索可能暗号の判定関数を用い、抽出した属性に対応する暗号化された一般化階層木を抽出する。この変更処理によって、登録PC100は平文データベース111に含まれる属性値のデータに加え、属性を識別する情報も管理サーバに隠すことが出来る。
また、本実施例においては、検索可能暗号のデータの暗号化機能を用い、暗号化データベースを作成し、検索可能暗号のクエリの暗号化機能を用い、暗号化された一般化階層木を作成し、検索可能暗号の判定関数を用い、頻度付き暗号化された一般化階層木を作成した。しかし、これは一例であり、検索可能暗号とは異なる暗号方式を用いても本発明を実施することができる。例えば、順序保存暗号は、検索可能暗号と同様にデータの暗号化機能、クエリの暗号化機能、判定関数が存在するので、順序保存暗号のデータの暗号化機能を用い、暗号化データベースを作成し、順序保存暗号のクエリの暗号化機能を用い、暗号化された一般化階層木を作成し、順序保存暗号の判定関数を用い、頻度付き暗号化された一般化階層木を作成するよう、本実施例を変更しても良い。この場合、順序保存暗号は数値の順序関係を保存するので、最終的に、順序関係を保存した匿名化データベースを作成できる。
また、本実施例において、数値集計が可能な比較判定暗号を用いてもよい。比較判定暗号は、検索可能暗号と同様、データやクエリの暗号化機能を保有するほか、暗号化したまま集計、比較ができる。そのため、比較可能暗号の暗号化により、ノードの出現頻度を暗号化したまま、k−匿名性を満たすノードを発見できる。
また、本発明において、数値集計が可能であり、かつ数値集計の結果のみを復号可能な暗号を用いてもよい。このとき、ノードと暗号化データとの対応関係(判定結果)もサーバに知らせずに済むため、より安全にk−匿名性を満たすノードを発見できる。このような暗号を適用した本実施例の変形例について図10及び図11を参照して説明する。
図10は、本発明の実施例1の変形例の登録PC100が実行する暗号化データベース121の作成及び登録の処理の説明図である。
図11は、本発明の実施例1の変形例の管理サーバ200が実行するノードの頻度集計処理の説明図である。
例えば、図10の表1001に示すように、平文データベースの属性1が{a,b,c,d,e,f}のいずれかの値をとりうる場合、暗号化データベース(表1002)は、平文の属性1がとりうる値を列に展開し、各行が平文データベースに含まれる属性1の各値に対応する暗号化データベース(表1002)が作成される。この表1002において、各行に対応する属性値は必ずa〜fのいずれかであり、各行の属性値に対応する列に1を暗号化した値、それ以外の列に0を暗号化した値が保有される。例えば、平文データベースの1行目の属性1の値がaであるため、表1002の1行目の値aに対応する列には、1を暗号化した値(例えばEk(1))が保有され、それ以外の列には、0を暗号化した値(例えばEk(1))が保有される。また、表1002の0行目の各列には、各列に対応する属性1のとりうる各値を暗号化した値(例えば値a〜fをそれぞれ暗号化したE(a)〜E(f))が保有される。
この暗号化は頻度集計が可能である。Ek()は集計結果のみ鍵kで復号可能な暗号化(Encyption)を意味する。例えば、表1002の1行目は1列目のみEk(1)、他はEk(0)であるので、1行目に対応する暗号化された属性値は、0行目1列目に記載されたE(a)をとることを意味する。同様に、n行目は6列目のみE(1)、他はE(0)であるので、n行目に対応する暗号化された属性値は、0行目6列目に記載されたE(f)をとることを意味する。これらの値は全て暗号化されており、管理サーバ200はこれらの値を乱数と区別できない。
登録PC100は、平文データベースから該当する平文データを全て抽出し、上記の手法で、暗号鍵を用いて、暗号化データベースを作成し(S111)、この暗号化データベースをネットワーク経由で管理サーバ200に登録する(S112)。また、管理サーバ200による葉ノードの集計処理(S221)では、図11に示すように、暗号化データを列毎に集計し、その結果を復号することによって、暗号化された一般化階層木の葉ノードの出現頻度が得られる。
また、本実施例のユースケースでは、図1等が示すように、平文データベースと暗号化データベースが存在するが、平文データベースの一部に暗号化データが存在してもよく、また暗号化データベースの一部に平文データが存在しても良い。
また、本発明における匿名化パラメータとして、対応表115Aまたは115B等を用いる場合を示したが、検索可能暗号の暗号化クエリに復号機能を付与することによって、対応表に関する処理を省くことが出来る。このとき、S224において、管理サーバ200は、選択されたノードを葉ノードの値と置換し、置換した葉ノードの値を暗号化データベースの元の値と置換することで、暗号化データベースから匿名化暗号化データベースを作成する。
また、対応表を登録PC100から管理サーバ200に送らずに、管理サーバ200が自身で作成するように処理を変更しても良い。
実施例1では、暗号化された一般化階層木が登録PC100から管理サーバ200にあたえられることを想定した。しかしながら、登録PC100が一般化階層木を保持していない、または保持していたとしてもそれを管理サーバ200に与えたくない場合もありえる。また、管理サーバ200が、与えられた暗号化された一般化階層木とは異なる一般化階層木を用い、匿名化を行いたい場合もありえる。そこで、実施例2では、登録PC100が暗号化された一般化階層木を管理サーバ200に与えず、一般階層木作成用のデータを与える場合の匿名化の処理方式を述べる。以下に説明する相違点を除き、実施例2のシステムの各部は、図1〜図7Cに示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
図8Aは、本発明の実施例2の登録PC100が実行する匿名化の依頼処理を示すフローチャートである。
図8Bは、本発明の実施例2の登録PC100による一般化階層木補助パラメータの作成の説明図である。
図8Cは、本発明の実施例2の登録PC100によって生成される暗号化クエリと暗号化データとの対応表の説明図である。
登録PC100の匿名化の依頼フローは、実施例1と類似する。登録PC100は、図5Aに示したフローにおける、暗号化された一般化階層木を作成する処理(S121)の代わりに、一般化階層木作成を補助するためのデータである一般化階層木補助パラメータを作成する処理を行う(S131)。例えば、登録PC100は、まず平文データベースの各属性における属性値全てを抽出する。図8Bの平文データベースの属性値131Aはその一例であり、属性1の代表値(aからfまでアルファベット順)と、属性2の代表値(1から9までの整数)と、属性nの代表値(血液型)と、を含む。
次に、登録PC100は、それら抽出した代表値全てを検索可能暗号のクエリ暗号化機能で暗号化し、これを一般化階層木用作成用データとする。図8Bの一般化階層木補助パラメータ132Aはその一例であり、属性1、属性2、・・・、属性nの全ての代表値を含む。
次に、登録PC100は、一般化階層木補助パラメータ132Aと匿名化補助パラメータ113とをネットワーク400経由で管理サーバ200に登録する(S132)。最後に、登録PC100は管理サーバ200に匿名化を依頼する(S133)。
匿名化補助パラメータ113は、暗号化データをそれが暗号化されたままで検索するための暗号化クエリと、検索された暗号化データと同一の平文データを復号PC300向けの暗号鍵で暗号化した暗号化データとを対応付ける、対応表を含む。図8Cに、一般化階層木112Aを対象とした場合の対応表133Aを例示する。この例では、暗号化クエリQ(a)〜Q(f)が、それぞれ、置換用の暗号化データEki(a)〜Eki(f)に対応付けられる。
なお、平文データベースの属性値131Aは各属性の代表値を全て含んでいるが、平文データベース111内で利用されている値のみを含むように変更しても良いし、特定の値のみを抽出するように変更しても良い。
図9Aは、本発明の実施例2の管理サーバ200が実行する匿名化処理を示すフローチャートである。
図9Bは、本発明の実施例2の管理サーバ200によって集計された葉ノードの出現頻度の説明図である。
図9Cは、本発明の実施例2の管理サーバ200が生成する頻度付き一般化階層木の説明図である。
まず、図9Aを参照して管理サーバ200による匿名化処理を説明する。図7Aに示した実施例1のフローと異なる部分は、S220bの追加と、S222の代わりにS222bを行う点である。以下、図7Aの管理サーバ200の匿名化処理と異なる、S210bからS212bを説明する。
S220bでは、管理サーバ200は、一般化階層木作成用のデータを、属性毎に取り出し、一般化階層木の葉ノードとする。例えば、属性1については、管理サーバ200は、一般化階層木補助パラメータ132Aから、属性1に対応する暗号化クエリQ(a)〜Q(f)を取り出し、それらから一般階層木の葉ノードを生成する(図9B参照)。
S221では、管理サーバ200は、図6の処理フローに従い、全ての属性における暗号化された一般化階層木の葉ノードの出現頻度を記憶する。これによって、例えば図9Bの葉ノードの出現頻度が得られる。
S222bでは、管理サーバ200は、葉ノードの出現頻度を利用し、逐次的に親ノードを作成し、最終的には頻度付き一般化階層木を作成する。作成においては、管理サーバは評価関数を用い、そのスコアが最適(または最大化や最小化)になるように、頻度付き一般化階層木を作成する。
図9Cの頻度付き一般化階層木212Bは、評価関数として情報エントロピーが最大になるように作成した一般化階層木の例である。この場合、逐次的に親ノードの出現頻度が最小化されるよう、出現頻度が最小の子ノードを組み合わせた、一般化階層木が作成される。
例えば、図9Bに示す一般化階層木の葉ノード211Bの例では、Q(a)に4回、Q(b)に3回、Q(c)に1回、Q(d)に2回、Q(e)に6回、Q(f)に7回の出現頻度が付与されている。そこで、管理サーバ200は、出現頻度1回のQ(c)と2回のQ(d)を組み合わせ、Q(c)またはQ(d)を意味する、親ノードQ(c)Q(d)を作成する。親ノードQ(c)Q(d)には、Q(c)とQ(d)の出現頻度の総和である3回が割り振られる。
次に、管理サーバ200は、親ノードの存在しない、5つのノードQ(a)、Q(b)、Q(c)、Q(d)、Q(e)、Q(f)から、最も出現頻度の少ないノードである出現頻度3回のQ(b)と3回のQ(c)Q(d)を組み合わせ、Q(b)またはQ(c)またはQ(d)を意味する、親ノードQ(b)Q(c)Q(d)を作成する。親ノードQ(b)Q(c)Q(d)には、Q(b)とQ(c)Q(d)の出現頻度の総和である6回が割り振られる。
このようにして、管理サーバ200は、逐次的に親ノードの出現頻度が最小となるよう、親ノードを作成していき、対象となるノードが規定数以下(図9Cの例では2)になるまで、この操作を繰り返す。
図9Cの例では、暗号化クエリQ(a)、Q(b)、Q(c)およびQ(d)のそれぞれを用いて検索された暗号化データの出現頻度の合計が10、暗号化クエリQ(e)およびQ(f)のそれぞれを用いて検索された暗号化データの出現頻度の合計が13であり、いずれもk値(例えば7)以上である。このため、暗号化クエリQ(a)、Q(b)、Q(c)およびQ(d)のそれぞれを用いて検索された各暗号化データ(例えばE(a)、E(b)、E(c)およびE(d))が、暗号化クエリQ(a)、Q(b)、Q(c)およびQ(d)のそれぞれに対応する置換用の暗号化データであるEki(a)、Eki(b)、Eki(c)およびEki(d)の組合せによって置き換えられる。同様に、暗号化クエリQ(e)およびQ(f)のそれぞれを用いて検索された各暗号化データ(例えばE(e)およびE(f))が、暗号化クエリQ(e)およびQ(f)のそれぞれに対応する置換用の暗号化データであるEki(e)およびEki(f)の組合せによって置き換えられる。これによって、例えば出現頻度が1回である暗号化データE(c)が、Eki(a)、Eki(b)、Eki(c)およびEki(d)の組合せによって置き換えられ、所望の匿名化が実現される。
なお、頻度付き一般化階層木の作成において、親ノードを作成する際に、同じ頻度のノードが存在する場合は、その選択方法が予め与えられる。例えば、ランダムに選択されてもよいし、辞書順等で選択されてもよいが、いずれの場合も、対象とするノードが必ず選択される。また、親ノードの階層は子ノードの階層より上の階層が設定される。例えば1ずつ上の階層を設定してもよいし、他の親ノードがある場合は、そのノードと同等の階層を設定しても良い。例えば、図9に示す頻度付き一般化階層木212Bでは、Q(e)とQ(f)の親ノードであるQ(e)Q(f)は、別の親ノードと同じ3階層に設定したが、これを4階層に設定するように変更してもよいし、1階層または2階層に設定してもよい。
S223からS225は実施例1の処理と同様であるので、説明を省略する。
以上の処理によって、本実施例では、登録PC100は、管理サーバ200に暗号化された一般化階層木を提供することなく、管理サーバ200に匿名化処理を依頼することができる。
なお、本実施例の管理サーバ200は、親ノードの頻度集計と頻度付き一般化階層木の作成処理における、頻度付き一般化階層木の作成(S222b)において、評価関数として情報エントロピーを採用し、この情報エントロピーの欠損が最小となるよう、Huffman符号やHu−Tucker等の圧縮技術を用い、一般化階層木を作成しても良い。これらの技術については、特許文献2に詳しく記載されている。
また、管理サーバ200は、頻度付き一般化階層木の作成処理(S222b)において、k値と出現頻度との差分を評価関数とし、これを最適化するように一般化階層木を作成しても良い。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。

Claims (12)

  1. 第1計算機を有するデータ加工システムであって、
    前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
    前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
    前記第1プロセッサは、
    前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算し、
    前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データの少なくとも二つを変更し、
    前記複数の暗号化データを出力し、
    前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
    前記補助情報は、二つ以上の暗号化クエリと、前記二つ以上の暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データとを対応付ける情報を含み、
    前記第1プロセッサは、前記二つ以上の暗号化クエリのいずれか一つを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記二つ以上の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記二つ以上の暗号化クエリの各々を用いて検索された各暗号化データを、前記二つ以上の暗号化クエリに対応付けられた前記置換用暗号化データによって置換することによって、前記所定の匿名性を満たすように前記暗号化されたデータを変更することを特徴とするデータ加工システム。
  2. 請求項1に記載のデータ加工システムであって、
    ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
    前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
    前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
    前記第2記憶装置は、
    前記複数の平文データを保持し、
    前記平文データがとり得る複数の内容に対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての平文データの内容に対応する一つ以上の上位層のノードと、を含む一般化階層木を保持し、
    第1暗号鍵及び第2暗号鍵と、を保持し、
    前記第2プロセッサは、
    前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記各ノードに対応する一つの平文データの内容又は複数の平文データの内容の組合せを暗号化することによって複数の前記置換用暗号化データを生成し、前記一般化階層木に基づいて、前記複数の平文データの内容を含む複数の暗号化データを検索するための複数の暗号化クエリと前記複数の平文データの内容の組合せを暗号化することによって生成された前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成し、
    前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、
    前記第1プロセッサは、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納することを特徴とするデータ加工システム。
  3. 第1計算機を有するデータ加工システムであって、
    前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
    前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
    前記第1プロセッサは、
    前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算し、
    前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データの少なくとも二つを変更し、
    前記複数の暗号化データを出力し、
    前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
    前記第1プロセッサは、前記複数の暗号化クエリのうち第1暗号化クエリを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記第1暗号化クエリを含む複数の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記第1暗号化クエリを含む複数の暗号化クエリの各々に対応する置換用暗号化データの組合せによって、前記第1暗号化クエリを含む複数の暗号化クエリの各々によって検索された前記各暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工システム。
  4. 請求項3に記載のデータ加工システムであって、
    前記第1プロセッサは、
    各々が前記各暗号化クエリに対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての前記暗号化クエリに対応する一つ以上の上位層のノードと、を含み、各ノードに対応する全ての前記暗号化クエリによって検索された前記暗号化データの出現数の合計値が前記各ノードの出現数として与えられた一般化階層木を生成し、
    前記所定の数以上の前記出現数を有する前記ノードに対応する全ての前記暗号化クエリを用いて検索された一つ以上の前記暗号化データの各々を、当該全ての暗号化クエリの各々に対応する置換用暗号化データの組合せによって置換することによって、前記所定の匿名性を満たすように前記暗号化データを変更することを特徴とするデータ加工システム。
  5. 請求項3に記載のデータ加工システムであって、
    ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
    前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
    前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
    前記第2記憶装置は、前記複数の平文データと、第1暗号鍵と、第2暗号鍵と、を保持し、
    前記第2プロセッサは、
    前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記複数の平文データがとり得る複数の値を暗号化することによって複数の前記置換用暗号化データを生成し、同一の平文データの内容に対応する前記暗号化データを検索するための暗号化クエリと前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成し、
    前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、 前記第1プロセッサは、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納することを特徴とするデータ加工システム。
  6. 第1計算機を有するデータ加工システムであって、
    前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
    前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
    前記第1プロセッサは、
    前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算し、
    前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データの少なくとも二つを変更し、
    前記複数の暗号化データを出力し、
    前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
    前記複数の暗号化データは、第1暗号鍵を用いて前記複数の平文データを暗号化することによって生成されたデータを含み、
    複数の前記置換用暗号化データは、第2暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第1置換用暗号化データと、第3暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第2置換用暗号化データと、を含み、
    前記第1プロセッサは、前記第1置換用暗号化データ又は前記第2置換用暗号化データのいずれかを指定する情報が入力されると、指定された置換用暗号化データによって前記暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工システム。
  7. 第1計算機を有する計算機システムが実行するデータ加工方法であって、
    前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
    前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
    前記データ加工方法は、
    前記第1プロセッサが、前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算する第1手順と、
    前記第1プロセッサが、前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データを変更する第2手順と、
    前記第1プロセッサが、前記変更した暗号化データを出力する第3手順と、を含み、
    前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
    前記補助情報は、二つ以上の暗号化クエリと、前記二つ以上の暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データとを対応付ける情報を含み、
    前記第2手順において、前記第1プロセッサは、前記二つ以上の暗号化クエリのいずれか一つを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記二つ以上の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記二つ以上の暗号化クエリの各々を用いて検索された各暗号化データを、前記二つ以上の暗号化クエリに対応付けられた前記置換用暗号化データによって置換することによって、前記所定の匿名性を満たすように前記暗号化されたデータを変更することを特徴とするデータ加工方法。
  8. 請求項7に記載のデータ加工方法であって、
    ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
    前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
    前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
    前記第2記憶装置は、
    前記複数の平文データを保持し、
    前記平文データがとり得る複数の内容に対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての平文データの内容に対応する一つ以上の上位層のノードと、を含む一般化階層木を保持し、
    第1暗号鍵及び第2暗号鍵と、を保持し、
    前記データ加工方法は、
    前記第2プロセッサが、前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記各ノードに対応する一つの平文データの内容又は複数の平文データの内容の組合せを暗号化することによって複数の前記置換用暗号化データを生成し、前記一般化階層木に基づいて、前記複数の平文データの内容を含む複数の暗号化データを検索するための複数の暗号化クエリと前記複数の平文データの内容の組合せを暗号化することによって生成された前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成する手順と、
    前記第2プロセッサが、前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、前記第1プロセッサが、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納する手順と、を含むことを特徴とするデータ加工方法。
  9. 第1計算機を有する計算機システムが実行するデータ加工方法であって、
    前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
    前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
    前記データ加工方法は、
    前記第1プロセッサが、前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算する第1手順と、
    前記第1プロセッサが、前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データを変更する第2手順と、
    前記第1プロセッサが、前記変更した暗号化データを出力する第3手順と、を含み、
    前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
    前記第2手順において、前記第1プロセッサは、前記複数の暗号化クエリのうち第1暗号化クエリを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記第1暗号化クエリを含む複数の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記第1暗号化クエリを含む複数の暗号化クエリの各々に対応する置換用暗号化データの組合せによって、前記第1暗号化クエリを含む複数の暗号化クエリの各々によって検索された前記各暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工方法。
  10. 請求項9に記載のデータ加工方法であって、
    前記第1プロセッサが、各々が前記各暗号化クエリに対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての前記暗号化クエリに対応する一つ以上の上位層のノードと、を含み、各ノードに対応する全ての前記暗号化クエリによって検索された前記暗号化データの出現数の合計値が前記各ノードの出現数として与えられた一般化階層木を生成する手順をさらに含み、
    前記第2手順において、前記第1プロセッサは、前記所定の数以上の前記出現数を有する前記ノードに対応する全ての前記暗号化クエリを用いて検索された一つ以上の前記暗号化データの各々を、当該全ての暗号化クエリの各々に対応する置換用暗号化データの組合せによって置換することによって、前記所定の匿名性を満たすように前記暗号化データを変更することを特徴とするデータ加工方法。
  11. 請求項9に記載のデータ加工方法であって、
    前記計算機システムは、ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
    前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
    前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
    前記第2記憶装置は、前記複数の平文データと、第1暗号鍵と、第2暗号鍵と、を保持し、
    前記データ加工方法は、
    第2プロセッサが、前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記複数の平文データがとり得る複数の値を暗号化することによって複数の前記置換用暗号化データを生成し、同一の平文データの内容に対応する前記暗号化データを検索するための暗号化クエリと前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成する手順と、
    第2プロセッサが、前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、前記第1プロセッサが、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納する手順と、をさらに含むことを特徴とするデータ加工方法。
  12. 第1計算機を有する計算機システムが実行するデータ加工方法であって、
    前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
    前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
    前記データ加工方法は、
    前記第1プロセッサが、前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算する第1手順と、
    前記第1プロセッサが、前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データを変更する第2手順と、
    前記第1プロセッサが、前記変更した暗号化データを出力する第3手順と、を含み、
    前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
    前記複数の暗号化データは、第1暗号鍵を用いて前記複数の平文データを暗号化することによって生成されたデータを含み、
    複数の前記置換用暗号化データは、第2暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第1置換用暗号化データと、第3暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第2置換用暗号化データと、を含み、
    前記第2手順において、前記第1プロセッサは、前記第1置換用暗号化データ又は前記第2置換用暗号化データのいずれかを指定する情報が入力されると、指定された置換用暗号化データによって前記暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工方法。
JP2017555883A 2015-12-14 2015-12-14 データ加工システム及びデータ加工方法 Active JP6457660B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/084910 WO2017103970A1 (ja) 2015-12-14 2015-12-14 データ加工システム及びデータ加工方法

Publications (2)

Publication Number Publication Date
JPWO2017103970A1 JPWO2017103970A1 (ja) 2018-08-02
JP6457660B2 true JP6457660B2 (ja) 2019-01-23

Family

ID=59056145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017555883A Active JP6457660B2 (ja) 2015-12-14 2015-12-14 データ加工システム及びデータ加工方法

Country Status (4)

Country Link
US (1) US11295635B2 (ja)
EP (1) EP3392864B1 (ja)
JP (1) JP6457660B2 (ja)
WO (1) WO2017103970A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507684B2 (en) * 2017-10-11 2022-11-22 Nippon Telegraph And Telephone Corporation κ-anonymization device, method, and program
US11416633B2 (en) * 2019-02-15 2022-08-16 International Business Machines Corporation Secure, multi-level access to obfuscated data for analytics
US11190336B2 (en) * 2019-05-10 2021-11-30 Sap Se Privacy-preserving benchmarking with interval statistics reducing leakage
US11429740B2 (en) * 2020-05-26 2022-08-30 Intuit Inc. Fast querying of encrypted data set
CN114003962B (zh) * 2021-12-28 2022-04-12 支付宝(杭州)信息技术有限公司 保护数据隐私的多方数据查询方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002254564A1 (en) * 2001-04-10 2002-10-28 Latanya Sweeney Systems and methods for deidentifying entries in a data source
US7870398B2 (en) * 2007-01-25 2011-01-11 International Business Machines Corporation Integrity assurance of query result from database service provider
US20130138698A1 (en) 2010-05-19 2013-05-30 Kunihiko Harada Identity information de-identification device
KR20120068524A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 데이터 관리 장치 및 데이터 관리 방법
JP6078437B2 (ja) * 2013-08-28 2017-02-08 株式会社日立ソリューションズ パーソナル情報匿名化システム
JPWO2015063905A1 (ja) * 2013-10-31 2017-03-09 株式会社日立製作所 データ分析システム
JP6192601B2 (ja) * 2014-06-24 2017-09-06 株式会社日立ソリューションズ パーソナル情報管理システム及びパーソナル情報匿名化装置

Also Published As

Publication number Publication date
JPWO2017103970A1 (ja) 2018-08-02
US11295635B2 (en) 2022-04-05
EP3392864A4 (en) 2019-06-05
US20190147770A1 (en) 2019-05-16
WO2017103970A1 (ja) 2017-06-22
EP3392864B1 (en) 2020-10-28
EP3392864A1 (en) 2018-10-24

Similar Documents

Publication Publication Date Title
JP6457660B2 (ja) データ加工システム及びデータ加工方法
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
US9684710B2 (en) Extending random number summation as an order-preserving encryption scheme
US7519835B2 (en) Encrypted table indexes and searching encrypted tables
JP4810611B2 (ja) 暗号化されたデータの検索
Emekci et al. Dividing secrets to secure data outsourcing
WO2019142651A1 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
Rizomiliotis et al. ORAM based forward privacy preserving dynamic searchable symmetric encryption schemes
Kacsmar et al. Differentially private two-party set operations
Moghadam et al. Toward securing cloud-based data analytics: A discussion on current solutions and open issues
Kumar et al. Approaches and challenges of privacy preserving search over encrypted data
Yang et al. Trust enhancement over range search for encrypted data
Fernández et al. Self-enforcing access control for encrypted RDF
Amorim et al. Homomorphic Encryption: An Analysis of its Applications in Searchable Encryption
Sobati Moghadam et al. Enforcing privacy in cloud databases
JP7384740B2 (ja) 検索システム、検索装置、および検索方法
Dubey et al. Implementing security technique on generic database
Kamini et al. Encrypted multi-keyword ranked search supporting gram based search technique
Mu et al. Encrypted data retrieval scheme based on bloom filter
Kermanshahi et al. Fast and private multi-dimensional range search over encrypted data
Souror et al. Secure query processing for smart grid data using searchable symmetric encryption
Chen et al. A reinforced dynamic multi-keyword ranked search with forward privacy
Almakdi et al. Designing a Bit-Based Model to Accelerate Query Processing Over Encrypted Databases in Cloud
Fugkeaw et al. SSF-CDW: achieving scalable, secure, and fast OLAP query for encrypted cloud data warehouse
JP2017037180A (ja) 匿名化装置、検索装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181024

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: 20181204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181220

R150 Certificate of patent or registration of utility model

Ref document number: 6457660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150