JPWO2015063905A1 - データ分析システム - Google Patents
データ分析システム Download PDFInfo
- Publication number
- JPWO2015063905A1 JPWO2015063905A1 JP2015544708A JP2015544708A JPWO2015063905A1 JP WO2015063905 A1 JPWO2015063905 A1 JP WO2015063905A1 JP 2015544708 A JP2015544708 A JP 2015544708A JP 2015544708 A JP2015544708 A JP 2015544708A JP WO2015063905 A1 JPWO2015063905 A1 JP WO2015063905A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- encrypted
- query
- analysis
- encryption
- 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.)
- Pending
Links
- 238000007405 data analysis Methods 0.000 title claims description 19
- 238000004458 analytical method Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 27
- 230000006870 function Effects 0.000 description 14
- 238000012098 association analyses Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012097 association analysis method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
プライバシー情報を含むデータに対する分析処理を外部リソースに依頼する際、プライバシー上の問題が発生する。プライバシー情報を含むデータを検索可能暗号で暗号化し、外部リソースに預託し、分析を行う際には、分析クエリを検索可能暗号クエリ関数で暗号化し暗号化クエリを外部リソースに渡し暗号化状態を復号することなく分析を実行する。クエリの条件文に対する出現数よりも否定条件文に対応する出現数が少ない場合、否定条件文に対応する暗号化検索に基づいて、入力された暗号化クエリに対応するデータの出現数を求める
Description
本発明は、各セルが暗号化された表形式のデータに対して。暗号化データを復号することなく、相関値などの統計値を集計するシステムに関する。
近年、大量のデータを収集し分析を行い、価値のある知識を抽出するビックデータビジネスが普及をみせている。大量データの分析を実行する際、大容量のストレージや高速なCPUおよびこれらを分散統制するシステムを必要とするため、クラウドなどの外部リソースに分析を依頼する事が考えられる。しかし、データを外部にアウトソースする場合、プライバシー上の問題が発生する。そのため、暗号化やその他、プライバシー保護技術を施した後にデータをアウトソースし分析を行う秘匿分析技術が注目を集めている。
上述のデータ分析時に発生するプライバシー上の課題に対して、例えば、特許文献1では、データを秘匿したままクロス集計を省メモリリソースで行う方法が提案されている。特許文献1に記載された方式ではクロス集計のみに特化しており、例えば数値データに対する平均値算出や分散値算出などの分析機能はない、また大きな課題として、属性値がとる値が方式運用前に規定されているため、事前に属性値の取る値が分かっていないデータセットには適用が出来ないなどの運用の柔軟性に問題がある、さらに該文献中の維持確率や乱数生成パラメータなどの設定において、分析精度と安全性のトレードオフが存在するため、データを秘匿せずに分析した際と同じ分析精度を確保するためには、安全性を落とす必要が生じる。一般に、分析対象のデータを乱数で撹乱する際、撹乱後のデータの秘匿性と分析精度の間にトレードオフが存在する事が知られている。一方、乱数ではなく、秘密鍵を持つ暗号方式を利用した秘匿データ分析技術においては、復号処理を実行する秘密鍵を持つ復号権利者以外は、暗号化データに対する情報を得ることが困難なため、暗号化状態で分析を行えば、データのプライバシーを損なうことなく精度の高い分析結果を得ることが出来る。
上述の課題、すなわち暗号化データに対する分析処理をどう実現するか、を解決するため、検索可能暗号を利用する方法が考えられる。検索可能暗号とは、通常の確率的暗号化、復号化を行う共通鍵暗号機能に加えて暗号化したまま(復号することなく)一致判定(マッチング処理)ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリ生成は、秘密鍵を持つ復号権利者のみが実行可能である。一方、暗号文と暗号化クエリのマッチング処理は誰でも、特に秘密鍵を持たない分析処理実行者も可能である。検索可能暗号方式の既存方式については、例えば特許文献2参照。このように検索可能暗号を用いれば、分析実行者は暗号化データを復号することなく、復号権利者が生成した暗号化クエリに対してマッチングにヒットした暗号化データの個数を数え上げる事が出来きる。そのヒットした数を復号権利者に渡す事で、復号権利者は、暗号化データ中に存在する各データの出現頻度を得ることが可能となる。さらに、復号権利者は複数の暗号化クエリを分析実行者に渡す事で、それらクエリ間の出現頻度の差や支持度、信頼度、リフト値などの統計情報を算出することが出来る。また、暗号化された数値データに関しては、取りうる値全ての暗号化クエリを分析実行者に渡す事で、各値の出現頻度が分かり、結果として合計値、平均値、分散値などの統計量が取得できる。このとき、分析実行者は暗号化データと暗号化クエリに対してマッチングにヒットしたか、もしくはしていないかの情報しか得られていないこと、データやクエリの平文に関する情報は暗号化されているためデータのプライバシーが保護できる。
本発明を実施したデータ分析システムにおいては、情報提供者のプライバシーを保護しつつ、各データの出現頻度、出現確率、支持度、信頼度、リフト値などの統計情報を算出することが出来る。
以下、本発明の一実施形態を図面に基づいて詳細に説明する。なお、本実施例では、分析の対象となるデータとして性別カラム、購入商品カラム、金額カラムから構成される購買履歴データを取り扱うが、本発明の適用は購買履歴データに限定されるものではなく、より一般の表形式のデータに対する分析に適用可能である。また、本実施例では、表形式データに対する分析の一例として、支持度、信頼度、リフト値を算出するアソシエーション分析の方法を説明する。
以下、図1と図2を用いて、本実施例のシステム構成を示す。
図1は、本発明の実施の形態であるデータ分析システムの概略図である。図示するように、本システムは、情報適用者端末100-1から情報適用者端末100-NまでのN個の端末と、データ収集者端末200と、分析実行者端末300と、情報利用者端末400とがネットワーク500を介して相互に情報を送受信できるように設計されている。
図2は、情報提供者端末100-1のハードウェア概略図である。図示するように、情報提供者端末100-1は、CPU101と、補助記憶装置102と、メモリ103と、表示装置105と、入出力インターフェース106と、通信装置107と、が内部信号線104で連結し、構成される。また、補助記憶装置102には、プログラムコードが格納されている。プログラムコードは、メモリ103にロードされCPU101によって実行される。また、情報提供者端末100-2から情報提供者端末100-N、およびデータ収集者端末200と、分析実行者端末300と、情報利用者端末400も同様のハードウェア構成を具備する。
以下、図3から図7を用いて本データ分析システムの分析処理手順を示す。
本実施例で使用する検索可能暗号方式の用語を定義する。本実施例では、利用する検索可能暗号方式を1つ固定して実施の形態を説明する。なお、具体的な検索可能暗号方式としては特許文献2にあるような既存方式を用いてもよい。
(1)検索可能暗号アルゴリズム
検索可能暗号とは、通常の確率的暗号化および、復号化を行う共通鍵、もしくは公開鍵暗号機能に加えて暗号化したまま、復号することなく、一致判定(通称マッチング処理)ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリ生成は、秘密鍵を持つユーザのみが実行可能である。ただし、公開鍵検索可能暗号方式では、公開鍵を用いて暗号化は秘密鍵を持たないユーザでも可能である。一方、暗号文と暗号化クエリのマッチング処理は公開情報を用いて誰でも(秘密鍵を持たないデータベース管理者)可能である。以後、本実施例では、検索可能暗号アルゴリズム(つまり、秘密鍵生成アルゴリズム、暗号化アルゴリズム、復号アルゴリズム、クエリ生成アルゴリズム、暗号文マッチングアルゴリズム)を一つ固定する。
検索可能暗号とは、通常の確率的暗号化および、復号化を行う共通鍵、もしくは公開鍵暗号機能に加えて暗号化したまま、復号することなく、一致判定(通称マッチング処理)ができる暗号方式の総称である。暗号化、復号化、および検索の際に利用する暗号化検索クエリ生成は、秘密鍵を持つユーザのみが実行可能である。ただし、公開鍵検索可能暗号方式では、公開鍵を用いて暗号化は秘密鍵を持たないユーザでも可能である。一方、暗号文と暗号化クエリのマッチング処理は公開情報を用いて誰でも(秘密鍵を持たないデータベース管理者)可能である。以後、本実施例では、検索可能暗号アルゴリズム(つまり、秘密鍵生成アルゴリズム、暗号化アルゴリズム、復号アルゴリズム、クエリ生成アルゴリズム、暗号文マッチングアルゴリズム)を一つ固定する。
(2)検索可能暗号秘密鍵生成アルゴリズム
上述した検索可能暗号アルゴリズムで規定されている秘密鍵生成アルゴリズムを指す。以後、簡単に秘密鍵生成処理と呼ぶ。セキュリティパラメータと鍵シードをコマンド入力とし、特定のビット長のバイナリを出力とする。また、公開鍵検索可能暗号方式の際は、生成した秘密鍵に対応する公開鍵も同時に生成を行う。
上述した検索可能暗号アルゴリズムで規定されている秘密鍵生成アルゴリズムを指す。以後、簡単に秘密鍵生成処理と呼ぶ。セキュリティパラメータと鍵シードをコマンド入力とし、特定のビット長のバイナリを出力とする。また、公開鍵検索可能暗号方式の際は、生成した秘密鍵に対応する公開鍵も同時に生成を行う。
(3)検索可能暗号の暗号化関数
上述した検索可能暗号アルゴリズムで規定されている暗号化アルゴリズムを指す。平文と秘密鍵をコマンド入力とし暗号文を出力する。
上述した検索可能暗号アルゴリズムで規定されている暗号化アルゴリズムを指す。平文と秘密鍵をコマンド入力とし暗号文を出力する。
(4)検索可能暗号クエリ関数
上述した検索可能暗号アルゴリズムで規定されているクエリ生成アルゴリズムを指す。平文クエリと秘密鍵をコマンド入力とし、暗号化クエリを出力する。
上述した検索可能暗号アルゴリズムで規定されているクエリ生成アルゴリズムを指す。平文クエリと秘密鍵をコマンド入力とし、暗号化クエリを出力する。
(5)検索可能暗号マッチング関数
上述した検索可能暗号アルゴリズムで規定されている暗号文と暗号化クエリのマッチングアルゴリズムを指す。暗号文と暗号化クエリをコマンド入力とし、暗号文に対する平文と、暗号化クエリに関する平文が一致した場合に結果として[平文一致]を出力し、そうでない場合、結果として[平文不一致]を出力する。
上述した検索可能暗号アルゴリズムで規定されている暗号文と暗号化クエリのマッチングアルゴリズムを指す。暗号文と暗号化クエリをコマンド入力とし、暗号文に対する平文と、暗号化クエリに関する平文が一致した場合に結果として[平文一致]を出力し、そうでない場合、結果として[平文不一致]を出力する。
図3は、各情報提供者100が持つ平分データのデータフォーマット例である。情報提供者端末100-1は平文データ1を, 情報提供者端末100-2は平文データ2を,…, 情報提供者端末100-Nは、平文データNをそれぞれが保持する。。図が示すように、各平文データは性別、購入商品、金額をカラムとする表データとなっている。また、各平文データのレコード数は同じである必要はなく、例えば、平文データ1は3つのレコードを含み、平文データ2は4つのレコードを含む。
図4は、情報提供者端末100-1から情報提供者端末100-N、およびデータ収集者端末200と、分析実行者端末300と、情報利用者端末400間のデータ送受信およびプログラムの処理フローである。
まず、データ収集者200は検索可能暗号秘密鍵生成アルゴリズムを用いて検索可能暗号の暗号化、復号化、クエリ生成に用いる検索可能暗号秘密鍵を生成する(S100)。次に情報提供者端末100-1は平文データ1を, 情報提供者端末100-2は平文データ2を,…, 情報提供者端末100-Nは、平文データNを、それぞれデータ収集者200に送信する(D100)。N個の平文データを受信したデータ収集者200は、N個のデータを性別、購入商品、金額ごとに結合し、1つの平文データからなる表を作成する。次に、データ収集者200は、S100で生成した検索可能暗号秘密鍵と検索可能暗号暗号化関数を用いて、結合した表の各セルを平文とする暗号化された表を生成し、それを暗号化データ(D200)として分析実行者に送信する(S200)。暗号化データ(D200)を受信した分析実行者300を受信した暗号化データ(D200)を保存し、分析事前処理を終える。
分析処理を行う際には、情報利用者端末400が平文クエリセット(D300)を生成し、データ収集者端末200に送信し、平文クエリセット(D300)を受信したデータ収集者端末200は、S100で生成した検索可能暗号秘密鍵と検索可能暗号クエリ関数を用いて、平文クエリセット(D300)の各クエリから暗号化クエリを作成する。次に、データ収集者端末200は、生成した各暗号化クエリを暗号化クエリセット(D400)として、情報利用者端末400に送信する。暗号化クエリセット(D400)を受信した情報利用者400は暗号化クエリの中から、任意の1つの暗号化クエリとカラムの値をアソシエーション分析の条件とし、任意の1つの暗号化クエリとカラムの値をアソシエーション分析の結論として選択する分析クエリ生成処理(S400)を実行し、条件と結論にS400で選択した暗号化クエリとカラムを成分とする暗号化分析クエリデータ(D500)を生成し、分析実行者300に送信する。次に、暗号化分析クエリデータ(D500)を受信した分析実行者300は暗号化分析クエリデータ(D500)の条件にある暗号化クエリとカラムの値に対して、該カラムの各セルを該暗号化クエリに対して検索検索可能暗号マッチング関数でマッチング処理を行い、結果が「平文一致」であるセルの数を数え上げる。この数をXとする。次に、分析実行者300は暗号化分析クエリデータ(D500)の結論にある暗号化クエリとカラムの値に対して、該カラムの各セルを該暗号化クエリに対して検索検索可能暗号マッチング関数でマッチング処理を行い、結果が「平文一致」であるセルの数を数え上げる。この数をYとする。次に、分析実行者300は上述の2つのマッチング処理において、両方のマッチングの結果が「平文一致」である行の数を数え上げる、すなわち条件の暗号化クエリと結論の暗号化クエリに対するand検索にヒットしたデータの総数である。この数をMとする。さらに、全データの総数をTとする。次に、分析実行者300は支持度M/T、信頼度M/X、リフト値(M/X)÷(Y/T)を算出する暗号化分析処理(S500)を実行し、算出した支持度、信頼度、リフト値を暗号化分析クエリデータ(D500)の支持度、信頼度、リフト値に出力し、分析結果(D600)として情報利用者端末400に送信する。情報利用者端末400は、受信した分析結果(D600)を保存して処理を終了する。
図5は、暗号化データ(D200)のデータフォーマット例と平文クエリセット(D300)のデータフォーマット例と暗号化クエリセット(D400)のデータフォーマット例である。暗号化データ(D200)は、各情報提供者100-1から100-Nから受信したN個の平文の表データを結合した1つの表データの各セルを検索可能暗号で暗号化した表データである。平文クエリセット(D300)は、情報利用者がアソシエーション分析において、相関を調べたい平文の集合を含み構成され、図5では、「男」と「商品A」を要素として持つ例を示している。暗号化クエリセット(D400)は、上述の平文クエリセット(D300)の各平文に対して検索可能暗号クエリ関数を用いて暗号化した、暗号化クエリを含み構成され、図5では、平文「男」に対する暗号化クエリとして「c194f5a1」、平文「商品A」に対する暗号化クエリとして、「2b90a8f2」がそれぞれ対応している事を図示している。
図6は、暗号化分析クエリデータ(D500)のデータフォーマット例と、分析結果(D600)のデータフォーマット例である。暗号化分析クエリデータ(D500)および分析結果(D600)は、アソシエーション分析の「条件」「結論」「支持度」「信頼度」「リフト値」の5つの属性を持つ。暗号化分析クエリデータ(D500)の「条件」には、暗号化クエリセット(D400)に含まれる暗号化クエリとそのクエリに対応するカラムが入り、図6では暗号化クエリとして「c194f5a1」(男に対応する暗号化クエリ)そのカラムとして性別が例示されている。暗号化分析クエリデータ(D500)の「結論」には、暗号化クエリセット(D400)に含まれる暗号化クエリとそのクエリに対応するカラムが入り、図6では暗号化クエリとして「2b90a8f2」(商品Aに対応する暗号化クエリ)そのカラムとして購入商品が例示されている。
また、暗号化分析クエリデータ(D500)の属性「支持度」「信頼度」「リフト値」はブランクとなっており、分析結果(D600) の属性「支持度」「信頼度」「リフト値」はそれぞれ分析実行者端末300が暗号化分析処理(S500)で算出した「支持度」「信頼度」「リフト値」が入る。
(本実施形態における処理概要)
図9を用いて、図1に示したデータ分析システムにおける処理の概要を説明する。
(本実施形態における処理概要)
図9を用いて、図1に示したデータ分析システムにおける処理の概要を説明する。
まず始めに、複数の情報提供端末100−1〜100−Nから提供される複数のデータがデータ収集者端末(200)に送られ、暗号鍵を用いて入力されたデータ(平文)が暗号化され、分析実行者端末(300、以下サーバと略記)が保持する暗号化データ(D200)に暗号化されたデータが格納される。
(1)クエリの入力
一方、情報利用者端末(400、以下クライアントと略記)は、利用者から、検索の問い合わせ内容であるクエリを受け付ける。図9に示したクエリの例は、「金額xがa=<x=<bの商品の個数の合計Mと、金額の平均値<x>を求める。」というものである。
(2)検索条件の生成
クエリに含まれるデータの範囲を、所定のデータ間隔で、各値に分解し、各値に対する、平文の検索条件を生成する。本実施例では、各商品の種類ごとに金額xが決まっており、クエリに含まれるデータの範囲に該当する商品はn種類あり、それぞれの金額xはak(k=1〜n)とする。各商品には、金額xの他に他の属性と組み合わされたデータが検索対象のデータとして存在する。従って、金額xが同一であっても、他の属性の異なる商品が少なくとも一つ存在する場合もあり、金額akに該当する商品がない場合もある。本実施例のクエリでは、他の属性を無視し、金額xに着目した検索を行って、同じ金額の商品が何個存在するかを調べるものである。
(1)クエリの入力
一方、情報利用者端末(400、以下クライアントと略記)は、利用者から、検索の問い合わせ内容であるクエリを受け付ける。図9に示したクエリの例は、「金額xがa=<x=<bの商品の個数の合計Mと、金額の平均値<x>を求める。」というものである。
(2)検索条件の生成
クエリに含まれるデータの範囲を、所定のデータ間隔で、各値に分解し、各値に対する、平文の検索条件を生成する。本実施例では、各商品の種類ごとに金額xが決まっており、クエリに含まれるデータの範囲に該当する商品はn種類あり、それぞれの金額xはak(k=1〜n)とする。各商品には、金額xの他に他の属性と組み合わされたデータが検索対象のデータとして存在する。従って、金額xが同一であっても、他の属性の異なる商品が少なくとも一つ存在する場合もあり、金額akに該当する商品がない場合もある。本実施例のクエリでは、他の属性を無視し、金額xに着目した検索を行って、同じ金額の商品が何個存在するかを調べるものである。
図9に示したクエリにおける商品の金額の範囲を示すaが1000円で、bが5000円であり、金額が50円間隔で付けられているとすると、各値に対する検索条件として、「xが1000円の商品を検索」、「xが1050円の商品を検索」、・・・・、「xが4950円の商品を検索」、「xが5000円の商品を検索」といった、(5000−1000)/50+1=81個の検索条件が生成される。
(3)検索条件の暗号化検索
上記の(2)で生成された多数の検索条件のそれぞれにおける金額を、データ収集者端末(200)に送付して、暗号鍵を用いて暗号化し、各値を暗号化した検索条件を生成する(クエリの暗号化)。即ち、上記(2)で分解された各値akを暗号化した値であるAkを含む、暗号化されたクエリを生成する。この暗号鍵は、データ収集者端末(200)から送られたデータを暗号化した時に用いたものと同一である。
(暗号化検索)
各値に対する、暗号化されたクエリをサーバ(300)に送信し、サーバ(300)は、暗号化データ(D200)に対して暗号化検索を行い、暗号化した値である、それぞれのAk(暗号化された金額)に適合する商品の個数を商品ごとにカウントして、所定の記憶領域に、その個数を記憶する。
(3)検索条件の暗号化検索
上記の(2)で生成された多数の検索条件のそれぞれにおける金額を、データ収集者端末(200)に送付して、暗号鍵を用いて暗号化し、各値を暗号化した検索条件を生成する(クエリの暗号化)。即ち、上記(2)で分解された各値akを暗号化した値であるAkを含む、暗号化されたクエリを生成する。この暗号鍵は、データ収集者端末(200)から送られたデータを暗号化した時に用いたものと同一である。
(暗号化検索)
各値に対する、暗号化されたクエリをサーバ(300)に送信し、サーバ(300)は、暗号化データ(D200)に対して暗号化検索を行い、暗号化した値である、それぞれのAk(暗号化された金額)に適合する商品の個数を商品ごとにカウントして、所定の記憶領域に、その個数を記憶する。
暗号化された各金額(Ak)と暗号化検索によって得られた商品の個数とを対応させた情報をクライアント(400)に送付する。
(統計処理)
クライアント(400)は、サーバ(300)から受け取った情報に含まれる暗号化された金額(Ak)を、データ収集者端末(200)に送付し、データ収集者端末(200)が保持する暗号鍵を用いてそれぞれの商品の金額(ak)に復号し(暗号化前の値との対応付け)、復号された金額(ak)とそれぞれの金額に対応する商品の個数のデータをクライアント(400)に送付し、クライアントは、受け取った情報に基づいて、それぞれの商品の金額(ak)と商品の個数との対応を示す情報を生成する。
(統計処理)
クライアント(400)は、サーバ(300)から受け取った情報に含まれる暗号化された金額(Ak)を、データ収集者端末(200)に送付し、データ収集者端末(200)が保持する暗号鍵を用いてそれぞれの商品の金額(ak)に復号し(暗号化前の値との対応付け)、復号された金額(ak)とそれぞれの金額に対応する商品の個数のデータをクライアント(400)に送付し、クライアントは、受け取った情報に基づいて、それぞれの商品の金額(ak)と商品の個数との対応を示す情報を生成する。
クライアント(400)は、更に、最初に、利用者が入力したクエリのように、生成した情報に基づいて、金額xがa=<x=<bの商品の個数の合計Mと、金額の平均値<x>を求める。
上記のように求めた商品の個数の合計Mと、金額の平均値<x>を、クライアント(400)の画面に出力する。
図7は、図6の暗号化分析クエリデータ(D500)に対する暗号化分析処理(S500)において、「条件」に平文が一致するデータの数Xの個数を算出する処理を例示している。分析実行者端末300は暗号化分析クエリデータ(D500)の属性「条件」の暗号化クエリ「c194f5a1」と性別カラムの各暗号化データとを検索可能暗号マッチング関数を用いてマッチングし、「平文一致」したセルの個数を数え上げており、その総数をXとしている。
なお,本発明は,上述の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
例えば、本実施例では、表形式データとして「性別」「購入商品」「金額」の3つのカラムからなる表に対する分析結果を例示しているが、カラムの数は3である必要はなく、1以上の任意の数でよい。
また、本実施例ではアソシエーション分析における分析結果(D600)として支持度、信頼度、リフト値の算出を例示したが、その他の分析を行い、それを分析結果としてもよい、例えば、上述の暗号化分析処理(S500)において、算出した値、X、Y、M、Tを分析結果(D600)としてもよい、また、複数の暗号化クエリに対するのand検索にヒットしたデータの総数やor検索にヒットしたデータの総数を分析結果としてもよい、より一般に、複数の暗号化クエリに対して、各暗号化クエリにヒットしたデータの集合とヒットしなかったデータの集合を元にしたブール論理演算結果として得られる集合に属するデータの総数を分析結果に含めてもよい、また、該ブール論理演算結果として得られる集合に属するデータの総数を全体のデータの総数で割った値、すなわち上述の信頼度を一例とするような条件付確率を分析結果としてもよい、またそれら条件付確率に対して算術演算を行った値、すなわち上述のリフト値を一例とするような分析値を分析結果としてもよい。
また、実施例ではアソシエーション分析における分析結果(D600)として支持度、信頼度、リフト値の算出を例示したが、金額のカラムのような各セルに数値データが入力されているカラムについて、例えば情報利用者端末500は平文クエリ「500」に対応する暗号化クエリを用いて金額=500となるデータの総数を分析結果として取得してもよい、さらに数値カラムが取りうる全ての値に対して、各値のデータの総数を取得した後、情報利用者端末500はそのカラムの合計値を算出してもよい、さらに全データの総数で該合計値を割ることでそのカラムの平均値を算出してもよい、より一般に、数値の出現頻度から算出可能な統計値である分散値、標準偏差、尖度、歪度、最大値、最小値、中央値などを算出してもよい。
また、本実施例では、暗号化データ(D200)と暗号化クエリセット(D400)に対して、検索可能暗号マッチング関数を用いて、上述の通りヒットしたセルの個数を入力として暗号化分析処理(S500)を行い、分析結果(S600)を算出しているが、必ずしも暗号化分析処理(S500)は検索可能暗号マッチング関数がヒットしたセルの個数を入力とする必要は無く、暗号化クエリセット(D400)にヒットしたセル、ヒットしなかったセルに暗号化データ(D200)を分割する処理そのものを暗号化分析処理(S500)としてもよい、例えば図8にあるようなIDと購入商品からなる購買履歴の暗号化データ(D200−2)において、ただし、この例では、IDのみを検索可能暗号で暗号化しており、購入商品は平文としている、ID:100の購買履歴データを抽出し、それを分析結果(D600)する場合、平文クエリセット(D300−2)をID:100とし、それに対応する暗号化クエリセット(D400−2)ID:100の暗号化クエリ:a193ea1を用いる事で、暗号化データ(D200−2)のIDカラムを検索可能暗号マッチング関数と暗号化クエリセット(D400−2)内の暗号化クエリ:a193ea1でマッチングを行う事で、暗号化データ(D200−2)内からID:100のデータだけを抽出する事が出来る。また、この例ではマッチングにヒットしたデータを分析結果としたが、必ずしもマッチングにヒットしたデータを分析結果とする必要は無く、ID:100が商品Aを何回購入したか(リピート率算出)などのID:100の購入履歴を元に行う分析を行った結果を分析結果(D600)としてもよい。
また、この例では購入商品カラムは平文としているが、購入商品カラムを検索可能暗号で暗号化し、ID:100のデータとそれ以外に分割した後、購入商品カラムに対して図1から7で説明した分析を行い、その結果を分析結果(D600)としてもよい。
また、この例では購入商品カラムは平文としているが、購入商品カラムを検索可能暗号で暗号化し、ID:100のデータとそれ以外に分割した後、購入商品カラムに対して図1から7で説明した分析を行い、その結果を分析結果(D600)としてもよい。
以下の実施例2では、クエリの範囲を各値に分解して、各値に対する検索条件を生成する際に、生成する検索条件の数を削減する方法をいくつか説明する。検索条件の数を削減することによって、各値を暗号化した検索条件の生成、及び暗号化した検索条件による暗号化検索に要する時間が短縮される。なお、以下の方法では、検索によって得られたデータの個数の値を用いた計算処理が必要である。
以下では、Mは集合(データ)全体の数、n(A)は条件Aを満たすデータの数、「¬A」は条件Aの否定を表し、n(¬A)=M−n(A)の関係がある。また、論理演算において、「.OR.」は論理和、「.AND.」は論理積を表す。
(1)検索結果の再利用その1:
既にa=<x=<bについて検索済みの時、a=<x=<c(b<c)の検索の際に、a=<x=<bについて検索済みの結果を再利用し、b<x=<cについて検索を行う。
(1)検索結果の再利用その1:
既にa=<x=<bについて検索済みの時、a=<x=<c(b<c)の検索の際に、a=<x=<bについて検索済みの結果を再利用し、b<x=<cについて検索を行う。
なお、データの定義域がp=<x=<qであって、検索条件Aのデータの範囲がa=<x=<b(但し、p<a、b<q)となってデータの定義域に含まれる場合、検索条件Aの否定、¬Aは、p=<x<a、またはb<x=<qである。
(2)検索結果の再利用その2:
n(A.OR.B)=n(A)+n(B)−n(A.AND.B)より、既知のn(A)、n(B)及びn(A.AND.B)から、データの数が多いn(A.OR.B)が得られる。
(3)否定のデータを用いた、検索条件の数の削減その1:
n(A)>n(¬A)、n(B)>n(¬B)の時、即ち、肯定よりも否定の場合データの数が少ない場合、検索の条件に、肯定の条件を使うよりも否定の条件を使った方が、クエリの範囲を分解して生成する検索条件の数が少なくなるので、検索に要する時間が短縮される。
(2)検索結果の再利用その2:
n(A.OR.B)=n(A)+n(B)−n(A.AND.B)より、既知のn(A)、n(B)及びn(A.AND.B)から、データの数が多いn(A.OR.B)が得られる。
(3)否定のデータを用いた、検索条件の数の削減その1:
n(A)>n(¬A)、n(B)>n(¬B)の時、即ち、肯定よりも否定の場合データの数が少ない場合、検索の条件に、肯定の条件を使うよりも否定の条件を使った方が、クエリの範囲を分解して生成する検索条件の数が少なくなるので、検索に要する時間が短縮される。
上記のように、検索条件に2つの条件が含まれる場合も同様である。検索条件が2つの条件を満たすことを示している場合、このデータの数を示すn(A.AND.B)は、n(A.AND.B)=M−n(¬(A.AND.B))=M−(n(¬A)+n(¬B)―n(¬A.AND.¬B))=n(¬A.AND.¬B))+M−(n(¬A)+n(¬B))より、肯定の条件を含む当初の検索条件が、否定の条件を含む式に変換され、この変換された式を用いて否定の場合のデータを検索した結果を用いたほうが検索条件の数が少なくなる。
また、検索条件が2つの条件の少なくとも一方を満たすデータの数を示すn(A.OR.B)の場合も、n(A.OR.B)=M−(¬(A.OR.B)))=M−(¬A.AND.¬B))より、同様に、否定の場合のデータを検索した結果を用いたほうが検索条件の数が少なくなる。
(4)否定のデータを用いた、検索条件の数の削減その2:
上記の(3)では、2つの条件の何れも、肯定のデータの数よりも否定の場合のデータの数が少ない場合を説明した。以下では、2つの条件A及びBのうち、条件Aに適合するデータの数が多く、条件Bに適合するデータの数が少ない場合について検索条件の数の削減について説明する。即ち、n(A)>n(¬A)、n(¬B)>n(B)であるため、検索条件に2つの条件が含まれる場合、これらの条件に適合するデータの数を、データの数が少ないn(¬A)及びn(B)を用いて表す式を以下に示す。
(4)否定のデータを用いた、検索条件の数の削減その2:
上記の(3)では、2つの条件の何れも、肯定のデータの数よりも否定の場合のデータの数が少ない場合を説明した。以下では、2つの条件A及びBのうち、条件Aに適合するデータの数が多く、条件Bに適合するデータの数が少ない場合について検索条件の数の削減について説明する。即ち、n(A)>n(¬A)、n(¬B)>n(B)であるため、検索条件に2つの条件が含まれる場合、これらの条件に適合するデータの数を、データの数が少ないn(¬A)及びn(B)を用いて表す式を以下に示す。
検索の条件がA.AND.Bの場合:n(A.AND.B)=n(B)−n(¬A.AND.B)
検索の条件がA.OR.Bの場合:n(A.OR.B)=n(A)+n(B)―n(A.AND.B)=M−n(¬A)+n(¬A∩B)
(ここで、n(B)>n(¬A.AND.B)、n(¬A)>n(¬A.AND.B)である。)
検索の条件がA.OR.Bの場合:n(A.OR.B)=n(A)+n(B)―n(A.AND.B)=M−n(¬A)+n(¬A∩B)
(ここで、n(B)>n(¬A.AND.B)、n(¬A)>n(¬A.AND.B)である。)
100−1,100−2,…,100−N:情報提供者端末、101:CPU、102:補助記憶装置(記憶装置)、103:メモリ、104:内部信号線、105:表示装置、106:入出力インターフェース、107:通信装置、200:データ収集者端末、300:分析実行者端末、400:情報利用者端末、500:ネットワーク
Claims (6)
- 表形式のデータに対して、表内の各データ単位が表内に出現した数を分析結果として分析処理を行うデータ分析システムにおいて、
前記データ単位は、共通鍵もしくは公開鍵検索可能暗号方式の暗号文生成関数で暗号化された暗号文であり、該表形式データの各データ単位は暗号化状態でデータベースに保管され、
分析を行う際には、共通鍵もしくは公開鍵検索可能暗号方式の秘密鍵をもつユーザが検索可能暗号クエリ生成関数を用いて生成した1つの暗号化クエリと、前記暗号化された表データの各データ単位を、検索可能暗号マッチング関数を用いて平文情報の一致判定を行い、
一致判定の結果が一致となった該暗号化されたデータ単位の数を該暗号化クエリの出現数とし、該出現数を分析結果として分析処理を実行する
ことを特徴とするデータ分析システム。 - 請求項1に記載のデータ分析システムにおいて、
前記方法で暗号化クエリに対する出現数を求め、該出現数を前記検索可能暗号マッチング関数で平文情報の一致もしくは不一致の判定を行ったデータ単位の総数で割ることで、該暗号化クエリの出現確率を算出し、該出現確率を分析結果として分析処理を実行する
ことを特徴とするデータ分析システム。 - 請求項1に記載のデータ分析システムにおいて、
分析を行う際には、共通鍵もしくは公開鍵検索可能暗号方式の秘密鍵をもつユーザが検索可能暗号クエリ生成関数を用いて生成した複数の暗号化クエリに対して、該各暗号化クエリについて、前記暗号化された表形式データの各行に対して、該行内の特定の列のデータ単位に対して、前記方法で暗号化クエリと暗号化されたデータ単位に対する平文情報の一致判定を行い、平文情報が一致した行の集合、平文情報が一致しなかった行の集合をそれぞれ算出し、該行集合を要素とする論理演算あるいはブール演算の演算結果の集合に含まれる行の数を、該複数の暗号化クエリとそれに対する論理演算あるいはブール演算の分析結果として分析処理を実行することを特徴とするデータ分析システム。 - 請求項2に記載のデータ分析システムにおいて、
分析を行う際には、共通鍵もしくは公開鍵検索可能暗号方式の秘密鍵をもつユーザが検索可能暗号クエリ生成関数を用いて生成した複数の暗号化クエリに対して、該各暗号化クエリについて、前記暗号化された表形式データの各行に対して、該行内の特定の列のデータ単位に対して、前記方法で暗号化クエリと暗号化されたデータ単位に対する平文情報の一致判定を行い、平文情報が一致した行の総数を算出し、該行の総数を前記方法で平文情報の一致もしくは不一致の判定を行ったデータ単位の総数で割ることで、該行と該暗号化クエリ対する出現確率を全ての暗号化クエリに対して算出し、該出現確率を引数とする特定の分析関数の出力値を分析結果として分析処理を実行することを特徴とする分析システム。 - 請求項1に記載のデータ分析システムにおいて、
前記暗号化された表データの各データ単位を、前記暗号化クエリと検索可能暗号マッチング関数を用いて平文情報の一致判定を行い、一致判定の結果が一致となった該暗号化されたデータ単位全体からなる集合を分析結果として分析処理を実行することを特徴とするデータ分析システム。 - 請求項1に記載のデータ分析システムにおいて、
前記方法で暗号化クエリの条件文に対する出現数よりも前記クエリの否定条件文に対応する出現数が少ない場合、前記否定条件文に対応する暗号化クエリを生成して暗号化検索を行い、前記暗号化検索の結果求めた出現数に基づいて、入力された暗号化クエリに対応するデータの出現数を求めることを特徴とするデータ分析システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/079504 WO2015063905A1 (ja) | 2013-10-31 | 2013-10-31 | データ分析システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2015063905A1 true JPWO2015063905A1 (ja) | 2017-03-09 |
Family
ID=53003552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015544708A Pending JPWO2015063905A1 (ja) | 2013-10-31 | 2013-10-31 | データ分析システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2015063905A1 (ja) |
WO (1) | WO2015063905A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019184852A (ja) * | 2018-04-11 | 2019-10-24 | 株式会社日立製作所 | データ分析サーバ、データ分析システム、及びデータ分析方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3392864B1 (en) * | 2015-12-14 | 2020-10-28 | Hitachi, Ltd. | Data processing system and data processing method |
WO2017127985A1 (zh) * | 2016-01-25 | 2017-08-03 | 张阳 | 网球比赛中球员支持率的统计方法及系统 |
JP6589051B2 (ja) * | 2016-03-28 | 2019-10-09 | 株式会社日立製作所 | データベースシステム及びデータ検索方法 |
JP6381861B2 (ja) | 2016-05-27 | 2018-08-29 | 三菱電機株式会社 | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム |
JP6688688B2 (ja) * | 2016-06-14 | 2020-04-28 | 株式会社エヌ・ティ・ティ・データ | 秘匿情報分析システム、および秘匿情報分析方法 |
JP6802572B2 (ja) * | 2016-12-26 | 2020-12-16 | 国立大学法人大阪大学 | データ解析方法およびデータ解析システム |
JP6836068B2 (ja) | 2017-03-24 | 2021-02-24 | 富士通株式会社 | 学習方法、学習装置、学習プログラム、検索方法、検索装置及び検索プログラム |
US11360978B2 (en) | 2017-05-18 | 2022-06-14 | Mitsubishi Electric Corporation | Search device, tag generation device, query generation device, searchable encryption system and computer readable medium |
GB201720341D0 (en) * | 2017-12-06 | 2018-01-17 | Trisent Communications Ltd | Personal data management |
WO2020245898A1 (ja) * | 2019-06-04 | 2020-12-10 | 三菱電機株式会社 | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム |
WO2022269862A1 (ja) * | 2021-06-24 | 2022-12-29 | 日本電信電話株式会社 | 顧客抽出システム、情報管理システム、分析依頼装置、顧客抽出方法、プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6346537A (ja) * | 1986-08-14 | 1988-02-27 | Nippon Telegr & Teleph Corp <Ntt> | 検索処理装置における検索条件判定方法 |
JP2012123614A (ja) * | 2010-12-08 | 2012-06-28 | Hitachi Ltd | 検索可能暗号処理システム |
JP2013003850A (ja) * | 2011-06-16 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | 推定情報分析装置、方法及びプログラム |
JP2013003849A (ja) * | 2011-06-16 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | 平均情報分析装置、方法及びプログラム |
-
2013
- 2013-10-31 JP JP2015544708A patent/JPWO2015063905A1/ja active Pending
- 2013-10-31 WO PCT/JP2013/079504 patent/WO2015063905A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6346537A (ja) * | 1986-08-14 | 1988-02-27 | Nippon Telegr & Teleph Corp <Ntt> | 検索処理装置における検索条件判定方法 |
JP2012123614A (ja) * | 2010-12-08 | 2012-06-28 | Hitachi Ltd | 検索可能暗号処理システム |
JP2013003850A (ja) * | 2011-06-16 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | 推定情報分析装置、方法及びプログラム |
JP2013003849A (ja) * | 2011-06-16 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | 平均情報分析装置、方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
安田雅哉, 他: "複数企業が持つ購買履歴データのクラウド秘匿集計", 第29回暗号と情報セキュリティシンポジウム(SCIS2012), JPN6013059276, 30 January 2012 (2012-01-30), pages 2 - 5, ISSN: 0003372145 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019184852A (ja) * | 2018-04-11 | 2019-10-24 | 株式会社日立製作所 | データ分析サーバ、データ分析システム、及びデータ分析方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015063905A1 (ja) | 2015-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015063905A1 (ja) | データ分析システム | |
US10764297B2 (en) | Anonymized persona identifier | |
KR102403295B1 (ko) | 동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법 | |
Canim et al. | Secure management of biomedical data with cryptographic hardware | |
Xu et al. | Information security in big data: privacy and data mining | |
EP3275115B1 (en) | Database server and client for query processing on encrypted data | |
Fong et al. | Privacy preserving decision tree learning using unrealized data sets | |
WO2016120975A1 (ja) | データ集計分析システム及びその方法 | |
EP2624498B1 (en) | Encrypted database system, client terminal, encrypted database server, natural joining method, and program | |
EP3497613B1 (en) | Protected indexing and querying of large sets of textual data | |
CN110999200A (zh) | 监测函数的评估 | |
Wu et al. | SecEDMO: Enabling efficient data mining with strong privacy protection in cloud computing | |
Shivaramakrishna et al. | A novel hybrid cryptographic framework for secure data storage in cloud computing: Integrating AES-OTP and RSA with adaptive key management and Time-Limited access control | |
Suganya et al. | Stochastic Gradient Descent long short-term memory based secure encryption algorithm for cloud data storage and retrieval in cloud computing environment | |
JP2018524659A (ja) | サーバログから識別子をリンクするためのブリッジ一致識別子の生成 | |
CN112134882A (zh) | 用于在网络中匿名化地传输数据的系统和方法 | |
EP3704617B1 (en) | Privacy-preserving log analysis | |
US20180225475A1 (en) | Encrypted database management device, encrypted database management method, encrypted database management program, and encrypted database management system | |
Ge et al. | An efficient searchable scheme for encrypted high dimensional data | |
Varma et al. | Secure Outsourced Association Rule Mining using Homomorphic Encryption | |
Dubey et al. | A major threat to big data: data security | |
CN112307449A (zh) | 权限分级管理方法、装置、电子设备和可读存储介质 | |
Wang et al. | A secure management scheme designed in cloud | |
Mrunalini et al. | Secure ETL Process Model: An Assessment of Security in Different Phases of ETL | |
Vijayalakshmi et al. | 5 Big and Data Security for Intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170214 |