JP7315032B2 - 暗号化データ分析装置、暗号化データ分析方法、プログラム - Google Patents

暗号化データ分析装置、暗号化データ分析方法、プログラム Download PDF

Info

Publication number
JP7315032B2
JP7315032B2 JP2021571075A JP2021571075A JP7315032B2 JP 7315032 B2 JP7315032 B2 JP 7315032B2 JP 2021571075 A JP2021571075 A JP 2021571075A JP 2021571075 A JP2021571075 A JP 2021571075A JP 7315032 B2 JP7315032 B2 JP 7315032B2
Authority
JP
Japan
Prior art keywords
encrypted data
user
flow
data analysis
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021571075A
Other languages
English (en)
Other versions
JPWO2021144840A1 (ja
Inventor
亮 菊池
元 高橋
浩気 濱田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021144840A1 publication Critical patent/JPWO2021144840A1/ja
Application granted granted Critical
Publication of JP7315032B2 publication Critical patent/JP7315032B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データを秘匿したまま分析する暗号化データ分析装置、暗号化データ分析方法、プログラムに関する。
「ある人が店舗や施設、駅などをどのように推移したか」を分析する動線分析は、店舗の配置の最適化や通路の必要性調査などに利用できる。動線分析の従来技術として、例えば非特許文献1などがある。
古崎晃司、横山輝明、深見嘉明、"GPS移動履歴の収集とオープンデータを用いた移動軌跡のLOD化-国際会議ISWC2016における実証実験を例として-"、情報処理学会デジタルプラクティスVol.9No.1(Jan.2018)
例えば店舗の来客データから動線データを作成しようとした場合、店舗の来客データをサーバに集める必要があるが、店舗の来客データは経営にかかわる情報であり店舗側が出しづらいという課題がある。また、動線分析を計算する主体と利用する主体が異なる場合、計算する主体にも動線分析結果が渡ってしまう。動線分析結果は個人のプライバシーにかかわる移動履歴であるため、計算する主体にも移動履歴が見えてしまうことは課題である。さらに、ある店舗からある店舗に移動した人が極端に少ない場合(例えば1人)、その移動をした個人を特定できてしまうリスクが高い。
そこで本発明では、暗号化データを秘匿したまま分析することができる暗号化データ分析装置を提供することを目的とする。
本発明の暗号化データ分析装置は、ソート部と、エンコード部と、等号判定部を含む。[x]はxの暗号化データを意味するものとする。
ソート部は、所定の場所に所定のユーザが所定の時刻に滞在したことを示す(場所ID,ユーザID,時刻情報)である分析対象データセットの各分析対象データをそれぞれ暗号化してなる([場所ID],[ユーザID],[時刻情報])である暗号化データセットを複数組含む暗号化データセット群を[時刻情報]でソートした後、[ユーザID]でソートする。エンコード部は、あらかじめ設定した場所の遷移回数をホップ数とし、[場所ID]をソートされた順序でホップ数ずつ切り出してエンコードして[フロー]を生成する。等号判定部は、隣り合う[ユーザID]同士が等しいか否かを判定し、等しくない場合に、対応する[フロー]を[無効を意味する所定値]に置き換える。
本発明の暗号化データ分析装置によれば、暗号化データを秘匿したまま分析することができる。
実施例1の暗号化データ分析装置の構成を示すブロック図。 実施例1の暗号化データ分析装置の動作を示すフローチャート。 コンピュータの機能構成例を示す図。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
以下の実施例では秘密計算と呼ばれる、暗号化したまま計算ができる技術を用いて、例えば、店舗の来客データを暗号化したまま動線データを作成する装置、方法、プログラムを開示する。これにより、店舗の来客データは誰にも漏れることなく、必要な動線データを得ることができる。計算結果の動線データは暗号化されており、計算した主体も見ることはできない。また、個人を特定できてしまうリスクを低減するために、動線データのうち移動した人数が少ない部分を削除する方法もオプションとして開示する。
以下、図1を参照して実施例1の暗号化データ分析装置の構成を説明する。同図に示すように本実施例の暗号化データ分析装置1は、ソート部11と、エンコード部12と、等号判定部13と、重複フロー削除部14と、クロス集計部15と、統計開示制御部16を含む。
なお、所定の場所に所定のユーザが所定の時刻に滞在したことを示す(場所ID,ユーザID,時刻情報)を分析対象データセットと呼ぶ。分析対象データセット内の各分析対象データをそれぞれ暗号化して([場所ID],[ユーザID],[時刻情報])としたデータを暗号化データセットと呼ぶ。暗号化データ分析装置1には、暗号化データセットを複数組含む暗号化データセット群が入力される。なお、[x]はxの暗号化データを意味するものとする。
場所ID=店舗のIDとした暗号化データセット群の例を表1、表2に開示する。
Figure 0007315032000001
Figure 0007315032000002
表1、表2から、例えばユーザ0001は店舗A→Bに、ユーザ0003は店舗B→Aに移動しているなどの情報がわかる。以下の表3、表4に示す動線分析を行うことができる。場所(店舗)の遷移回数(ホップ数)ごとに別の表で示した。
Figure 0007315032000003
Figure 0007315032000004
<暗号化されたデータの動線分析>
動線分析は概略、以下の4ステップからなる。
(ステップ1)各場所の端末(上記の例では各店舗の端末)が分析対象データセット群を暗号化して暗号化データセット群を生成し、暗号化データ分析装置1に送信する。
(ステップ2)暗号化データ分析装置1は暗号化された暗号化データセット群から、暗号化された状態での動線分析結果である([フロー]、[カウント])を得る。
(ステップ3)暗号化データ分析装置1は、動線分析の結果を受け取る主体である各場所の端末(上記の例では各店舗の端末)に暗号化された動線分析結果([フロー]、[カウント])を送信する。
(ステップ4)各場所の端末(上記の例では各店舗の端末)は動線分析結果([フロー]、[カウント])を復号して動線分析結果(フロー、カウント)を得る。
ステップ1の暗号化は秘密分散でも良いし完全準同型暗号などでも良い。ただし、暗号化したまま順番を並び替える安定ソート、および、2つの値を比較した結果で処理を分岐させるIf-thenが計算可能とする。
以下では、暗号化データ分析装置1の主要な動作であるステップ2について詳細に説明する。ステップ2については、表1、表2に示したデータ例が入力された場合に、動線分析結果を1ホップで計算する例を説明する。
まず店舗Aと店舗Bが暗号化データセット群を暗号化データ分析装置1に送信する。暗号化データ分析装置1は、第三者機関であってもよいし、店舗A、店舗Bの何れかが暗号化データ分析装置1として機能してもよい。
暗号化データ分析装置1のソート部11は、暗号化データセット群を列結合して以下の結果を得る。
Figure 0007315032000005
ソート部11は、暗号化データセット群を[時刻情報]でソートした後、[ユーザID]でソートする(S11)。ソート結果を表6に示す。
Figure 0007315032000006
エンコード部12は、[場所ID]をソートされた順序でホップ数(この例では、1つ)ずつ切り出してエンコードして[フロー]を生成する(S12)。エンコード結果を表7に示す。
Figure 0007315032000007
次に、ユーザが変わる境界部分の[フロー]を削除(無効化)する。具体的には、等号判定部13は、隣り合う[ユーザID]同士が等しいか否かを判定し、等しくない場合に、対応する[フロー]を[無効を意味する所定値]=[NULL]に置き換える(S13)。該当の[フロー]をNULLに置き換えた結果を表8に示す。なお、[場所ID(店舗ID)]と、[時刻情報]の表記は割愛した。
Figure 0007315032000008
等号判定部13は、この結果を[フロー]でソートする(S13)。この時点で1hopsの経路は全て得られた。ソート結果を表9に示す。
Figure 0007315032000009
現状では、あるユーザが同じ経路を2回移動している場合2回カウントされている。アプリケーションによっては、実際に移動したユニークな人数が欲しい場合があるため、重複を削除するためのオプションを示す。具体的には、重複フロー削除部14は、隣り合う([フロー],[ユーザID])が等しい場合に、対応する[フロー]を[無効を意味する所定値]=[NULL]に置き換える(S14)。重複フロー削除(無効化)結果を表10に示す。
Figure 0007315032000010
重複フロー削除部14は、この結果を[フロー]でソートする(S14)。ソート結果を表11に示す。
Figure 0007315032000011
次に、オプションでクロス集計を行うことで、動線分析結果を得る。具体的には、クロス集計部15は、復号結果が同じになる[フロー]の個数を集計した結果である[カウント]を生成する(S15)。集計結果を表12に示す。
Figure 0007315032000012
最後に、オプションとして、個人が特定されるリスクを低減するために、Countの数が少ない場合にデータを削除(無効化)するといった方法が考えられる。また、集約後のデータを使ってさらに処理をしたい場合、レコード数を減らすようなオプションも考えられる。具体的には、統計開示制御部16は、[カウント]が所定の閾値以下、または所定の閾値未満となる場合に、対応する[フロー]を[無効を意味する所定値]=[NULL]に置き換え、対応する[カウント]を[0]に置き換える(S16)。閾値=2として、閾値=2以下の[フロー]を置き換えた場合の、置き換え結果を表13に示す。
Figure 0007315032000013
統計開示制御部16は、不要なレコードを削除する(S16)。レコード削除結果を表14に示す。
Figure 0007315032000014
<アルゴリズム>
以下、ステップS11~S16を実現するためのアルゴリズムについて解説し、各ステップについて補足説明する。
前述したように、xの暗号化データを[x]と書き、ベクトルをx→=(x1,...,xn)と書き、[x→]=([x1],...,[xn])とする。暗号化は秘密分散(例えば参考非特許文献1)や準同型暗号(例えば参考非特許文献2)など、暗号化したまま下記の演算が可能なものとする。
参考非特許文献1:D. Ikarashi, R. Kikuchi, K. Hamada, and K. Chida. Actively private and correct MPC scheme in t < n/2 from passively secure schemes with small overhead. IACR Cryptology ePrint Archive, 2014:304, 2014.
参考非特許文献2:Z. Brakerski, C. Gentry, and V. Vaikuntanathan. Fully homomorphic encryption without bootstrapping. Electronic Colloquium on Computational Complexity (ECCC), 18:111, 2011.
[加減算、定数倍]
秘密分散と準同型暗号は自然にサポートしている。c[a]±[b]±d=[ca±b±d]などとかく。
[乗算]
秘密分散であれば参考非特許文献1にある方法で、準同型暗号であれば準同型演算で計算可能である。これを[c]←Mult([a],[b])(ただしc=ab)とかく。
[安定ソート]
入力[x→]=([x1],...,[xn])を、i∈{1,...,n-1}についてx'i≦x'i+1であるような[x'→]=([x'1],...,[x'n])に並び替える動作。ただしx'i=x'i+1であるとき元々のx→の並び順が優先されるものとする。より具体的には以下に示す2つのアルゴリズム(GenPerm,Sort)からなる。
・[π]←GenPerm([x→]):x→を並び替える置換πを暗号化したものを出力する。
・[x→]'←Sort([π],[x→]):πをx→に適用し並び替えたものx→'を暗号化したまま計算する。
簡単のため、複数のベクトルを同じ置換でソートする際には([x→]',[y→'])←Sort([π],([x→],[y→]))などと書く。自明な構成方法はソーティングネットワークである。また秘密分散であれば参考非特許文献3など効率化されたものがある。
参考非特許文献3:K. Chida, K. Hamada, D. Ikarashi, R. Kikuchi, N. Kiribuchi, and B. Pinkas. An effcient secure three-party sorting protocol with an honest majority. IACR Cryptology ePrint Archive, 2019:695, 2019.
[等号判定]
[x],[y]を入力として,x=yならば1,x≠yならば0となるような[e]を出力するもの。
Figure 0007315032000015
とかく。また、複数の要素の等号判定を行う場合、下記のようにも書く。
Figure 0007315032000016
一般にビット表現でデータが暗号化されているならば、[x-y]の各ビットが0かどうかを回路計算すればよく、回路計算は加減算と乗算で計算可能である。整数表現で暗号化されている場合であれば、ビット分解(参考非特許文献4)を用いてビット表現に変更して同様に回路を計算すればよい。他にもmod p上で暗号化されているのであれば、[(x-y)p-1]を乗算を使って計算しても良い。
参考非特許文献4:R. Kikuchi, D. Ikarashi, T. Matsuda, K. Hamada, and K. Chida. Efficient bit-decomposition and modulus-conversion protocols with an honest majority. In ACISP 2018, pages 64-82, 2018.
[比較]
[x], yを入力として、x≦yならば1,そうでなければ0となるような[e]を出力するもの。
Figure 0007315032000017
一般にビット表現でデータが暗号化されているならば比較回路を計算すればよい。整数表現で暗号化されている場合であればビット分解(参考非特許文献4)を用いてビット表現に変更して同様に回路を計算すればよい。他にもmod p上で暗号化されているのであれば(参考非特許文献5)などを用いても良い。
参考非特許文献5:T. Nishide and K. Ohta. Multiparty computation for interval, equality, and comparison without bit-decomposition protocol. In Public Key Cryptography, pages 343-360, 2007.
[集約関数(カウント)]
クロス集計。[x→]を入力として、([x→'i],[c→i])を出力する。ただしxiが取る値のパターンをmとしたとき、
Figure 0007315032000018
であり、ci=|{x'j|x'i=x'j,1≦j≦n}| for 1≦i≦mかつci=0 for m+1≦i≦nである。([x→],[c→])←GroupBy.count([x→])
とかく。実現方法は、各xiに対し、xiの取りうる値と比較を行い、その結果を加算するといった方法がある。
また、もし集約関数の結果を公開する場合であれば、単に[x]を復号するだけでも良い。
[If-then]
フラグ[z]、ただしz∈{0,1}、と[x],[y]を入力として、z=1ならば[x]をz=0ならば[y]を出力する方法。
Figure 0007315032000019
と書く。Mult([z],[x])+Mult([1-f],[y])などで実現できる。
[入力]
暗号化データ分析装置1の動作をアルゴリズムで表現するため、暗号化データ分析装置1への入力を表15に示すように定義し、暗号化データ分析装置1からの出力を表16のように定義する。特に列を[s→]などとも書く。
Figure 0007315032000020
Figure 0007315032000021
[具体的なアルゴリズム]
NULLはあらかじめ決められた特別な数とする。例えば-1など。Encodeは秘匿された入力が異なれば、出力が高い確率で異なるようなものであればよい。秘密計算で効率的に計算できるものが望ましく、例えば店舗IDがhビットであり、[s'i],[s'i-1],...,[s'i-n]をEncodeするとき、
Figure 0007315032000022
などで良いし、シェアのサイズが大きければ確率的で良い場合には、
Figure 0007315032000023
(ただしρiは乱数)暗号化されたままハッシュ関数を計算しても良い。
DelMultUsersは同じ経路を同じユーザが複数移動していた場合にそれを1回とカウントするようにデータを加工する処理であり、具体的には後述するAlgorithm2である。SDCには、度数が一定数の閾値k以下の場合に削除を行う処理であり、具体的には後述するAlgorithm3である。また、DelRecordは、NULLのレコードを削除する処理であり、具体的には後述するAlgorithm4である。
[Algorithm1]
Input:([s→],[u→],[t→]).
Inputは、暗号化データ分析装置1への入力を示す。
Output:([f→],[c→]).
Outputは、暗号化データ分析装置1からの出力を示す。
1:[π]←GenPerm([t→]).
2:([s→'],[u→'],[t→'])←Sort([π],([s→],[u→],[t→])).
1、2行目は、ソート部11の動作(S11)のうち、暗号化データセット群を[時刻情報]でソートする動作である。
3:[π']←GenPerm([u→']).
4:([s→''],[u→''],[t→''])←Sort([π'],([s→'],[u→'],[t→'])).
3、4行目は、ソート部11の動作(S11)のうち、暗号化データセット群を[ユーザID]でソートする動作である。
5:for i=n+1 to m in parallel do
6:[fi]:=Encode([s''i],[s''i-1],...,[s''i-n])
5行目は、繰り返し演算について記述した行である。6行目は、エンコード部12の動作(S12)を表す。
7:[ei]←Eq([u''i],[u''i-n])
8:[f'i]←Ifthen([ei]?[fi],[null])
9:[f→']:=([f'n],[f'n+1],...,[f'm])
7~9行目は、等号判定部13の動作(S13)のうち、対応する[フロー]を[無効を意味する所定値]=[NULL]に置き換える動作を示す。
10:[π'']←GenPerm([f→']).
11:([f→''],[u→'''])←Sort([π''],([f→'],[u→''])).
10、11行目は、等号判定部13の動作(S13)のうち[フロー]でソートする動作を示す。
12:[f→''']←DelMultUsers([f→''],[u→'''])
12行目は、重複フロー削除部14の動作(S14)を示す。DelMultUsersについては、Algorithm2に記載する。
13:([f→''''],[c→])←GroupBy.count([f→'''])
13行目は、クロス集計部15の動作(S15)を示す。
14:([f→'''''],[c→'])←SDC(k,[f→''''],[c→])
14行目は、統計開示制御部16の動作(S16)のうち、[カウント]が所定の閾値k以下となる場合に、対応する[フロー]を[無効を意味する所定値]=[NULL]に置き換え、対応する[カウント]を[0]に置き換える動作を示す。SDCについては、Algorithm3に記載する。
15:([f→''''''],[c→''])←DelRecord([f→'''''],[c→'])
15行目は、統計開示制御部16の動作(S16)のうち、不要なレコードを削除する動作を示す。DelRecordについては、Algorithm4に記載する。
16:Output([f→''''''],[c→''])
16行目は、暗号化データ分析装置1の([フロー],[カウント])出力動作を示す。
[Algorithm2]
Input:Two share vectors ([f→],[u→]) of length m
ステップS14の比較を行うために、二つの([f→],[u→])を入力することを示している。
Output:[f→'],where f'i=NULL if fi=fi-1 and ui=ui-1.
ステップS14で、隣り合う([フロー],[ユーザID])が等しい場合に、対応する[フロー]を[無効を意味する所定値]=[NULL]に置き換えて出力することを示している。
1:for i=2 to m in parallel do
1行目は、繰り返し演算について記述した行である。
2:[gi]←Eq(([fi],[ui]),([fi-1],[ui-1]))
2行目は、隣り合う([フロー],[ユーザID])が等しいか否かを判定する動作を示す。
3:[f'i]←Ifthen([gi]?[NULL]:[fi])
3行目は、該当の[フロー]を[無効を意味する所定値]=[NULL]に置き換える動作を示す。
4:[π]←GenPerm([f'i])
5:[f''i]←Sort([π],[f'i])
4、5行目は、重複フロー削除部14の動作(S14)のうち、[フロー]でソートする動作を示す。
6:Output[f→'']
6行目は、[フロー]出力動作を示す。
[Algorithm3]
Input:Two share vectors ([f→],[c→]) of length m and threshold k
不要なレコードを削除するために、([フロー],[カウント])および閾値kを入力とすることを意味する。
Output:([f→'],[c→']),where c'i=0 and f'i=NULL if ci≦k
カウントが、閾値k以下である場合に、カウントを0に置き換えて、フローをNULLに置き換えて、([フロー],[カウント])を出力することを意味する。
1:for i=i to m in parallel do
1行目は、繰り返し演算について記述した行である。
2:[ei]←Compare([ci],k)
2行目は、[カウント]と閾値kの比較動作を示す。
3:([f→'],[c→'])←Ifthen([ei]?([fi],ci),([NULL],[0]))
3行目は、比較結果[ei]に基づいて、もとの([フロー],[カウント])のままとするか、([NULL],[0])とするかの何れかの動作を実行することを示す。
4:Output([f→'],[c→'])
4行目は、([フロー],[カウント])の出力動作を示す。
[Algorithm4]
Input:Two share vectors ([f→],[c→]) of length m, which includes t records whose fi=NULL.
フローがNULLとなっているt個のレコードを含むm個の([フロー],[カウント])を入力することを示す。
Output:Two share vectors ([f→'],[c→']) of length m-t, where the t records are deleted.
上述のt個のレコードを削除して、残りのm-t個の([フロー],[カウント])を出力することを示している。
1:for i=i to m in parallel do
1行目は、繰り返し演算について記述した行である。
2:[ei]←Eq([fi],[NULL])//can be replaced with [ei]←Eq([ci],[0])
2行目は、[フロー]が[NULL]と等しいかの判断動作を示す。2行目は、[カウント]が[0]と等しいかの判断動作に置き換えてもよいことが示されている。
3:[t]:=Σm i=1[ei]
3行目は、[フロー]が[NULL]と等しいレコード数の数え上げ動作を意味する。
4:Reveal t
4行目は、[t]を復号する動作を意味する。
5:Delete last t records of([f→],[c→])
5行目は、t個のレコードを削除する動作を意味する。
<実施例1の暗号化データ分析装置1がもたらす効果>
実施例1の暗号化データ分析装置1によれば、各店舗・施設・場所のデータを暗号化したまま動線分析を行うことができる。また、一定数以下の人数しか移動していない部分を削除することで個人特定のリスクを低減することもできる。
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
上述の各種の処理は、図3に示すコンピュータの記録部10020に、上記方法の各ステップを実行させるプログラムを読み込ませ、制御部10010、入力部10030、出力部10040などに動作させることで実施できる。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electrically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (8)

  1. [x]はxの暗号化データを意味するものとし、所定の場所に所定のユーザが所定の時刻に滞在したことを示す(場所ID,ユーザID,時刻情報)である分析対象データセットの各分析対象データをそれぞれ暗号化してなる([場所ID],[ユーザID],[時刻情報])である暗号化データセットを複数組含む暗号化データセット群を前記[時刻情報]で安定ソートした後、前記[ユーザID]で安定ソートするソート部と、
    あらかじめ設定した場所の遷移回数をホップ数とし、フローをユーザの動線分析結果とし、前記[場所ID]を安定ソートされた順序でホップ数に基づいて取り出してエンコードして[フロー]を生成するエンコード部と、
    所定の[ユーザID]と所定の[ユーザID]よりもホップ数前の[ユーザID]とが等しいか否かを判定し、等しくない場合に、所定の[ユーザID]に対応する[フロー]を[無効を意味する所定値]に置き換える等号判定部を含む
    暗号化データ分析装置。
  2. 請求項1に記載の暗号化データ分析装置であって、
    隣り合う([フロー],[ユーザID])が等しい場合に、対応する[フロー]を[無効を意味する所定値]に置き換える重複フロー削除部を含む
    暗号化データ分析装置。
  3. 請求項1または2に記載の暗号化データ分析装置であって、
    復号結果が同じになる[フロー]の個数を集計した結果である[カウント]を生成するクロス集計部を含む
    暗号化データ分析装置。
  4. 請求項3に記載の暗号化データ分析装置であって、
    前記[カウント]が所定の閾値以下、または所定の閾値未満となる場合に、対応する[フロー]を[無効を意味する所定値]に置き換え、対応する[カウント]を[0]に置き換える統計開示制御部を含む
    暗号化データ分析装置。
  5. 暗号化データ分析装置が実行する暗号化データ分析方法であって、
    [x]はxの暗号化データを意味するものとし、所定の場所に所定のユーザが所定の時刻に滞在したことを示す(場所ID,ユーザID,時刻情報)である分析対象データセットの各分析対象データをそれぞれ暗号化してなる([場所ID],[ユーザID],[時刻情報])である暗号化データセットを複数組含む暗号化データセット群を前記[時刻情報]で安定ソートした後、前記[ユーザID]で安定ソートするソートステップと、
    あらかじめ設定した場所の遷移回数をホップ数とし、フローをユーザの動線分析結果とし、前記[場所ID]を安定ソートされた順序でホップ数に基づいて取り出してエンコードして[フロー]を生成するエンコードステップと、
    所定の[ユーザID]と所定の[ユーザID]よりもホップ数前の[ユーザID]とが等しいか否かを判定し、等しくない場合に、所定の[ユーザID]に対応する[フロー]を[無効を意味する所定値]に置き換える等号判定ステップを含む
    暗号化データ分析方法。
  6. 請求項5に記載の暗号化データ分析方法であって、
    隣り合う([フロー],[ユーザID])が等しい場合に、対応する[フロー]を[無効を意味する所定値]に置き換える重複フロー削除ステップを含む
    暗号化データ分析方法。
  7. 請求項5または6に記載の暗号化データ分析方法であって、
    復号結果が同じになる[フロー]の個数を集計した結果である[カウント]を生成するクロス集計ステップを含む
    暗号化データ分析方法。
  8. コンピュータを請求項1から4に記載の暗号化データ分析装置として機能させるプログラム。
JP2021571075A 2020-01-14 2020-01-14 暗号化データ分析装置、暗号化データ分析方法、プログラム Active JP7315032B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/000861 WO2021144840A1 (ja) 2020-01-14 2020-01-14 暗号化データ分析装置、暗号化データ分析方法、プログラム

Publications (2)

Publication Number Publication Date
JPWO2021144840A1 JPWO2021144840A1 (ja) 2021-07-22
JP7315032B2 true JP7315032B2 (ja) 2023-07-26

Family

ID=76863964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021571075A Active JP7315032B2 (ja) 2020-01-14 2020-01-14 暗号化データ分析装置、暗号化データ分析方法、プログラム

Country Status (3)

Country Link
US (1) US20230090900A1 (ja)
JP (1) JP7315032B2 (ja)
WO (1) WO2021144840A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2023062834A1 (ja) * 2021-10-15 2023-04-20
CN114840568B (zh) * 2022-07-04 2022-09-20 华控清交信息科技(北京)有限公司 一种密文排序方法、装置和用于密文排序的装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107951A1 (ja) 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム
JP2019158608A (ja) 2018-03-13 2019-09-19 富士通株式会社 位置推定装置、位置推定プログラム、および位置推定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015107951A1 (ja) 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム
JP2019158608A (ja) 2018-03-13 2019-09-19 富士通株式会社 位置推定装置、位置推定プログラム、および位置推定方法

Also Published As

Publication number Publication date
WO2021144840A1 (ja) 2021-07-22
JPWO2021144840A1 (ja) 2021-07-22
US20230090900A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
JP7315032B2 (ja) 暗号化データ分析装置、暗号化データ分析方法、プログラム
CN111026788A (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
WO2019225401A1 (ja) 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム
JP7067632B2 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
JP6605746B2 (ja) 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
Riazi et al. MPCircuits: Optimized circuit generation for secure multi-party computation
JP2023512725A (ja) パターンの安全な照合および識別
Abadi et al. Feather: Lightweight multi-party updatable delegated private set intersection
Akavia et al. Secure search on encrypted data via multi-ring sketch
Mahdi et al. Secure similar patients query on encrypted genomic data
EP4016506B1 (en) Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program
JP5758315B2 (ja) 匿名データ提供システム、匿名データ装置、及びそれらが実行する方法
Wang et al. Guessing probability in quantum key distribution
JP6973634B2 (ja) 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
Kitai et al. MOBIUS: model-oblivious binarized neural networks
Xu et al. Toward practical privacy-preserving linear regression
US20230155815A1 (en) Secure integer comparison using binary trees
US11494510B2 (en) Multi-touch attribution and control group creation using private commutative encrypted match service
JP2012154990A (ja) 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム
JP2020519968A (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
CN115150055B (zh) 一种基于同态加密的隐私保护岭回归方法
Saha et al. Outsourcing private equality tests to the cloud
WO2023281694A1 (ja) 秘密計算システム、装置、方法及びプログラム
WO2023233516A1 (ja) 秘密計算装置、秘密計算方法、プログラム
WO2023157118A1 (ja) 秘密計算装置、秘密計算方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230530

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230626

R150 Certificate of patent or registration of utility model

Ref document number: 7315032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150