JP2021039143A - 秘匿情報処理システム及び秘匿情報処理方法 - Google Patents

秘匿情報処理システム及び秘匿情報処理方法 Download PDF

Info

Publication number
JP2021039143A
JP2021039143A JP2019158347A JP2019158347A JP2021039143A JP 2021039143 A JP2021039143 A JP 2021039143A JP 2019158347 A JP2019158347 A JP 2019158347A JP 2019158347 A JP2019158347 A JP 2019158347A JP 2021039143 A JP2021039143 A JP 2021039143A
Authority
JP
Japan
Prior art keywords
processing
data
secret
encrypted
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.)
Granted
Application number
JP2019158347A
Other languages
English (en)
Other versions
JP7249248B2 (ja
Inventor
啓成 藤原
Hiroshige Fujiwara
啓成 藤原
尚宜 佐藤
Hisanobu Sato
尚宜 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019158347A priority Critical patent/JP7249248B2/ja
Priority to EP20193317.3A priority patent/EP3786828A1/en
Priority to US17/006,017 priority patent/US11475121B2/en
Publication of JP2021039143A publication Critical patent/JP2021039143A/ja
Application granted granted Critical
Publication of JP7249248B2 publication Critical patent/JP7249248B2/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

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

Abstract

【課題】個人情報等の機密情報を秘匿したまま、多様なデータを統計解析や機械学習によって分析する処理を実行し、さらに利用者に対する処理結果の応答時間を短縮する。【解決手段】秘匿情報処理サーバ30において、処理クエリ実行部303が処理要求を受信すると、TEE信頼領域処理部304が、処理要求とTEE信頼領域のみで利用可能な暗号鍵とに基づいて、処理要求における処理対象の条件に合致するデータの抽出を秘匿抽出によって行う秘匿抽出クエリを生成し、秘匿抽出処理部305が、秘匿抽出クエリの実行を指示することによって、暗号化DB部307から暗号化したまま処理対象の暗号化データを抽出し、TEE信頼領域処理部304が、秘匿抽出処理部305が抽出した処理対象の暗号化データを暗号鍵で復号して、処理要求が要求するデータ処理を実行し、処理クエリ実行部303が、データ処理の実行結果を処理要求の送信元に返信する。【選択図】図18

Description

本発明は、秘匿情報処理システム及び秘匿情報処理方法に関し、個人情報等の機密情報を秘匿したまま処理し利活用する秘匿情報処理システム及び秘匿情報処理方法に適用して好適なものである。
2016年12月に、多様な主体による個人に関する官民データの適正な活用を促進する官民データ活用推進基本法が公布・施行され、2018年12月には情報銀行の認定申請の受付が開始される等、官民が連携した個人データ活用スキームが進展している。さらに、総務省は、2019年3月には情報銀行の初号認定が出る見通しを明らかにしている。
こうした背景のもと、救急と警備会社等の官民が情報連携した公共サービスや、公共サービスとの相乗効果を生む製薬、保険、交通、及び情報銀行等の民間サービスの連携等、多様な情報を連携した新たな価値の創出が促進されている。多様なデータを分析して新たな価値を創出するには、回帰分析等の統計解析や機械学習等の分析処理が有効とされる。さらに、これらのサービスを実現するためには、病院や情報銀行といったデータホルダが所有する個人情報等の機密情報を、個人のプライバシーを保護したまま、公共サービスや民間サービスの提供者が分析し活用することを可能とする秘匿情報処理技術が求められる。
従来の秘匿情報処理技術では、データを暗号化したまま一定の処理を可能とすることで、個人情報等の機密情報の秘匿化を実現していた。しかし、従来の秘匿情報処理技術では、実行可能な処理は検索や順序比較等の基本的な演算に限定されており、処理の自由度に限界があった。また、処理の自由度に制限がない準同型暗号等の暗号技術は、実用的な処理速度では実現できない。このため、処理の高い自由度が必要とされる高度な統計処理や機械学習に対応する秘匿情報処理が課題となっている。
ここで、情報を暗号化したままでは実行できない処理に対する工夫として、例えば特許文献1が挙げられる。特許文献1には、クラウドサービスが、暗号化された機密データの処理を、信頼されているユーザデバイスに委任することを可能とするシステムが開示されている。
特表2018−515836号公報
しかし、上述した特許文献1に開示されたシステムでは、クラウドサービスが暗号化された機密データをユーザデバイスに送信して処理させるため、データ送信のオーバヘッドによって処理時間が長くなってしまうという問題があった。また、多様なデータを組み合わせて分析する処理において、特定のユーザデバイスに他ユーザのデータを含む多様なデータを送信し分析させることは、処理能力、機密情報の秘匿、及びプライバシー保護の観点から適切ではないという問題もあった。
ところで近年、主要なCPU(Central Processing Unit)にはTEE(Trusted Execution Environment)機能が標準搭載されつつあり、このTEE機能は秘匿情報の処理に有効であると考えられる。TEE機能は、クラウド上のサーバ内に、サーバの管理者権限を奪われても情報を読み取られないハードウェア的な信頼領域を提供する機能であり、その信頼領域内でのみ暗号化データを復号して処理することで、安全に高度な処理が可能となる。但し、TEE機能の実装においては、信頼領域で取り扱えるデータ量がサーバのメモリ量よりも小さく限られるため、多様なデータをすべて復号化して処理することは難しいという問題があった。
本発明は以上の点を考慮してなされたもので、利用者に対する処理結果の応答時間の増加を抑制しながらも、個人情報等の機密情報を秘匿したまま、多様なデータを統計処理や機械学習によって分析する処理を実行可能な秘匿情報処理システム及び秘匿情報処理方法を提案しようとするものである。
かかる課題を解決するため本発明においては、機密情報を含むデータを所有するデータホルダ端末から秘匿情報処理サーバに提供される前記データの暗号化データに対してデータ処理を行う以下の秘匿情報処理システムが提供される。この秘匿情報処理システムにおいて、前記秘匿情報処理サーバは、前記暗号化データに対する処理要求を受信する処理要求実行部と、前記暗号化データを暗号化したまま所定条件に合致するデータを抽出する秘匿抽出の実行を指示する秘匿抽出処理部と、安全な信頼領域において当該信頼領域のみで利用可能な暗号鍵を用いて前記暗号化データを復号し処理する信頼領域処理部と、前記秘匿抽出を実行可能な秘匿抽出可能暗号で暗号化された前記暗号化データを格納する暗号化データ保持部と、を備える。そして、前記処理要求実行部が前記処理要求を受信すると、前記信頼領域処理部が、前記処理要求及び前記暗号鍵に基づいて、前記処理要求における処理対象の条件に合致するデータの抽出を前記秘匿抽出によって行う秘匿抽出クエリを生成し、前記秘匿抽出処理部が、前記生成された前記秘匿抽出クエリの実行を指示することによって、前記暗号化データ保持部から暗号化したまま前記処理対象の暗号化データを抽出し、前記信頼領域処理部が、前記秘匿抽出処理部が抽出した前記処理対象の暗号化データを前記暗号鍵で復号して、前記処理要求が要求するデータ処理を実行し、前記処理要求実行部が、前記データ処理の実行結果を前記処理要求の送信元に返信する。
また、かかる課題を解決するため本発明においては、機密情報を含むデータを所有するデータホルダ端末から秘匿情報処理サーバに提供される前記データの暗号化データに対してデータ処理を行う以下の秘匿情報処理方法が提供される。ここで、前記秘匿情報処理サーバは、前記暗号化データに対する処理要求を受信する処理要求実行部と、前記暗号化データを暗号化したまま所定条件に合致するデータを抽出する秘匿抽出の実行を指示する秘匿抽出処理部と、安全な信頼領域において当該信頼領域のみで利用可能な暗号鍵を用いて前記暗号化データを復号し処理する信頼領域処理部と、前記秘匿抽出を実行可能な秘匿抽出可能暗号で暗号化された前記暗号化データを格納する暗号化データ保持部と、を有する。そしてこの秘匿情報処理方法は、前記処理要求実行部が前記処理要求を受信する処理要求受信ステップと、前記信頼領域処理部が前記処理要求受信ステップで受信した前記処理要求及び前記暗号鍵に基づいて、前記処理要求における処理対象の条件に合致するデータの抽出を前記秘匿抽出によって行う秘匿抽出クエリを生成する秘匿抽出クエリ生成ステップと、前記秘匿抽出処理部が前記秘匿抽出クエリ生成ステップで生成された前記秘匿抽出クエリの実行を指示することによって、前記暗号化データ保持部から暗号化したまま前記処理対象の暗号化データを抽出する秘匿データ抽出ステップと、前記信頼領域処理部が前記秘匿データ抽出ステップで抽出された前記処理対象の暗号化データを前記暗号鍵で復号して、前記処理要求が要求するデータ処理を実行する信頼領域内部データ処理ステップと、前記処理要求実行部が前記信頼領域内部データ処理ステップの実行結果を前記処理要求の送信元に返信する処理要求応答ステップと、を備える。
本発明によれば、個人情報等の機密情報を秘匿したまま、多様なデータを統計解析や機械学習によって分析する処理を実行することができ、さらに、利用者に対する処理結果の応答時間を短縮することができる。
本発明の一実施形態に係る秘匿情報処理システムのシステム構成例を示すブロック図である。 図1に示した秘匿情報処理システムのハードウェア構成例を示すブロック図である。 図1に示したデータホルダ端末の機能構成を示すブロック図である。 図1に示した処理結果利用者端末の機能構成を示すブロック図である。 図1に示した秘匿情報処理サーバの機能構成を示すブロック図である。 図5に示したTEE信頼領域処理部の詳細な機能構成を示すブロック図である。 図5に示した暗号化DB部の詳細な機能構成を示すブロック図である。 データ鍵登録処理の処理手順を示すシーケンス図である。 暗号化鍵管理テーブルの一例である。 鍵暗号化鍵変更処理の処理手順を示すフローチャートである。 鍵管理テーブルの一例である。 処理鍵登録処理の処理手順を示すシーケンス図である。 データ登録処理の処理手順を示すシーケンス図である。 データ登録処理に用いられるデータの一例である。 データ登録処理でデータホルダ端末側に登録される暗号化データの一例である。 データ登録処理で秘匿情報処理サーバ側に登録される暗号化データ(暗号化患者データテーブル)の一例である。 データ変換処理の処理手順を示すフローチャートである。 秘匿データ処理の処理手順を示すシーケンス図である。 処理クエリ生成画面の一例である。 処理クエリの一例である。 暗号化処理クエリの一例である。 秘匿抽出クエリの一例である。 秘匿抽出データの一例である。 データ処理によって得られる処理結果の一例である。 TEE内部データ処理によって得られる暗号化処理結果の一例である。 処理結果表示画面の一例である。 秘匿抽出クエリ生成処理の処理手順を示すフローチャートである。 データ抽出クエリの一例である。 TEE内部データ処理の処理手順を示すフローチャートである。 秘匿抽出データを復号した抽出データの一例である。 データ処理の処理手順を示すフローチャートである。
以下、図面を参照して、本発明の一実施形態を詳述する。
(1)秘匿情報処理システムの構成
図1は、本発明の一実施形態に係る秘匿情報処理システムのシステム構成例を示すブロック図である。
本実施形態に係る秘匿情報処理システム1は、個人情報等の機密情報を保持するデータホルダから暗号化したデータを預託され、そのデータを秘匿化したまま処理結果利用者の処理要求に応じて処理し、その処理結果を処理結果利用者に提供するためのシステムである。
図1に示したように、秘匿情報処理システム1は、データホルダがデータを暗号化し預託するために用いるデータホルダ端末10、処理結果利用者が処理要求を生成して送信し、処理結果を参照する処理結果利用者端末20、データホルダから預託されたデータに対し処理結果利用者から受信した処理要求の処理を秘匿化したまま実行し処理結果を送信する秘匿情報処理サーバ30、及びこれらを接続するネットワーク40から構成される。なお、図1に示したように、本実施形態に係る秘匿情報処理システム1では、複数のデータホルダ端末10及び複数の処理結果利用者端末20を接続可能とする。
図2は、図1に示した秘匿情報処理システムのハードウェア構成例を示すブロック図である。
データホルダ端末10は、パーソナルコンピュータ、スマートフォン、サーバ装置等の情報処理装置または仮想マシンであり、例えば図2に示したように、CPU11、メモリ12、ディスク13、ネットワークインタフェース14、表示装置15、及び入力装置16を備え、これらが内部通信線17で互いに接続される。
処理結果利用者端末20は、データホルダ端末10と同様、パーソナルコンピュータ、スマートフォン、サーバ装置等の情報処理装置または仮想マシンであり、例えば図2に示したように、CPU21、メモリ22、ディスク23、ネットワークインタフェース24、表示装置25、及び入力装置26を備え、これらが内部通信線27で互いに接続される。
秘匿情報処理サーバ30は、パーソナルコンピュータ、スマートフォン、サーバ装置等の情報処理装置または仮想マシンであり、例えば図2に示したように、CPU31、メモリ32、ディスク33、ネットワークインタフェース34、表示装置35、及び入力装置36を備え、これらが内部通信線37で互いに接続される。なお、秘匿情報処理サーバ30において、CPU31は、TEE機能を有するTEE対応のCPUであり、メモリ32は、TEE対応のCPUがメモリ上に確保するハードウェア的な信頼領域であるTEE信頼領域38を有する。
ネットワーク40は、有線通信または無線通信によるインターネット、社内ネットワーク、または衛星回線等の通信ネットワーク全般に相当する。
図3は、図1に示したデータホルダ端末の機能構成を示すブロック図である。
図3に示したように、データホルダ端末10は、秘匿情報処理サーバ30にデータ鍵112を暗号化して登録するデータ鍵登録部101と、秘匿情報処理サーバ30に個人情報等の機密情報を暗号化して登録するデータ登録部102と、データホルダが登録したデータ111の利活用状況を閲覧するための機能を提供する登録データ状況閲覧部103と、データ111をAES(Advanced Encryption Standard)等の基本的な暗号化技術によって暗号化する暗号化部104と、データ(暗号化データ114)を暗号化したまま検索できるようにする「検索可能暗号化」を行う検索可能暗号化部105と、データ(暗号化データ114)を暗号化したまま順序比較できるようにする「順序比較可能暗号化」を行う順序比較可能暗号化部106とを備える。これらの各機能部101〜106は、CPU11がメモリ12に記憶されている所定のプログラムを読み出して実行することによって実現される。また、上記の検索可能暗号化及び順序比較可能暗号化は、データを暗号化したまま(秘匿したまま)、所定条件を満たす情報を抽出する処理(一致比較(検索)や順序比較等)を実行できる暗号化であり、以降ではこのような暗号化を「秘匿抽出可能暗号化」と総称することがある。
また、図3に示したように、データホルダ端末10は、個人情報等の機密情報であるデータ111と、データ111の暗号化に使用するデータ鍵112と、データ鍵112を秘匿情報処理サーバ30のTEE信頼領域38に送り込むために暗号化する際に使用するTEE公開鍵113と、秘匿情報処理サーバ30に預託するデータ111を暗号化した暗号化データ114と、秘匿情報処理サーバ30のTEE信頼領域38に預託するデータ鍵112を暗号化した暗号化データ鍵115とを有する。これらのデータは、上述したデータホルダ端末10の各機能部101〜106による処理(プログラムの実行)に必要なデータや当該処理によって生成されるデータであり、メモリ12またはディスク13に記憶される。なお、秘匿情報処理システム1においてデータホルダ端末10は複数であってもよく(図1参照)、複数の場合、各データホルダ端末10は、同一のデータ鍵112を利用してもよいし、それぞれ異なるデータ鍵112を利用してもよい。
図4は、図1に示した処理結果利用者端末の機能構成を示すブロック図である。
図4に示したように、処理結果利用者端末20は、秘匿情報処理サーバ30に処理鍵211を暗号化して登録する処理鍵登録部201と、秘匿情報処理サーバ30に送信する処理要求を生成する処理クエリ生成部202と、秘匿情報処理サーバ30に処理クエリを暗号化して登録する処理クエリ登録部203と、処理結果利用者に対して秘匿情報処理サーバ30から受領した処理結果を画面表示する処理結果表示部204と、秘匿情報処理サーバ30に送信する処理要求等を暗号化する暗号化部205と、秘匿情報処理サーバ30から受信する暗号化された処理結果等を復号する復号部206と、を備える。これらの各機能部201〜206は、CPU21がメモリ22に記憶されている所定のプログラムを読み出して実行することによって実現される。
また、図4に示したように、処理結果利用者端末20は、処理要求の暗号化及び暗号化された処理結果の復号に用いる処理鍵211と、処理鍵211を秘匿情報処理サーバ30のTEE信頼領域38に送り込むために暗号化する際に使用するTEE公開鍵212と、処理結果利用者が要求する処理対象データ及び処理内容を示す処理クエリ213と、処理鍵211がTEE公開鍵212を用いて暗号化された処理鍵である暗号化処理鍵214と、処理クエリ213が処理鍵211を用いて暗号化された処理クエリである暗号化処理クエリ215と、秘匿情報処理サーバ30から受信した暗号化された処理結果を処理鍵211を用いて複合した処理結果216と、を有する。これらのデータは、上述した処理結果利用者端末20の各機能部201〜206による処理(プログラムの実行)に必要なデータや当該処理によって生成されるデータであり、メモリ22またはディスク23に記憶される。なお、秘匿情報処理システム1において処理結果利用者端末20は複数であってもよく(図1参照)、複数の場合、各処理結果利用者端末20は、同一の処理鍵211を利用してもよいし、それぞれ異なる処理鍵211を利用してもよい。
図5は、図1に示した秘匿情報処理サーバの機能構成を示すブロック図である。
図5に示したように、秘匿情報処理サーバ30は、データホルダ端末10から受信した暗号化データ鍵115または処理結果利用者端末20から受信する暗号化処理鍵214をTEE信頼領域処理部304の処理を介して暗号化鍵管理テーブル316に登録する鍵登録実行部301と、データホルダ端末10から受信する暗号化データ114をTEE信頼領域処理部304の処理を介して暗号化DB部307に登録するデータ登録実行部302と、処理結果利用者端末20から受信する暗号化処理クエリ215をTEE信頼領域処理部304の処理を介して実行し、その暗号化処理の結果を応答する処理クエリ実行部303と、ハードウェア的に安全なTEE機能の信頼領域を用いた処理を実行するTEE信頼領域処理部304と、処理クエリ実行部303からの秘匿抽出要求を受けて秘匿抽出クエリ315をTEE信頼領域処理部304の処理を介して生成し、暗号化DB部307に対する秘匿抽出を実行する秘匿抽出処理部305と、暗号化されていない通常のデータを格納する通常DB部306と、暗号化されたデータを格納する暗号化DB部307とを備える。これらの各機能部301〜307は、CPU31がメモリ32に記憶されている所定のプログラムを読み出して実行することによって実現され、特にTEE信頼領域処理部304による処理は、TEE対応のCPU31がメモリ32のTEE信頼領域38上で処理を行う。
また、図5に示したように、秘匿情報処理サーバ30は、TEE信頼領域38でのみ利用可能なTEEローカル鍵(図6に示すTEEローカル鍵334)により暗号化された暗号化TEE秘密鍵311、暗号化データ鍵312、及び暗号化処理鍵313と、処理鍵により暗号化された処理クエリである暗号化処理クエリ314と、後述するTEEローカル鍵334を用いて暗号化された抽出クエリである秘匿抽出クエリ315と、各種の暗号化した鍵を登録する暗号化鍵管理テーブル316と、秘匿情報処理サーバ30内のデータ処理の履歴が記録される処理ログ317と、秘匿抽出クエリ315により暗号化DB部307から抽出された暗号化データである秘匿抽出データ318と、処理鍵により暗号化された処理結果である暗号化処理結果319とを有する。これらのデータは、上述した秘匿情報処理サーバ30の各機能部301〜307による処理(プログラムの実行)に必要なデータや当該処理によって生成されるデータであり、メモリ32またはディスク33に記憶される。
さらに、図6及び図7を参照しながら、TEE信頼領域処理部304及び暗号化DB部307の詳細な機能構成を説明する。
図6は、図5に示したTEE信頼領域処理部の詳細な機能構成を示すブロック図である。TEE信頼領域処理部304による処理は、サーバOSの管理者権限を持つサーバ管理者やその管理者権限をサイバー攻撃により奪ったサイバー攻撃者であっても情報を読み取ることができないメモリ32上のTEE信頼領域38を用いて、TEE対応のCPU31によって提供される。すなわち、TEE信頼領域処理部304による処理は、サーバの管理者権限を持つ管理者やサイバー攻撃者に対する秘匿性を確保したまま、機密情報や各種の鍵情報の平文処理を実行可能である。
図6に示したように、TEE信頼領域処理部304は、機能部として、データ鍵や処理鍵の鍵暗号化鍵等を変更する鍵変更部321と、暗号化したまま検索や順序比較を可能とする秘匿抽出クエリを生成する秘匿抽出クエリ生成部322と、回帰分析等の解析処理や機械学習を実行するデータ処理実行部323と、処理対象データのデータ量がTEE信頼領域38よりも大きい場合に実行される分割処理によって出力された複数の処理結果をまとめる処理結果集約処理部324と、AES等の基本的な暗号化を行う暗号化部325と、暗号化したまま検索を可能とする検索可能暗号化を行う検索可能暗号化部326と、暗号化したまま順序比較を可能とする順序比較可能暗号化を行う順序比較可能暗号化部327と、暗号化されたデータ、処理クエリ、及び各種鍵情報等を復号する復号部328とを備える。
また、図6に示したように、TEE信頼領域処理部304は、TEE信頼領域38の内部でのみ使用可能なTEE公開鍵113のペア鍵であるTEE秘密鍵331と、TEE公開鍵113で暗号化されたデータ鍵をTEE秘密鍵331で復号したデータ鍵332と、TEE公開鍵113で暗号化された処理鍵をTEE秘密鍵331で復号した処理鍵333と、TEE対応のCPU31の固有情報から生成されてTEE信頼領域38の内部でのみ使用されるTEEローカル鍵334と、暗号化鍵管理テーブル316をTEEローカル鍵334により復号した鍵管理テーブル335と、秘匿抽出クエリ生成部322が生成したデータ抽出クエリ336と、TEE信頼領域処理部304に入力された秘匿抽出データを復号した抽出データ337と、データ処理実行部323がデータ処理を実行した結果である処理結果338とを有する。
図7は、図5に示した暗号化DB部の詳細な機能構成を示すブロック図である。図7では、暗号化DB307が暗号化データを登録するデータベースの一例として、暗号化患者データテーブル351を保持する場合について、暗号化DB307の詳細な機能構成が示されている。
図7に示したように、暗号化DB部307は、暗号化患者データテーブル351にデータを登録するデータ登録部341と、暗号化患者データテーブル351から秘匿抽出クエリに該当する暗号化データを抽出するデータ抽出部342と、暗号化患者データテーブル351から指定された条件に該当するデータを削除するデータ削除部343と、秘匿抽出クエリの実行において暗号化データと暗号化処理クエリの一致判定または順序比較判定を行う秘匿抽出クエリ判定部344とを備える。そして、暗号化患者データテーブル351には、データホルダ端末10から登録されたデータが暗号化して登録される。
(2)処理
本実施形態に係る秘匿情報処理システム1で実行される処理について説明する。
全体的な処理の流れとして、まず、秘匿情報処理システム1は、データホルダから預託される個人情報等の機密情報を暗号化して秘匿情報処理サーバ30に登録する「データ登録処理」を行うための事前準備として、データホルダ端末10と秘匿情報処理サーバ30との間でデータ鍵を登録する「データ鍵登録処理」と、処理結果利用者端末20と秘匿情報処理サーバ30との間で処理鍵を登録する「処理鍵登録処理」とを行う。データ鍵登録処理の詳細は図8に示され、処理鍵登録処理の詳細は図12に示される。
次に、秘匿情報処理システム1は、データホルダ端末10と秘匿情報処理サーバ30との間で「データ登録処理」を行う。データ登録処理では、データホルダから預託された個人情報等の機密情報(データ)が、データホルダ端末10においてデータ鍵を用いて暗号化され、さらに、秘匿情報処理サーバ30において秘匿抽出可能暗号化されて登録される。データ登録処理の詳細は図13に示される。
そして、データ登録処理が行われた後、秘匿情報処理システム1は、秘匿情報処理サーバ30に登録された秘匿抽出可能暗号化された機密情報(秘匿データ)に対して、処理結果利用者が要望する処理を秘匿したまま実行し、その処理結果を処理結果利用者端末20に表示する「秘匿データ処理」を行うことができる。秘匿データ処理の詳細は図18に示される。
以下、上述した各処理について、図面を参照しながら詳しく説明する。
(2−1)データ鍵登録処理
図8は、データ鍵登録処理の処理手順を示すシーケンス図である。データ鍵登録処理は、データホルダ端末10及び秘匿情報処理サーバ30によって実行される。
図8によればまず、データホルダ端末10のデータ鍵登録部101が、データ鍵112をTEE公開鍵113とともに暗号化部104に入力し、出力として暗号化データ鍵115を得るデータ鍵暗号化処理を実行する(ステップS101)。
次に、データホルダ端末10のデータ鍵登録部101が、暗号化データ鍵115、所有元「データホルダ端末10」、及び鍵タイプ「データ鍵」という情報からなるデータ鍵登録情報を、秘匿情報処理サーバ30に送信する(ステップS102)。ステップS102の処理は、データホルダ端末10から秘匿情報処理サーバ30に対するデータ鍵の登録要求に相当する。
次に、秘匿情報処理サーバ30の鍵登録実行部301は、ステップS102で送信されたデータ鍵登録情報を受信すると、TEE信頼領域処理部304に、暗号化データ鍵115を含む鍵暗号化鍵変更要求を送信する(ステップS103)。
次に、TEE信頼領域処理部304は、ステップS103の鍵暗号化鍵変更要求に応じて、図10に後述する鍵暗号化鍵変更処理を実行し、鍵暗号化鍵をTEEローカル鍵334に変更した暗号化データ鍵を生成して、鍵登録実行部301に送信する(ステップS104)。
次に、鍵登録実行部301は、所有元「データホルダ端末10」、鍵タイプ「データ鍵」、及びステップS104においてTEEローカル鍵334で暗号化された暗号化データ鍵(暗号化データ鍵312)からなるレコードを、暗号化鍵管理テーブル316に追加し、データホルダ端末10に鍵登録の完了応答を返す(ステップS105)。なお、データホルダ端末10が1台だけである場合等、ステップS104の鍵暗号化鍵変更処理が不要な場合には、鍵登録実行部301は、データホルダ端末10から受信したデータ鍵登録情報に含まれる暗号化データ鍵115をそのまま暗号化鍵管理テーブル316に登録してもよい。
ここで、図9に、暗号化鍵登録の処理によって登録される暗号化鍵管理テーブルの一例を示す。図9に例示した暗号化鍵管理テーブル316は、鍵の所有元を示す「所有元」カラム、鍵のタイプを示す「鍵タイプ」カラム、及び暗号化された鍵を格納する「暗号化鍵」カラムから構成される。具体的には例えば、1行目のレコード3161は、データホルダ端末10が所有元であるデータ鍵を暗号化した暗号化鍵が「tojqj5dscs77gkl5」であることを示す。一方、2行目のレコード3162は、処理結果利用者端末20が所有元である処理鍵を暗号化した暗号化鍵が「f6hpjsgwmivexmhz」であることを示す。なお、後述する処理鍵登録処理における暗号化鍵登録の処理(図12のステップS205)でも、図9と同様の形式で暗号化鍵管理テーブル316が登録される。
ステップS105の処理後、データホルダ端末10は、秘匿情報処理サーバ30(鍵登録実行部301)から鍵登録の完了応答を受信すると、データ鍵登録処理を終了する。
(2−1−1)鍵暗号化鍵変更処理
図10は、鍵暗号化鍵変更処理の処理手順を示すフローチャートである。図8のステップS104で述べたように、鍵暗号化鍵変更処理は、鍵登録実行部301からの鍵暗号化鍵変更要求(図8のステップS103)に応じて、TEE信頼領域処理部304が実行する処理である。
図10によればまず、鍵登録実行部301から鍵暗号化鍵変更要求を受信すると、TEE信頼領域処理部304は、TEE秘密鍵331を読み出す(ステップS111)。
次に、TEE信頼領域処理部304は、鍵暗号化鍵変更要求に含まれる暗号化された鍵(暗号化データ鍵115)を、ステップS111で読み出したTEE秘密鍵331とともに復号部328に入力して、復号する(ステップS112)。ここで、鍵暗号化鍵変更要求に含まれる暗号化データ鍵115はTEE公開鍵113で暗号化された鍵であり(図8のステップS101参照)、ステップS112の処理は、このような入力鍵をTEE秘密鍵331を用いて復号するものである。
次に、TEE信頼領域処理部304が、TEEローカル鍵334を読み出す(ステップS113)。
次に、TEE信頼領域処理部304は、ステップS112で復号した入力鍵とステップS113で読み出したTEEローカル鍵334を暗号化部325に入力することにより、入力鍵をTEEローカル鍵334で暗号化する(ステップS114)。
また、TEE信頼領域処理部304は、ステップS112で復号した入力鍵を鍵管理テーブル335に登録する(ステップS115)。
ここで、図11に、鍵管理テーブルの一例を示す。図11に例示した鍵管理テーブル335は、鍵の所有元を示す「所有元」カラム、鍵のタイプを示す「鍵タイプ」カラム、及び鍵を格納する「鍵」カラムから構成される。具体的には例えば、1行目のレコード3351は、データホルダ端末10が所有元であるデータ鍵が「vf0l04ugdqjsql1j」であることを示す。一方、2行目のレコード3162は、処理結果利用者端末20が所有元である処理鍵が「mgyk3lvqbpdco4uo」であることを示す。このような鍵管理テーブル335に格納される「鍵」は、暗号化鍵管理テーブル316に格納される暗号化鍵(図9参照)をTEEローカル鍵334によって復号した鍵ともいえる。なお、前述したように、鍵管理テーブル335はTEE信頼領域38の内部に保持されるため、鍵の安全性が担保される。
最後に、TEE信頼領域処理部304は、鍵暗号化鍵変更要求に対する出力として、この暗号化した入力鍵(暗号化データ鍵312)を鍵登録実行部301に送信し、鍵暗号化鍵変更処理を終了する。
(2−2)処理鍵登録処理
図12は、処理鍵登録処理の処理手順を示すシーケンス図である。処理鍵登録処理は、処理結果利用者端末20及び秘匿情報処理サーバ30によって実行される。
図12によればまず、処理結果利用者端末20の処理鍵登録部201が、処理鍵211をTEE公開鍵212とともに暗号化部205に入力し、出力として暗号化処理鍵214を得る処理鍵暗号化処理を実行する(ステップS201)。
次に、処理鍵登録部201が、暗号化処理鍵214、所有元「処理結果利用者端末20」、及び鍵タイプ「処理鍵」という情報からなる処理鍵登録情報を、秘匿情報処理サーバ30に送信する(ステップS202)。ステップS202の処理は、処理結果利用者端末20から秘匿情報処理サーバ30に対する処理鍵の登録要求に相当する。
次に、秘匿情報処理サーバ30の鍵登録実行部301は、ステップS202で送信された処理鍵登録情報を受信すると、TEE信頼領域処理部304に、暗号化処理鍵214を含む鍵暗号化鍵変更要求を送信する(ステップS203)。
次に、TEE信頼領域処理部304は、ステップS203の鍵暗号化鍵変更要求に応じて、図10に示した鍵暗号化鍵変更処理を実行し、鍵暗号化鍵をTEEローカル鍵334に変更した暗号化処理鍵を生成して、鍵登録実行部301に送信する(ステップS204)。
次に、鍵登録実行部301は、所有元「処理結果利用者端末20」、鍵タイプ「処理鍵」、及びステップS204においてTEEローカル鍵334で暗号化された暗号化データ鍵(暗号化処理鍵313)からなるレコードを、暗号化鍵管理テーブル316に追加し、処理結果利用者端末20に鍵登録の完了応答を返す(ステップS205)。なお、処理結果利用者端末20が1台だけである場合等、ステップS204の鍵暗号化鍵変更処理が不要な場合には、鍵登録実行部301は、処理結果利用者端末20から受信した処理鍵登録情報に含まれる暗号化処理鍵214をそのまま暗号化鍵管理テーブル316に登録してもよい。
最後に、処理結果利用者端末20は、秘匿情報処理サーバ30(鍵登録実行部301)から鍵登録の完了応答を受信すると、処理鍵登録処理を終了する。
(2−3)データ登録処理
図13は、データ登録処理の処理手順を示すシーケンス図である。データ登録処理は、データホルダ端末10及び秘匿情報処理サーバ30によって実行される。
図13によればまず、データホルダ端末10が、秘匿情報処理サーバ30に登録するデータを事前に暗号化する処理を実行する(ステップS301)。詳しくは、データホルダ端末10のデータ登録部102が、データ111及びデータ鍵112を暗号化部104に入力し、出力として暗号化データ114を得る。なお、秘匿情報処理システム1でデータホルダ端末10が1台のみで構成される場合等、後述するステップS304のデータ変換処理が不要な場合には、ステップS301の処理において、データ111のうち、性別等の名義値のデータは検索可能暗号化部105を用いて検索可能暗号化し、年齢・身長等の数値データは順序比較可能暗号化部106を用いて順序比較可能暗号化するようにしてもよい。ここで、データ登録処理に用いられるデータ111、及びデータ登録処理でデータホルダ端末10側に登録される暗号化データ114について、一例を図14、図15に示す。
図14は、データ登録処理に用いられるデータの一例である。図14では、データ登録処理に用いられるデータ111の一例として、病院が所有する患者データをまとめた患者データテーブル1110が示されている。
図14の患者データテーブル1110は、氏名、住所、性別、年齢、伸長、及び体重のカラムを有して構成される。具体的には例えば、1行目のレコード1111は、鈴木花子さんの住所が東京都で、性別が女性、年齢が28歳、身長が170.1cm、体重が72.4kgであることを示す。なお、当然ながら、本実施形態に係る秘匿情報処理システム1で利用できるデータ111は、上記のような患者データに限定されるものではなく、病院や情報銀行といったデータホルダが所有する個人情報等の機密情報全般を採用することができる。
図15は、データ登録処理でデータホルダ端末側に登録される暗号化データの一例である。図15では、データホルダ端末10側に登録される暗号化データ114の一例として、図14の患者データテーブル1110をデータ鍵112で暗号化した暗号化患者データテーブル1140が示されている。
図15の暗号化患者データテーブル1140は、暗号化前の患者データテーブル1110(図14参照)と同様に、氏名、住所、性別、年齢、伸長、及び体重のカラムを有して構成される。但し各レコードは、全てのカラムの値がデータ鍵112によって暗号化されている。例えば1行目のレコード1141は、図14のレコード1111の各カラムの値が暗号化されたレコードである。
図13の説明に戻る。ステップS301の処理に続いて、データホルダ端末10のデータ登録部102が、秘匿情報処理サーバ30のデータ登録実行部302に、暗号化データ114と所有元「データホルダ端末10」の情報とからなるデータ登録要求を送信する(ステップS302)。
次に、秘匿情報処理サーバ30のデータ登録実行部302は、ステップS302で送信されたデータ登録要求を受信すると、当該要求に含まれる暗号化データ114のデータ量がTEE信頼領域処理部304が一度に処理できるデータ量の上限を超えている場合に、データを分割する(ステップS303)。例えば、暗号化データ114のデータ量が1GBであり、TEE信頼領域処理部304が一度に処理できるデータ量の上限値が100MBである場合、データ登録実行部302は、暗号化データ114を100MBずつの10個のデータに分割する。なお、データ登録要求に含まれる暗号化データ114のデータ量がTEE信頼領域処理部304が一度に処理できるデータ量の上限以内である場合は、データ分割を行わずに次の処理に進む。
次に、データ登録実行部302は、データ登録要求に含まれる所有元「データホルダ端末10」の情報と、データ鍵登録処理で受信したデータ鍵登録情報に含まれる鍵タイプ「データ鍵」の情報とをキーとして、暗号化鍵管理テーブル316から対応する暗号化データ鍵を読み出し、データ登録要求に含まれた暗号化データ(ステップS303においてデータ分割した場合は、分割データの1つ)とともに、TEE信頼領域処理部304に送信する。これを受けてTEE信頼領域処理部304は、受信した暗号化データを、後に実施される「暗号化したままの検索比較や順序比較」に備えたデータに変換するデータ変換処理を実行し、実行結果である変換後の暗号化データ(秘匿抽出可能暗号な暗号化データ)をデータ登録実行部302に応答する(ステップS304)。
詳細は図17を参照しながら後述するが、データ変換処理では、TEE信頼領域38において、受信した暗号化データを復号した後、TEEローカル鍵334を用いて秘匿抽出可能暗号化が行われる。なお、前述したように秘匿情報処理システム1でデータホルダ端末10が1台のみで構成される場合等に、ステップS301で検索可能暗号化や順序比較可能暗号化が行われている場合には、ステップS304の処理はスキップすることができる。
次に、データ登録実行部302は、暗号化DB部307に暗号化データの登録要求を送信する(ステップS305)。
そしてステップS305の登録要求を受信した暗号化DB部307は、データ登録部341を用いて、暗号化データを登録対象のデータベース(本例では暗号化患者データテーブル351とする)に登録し、登録が完了すると、データ登録実行部302に完了応答を送信する(ステップS306)。
ここで、図16に、データ登録処理で秘匿情報処理サーバ側に登録される暗号化データ(暗号化患者データテーブル)の一例を示す。図16には、ステップS306で暗号化DB部307に格納される暗号化データの一例として、ステップS302でデータホルダ端末10からデータ登録が要求された暗号化データが図15の暗号化患者データテーブル1140であるとしたときに、秘匿情報処理サーバ30におけるステップS303〜S306の処理を経てTEEローカル鍵334で秘匿抽出可能暗号化された、暗号化患者データテーブル351が示されている。
図16の暗号化患者データテーブル351は、データ登録が要求されたときの暗号化患者データテーブル1140(図15参照)や、暗号化前の患者データテーブル1110(図14参照)と同様に、氏名、住所、性別、年齢、伸長、及び体重のカラムを有して構成される。但し各レコードは、暗号化患者データテーブル1140における各カラムの値が全て、別の鍵(TEEローカル鍵334)によって秘匿抽出可能に暗号化されている。例えば1行目のレコード3511は、図15のレコード1141(言い換えれば図14のレコード1111)に対応しており、レコード3511の各カラムの値は、レコード1111の各カラムの値がTEEローカル鍵334によって、秘匿抽出可能に暗号化されたものである。
図13の説明に戻る。ステップS306の処理に続いて、データ登録実行部302は、暗号化DB部307への登録が完了していない分割データ(未登録データ)の有無を確認する(ステップS307)。ステップS307において未登録データがある場合には(ステップS307のYES)、未登録データに対するステップS304以降の処理が行われ、未登録データがない場合には(ステップS307のNO)、データ登録実行部302は、データホルダ端末10にデータ登録の完了応答を返す。
最後に、データホルダ端末10は、秘匿情報処理サーバ30のデータ登録実行部302から完了応答を受信すると、データ登録処理を終了する。
(2−3−1)データ変換処理
図17は、データ変換処理の処理手順を示すフローチャートである。図13のステップS304で述べたように、データ変換処理は、データ登録実行部302からの暗号化データ鍵及び暗号化データ(分割データの1つ)が入力されることに応じて、TEE信頼領域処理部304が実行する処理である。
図17によれば、まず、TEE信頼領域処理部304は、データ登録実行部302から入力された暗号化データ鍵を読み出し(ステップS311)、さらにTEEローカル鍵334を読み出す(ステップS312)。
次に、TEE信頼領域処理部304は、ステップS311で読み出した暗号化データ鍵を、ステップS312で読み出したTEEローカル鍵334とともに復号部328に入力して、復号する(ステップS313)。
次に、TEE信頼領域処理部304は、ステップS313で復号して得たデータ鍵を用いて、データ登録実行部302から入力された暗号化データを復号する(ステップS314)。
次に、TEE信頼領域処理部304は、ステップS314で復号したデータを、ステップS312で読み出したTEEローカル鍵334を用いて、「秘匿抽出可能暗号化」する(ステップS315)。前述したように「秘匿抽出可能暗号化」は、データを暗号化したまま(秘匿したまま)、所定条件を満たす情報を抽出する処理(検索や順序比較)を実行できる暗号化であり、ステップS315における秘匿抽出可能暗号化をより具体的に説明すると、例えば、性別等の名義値のデータは検索可能暗号化部326を用いて検索可能暗号化し、年齢・身長等の数値データは順序比較可能暗号化部327を用いて順序比較可能暗号化する。なお、検索・順序比較等の秘匿抽出の対象としないデータについては、暗号化部325を用いてAES等の基本的な暗号化を行ってもよい。
ステップS315の暗号化が完了すると、TEE信頼領域処理部304は、暗号化したデータを処理の要求元に送信してデータ変換処理を終了する。
(2−4)秘匿データ処理
図18は、秘匿データ処理の処理手順を示すシーケンス図である。秘匿データ処理は、処理結果利用者端末20及び秘匿情報処理サーバ30によって実行される。
図18によればまず、処理結果利用者端末20において、処理クエリ生成部202が、対象データの条件と処理内容とからなる処理クエリ213を生成する(ステップS401)。
なお、ステップS401で処理クエリ213を生成するために必要な、対象データ及び処理方法に関する情報は、処理クエリ生成画面410を介して処理結果利用者(ユーザ)によって入力される。処理クエリ生成画面410は、例えば処理クエリ生成部202の制御によって、表示装置25等(秘匿情報処理サーバ30の表示装置35等でもよい)に表示され、当該画面に対して、ユーザが入力装置26を使って入力操作を行う。そして、処理クエリ生成画面410に対するユーザの入力内容に応じて、処理クエリ生成部202は処理クエリ213を生成する。ここで、処理クエリ生成画面410及び処理クエリ213の一例を図19、図20に示す。
図19は、処理クエリ生成画面の一例である。図19に例示した処理クエリ生成画面410は、大別して、対象データ及びその絞り込み条件を入力するための対象データ入力領域(領域4101〜4106)と、対象データの処理方法を入力するための処理方法入力領域(領域4107〜4110)と、入力内容の決定またはキャンセルを入力するための入力決定領域(領域4111〜4112)と、を備えて構成されている。
具体的には、対象データ入力領域には、対象データのテーブル名を入力する領域4101と、対象データの絞り込み条件1の対象カラム名を入力する領域4102と、領域4102に入力したカラムの絞り込み条件となるキーワードを指定する領域4103と、対象データの絞り込み条件2の対象カラム名を入力する領域4104と、領域4104に入力したカラムの絞り込み条件となる値域の上限値及び下限値を入力する領域4105,4106と、が含まれる。
また、処理方法入力領域には、処理方法の種類を入力する領域4107と、領域4107に入力された処理方法(本例では「回帰分析」)に対して指定が必要な回帰モデルを入力する領域4108と、説明変数Xを指定する領域4109と、目的変数Yを指定する領域4110と、が含まれる。
また、入力決定領域には、入力内容を決定し処理を完了するための「OK」ボタンを示す領域4111と、入力内容をキャンセルし処理を完了するための「キャンセル」ボタンを示す領域4112と、が含まれる。
図20は、処理クエリの一例である。図20に例示したように、処理クエリ213は、処理対象データを示す領域2131と、処理方法を示す領域2132とから構成される。
より具体的には、図20の処理クエリ213は、データ111に格納された患者データテーブル1110(図14参照)から、性別カラムの値が「男性」であり、かつ年齢カラムの値が「0〜15」であるレコード群を抽出し、その抽出したレコード群に対して、身長カラムを説明変数Xとし、年齢カラムを目的変数Yとする回帰分析を、回帰モデル「Y=aX+b」で実行する処理を実行させるための処理クエリを意味する。
図18の説明に戻る。ステップS401の処理に続いて、処理結果利用者端末20では、処理クエリ登録部203が、ステップS301で生成された処理クエリ213を暗号化する(ステップS402)。具体的には、処理クエリ登録部203は、処理鍵211及び処理クエリ213を暗号化部205に入力し、出力として暗号化処理クエリ215を得る。
図21は、暗号化処理クエリの一例である。図21に例示したように、処理鍵211を使用して処理クエリ213を暗号化した暗号化処理クエリ215は、処理対象データを示す領域2151と、処理方法を示す領域2152とから構成される。より具体的には、領域2151には、図20に示した処理クエリ213の領域2131に対応する暗号化データが示され、領域2152には、処理クエリ213の領域2132に対応する暗号化データが示される。
ステップS402の処理に続いて、処理結果利用者端末20では、処理クエリ登録部203が、暗号化処理クエリ215及び所有元「処理結果利用者端末20」の情報を、秘匿情報処理サーバ30の処理クエリ実行部303に登録する(ステップS403)。
次に、秘匿情報処理サーバ30では、処理クエリ実行部303が、ステップS403で受信した暗号化処理クエリ215と所有元情報「処理結果利用者端末20」を入力とする秘匿抽出要求を、秘匿抽出処理部305に送信する(ステップS404)。
次に、秘匿抽出要求を受信した秘匿抽出処理部305は、所有元情報「処理結果利用者端末20」と鍵タイプ「処理鍵」の情報をキーとして、暗号化鍵管理テーブル316から暗号化処理鍵313を抽出する。なお、鍵タイプ「処理鍵」の情報は、例えば、所有元情報「処理結果利用者端末20」をキーとして暗号化鍵管理テーブル316を参照することにより取得できる。そして、秘匿抽出処理部305は、この暗号化処理鍵313と暗号化処理クエリ215とを入力として、秘匿抽出クエリ生成要求をTEE信頼領域処理部304に送信する(ステップS405)。
次に、TEE信頼領域処理部304は、秘匿抽出クエリ生成要求で入力された暗号化処理鍵313と暗号化処理クエリ215を入力として、秘匿抽出クエリ生成処理を実行し、出力として得られる秘匿抽出クエリ315を秘匿抽出処理部305に応答する(ステップS406)。
詳細は図27を参照しながら後述するが、秘匿抽出クエリ生成処理では、TEE信頼領域38において、暗号化処理クエリ215を復号した処理クエリに基づいて平文のデータ抽出クエリ336(後述する図28参照)が生成され、データ抽出クエリ336の一部がTEEローカル鍵334を使用して秘匿抽出可能暗号化された秘匿抽出クエリ315が生成される。
図22は、秘匿抽出クエリの一例である。図22に例示した秘匿抽出クエリ315は、データベースを検索するSQLクエリとして構成され、特に、WHERE句の一致判定条件文を秘匿一致判定関数に置き換え、WHERE句の大小比較条件分を秘匿順序比較関数に置き換え、かつ、検索条件を示す検索キーワードを検索可能暗号クエリに置き換え、大小比較の境界条件を示す境界値を順序比較可能暗号クエリに置き換えて構成される。なお、上記の秘匿一致判定関数及び秘匿順序比較関数は、暗号化したままデータの条件判定を行って該当データを抽出する関数であることから、秘匿抽出判定関数と呼ぶことができる。
図22に例示した秘匿抽出クエリ315は、後述する図28に例示するデータ抽出クエリ336に対応したものであって、両者を比較することによって、秘匿可能暗号化に置き換えた箇所が分かる。具体的には、図22において、秘匿抽出クエリ315は、「性別=男性」という一致判定条件文を、秘匿一致判定関数と「男性」を検索可能暗号クエリ化した「sy78tk」という値を用いて置き換えており、さらに、「年齢≧0」と「年齢≦15」という大小比較条件文を、秘匿数値比較関数と「0」と「15」を順序比較可能暗号クエリ化した「9vyvga」と「eb4814」という値を用いて置き換えている。
次に、秘匿抽出処理部305は、TEE信頼領域処理部304からの秘匿抽出クエリ生成処理の応答を受けると、受け取った秘匿抽出クエリ315を暗号化DB部307に送信して、クエリ実行を要求する(ステップS407)。
次に、暗号化DB部307は、ステップS407で受信した秘匿抽出クエリ315に基づいて、暗号化したままデータ抽出を行う秘匿抽出処理を実行する(ステップS408)。秘匿抽出処理では、まず、秘匿抽出クエリ315をデータ抽出部342に入力する。そして、データ抽出部342が、データベースのデータ抽出処理において、秘匿一致判定または秘匿順序判定が必要な条件文の判定処理について、秘匿抽出クエリ判定部344に条件文を入力することによって判定結果を得て、条件に合致するデータ(秘匿抽出データ318)を抽出する。そして、暗号化DB部307は、秘匿抽出処理の結果として、上記抽出された秘匿抽出データ318を秘匿抽出処理部305に応答する。
図23は、秘匿抽出データの一例である。図23の場合、秘匿抽出データ318は、秘匿抽出クエリ315に基づいて暗号化患者データテーブル351から抽出されたデータであって、性別カラム、年齢カラム、及び身長カラムから構成される。秘匿抽出データ318の各カラム値は暗号化されており、例えば1行目のレコード3181を見ると、秘匿抽出によって暗号化したまま抽出した当該レコードにおいて、各カラムの値が暗号化されたままであることが示される。
次に、秘匿抽出処理部305は、ステップS408で応答を受けた秘匿抽出データ318を、ステップS404における秘匿抽出要求の応答として、処理クエリ実行部303に応答する(ステップS409)。
次に、処理クエリ実行部303は、ステップS409で応答を受けた秘匿抽出データ318のデータ量と、TEE信頼領域38が取り扱えるデータ量の上限値とを比較し(ステップS410)、秘匿抽出データ318のほうが大きい場合は(ステップS410のNO)、ステップS411を実行してからステップS412に進み、それ以外の場合は(ステップS410のYES)ステップS411をスキップしてステップS412に進む。
ステップS411では、処理クエリ実行部303は、秘匿抽出データ318を分割する。例えば、秘匿抽出データ318のデータ量が1GBで、TEE信頼領域38の上限値が100MBであった場合、100MBの10個の分割データに分割する。
次に、処理クエリ実行部303は、秘匿抽出データ318(ステップS411で分割した場合は分割データの1つ)と暗号化処理クエリ215を入力とするデータ処理要求を、TEE信頼領域処理部304に送信する(ステップS412)。
次に、TEE信頼領域処理部304は、秘匿抽出データ318(ステップS411で分割した場合は分割データの1つ)と暗号化処理クエリ215を入力として、TEE内部データ処理を実行し、その出力として得られる暗号化処理結果319を処理クエリ実行部303に応答する(ステップS413)。
詳細は図29や図31を参照しながら後述するが、TEE内部データ処理では、データ処理(図29のステップS434、図31)によって平文の処理結果338が出力され、この処理結果338を処理鍵333で暗号化することによって暗号化処理結果319が得られる。ここで、処理結果338及び暗号化処理結果319の一例を図24及び図25に示す。
図24は、データ処理によって得られる処理結果の一例である。図24に例示したように、処理結果338は、領域3381及び領域3382を備えて構成される。例えば、領域3381には、対象データと処理内容のサマリが平文で示され、領域3382には、処理結果のサマリが平文で示されている。
図25は、TEE内部データ処理によって得られる暗号化処理結果の一例である。図25に例示したように、暗号化処理結果319は、領域3191及び領域3192を備えて構成される。前述したように、暗号化処理結果319は、TEE内部データ処理のなかで得られた平文の処理結果338(図24参照)を、処理鍵333で暗号化したものである。したがって、各領域内は暗号文が示される。具体的には例えば、領域3191には、対象データと処理内容のサマリを暗号化した暗号文が示され、領域3192には、処理結果のサマリを暗号化した暗号文が示される。
次に、処理クエリ実行部303は、TEE内部データ処理による暗号化処理結果319の応答を受け、未処理の分割データが残っているか否かを判定する(ステップS414)。未処理の分割データがある場合には(ステップS414のYES)、未処理の分割データの1つと暗号化処理クエリ215を入力として、ステップS412,S413の処理を実行し、未処理の分割データがなくなった場合には(ステップS414のNO)、ステップS415に進む。
ステップS415では、処理クエリ実行部303は、暗号化処理結果319の個数をカウントし、複数の暗号化処理結果319が得られたか否かを判定する。ステップS415において暗号化処理結果319が単一であった場合は(ステップS415のNO)、ステップS411でデータ分割が実施されていないことを意味し、このとき、処理クエリ実行部303は、暗号化処理結果319を処理結果利用者端末20に送信する。
一方、ステップS415において暗号化処理結果319が複数であった場合(ステップS415のYES)、これらの暗号化処理結果319は、ステップS411でデータ分割された分割データの処理結果を意味する。この場合、処理クエリ実行部303は、複数の分割データに対する複数の暗号化処理結果319を入力とする処理結果集約要求を、TEE信頼領域処理部304に送信する。
そして、処理結果集約要求を受信したTEE信頼領域処理部304は、入力された複数の暗号化処理結果319を処理鍵333により復号し、複数の処理結果338を連結する等してまとめた(集約した)うえで、再度、処理鍵333により暗号化した暗号化処理結果319を生成し、この暗号化処理結果319を処理クエリ実行部303に応答する(ステップS416)。なお、処理結果集約処理において、TEE信頼領域処理部304は、複数の処理結果(暗号化処理結果319)を必ずしも1つにまとめる必要はなく、複数にまとめるとしてもよい。この場合、TEE信頼領域処理部304は、複数の処理結果についてそれぞれ暗号化した暗号化処理結果319を、処理クエリ実行部303に応答する。そして、処理クエリ実行部303は、TEE信頼領域処理部304から応答を受けた1つまたは複数の暗号化処理結果319を処理結果利用者端末20に送信する。
次に、ステップS415またはステップS416を経て、処理クエリ実行部303から暗号化処理結果319を受信した処理結果利用者端末20は、受信した1つまたは複数の暗号化処理結果319と処理鍵211を復号部206に入力することによって、暗号化処理結果319を復号し、その出力として平文の処理結果216を得る(ステップS417)。処理結果216の具体的な内容は、図24に示した処理結果338と同様である。
そして最後に、処理結果利用者端末20では、処理結果表示部204が、表示装置25等に処理結果表示画面420を表示することによって、処理結果利用者(ユーザ)に対して処理結果216を出力し(ステップS418)、秘匿データ処理を終了する。
図26は、処理結果表示画面の一例である。図26に例示した処理結果表示画面420は、元々の処理条件のサマリを示す領域4201と、処理結果のサマリを示す領域4202と、処理結果表示画面420の参照を終了する際に押下する「OK」ボタンを示す領域4203と、を備えて構成されている。
具体的には、領域4201には、処理条件のサマリとして、対象データ「患者データテーブル」において、性別が「男性」かつ年齢が「0〜15才」のレコードを対象とし、身長カラムを説明変数X、年齢カラムを目的変数Yとする単回帰分析(回帰モデルはY=aX+b)を実行することが示されている。また、領域4202には、領域4201に示された処理条件による処理結果のサマリとして、係数aの値が「0.016」、切片bの値が「−9.62」という回帰モデルが得られたことが示されている。
なお、上述した領域4201,4202の表示内容は、ステップS417で復号された平文の処理結果216(図24に示した処理結果338と同様)に基づくものであり、図24を参照すると、処理結果表示画面420における各表示内容と対応することが分かる。
(2−4−1)秘匿抽出クエリ生成処理
図27は、秘匿抽出クエリ生成処理の処理手順を示すフローチャートである。図18のステップS406で述べたように、秘匿抽出クエリ生成処理は、暗号化処理鍵313及び暗号化処理クエリ215を入力とする処理であって、TEE信頼領域処理部304が実行する。
図27によればまず、TEE信頼領域処理部304は、暗号化処理鍵214とTEEローカル鍵334を復号部328に入力することによって暗号化処理鍵214を復号し、出力として処理鍵333を得る(ステップS421)。
次に、TEE信頼領域処理部304は、暗号化処理クエリ215と処理鍵333を復号部328に入力することによって暗号化処理クエリ215を復号し、出力として処理クエリを得る(ステップS422)。なお、ステップS422で得られる処理クエリは、図20に示した処理クエリ213と同様のクエリとなる。
次に、TEE信頼領域処理部304は、ステップS422で得た処理クエリに基づいて、処理クエリに記載されている処理対象データのテーブル名、絞り込み条件からなる平文のデータ抽出クエリ336を生成する(ステップS423)。
図28は、データ抽出クエリの一例である。図28に例示したように、データ抽出クエリ336は、データベースを検索するSQLクエリとして構成される。具体的には、図28のデータ抽出クエリ336は、患者データテーブルから、性別カラムの値が「男性」で、かつ年齢カラムの値が「0以上15以下」であるレコードの、性別、年齢、及び身長カラムの値を抽出するというSQLクエリであって、図20の処理クエリ213に記載された処理対象データのテーブル名や絞り込み条件が用いられている。
次に、TEE信頼領域処理部304は、TEEローカル鍵334を取得し(ステップS424)、このTEEローカル鍵334を使用して、ステップS423で生成したデータ抽出クエリ336を秘匿抽出可能暗号化する(ステップS425)。より具体的には、ステップS425においてTEE信頼領域処理部304は、データ抽出クエリ336のうち、名義値属性の絞り込み条件のキーワードをTEEローカル鍵334とともに検索可能暗号化部326に入力して検索可能暗号クエリを生成し、また、数値属性の絞り込み属性の境界値をTEEローカル鍵334とともに順序比較可能暗号化部327に入力して順序比較可能暗号クエリを生成する。
次に、TEE信頼領域処理部304は、データ抽出クエリ336のデータ抽出条件式を秘匿抽出クエリ判定部344が処理する関数名に置換し、絞り込みキーワードと境界値をステップS425で生成した検索可能暗号クエリと順序比較可能暗号クエリに置換した、秘匿抽出クエリ315を生成する(ステップS426)。そして最後に、TEE信頼領域処理部304は、この秘匿抽出クエリ315を出力して秘匿抽出クエリ生成処理を終了する。なお、秘匿抽出クエリ315の具体例は、図22に示した通りである。
(2−4−2)TEE内部データ処理
図29は、TEE内部データ処理の処理手順を示すフローチャートである。図18のステップS413で述べたように、TEE内部データ処理は、秘匿抽出データ318(または分割データの1つ)及び暗号化処理クエリ215を入力とする処理であって、TEE信頼領域処理部304が実行する。
図29によればまず、TEE信頼領域処理部304は、入力された秘匿抽出データ318及び暗号化処理クエリ215を復号するための処理鍵333及びTEEローカル鍵334を読み出す(ステップS431)。
次に、TEE信頼領域処理部304は、処理鍵333と暗号化処理クエリ215を復号部328に入力することによって暗号化処理クエリ215を復号し、出力として平文の処理クエリを得る(ステップS432)。なお、ステップS432で得られる平文の処理クエリは、図20に示した処理クエリ213と同様のクエリである。
次に、TEE信頼領域処理部304は、TEEローカル鍵334と秘匿抽出データ318を復号部328に入力することによって秘匿抽出データ318を復号し、出力として平文の抽出データ337を得る(ステップS433)。
ここで、図30に、秘匿抽出データを復号した抽出データの一例を示す。図30の抽出データ337は、図23に示した秘匿抽出データ318を平文に復号したものである。そのため、図30の抽出データ337は、図23の秘匿抽出データ318と同様に、性別、年齢、及び身長のカラムを有して構成される。また、抽出データ337の各レコードには、データ抽出クエリ336(図28参照)の条件に合致したレコードが抽出されている。
例えば1行目のレコード3371は、性別が男性、年齢が2歳、身長が75.6cmとなっているが、これは図28に示したデータ抽出クエリ336の条件(性別カラムの値が男性、かつ年齢カラムの値が0以上15以下であるレコードから、性別、年齢、身長カラムの値を抽出する)に合致している。また、図30の他行のレコードも同様である。
次に、TEE信頼領域処理部304は、ステップS432で得た平文の処理クエリ、及びステップS433で得た平文の抽出データ337を入力として、データ処理実行部323に所定のデータ処理(本例では単回帰分析)を実行させる(ステップS434)。詳細は図31を参照しながら後述するが、データ処理の出力として、TEE信頼領域処理部304は、平文の処理結果338を得る。処理結果338の具体例は、図24に示した通りであって、処理条件と処理結果とを含んで構成される。
そして、TEE信頼領域処理部304は、処理鍵333と処理結果338を暗号化部325に入力することによって、処理結果338を暗号化した暗号化処理結果319を得る(ステップS435)。暗号化処理結果319の具体例は、図25に示した通りである。最後に、TEE信頼領域処理部304は、この暗号化処理結果319を処理クエリ実行部303に応答し、TEE内部データ処理を終了する。
図31は、データ処理の処理手順を示すフローチャートである。図31には、図29のステップS434におけるデータ処理の具体的な処理手順例として、単回帰分析を用いた場合の処理手順が示されている。図29の説明で前述したように、データ処理には、ステップS432で得られた平文の処理クエリ(図20に示した処理クエリ213と同様のクエリ)と、ステップS433で得られた平文の抽出データ337(図30参照)とが入力される。
図31によればまず、TEE信頼領域処理部304は、入力された平文の抽出データ337及び平文の処理クエリのうち、抽出データ337のレコード数をカウントし、変数Nに代入する(ステップS441)。
次に、TEE信頼領域処理部304は、処理クエリに説明変数Xとして記載されている「身長」カラムのi行目の値を「Xi」という変数で参照するものとし、また、「身長」カラムの全レコードの平均値を「Xave」とする(ステップS442)。そして、TEE信頼領域処理部304は、処理クエリに目的変数Yとして記載されている「年齢」カラムのi行目の値を「Yi」という変数で参照するものとし、また、「年齢」カラムの全レコードの平均値を「Yave」とする(ステップS443)。前述したように、本例の処理クエリは、図20に示した処理クエリ213と同様としている。
次に、TEE信頼領域処理部304は、変数iの初期値を1とし、「身長」カラムの分散の計算結果を示す変数「Xdist」の初期値を0とする(ステップS444)。
次に、TEE信頼領域処理部304は、「Xdist + (Xi - Xave)^2」を計算し、その計算結果を「Xdist」の新たな値として代入する(ステップS445)。なお、「 ( )^2」という表現は、「( )」内の値の二乗値を示す。そして、TEE信頼領域処理部304は、変数iの値を1増やす(ステップS446)。
次に、TEE信頼領域処理部304は、変数iの値と変数Nの値(抽出データ337のレコード数)とを比較し、「i≦N」の場合はステップS445,S446の処理を繰り返し、「i>N」の場合はステップS448の処理に進む(ステップS447)。すなわち、変数iを1ずつ増加させながら、抽出データ337のレコード数の回数分、ステップS445〜S447の処理を繰り返し、終了したらステップS448に進む。
ステップS448に進むと、TEE信頼領域処理部304は、変数iの値を1に初期化し、また、「身長」カラムと「年齢」カラムの共分散の計算結果を示す変数「XYdist」の初期値を0とする。
次に、TEE信頼領域処理部304は、「XYdist + (Xi - Xave) * (Yi - Yave)」を計算し、その計算結果を「XYdist」の新たな値として代入する(ステップS449)。そして、TEE信頼領域処理部304は、変数iの値を1増やす(ステップS450)。
次に、TEE信頼領域処理部304は、変数iの値と変数Nの値(抽出データ337のレコード数)とを比較し、「i≦N」の場合はステップS449,S450の処理を繰り返し、「i>N」の場合はステップS452の処理に進む(ステップS451)。すなわち、変数iを1ずつ増加させながら、抽出データ337のレコード数の回数分、ステップS449〜S451の処理を繰り返し、終了したらステップS452に進む。
ステップS452に進むと、TEE信頼領域処理部304は、「XYdist ÷ Xdist」の計算結果を、単回帰分析における「傾き」を表す変数aに代入する(ステップS452)。また、TEE信頼領域処理部304は、「Yave - a * Xave」の計算結果を、単回帰分析における「切片」を表す変数bに代入する(ステップS453)。
最後に、TEE信頼領域処理部304は、処理クエリ、傾き「a」、及び切片「b」から、平文の処理結果338を構成して出力し(ステップS454)、データ処理を終了する。処理結果338の具体的なデータ例は、図24に示した通りである。
(3)まとめ
以上に説明したように、本実施形態に係る秘匿情報処理システム1によれば、多様なデータを含む暗号化データの処理において、暗号化データをユーザデバイスに送信することなく、さらに暗号化したまま検索または順序比較を可能な秘匿検索クエリによるデータ抽出を行って処理対象データを絞り込んだ上で、取り扱えるデータ量が限られる信頼領域(TEE信頼領域38)内で復号して処理を行うため、暗号化データの送信オーバヘッドをなくし、かつ、限られた信頼領域を効率的に利用して、利用者に対する処理結果の応答時間を短縮することができる。
また、本実施形態に係る秘匿情報処理システム1によれば、図18のステップS410〜S414に説明したように、抽出した処理対象データのデータ量が信頼領域(TEE信頼領域38)が取り扱えるデータ量を超える場合には、処理対象データを分割して処理し、その後に処理結果をまとめる(集約する)ため、処理対象データのデータ量が大きい場合でも、頼領域を用いた高度な統計処理や機械学習等の分析処理を実行することができる。
また、本実施形態に係る秘匿情報処理システム1によれば、処理結果利用者の処理要求が、秘匿情報処理業者のサーバ(秘匿情報処理サーバ30)において、信頼領域内部以外では処理鍵により暗号化したまま取り扱われるため、処理結果利用者の処理内容を秘匿情報処理サーバ30のサーバ管理者やサイバー攻撃者に対して秘匿することができる。
これらのことから、秘匿情報処理システム1によって秘匿情報処理サービスを提供する秘匿情報処理業者は、サーバ(秘匿情報処理サーバ30)上ではサーバの管理者権限を奪われても情報を読み取られないTEE機能の信頼領域でのみ平文処理を行うため、サーバ管理者やサイバー攻撃者に対し個人情報等の機密情報及び処理結果利用者の処理内容を秘匿したまま、高度な統計解析や機械学習等の分析処理結果を出力するサービスを提供することができる。
なお、本発明は上述した実施形態に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施形態の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
また、本発明は、個人情報に加え、営業機密等、機密性が高く社内規則等で社外への公開が制限されている機密情報を秘匿化して社外組織等に提供する場合にも、同様の効果を得ることができる。
そして本発明は、顧客情報や医療情報等の個人情報、及び営業機密等の機密情報を扱う複数の組織において、個人情報や営業機密情報を秘匿したまま高度な統計処理や機械学習により分析することができるため、多様な機密情報を連携する公共・民間サービス向けの情報処理システムに広く適用することができる。
1…秘匿情報処理システム、10…データホルダ端末、20…処理結果利用者端末、30…秘匿情報処理サーバ、40…ネットワーク、11,21,31…CPU、12,22,32…メモリ、13,23,33…ディスク、14,24,34…ネットワークインタフェース、15,25,35…表示装置、16,26,36…入力装置、17,27,37…内部通信線、38…TEE信頼領域、101…データ鍵登録部、102…データ登録部、103…登録データ状況閲覧部、104…暗号化部、105…検索可能暗号化部、106…順序比較可能暗号化部、111…データ、112…データ鍵、113…TEE公開鍵、114…暗号化データ、115…暗号化データ鍵、201…処理鍵登録部、202…処理クエリ生成部、203…処理クエリ登録部、204…処理結果表示部、205…暗号化部、206…復号部、211…処理鍵、212…TEE公開鍵、213…処理クエリ、214…暗号化処理鍵、215…暗号化処理クエリ、216…処理結果、301…鍵登録実行部、302…データ登録実行部、303…処理クエリ実行部、304…TEE信頼領域処理部、305…秘匿抽出処理部、306…通常DB部、307…暗号化DB部、311…暗号化TEE秘密鍵、312…暗号化データ鍵、313…暗号化処理鍵、314…暗号化処理クエリ、315…秘匿抽出クエリ、316…暗号化鍵管理テーブル、317…処理ログ、318…秘匿抽出データ、319…暗号化処理結果、321…鍵変更部、322…秘匿抽出クエリ生成部、323…データ処理実行部、324…処理結果集約処理部、325…暗号化部、326…検索可能暗号化部、327…順序比較可能暗号化部、328…復号部、331…TEE秘密鍵、332…データ鍵、333…処理鍵、334…TEEローカル鍵、335…鍵管理テーブル、336…データ抽出クエリ、337…抽出データ、338…処理結果、341…データ登録部、342…データ抽出部、343…データ削除部、344…秘匿抽出クエリ判定部、351…暗号化患者データテーブル、410…処理クエリ生成画面、420…処理結果表示画面

Claims (10)

  1. 機密情報を含むデータを所有するデータホルダ端末から秘匿情報処理サーバに提供される前記データの暗号化データに対してデータ処理を行う秘匿情報処理システムであって、
    前記秘匿情報処理サーバは、
    前記暗号化データに対する処理要求を受信する処理要求実行部と、
    前記暗号化データを暗号化したまま所定条件に合致するデータを抽出する秘匿抽出の実行を指示する秘匿抽出処理部と、
    安全な信頼領域において当該信頼領域のみで利用可能な暗号鍵を用いて前記暗号化データを復号し処理する信頼領域処理部と、
    前記秘匿抽出を実行可能な秘匿抽出可能暗号で暗号化された前記暗号化データを格納する暗号化データ保持部と、
    を備え、
    前記処理要求実行部が前記処理要求を受信すると、
    前記信頼領域処理部が、前記処理要求及び前記暗号鍵に基づいて、前記処理要求における処理対象の条件に合致するデータの抽出を前記秘匿抽出によって行う秘匿抽出クエリを生成し、
    前記秘匿抽出処理部が、前記生成された前記秘匿抽出クエリの実行を指示することによって、前記暗号化データ保持部から暗号化したまま前記処理対象の暗号化データを抽出し、
    前記信頼領域処理部が、前記秘匿抽出処理部が抽出した前記処理対象の暗号化データを前記暗号鍵で復号して、前記処理要求が要求するデータ処理を実行し、
    前記処理要求実行部が、前記データ処理の実行結果を前記処理要求の送信元に返信する
    ことを特徴とする秘匿情報処理システム。
  2. 前記処理要求実行部は、前記秘匿抽出処理部が抽出した前記処理対象の暗号化データを、前記信頼領域で取り扱い可能なデータ量を超えない分割データに分割して前記信頼領域処理部に送信する
    ことを特徴とする請求項1に記載の秘匿情報処理システム。
  3. 前記信頼領域処理部は、前記分割データごとに、前記暗号鍵で復号し、前記処理要求が要求するデータ処理を実行し、それぞれの実行結果をまとめて前記データ処理の実行結果とする
    ことを特徴とする請求項2に記載の秘匿情報処理システム。
  4. 前記秘匿抽出可能暗号は、暗号化したまま一致判定を可能とする検索可能暗号、または暗号化したまま大小比較判定を可能とする順序比較可能暗号を含む
    ことを特徴とする請求項1に記載の秘匿情報処理システム。
  5. 前記データホルダ端末は、前記暗号化データの暗号化に用いるデータ鍵を、前記信頼領域処理部が提供する公開鍵を用いて暗号化して前記秘匿情報処理サーバに登録し、
    前記データホルダ端末から前記秘匿情報処理サーバに前記暗号化データが登録されるとき、
    前記信頼領域処理部は、前記暗号化データを、前記公開鍵で暗号化されて前記登録された前記データ鍵を用いて復号した後、前記信頼領域のみで利用可能な前記暗号鍵を用いて前記秘匿抽出可能暗号に暗号化して、前記暗号化データ保持部に格納する
    ことを特徴とする請求項1に記載の秘匿情報処理システム。
  6. 前記処理要求を前記秘匿情報処理サーバに送信する利用者端末をさらに備え、
    前記利用者端末は、
    前記処理要求の暗号化に用いる処理鍵を、前記信頼領域処理部が提供する公開鍵を用いて暗号化して前記秘匿情報処理サーバに登録し、
    前記処理鍵を用いて前記処理要求を暗号化して前記処理要求実行部に送信する
    ことを特徴とする請求項1に記載の秘匿情報処理システム。
  7. 前記信頼領域処理部は、前記利用者端末から前記処理要求実行部が受信した前記暗号化された処理要求を、前記公開鍵で暗号化されて前記登録された前記処理鍵を用いて復号した後、前記信頼領域のみで利用可能な前記暗号鍵を用いて前記秘匿抽出可能暗号に暗号化することによって、前記秘匿抽出クエリを生成する
    ことを特徴とする請求項6に記載の秘匿情報処理システム。
  8. 前記処理要求が要求するデータ処理は単回帰分析である
    ことを特徴とする請求項1に記載の秘匿情報処理システム。
  9. 前記秘匿抽出クエリは、SQL文と、暗号化したまま前記暗号化データの条件判定を行う秘匿抽出判定関数とから構成される
    ことを特徴とする請求項1に記載の秘匿情報処理システム。
  10. 機密情報を含むデータを所有するデータホルダ端末から秘匿情報処理サーバに提供される前記データの暗号化データに対してデータ処理を行う秘匿情報処理方法であって、
    前記秘匿情報処理サーバは、
    前記暗号化データに対する処理要求を受信する処理要求実行部と、
    前記暗号化データを暗号化したまま所定条件に合致するデータを抽出する秘匿抽出の実行を指示する秘匿抽出処理部と、
    安全な信頼領域において当該信頼領域のみで利用可能な暗号鍵を用いて前記暗号化データを復号し処理する信頼領域処理部と、
    前記秘匿抽出を実行可能な秘匿抽出可能暗号で暗号化された前記暗号化データを格納する暗号化データ保持部と、
    を有し、
    前記処理要求実行部が前記処理要求を受信する処理要求受信ステップと、
    前記信頼領域処理部が前記処理要求受信ステップで受信した前記処理要求及び前記暗号鍵に基づいて、前記処理要求における処理対象の条件に合致するデータの抽出を前記秘匿抽出によって行う秘匿抽出クエリを生成する秘匿抽出クエリ生成ステップと、
    前記秘匿抽出処理部が前記秘匿抽出クエリ生成ステップで生成された前記秘匿抽出クエリの実行を指示することによって、前記暗号化データ保持部から暗号化したまま前記処理対象の暗号化データを抽出する秘匿データ抽出ステップと、
    前記信頼領域処理部が前記秘匿データ抽出ステップで抽出された前記処理対象の暗号化データを前記暗号鍵で復号して、前記処理要求が要求するデータ処理を実行する信頼領域内部データ処理ステップと、
    前記処理要求実行部が前記信頼領域内部データ処理ステップの実行結果を前記処理要求の送信元に返信する処理要求応答ステップと、
    を備えることを特徴とする秘匿情報処理方法。
JP2019158347A 2019-08-30 2019-08-30 秘匿情報処理システム及び秘匿情報処理方法 Active JP7249248B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019158347A JP7249248B2 (ja) 2019-08-30 2019-08-30 秘匿情報処理システム及び秘匿情報処理方法
EP20193317.3A EP3786828A1 (en) 2019-08-30 2020-08-28 Confidential information processing system and confidential information processing method
US17/006,017 US11475121B2 (en) 2019-08-30 2020-08-28 Confidential information processing system and confidential information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019158347A JP7249248B2 (ja) 2019-08-30 2019-08-30 秘匿情報処理システム及び秘匿情報処理方法

Publications (2)

Publication Number Publication Date
JP2021039143A true JP2021039143A (ja) 2021-03-11
JP7249248B2 JP7249248B2 (ja) 2023-03-30

Family

ID=72290883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019158347A Active JP7249248B2 (ja) 2019-08-30 2019-08-30 秘匿情報処理システム及び秘匿情報処理方法

Country Status (3)

Country Link
US (1) US11475121B2 (ja)
EP (1) EP3786828A1 (ja)
JP (1) JP7249248B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282959A (zh) * 2021-06-09 2021-08-20 支付宝(杭州)信息技术有限公司 业务数据处理方法、装置及电子设备
WO2022269862A1 (ja) * 2021-06-24 2022-12-29 日本電信電話株式会社 顧客抽出システム、情報管理システム、分析依頼装置、顧客抽出方法、プログラム
WO2023021931A1 (ja) * 2021-08-17 2023-02-23 株式会社日立製作所 情報処理プログラムおよび情報処理装置
WO2023085196A1 (ja) * 2021-11-09 2023-05-19 株式会社日立製作所 計算機システム及び情報処理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10303880A (ja) * 1997-05-01 1998-11-13 Digital Vision Lab:Kk サービス提供システム
JP2001069133A (ja) * 1999-08-27 2001-03-16 Ntt Communications Kk 情報処理方法及びその装置
JP2005242740A (ja) * 2004-02-27 2005-09-08 Open Loop:Kk 情報セキュリティシステムのプログラム、記憶媒体、及び情報処理装置
JP2012123614A (ja) * 2010-12-08 2012-06-28 Hitachi Ltd 検索可能暗号処理システム
US20130191650A1 (en) * 2012-01-25 2013-07-25 Massachusetts Institute Of Technology Methods and apparatus for securing a database
WO2015107561A1 (ja) * 2014-01-14 2015-07-23 三菱電機株式会社 検索システム、検索方法および検索プログラム
JP2016206918A (ja) * 2015-04-22 2016-12-08 株式会社日立製作所 秘匿化データベースシステム及び秘匿化データ管理方法
JP2018148493A (ja) * 2017-03-08 2018-09-20 日本放送協会 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3813669B2 (ja) * 1995-10-27 2006-08-23 松下電器産業株式会社 端末装置及び端末装置の能力情報通知方法
US7395437B2 (en) * 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
JP4634392B2 (ja) * 2004-09-24 2011-02-16 富士通株式会社 コンテンツ配信プログラム、方法、サーバ、コンテンツ利用装置及びシステム
US8349256B2 (en) * 2008-11-21 2013-01-08 Sysmex Corporation Blood cell analyzer, blood cell analyzing method, and computer program product
US8838968B2 (en) * 2012-05-14 2014-09-16 Ca, Inc. System and method for virtual machine data protection in a public cloud
US9747456B2 (en) * 2013-03-15 2017-08-29 Microsoft Technology Licensing, Llc Secure query processing over encrypted data
US9225691B1 (en) * 2013-09-27 2015-12-29 Emc Corporation Deduplication of encrypted dataset on datadomain backup appliance
US20180063092A1 (en) 2015-04-10 2018-03-01 Pcms Holdings, Inc. System and method for delegation of cloud computing processes
US10789374B2 (en) * 2016-03-28 2020-09-29 Hitachi, Ltd. Database system and data retrieval method
JP2019158347A (ja) 2018-03-07 2019-09-19 日本電産株式会社 無線通信装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10303880A (ja) * 1997-05-01 1998-11-13 Digital Vision Lab:Kk サービス提供システム
JP2001069133A (ja) * 1999-08-27 2001-03-16 Ntt Communications Kk 情報処理方法及びその装置
JP2005242740A (ja) * 2004-02-27 2005-09-08 Open Loop:Kk 情報セキュリティシステムのプログラム、記憶媒体、及び情報処理装置
JP2012123614A (ja) * 2010-12-08 2012-06-28 Hitachi Ltd 検索可能暗号処理システム
US20130191650A1 (en) * 2012-01-25 2013-07-25 Massachusetts Institute Of Technology Methods and apparatus for securing a database
WO2015107561A1 (ja) * 2014-01-14 2015-07-23 三菱電機株式会社 検索システム、検索方法および検索プログラム
JP2016206918A (ja) * 2015-04-22 2016-12-08 株式会社日立製作所 秘匿化データベースシステム及び秘匿化データ管理方法
JP2018148493A (ja) * 2017-03-08 2018-09-20 日本放送協会 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282959A (zh) * 2021-06-09 2021-08-20 支付宝(杭州)信息技术有限公司 业务数据处理方法、装置及电子设备
WO2022269862A1 (ja) * 2021-06-24 2022-12-29 日本電信電話株式会社 顧客抽出システム、情報管理システム、分析依頼装置、顧客抽出方法、プログラム
WO2023021931A1 (ja) * 2021-08-17 2023-02-23 株式会社日立製作所 情報処理プログラムおよび情報処理装置
WO2023085196A1 (ja) * 2021-11-09 2023-05-19 株式会社日立製作所 計算機システム及び情報処理方法

Also Published As

Publication number Publication date
EP3786828A1 (en) 2021-03-03
US11475121B2 (en) 2022-10-18
US20210064741A1 (en) 2021-03-04
JP7249248B2 (ja) 2023-03-30

Similar Documents

Publication Publication Date Title
JP7249248B2 (ja) 秘匿情報処理システム及び秘匿情報処理方法
US8447983B1 (en) Token exchange
KR101371608B1 (ko) Dbms 및 데이터베이스에서 암호화 방법
US10664610B2 (en) Method and system for range search on encrypted data
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
US7930560B2 (en) Personal information management system, personal information management program, and personal information protecting method
US10095719B2 (en) Method and system to perform secure Boolean search over encrypted documents
Pham et al. Survey on secure search over encrypted data on the cloud
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
CN103336929A (zh) 用于已加密文件访问的方法和系统
KR20140029984A (ko) 의료정보 데이터베이스 운영 시스템의 의료정보 관리 방법
JP6619401B2 (ja) データ検索システム、データ検索方法およびデータ検索プログラム
AU2017440029A1 (en) Cryptographic key generation for logically sharded data stores
JP4594078B2 (ja) 個人情報管理システムおよび個人情報管理プログラム
JP2017033305A (ja) 情報処理システム及び情報処理方法
Abouakil et al. Data models for the pseudonymization of DICOM data
JP7132506B2 (ja) 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
Raj et al. Efficient mechanism for sharing private data in a secured manner
JP5969681B1 (ja) 秘密情報管理システム
WO2022137944A1 (ja) 情報処理装置、情報処理システム、及び情報処理方法
Rahman et al. A novel privacy preserving search technique for stego data in untrusted cloud
WO2023047926A1 (ja) データ共有システム、データ共有方法およびデータ共有プログラム
US11308233B2 (en) Method for information retrieval in an encrypted corpus stored on a server
Mathew et al. Facilitating efficient encrypted document storage and retrieval in a cloud framework
Rajkumar et al. An Authenticated Privacy Preserving Multiword Data Retrieval over Encrypted Cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230317

R150 Certificate of patent or registration of utility model

Ref document number: 7249248

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150