(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-26
(45)【発行日】2022-11-04
(54)【発明の名称】準同型に暗号化されたデータに対する検証および演算の実行のためのシステムおよび方法
(51)【国際特許分類】
H04L 9/30 20060101AFI20221027BHJP
【FI】
H04L9/30 Z
(21)【出願番号】P 2018554352
(86)(22)【出願日】2017-03-27
(86)【国際出願番号】 CA2017050382
(87)【国際公開番号】W WO2017177313
(87)【国際公開日】2017-10-19
【審査請求日】2020-03-26
(32)【優先日】2016-04-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-11-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520103724
【氏名又は名称】ロリカ サイバーセキュリティ インコーポレイテッド
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】グラック,グレン
(72)【発明者】
【氏名】ケデル,アルハサーン
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2011-211593(JP,A)
【文献】特開2014-119486(JP,A)
【文献】特開2015-184594(JP,A)
【文献】特開2015-099961(JP,A)
【文献】米国特許出願公開第2015/0288665(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/38
G09C 1/00
G06F 21/30-21/46
(57)【特許請求の範囲】
【請求項1】
暗号化状態のデータを完全に復号することなく、前記データからの情報をセキュアに伝送および抽出するための方法であって、
前記方法が、コンピュータソフトウェアにより指令されるコンピュータによって自動的に行われ、前記方法が、
データ要求を受信することであって、前記データ要求の少なくとも一部が準同型暗号化方式に従って暗号化され、前記データ要求の前記暗号化部分が
、複数の文字列を含む少なくとも
1つの機密データ群を含
み、前記複数の文字列が、前記機密データ群内の複数のデータフィールドに対応することと、
1つ以上の暗号化状態の比較データ群をデータベースから取得することであって、暗号化状態の
各比較データ
群が、前記準同型暗号化方式に従って暗号化され
、かつ、前記機密データ群内の複数のデータフィールドに対応する複数のデータフィールドを含むことと、
集合的に前記複数の文字列に対して1つ以上の準同型演算を使用
して、
前記データ要求からの暗号化状態の機密データ群を暗号化状態の
各比較データ
群と比較して、暗号化状態の前記機密データ群に一致する暗号化状態の比較データ群を判別し、一致
の際に前記機密データ群を検証することと、
前記機密データ群の検証の成否を示す暗号化状態の指標を生成することと、
前記データ要求に関連付けられた当事者に前記暗号化状態の指標を転送することと、
を含み、
前記方法の最中に前記機密データ群が一切復号されない、方法。
【請求項2】
前記準同型暗号化方式が完全準同型暗号化方式であるかsomewhat準同型暗号化方式である、請求項1に記載の方法。
【請求項3】
前記データ要求がさらに、少なくとも1つの非機密データ群を含む、請求項1に記載の方法。
【請求項4】
前記データ要求が複数の機密データ群を含む、請求項1に記載の方法。
【請求項5】
検証対象の機密データ群を判別するステップの実行をさらに含む、請求項4に記載の方法。
【請求項6】
前記データ要求の一部が前記比較データ群と比較され、前記比較データ群のサイズを削減した後に暗号化状態の前記機密データ群を比較する、請求項1に記載の方法。
【請求項7】
前記1つ以上の準同型演算
が組み合わ
さってXNOR演算を構成する、請求項1に記載の方法。
【請求項8】
前記機密データ群が
、身分証明書、パスポート、運転免許証、セキュリティカード、キャッシュカード、クレジットカード、および健康保険証のいずれかに由来する、請求項1に記載の方法。
【請求項9】
前記暗号化状態の指標が、前記データ要求の送信元である前記当事者と異なる当事者に送信される、請求項1に記載の方法。
【請求項10】
コンピュータ可読命令を包含する非一時的なコンピュータ可読メディアであって、前記コンピュータ可読命令が、コンピュータプロセッサにより実行されるときに、
データ要求を受信し、準同型暗号化方式に従って暗号化された前記データ要求の少なくとも一部をもってデータを検証し、前記データ要求が
、複数の文字列を含む少なくとも1つの機密データ群を含
み、前記複数の文字列が、前記機密データ群内の複数のデータフィールドに対応することと、
1つ以上の暗号化状態の比較データ群をデータベースから取得することであって、暗号化状態の
各比較データ
群が、前記準同型暗号化方式に従って暗号化され
、かつ、前記機密データ群内の複数のデータフィールドに対応する複数のデータフィールドを含むことと、
集合的に前記複数の文字列に対して1つ以上の準同型演算を使用
して、前記機密データ群を暗号化状態の
各比較データ
群と比較し、前記機密データ群に一致する暗号化状態の比較データ群を判別し、一致
の際に前記機密データ群を検証することと、
前記機密データ群の検証の成否を示す暗号化状態の指標を生成することと、
前記データ要求に関連付けられた当事者に前記暗号化状態の指標を転送することと、
を含む方法をコンピュータに行わせ、
前記機密データ群が一切復号されない、コンピュータ可読メディア。
【請求項11】
前記準同型暗号化方式が完全準同型暗号化方式であるかsomewhat準同型暗号化方式である、請求項10に記載のコンピュータ可読メディア。
【請求項12】
前記データ要求がさらに、少なくとも1つの非機密データ群を含む、請求項10に記載のコンピュータ可読メディア。
【請求項13】
前記データ要求が複数の機密データ群を含む、請求項10に記載のコンピュータ可読メディア。
【請求項14】
検証対象の機密データ群を判別するステップの実行をさらに含む、請求項10に記載のコンピュータ可読メディア。
【請求項15】
前記データ要求の一部が前記比較データ群と比較され、前記比較データ群のサイズを削減した後に暗号化状態の前記機密データ群を比較する、請求項10に記載のコンピュータ可読メディア。
【請求項16】
前記1つ以上の準同型演算
が組み合わ
さってXNOR演算を構成する、請求項10に記載のコンピュータ可読メディア。
【請求項17】
前記機密データ群が
、身分証明書、パスポート、運転免許証、セキュリティカード、キャッシュカード、クレジットカード、および健康保険証のいずれかに由来する、請求項10に記載のコンピュータ可読メディア。
【請求項18】
前記暗号化状態の指標が、前記データ要求の送信元である前記当事者と異なる当事者に送信される、請求項10に記載のコンピュータ可読メディア。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、準同型に暗号化されるデータのシステムおよび方法に関し、より具体的には、機密データの復号を伴わない、準同型に暗号化された機密データの検証および当該機密データに対する演算の実行に関する。
【背景技術】
【0002】
特に無線伝送およびクラウドデータサービスを通じて伝送され、共有される個人データが増えるにつれて、秘密の個人情報のプライバシーがますます重要になってきている。プライバシーの問題が発生する理由は、クラウドサーバにセキュリティ違反があるおそれがあるほか、サービス提供者そのものがこの機密情報を濫用するおそれがあるためである。標準的な暗号化方式は、破るのが困難な暗号化方式を工夫することによってこれらの懸念に対処しようとしているが、それでも、サービス提供者がこの機密データを濫用する可能性は解消されない。
【0003】
金融データや医療データなどの機密データおよび個人データのプライバシーは最も関心が高い領域である。しかし、金融取引を実行したり、研究の実施または健康上の緊急事態に対処する目的で医療データにアクセスできるようにしたりするなど、正当な目的でこのデータにアクセスできることも重要である。
【0004】
したがって、当該技術の改良が必要である。
【発明の概要】
【0005】
本発明の一実施形態によれば、暗号化状態のデータを完全に復号することなく、データからの情報をセキュアに伝送および抽出するための方法であって、データ要求を受信し(データ要求の少なくとも一部は準同型暗号化方式に従って暗号化され、データ要求の暗号化部分は少なくとも機密データ群を含む)、1つ以上の暗号化状態の比較データ群をデータベースから取得し(暗号化状態の比較データ群はそれぞれ準同型暗号化方式に従って暗号化される)、1つ以上の準同型演算を使用してデータ要求に含まれる暗号化状態の機密データ群を暗号化状態の比較データ群それぞれと比較し、暗号化状態の機密データ群と一致する暗号化状態の比較データ群を判別し、一致したときに機密データ群を検証し、機密データ群の検証の成否を示す暗号化状態の指標を生成し、データ要求に関連付けられた当事者に暗号化状態の指標を転送する方法であって、この方法の中で機密データ群が一切復号されない方法が提供される。
【0006】
本発明の別の実施形態によれば、ネットワークに接続して複数のリモートデータデバイスから準同型暗号化状態のデータを受信するためのネットワークインタフェースと(準同型暗号化状態のデータは、リモートデータデバイスに関連付けられたユーザに関連付けられる)、そのネットワークインタフェースに接続される計算エンジンと(計算エンジンは、データに対する準同型計算を実行して、選択的に復号可能な計算結果を得るように構成される)を備えるデータシステムが提供される。
【0007】
本発明のまた別の実施形態によれば、準同型計算を実行するための装置であって、記憶装置および少なくとも1つのプロセッサを備え、準同型計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって多項式級数の値を計算して暗号化状態の結果を得るように構成され(暗号化状態のデータは暗号化方式に従って暗号化される)、準同型関係演算を実行して暗号化状態の結果を暗号化状態の条件と比較するように構成され(暗号化状態の条件は暗号化方式に従って暗号化される)、比較の結果を出力するように構成される装置が提供される。
【0008】
本発明のまた別の実施形態によれば、コンピュータによる読み込みが可能な一時的でないメディアであって、コンピュータによる読み込みが可能な命令を含み、その命令がコンピュータプロセッサによる実行時に、データ要求を受信し、データ要求の少なくとも一部が準同型暗号化方式に従って暗号化されたデータを検証し(データ要求は少なくとも1つの機密データ群を含む)、1つ以上の暗号化状態の比較データ群をデータベースから取得し(暗号化状態の比較データ群はそれぞれ準同型暗号化方式に従って暗号化される)、1つ以上の準同型演算を使用して機密データ群を暗号化状態の比較データ群それぞれと比較し、機密データ群と一致する暗号化状態の比較データ群を判別し、一致したときに機密データ群を検証し、機密データ群の検証の成否を示す暗号化状態の指標を生成し、データ要求に関連付けられた当事者に暗号化状態の指標を転送し、機密データ群が一切復号されないメディアが提供される。
【0009】
本発明のまた別の実施形態によれば、セキュアな金融取引を処理する方法であって、金融取引を完了するための、少なくとも部分的に準同型に暗号化された要求を受信し(要求は格子ベース完全準同型暗号化(FHE)方式に従って準同型に暗号化され、取引要求は、口座番号を含む機密カード保有者データ、非機密カード保有者データ、および取引データを含む)、格子ベースFHE方式に従って暗号化された、1つ以上の準同型暗号化状態の比較用カード保有者データ群を取得し、1つ以上の準同型演算を使用することによって機密カード保有者データを比較用カード保有者データ群それぞれと比較することで、機密カード保有者データに一致する比較用カード保有者データ群を判別し、機密カード保有者データを検証し、少なくとも機密カード保有者データの検証に基づいて金融取引を完了するための要求の認可または拒否を示す指標を生成および暗号化し、金融取引を完了するための要求の認可または拒否を示す暗号化状態の指標を、その金融取引を完了するための認可を求めている当事者に転送する方法であって、この方法の中で機密カード保有者データが一切復号されない方法が提供される。
【0010】
本発明のまた別の実施形態によれば、コンピュータによる読み込みが可能な一時的でないメディアであって、コンピュータによる読み込みが可能な命令を含み、その命令がコンピュータプロセッサによる実行時に、金融取引を完了するための、少なくとも部分的に準同型に暗号化された要求を受信し(要求は格子ベース完全準同型暗号化(FHE)方式に従って準同型に暗号化され、取引要求は、口座番号を含む機密カード保有者データ、非機密カード保有者データ、および取引データを含む)、格子ベースFHE方式に従って暗号化された、1つ以上の準同型暗号化状態の比較用カード保有者データ群を取得し、1つ以上の準同型演算を使用することによって機密カード保有者データを比較用カード保有者データ群それぞれと比較することで、機密カード保有者データに一致する比較用カード保有者データ群を判別し、機密カード保有者データを検証し、少なくとも機密カード保有者データの検証に基づいて金融取引を完了するための要求の認可または拒否を示す指標を生成および暗号化し、金融取引を完了するための要求の認可または拒否を示す暗号化状態の指標を、その金融取引を完了するための認可を求めている当事者に転送し、この方法の中で機密カード保有者データが一切復号されないメディアが提供される。
【0011】
本発明のまた別の実施形態によれば、暗号化状態のデータとの比較を実行する方法であって、計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって多項式級数の値を計算して暗号化状態の結果を得(暗号化状態のデータは暗号化方式に従って暗号化される)、準同型関係演算を実行することで暗号化状態の結果を暗号化状態/非暗号化状態の条件と比較し(暗号化状態の条件は暗号化方式に従って暗号化される)、比較の結果を出力する方法が提供される。
【0012】
本発明のまた別の実施形態によれば、ネットワークに接続して複数のリモート医療デバイスから準同型暗号化状態のデータを受信するためのネットワークインタフェースと(準同型暗号化状態のデータは、リモート医療デバイスに関連付けられた患者の測定された生理的データを表す)、そのネットワークインタフェースに接続される計算エンジンと(計算エンジンは、データに対する準同型計算を実行して、選択的に復号可能な計算結果を得るように構成される)を備える医療データシステムが提供される。
【0013】
本発明のまた別の実施形態によれば、準同型計算を実行するための装置であって、記憶装置および少なくとも1つのプロセッサを含み、準同型計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって多項式級数の値を計算して暗号化状態の結果を得るように構成され(暗号化状態のデータは暗号化方式に従って暗号化される)、準同型関係演算を実行して暗号化状態の結果を暗号化状態の条件と比較するように構成され(暗号化状態の条件は暗号化方式に従って暗号化される)、比較の結果を出力するように構成される装置が提供される。
【0014】
本発明による他の態様および特徴は、本発明の実施形態に関する以下の説明および添付の図を踏まえれば、当業者には明白になろう。
【0015】
図面は、本発明の実施形態を、あくまで例として示すものである。
【0016】
同一の参照番号は、図中の同一または対応する要素を示す。
【図面の簡単な説明】
【0017】
【
図1】本発明の一実施形態によるセキュアな計算環境を示す図である。
【
図2】本発明の一実施形態によるリモートデバイスを示す図である。
【
図3】本発明の一実施形態によるデータシステムを示す図である。
【
図4】本発明の一実施形態による鍵管理システムを示す図である。
【
図5】本発明の一実施形態による別のデータシステムを示す図である。
【
図6】本発明の一実施形態による計算を実行するための等式を示す。
【
図7】本発明の一実施形態について各種の例で使用したデータの表である。
【
図8】本発明の一実施形態について各種の例で使用したデータの表である。
【
図9】本発明の一実施形態について各種の例で使用したデータの表である。
【
図10】本発明の一実施形態について各種の例で使用したデータの表である。
【
図11】本発明の一実施形態による関係演算を実装するための疑似コードのリストである。
【
図12】実施したテストのテストパラメータおよび結果を示す。
【
図13】実施したテストのテストパラメータおよび結果を示す。
【
図14】実施したテストのテストパラメータおよび結果を示す。
【
図15】4当事者によるクレジットカード取引システムを示す図である。
【
図16】本発明の一実施形態による決済処理チェーンを示す図である。
【
図17】本発明の一実施形態によるセキュアな決済処理システムを示す図である。
【
図18】本発明の一実施形態による秘密鍵サイズの縮小を示す図である。
【
図19】暗号文サイズの縮小と、フラット化(flatten)関数が不要になることを示す図である。
【
図20】暗号文の乗算演算のための疑似コードを示す。
【
図21】本発明の一実施形態によるパラメータ選択例の表である。
【
図22】本発明の一実施形態による式/等式を示す。
【発明を実施するための形態】
【0018】
本明細書に記載する実施例は医学および金融分野での応用に基づいているが、記載した本発明の手法は他の形態の機密データに応用できる。この文脈では、データの取得、保存、および分析に関係するさまざまな装置および当事者が、処理対象の機密データの種類に対して適切であると考え直すことができる。
【0019】
準同型暗号化/復号
機密データに対して実行される準同型暗号化/復号の演算は、
図1~5および
図6A~6Eに示すように実行できる。鍵の生成は、鍵管理システム36など、セキュアなシステムにおいて行われる。公開鍵68は、機密情報を保持するリモートデバイス20(医療用装置、クレジットカード、リモートセンサなど)を配備する前に、リモートデバイス20に事前にロードできる。代わりに、または加えて、ネットワークリソース(パブリッククラウドなど)を通じて公開鍵68をリモートデバイス20において使用可能にすることもできる。この場合は、公開鍵68にアクセスするために資格情報の検証または認可(ユーザ名およびパスワードなど)を必要とするように構成できる。リモートデバイス20の基板上、およびデータシステム120内の暗号化エンジン62は、以下に記載する準同型暗号化の手法を実装するように構成できる。鍵管理システム36における復号エンジン104は、以下に記載する準同型復号の手法を実装するように構成できる。データシステム22及び120における計算エンジン88は、等式、計算パラメータ、上限、下限、中間結果、および累算結果の保存および処理を含め、以下に記載する計算手法を実装するように構成できる。
【0020】
以下の説明のための表記に関して、奇数の素数をqとした場合の区間(-q/2,q/2)∩Zの環をZ/qZ(またはZq)と記す。表記[x]qは、qを法とするxの簡約を表す。本明細書に記載する例では、商多項式R=Z[X]/Φm(X)によって定義される多項式環を使用する。ここで、Φm(X)=xn+1は既約m次円分多項式であり、nは2のべき乗であり、m=2nである。Rq=R/qRとする。本明細書では、行列および多項式の乗算を含め、すべての種類の乗算を乗算演算子「・」によって表す。最も近い整数への丸めは|a|によって表す。環の行列をAM×Nと定義する。ここで、Aij∈Rqであり、M、Nは行列の次元である。Il×lは環の単位行列を表す。行ベクトルは[a b]と表す。ここで、aおよびbはベクトルの要素とする。一方、列ベクトルは[a;b]と表す。
【0021】
本暗号方式のパラメータはn(数体の次数)、q(法)、σ
kおよびσ
c(それぞれ鍵空間および暗号文空間における離散ガウス誤差分布の標準偏差)、
【数1】
(暗号文における環要素の数を制御する)である。これらのパラメータの設定は、セキュリティレベルλ(例えばλ=80または128ビット)のほか、暗号文に対して評価しようとする関数の複雑さによって決まる。
【0022】
ビット分解関数BD(整数)は、lビットの入力整数を取り、その整数をビット分解した結果を含むサイズlの行ベクトルを出力する。(本明細書(図を含む)に記載する文字lはLの小文字である。)同様にBD(polynomial)は、各係数がlビットの整数である大きさnの入力多項式を取り、入力多項式の各係数をビット分解した結果を含む多項式(それぞれ大きさn)の大きさlの行ベクトルを出力し、大きさl×nの行列を生成する。最後に、BD(Matrix of polynomials)は、大きさx×yの多項式の入力行列を取り(各多項式の大きさはnとし、各係数は整数とする)、列次元に係数lによって展開した多項式の行列を出力し、大きさx×ylの行列を生成する。このとき、行に沿って連続するl個の各要素が、各入力多項式の各係数のビット表現を含むものとする。例えば、入力多項式行列Bx×y×nのビット分解はBD(Bx×y×n)=βx×yl×nである。注意すべき点は、行列βx×yl×nの多項式係数は1ビットの値であるが、CPUまたはGPUの記憶装置における行列βの記憶域所要量はx×yl×nビットと等しくないことである。理由は、アドレス指定が可能な記憶装置の最小単位が1バイト(すなわちバイトアドレッシング可能)であるためである。したがって、βにはx×yl×nバイトの記憶域が必要である。そのため、βx×yl×nの記憶域所要量が少なくともBx×y×nの記憶域所要量の8倍になるともいえる。
【0023】
ビット分解逆関数BDI()はビット分解関数BD()の逆関数である。BDI()関数は、行に沿って連続するl個の係数をグループ化し(係数が2進値である必要はない)、それらlビットに対応する整数を出力する。数学的には、BDI()は、多項式の展開後の行列β
x×ylの右側から、
図6Aの等式で定義する行列α
yl×yを掛ける演算として定義できる。(明瞭にするために、以後、多項式の次元nを省略する)。したがってB
x×y=BDI(β
x×yl)=β
x×yl・α
yl×yである。
【0024】
Ring Learning With Errors(RLWE)ベースの暗号化方式。
本方法およびシステムはRLWE(Ring Learning With Errors)暗号方式を利用できる。以下では、当該方式の一般的な原理について説明する。ただし、本方式は特に制限されるものではなく、他の適切な多項式ベースの完全準同型暗号方式を使用できる。さらに、下記における相違点はいずれも、周知の技術の観点から暗号分野の当業者に十分理解されよう。
【0025】
本システムおよび方法は、鍵の生成、情報の暗号化、および情報の復号を行うように構成される。
【0026】
鍵生成器は、以下のようにKeygen(1
λ)関数を実装するように構成される。多項式
【数2】
を選択する。秘密鍵はsk=s
2×1←[1;-t]∈R
q
2になる。公開鍵はpk=A
1×2=[b a]である。ここで、一様な標本a←R
q、
【数3】
であり、b=a・t+eとする。このとき、
図22aの式が成立する。
【0027】
図18に示すように、これは、[x,2x,…,2
l-1x]と定義されるPO2(x)などの2のべき展開に基づく周知の秘密鍵sk=v=PO2(s)よりも有利である。したがって、本鍵生成器は、l倍の理論係数の分だけ小さな秘密鍵を生成する。
【0028】
暗号化エンジン62は、以下のようにEnc(pk,μ)関数を実装するように構成される。メッセージ空間はR
qである。一様ベクトルr
N×1のサンプリングでは、rの多項式の各係数が{0,1}、
【数4】
からサンプリングされる。平文の多項式μ∈R
qは、
図22bの式を計算することで暗号化される。
図19に示すように、この方式は、暗号化エンジン62によってl倍の理論係数の分だけ小さな暗号文が得られるため、C
N×Nを使用する先行技術よりも有利である。
【0029】
復号エンジン104は、以下のようにDec(sk,C)関数を実装するように構成される。暗号文をCとすると、
図22cの式に従ってCに暗号鍵sを掛けることにより、平文μ∈R
qが復元される。
【0030】
この方式は、暗号化エンジン104に必要な演算性能がl倍の理論係数の分だけ少ないため、Dec(sk,C)=CN×N・vN×1を実装する先行技術よりも有利である。
【0031】
図22cに示す式の第1項の先頭からl個の係数はμ、2μ、…2
l-1μの形になっていることに注意されたい。これは、位置i∈[0,l-1]にある要素がμ・2
i+誤差の形をしていることを意味する。すなわち、誤差がq/2未満であり、先行技術に見られるようにqを法とするラップアラウンドが理論上ないと仮定すると、各項目の最上位ビットは数値μのうちの1ビットを保持する。
【0032】
以上で、事前に暗号文を復号することなく暗号文に対する演算を行うことができる。入力暗号文CN×2およびDN×2∈Rq
N×2がそれぞれμ1およびμ2を暗号化しているとすると、準同型演算は以下のように実装される。
【0033】
加算演算子は、項目ごとの加算CN×2+DN×2を実行することによって2つの暗号文CN×2およびDN×2を加算するADD(C,D)関数を実装する。
【0034】
乗算演算子およびビットごとの分解関数は、一方の暗号文に対してビットごとの分解関数(BD)を実行した後、BD(CN×2)・DN×2の乗算を実行することによって2つの暗号文CN×2およびDN×2を掛けるMULT(C,D)関数を実装する。
【0035】
図19に示すように、この方式は、MULT(C,D)=FLATTEN(C
N×N・D
N×N)を定義する先行技術よりも有利である(ここで、FLATTEN(A)はBD(BDI(A))と定義する)。本手法で必要な演算は、少なくともl倍の理論係数の分だけ少ない。
【0036】
上記の準同型加算が正しいことは、当業者には容易に明白になろう。乗算は入力暗号文CおよびDで非対称的である。すなわち、Dの成分はひとまとまりで扱われるのに対し、Cの成分はビットごとに分解される。以下で説明するように、この乗算は正しく、ノイズ増大速度も遅い。
【0037】
図22dの式を見れば、前述の乗算演算が正しいことは当業者には容易に明白になろう(同図においては、明瞭にするために行列の次元を省略している)。
図22dに示す式の操作における最終行は、明らかにμ=μ
2・μ
1の暗号化である。
【0038】
正確に復号されるかどうかは、暗号文ノイズの制限によって決まる。したがって、準同型演算によってどのように暗号文のノイズが増加するかを理解することが重要である。作成直後の(fresh)暗号文をCとする。v個の暗号文の準同型加算によって、最悪の場合に係数vだけノイズが増加することは明らかである。十分に考えられた各種の実装では、誤差多項式の係数がガウス分布に従うと考えられるため、この係数は
【数5】
に近づく。
【0039】
さらに、2つの暗号文C=Enc(μ
1)およびD=Enc(μ
2)があり、誤差の大きさがそれぞれB
1およびB
2であるとすると、これら2つの暗号文の準同型乗算によって、最悪の場合に誤差が
【数6】
に増加し、十分に考えられた各種の実装では誤差が
【数7】
に増加する。ここで、
【数8】
はメッセージ多項式μのl
1ノルムである。上記から明らかなように、2つの暗号文の誤差依存性が非対称であると好都合である。
【0040】
v個の暗号文を掛けるにあたっては、乗算の順序が誤差に影響すると考えられる。本明細書に記載する手法では、入力μは通常0または1であり、増大はB
1に関して単純に加算的である。したがって、乗算の二分木を使用せずに、
図20に示すように(同一の)誤差レベルBを持つv個の暗号文の乗算をアキュムレータ様の関数によって行うことが好ましい(二分木を使用すると、誤差が超多項式の速度で増大する傾向がある)。これに伴う誤差の増大は、最悪の場合でO(B・vnlog(q))であり、十分に考えられた各種の実装では
【数9】
である。したがって、制御ロジックは、
図20に示すように、および十分に考えられた各種の実装で必要とされるように、累積乗算を実装するように構成できる。
【0041】
例として、以下では
図22eの式を参照する。x
1、…、x
vは暗号化する入力ビットv個からなる集合とし、y
1、…、y
vは何らかの集合Sのv個のビットからなる集合とし、演算
【数10】
はビットx
iとy
iとの間の2進XNORを表すとする。
図25eの式の形から、いずれか1項だけが残ること(x
1,…,x
v∈Sの場合はF=1、それ以外の場合はF=0)が明らかであるため、
図22eの式に基づく成分の計算からどの項が残るかを正確に決定できない場合であっても、誤差の合計の増大は小さいといえる。
【0042】
ノイズが、最悪の場合でO(B・vnlog q・|S|)に、十分に考えられた各種の実装で
【数11】
に増大することは明らかである。これは、IBM HElibで実装されている既知のBrakerski-Gentry-Vaikuntanathan暗号化方式を使用した場合の
【数12】
と対照的である。実際、
図22eの式に示すように、これらの式に特別なところはまったくなく、後述する決定木およびPIR様関数の評価でごく自然に発生する。
【0043】
本明細書に開示する手法によってもたらされる改善の別の要因は、誤差項
【数13】
から明らかである。
図20に示すように、アキュムレータを使用して乗算を実行するとき、B
2は、作成直後の暗号文C
iの小さい誤差を表し、B
1は、累算された暗号文C
accumの大きい誤差を表す。C
iがμ
2=0を暗号化する場合、大きい側の誤差項B
1は誤差の式から消える。
【0044】
この誤差の縮小は、
図22eの式からも明らかである。
図22eの式にあるそれぞれの積を評価するとき、誤差は、v(乗算の総数)ではなく、k(末尾から続く連続する1の最長の連鎖)に比例して増大すると見なすことができる。理由は、前述のとおり、乗算の連鎖の中で最後に0が出現すると誤差が縮小するためと考えられる。予想される集合をSとし、末尾の1の連鎖の予想される長さを
【数14】
と仮定する。言い換えると、vの倍数が誤差の式からも消え、誤差の増大が
【数15】
に近くなる。これは実質的に、|S|個の暗号文を加算したのと同じ結果である。
【0045】
さらに、fを評価対象の関数とすると(例えば
図22eの式)、error
f(B,n,q)は、大きさBの初期誤差を持つR
qの暗号文に対して関数fを評価するときに誤差がどの程度増大するかを示す。正確に復号するためには、
図22fの式が成立する必要がある。本手法を使用すると誤差の増大が遅くなる傾向があるため、それに応じてqを小さく設定しても、先行技術のセキュリティレベルと同等のセキュリティレベルを満たすことができる。LindnerおよびPeikertの分析によると、λビットのセキュリティレベルの場合は、以下の式が成立する必要がある。
【数16】
【0046】
本手法におけるlog qは小さくなるため、同じセキュリティレベルλであればnもより小さく設定できる。さらに、nが小さくなればerror
f(B,n,q)も小さくなる可能性があるため、qをさらに小さくできる(以下同様)。適切なパラメータは、
図22fおよび22gに示す上記の両不等式を連立させて解くことで得られる。
図21に、このようなパラメータ選択の例をまとめた。
【0047】
NTRUベースのFHE方式
本発明の一部の例では、RLWEベースのFHE方式の代替として、NTRU式の暗号化方式を使用して計算の複雑さを低減し、演算を高速化する。以下では、この点について詳細に説明する。当該暗号化システムは以下のように動作する。
【0048】
鍵生成関数Keygen(1
λ)は2つの多項式
【数17】
を必要とする。ここで、(a)fは環R
qの可逆元、かつ(b)f≡1 (mod 2)とする。これは、条件(a)および(b)を満たすまで分布
【数18】
から多項式fをサンプリングすることで実現できる。
【0049】
公開鍵pkおよび秘密鍵skは、
図6Bに示す等式から計算できる。
【0050】
暗号化関数Enc(pk,m)に関し、メッセージ空間はR
qである。平文の多項式μ∈R
qは、
図6Cの等式を評価することで暗号化される。ここで、
【数19】
は標準偏差σ
cの離散ガウス分布からサンプリングする。この暗号化関数は暗号化エンジン62において実装できる。
【0051】
任意の暗号文Cに対する復号関数Dec(sk,C)に関して、平文μ∈R
qは、
図6Dの等式を使用してCに秘密鍵fを掛けることで復元される。この復号関数は復号エンジン104において実装できる。
【0052】
図6Dに関し、最終行の第1項にあるl個の多項式はμf、2μf、…、2l-1μfの形をしている。これは、位置i∈[0,l-1]にある要素がμf・2
i+誤差の形をしていることを意味する。すなわち、誤差がq/2未満であり、先行技術に見られるようにqを法とするラップアラウンドがないと仮定すると、各項目の最上位ビットは、μfの各係数のうちの1ビットを保持する。そのため、μfはCから完全に復元でき、さらにf
-1を掛けることでμを復元できる。
【0053】
メッセージ多項式μを復元できるほか、以下で説明するように、暗号文にあるl個の環要素により、準同型演算(特に準同型乗算)におけるノイズの増大が緩和され、対処可能になる。
【0054】
準同型演算に関し、入力暗号文Cl×1およびDl×1∈Rq
l×1がそれぞれμ1およびμ2を暗号化しているとすると、準同型演算は以下のように定義される。2つの暗号文Cl×1およびDl×1を加える加算演算ADD(C,D)の場合、出力はCl×1+Dl×1であり、これは項目ごとの加算である。2つの暗号文Cl×1およびDl×1を掛ける乗算演算MULT(C,D)の場合、出力はBD(Cl×1)・Dl×1である。加算および乗算の演算は計算エンジン88において実装できる。
【0055】
上記の準同型加算および準同型乗算が正しいことは、本開示を考慮すれば、当業者には容易に明白になろう。乗算演算は入力暗号文CおよびDで非対称的であることは明白である。すなわち、Dの成分はひとまとまりで扱われるのに対し、Cの成分はビットごとに分解される。以下では、この乗算方法が正しく、ノイズ増大速度が遅いことを示す。
【0056】
上記の乗算演算が正しいことは、
図6Eに示す復号演算から明白である(同図においては、明瞭にするために行列の次元を省略している)。
図6Eの最終行はμ=μ
2・μ
1・fの暗号化であることに注意されたい。また、BD(C
l×1)・BDI(I
l×l)=I
l×l・C
l×1=C
l×1である。
【0057】
ノイズ分析に関し、作成直後の暗号文をCとすると、
図6Eに示す演算を考慮して以下のことがいえる。v個の暗号文の準同型加算によって、最悪の場合に係数vだけノイズが増加する。実装によっては、誤差多項式の係数がガウス分布に従うため、この係数は
【数20】
に近づく。さらに、2つの暗号文C=Enc(μ
1)およびD=Enc(μ
2)があり、誤差の大きさがそれぞれB1およびB2であるとすると、これら2つの暗号文の準同型乗算によって、最悪の場合に誤差が
【数21】
に増加し、十分に考えられた各種の実装では誤差が
【数22】
に増加する。ここで、
【数23】
は、メッセージ多項式μのl
1ノルムを表す。このことから分かるように、2つの暗号文の誤差依存性は非対称である。
【0058】
パラメータの設定に関し、評価対象でありv個の暗号文の乗算を計算する関数をfとすると、error
f(B,n,q)は、大きさBの初期誤差を持つR
qの暗号文に対して関数fを評価するときに誤差がどの程度増大するかを示す。正確に復号するためには、
図6Fの式を満たす必要がある。
【0059】
本発明による誤差の増大は周知の一部の方式より遅いと考えられるため、およびノイズの増大を制御するためのモジュラスのチェーンが不要であると考えられるため、それに応じてqを小さく設定しても、それら周知の方式によって得られるセキュリティレベルと同じセキュリティレベルを確保できる。λビットのセキュリティレベルの場合は、
図6Gの等式を満たす必要がある。
【0060】
本発明によるlog qは周知の方式より小さくできるため、nを小さく設定しても同じセキュリティレベルλを確保できる。さらに、nが小さくなれば新たなerror
f(B,n,q)も小さくなるため、qをさらに小さくできる(以下同様)。最適なパラメータは、
図6Fおよび6Gに示す上記の不等式を連立させて解くことで得られる。
図7の表にパラメータ選択の例をまとめた。
【0061】
さらに、本実施形態による暗号化方式では、GSW方式によって導入されたフラット化演算を使用しない。フラット化された暗号文(Ctxt)は大きな記憶空間を占有する。また、項目の結合およびビットへの分解に必要な計算時間が長い(mビットのグループに分解して高い基数のビット分解演算を行う場合であっても同様である)。さらに、本発明による暗号化方式ではフラット化演算を使用しないため、暗号文を表す単一ビットも持たない。それだけでなく、暗号文はqを法とするパック数として表される。暗号文の乗算を行うには、通常の多項式循環畳み込みを使用するのではなく、高速なNTTアルゴリズムを使用して暗号文の乗算演算を高速化すると有利である。本実施形態による暗号化方式では、暗号文の1つの多項式の1ビットのみを復号するのではなく、暗号文のl個すべての多項式の最上位ビットを復号する。この方法では、lビット(各多項式から1ビットずつ)を復号できる。これらのビットは、
図6Wに示す式を使用して結合され、暗号化状態の多項式が構成される。
【0062】
以下では、収集可能な暗号化状態の機密データの種類、およびそれに対して実行可能な準同型計算について説明する。以下に記載するデータ/計算は、暗号化状態のゲノムデータ、疾患の予測分析、関係演算の評価などの医療データの分析を含む。ここに記載する他のデータには、金融取引データ、特にクレジットカードのデータもある。記載している一部の例は特定のデータに関係しているが、一部の計算(関係演算など)は他の種類のデータに対して使用できる。さらに、以下に記載する例は限定的なものではなく、本発明の範囲内の他の例も考慮されることに注意されたい。
【0063】
金融取引
準同型暗号化システムの実施形態の応用分野として、金融取引、特にクレジットカード取引も挙げられる。近年、クレジットカードに対する攻撃は著しくエスカレートしており、大規模な侵害の事例では、数百万もの顧客レコードが流出している。いったん流出すると、顧客情報が(ダークウェブなどで)転売されたり、不正な取引、特に非対面(CNP)取引に利用されたり、販売時点情報管理(POS)システムに対する直接攻撃に利用されたりする可能性がある。
【0064】
これらの攻撃が起きる理由は、データベース内または顧客のいずれかのクレジットカード情報が、クレジットカードのオーソリゼーション処理のある時点で平文の形式で存在するためである。本発明の一実施形態によれば、システムが、クレジットカード情報の取得時点から当該情報を暗号化でき、認証段階であってもその暗号文が復号されることがない。
【0065】
決済処理
VISA(登録商標)やMasterCard(登録商標)など、主要なクレジットカード会社は、4当事者モデル(four-party model)によるクレジットカード取引を構築している。このモデルの当事者はカード保有者1500、加盟店1510(サービス提供者)、決済処理者1520(アクワイアラ)、およびカード発行者1540である。さらに、第5の当事者としてクレジットカード会社(決済ブランド)1530が存在する場合もある。これらを
図15に示す。
【0066】
カード保有者1500が何かを買おうとしてオンラインの加盟店でクレジットカード情報を使用するか、店頭でクレジットカード1505を加盟店1510に提示すると、取引が始まる。加盟店1510は(オンラインで、またはPOSシステムを使用して)クレジットカード情報を取得して暗号化し、ネットワーク経由で決済処理者1520に送信する(1515)。加盟店における暗号化は、公開暗号鍵を使用し、POS端末で行うか、加盟店のシステムにインストールされたアプリケーションを使用して行うことができる。次に、決済処理者1520がそのクレジットカード情報を復号してカード発行者1530に転送し(1525)、オーソリゼーションを受ける。加盟店1510は、クレジットカードのオーソリゼーションを得ると、クレジットカードに課金し、サービスまたは製品をカード保有者1500に提供する。決済処理者1520はそのサービス提供の費用を加盟店に弁済し、その後、カード発行者1530が24時間または48時間以内に決済処理者1520に対する支払いを行う。決済処理者と加盟店との間でトークン化されたシステムを使用すると、加盟店がカード保有者の情報を保存する必要をなくすことができる。加盟店は、カード保有者の口座または個々の取引に対応するトークンのみを保存する。
【0067】
カード保有者および取引のデータなどの情報のほか、ネットワークフィーやインタチェンジフィーなどの内部手数料は、決済処理者1520とクレジットカード会社1540との間(1545)、カード発行者1530とクレジットカード会社1540との間(1555)、またはこれら両方で、取引中に必要に応じて、または取引後に渡される場合がある。
【0068】
このクレジットカードシステムには脆弱な点が複数あり、攻撃者がクレジットカード情報を盗める可能性がある。
【0069】
販売時点情報管理(POS)システム:カード保有者が加盟店でカードを提示すると、クレジットカードの機械またはカード読み取り装置にそのカードが通され、その情報がコンピュータに転送される。このカード情報が決済処理者に送信されるまでに、ある程度の時間にわたってそのカード情報が暗号化されない段階がシステムに存在する可能性がある。システムにマルウェアがインストールされていると、この段階でその情報を収集し、攻撃者に送信することができる。この脆弱性に対処するには、カード読み取り装置を使用してクレジットカード情報を読み取った瞬間にその情報を暗号化しなければならない。この方法によれば、マルウェアがこの方法を使用してカード情報を収集することはできない。現在は、P2PE(point to point encryption)を使用してセキュアにPOSシステムから決済処理者にクレジットカード情報を伝送した後、決済処理者が復号してカード発行者に送信し、検証を依頼している。P2PEは暗号化に3DESまたはAESを使用する。これらは現在のところ安全であると考えられるが、将来量子コンピュータに対してもセキュアであるとは限らない。
【0070】
決済処理者:決済処理者は、暗号化されたクレジットカード情報を加盟店から受信すると、その情報を復号し、平文でカード発行者に送信して認証を依頼する。これは明らかな弱点である。決済処理者のシステムにマルウェアがインストールされていたり、決済処理者とカード発行者との間のセキュアチャネルに攻撃者が侵入したりすると、平文の形式になっているクレジットカード情報をそのマルウェアや攻撃者が収集できる。この脆弱性に対処するには、いかなる時点でも絶対にクレジットカード情報を復号してはならない。さらに、トークン化されたシステムの場合も、取引とトークンとの間の相互変換を行うセキュアな保管場所が存在する。この保管場所には、カード保有者の全情報および対応するトークンが保存される。この保管場所がハッキングされると、大切な情報が危険にさらされる。
【0071】
カード発行者には以下の2つの脆弱性がある。1)顧客のクレジットカード情報を平文で受信すること。そのため、情報が攻撃の可能性にさらされている。2)カード発行者にある、全顧客のクレジットカード情報のデータベースは、受信したカード情報とそのデータベースの情報を比較するために、セキュアサーバに平文で存在する。これは、クレジットカード情報におけるセキュリティ上の最大の脅威である。理由は、このセキュアデータベースが攻撃されると全クレジットカード情報が失われるためである。
【0072】
データベースにある全クレジットカード情報のほか、平文で受信されるカード情報も暗号化し、暗号文の状態で比較すれば、これらの脆弱性を解決できる。
【0073】
本発明の一実施形態を
図16に示す。この実施形態は、現行のシステムよりずっと高いセキュリティレベルを実現できるようにクレジットカードのオーソリゼーションシステムを変更したものである。本システムは、格子ベース暗号に基づく量子セキュアな完全準同型暗号化(FHE)を使用したPOSシステムにおけるクレジットカード情報の暗号化を基盤とすることができる。FHEが必要である理由は、暗号化されたデータに対する準同型の加算と乗算の両方の演算が必要なためである。いずれか一方の演算しか必要としない場合は、somewhat準同型暗号化を使用できる。いったんオンラインWebサイトまたはPOSにおいてカード情報が暗号化された後は、いかなる時点においても復号の必要がないと考えられる。この暗号化状態のクレジットカード情報は、カード発行者においてクレジットカードデータベースのデータ(データベースに保存されている各種カード保有者のカード保有者データ群など)と比較できる。このデータベースのデータも、同じFHE暗号化を使用して暗号化できる。
【0074】
したがって、量子セキュアなFHE暗号化方式を使用してすべて暗号化できるため、本システムは、ネットワーク内またはデータベースサーバ内におけるクレジットカード情報に対する攻撃の可能性を一切排除できる。
【0075】
消費者1610からのカード保有者データ(カード会員番号(PAN))がオンライン取引データの入力によって(またはPOSにおいて)取得され、公開鍵完全準同型暗号化(FHE)方式を使用してそのデータが暗号化される。クレジットカード番号(1桁目および下4桁を除く)、月、年、およびCVV番号は、クレジットカード会社によって公開されるFHE公開暗号鍵を使用して暗号化できる。カード保有者の名前ならびにクレジットカード番号の1桁目および下4桁は、通常の暗号化方式を使用して暗号化できる。次に、加盟店1620が、暗号化状態のPANをアクワイアラ/決済処理者1630に送信する。
【0076】
決済処理者1630は、クレジットカードの1桁目(Visa、MasterCard、American Express(登録商標)など)を使用して、暗号化状態のPANを適切な決済ブランド1640に転送する。次に、決済ブランド1640が、次の5桁(銀行識別番号(BIN))を使用して、暗号化状態のPANをカード発行者1650(発行元銀行)に転送する。
【0077】
カード発行者1650は、カード保有者の名前およびクレジットカード番号の下4桁を使用して、データベースに存在するクレジットカード項目の中からその情報に一致する項目を絞り込める。絞り込んだリストの各項目を列挙し、FHEアルゴリズムを使用して暗号化状態のPANと比較できる。さらに、暗号化状態の一致指標に、リストの各項目に対応する数値が乗算される。各項目から得られた暗号化状態の結果がすべて加算され、最終結果が得られる。最終結果は、一致する口座の番号を暗号化しているといえる。他のすべての口座に対応する番号には(一致しないため)0が掛けられ、結果が無効化される。この暗号化状態の結果が決済ブランド1640に送信される。決済ブランド1640は、その結果を復号して最終結果(一致する口座に対応する1桁の数値)をカード発行者1650に送信し、カードの紛失や盗難の届け出がないこと、および当該取引の支払いを行えるだけの適切な額の信用枠/資金が口座に存在することを証明する。一致する項目が見つかったときに、カード項目を使用頻度が高い順に並べ、他の項目を無視することで、検証の時間を短縮できる。
【0078】
承認されたら、発行者1650はオーソリゼーション番号を生成し、カード固有のFHE暗号化状態のPANとともにその番号を決済ブランド1640に送信する。次に、決済ブランド1640はオーソリゼーションコードおよび暗号化状態のPANをアクワイアラ/処理者1630に転送する。
【0079】
アクワイアラ/処理者1630は、セキュアな保管場所1660にアクセスして、暗号化状態のPANに対応するトークンを取得/生成する。なお、トークンを除き、セキュアな保管場所1660もFHEで暗号化できる。
【0080】
アクワイアラ/処理者1630は加盟店1620にトークンを返す。加盟店は、返品、リトリーバル要求、またはチャージバックの処理に応じる目的のほか、消費者の購買行動の分析やマーケティングプログラムの作成など、ビジネスインテリジェンス上の理由でこのトークンを加盟店のデータベース1670に長期的に保持できる。
【0081】
この実施形態は集中型システムの一例であり、1つの組織(クレジットカード会社1640)だけが秘密復号鍵を所有し、公開暗号鍵を配布する。別の実施形態は分散型システムであり、各カード発行者1650が独自の秘密復号鍵を保有し、POSシステムが、クレジットカードが属するカード発行者を認識し、そのカード発行者に対応する適切な公開暗号鍵を使用してカードの情報を暗号化する。この分散型システムでは、暗号化状態の比較結果を復号する役割のみを担う別の者が必要になる場合がある。この場合は、暗号化状態のクレジットカード情報を保持するカード発行者のサーバを、大切な秘密復号鍵を保持するサーバから分離する必要がある場合がある。
【0082】
別の実施形態は、FHE複数当事者計算(multiparty computation)の使用である。ユーザごとに異なる秘密鍵を生成し、公開鍵をクレジットカード自体に保存する。カード保有者のデータはユーザの公開鍵によって暗号化される。このデータをシステムに送信して、他の口座と突き合わせることができる。最終結果を復号するために、複数の秘密復号鍵が必要になる。さらに、複数の鍵があることで、各当事者を自身の鍵に関連した情報のみの復号に制限でき、各当事者が他の情報を一切復号できないため、データの総合的セキュリティが向上する。
【0083】
本システムはいくつかのレベルで適用できる。1つの方式は完全採用システムであり、情報をその起点から暗号化し、システムのいかなる局面でも一切復号しない。
【0084】
もう1つの方式は部分採用システムであり、現行の決済システムに適応させるため、およびデータ攻撃の危険性を低減するために、決済処理者の側でカード情報を復号した後、FHEを使用して再度暗号化してからカード発行者に送信できる。この方式では、攻撃の可能性を低減できるが、情報の復号から再暗号化までの間にデータが平文である状態が短時間ながら存在し、その間は、攻撃に対して脆弱なデバイスの記憶装置にデータが存在する。しかし、カード発行者におけるクレジットカードデータベースは常にFHEを使用して暗号化した状態に保つことができる。
【0085】
本システムは、決済情報が顧客のPCで暗号化されてからインターネット経由で送信される、クレジットカードまたはPayPalなどのオンライン取引サービスを使用するオンライン決済システムを使用したオンライン取引もサポートする。
【0086】
一実施形態によれば、クレジットカードを構成する重要情報は銀行名(表面)、クレジットカード番号の13~19桁目(表面)、クレジットカードの有効期限(表面)、カード保有者の名前(表面)、およびカード検証値(Card Verification Value、CVV)(裏面)である。クレジットカード番号は、先頭6桁の銀行識別番号(BIN。発行者識別番号(IIN)とも呼ばれる)、6~12桁の口座番号、および1桁のチェックサム値から構成される。口座番号の下3桁およびチェックサム値は同じFHE方式によって暗号化されるが、使用する鍵は異なり、その鍵を、復号を担う特定の当事者に付与することができる。BIN(IIN)に基づく他のカード(デビットカード、ポイントカード、加盟店独自のカードなど)も使用でき、同等の番号付与体系を採用できる。
【0087】
一実施形態では、量子セキュアな格子ベース完全準同型暗号化(FHE)を使用して、クレジットカード番号の中間3~9桁目(例えば口座番号のセキュア部分)、有効期限、およびCVV番号のフィールドを暗号化できる。これらのフィールドは、検証処理のいかなる段階でも決して復号できない。これらは常に暗号文(Ctxt)形式に保つことができる。
【0088】
クレジットカードのその他の項目は、同じ暗号化方式を使用して、異なる公開鍵と秘密鍵の1つ以上の組によって暗号化できる。システム全体のセキュリティのために、適切な鍵管理システムが不可欠である。他方の鍵は、中間当事者が必要なフィールドを復号するために使用できる。残りのフィールドはFHE方式を使用して暗号化できるが、それらのフィールドに準同型演算を適用することはできない。残りのフィールドの文字はいずれも、同じ多項式の隣接する係数にエンコードできる。ここでいう残りのフィールドとは、銀行名、カード保有者の名前、クレジットカード番号の先頭6桁(BIN番号)および下4桁のことである。
【0089】
これらの残りのフィールドは、検証処理の何らかの段階において平文(Ptxt)になっている可能性がある。これらの情報は、クレジットカード会社(1桁目)を識別し、カード発行者のクレジットカードデータベースにおけるクレジットカード項目(下4桁およびカード保有者の名前)を絞り込む手がかりになる。この選択により、一致する可能性があるカードが数件に絞り込まれる。さらに、フィールドを区分することで、本システムは今後のクレジットカード番号体系の変更(例えば、国際標準化機構(ISO)によって策定された8桁英数字BIN案など)にも対応できる。
【0090】
そのうえ、データが復号されないことから、データの実際の出所および内容は重要ではなく、検証および認証ができればよいだけであるため、取引要求に別のフィールドを含めて、破壊することなく処理できる。したがって、バイオメトリック(指紋など)識別、循環(rotating)または可変CVV番号、1回限りのカード番号などの新しい方式も、本方法およびシステムによって、および場合によっては大幅な変更を加えることなく検証および認証できる。
【0091】
前述のとおり、クレジットカード情報の一部のフィールドは検証処理中のいかなる時点でも決して復号できない。これらの暗号化状態の項目を使用したクレジットカード認証はFHE暗号化方式の性質を利用する。
【0092】
完全準同型暗号化では、暗号化状態のデータに対する加算と乗算の演算から暗号化状態の結果が得られる。この結果を復号すると、暗号化されていないデータに対して同じ演算群を適用した場合の正しい結果が得られる。
【0093】
2つの信号ビットxおよびyの間のブラインドマッチングを行うために、これら2つのビットのXNOR 2進演算
【数24】
を適用できる。準同型にXNOR演算子を実装するには、加算と乗算の演算に分解する、すなわち
【数25】
と分解する必要がある。
【0094】
複数ビットの入力x=x1x2…xnおよびy=y1y2…ynを比較するには、単に対応する個々のビットを同じ順序で比較し、個々のビット比較の結果を掛け合わせればよい(z=z1×z2×…×zn)。ここで、最終結果zは、xがyに等しいかどうかを示す1ビットになる。
【0095】
【数26】
を使用したXNOR演算の実装は、複数のアキュムレータCtxt(直前のCtxt乗算の結果を暗号化するCtxt)の乗算をサポートする他の準同型暗号化方式に使用される。この複数アキュムレータ乗算は、本暗号化方式には適さない。理由は、パラメータの値が可能な限り小さく設定される一方でセキュリティレベルは不変であるため、作成直後のCtxtまたはCtxtの加算/減算演算の結果であるCtxtのいずれかでなければアキュムレータの乗算がサポートされないからである。これにより、Ctxtによる記憶装置およびネットワークの使用量を低減でき、Ctxtの演算も高速化できる。
【0096】
この点に対処するために、XNOR演算を変形して、本暗号化方式に適合させることができる。XNORを
【数27】
と変形し、xおよびyにこの式を適用すると、x=yの場合に限って結果がz=1になる。これは本システムの要件に適合する。理由は、複数ビットの入力をxおよびyとすると、一致ビットzがz=(1-x
1-y
1)(1-x
1-y
1)(1-x
2-y
2)(1-x
2-y
2)…(1-x
n-y
n)(1-x
n-y
n)に等しいからである。この場合、個々の括弧内はCtxtの加算/減算演算のみで構成されており、本暗号化方式を使用して実装可能である。
【0097】
x>yの場合にz=1、それ以外の場合にz=0になるセキュアな関係演算も、
図6Uおよび6Vに示す上記のセキュアな関係演算を使用して、本FHE暗号化方式を使用して実現できる。このことは、クレジットカード取引に必要な金額yが当該口座の与信枠を超える(デビットカードの場合は口座の制限を超える)かどうかを検査できる点でも大変有用である。
【0098】
一実施形態によれば、セキュアなクレジットカード認証を実行するときに、まずクレジットカード番号の中間の桁(ここに記載する例では16桁のカード番号を想定しているため、6桁)がビット列に変換され、その各ビットが、FHE暗号化を使用して暗号化される。同じ処理が有効期限およびCVV番号についても行われる。これらの暗号化されたビットが、カード保有者の名前、銀行名、BIN番号、およびクレジットカードの下4桁とともにネットワークを通じて決済処理者に送信される。次に、決済処理者がそれらの情報を適切なカード発行者に転送する。その後、カード発行者がこの情報を受信し、カード保有者の名前およびカード番号の下4桁を使用して(名前および下4桁の一致により)一致する可能性がある数件の口座まで検索を絞り込み、対応する暗号化状態の情報が取り出される。次に、受信した暗号化状態の情報と、一致候補の口座との間にセキュア認証が適用される。一致しない口座に対して認証演算を行うと、暗号化状態の指標としてz=0が得られる。一致する口座の場合(クレジットカード番号、有効期限、およびCVV番号(ならびにBIN番号を使用している場合はBIN番号)のビットがすべて一致する場合)、かつ要求された取引額が口座の残高または制限に達しない場合は、暗号化状態の指標としてz=1が生成される。その上で、削減されたリストに対するこの項目の順序に対応する数値を、暗号化状態の指標(0または1のいずれか)に掛けることができる。この最終結果を復号するため、およびこの取引の確認を得るためには、この暗号化状態の指標(削減したリストにおける一致口座の順序を暗号化している)を、クレジットカード会社側(または分散方式の場合はカード発行者が所有する別個のセキュアサーバ上)で使用可能な秘密復号鍵を使用して復号する必要がある。復号後、削減されたリストにおける一致口座の順序に対応する1桁だけが返される。
【0099】
別の実施形態では、入力カードおよび一致する各口座の機密ビットをk個に区分し(kは、各マシンにおいて使用可能なプロセッサ(GPUなど)の数に対応する)、区分ごとに別個のGPUに送信する。各GPUには、0からk-1までの範囲の番号を振ることができる。各GPUからの結果は、1を対応する位置までシフトした多項式を掛けることによって、そのGPU番号に対応する多項式スロットの数だけローテートできる。各GPUからの結果が準備できたら、結果をすべて加算する。これによって得られる結果においては、暗号化状態の多項式のk個のスロットそれぞれが保持するビットが、対応するビットの一致または不一致に対応している。復号後、いずれのビットも0以外であれば、この口座が一致していることになる。一致する口座が見つかったら、データベース内のリストの先頭に配置して次回の比較を高速化するとともに、他の口座を無視することができる。
【0100】
本システムに使用する量子セキュアな格子ベースFHEスキームは計算負荷が高くなる場合がある。準同型演算を高速化するには、システム内のCPUとともにグラフィック処理装置(GPU)を使用する。各GPUは、1秒間に複数の取引をサポートできる。VISATMやMasterCardTMなどの大規模な取引会社で必要とされる高い1秒あたりの取引数を実現するには(各社とも最大で1秒間に4000件の取引を処理する必要があると考えられる)、多くのGPUカードが必要である。このような処理能力を実現するために、あらゆる水準の需要に対応するスケーラビリティを備えるマルチサーバ環境を実装できる。
【0101】
なお、上記の実施形態の記載では、取引要求におけるクレジットカードを口座の名義および番号のリストと単純に比較して有効な口座が存在するかどうかを判断しているが、他のリストおよび他の種類の検証が発生しても構わない。例えば、別のリストに盗難/紛失カードおよびカード保有者のデータを格納しておき、取引要求をそのリストとも比較することができる。その場合、カード番号が有効であっても、そのカードが盗難/紛失リストにも登録されていれば、認証が拒否される場合がある。同様の処理は、当該情報の公開に関する法令を遵守しつつ、取引のブラックリスト登録国など、他の検証リストおよび認証リストにも使用できる。
【0102】
また、要求からデータを抽出するか、リスト内で突き合わせることによって要求内のデータを加盟店のポイントプログラムに結び付けるなど、ユーザ、加盟店、またはそれら両方の利益のために利用することもできる。これにより、複数のトランザクションおよび別処理の必要が減り、取引の効率が高まる可能性がある。さらなる機能の拡張や変形を制限するのは、データの規模および処理時間の要件のみであろう。
【0103】
実際上、任意の暗号化状態のデータを、復号することなく任意の暗号化状態のデータ群に照らして検証および認証することができる。復号情報を共有する必要がないため、データ形式、データ構造、さらにはデータ自体の変更に対応するのも容易になる。
【0104】
準同型暗号化自体はデータの完全性を保証しない。ハッカーは、保存中または処理中のデータに対して数学的な演算を施すことによって、暗号化状態のデータを改ざんできる。これにより、操作対象のデータの結果に影響が及び、結果が変化して、ハッカーが攻撃しやすくなる可能性がある。例えば、最終的な暗号化状態のフラグに対して暗号化された1との準同型OR演算を適用すると、結果が常に1(すなわち取引許可)になる。許可のない当事者による変更からデータの完全性を保護する方法として、追加の数学的仕組みを適用し、耐タンパ性のあるクレジットカード認証システムを実現する方法がある。例えば、暗号化状態のメッセージにハッシュ式メッセージ認証符号(Hash-based Message Authentication Code、HMAC)を追加して、メッセージの完全性の認証を必須とすることができる。ただし、これは一例であり、この方式に限定されるものではない。
【0105】
さらに、クレジットカード取引に追加するセキュリティ保護層として、本システムは、時間とともに周期的に変化するクレジットカードCVV番号の暗号化をサポートできる。本システムは、CVV番号生成鍵を準同型に暗号化し、銀行のデータベースに保存できる。新しい顧客のクレジットカードを検証して購入を認可する必要があるときは、CVV生成鍵に対して準同型に数学的演算を適用し、新しい有効なCVV番号を生成して、その番号を検証対象の顧客クレジットカードと比較する。
【0106】
例えば、機密/暗号化の処理ならびに要求に対する検証および認証の両方が必要な他の形式の静的または準静的な個人識別データを本システムおよび方法の範囲内で使用できる。銀行デビットカード(データ構造はクレジットカードと同様)だけでなく、通常はカードまたは類似の形式になっている他の個人識別情報も使用できる。例えば医療IDカードや保険証の場合は、名前、グループまたはプランの番号、および個人IDが、検証用のデータ取得元となる保険者の名前とともに記録されることになろう。また、パスポートの場合は、検証用の番号、パスポート番号、発行日、有効期限、国籍、および発行国が記録されることになろう。クレジットカードと同様に、機密と見なすデータ、および平文で共有できると見なすデータは、識別データに対する責任を負う管理組織(例えばパスポートの場合は政府)の決定に委ねられる。
【0107】
また別の例として、本システムおよび方法は、Authentication as a Service(AaaS)ソフトウェアなどにおける認証の分野にも利用できる。AaaSソフトウェアは、クラウドベースの身元管理サービスとして動作し、さまざまなデバイスを使用する潜在的に多数のユーザによって世界中のあらゆる場所からアクセスされる可能性があるさまざまな場所のデータおよびアプリケーションに対するアクセスを保護する。識別および認証のほかに、本システムおよび方法は、機密性のある個人情報を含む、政府が管理する搭乗拒否リストなどの監視リストまたは登録簿を検索し、他の情報をオペレータに開示せずに個人がリストに該当するかどうかを確認するなどの目的にも利用できる。
【0108】
一実施形態によるシステムの全体像を
図17に示す。認証処理は、決済処理者1710がクレジットカード情報をカード発行者に送信したときに開始できる。カード発行者は、受信した要求を受け入れるフロントエンドサーバ1720を設置できる。このフロントエンドサーバ1720は、GPUマシンファーム(machine farm)1730のネットワークに接続できる。GPUマシンファーム1730は、その占有状態(空いているかどうか)の通知を頻繁にフロントエンドサーバ1720に送信する。フロントエンドサーバ1720は、要求を受信すると、空いているマシン1740がないかサーバテーブルを調べ、その対応するIPアドレスを取得する。次に、このIPアドレスが決済処理者1710に送信される。次に、決済処理者1710がこの空いている計算ノード1740に接続し、カード保有者のカード情報を送信する。計算ノード1740は、その情報を取得すると、カード保有者の名前および下4桁に一致するクレジットカードのデータをデータベースから取得できる。これにより、認証処理をこのマシン1740のGPUで開始できる。次に、認証処理の結果をクレジットカード会社1750に送信し、復号を依頼できる。その後、復号された認証値をカード発行者1710に送信して最終結果を通知できる。本システムを実装することで、フロントエンドサーバ1720に対するネットワーク接続の必要性を緩和し、計算ノード1730全体に分散できる。
【0109】
医療データの収集
機密性の高い医療データとともに使用するために本発明の一実施形態のさまざまな態様を具体化した、ネットワーク接続型コンピュータシステムを
図1に示す。複数のリモート医療デバイス20が、ワイドエリアネットワーク24を通じて医療データシステム22に接続されている。リモート医療デバイス20は、ウェアラブルデバイス26、患者の端末28、研究室の端末30などを含み得る。ウェアラブルデバイス26は、専用の医療デバイス、スマートウォッチ、ウェアラブルコンピュータ、装着型のアクティビティトラッカ、計測機能付きの衣類などのデバイスを含み得る。ウェアラブルデバイス26は、加速度計、心拍計、体温計、呼吸モニタ、グルコースモニタ、全地球的測位システム(GPS)受信機、気圧センサなどのセンサ、およびそれらの組み合わせなどを含み得るが、これらに限定されない。患者の端末28および研究室の端末30は、スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータなどのデバイスを含み得る。ウェアラブルデバイス26、患者の端末28、および研究室の端末30などのリモート医療デバイス20を相互に区別する特徴は、本発明を制限すると考えられない。これらのデバイス26~30の機能は重なり合う場合がある。ウェアラブルデバイス26および患者の端末28は患者から直接データを収集する。この収集は、患者が手作業で入力することなく行える。ウェアラブルデバイス26および患者の端末28では、患者32がデータを手作業で(タイプや選択などによって)入力できる。研究室の端末30では、患者32に対して行われた医学的検査などの医療処置に関連したデータ(血液検査の結果など)を入力するために、医療担当者34(臨床医、研究室の技師、看護師、医師など)による何らかの形の手動入力が必要になる場合がある。
【0110】
リモート医療デバイス20は、患者の医学的状態または健康状態に関するデータを収集するように構成できる。このデータは、大きく医療データと非医療データの2つのカテゴリに分類できると考えられる。これらのカテゴリは限定的なものではなく、重なり合ったり、さまざまな種類のデータが両方のカテゴリに該当したりする場合がある。医療データは生理的データおよび/または個人の医学的状態または健康状態を直接示すデータを含み得るが、これらに限定されない。例えば、医療データは心拍数、体温、呼吸数などを含む。医療データは、リモート医療デバイス20(心拍計など)によって直接測定することも、患者または医療従事者によってデバイス20に入力すること(血圧の測定値を端末に入力するなど)もできる。
【0111】
非医療データは、医学的な結果/診断に間接的に関連する可能性があるデータであり、環境要因、遺伝的要因、健康に対する取り組み、社会およびコミュニティの要因、社会経済的要因、社会人口統計学的要因、ならびに政府または地方自治体の要因が該当し得るが、これらに限定されない。環境要因は、人間の健康に影響する可能性がある物理的環境要因であり、水質、大気の質、騒音、労働条件などが該当し得る。遺伝的要因は、通常は個人の行動による、または社会的、経済的、もしくは物理的環境による影響が及ばない遺伝的要因に関連するといえる。遺伝的要因により、特定の状態に至る素因が決まる。健康に対する取り組みの要因には、個人の行動の面に関連した要因、および疫学的研究から健康状態に影響することが明らかになっているリスク要因(個人の健康に関する習慣、子供の健全な発育など)が該当し得る。社会およびコミュニティの要因には、疫学的研究から健康に関連することが明らかになっている社会的支援、生活上のストレス、社会資本などの社会およびコミュニティの要因の普及度に関連する要因(就学が容易かどうか、文化的背景、社会的支援、社会的環境、社会的地位、住宅の取得が可能かどうか、識字能力など)が該当し得る。社会経済的要因には、疫学的研究から健康に関連することが明らかになっている、住民の社会経済的特性に関連した要因(雇用状況、所得、社会的地位、教育水準など)が該当し得る。社会人口統計学的要因には、住民の社会人口統計学的特性に関連した要因が該当し得る。これらの指標は、性別、年齢、教育水準、文化的背景、雇用状況、職業、婚姻状況、世帯人数、生活環境など、社会的要因および人口統計学的要因が複合したものに関連または関係している。政府または地方自治体の要因には、政策、財源、インフラストラクチャ、公的事業などに関連した要因が該当し得る。当業者であれば、上記の要因は限定的なものではなく、要因によっては複数のカテゴリに該当する場合があることが理解されるであろう。非医療データは、患者または医療従事者によってデバイス20に入力できる(患者の所得集団を端末に入力するなど)。
【0112】
ワイドエリアネットワーク24は、ローカルエリアネットワーク、無線ネットワーク、移動通信ネットワーク、イントラネット、バーチャルプライベートネットワーク(VPN)、インターネットなどのデータネットワークの1つまたは複合を含み得る。
【0113】
医療データシステム22は、後述する、記憶装置に保存され、1個以上のプロセッサによって実行されて、リモート医療デバイス20から収集されたデータに対する準同型計算を行うプログラムコードによって構成された1台以上のコンピュータ(サーバと呼ばれる)を含み得る。
【0114】
本システムは、鍵管理システム36およびアナリスト端末38も含み得る。
【0115】
鍵管理システム36は1つ以上の暗号鍵を保存する。この秘密鍵には、RWLE(ring-learning with errors)やNTRU準同型暗号化方式などの完全準同型非対称暗号方式のための1つ以上の秘密鍵が該当する。鍵管理システム36は、これらの秘密鍵を保存し、秘密鍵の使用を許可ユーザに制限するように構成された1台以上のサーバを含む。
【0116】
鍵管理システム36によって管理される各秘密鍵は、リモート医療デバイス20に配布される公開鍵に対応させることができる。リモート医療デバイス20によって暗号化されたデータは、それぞれの秘密鍵にアクセス可能なユーザによる復号が可能であるが、この点は本実施形態の中枢ではない。本実施形態によれば、暗号化状態のデータに対して実行された準同型計算の結果を、それぞれの秘密鍵にアクセス可能なユーザが復号できる。多数のリモート医療デバイス20が同じ公開鍵を共有できるため、データの復号が不要な準同型計算に対応した、大規模かつ継続的なデータソースが形成されると考えられる。むしろ秘密鍵は、計算結果を復号する場合にしか必要にならない。
【0117】
使用する公開鍵と秘密鍵の組の数は任意である。デバイスの種類などの要素に応じて、異なる公開鍵をデバイスに提供することにより、医療デバイス20を複数の集合に分割すると好都合であろう。例えば、ウェアラブルな心拍計に公開鍵を配布するとともに、血液検査の結果を記録するために使用する研究室の端末30には別の公開鍵を配布することができる。そのために、心拍計および血液検査のデータに対する計算を実行するときに医療データシステム22において別の処理が必要になる可能性があるが、対応するいずれかの秘密鍵が危殆化した場合でも患者データの漏洩が低減される利点を得ることができる。医療団体/組織、保険者、デバイスの製造元などの他の要素に基づいて、医療デバイス20の集合または種類ごとに異なる公開鍵を配布できる。さらに、医療デバイス20が複数の種類のデータ(医療データおよび/または非医療データなど)を収集する場合は、それぞれの種類のデータを異なる公開鍵に割り当て、その公開鍵によって暗号化することができる。この場合も、患者データの漏洩を低減できる。明瞭にするために、ここに記載する例では1組の公開鍵と秘密鍵の組を取り上げているが、本発明はさまざまな公開鍵と秘密鍵の組を考慮していることに注意すべきである。さらに、一連のデータを使用する連携処理および計算は、同じ秘密鍵によって復号できる一連の暗号化状態のデータに限定されることも重要である。したがって、幅広い連携処理および計算を容易にするために、システムを単一の秘密鍵に限定すると好都合であろう。
【0118】
アナリスト端末38は、研究者、臨床医、医師、管理者、保険者などのアナリスト40による操作が可能なデバイス(スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータなど)を含み得る。アナリスト端末38は、医療データシステム22において実行される準同型計算を開始でき、その計算から得られた暗号化状態の結果を、鍵管理システム36によって保持される秘密鍵によって復号させることができる。すると、平文の計算結果がアナリスト端末38に出力され、さらに計算や研究を行うことができる。
【0119】
秘密鍵は、本発明によるさまざまな実装の要件に応じてさまざまな方法で計算結果を復号するために提供できる。暗号化状態の計算結果は、セキュアチャネル44(セキュアなサブネットワーク、ワイドエリアネットワーク24を通じて稼働するVPN、またはより強固なセキュリティを提供する類似のネットワークなど)を通じて鍵管理システム36に送信し、鍵管理システム36において復号し、復号状態の平文の計算結果(DR)42を1つ以上のアナリスト端末38に送信し、出力することができる。加えて、またはその代わりに、当該セキュアチャネル44を使用して秘密鍵を鍵管理システム36からアナリスト端末38に送信し、1つ以上のアナリスト端末38において計算結果を復号できる。セキュアチャネル44は、必ずしもネットワーク通信に限らない。例えば、秘密鍵または暗号化状態のデータをネットワーク経由で送信する必要がある場合に、セキュアな場所(医療施設や研究施設の、物理的にセキュリティが確保された区域の中など)にアナリスト端末38を配置し、それによってセキュアチャネル44に物理的な側面を持たせることができる。あるいは、セキュアチャネル44を主にまたは排他的に物理的にしておき、物理的な鍵カード、メモリスティック、または人間が秘密鍵または暗号化状態のデータをアナリスト端末38まで持ち運ぶために使用できる類似のデバイスに秘密鍵または暗号化状態のデータをコピーすることもできる。
【0120】
運用中には、データをリモート医療デバイス20によって継続的に収集し、リモート医療デバイス20において暗号化し、暗号化状態のデータ(ED)50として医療データシステム22に送信できる。一般には、データを医療データシステム22に送信するすべてのデバイスを、送信前にデータを暗号化するように構成できる。医療データシステム22は、暗号化状態のデータ50を必要な時間にわたって保存できる。任意の時点で、アナリスト端末38を使用して、分析対象のデータ群を選択し、選択したデータ群に対して実行する計算を構成することができる。この情報を、計算コマンド(CC)52としてアナリスト端末38が医療データシステム22に送信できる。計算コマンド52は、準同型の手法によってデータを復号せずに選択された暗号化状態のデータに対する計算を行い、暗号化状態の結果54を得る処理を医療データシステム22に実行させるトリガとして機能する。次に、暗号化状態の計算結果54をアナリスト端末38に送信できる。その後、アナリスト端末38が、セキュアチャネル44を使用して鍵管理システム36と通信することにより、復号状態の結果42を取得できる。
【0121】
データは計算中に復号できないことが好ましい。患者のプライバシー保護を強化できる。また、患者のデータがより強固に保護されていることを知れば、医学的研究に使用する医療データをより多くの患者が提供してくれる可能性があると考えられる。さらに、データおよび計算結果が暗号化された形で送信されること、ならびに秘密鍵が厳重に管理されることから、中間者攻撃などの攻撃の機会を減らすこともできる。
【0122】
他の応用分野では、リモートデバイス20(ウェアラブルデバイス26、患者の端末28、研究室の端末30、データシステム22、端末38、リモートデバイス130などの構成要素)を特に医療用デバイスとしないことが可能であり、汎用のデバイスまたは特定の応用分野に適合したデバイスにすることができる。
【0123】
リモート医療デバイス20の例を
図2に示す。リモート医療デバイス20は、センサ60および/または入力デバイス、暗号化エンジン62、およびネットワークインタフェース64を含み得る。リモート医療デバイス20はさらに、取得したデータ66、公開鍵68、および暗号化状態の医療データ50を保存するための記憶装置(RAM、ハードディスク、ソリッドステートドライブなど)を含み得る。リモート医療デバイス20は、暗号化エンジン62を実行し、リモート医療デバイス20の動作を制御するように構成されたプロセッサも含み得る。
【0124】
センサおよび/または入力デバイス60は、個人(患者など)の医療データ/生理的データおよび/または非医療データ66を取得するように構成できる。センサとしては、例えば心拍数センサ、呼吸センサ、血糖センサ、血圧センサのほか、本明細書の他の箇所に記載している多数の例が挙げられる。医療データの測定または取得が可能なあらゆるセンサおよび/または入力デバイス60が考えられる。医療データまたは非医療データを手作業で入力する場合の入力デバイスの例としては、キーボードまたはタッチ画面が挙げられる。入力デバイスはセンサと併用して、手作業で入力されたデータのほか、直接測定されたデータも収集対象のデータに含めることができる。取得するデータの種類および性質に特段の制限はない。
【0125】
暗号化エンジン62は、公開鍵68を適用することで、取得したデータ66を暗号化して暗号化状態のデータ50を生成するように構成できる。暗号化エンジン62は、前述の完全準同型暗号化を実行するように構成できる。
【0126】
ネットワークインタフェース64は、暗号化状態のデータ50をネットワーク24に、特に医療データシステム22に送信するように構成できる(
図1)。暗号化状態のデータ50は、医療データシステム22に送信した後に削除して記憶領域を節約できる。
【0127】
データシステム22の例を
図3に示す。前述のとおり、これは医療データシステム22にすることができる。医療データシステム22は、ネットワークインタフェース80、データアキュムレータ82、クエリ作成部84、患者/ユーザインタフェース86、および計算エンジン88を含み得る。医療データシステム22はさらに、暗号化状態のデータ50、暗号化状態の計算結果(ER)54、患者データ90(または、非医療分野に応用する場合は他のデータ)、および許可92を保存するための記憶装置(RAM、ハードディスク、ソリッドステートドライブなど)を含み得る。医療データシステム22は、データアキュムレータ82、クエリ作成部84、患者/ユーザインタフェース86、および計算エンジン88を実行し、および医療データシステム22の動作を制御するように構成されたプロセッサも含み得る。なお、医療データシステム22は暗号化状態のデータに対する計算を行うため、医療データシステム22に暗号鍵を保存する必要はない。
【0128】
ネットワークインタフェース80は、ネットワーク24からデータおよびコマンドを受信するように構成できる。ネットワークインタフェース80は、リモート医療デバイス20から暗号化状態のデータ50および患者コマンドを受信するように構成できる。ネットワークインタフェース80は、アナリスト端末38から計算コマンドを受信するように構成できる。
【0129】
データアキュムレータ82は、複数のリモート医療デバイス20から暗号化状態のデータ50を取得する処理を制御するように構成できる。データアキュムレータ82は、新しい暗号化状態のデータがないか各リモート医療デバイス20を周期的にポーリングし、応答として当該暗号化状態のデータを受信し、当該暗号化状態のデータ50を医療データシステム22の記憶装置に保存するように構成できる。データアキュムレータ82は、データ収集の条件として許可92を参照するように構成できる。
【0130】
クエリ作成部84は、アナリスト端末38から計算コマンドを受信するように構成できる。計算コマンドは、計算エンジン88による計算の開始をトリガする。計算コマンドは、計算の対象とする一連の暗号化状態のデータ50を指定するパラメータのほか、計算の種類を指定するパラメータも含み得る。クエリ作成部84は、計算に使用可能な暗号化状態のデータ50の概要をアナリスト端末38に提供するように構成できる。クエリ作成部84は、計算時に暗号化状態のデータ50の要素を使用するための条件として許可92を参照するように構成できる。
【0131】
患者/ユーザインタフェース86は、リモート医療デバイス20、アナリスト端末38、または他のデバイスから患者コマンドおよびデータを受信し、暗号化状態のデータ50に関する情報を出力するように構成できる。特に、患者/ユーザインタフェース86は、必ずしも暗号化されない患者データ90を受信するように構成できる。患者データ90は、固有ID、名前、住所、生年月日、全般的な健康状態および徴候、収集された暗号化状態のデータ50の種類に関する説明などのデータを含み得る。患者データ90は、医学的研究の計画に有用なデータを含み得る。暗号化状態のデータ50の要素を、医学的研究の計画に有用と考えられる患者データ90に結び付けられるように、患者データ90は、暗号化状態のデータ50に対する関連付けも含み得る。例えば、患者データ90と暗号化状態のデータ50との関連付けは、暗号化状態のデータ50および患者データ90の両方における患者の固有ID(ハッシュや通し番号など)を含み得る。暗号化状態のデータ50に結合された暗号化対象外のメタデータフィールド、ファイル名、データベースに保存された暗号化状態のデータ50に関連付けられた暗号化対象外のデータベースフィールドなどによって暗号化状態のデータ50に平文で固有IDを含めると有益である場合がある。
【0132】
患者/ユーザインタフェース86は、患者または他の個人によって端末38のアナリストなどに対して承諾される許可92を制御するためのコマンドを受信するように構成できる。許可92は、暗号化状態のデータ50を収集して保存することへの同意、および暗号化状態のデータ50を計算エンジン88で使用できるようにすることへの同意を示すデータを含み得る。医療分野に応用する場合、各患者(またはその法的代理人)が任意の種類のデータ(血圧や心拍数など)を任意の個人または組織(患者の主な介護者、担当医、医学研究室、病院など)に提供することへの同意を得られるように、許可92は、患者からデータへの、さらに個人または組織への1つ以上の多対多マッピングを含み得る。選択された時間が経過した後に同意が自動的に撤回されるように、許可92には同意の時間枠を含めることもできる。
【0133】
患者データ90および許可92を変更するユーザがその変更を行う権限を持っていることを確認するために、患者/ユーザインタフェース86には認証システム(ユーザ名およびパスワードによるログイン認証システムなど)を含め得る。
【0134】
計算エンジン88は、一連の暗号化状態のデータ50および実行する計算を定義する受信パラメータに従って暗号化状態のデータ50に対する準同型計算を実行するように構成できる。計算エンジン88は暗号化状態の結果54を出力する。この暗号化状態の結果54は、ネットワークインタフェースを通じて鍵管理システム36またはアナリスト端末38に送信される。計算エンジン88は、暗号化領域で適切な任意の計算を実行するように構成できる。
【0135】
これらの計算には、加算、乗算、離散計算、連続計算、関係演算を使用した比較、およびこれらの組み合わせなどが含まれると考えられる。具体的な医療分野の計算には心房細動脳卒中リスクスコアの計算、心血管リスクスコアの計算、および遺伝型の計算を含み得るが、これらに限定されない。さらに、これらの計算は一連の多項式としてモデル化できる。これを実現するには、計算エンジン88を後述のように構成できる。
【0136】
鍵管理システム36の例を
図4に示す。鍵管理システム36は、ネットワークインタフェース100、認可処理部102、および復号エンジン104を含み得る。鍵管理システム36はさらに、暗号化状態の計算結果54、秘密鍵106、および復号状態の結果42を保存するための記憶装置(RAM、ハードディスク、ソリッドステートドライブなど)を含み得る。秘密鍵106は、リモート医療デバイス20に保存される公開鍵68(
図2)に対応する。鍵管理システム36は、認可処理部102および復号エンジン104を実行するほか、鍵管理システム36の動作を制御するように構成されたプロセッサも含み得る。
【0137】
ネットワークインタフェース100は、セキュアチャネル44を通じてアナリスト端末38から暗号化状態の結果54を受信するように構成できる(
図1)。ネットワークインタフェース100はさらに、復号状態の結果42をアナリスト端末38に送信するように構成できる。代わりに、または加えて、ネットワークインタフェース100は、セキュアチャネル44を通じて秘密鍵106をアナリスト端末38に送信するように構成できる。
【0138】
認可処理部102は、鍵管理システム36へのアクセスを許可ユーザに制限するように構成できる。認可処理部102は、復号状態の結果42、秘密鍵106、またはそれら両方にアクセスしようとするユーザを検証するために、認証システム(ユーザ名およびパスワードによるログイン認証システムや電子証明書検証システムなど)を含み得る。
【0139】
復号エンジン104は、秘密鍵106を適用して暗号化状態の計算結果54を復号し、復号状態の結果42を生成するように構成できる。復号エンジン104は、本明細書に記載する準同型復号を実行するように構成できる。
【0140】
データシステム120を
図5に示す。前述のとおり、データシステム120は医療データシステム120にすることができる。医療データシステム120は、医療データシステム22など、本明細書に記載する構成要素を含み得る。当該構成要素の説明は、同一の構成要素を示す同一の参照番号によって参照できる。明瞭にするために、相違点に絞って詳細に説明する。医療データシステム120は、
図1のシステムにおける医療データシステム22を置き換えることができる。
【0141】
医療データシステム120は、患者のリモート医療デバイス20から受信された暗号化状態のデータ50に対して実行された計算に基づいてアラートを生成するように構成できる。医療データシステム120は、ネットワーク24を通じて、これらのアラートに対処できる医療従事者によって操作されるリモートデバイス130にこれらのアラートを送信できる(
図1)。生成されたアラートは暗号化領域にとどまると想定される。そのため、アラートは、鍵管理システム36を経由して復号された後、関連するリモートデバイス130に平文の形で送信できる。この場合、平文形式のアラートを、具体的な数値ではなく、アラートの性質の一般的表示(「血圧アラート」というテキスト形式のアラートなど)にすると、プライバシー保護が強化されると考えられる。理由は、アラートの受信者が特定の医学的状態に関する背景知識や、具体的なアラートのトリガ値に関する知識を持っている可能性が考えられるためである。別の方法として、リモートデバイス130に秘密鍵を提供し、受信したアラートを復号させることもできる。
【0142】
医療データシステム120は、プロセッサによる実行が可能かつ許可ユーザによる設定も可能なアラートトリガ122を含み得る。アラートトリガ122および計算エンジン88は、記憶装置に保存され、許可ユーザによる設定が可能な暗号化状態のアラート条件124と暗号化状態の結果54との間の比較を実行できる。暗号化状態のアラート条件124は、まずネットワークインタフェース80を通じて非暗号化形式で受信した後、リモート医療デバイス20においてデータを暗号化する公開鍵と同じ公開鍵68を使用して暗号化エンジン62によって暗号化できる。暗号化状態のアラート条件124は、暗号化状態の結果54によって表されるデータおよびアラートトリガ122に適用し、条件を満たすデータの場合にアラートを出すことができる。このアラートは、ネットワークインタフェース80およびネットワーク24を通じて選択した許可ユーザ(医療従事者など)のリモートデバイス130に送信するように構成できる。アラートは、鍵管理システム36を経由して集中復号した後、選択した許可ユーザに平文の形で転送できる。別の方法として、リモートデバイス130が秘密鍵106を保存できるほか、復号エンジン104によってアラートを復号するように構成することもできる。例えば、医師が患者に対してアラート条件124を設定する場合に、識別を患者データ90によって行い、使用する血圧の等式を暗号化領域で準同型に評価し、その評価を行う計算エンジン88が、ウェアラブル医療デバイス26によって継続的に収集される暗号化状態の元々の血圧データを使用する構成が可能である。この暗号化状態のアラート条件124は、血圧の等式の特定の最大値、最小値、または区間にすることができる。この等式は、満たした場合または超えた場合にアラートトリガ122を発生させ、電子的アラートメッセージをリモートデバイス130に送信する。このリモートデバイス130は、医師、および通知されなければ具体的なアラート条件に気付かない専門医が操作する。具体的な評価および評価対象の値は暗号化領域にとどめておくと、患者のプライバシー保護が強化され、好ましい。すなわち、患者およびアラートを設定するユーザを除く者が血圧の等式、条件、および考慮している血圧データを必ずしも知っていなくても、これらの設定に基づいてそれらの者にアラートを出せる。
【0143】
アラートトリガ122は、周期的に、または新しい暗号化状態のデータ50を検出したときに評価できる。アラートトリガ122は、アラートを受信する宛先リモートデバイス130のネットワークアドレス(例えばEメールアドレスや電話番号)など、アラートの配信に関する情報を保存できる。
【0144】
医療データシステム22、120、および特に計算エンジン88の各種の構成要素は、1つ以上のハードウェア装置として実装できる。これらのハードウェア装置は、ハードウェアのみを使用することによって、またはプログラムコードを実行するハードウェアを使用することによって本明細書に記載した計算手法を実装するように構成できる。適切なハードウェア装置を構成することで、中国の剰余定理(CRT)、数論変換(NTT)、1つ以上の記憶装置ブロック、1つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせなどを使用して、本明細書に記載した計算手法を実装できる。この実現に適した当該ハードウェア装置の1つがグラフィック処理装置(GPU)である。適切なハードウェア装置の例としては、ほかにフィールドプログラマブルゲートアレイ(FPGA)および特定用途向け集積回路(ASIC)も挙げられる。
【0145】
本発明の実施形態は、ゲノム相関(genomic association)の研究に使用する統計的手法の実装に使用できる。この手法の例としては、ピアソンの適合度検定およびコクラン・アーミテージの傾向検定(CATT)が挙げられる。
【0146】
遺伝子型と表現型は、以下のようにエンコードおよび暗号化できる。ここに示す例では、医療担当者34によって患者32から取得された遺伝的データのエンコードおよび暗号化を実行するように研究室の端末30(
図1)を構成している。
【0147】
遺伝子型のエンコードに関しては、遺伝子型情報を保持するテーブルを作成し、各行を1人の遺伝子型情報に対応させる。2対立遺伝子の場合は、3つの暗号文c
AA、c
Aa、c
aaを使用して各個人の遺伝子をエンコードする。これらの暗号文は、
図6Hの等式ステートメントが満たされる場合にのみ1を暗号化し、それ以外の場合は0を暗号化する。指定された遺伝子座にある個人の遺伝子型が不明な場合は、すべての暗号文が0を暗号化する。
【0148】
遺伝子型と表現型の相関のエンコードに関しては、事前計算の時間を短縮でき、最終的な暗号化状態の結果におけるノイズを低減できるため、必要に応じて、結果として得られた暗号文にさらに計算を行うことができる。遺伝子型{AA,Aa,aa}と表現型{影響あり,影響なし}との間の相関行列を生成し、3×2の相関行列を生成する。この相関行列の暗号文においては、この個人の遺伝子型/表現型条件に対応する1要素において1を暗号化し、それ以外の要素では0を暗号化する(
図8)。この個人の遺伝子型または表現型が不明な場合は、すべての暗号文が0を暗号化する。
【0149】
ピアソンの適合度検定に関し、この検定は、遺伝子がハーディ・ワインベルク平衡(HWE)にあるかどうかを調べるために使用される。HWEを使用すると、対立遺伝子の頻度が独立かどうかを検定できる。Aおよびaを任意の遺伝子における2つの対立遺伝子とし、N
AA、N
Aa、およびN
aaをそれぞれ遺伝子型AA、Aa、およびaaの対応する数とする。N=N
AA+N
Aa+N
aaを遺伝子型の総数とすると、
図6Iのパラメータを準同型に計算できる。ここで、N
ijは
図6Jのように計算できる。次に、これらのパラメータを使用して、
図6Kの等式によって最終的な偏差検定統計量を計算できる。
【0150】
コクラン・アーミテージの傾向検定(CATT)は、対立遺伝子が疾患と関連しているかどうかを調べるために使用する。この検定は、
図6Mで計算されるパラメータを使用して
図6Lの等式に示すように計算できる。ここで、w
iは事前に決定された重み∈{0,1,2}であり、N
ijは、特定の疾患の影響を受ける/受けない、遺伝子型ijを持つ個人の数を表す。パラメータN
ij、R
i、C
iを
図9に示す。
【0151】
予測式を使用すると、さまざまな疾患の可能性を調べることができる。予測式を計算するために、患者の医療データを使用できる。この医療データを保護するために、準同型暗号化を使用してそれらのデータを暗号化し、医療データシステム22、120において計算エンジン88を使用するなどの方法で、セキュアな環境で回帰式の計算を実行できる。1つの例として、期間を限定しない、心臓発作を起こす尤度の予測モデルは、
図6Nに示すロジスティック回帰関数によって与えられる。ここで、xは
図6Oの等式から計算され、aは年齢、sysは収縮期血圧、diaは拡張期血圧、cholはコレステロールレベル、htは身長、wtは体重である。
【0152】
図6Lの等式に示す指数関数式を実装するために、
図6Pに示すように、十分な精度が得られる次数(例えば7次)までのテイラー級数を使用できる。準同型暗号化は整数の算術演算を使用するので、
図6Oおよび6Pの等式は、適切な精度を確保しつつ
図6Qおよび6Rの等式に正規化できる。
【0153】
図6Qおよび6Rの等式に対する入力は整数として表され、隣接する多項式スロットに2進形式でエンコードされる。これらの2進多項式を掛け合わせると、正しい出力が得られる。定数による乗算は一連の加算によって実装できる。正しい出力を計算するために、
図6Qの等式の結果をデバイス(リモートデバイス20など)に送信し、暗号化エンジン62に再度暗号化させて
図6Rの等式に適用し、最終結果を計算することができる。
【0154】
関係演算(計算エンジン88に関して前述した関係演算など)に関しては、準同型関係演算(大なり>、小なり<、など)を実装できる。関係演算a>bからは1ビットのみの結果が得られる。この値は、a>bの場合に1に等しく、それ以外の場合は0に等しくなる。各入力aおよびbの個々のビットは暗号化されており、それぞれa
iおよびb
iと表記する。kビットの数値があり、最下位ビットから始めるとすると、
図6Sに示すように出力はz
kによって与えられる。2つの入力のうちいずれかが暗号化されていない場合、
図6Sに示す計算は大幅に単純化される。例として、bが暗号化されていない場合の式を
図6Tに示す。
【0155】
血圧検査に関して、計算エンジン88は、暗号化された収縮期血圧および拡張期血圧を取り、
図10に示すような血圧の分類を返すように構成できる。このような計算を実装するには、入力された血圧を複数の範囲と比較して血圧の分類を判別する。この処理は、
図11の疑似コードによる関数などの関数によって構成した計算エンジン88によって実行できる。この疑似コード関数の入力パラメータRes_SysおよびRes_Diaは、暗号化された数値をそれぞれ1つずつ保持する。この数値の範囲は0~5であり、それぞれ収縮期Sys_Refおよび拡張期Dia_Refの基準値リストにおける血圧の範囲と比較した、入力された暗号化状態の血圧測定値の分類を示す。
【0156】
上記の血圧の計算はあくまで1つの例であり、このような関係演算を適用する同様の例が多数考えられる。例えば、心房細動脳卒中リスクを表すCHADS2スコアの計算も同様の方法で行える。同様の他の多くの計算も本発明の範囲内である。
【0157】
別の例を示すと、フラミンガム冠動脈疾患リスクスコア(FCRS)は、個人の10年以内の心血管疾患発症リスクを推定するために使用される計算である。この計算は、複数の要因(性別、年齢、喫煙、総コレステロール、高比重リポ蛋白(HDL)コレステロール、収縮期血圧など)に基づく。各変数を値の範囲と比較し、それぞれの範囲にスコアを割り当て、総フラミンガムスコアに加算する。例えば、男性の年齢が50歳の場合は、総スコアに6点を加算する。
【0158】
この計算を実装するために、前述の関係演算の概念を、入力bを下限aおよび上限cと比較するように拡張できる。関数a<b<cは、bがこの範囲内である場合にのみ1になり、それ以外の場合に0になるように実装する。
【0159】
a<b<cを実装する1つの方法は、2段階で実装する方法、すなわちa<bの後にb<cを計算し、それらの結果を掛け合わせる方法である。しかし、この方法では、多くのGSW派生型の準同型暗号化方式と同様に、準同型乗算が非対称であるため、既に計算を経た(non-fresh)2つの暗号文を掛け合わせることができず、既に計算を経た暗号文が、暗号文の乗算結果を含む暗号文になる。a<b<cに対する等式を変形して、作成直後の暗号文をアキュムレータによって乗算する方法で計算エンジン88において実装することが好ましい。
【0160】
この変形を行うには、暗号化されたビット[b
0,b
1,…,b
k-1]を持つkビットの入力bをaおよびc(暗号化または非暗号化)と比較するとして、
図6Uおよび6Vの等式に示すように関数a<b<cを実装できる。
図6Uの等式ではビット0を定義し、
図6Vの等式では各ビットiを定義している。ここで、x
i、y
i、z
iはアキュムレータであり、b
iは入力bの暗号化状態のビットiであり、a
i、c
iはそれぞれ下限および上限のビットである。関係演算の結果はz
kに保持される。a
iおよびc
iが平文である場合は、
図6Tで説明したように
図6Vの等式を単純化できる。
【0161】
テストは、本発明に従って構築したシステムで実施した。使用したテストシステムの詳細を
図12に示す。本発明における準同型演算のパフォーマンスの結果を
図13にまとめた。
図13では、Khedr, A., Gulak, G., and Vaikuntanathan, V. SHIELD: Scalable Homomorphic Implementation of Encrypted Data-Classifiers, Cryptology ePrint Archive, Report 2014/838, 2014 (http://eprint.iacr.org/2014/838.pdf)(
図13ではKhedr 2014に示した)、Lauter, K., Lopez-Alt, A., and Naehrig, M. Private Computation on Encrypted Genomic Data. Tech. Rep, MSR-TR-2014-93, June 2014(
図13ではLauter 2014に示した)、およびLBos, J. W., Lauter, K., and Naehrig, M. Private predictive analysis on encrypted medical data, In Journal of biomedical informatics, Elsevier Inc., 2014, pp. 234-243(
図13ではLBos 2014に示した)と比較している。本発明のテストに使用した回路の深さは、選択したパラメータにおけるLauter 2014のものより大きいため、Lauter 2014に報告されている結果は、回路の深さが大きくパラメータが大きい場合のものである。記載のように、本発明のCPU実装においては、LBos 2014と比較して乗算演算が58倍高速である。さらに、本発明の並列化可能な性質を応用すれば、複数のGPUコアに計算を分散させることによって104倍の高速化を達成できる。これにより、乗算演算の場合はLBos 2014と比較して全体で6085倍、Lauter 2014と比較して286倍の高速化が実現される。
【0162】
本発明は、複数のGPUカードにわたって有利にスケーラブルにすることができる。GPU間通信によるパフォーマンスの低下を測定するために、同じコンピュータに接続した4枚のGPUカードを使用して実験を行った。大規模な問題を分割することにより、4個のGPUすべての間で計算をスケジューリングし、3.946倍の高速化を達成できた。このことは、通信のオーバヘッドが縮小されたことを示している。
【0163】
前述のピアソンの適合度検定およびCAAT検定、予測分析、ならびに関係演算および血圧への応用のパフォーマンス結果を
図14にまとめた。結果は、Lauter 2014、LBos 2014、およびCheon, J. H., Kim, M., and Kim, M. Search-and-compute on Encrypted Data, Cryptology ePrint Archive, Report 2014/812, 2014 (http://eprint.iacr.org/)(
図14ではCheon 2014に示した)と比較した。なお、Cheon 2014について報告されている結果は環Z
14に対応している。理由は、本発明の血圧の例では、3つ以上の数値を加算して最終的な正しい結果を得るためである。
【0164】
生理的データなどの医療データは複雑かつ膨大で、ノイズが非常に多い場合がある。データ収集におけるノイズが発生する原因としては、データ収集に使用する技術、ヒューマンエラー、システム自体の固有の確率的性質、反復測定における個人内での変動、グループ内/母集団内での変動などが挙げられるほか、異常、疾患、または疾病を示している場合もある。ノイズがあるため、データマイニングの際には、データを探査し、保存されている患者データからパターン化された疾患を検出するために使用できるデータのクラスタリングおよび特徴抽出(characterization)アプリケーションが必要である。過去に治療し、最終診断が検証された患者から収集したデータから個々の患者の結果を予測する際には、機械学習アプリケーションも有用であろう。データマイニングおよび機械学習の両方が、スクリーニング、診断、治療、予測、モニタ、疫学的研究、生物医学的/生物学的分析、病院経営、医学教育および訓練に有用であろう。
【0165】
さらに、実施形態によっては、本明細書に記載した暗号化方式をプライバシー保護機械学習アプリケーション、プライバシー保護データマイニング(プライバシー保護データクラスタリングアプリケーションなど)、および医療、金融、またはその他の機密データに対する一般的なセキュアな計算に使用できる。例えば、暗号化されたデータに対するプライバシー保護データクラスタリングアプリケーションを含むプライバシー保護データマイニングにおいて、プライバシー保護機械学習アプリケーションに関連した準同型計算を実行するように計算エンジン88を構成できる。
【0166】
本発明に関する前述の説明から、非常に多くの利点が明らかであろう。ウェアラブルデバイス、ポータブルデバイス、およびモノのインターネット(IoT)に関して、本発明を使用すると、ウェアラブルデバイスおよびポータブルデバイスによって測定されたすべてのデータを暗号化してからクラウドにアップロードすることができる。これは、研究者および臨床医がプライバシーを保護しながら機密データに関する研究を行えるようにするために非常に有用である。前述のとおり、これらのデバイスは、集中管理機関によって生成された公開暗号鍵を保存できる。この集中管理機関は、秘密鍵を管理し、例えば計算結果/アラートを復号する必要がある病院などの医療施設に配布する役割も担う。ウェアラブル/ポータブルデバイスは、取得したデータを暗号化する必要があるだけである。これらの種類のデバイスは一般に処理能力がさほど大きくないが、その点が実装上の大きな障害になることはない。暗号化機能には必ずしも処理速度が要求されないため、組み込みのプロセッサが測定データを数ミリ秒で暗号化できなくても、数秒以内で暗号化できれば性能として十分である。
【0167】
本発明は、本発明の精神または本質的な特徴から逸脱することなく、他の形式で実施することができる。本発明の特定の適合および変更は、当業者には明らかであろう。したがって、本明細書に記載した実施形態は例示であって限定的なものではなく、本発明の範囲は、前述の説明ではなく、添付の請求項によって示される。したがって、当該特許請求の範囲の均等範囲に属する変更は、すべて本発明に含まれると解釈される。