JPWO2017149686A1 - 鍵生成装置、計算機システム、および暗号統計処理方法 - Google Patents
鍵生成装置、計算機システム、および暗号統計処理方法 Download PDFInfo
- Publication number
- JPWO2017149686A1 JPWO2017149686A1 JP2017530766A JP2017530766A JPWO2017149686A1 JP WO2017149686 A1 JPWO2017149686 A1 JP WO2017149686A1 JP 2017530766 A JP2017530766 A JP 2017530766A JP 2017530766 A JP2017530766 A JP 2017530766A JP WO2017149686 A1 JPWO2017149686 A1 JP WO2017149686A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- sum
- management server
- key
- 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
- 238000003672 processing method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000007405 data analysis Methods 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 57
- 238000012545 processing Methods 0.000 description 43
- 238000009826 distribution Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 18
- 230000002776 aggregation Effects 0.000 description 10
- 238000004220 aggregation Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000036541 health Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 4
- 206010035664 Pneumonia Diseases 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009827 uniform distribution Methods 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
特許文献1に記載された技術により、データ委託先のサーバ内でデータ分析を行う場合、サーバ内で個々の暗号文を復号する必要が生じる。すなわち、サーバ内で基本統計量を算出する場合には、サーバ側に個々のデータの平文が開示されてしまうという課題がある。本発明の鍵生成装置は、個々の平文データを暗号化する際に用いた鍵である乱数の総和を、暗号文データの総和を復号するための鍵としてサーバに送信し、その鍵を用いて暗号文データの総和を復号する。
Description
本発明は、計算機環境における暗号データの統計処理に関する。
情報システムの開発・運用管理費の効率化を目的として、自組織の情報システムを利用したデータ処理だけでなく、他組織が提供するクラウド上のサーバでデータ処理を行うことが一般化しつつある。クラウドを利用する場合、自組織のデータを他組織が管理するサーバに預けることとなる。そのため、情報漏洩の予防を目的とし、暗号技術の活用が注目されている。
データの管理を他組織のサーバに委託しながら情報漏洩を防ぐ技術として、演算を可能とする準同型暗号を活用した発明が知られている。例えば特許文献1には、暗号文の加算や乗算を計算可能とする準同型暗号を利用し、集計等の特定の処理をデータ預託先のサーバに委託する方式が記載されている。
クラウド上のサーバにデータ分析を依頼したいという需要がある。データ分析は、データの類似性や傾向等を探る作業であり、その演算には、平均や分散等の基本統計量を必要とする。しかしながら、情報漏洩の予防を目的に、クラウドが復号できないよう、個々のデータを暗号化してしまうと、基本統計量の計算が困難になる、という課題がある。これは、暗号文の除算の困難性にある。そのため、従来は、除算を必要とする平均や分散等の基本統計量を求める際には、暗号文を復号して平文を得る必要があった。
例えば、特許文献1に記載された技術を用いてデータ預託先のサーバ内でデータ分析を行う場合、サーバからクライアントに暗号文を戻し、クライアントが暗号文を復号し、除算を処理した上で、再暗号化し、再びサーバに暗号文を渡す必要がある。すなわち、データ預託先のサーバ内で基本統計量を算出しようとすると、処理が煩雑になり、計算リソースの高負荷を招くという課題があった。
上述の課題を解決するために、本発明の鍵生成装置は、個々の平文データを暗号化する際に用いた鍵である乱数の総和を、暗号文データの総和を復号するための鍵としてサーバに送信し、その鍵を用いて暗号文データの総和を復号する。
データの総和の値のみがサーバ側で復号され平文となる。すなわち、個々のデータの平文がサーバ側に開示されることなく、サーバ内で基本統計量を算出することが可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、これにより本発明が限定されるものではない。実施の形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。まず、本発明の実施例で使用する用語を定義する。
(1) 法
剰余算(除算の余りを求める計算)における割る値を指す。
剰余算(除算の余りを求める計算)における割る値を指す。
(2) mod t
剰余算を指す。特に断りがない限り、本実施例では、法をtとする剰余算の結果は、
整数 [0, 1, 2, ・・・, t-1]で表し、0未満またはt以上の値を用いないものとする。
剰余算を指す。特に断りがない限り、本実施例では、法をtとする剰余算の結果は、
整数 [0, 1, 2, ・・・, t-1]で表し、0未満またはt以上の値を用いないものとする。
(3) 剰余加算
整数の加算結果に対し、剰余算を行う。例えば、4 + 5 mod 7 = 2が成立する。
整数の加算結果に対し、剰余算を行う。例えば、4 + 5 mod 7 = 2が成立する。
(4) 剰余減算
整数の減算結果に対し、剰余算を行う。例えば、4 - 5 mod 7 = 6が成立する。
整数の減算結果に対し、剰余算を行う。例えば、4 - 5 mod 7 = 6が成立する。
(5) 平方剰余
整数の自乗結果に対し、剰余算を行う。例えば、42 mod 7 = 2が成立する。
整数の自乗結果に対し、剰余算を行う。例えば、42 mod 7 = 2が成立する。
(6) 基本統計量
本発明では、代表的な統計量である合計、平均、分散、標準偏差のいずれかを指す。
本発明では、代表的な統計量である合計、平均、分散、標準偏差のいずれかを指す。
(7) データベース
データの管理形態の一種であり、本発明ではDBと略す場合もある。また、データとして暗号文を保存する場合、暗号化DBと略す場合もある。
データの管理形態の一種であり、本発明ではDBと略す場合もある。また、データとして暗号文を保存する場合、暗号化DBと略す場合もある。
(8) 登録PC100
登録PC100a、登録PC100b、・・・、登録PC100nのいずれかまたは全てを指す。
登録PC100a、登録PC100b、・・・、登録PC100nのいずれかまたは全てを指す。
(9) 集約値復号鍵
平均用特集約値復号鍵と分散用集約値復号鍵の総称である。
平均用特集約値復号鍵と分散用集約値復号鍵の総称である。
(10) 暗号化鍵
平均用暗号化鍵と分散用暗号化鍵の総称である。
平均用暗号化鍵と分散用暗号化鍵の総称である。
(11) 平文
暗号化対象のデータを平文と呼ぶ。暗号化後は、暗号文と呼ばれる。
暗号化対象のデータを平文と呼ぶ。暗号化後は、暗号文と呼ばれる。
(12) 平文空間
平文がとりえる値の集合を指す。例えば、平文空間を0以上t未満とするとき、整数[0、1、2、・・・t-1]のいずれかをが平文が取りうる。
平文がとりえる値の集合を指す。例えば、平文空間を0以上t未満とするとき、整数[0、1、2、・・・t-1]のいずれかをが平文が取りうる。
(13) 分散
データの分布のばらつき度合いを示す統計指標の一つ。平文Miの平均と平文Mi2の平均から、平文Miの分散Varが計算できる。Var(Mi) = Avg(Mi2) - Avg(Mi)2が一般に成り立つ。
データの分布のばらつき度合いを示す統計指標の一つ。平文Miの平均と平文Mi2の平均から、平文Miの分散Varが計算できる。Var(Mi) = Avg(Mi2) - Avg(Mi)2が一般に成り立つ。
(14) 標準偏差
分散と同様、データの分布のばらつき度合いを示す統計指標の一つ。分散の平方根が標準偏差Stdである。即ち、Std = √Varが一般に成り立つ。
分散と同様、データの分布のばらつき度合いを示す統計指標の一つ。分散の平方根が標準偏差Stdである。即ち、Std = √Varが一般に成り立つ。
(15) 整数丸め込み関数
入力された実数値に対して、もっとも近い整数の値を返す関数である。xを整数丸め込み関数の入力値、yを出力値(出力値は整数)とし、丸め込み関数を「・」(・は入力値)で表す。このとき、y=「x」であり、|y-x|<=1/2が成立する。
入力された実数値に対して、もっとも近い整数の値を返す関数である。xを整数丸め込み関数の入力値、yを出力値(出力値は整数)とし、丸め込み関数を「・」(・は入力値)で表す。このとき、y=「x」であり、|y-x|<=1/2が成立する。
図1は、暗号化統計処理システムの実施形態の概略を示す図である。図示するように、統計処理システムは、第三者機関と、事業主体A(1〜n)と、事業主体Bと、事業主体Cと、により実施される。ハードウェアとしては、第三者機関が所有する鍵配布PC000と、事業主体A(1〜n)が所有する登録PC100a・・・100nと、事業主体Bが所有する管理サーバ300と、事業主体Cが所有する閲覧PC200と、のそれぞれがネットワーク400を介して接続される構成となっている。
本実施例をヘルスケア事業への適用例として説明する。以下、第三者機関を「認証局」、事業主体A(1〜n)を「健康診断事業者」、事業主体Bを「クラウドサービス提供者」、事業主体Cを「病院」と想定する。
健康診断事業者は、自社の情報システムをクラウドサービス提供者の管理サーバ300に預託する運用をしている。故に、健康診断受診者から取得する健診データを、管理サーバ300に預託している。健診データは受診者の個人情報であり、他者に漏洩しないよう慎重に取り扱う必要がある。健診データの詳細は、図2(a)で後述する。
そのため、健康診断事業者は、受診者から取得して登録PC100aに入力した健診データにおいて指定した項目を、認証局の鍵配布PC000が発行する暗号化鍵で暗号化した上で、クラウドサービス提供者の管理サーバ300に預託する。すなわち、クラウドサービス提供者には、個々の健診データ内の暗号化された項目の内容が開示されない。
病院側は健診データに基づく疾病の基本統計量データを必要としているので、健診データを格納するクラウドサービス提供者にその基本統計量データを要求する。統計統計量データの詳細は、図2(d)で後述する。
クラウドサービス提供者の管理サーバは、内部に格納された健診データの暗号文の総和を求め、認証局の鍵配布PC000が発行する集約値復号鍵で総和を復号し、総和の平文データを得る。総和の平文データの詳細は、図2(c)で後述する。
平文については除算が可能なので、健診データの数で総和の平文を除した値が、代表的な基本統計量データである平均値となる。この後、平均値は病院側に開示されるが、個々の健診データは開示されない。すなわち、健康診断事業者の所持する個々の健診データが、いずれの他者に開示されることなく、病院が基本統計量を取得できたことになる。なお、前述の通り、暗号文の総和を求める処理は、従来技術で可能である。
図2は、本実施例で取り扱うデータの具体例を示す図である。この図を用いて図1の説明を補足する。
図2(a)は健康診断事業者が受診者から取得して登録PC100に登録した健診データを、図2(b)は管理サーバ300内で保管されるデータ例として年齢(歳)と入院期間(日)が暗号化された健診データを、図2(c)は管理サーバ300内で復号された総和の平文データを、図2(d)は管理サーバ300内で算出された基本統計量データを、それぞれ示している。
図2(a)の各行のデータを「個々の健診データ」と呼んでいる。認証局の鍵配布PC000は、指定された範囲または項目毎に暗号化鍵を発行し、健康診断事業者の登録PC100は、発行された暗号化鍵を用いて健診データをそれぞれ暗号化する。
図2(b)は、個々の健診データのうち、「年齢(歳)」列および「入院期間(日)」列に格納される値が暗号化されていることを示している。
図2(b)は、個々の健診データのうち、「年齢(歳)」列および「入院期間(日)」列に格納される値が暗号化されていることを示している。
図2(c)の「年齢総和」列および「入院期間総和」列に格納される値は、それぞれ指定された範囲または項目における図2(a)の「年齢(歳)」列および「入院期間(日)」列の総和の値である。この例では、指定された項目が「肺炎」および「男」であったとする。この場合、図2(c)には、肺炎を患った経験のある男性受診者の年齢の総和と、当該受診者が肺炎を患った際の入院期間の総和が、認証局の鍵配布PC000が発行する集約値復号鍵により復号されて、平文となっている。
図2(d)の「平均年齢(歳)」列および「平均入院期間(日)」列に格納される値は、それぞれ図2(c)の「年齢総和」列の値および「入院期間(日)」列の値をデータ数で除した値である。この例では、各列のデータ数は3であるので、3で除した値となっている。これらの数値は病院側に提供され、医師等が閲覧PC200を用いて閲覧することができる。
なお、上記の健診データはあくまで一例である。必要に応じて複数の暗号文を組み合わせてよい。例えば、平文で管理されている他の項目を、ブロック暗号や、検索可能暗号、公開鍵暗号等で暗号化してもよい。
図3は、鍵配布PC000のハードウェア構成図である。図示するように、鍵配布PC000は、CPU001、メモリ002、記憶装置003、入力装置005、出力装置006、読書装置007、通信装置008、らが内部信号線004で連結し、構成される。また、記憶装置003には、所定のプログラムが格納されている。プログラムは、メモリ002にロードされCPU001によって実行される。なお、所定のプログラムは、外部記憶装置に記憶されていてもよい。
登録PC100、閲覧PC200、管理サーバ300も同様のハードウェア構成を具備する。それぞれの詳細は、繰り返しの記載となるので省略する。
図4は、暗号統計処理システムの全体処理を示すシーケンス図である。S010-S030は認証局の鍵配布PCの処理、S110 -S140は健康診断事業者の登録PC100の処理、S210は病院の閲覧PC200の処理、S310-S330はクラウドサービス事業者の管理サーバ300の処理である。以下、各ステップにつき説明する。
S110は、登録PCが統計処理対象のデータの範囲または項目を指定する処理である。図2(a)で説明した通り、例えば「病歴」「性別」等の項目が指定される。データの範囲を指定する場合の例としては、「東京都」「神奈川県」のように地域を指定したり、「2015年1月1日〜2015年12月31日」のように期間を指定することが考えられる。
S120は、S110で指定した範囲または項目につき、登録PCが鍵配布PCに対して暗号化鍵を要求する処理である。
S010は、S120で受信した要求に基づき、暗号化統計計算用パラメータを生成する処理である。詳細は図5で後述する。
S020は、S010で生成された暗号化統計計算用パラメータを用いて、暗号化鍵D010と集約値復号鍵D020を生成する処理である。詳細は図6で後述する。
S030は、S020で生成された暗号化鍵D010を登録PC100に、集約値復号鍵D020を管理サーバに、それぞれ送付する処理である。
S130は、S030で送付された暗号化鍵D010を用いて、暗号文D110を生成する処理である。詳細は図8で後述する。
S140は、S130で生成された暗号文D110を管理サーバに送付する処理である。
S310は、S140で送付された暗号文D110の状態を遷移させる処理である。詳細は図9で後述する。
S320は、S310で状態遷移した暗号文D110の基本統計量D210を計算する処理である。詳細は図9で後述する。
S210は、S320で算出された基本統計量D210を、閲覧PCから要求する処理である。
S330は、S110の要求を受け、閲覧PCに基本統計量D210を送信する処理である。
このようにして、管理サーバ300が個々のデータの平文を得ることなく、分析に有用な基本統計量の平文を得ることができる。
なお、上述の処理手順はあくまで一例であり、必要に応じて処理順序や処理内容を変更してもよい。例えば、登録PCと閲覧PCが同一の主体(本例では病院を想定する)に属している場合には、S210の要求処理を待つことなくS330の処理を実施してもよい。この場合、登録PC100と閲覧PC200が同じ端末であることも考えられ、S210も登録PC100に実施されることになる。
また、S320の処理は、S310の出力である対象データの総和の平文をデータ数で除する処理であるから、必ずしも管理サーバ内で実施する必要はない。例えば、S310の出力を閲覧PC200に送付し、閲覧PC200内でS320に相当する処理を実施してもよい。
更に、複数の健康診断事業者(登録PC100a-100n)から収集した健診データについての基本統計量を計算することも可能である。
図5に鍵配布PC000における暗号化統計計算用パラメータ生成の処理フローを示す。鍵配布PC000は正の整数Pと正の整数tを生成する(S011)。ただし、tはnの約数とする。例えば、n=6のとき、tはnの約数であるので、t=1,2,3,6のいずれかである。なお、鍵配布PC000は、作成した正の整数Pと正の整数tを公開、または送付することにより、登録PC100や管理サーバ300が利用可能な状態にしておく。
図6に鍵配布PC000における暗号化鍵生成の処理フローを示す。鍵配布PC000は0以上P未満のt個の乱数S1、S2、・・・Stとt個の乱数L1、L2、・・・Ltを生成する(S021)。次に、法をPとし、乱数S1、S2、・・・Stの剰余加算をS、乱数L1、L2、・・・Ltの剰余加算をLとする。即ち、
S = S1 + S2 +・・・+ St mod P、L = L1 + L2 + ・・・ + Lt mod Pである(S022)。最後に、乱数S1、S2、・・・Stを平均用暗号化鍵、乱数L1、L2、・・・Ltを分散用暗号化鍵、Sを平均用集約値復号鍵、Lを分散用集約値復号鍵として出力する(S023)。すなわち、
平均用集約値復号鍵Sは法をPとするt個の乱数S1、S2、・・・、Stの総和となり、
分散用集約値復号鍵Lは法をPとするt個の乱数L1、L2、・・・、Ltの総和となる。
S = S1 + S2 +・・・+ St mod P、L = L1 + L2 + ・・・ + Lt mod Pである(S022)。最後に、乱数S1、S2、・・・Stを平均用暗号化鍵、乱数L1、L2、・・・Ltを分散用暗号化鍵、Sを平均用集約値復号鍵、Lを分散用集約値復号鍵として出力する(S023)。すなわち、
平均用集約値復号鍵Sは法をPとするt個の乱数S1、S2、・・・、Stの総和となり、
分散用集約値復号鍵Lは法をPとするt個の乱数L1、L2、・・・、Ltの総和となる。
図7は、鍵配布PC000が集約値復号鍵と暗号化鍵の送信時に用いるデータベースである。鍵管理DBと呼ばれるこのデータベースで、送信先と送信対象を管理する。例えば、図7aのデータベース2行目には、送信先として登録用PC100a、送信対象として平均用暗号化鍵S1と分散用暗号化鍵L1が指定されている。また図7bのデータベースには、送信先として管理サーバ300、送信対象として平均用集約値復号鍵Sと分散用集約値復号鍵Lが指定されている。鍵配布PC000は鍵管理DBで指定されている送信対象と送信先に従い、暗号化鍵と集約値復号鍵を送付する。すなわち、この例では集約値復号鍵のみがサーバに送信されることになるため、個々の暗号化鍵がサーバに開示されることはない。
図8中の図8aは、登録PC100における暗号文生成の処理フローを示す。本暗号文は管理サーバ300上で合計と平均の算出に用いられる。登録PC100は暗号化対象の平文Miに対し、法をPとする平均用暗号化鍵Siの剰余加算を行い、暗号文Ciを作成する。即ち、Ci= Mi + Si mod Pが成立する(S111a)。このとき、平文Miの平文空間は0以上P/t未満の整数である。次に、暗号文Ciを出力する(S112a)。
図8中の図8bは、登録PC100における暗号文生成の処理フローを示す。本暗号文は管理サーバ300上で分散と標準偏差の算出に用いられる。登録PC100は暗号化対象の平文Miに対し、法をPとするMiの平方剰余であるMi2 mod Pを算出し、分散用暗号化鍵Liとの剰余加算を行い、暗号文Diを作成する。即ち、Di= Mi2 + Li mod Pが成立する(S111b)。このとき、平文Mi2の平文空間は0以上P/t未満の整数である。次に、暗号文Diを出力する(S112b)。
図9中の図9aは、管理サーバ300が、t個の暗号文Ciの暗号化状態を0遷移させる際の処理フローである。
管理サーバ300は法をPとするt個の暗号文Ciの剰余加算と、Sの剰余減算を行い、暗号化状態が解除された中間データSUMを作成する。即ち、
Sum = (C1 + C2 + ・・・・+ Ct) - S mod Pが成立する(S211a)。ここで、平文Miの平文空間は0以上P/t未満の整数であるため、Sumはt個の平文 Miの合計と等しい。即ち、Sum = M1 + M2 + ・・・・+ Mtが成立する。つまり、平均用集約値復号鍵Sを用いて、対象データの総和の値のみを管理サーバ300内で復号できたことになる。
Sum = (C1 + C2 + ・・・・+ Ct) - S mod Pが成立する(S211a)。ここで、平文Miの平文空間は0以上P/t未満の整数であるため、Sumはt個の平文 Miの合計と等しい。即ち、Sum = M1 + M2 + ・・・・+ Mtが成立する。つまり、平均用集約値復号鍵Sを用いて、対象データの総和の値のみを管理サーバ300内で復号できたことになる。
図9中の図9bは、管理サーバ300が、平均値を算出する際の処理フローである。中間データSUMがt個の平文Miの合計と等しいことは既に述べた通りである。この中間データSUMをtで除算することにより、平均Avgが作成できる。即ち、Avg= SUM/tが成立する(S221a)。次に、中間データSUMは合計として、Avgは平均として出力する(S222a)。なお、図3で述べた通り、この処理は平文SUMをデータ数tで除する一般的な統計処理であるから、必ずしも管理サーバ300内で実施する必要はない。
図10中の図10aは、管理サーバ300が、分散または標準偏差を算出する際に、暗号化状態を遷移させる処理フローである。
管理サーバ300は法をPとするt個の暗号文Diの剰余加算と、Lの剰余減算を行い、暗号化状態が解除された中間データtmpを作成する。即ち、
tmp = (D1 + D2 + ・・・・+ Dt) - L mod Pが成立する(S211b)。ここで、平文Mi2の平文空間は0以上P/t未満の整数であるため、tmpはt個の平文 Mi2の合計と等しい。即ち、tmp = M12 + M22 + ・・・・+ Mt2が成立する。つまり、分散用集約値復号鍵Lを用いて、対象データの総和の値のみを管理サーバ300内で復号できてこととなる。
tmp = (D1 + D2 + ・・・・+ Dt) - L mod Pが成立する(S211b)。ここで、平文Mi2の平文空間は0以上P/t未満の整数であるため、tmpはt個の平文 Mi2の合計と等しい。即ち、tmp = M12 + M22 + ・・・・+ Mt2が成立する。つまり、分散用集約値復号鍵Lを用いて、対象データの総和の値のみを管理サーバ300内で復号できてこととなる。
図10中の図10bは、管理サーバ300が、分散および標準偏差を算出する際の処理フローである。中間データtmpがt個の平文Mi2の合計と等しいことは既に述べた通りである。この中間データSUMをtで除算し、さらにAvg2を減算することにより、分散Varが作成できる。即ち、
Var= tmp/t - Avg2が成立する(S221b)。次に、Varの平方根を算出し、これを標準偏差Stdとする(S222b)。最後に、Varは分散として、Stdは標準偏差として出力する(S223b)。なお、この処理は一般的な統計処理であるから、必ずしも管理サーバ300内で実施する必要はない。
Var= tmp/t - Avg2が成立する(S221b)。次に、Varの平方根を算出し、これを標準偏差Stdとする(S222b)。最後に、Varは分散として、Stdは標準偏差として出力する(S223b)。なお、この処理は一般的な統計処理であるから、必ずしも管理サーバ300内で実施する必要はない。
上記の処理により、管理サーバ300は、登録サーバから受け取った暗号文Ciや暗号文Diから各々の平文Mi、Mi2の値を得ることなく、また個々のデータについての暗号鍵を得ることなく、更に集計PC200との複雑なやり取りをすることもなく、平文Miの基本統計量である計SUM、平均Avg、分散Var、標準偏差Stdを得ることが可能となる。
なお、本発明は上述の実施形態に限定されるものではなく、その趣旨の範囲内で様々な変形が可能である。例えば、統計計算は平均や分散に限定されるものではなく、それ以外の統計値を算出しても良い。また、データの値は整数に限定されるものではなく、実数としても良い。
実施の形態2では、実施の例1と同様、管理サーバ300が受け取った個々の暗号文から、その基本統計量のみが平文で得られる方式を説明する。本実施例では、暗号化の際にLWE(Learning with Errors)と呼ばれる計算量困難な問題をベースにしている。
実施例2のシステムの概略図は実施例1と同様である。また鍵配布PC000と、1台以上の登録PC100a・・・100nと、集計PC200と、管理サーバ300の構成も、実施例1と同様である。更に、鍵配布PC000,登録PC100a・・・登録PC100n、管理サーバ300、集計PC200におけるデータ送受信とプログラムの処理フローも、実施例1と同様である。
ここで、鍵配布PC000における暗号化統計計算用パラメータ生成の処理フロー(S010)につき、実施例1との差分を説明する。
鍵配布PC000は正の整数Pと正の整数Nと正の整数tと正の整数mを生成する。ただし、tはnの約数とする。また、0以上P未満の乱数を要素とするN次元ベクトルAを生成する(S011)。
次に、鍵配布PC000における暗号化鍵生成の処理フロー(S020)につき、実施例1との差分を説明する。
鍵配布PC000は0以上P未満乱数を要素とするのN次元ベクトルS1、S2、・・・StとL1、L2、・・・Ltを生成する(S021)。次に、法をPとし、乱数S1、S2、・・・Stの剰余加算をS、乱数L1、L2、・・・Ltの剰余加算をLとする。即ち、
S = S1 + S2 +・・・+ St mod P、
L = L1 + L2 + ・・・ + Lt mod Pである(S022)。最後に、乱数S1、S2、・・・Stを平均用暗号化鍵、乱数L1、L2、・・・Ltを分散用暗号化鍵、Sを平均用集約値復号鍵、Lを分散用集約値復号鍵として出力する(S023)。
S = S1 + S2 +・・・+ St mod P、
L = L1 + L2 + ・・・ + Lt mod Pである(S022)。最後に、乱数S1、S2、・・・Stを平均用暗号化鍵、乱数L1、L2、・・・Ltを分散用暗号化鍵、Sを平均用集約値復号鍵、Lを分散用集約値復号鍵として出力する(S023)。
鍵配布PC000が集約値復号鍵と暗号化鍵の送信時に用いるデータベースは、実施例1と同様である。
図11中の図11aは、実施例2における登録PC100が暗号文Ciを生成する際の処理フローである。本暗号文は管理サーバ300上で合計と平均の算出に用いられる。
登録PC100はN次元ベクトルAとn次元ベクトルSiに対し法をPとする内積<A, Si>を行う。さらに、登録PC100は
|Ei| < P/(2mt)を満たす乱数Eiを作成する。最後に、法をPとし、内積<A, Si>、乱数Eiと、P/m倍平文Miとの剰余加算を行い、暗号文Ciを作成する。即ち、Ci=(Mi)P/m+<A, Si>+Ei mod Pが成立する(S111a)。このとき、平文Miの平文空間は0以上m/t未満の整数である。次に、暗号文Ciを出力する(S112a)。
|Ei| < P/(2mt)を満たす乱数Eiを作成する。最後に、法をPとし、内積<A, Si>、乱数Eiと、P/m倍平文Miとの剰余加算を行い、暗号文Ciを作成する。即ち、Ci=(Mi)P/m+<A, Si>+Ei mod Pが成立する(S111a)。このとき、平文Miの平文空間は0以上m/t未満の整数である。次に、暗号文Ciを出力する(S112a)。
図11中の図11bは、実施例2における登録PC100が暗号文Diを生成の処理フローである。本暗号文は管理サーバ300上で分散と標準偏差の算出に用いられる。登録PC100はN次元ベクトルAとn次元ベクトルLiに対し、法をPとする内積<A, Li>を行う。さらに、登録PC100は|Fi| < P/(2mt)を満たす乱数Fiを作成する。最後に、法をPとし、内積<A, Li>、乱数Fiと、P/m倍したMiの平方剰余Mi2 との剰余加算を行い、暗号文Diを作成する。即ち、
Di=Mi2 m/t+<A, Li>+Fi mod Pが成立する(S111b)。このとき、平文Mi2の平文空間は0以上m/t未満の整数である。次に、暗号文Diを出力する(S112b)。
Di=Mi2 m/t+<A, Li>+Fi mod Pが成立する(S111b)。このとき、平文Mi2の平文空間は0以上m/t未満の整数である。次に、暗号文Diを出力する(S112b)。
図12は、実施例2における、管理サーバ300が平文を算出する際に暗号文の暗号化状態を遷移させる処理フローである。管理サーバ300はN次元ベクトルAとn次元ベクトルSに対し、法をPとする内積<A, S>を行う。管理サーバ300は法をPとするt個の暗号文Ciの剰余加算と、内積<A, S>の剰余減算を行い、暗号化状態が解除された中間データTMPを作成する。即ち、
TMP = (C1 + C2 + ・・・・+ Ct) - <A, S> mod Pが成立する(S211a)。ここで、このTMPをm/P倍した実数値を整数丸め込み関数に入力し、出力値SUMを得る(S212a)。「m/P(TMP)」=「(M1+M2 + ・・・・+ Mt)+ m/P(E1+E2 + ・・・・+ Et)」=M1+M2 + ・・・・+ Mtである。
TMP = (C1 + C2 + ・・・・+ Ct) - <A, S> mod Pが成立する(S211a)。ここで、このTMPをm/P倍した実数値を整数丸め込み関数に入力し、出力値SUMを得る(S212a)。「m/P(TMP)」=「(M1+M2 + ・・・・+ Mt)+ m/P(E1+E2 + ・・・・+ Et)」=M1+M2 + ・・・・+ Mtである。
|Ei|<P/2mtより、|t/m(E1+E2 + ・・・・+ Et)| <1/2であり、乱数Eiの総和は整数丸め込み関数により破棄される。従って、SUMは平文Miの合計値である。
管理サーバ300が平均値を算出する際の処理フローは、実施例1と同様である。
図13は、実施例2における、管理サーバ300が平文を算出する際に暗号文の暗号化状態を遷移させる処理フローである。管理サーバ300はN次元ベクトルAとn次元ベクトルLに対し、法をPとする内積<A, L>を行う。管理サーバ300は法をPとするt個の暗号文Diの剰余加算と、内積<A, L>の剰余減算を行い、暗号化状態が解除された中間データTMPを作成する。即ち、
TMP = (D1 + D2 + ・・・・+ Dt) - <A, L> mod Pが成立する(S211a)。ここで、このTMPをm/P倍した実数値を整数丸め込み関数に入力し、出力値tmpを得る(S212a)。「m/P(TMP)」=「(M12+M22 + ・・・・+ Mt2)+ m/P(F1+F2 + ・・・・+ Ft)」=M12 + M22 + ・・・・+ Mt2である。|Fi|<P/2mtより、|t/m(F1+F2 + ・・・・+ Ft)| <1/2であり、乱数Fiの総和は整数丸め込み関数により破棄される。従って、tmpは平文Mi2の合計値である。
TMP = (D1 + D2 + ・・・・+ Dt) - <A, L> mod Pが成立する(S211a)。ここで、このTMPをm/P倍した実数値を整数丸め込み関数に入力し、出力値tmpを得る(S212a)。「m/P(TMP)」=「(M12+M22 + ・・・・+ Mt2)+ m/P(F1+F2 + ・・・・+ Ft)」=M12 + M22 + ・・・・+ Mt2である。|Fi|<P/2mtより、|t/m(F1+F2 + ・・・・+ Ft)| <1/2であり、乱数Fiの総和は整数丸め込み関数により破棄される。従って、tmpは平文Mi2の合計値である。
管理サーバ300において、分散または標準偏差を算出する際の処理フローは、実施例1と同様である。
上記の処理により、管理サーバ300は、登録サーバから受け取った暗号文Ciや暗号文Diから各々の平文Mi、Mi2の値を得ることなく、集計PC200との複雑なやり取りなしで、平文Miの基本統計量である計SUM、平均Avg、分散Var、標準偏差Stdを得ることが出来た。
なお、本発明は、実施例1と同様、その趣旨の範囲内で様々な変形が可能である。例えば、乱数生成に当たっては、乱数の分布をガウス分布や一様分布など、特定の分布を仮定としてもよい。
実施例2では、管理サーバ300は平文Miの基本統計量を平文として得たが、暗号化状態のまま基本統計量を算出し、管理サーバ300には基本統計量を秘匿するようにしても良い。例えば、鍵配布PC000は、集計PC200に復号鍵を事前に渡しておき、管理サーバ300から暗号化された基本統計量を受けとった集計PC200が復号しても良い。また、管理サーバ300は特定の処理を行うことにより、合計は集計PC200には開示しないが、平均は開示するなど、部分開示を行うように調整しても良い。
例えば、管理サーバ300は平均計算で用いる分母tを秘匿するため、1/t≒r/Rとなる数を求め、r倍した暗号文の総和とRを集計PC200に渡し、集計PC200でr倍された暗号文を復号後、得られたr倍された平文の総和をRで除算し、平均値を算出する。このとき、集計PC200はrが分からないため、r倍された平均の総和から、元の平文総和が得られない。一方、Rで除算することにより、分母をtとする平均は得ることができる。
例えば、管理サーバ300が対応する対応する法の値をPからP/tに変更し、新しい法の値P/t用に変換した暗号文を集約PCに送信してもよい。このとき、集約PCは法P/tを用いて暗号文を復号し、tで除算された平均を入手できる。
000:鍵配布PC 100、100a、100b、100n:登録PC 200:集計PC 300:管理サーバ 400:ネットワーク 001:CPU(Central Processing Unit) 002:メモリ 003:記憶装置 004:内部通信線 005:入力装置 006:出力装置 007:読書装置 008:通信装置
Claims (6)
- 疑似乱数である暗号化鍵を複数生成し、生成された複数の疑似乱数の総和である集約値復号鍵を生成し、前記複数の暗号化鍵と、前記集約値復号鍵と、を外部に送信する、鍵生成装置。
- 請求項1に記載の鍵生成装置と、管理サーバと、を備える計算機システムにおいて、
前記鍵生成装置は、前記複数の暗号化鍵をクライアント端末に送信し、前記集約値復号鍵を前記管理サーバに送信し、
前記管理サーバは、前記複数の暗号化鍵を用いて暗号化された複数のデータを前記クライアント端末から受信し、当該暗号化された複数のデータの総和を算出し、当該総和の値を、前記集約値復号鍵を用いて復号し、平文の値を得る、ことを特徴とする計算機システム。 - 請求項1に記載の鍵生成装置と、クライアント端末と、を備える計算機システムにおいて、
前記鍵生成装置は、前記複数の暗号化鍵と、前記集約値復号鍵と、を前記クライアント端末に送信し、
前記クライアント端末は、受信した複数の暗号化鍵を用いて複数のデータを暗号化し、当該暗号化された複数のデータを管理サーバに送信し、当該暗号化された複数のデータの総和の値を前記管理サーバから受信し、受信した総和の値を前記集約値復号鍵を用いて復号し、平文の値を得る、ことを特徴とする計算機システム。 - 請求項2に記載の計算機システムにおいて、
前記管理サーバは、前記平文の値をデータ数で除し、前記複数のデータの平均値を得る、ことを特徴とする計算機システム。 - 請求項3に記載の計算機システムにおいて、
前記クライアント端末は、前記平文の値をデータ数で除し、前記複数のデータの平均値を得る、ことを特徴とする計算機システム。 - 第1のCPUが、疑似乱数である暗号化鍵を複数生成し、生成された複数の疑似乱数の総和である集約値復号鍵を生成し、
第2のCPUが、前記複数の暗号化鍵を用いて暗号化された複数のデータの総和を算出し、当該総和の値を、前記集約値復号鍵を用いて復号する、ことを特徴とする暗号化統計方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/056322 WO2017149686A1 (ja) | 2016-03-02 | 2016-03-02 | 鍵生成装置、計算機システム、および暗号統計処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2017149686A1 true JPWO2017149686A1 (ja) | 2018-03-08 |
Family
ID=59743702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017530766A Pending JPWO2017149686A1 (ja) | 2016-03-02 | 2016-03-02 | 鍵生成装置、計算機システム、および暗号統計処理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180048467A1 (ja) |
EP (1) | EP3425613A4 (ja) |
JP (1) | JPWO2017149686A1 (ja) |
WO (1) | WO2017149686A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10680810B2 (en) * | 2016-10-26 | 2020-06-09 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
US20200367834A1 (en) * | 2018-03-05 | 2020-11-26 | Omron Corporation | Device for predicting body weight of a person and device and method for health management |
CN116108494B (zh) * | 2023-04-12 | 2023-06-20 | 蓝象智联(杭州)科技有限公司 | 一种保护隐私的多方联合数据统计方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011232727A (ja) * | 2010-04-27 | 2011-11-17 | Fuji Xerox Co Ltd | 暗号化データ・セット保存および論理演算実行システム、暗号化データ保存および論理演算実行方法、暗号化データ保存および演算実行システム、暗号化データ・セット保存および論理演算実行プログラム |
JP2012165374A (ja) * | 2011-02-04 | 2012-08-30 | Palo Alto Research Center Inc | 時系列データのプライバシー保護アグリゲーション |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2355302T3 (es) * | 2007-04-25 | 2011-03-24 | Nec Europe Ltd. | Procedimiento para agregar datos en una red. |
WO2013069776A1 (ja) | 2011-11-11 | 2013-05-16 | 日本電気株式会社 | データベース暗号化システムと方法及びプログラム |
US20140101053A1 (en) * | 2012-10-04 | 2014-04-10 | Microsoft Corporation | Aggregation and Billing for Metering |
-
2016
- 2016-03-02 EP EP16889666.0A patent/EP3425613A4/en not_active Withdrawn
- 2016-03-02 WO PCT/JP2016/056322 patent/WO2017149686A1/ja active Application Filing
- 2016-03-02 US US15/544,937 patent/US20180048467A1/en not_active Abandoned
- 2016-03-02 JP JP2017530766A patent/JPWO2017149686A1/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011232727A (ja) * | 2010-04-27 | 2011-11-17 | Fuji Xerox Co Ltd | 暗号化データ・セット保存および論理演算実行システム、暗号化データ保存および論理演算実行方法、暗号化データ保存および演算実行システム、暗号化データ・セット保存および論理演算実行プログラム |
JP2012165374A (ja) * | 2011-02-04 | 2012-08-30 | Palo Alto Research Center Inc | 時系列データのプライバシー保護アグリゲーション |
Non-Patent Citations (1)
Title |
---|
CASTELLUCCIA, CLAUDE ET AL.: ""Efficient Aggregation of encrypted data in Wireless Sensor Networks"", THE SECOND ANNUAL INTERNATIONAL CONFERENCE ON MOBILE AND UBIQUITOUS SYSTEMS: NETWORKING AND SERVICES, JPN7018002712, 2005, pages 109 - 117, ISSN: 0003930434 * |
Also Published As
Publication number | Publication date |
---|---|
US20180048467A1 (en) | 2018-02-15 |
EP3425613A1 (en) | 2019-01-09 |
EP3425613A4 (en) | 2019-10-30 |
WO2017149686A1 (ja) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Qin et al. | A blockchain-based access control scheme with multiple attribute authorities for secure cloud data sharing | |
Tian et al. | Medical data management on blockchain with privacy | |
US11341269B2 (en) | Providing security against user collusion in data analytics using random group selection | |
JP6663809B2 (ja) | 監査装置、監査機能付匿名送金方法及びプログラム | |
US20180373882A1 (en) | Privacy preserving computation protocol for data analytics | |
Liu et al. | Mona: Secure multi-owner data sharing for dynamic groups in the cloud | |
US9252942B2 (en) | Method and system for secure multiparty cloud computation | |
US8516244B2 (en) | System, apparatus and method for decentralizing attribute-based encryption information | |
Gao et al. | Blockchain-based digital rights management scheme via multiauthority ciphertext-policy attribute-based encryption and proxy re-encryption | |
Fan et al. | TraceChain: A blockchain‐based scheme to protect data confidentiality and traceability | |
Yang et al. | An efficient identity-based provable data possession protocol with compressed cloud storage | |
Liang et al. | A ciphertext‐policy attribute‐based proxy re‐encryption scheme for data sharing in public clouds | |
Fugkeaw et al. | Secure and Lightweight Blockchain-Enabled Access Control for Fog-Assisted IoT Cloud Based Electronic Medical Records Sharing | |
WO2017149686A1 (ja) | 鍵生成装置、計算機システム、および暗号統計処理方法 | |
Chen et al. | A restricted proxy re‐encryption with keyword search for fine‐grained data access control in cloud storage | |
JP6400743B2 (ja) | 端末装置、データベースサーバおよび計算システム | |
Fugkeaw et al. | An efficient medical records access control with auditable outsourced encryption and decryption | |
Mosteiro-Sanchez et al. | End to end secure data exchange in value chains with dynamic policy updates | |
Peng et al. | A Secure Signcryption Scheme for Electronic Health Records Sharing in Blockchain. | |
Kibiwott et al. | Privacy Preservation for eHealth Big Data in Cloud Accessed Using Resource-Constrained Devices: Survey. | |
Pei et al. | Smart contract based multi-party computation with privacy preserving and settlement addressed | |
Ma et al. | SPMAC: Secure and privacy-preserving multi-authority access control for fog-enabled IoT cloud storage | |
Liu et al. | Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators | |
Vo-Huu et al. | EPiC: efficient privacy-preserving counting for MapReduce | |
JP6643756B2 (ja) | サーバ、サービス方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180821 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181003 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181204 |