WO2015063905A1 - データ分析システム - Google Patents
データ分析システム Download PDFInfo
- Publication number
- WO2015063905A1 WO2015063905A1 PCT/JP2013/079504 JP2013079504W WO2015063905A1 WO 2015063905 A1 WO2015063905 A1 WO 2015063905A1 JP 2013079504 W JP2013079504 W JP 2013079504W WO 2015063905 A1 WO2015063905 A1 WO 2015063905A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- encrypted
- query
- analysis
- encryption
- Prior art date
Links
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
Definitions
- This invention is for tabular data in which each cell is encrypted.
- the present invention relates to a system that aggregates statistical values such as correlation values without decrypting encrypted data.
- Patent Document 1 proposes a method of performing cross tabulation with memory-saving resources while keeping data secret, in order to deal with privacy issues that occur during the above-described data analysis.
- the method described in Patent Document 1 specializes only in cross tabulation.
- there is no analysis function such as average value calculation or variance value calculation for numerical data, and as a big problem, the value taken by the attribute value is before the method operation. Therefore, there is a problem in operational flexibility, such as inability to apply to datasets whose attribute values are not known in advance, such as the maintenance probability and random number generation parameters in the document. Since there is a trade-off between analysis accuracy and safety in setting, it is necessary to reduce safety in order to ensure the same analysis accuracy as when analyzing data without concealing it.
- Searchable encryption is a general term for encryption methods that can perform matching determination (matching processing) while being encrypted (without decryption) in addition to a common key encryption function that performs normal stochastic encryption and decryption.
- An encrypted search query generation used for encryption, decryption, and search can be executed only by a decryption rights holder having a secret key.
- anyone who performs the matching process between the ciphertext and the encrypted query can be an analysis process executioner who does not particularly have a secret key.
- Patent Document 2 for example.
- the analyst can count the number of encrypted data hit in the matching for the encrypted query generated by the right of decryption without decrypting the encrypted data. .
- the decryption right holder can obtain the appearance frequency of each data present in the encrypted data.
- the decryption right holder can calculate statistical information such as a difference in appearance frequency, support level, reliability level, lift value, and the like by passing a plurality of encrypted queries to the analysis performer.
- the frequency of occurrence of each value can be determined, and as a result, statistics such as total value, average value, and variance value Can be obtained.
- the analyst can only obtain information about whether or not the encrypted data and the encrypted query have been matched, and information about the plaintext of the data and query is encrypted. Data privacy can be protected.
- the data analysis system embodying the present invention can calculate statistical information such as the appearance frequency, appearance probability, support level, reliability, and lift value of each data while protecting the privacy of the information provider.
- purchase history data composed of a gender column, a purchase product column, and an amount column is handled as data to be analyzed, but the application of the present invention is not limited to purchase history data. It can be applied to analysis for more general tabular data.
- analysis for tabular data an association analysis method for calculating a support level, a reliability level, and a lift value will be described.
- FIG. 1 is a schematic diagram of a data analysis system according to an embodiment of the present invention. As shown in the figure, this system includes N terminals from an information application terminal 100-1 to an information application terminal 100-N, a data collector terminal 200, an analysis performer terminal 300, and an information user terminal. It is designed to allow 400 to send and receive information to and from each other via network 500.
- FIG. 2 is a hardware schematic diagram of the information provider terminal 100-1.
- the information provider terminal 100-1 includes a CPU 101, an auxiliary storage device 102, a memory 103, a display device 105, an input / output interface 106, and a communication device 107 connected by an internal signal line 104. And configured.
- the auxiliary storage device 102 stores program codes. The program code is loaded into the memory 103 and executed by the CPU 101.
- the information provider terminal 100-2 to the information provider terminal 100-N, the data collector terminal 200, the analysis performer terminal 300, and the information user terminal 400 also have the same hardware configuration.
- searchable encryption terms used in this example ⁇
- an embodiment will be described with one searchable encryption method to be used fixed.
- an existing method as disclosed in Patent Document 2 may be used.
- Retrievable encryption is the common probabilistic encryption and decryption common key or public key encryption function in addition to decryption without decryption (common name) It is a general term for cryptographic methods that can be matched).
- An encrypted search query generation used for encryption, decryption, and search can be executed only by a user having a secret key.
- encryption using a public key is possible even for a user who does not have a secret key.
- anyone database administrator who does not have a secret key
- one searchable encryption algorithm that is, a secret key generation algorithm, an encryption algorithm, a decryption algorithm, a query generation algorithm, and a ciphertext matching algorithm
- Searchable cryptographic secret key generation algorithm This refers to a secret key generation algorithm defined by the searchable cryptographic algorithm described above. Hereinafter, this is simply referred to as secret key generation processing.
- the security parameter and key seed are used as command inputs, and a binary with a specific bit length is output.
- a public key corresponding to the generated secret key is generated at the same time.
- Encryption function for searchable encryption This refers to an encryption algorithm defined by the searchable encryption algorithm described above. Outputs ciphertext using plaintext and private key as command inputs.
- Searchable cryptographic query function This refers to a query generation algorithm defined by the searchable cryptographic algorithm described above. Using plaintext query and secret key as command input, output encrypted query.
- Searchable cryptographic matching function This refers to a matching algorithm between a ciphertext and an encrypted query specified by the above-described searchable cryptographic algorithm. If the ciphertext and the encrypted query are command inputs, if the plaintext for the ciphertext and the plaintext for the encrypted query match, [Cleartext match] is output as the result, otherwise [Cleartext mismatch] is output as the result. .
- FIG. 3 shows an example of the data format of the equivalence data that each information provider 100 has.
- the information provider terminal 100-1 holds plaintext data 1
- the information provider terminal 100-2 holds plaintext data 2
- the information provider terminal 100-N holds plaintext data N.
- each plaintext data is tabular data with gender, purchased product, and amount as columns.
- the number of records of each plaintext data does not need to be the same.
- the plaintext data 1 includes three records and the plaintext data 2 includes four records.
- FIG. 4 is a processing flow of data transmission / reception and program between the information provider terminal 100-1 to the information provider terminal 100-N, the data collector terminal 200, the analysis performer terminal 300, and the information user terminal 400. is there.
- the data collector 200 generates a searchable encryption private key used for encryption, decryption, and query generation of a searchable encryption using a searchable encryption private key generation algorithm (S100).
- the information provider terminal 100-1 sends the plaintext data 1
- the information provider terminal 100-2 sends the plaintext data 2
- the information provider terminal 100-N sends the plaintext data N to the data collector 200, respectively.
- Send (D100) The data collector 200 that has received N pieces of plaintext data combines the N pieces of data for each sex, purchased product, and amount, and creates a table composed of one piece of plaintext data.
- the data collector 200 uses the searchable cryptographic private key and the searchable cryptographic encryption function generated in S100 to generate an encrypted table in which each cell of the combined table is plaintext,
- the encrypted data (D200) is transmitted to the analysis performer (S200).
- the encrypted data (D200) received by the analysis performer 300 that has received the encrypted data (D200) is stored, and the analysis preprocessing is finished.
- the information user terminal 400 When performing the analysis process, the information user terminal 400 generates a plaintext query set (D300), transmits the plaintext query set (D300) to the data collector terminal 200, and receives the plaintext query set (D300). Using the searchable encryption private key and searchable encryption query function generated in step 1, an encrypted query is created from each query in the plaintext query set (D300). Next, the data collector terminal 200 transmits each generated encrypted query to the information user terminal 400 as an encrypted query set (D400).
- the information user 400 that has received the encrypted query set (D400) uses any one encrypted query and column value from among the encrypted queries as a condition for association analysis, and any one encrypted query and column Execute the analysis query generation process (S400) that selects the value as the conclusion of the association analysis, and generate the encryption analysis query data (D500) that contains the encrypted query and column selected in S400 as the condition and conclusion, and analyze it Send to performer 300.
- the analysis performer 300 that has received the encryption analysis query data (D500) sets each cell of the column to the encryption query and the column value for the encryption query and the column value in the condition of the encryption analysis query data (D500).
- a matching process is performed on the search query using a searchable cryptographic matching function, and the number of cells whose result is “plaintext match” is counted. Let this number be X.
- the analysis performer 300 can search and search each cell of the column with respect to the encrypted query with respect to the encrypted query and the column value in the conclusion of the encrypted analysis query data (D500). Then, the matching process is performed, and the number of cells whose result is “plaintext match” is counted. Let Y be this number.
- the analysis performer 300 counts the number of rows in which both matching results are “plaintext match”, that is, in the AND search for the condition encryption query and the conclusion encryption query. This is the total number of hits. Let this number be M.
- the analysis performer 300 executes encryption analysis processing (S500) for calculating the support level M / T, the reliability level M / X, and the lift value (M / X) ⁇ (Y / T), and the calculated support level
- S500 encryption analysis processing
- the degree, reliability, and lift value are output as the support level, reliability, and lift value of the encrypted analysis query data (D500), and transmitted to the information user terminal 400 as the analysis result (D600).
- the information user terminal 400 stores the received analysis result (D600) and ends the process.
- FIG. 5 shows a data format example of encrypted data (D200), a data format example of plaintext query set (D300), and a data format example of encrypted query set (D400).
- Encrypted data (D200) is table data that is obtained by encrypting each cell of one table data that combines N plaintext table data received from each information provider 100-1 to 100-N with searchable encryption. is there.
- the plaintext query set (D300) is configured to include a set of plaintexts that information users want to examine correlations in association analysis, and FIG. 5 shows an example having “male” and “product A” as elements.
- the encrypted query set (D400) includes an encrypted query obtained by encrypting each plaintext of the above-described plaintext query set (D300) using a searchable encryption query function.
- “C194f5a1" corresponds to the encryption query for "”
- "2b90a8f2" corresponds to the encryption query for the plaintext "product A”.
- Fig. 6 shows a data format example of encryption analysis query data (D500) and a data format example of analysis result (D600).
- the encryption analysis query data (D500) and the analysis result (D600) have five attributes of “condition”, “conclusion”, “support”, “trust”, and “lift value” of association analysis.
- the “condition” of the encryption analysis query data (D500) includes an encryption query included in the encryption query set (D400) and a column corresponding to the query.
- “c194f5a1” male
- Encrypted query corresponding to) Gender is illustrated as the column.
- the “conclusion” of the encryption analysis query data (D500) includes an encryption query included in the encryption query set (D400) and a column corresponding to the query.
- “2b90a8f2” product) Encrypted query corresponding to A) Purchased products are exemplified as the column.
- a plurality of data provided from a plurality of information providing terminals 100-1 to 100-N are sent to the data collector terminal (200), and the data (plaintext) input using the encryption key is encrypted. Then, the encrypted data is stored in the encrypted data (D200) held by the analysis performer terminal (300, hereinafter abbreviated as server).
- an information user terminal 400, hereinafter abbreviated as “client”) receives a query, which is a query inquiry content, from a user.
- the range of data included in the query is decomposed into each value at a predetermined data interval, and a plain text search condition is generated for each value.
- each product data combined with other attributes in addition to the amount of money x exists as search target data. Accordingly, even if the price x is the same, there may be at least one product with different attributes, and there may be no product corresponding to the price ak. In the query of this embodiment, other attributes are ignored and a search focusing on the amount x is performed to check how many products with the same amount exist.
- an encrypted query including Ak which is a value obtained by encrypting each value ak decomposed in (2) above, is generated.
- This encryption key is the same as that used when the data sent from the data collector terminal (200) is encrypted.
- An encrypted query for each value is transmitted to the server (300), and the server (300) performs an encrypted search on the encrypted data (D200), and each Ak ( The number of products that match the encrypted amount) is counted for each product, and the number is stored in a predetermined storage area.
- Information that associates each encrypted amount (Ak) with the number of products obtained by the encrypted search is sent to the client (400).
- the client (400) sends the encrypted amount (Ak) included in the information received from the server (300) to the data collector terminal (200), and the encryption key held by the data collector terminal (200) Is used to decrypt the amount (ak) of each product (correlation with the value before encryption), and the client (400) stores the decrypted amount (ak) and the number of products corresponding to each amount of money.
- the client generates information indicating the correspondence between the amount (ak) of each product and the number of products based on the received information.
- the total number M of products obtained as described above and the average value ⁇ x> of the amounts are output on the screen of the client (400).
- FIG. 7 exemplifies a process of calculating the number X of data whose plain text matches the “condition” in the encryption analysis process (S500) for the encryption analysis query data (D500) of FIG.
- the analysis performer terminal 300 matches the encrypted query “c194f5a1” of the attribute “condition” of the encrypted analysis query data (D500) with each encrypted data in the gender column using a searchable cryptographic matching function, The number of cells is counted, and the total number is X.
- this invention is not limited to the above-mentioned embodiment, Various deformation
- transformation are possible within the range of the summary.
- the analysis result for a table composed of three columns of “gender”, “purchased product”, and “amount” is illustrated as tabular data, but the number of columns is not necessarily three, Any arbitrary number may be used.
- the calculation of the support level, the reliability level, and the lift value is exemplified as the analysis result (D600) in the association analysis, but other analysis may be performed and the analysis result may be used as the analysis result.
- the analysis result (S500)
- the calculated values, X, Y, M, and T may be used as the analysis result (D600)
- the total number of data hit in the AND search for multiple encryption queries or hit in the OR search The analysis result may be the total number of data that have been analyzed. More generally, for a plurality of encrypted queries, as a Boolean logic operation result based on a set of data hit by each encrypted query and a set of data not hit.
- the total number of data belonging to the obtained set may be included in the analysis result, and the total number of data belonging to the set obtained as the Boolean logic operation result divided by the total number of all data,
- conditional probabilities that use the above-mentioned reliability as an example may be used as analysis results, and values obtained by performing arithmetic operations on these conditional probabilities, that is, analytical values that use the above-described lift value as an example May be the analysis result.
- the calculation of the support level, the reliability level, and the lift value is exemplified as the analysis result (D600) in the association analysis.
- information about a column in which numerical data is input to each cell such as a monetary value column
- a variance value a standard deviation, a kurtosis, a skewness, a maximum value, a minimum value, a median value, and the like, which are statistical values that can be calculated from the appearance frequency of numerical values, may be calculated.
- the number of hit cells as described above is input as an encryption analysis process ( S500) and the analysis result (S600) is calculated, but the encryption analysis process (S500) does not necessarily need to input the number of cells hit by the searchable encryption matching function, and the encrypted query set (
- the process itself that divides the encrypted data (D200) into cells that hit D400) and cells that did not hit may be the encryption analysis process (S500).
- S500 For example, a purchase consisting of an ID and a purchased product as shown in FIG.
- the encrypted history data (D200-2) In the encrypted history data (D200-2), however, in this example, only the ID is encrypted with a searchable encryption, the purchased product is in plain text, the purchase history data with ID: 100 is extracted and When analyzing (D600), clear text
- the ID column of the encrypted data (D200-2) is set with the ID of 100 as the reset (D300-2) and the corresponding encrypted query set (D400-2) ID: 100: a193ea1.
- By searching with encryption matching function and encryption query in encryption query set (D400-2): a193ea1 only data with ID: 100 is extracted from encrypted data (D200-2) I can do it.
- the data that matched the match was used as the analysis result, but it is not always necessary to use the data that matched the match as the analysis result.
- the result of the analysis performed based on the purchase history of ID: 100 may be the analysis result (D600).
- the purchased product column is plain text, but the purchased product column is encrypted with a searchable encryption, divided into data of ID: 100 and other data, and the purchased product column is described with reference to FIGS.
- the analysis may be performed, and the result may be the analysis result (D600).
- Example 2 describes several methods for reducing the number of search conditions to be generated when a query range is decomposed into values and a search condition for each value is generated.
- the time required for generating a search condition in which each value is encrypted and performing an encrypted search using the encrypted search condition is shortened.
- a calculation process using the value of the number of data obtained by the search is necessary.
- M is the total number of sets (data)
- n (A) is the number of data satisfying the condition A
- ⁇ A is the negation of the condition A
- n ( ⁇ A) M ⁇ n (A)
- .OR Represents a logical sum
- .AND Represents a logical product.
- Reuse of search results # 2: From n (A.OR.B) n (A) + n (B) ⁇ n (A.AND.B), from the known n (A), n (B) and n (A.AND.B), N (A.OR.B) having a large number of data is obtained.
- n (A.AND.B) M ⁇ n ( ⁇ (A.AND.B).
- the original search condition including the affirmative condition is converted to an expression including the negative condition, and the result of searching the data in the negative case using this converted expression is used for the search.
- the number of conditions is reduced.
- the number of search conditions is similarly reduced by using the result of searching for data in the negative case.
- the search condition is A. AND.
- n (A. AND. B) n (B) ⁇ n ( ⁇ A. AND. B)
- the search condition is A. OR.
- 100-1, 100-2,..., 100-N information provider terminal
- 101 CPU
- 102 auxiliary storage device (storage device)
- 103 memory
- 104 internal signal line
- 105 display device
- 106 Input / output interface
- 107 communication device
- 200 data collector terminal
- 300 analysis performer terminal
- 400 information user terminal
- 500 network
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に記載のデータ分析システムにおいて、
前記方法で暗号化クエリの条件文に対する出現数よりも前記クエリの否定条件文に対応する出現数が少ない場合、前記否定条件文に対応する暗号化クエリを生成して暗号化検索を行い、前記暗号化検索の結果求めた出現数に基づいて、入力された暗号化クエリに対応するデータの出現数を求めることを特徴とするデータ分析システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015544708A JPWO2015063905A1 (ja) | 2013-10-31 | 2013-10-31 | データ分析システム |
PCT/JP2013/079504 WO2015063905A1 (ja) | 2013-10-31 | 2013-10-31 | データ分析システム |
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 |
---|---|
WO2015063905A1 true WO2015063905A1 (ja) | 2015-05-07 |
Family
ID=53003552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/079504 WO2015063905A1 (ja) | 2013-10-31 | 2013-10-31 | データ分析システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2015063905A1 (ja) |
WO (1) | WO2015063905A1 (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105682755A (zh) * | 2016-01-25 | 2016-06-15 | 张阳 | 网球比赛中球员支持率的统计方法及系统 |
WO2017103970A1 (ja) * | 2015-12-14 | 2017-06-22 | 株式会社日立製作所 | データ加工システム及びデータ加工方法 |
WO2017168535A1 (ja) * | 2016-03-28 | 2017-10-05 | 株式会社日立製作所 | データベースシステム及びデータ検索方法 |
JP2017223784A (ja) * | 2016-06-14 | 2017-12-21 | 株式会社エヌ・ティ・ティ・データ | 秘匿情報分析システム、および秘匿情報分析方法 |
WO2018124104A1 (ja) * | 2016-12-26 | 2018-07-05 | 国立大学法人大阪大学 | データ解析方法およびデータ解析システム |
WO2020245898A1 (ja) * | 2019-06-04 | 2020-12-10 | 三菱電機株式会社 | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム |
US10936757B2 (en) | 2016-05-27 | 2021-03-02 | Mitsubishi Electric Corporation | Registration destination determination device, searchable encryption system, destination determination method, and computer readable medium |
US11195121B2 (en) | 2017-03-24 | 2021-12-07 | Fujitsu Limited | Machine learning method and machine learning device |
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 |
GB2584042B (en) * | 2017-12-06 | 2022-09-21 | Trisent Ltd | Personal data management |
WO2022269862A1 (ja) * | 2021-06-24 | 2022-12-29 | 日本電信電話株式会社 | 顧客抽出システム、情報管理システム、分析依頼装置、顧客抽出方法、プログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6917942B2 (ja) * | 2018-04-11 | 2021-08-11 | 株式会社日立製作所 | データ分析サーバ、データ分析システム、及びデータ分析方法 |
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 |
---|
MASAYA YASUDA ET AL.: "Fukusu Kigyo ga Motsu Kobai Rireki Data no Cloud Hitoku Shukei", DAI 29 KAI SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2012, 30 January 2012 (2012-01-30) * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017103970A1 (ja) * | 2015-12-14 | 2017-06-22 | 株式会社日立製作所 | データ加工システム及びデータ加工方法 |
US11295635B2 (en) | 2015-12-14 | 2022-04-05 | Hitachi, Ltd. | Data processing system and data processing method |
JPWO2017103970A1 (ja) * | 2015-12-14 | 2018-08-02 | 株式会社日立製作所 | データ加工システム及びデータ加工方法 |
CN105682755A (zh) * | 2016-01-25 | 2016-06-15 | 张阳 | 网球比赛中球员支持率的统计方法及系统 |
JPWO2017168535A1 (ja) * | 2016-03-28 | 2018-12-13 | 株式会社日立製作所 | データベースシステム及びデータ検索方法 |
WO2017168535A1 (ja) * | 2016-03-28 | 2017-10-05 | 株式会社日立製作所 | データベースシステム及びデータ検索方法 |
US10936757B2 (en) | 2016-05-27 | 2021-03-02 | Mitsubishi Electric Corporation | Registration destination determination device, searchable encryption system, destination determination method, and computer readable medium |
JP2017223784A (ja) * | 2016-06-14 | 2017-12-21 | 株式会社エヌ・ティ・ティ・データ | 秘匿情報分析システム、および秘匿情報分析方法 |
JPWO2018124104A1 (ja) * | 2016-12-26 | 2019-10-31 | 国立大学法人大阪大学 | データ解析方法およびデータ解析システム |
WO2018124104A1 (ja) * | 2016-12-26 | 2018-07-05 | 国立大学法人大阪大学 | データ解析方法およびデータ解析システム |
US11195121B2 (en) | 2017-03-24 | 2021-12-07 | Fujitsu Limited | Machine learning method and machine learning device |
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 |
GB2584042B (en) * | 2017-12-06 | 2022-09-21 | Trisent Ltd | Personal data management |
WO2020245898A1 (ja) * | 2019-06-04 | 2020-12-10 | 三菱電機株式会社 | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム |
WO2022269862A1 (ja) * | 2021-06-24 | 2022-12-29 | 日本電信電話株式会社 | 顧客抽出システム、情報管理システム、分析依頼装置、顧客抽出方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2015063905A1 (ja) | 2017-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015063905A1 (ja) | データ分析システム | |
Feng et al. | Privacy-preserving tensor decomposition over encrypted data in a federated cloud environment | |
Canim et al. | Secure management of biomedical data with cryptographic hardware | |
Xu et al. | Information security in big data: privacy and data mining | |
Wong et al. | Security in outsourcing of association rule mining | |
CN107423632B (zh) | 可定制的敏感数据脱敏方法和系统 | |
Fong et al. | Privacy preserving decision tree learning using unrealized data sets | |
WO2016120975A1 (ja) | データ集計分析システム及びその方法 | |
US20120278618A1 (en) | Methods of authorizing a computer license | |
EP3497613B1 (en) | Protected indexing and querying of large sets of textual data | |
CN115525909A (zh) | 差分隐私高频命中项的安全多方计算 | |
CN110999200A (zh) | 监测函数的评估 | |
Wu et al. | SecEDMO: Enabling efficient data mining with strong privacy protection in cloud computing | |
Suganya et al. | Stochastic Gradient Descent long short-term memory based secure encryption algorithm for cloud data storage and retrieval in cloud computing environment | |
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 | |
Suthanthiramani et al. | Secured data storage and retrieval using elliptic curve cryptography in cloud. | |
Sasikumar et al. | A secure big data storage framework based on blockchain consensus mechanism with flexible finality | |
CN112134882A (zh) | 用于在网络中匿名化地传输数据的系统和方法 | |
US20240169074A1 (en) | Secure multi-party computation | |
CN111295656B (zh) | 隐私保护日志分析 | |
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 | |
Pattuk et al. | Optimizing secure classification performance with privacy-aware feature selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13896396 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015544708 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13896396 Country of ref document: EP Kind code of ref document: A1 |