(57)【要約】  ここでは、準同型に暗号化されたデータに対する検証および演算の実行のためのシステム、方法、および装置について記載する。本方法は、暗号化状態のデータを完全に復号することなく、当該データからの情報をセキュアに伝送および抽出することを含む。データ要求は、機密データ群を含む暗号化部分を含むことができる。次に、データ要求に対する応答として、１つ以上の暗号化状態の比較データ群をデータベースから取得できる。さらに、１つ以上の準同型演算を使用することによって、データ要求に含まれる暗号化状態の機密データ群を暗号化状態の比較データ群それぞれと比較し、暗号化状態の機密データ群と一致する暗号化状態の比較データ群を判別する。一致するものがある場合は、その機密データ群を検証する。次に、機密データ群の検証の成否を示す暗号化状態の指標が生成される。この指標は、データ要求に関連した当事者に転送できる。【選択図】図１
2019514301.tif 000002
【特許請求の範囲】
【請求項１】
暗号化状態のデータを完全に復号することなく、前記データからの情報をセキュアに伝送および抽出するための方法であって、
データ要求を受信するステップを含み、
前記データ要求の少なくとも一部が準同型暗号化方式に従って暗号化され、
前記データ要求の前記暗号化部分が少なくとも機密データ群を含み、
前記方法がさらに、１つ以上の暗号化状態の比較データ群をデータベースから取得するステップを含み、
暗号化状態の比較データ群それぞれが準同型暗号化方式に従って暗号化され、
前記方法がさらに、１つ以上の準同型演算を使用することによって、前記データ要求からの暗号化状態の前記機密データ群を暗号化状態の比較データ群それぞれと比較し、暗号化状態の前記機密データ群に一致する暗号化状態の比較データ群を判別するステップ、および一致したときに前記機密データ群を検証するステップと、
前記機密データ群の検証の成否を示す暗号化状態の指標を生成するステップと、
前記データ要求に関連付けられた当事者に前記暗号化状態の指標を転送するステップと
を含み、
本方法の中で前記機密データ群が一切復号されない、方法。
【請求項２】
前記準同型暗号化方式が完全準同型暗号化方式であるかｓｏｍｅｗｈａｔ準同型暗号化方式である、請求項１に記載の方法。
【請求項３】
前記データ要求がさらに、少なくとも１つの非機密データ群を含む、請求項１に記載の方法。
【請求項４】
前記データ要求が複数の機密データ群を含む、請求項１に記載の方法。
【請求項５】
検証対象の機密データ群を判別するステップの実行をさらに含む、請求項４に記載の方法。
【請求項６】
前記データ要求の一部が前記比較データ群と比較され、前記比較データ群のサイズを削減した後に暗号化状態の前記機密データ群を比較する、請求項１に記載の方法。
【請求項７】
前記１つ以上の準同型演算を組み合わせてＸＮＯＲ演算を構成する、請求項１に記載の方法。
【請求項８】
前記機密データ群が身分証明書、パスポート、運転免許証、セキュリティカード、キャッシュカード、クレジットカード、および健康保険証のいずれかに由来する、請求項１に記載の方法。
【請求項９】
前記暗号化状態の指標が、前記データ要求の送信元である前記当事者と異なる当事者に送信される、請求項１に記載の方法。
【請求項１０】
データシステムであって、
ネットワークに接続して複数のリモートデータデバイスから準同型暗号化状態のデータを受信するためのネットワークインタフェースを備え、
前記準同型暗号化状態のデータが、前記リモートデータデバイスに関連付けられたユーザに関連付けられ、
前記データシステムがさらに、前記ネットワークインタフェースに接続される計算エンジンを備え、
前記計算エンジンが、前記データに対する準同型計算を実行して、選択的に復号可能な計算結果を得るように構成される、
データシステム。
【請求項１１】
前記計算エンジンが離散計算を実行するように構成される、請求項１０に記載のシステム。
【請求項１２】
前記計算エンジンが連続計算を実行するように構成される、請求項１０に記載のシステム。
【請求項１３】
前記計算エンジンが関係演算を実行するように構成される、請求項１０に記載のシステム。
【請求項１４】
前記準同型暗号化状態のデータが公開鍵を使用して暗号化され、前記公開鍵が、分析のために計算結果を選択的に復号するために使用される秘密鍵に対応する、請求項１０に記載のシステム。
【請求項１５】
前記秘密鍵を保存する鍵管理システムをさらに含み、前記鍵管理システムが、許可された当事者のために計算結果を選択的に復号する目的で前記秘密鍵を提供するように構成される、請求項１４に記載のシステム。
【請求項１６】
前記鍵管理システムが、アナリスト端末における出力のために計算結果を選択的に復号する目的で前記秘密鍵を提供するように構成される、請求項１５に記載のシステム。
【請求項１７】
前記計算結果に基づいてアラートを出力するように構成されるアラートトリガをさらに含む、請求項１０に記載のシステム。
【請求項１８】
前記計算エンジンが、中国の剰余定理（ＣＲＴ）、数論変換（ＮＴＴ）、１つ以上の記憶装置ブロック、１つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせを実装するように構成されるハードウェア装置を含む、請求項１０に記載のシステム。
【請求項１９】
前記ハードウェア装置が少なくとも１つのグラフィック処理装置（ＧＰＵ）を含む、請求項１８に記載のシステム。
【請求項２０】
前記ハードウェア装置が少なくとも１つのフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含む、請求項１８に記載のシステム。
【請求項２１】
前記ハードウェア装置が少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）を含む、請求項１８に記載のシステム。
【請求項２２】
前記計算エンジンがさらに、プライバシー保護データクラスタリングを実行するように構成される、請求項１０に記載のシステム。
【請求項２３】
前記計算エンジンがさらに、プライバシー保護機械学習を実行するように構成される、請求項１０に記載のシステム。
【請求項２４】
準同型計算を実行するための装置であって、前記装置が記憶装置および少なくとも１つのプロセッサを備え、前記装置が、準同型計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって前記多項式級数の値を計算して暗号化状態の結果を得るように構成され、前記暗号化状態のデータが暗号化方式に従って暗号化され、前記装置がさらに、準同型関係演算を実行して前記暗号化状態の結果を暗号化状態の条件と比較するように構成され、前記暗号化状態の条件が前記暗号化方式に従って暗号化され、前記装置がさらに、前記比較の結果を出力するように構成される、装置。
【請求項２５】
少なくとも１つのグラフィック処理装置（ＧＰＵ）を備える、請求項２４に記載の装置。
【請求項２６】
少なくとも１つのフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を備える、請求項２４に記載の装置。
【請求項２７】
少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）を備える、請求項２４に記載の装置。
【請求項２８】
中国の剰余定理（ＣＲＴ）、数論変換（ＮＴＴ）、１つ以上の記憶装置ブロック、１つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせを実装するように構成される、請求項２４に記載の装置。
【請求項２９】
前記計算が医療分野の計算であり、前記暗号化状態のデータが、患者の測定された生理的データを表す、請求項２４に記載の装置。
【請求項３０】
前記暗号化方式がＲＬＷＥ準同型暗号化方式を含む、請求項２４に記載の装置。
【請求項３１】
前記暗号化方式がＮＴＲＵ準同型暗号化方式を含む、請求項２４に記載の装置。
【請求項３２】
前記装置がさらに、プライバシー保護データクラスタリングを実行するように構成される、請求項２４に記載の装置。
【請求項３３】
前記装置がさらに、プライバシー保護機械学習を実行するように構成される、請求項２４に記載の装置。
【請求項３４】
コンピュータによる読み込みが可能な一時的でないメディアであって、
コンピュータによる読み込みが可能な命令を含み、
前記命令がコンピュータプロセッサによる実行時に実行する方法が、
データ要求を受信し、前記データ要求の少なくとも一部が準同型暗号化方式に従って暗号化されたデータを検証するステップを含み、
前記データ要求が少なくとも１つの機密データ群を含み、
前記方法がさらに、１つ以上の暗号化状態の比較データ群をデータベースから取得するステップを含み、
暗号化状態の比較データ群それぞれが準同型暗号化方式に従って暗号化され、
前記方法がさらに、１つ以上の準同型演算を使用することによって、前記機密データ群を暗号化状態の比較データ群それぞれと比較し、前記機密データ群に一致する暗号化状態の比較データ群を判別するステップ、および一致したときに前記機密データ群を検証するステップと、
前記機密データ群の検証の成否を示す暗号化状態の指標を生成するステップと、
前記データ要求に関連付けられた当事者に前記暗号化状態の指標を転送するステップと
を含み、
前記機密データ群が一切復号されない方法
であるメディア。
【請求項３５】
前記準同型暗号化方式が完全準同型暗号化方式であるかｓｏｍｅｗｈａｔ準同型暗号化方式である、請求項３４に記載の方法。
【請求項３６】
前記データ要求がさらに、少なくとも１つの非機密データ群を含む、請求項３４に記載の方法。
【請求項３７】
前記データ要求が複数の機密データ群を含む、請求項３４に記載の方法。
【請求項３８】
検証対象の機密データ群を判別するステップの実行をさらに含む、請求項３７に記載の方法。
【請求項３９】
前記データ要求の一部が前記比較データ群と比較され、前記比較データ群のサイズを削減した後に暗号化状態の前記機密データ群を比較する、請求項３４に記載の方法。
【請求項４０】
前記１つ以上の準同型演算を組み合わせてＸＮＯＲ演算を構成する、請求項３４に記載の方法。
【請求項４１】
前記機密データ群が身分証明書、パスポート、運転免許証、セキュリティカード、キャッシュカード、クレジットカード、および健康保険証のいずれかに由来する、請求項３４に記載の方法。
【請求項４２】
前記暗号化状態の指標が、前記データ要求の送信元である前記当事者と異なる当事者に送信される、請求項３４に記載の方法。
【請求項４３】
セキュアな金融取引を処理する方法であって、
金融取引を完了するための、少なくとも部分的に準同型に暗号化された要求を受信するステップを含み、
前記要求が格子ベース完全準同型暗号化（ＦＨＥ）方式に従って準同型に暗号化され、
前記取引要求が、口座番号を含む機密カード保有者データ、非機密カード保有者データ、および取引データを含み、
前記方法がさらに、格子ベースＦＨＥ方式に従って暗号化された、１つ以上の準同型暗号化状態の比較用カード保有者データ群を取得するステップと、
１つ以上の準同型演算を使用することによって前記機密カード保有者データを前記比較用カード保有者データ群それぞれと比較することで、前記機密カード保有者データに一致する比較用カード保有者データ群を判別するステップ、および前記機密カード保有者データを検証するステップと、
少なくとも前記機密カード保有者データの前記検証に基づいて前記金融取引を完了するための前記要求の認可または拒否を示す指標を生成および暗号化するステップと、
前記金融取引を完了するための前記要求の認可または拒否を示す前記暗号化状態の指標を、前記金融取引を完了するための認可を求めている当事者に転送するステップと
を含み、
本方法の中で前記機密カード保有者データが一切復号されない、方法。
【請求項４４】
前記機密カード保有者データが口座番号の一部、前記口座番号、有効期限、およびカード検証値（ＣＶＶ）の数値のうち１つ以上を含む、請求項４３に記載の方法。
【請求項４５】
前記非機密カード保有者データが銀行名、カード保有者名、銀行識別番号（ＢＩＮ）、および前記口座番号の下４桁のうち１つ以上を含む、請求項４３に記載の方法。
【請求項４６】
前記取引データが取引額、取引日、および加盟店識別子のうち１つ以上を含む、請求項４３に記載の方法。
【請求項４７】
前記取引データを取得するステップの実行と、１つ以上の準同型演算を使用することによって前記取引データを比較し、前記取引額を認可できるかどうかを判別するステップの実行とをさらに含む、請求項４３に記載の方法。
【請求項４８】
公開鍵の使用によって前記非機密カード保有者データが暗号化される、請求項４３に記載の方法。
【請求項４９】
前記金融取引を完了するための前記要求を行う当事者が前記公開鍵を保持し、前記金融取引を完了するための前記要求を受信する当事者が秘密鍵を保持する、請求項４８に記載の方法。
【請求項５０】
前記１つ以上の準同型演算を組み合わせてＸＮＯＲ演算を構成する、請求項４３に記載の方法。
【請求項５１】
前記金融取引がクレジットカード取引である、請求項４３に記載の方法。
【請求項５２】
前記金融取引を完了するための前記要求が、銀行、クレジットカード会社、カード発行者、または決済処理者のうち１つ以上によって受信される、請求項４３に記載の方法。
【請求項５３】
コンピュータによる読み込みが可能な一時的でないメディアであって、
コンピュータによる読み込みが可能な命令を含み、
前記命令がコンピュータプロセッサによる実行時に実行する方法が、
金融取引を完了するための、少なくとも部分的に準同型に暗号化された要求を受信するステップを含み、
前記要求が格子ベース完全準同型暗号化（ＦＨＥ）方式に従って準同型に暗号化され、
前記取引要求が、口座番号を含む機密カード保有者データ、非機密カード保有者データ、および取引データを含み、
前記方法がさらに、格子ベースＦＨＥ方式に従って暗号化された、１つ以上の準同型暗号化状態の比較用カード保有者データ群を取得するステップと、
１つ以上の準同型演算を使用することによって前記機密カード保有者データを前記比較用カード保有者データ群それぞれと比較することで、前記機密カード保有者データに一致する比較用カード保有者データ群を判別するステップ、および前記機密カード保有者データを検証するステップと、
少なくとも前記機密カード保有者データの前記検証に基づいて前記金融取引を完了するための前記要求の認可または拒否を示す指標を生成および暗号化するステップと、
前記金融取引を完了するための前記要求の認可または拒否を示す前記暗号化状態の指標を、前記金融取引を完了するための認可を求めている当事者に転送するステップと
を含み、
本方法の中で前記機密カード保有者データが一切復号されない方法
であるメディア。
【請求項５４】
前記機密カード保有者データが前記口座番号の一部、口座番号、有効期限、およびカード検証値（ＣＶＶ）の数値のうち１つ以上を含む、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項５５】
前記非機密カード保有者データが銀行名、カード保有者名、銀行識別番号（ＢＩＮ）、および前記口座番号の下４桁のうち１つ以上を含む、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項５６】
前記取引データが取引額、取引日、および加盟店識別子のうち１つ以上を含む、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項５７】
前記取引データを取得するステップの実行と、１つ以上の準同型演算を使用することによって前記取引データを比較し、前記取引額を認可できるかどうかを判別するステップの実行とをさらに含む、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項５８】
公開鍵の使用によって前記非機密カード保有者データが暗号化される、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項５９】
前記金融取引を完了するための前記要求を行う当事者が前記公開鍵を保持し、金融取引を完了するための前記要求を受信する当事者が秘密鍵を保持する、請求項５８に記載のコンピュータによる読み込みが可能なメディア。
【請求項６０】
前記１つ以上の準同型演算を組み合わせてＸＮＯＲ演算を構成する、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項６１】
前記金融取引がクレジットカード取引である、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項６２】
前記金融取引を完了するための前記要求が、銀行、クレジットカード会社、カード発行者、または決済処理者のうち１つ以上によって受信される、請求項５３に記載のコンピュータによる読み込みが可能なメディア。
【請求項６３】
暗号化状態のデータとの比較を実行する方法であって、前記方法が、
計算を多項式級数としてモデル化し、
暗号化状態のデータを使用することによって前記多項式級数の値を計算して暗号化状態の結果を得るステップを含み、
前記暗号化状態のデータが暗号化方式に従って暗号化され、
前記方法がさらに、準同型関係演算を実行することで前記暗号化状態の結果を暗号化状態／非暗号化状態の条件と比較するステップを含み、
前記暗号化状態の条件が前記暗号化方式に従って暗号化され、
前記方法がさらに、前記比較の結果を出力するステップを含む、
方法。
【請求項６４】
前記計算が医療分野の計算であり、前記暗号化状態のデータが、患者の測定された生理的データを表す、請求項６３に記載の方法。
【請求項６５】
前記結果の出力が前記結果の復号を含む、請求項６４に記載の方法。
【請求項６６】
前記結果の出力がアラートのトリガを含む、請求項６４に記載の方法。
【請求項６７】
前記暗号化方式がＲＬＷＥ準同型暗号化方式を含む、請求項６３に記載の方法。
【請求項６８】
前記暗号化方式がＮＴＲＵ準同型暗号化方式を含む、請求項６３に記載の方法。
【請求項６９】
前記計算および実行が、中国の剰余定理（ＣＲＴ）、数論変換（ＮＴＴ）、１つ以上の記憶装置ブロック、１つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせを使用するハードウェア装置によって実行される、請求項６３に記載の方法。
【請求項７０】
請求項６３〜６９に記載のいずれかの方法を実行するように構成される、システム。
【請求項７１】
医療データシステムであって、
ネットワークに接続して複数のリモート医療デバイスから準同型暗号化状態のデータを受信するためのネットワークインタフェースを備え、
前記準同型暗号化状態のデータが、前記リモート医療デバイスに関連付けられた患者の測定された生理的データを表し、
前記医療データシステムがさらに、前記ネットワークインタフェースに接続される計算エンジンを備え、
前記計算エンジンが、前記データに対する準同型計算を実行して、選択的に復号可能な計算結果を得るように構成される、
医療データシステム。
【請求項７２】
前記計算エンジンが心房細動脳卒中リスクスコアの計算を実行するように構成される、請求項７１に記載のシステム。
【請求項７３】
前記計算エンジンが心血管リスクスコアの計算を実行するように構成される、請求項７１に記載のシステム。
【請求項７４】
前記計算エンジンが遺伝子型の計算を実行するように構成される、請求項７１に記載のシステム。
【請求項７５】
前記計算エンジンが離散計算を実行するように構成される、請求項７１に記載のシステム。
【請求項７６】
前記計算エンジンが連続計算を実行するように構成される、請求項７１に記載のシステム。
【請求項７７】
前記計算エンジンが関係演算を実行するように構成される、請求項７１に記載のシステム。
【請求項７８】
前記準同型暗号化状態のデータが公開鍵を使用して暗号化され、前記公開鍵が、分析のために計算結果を選択的に復号するために使用される秘密鍵に対応する、請求項７１に記載のシステム。
【請求項７９】
前記秘密鍵を保存する鍵管理システムをさらに備え、前記鍵管理システムが、許可された当事者のために計算結果を選択的に復号する目的で前記秘密鍵を提供するように構成される、請求項７８に記載のシステム。
【請求項８０】
前記鍵管理システムが、アナリスト端末における出力のために計算結果を選択的に復号する目的で前記秘密鍵を提供するように構成される、請求項７９に記載のシステム。
【請求項８１】
前記計算結果に基づいてアラートを出力するように構成されるアラートトリガをさらに備える、請求項７１に記載のシステム。
【請求項８２】
前記計算エンジンが、中国の剰余定理（ＣＲＴ）、数論変換（ＮＴＴ）、１つ以上の記憶装置ブロック、１つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせを実装するように構成されるハードウェア装置を含む、請求項７１に記載のシステム。
【請求項８３】
前記ハードウェア装置が少なくとも１つのグラフィック処理装置（ＧＰＵ）を含む、請求項８２に記載のシステム。
【請求項８４】
前記ハードウェア装置が少なくとも１つのフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含む、請求項８２に記載のシステム。
【請求項８５】
前記ハードウェア装置が少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）を含む、請求項８２に記載のシステム。
【請求項８６】
前記計算エンジンがさらに、プライバシー保護データクラスタリングを実行するように構成される、請求項７１に記載のシステム。
【請求項８７】
前記計算エンジンがさらに、プライバシー保護機械学習を実行するように構成される、請求項７１に記載のシステム。
【請求項８８】
前記計算エンジンがさらに、非医療データに対するセキュアな計算を実行するように構成される、請求項７１に記載のシステム。
【請求項８９】
準同型計算を実行するための装置であって、前記装置が記憶装置および少なくとも１つのプロセッサを備え、前記装置が、準同型計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって前記多項式級数の値を計算して暗号化状態の結果を得るように構成され、前記暗号化状態のデータが暗号化方式に従って暗号化され、前記装置がさらに、準同型関係演算を実行して前記暗号化状態の結果を暗号化状態の条件と比較するように構成され、前記暗号化状態の条件が前記暗号化方式に従って暗号化され、前記装置がさらに、前記比較の結果を出力するように構成される、装置。
【請求項９０】
少なくとも１つのグラフィック処理装置（ＧＰＵ）を備える、請求項８９に記載の装置。
【請求項９１】
少なくとも１つのフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を備える、請求項８９に記載の装置。
【請求項９２】
少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）を備える、請求項８９に記載の装置。
【請求項９３】
中国の剰余定理（ＣＲＴ）、数論変換（ＮＴＴ）、１つ以上の記憶装置ブロック、１つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせを実装するように構成される、請求項８９に記載の装置。
【請求項９４】
前記計算が医療分野の計算であり、前記暗号化状態のデータが、患者の測定された生理的データを表す、請求項８９に記載の装置。
【請求項９５】
前記暗号化方式がＲＬＷＥ準同型暗号化方式を含む、請求項８９に記載の装置。
【請求項９６】
前記暗号化方式がＮＴＲＵ準同型暗号化方式を含む、請求項８９に記載の装置。
【請求項９７】
前記装置がさらに、プライバシー保護データクラスタリングを実行するように構成される、請求項８９に記載の装置。
【請求項９８】
前記装置がさらに、プライバシー保護機械学習を実行するように構成される、請求項８９に記載の装置。
【請求項９９】
前記装置がさらに、非医療データに対するセキュアな計算を実行するように構成される、請求項８９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、準同型に暗号化されるデータのシステムおよび方法に関し、より具体的には、機密データの復号を伴わない、準同型に暗号化された機密データの検証および当該機密データに対する演算の実行に関する。
【背景技術】
【０００２】
特に無線伝送およびクラウドデータサービスを通じて伝送され、共有される個人データが増えるにつれて、秘密の個人情報のプライバシーがますます重要になってきている。プライバシーの問題が発生する理由は、クラウドサーバにセキュリティ違反があるおそれがあるほか、サービス提供者そのものがこの機密情報を濫用するおそれがあるためである。標準的な暗号化方式は、破るのが困難な暗号化方式を工夫することによってこれらの懸念に対処しようとしているが、それでも、サービス提供者がこの機密データを濫用する可能性は解消されない。
【０００３】
金融データや医療データなどの機密データおよび個人データのプライバシーは最も関心が高い領域である。しかし、金融取引を実行したり、研究の実施または健康上の緊急事態に対処する目的で医療データにアクセスできるようにしたりするなど、正当な目的でこのデータにアクセスできることも重要である。
【０００４】
したがって、当該技術の改良が必要である。
【発明の概要】
【０００５】
本発明の一実施形態によれば、暗号化状態のデータを完全に復号することなく、データからの情報をセキュアに伝送および抽出するための方法であって、データ要求を受信し（データ要求の少なくとも一部は準同型暗号化方式に従って暗号化され、データ要求の暗号化部分は少なくとも機密データ群を含む）、１つ以上の暗号化状態の比較データ群をデータベースから取得し（暗号化状態の比較データ群はそれぞれ準同型暗号化方式に従って暗号化される）、１つ以上の準同型演算を使用してデータ要求に含まれる暗号化状態の機密データ群を暗号化状態の比較データ群それぞれと比較し、暗号化状態の機密データ群と一致する暗号化状態の比較データ群を判別し、一致したときに機密データ群を検証し、機密データ群の検証の成否を示す暗号化状態の指標を生成し、データ要求に関連付けられた当事者に暗号化状態の指標を転送する方法であって、この方法の中で機密データ群が一切復号されない方法が提供される。
【０００６】
本発明の別の実施形態によれば、ネットワークに接続して複数のリモートデータデバイスから準同型暗号化状態のデータを受信するためのネットワークインタフェースと（準同型暗号化状態のデータは、リモートデータデバイスに関連付けられたユーザに関連付けられる）、そのネットワークインタフェースに接続される計算エンジンと（計算エンジンは、データに対する準同型計算を実行して、選択的に復号可能な計算結果を得るように構成される）を備えるデータシステムが提供される。
【０００７】
本発明のまた別の実施形態によれば、準同型計算を実行するための装置であって、記憶装置および少なくとも１つのプロセッサを備え、準同型計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって多項式級数の値を計算して暗号化状態の結果を得るように構成され（暗号化状態のデータは暗号化方式に従って暗号化される）、準同型関係演算を実行して暗号化状態の結果を暗号化状態の条件と比較するように構成され（暗号化状態の条件は暗号化方式に従って暗号化される）、比較の結果を出力するように構成される装置が提供される。
【０００８】
本発明のまた別の実施形態によれば、コンピュータによる読み込みが可能な一時的でないメディアであって、コンピュータによる読み込みが可能な命令を含み、その命令がコンピュータプロセッサによる実行時に、データ要求を受信し、データ要求の少なくとも一部が準同型暗号化方式に従って暗号化されたデータを検証し（データ要求は少なくとも１つの機密データ群を含む）、１つ以上の暗号化状態の比較データ群をデータベースから取得し（暗号化状態の比較データ群はそれぞれ準同型暗号化方式に従って暗号化される）、１つ以上の準同型演算を使用して機密データ群を暗号化状態の比較データ群それぞれと比較し、機密データ群と一致する暗号化状態の比較データ群を判別し、一致したときに機密データ群を検証し、機密データ群の検証の成否を示す暗号化状態の指標を生成し、データ要求に関連付けられた当事者に暗号化状態の指標を転送し、機密データ群が一切復号されないメディアが提供される。
【０００９】
本発明のまた別の実施形態によれば、セキュアな金融取引を処理する方法であって、金融取引を完了するための、少なくとも部分的に準同型に暗号化された要求を受信し（要求は格子ベース完全準同型暗号化（ＦＨＥ）方式に従って準同型に暗号化され、取引要求は、口座番号を含む機密カード保有者データ、非機密カード保有者データ、および取引データを含む）、格子ベースＦＨＥ方式に従って暗号化された、１つ以上の準同型暗号化状態の比較用カード保有者データ群を取得し、１つ以上の準同型演算を使用することによって機密カード保有者データを比較用カード保有者データ群それぞれと比較することで、機密カード保有者データに一致する比較用カード保有者データ群を判別し、機密カード保有者データを検証し、少なくとも機密カード保有者データの検証に基づいて金融取引を完了するための要求の認可または拒否を示す指標を生成および暗号化し、金融取引を完了するための要求の認可または拒否を示す暗号化状態の指標を、その金融取引を完了するための認可を求めている当事者に転送する方法であって、この方法の中で機密カード保有者データが一切復号されない方法が提供される。
【００１０】
本発明のまた別の実施形態によれば、コンピュータによる読み込みが可能な一時的でないメディアであって、コンピュータによる読み込みが可能な命令を含み、その命令がコンピュータプロセッサによる実行時に、金融取引を完了するための、少なくとも部分的に準同型に暗号化された要求を受信し（要求は格子ベース完全準同型暗号化（ＦＨＥ）方式に従って準同型に暗号化され、取引要求は、口座番号を含む機密カード保有者データ、非機密カード保有者データ、および取引データを含む）、格子ベースＦＨＥ方式に従って暗号化された、１つ以上の準同型暗号化状態の比較用カード保有者データ群を取得し、１つ以上の準同型演算を使用することによって機密カード保有者データを比較用カード保有者データ群それぞれと比較することで、機密カード保有者データに一致する比較用カード保有者データ群を判別し、機密カード保有者データを検証し、少なくとも機密カード保有者データの検証に基づいて金融取引を完了するための要求の認可または拒否を示す指標を生成および暗号化し、金融取引を完了するための要求の認可または拒否を示す暗号化状態の指標を、その金融取引を完了するための認可を求めている当事者に転送し、この方法の中で機密カード保有者データが一切復号されないメディアが提供される。
【００１１】
本発明のまた別の実施形態によれば、暗号化状態のデータとの比較を実行する方法であって、計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって多項式級数の値を計算して暗号化状態の結果を得（暗号化状態のデータは暗号化方式に従って暗号化される）、準同型関係演算を実行することで暗号化状態の結果を暗号化状態／非暗号化状態の条件と比較し（暗号化状態の条件は暗号化方式に従って暗号化される）、比較の結果を出力する方法が提供される。
【００１２】
本発明のまた別の実施形態によれば、ネットワークに接続して複数のリモート医療デバイスから準同型暗号化状態のデータを受信するためのネットワークインタフェースと（準同型暗号化状態のデータは、リモート医療デバイスに関連付けられた患者の測定された生理的データを表す）、そのネットワークインタフェースに接続される計算エンジンと（計算エンジンは、データに対する準同型計算を実行して、選択的に復号可能な計算結果を得るように構成される）を備える医療データシステムが提供される。
【００１３】
本発明のまた別の実施形態によれば、準同型計算を実行するための装置であって、記憶装置および少なくとも１つのプロセッサを含み、準同型計算を多項式級数としてモデル化し、暗号化状態のデータを使用することによって多項式級数の値を計算して暗号化状態の結果を得るように構成され（暗号化状態のデータは暗号化方式に従って暗号化される）、準同型関係演算を実行して暗号化状態の結果を暗号化状態の条件と比較するように構成され（暗号化状態の条件は暗号化方式に従って暗号化される）、比較の結果を出力するように構成される装置が提供される。
【００１４】
本発明による他の態様および特徴は、本発明の実施形態に関する以下の説明および添付の図を踏まえれば、当業者には明白になろう。
【００１５】
図面は、本発明の実施形態を、あくまで例として示すものである。
【００１６】
同一の参照番号は、図中の同一または対応する要素を示す。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態によるセキュアな計算環境を示す図である。
【図２】本発明の一実施形態によるリモートデバイスを示す図である。
【図３】本発明の一実施形態によるデータシステムを示す図である。
【図４】本発明の一実施形態による鍵管理システムを示す図である。
【図５】本発明の一実施形態による別のデータシステムを示す図である。
【図６】本発明の一実施形態による計算を実行するための等式を示す。
【図７】本発明の一実施形態について各種の例で使用したデータの表である。
【図８】本発明の一実施形態について各種の例で使用したデータの表である。
【図９】本発明の一実施形態について各種の例で使用したデータの表である。
【図１０】本発明の一実施形態について各種の例で使用したデータの表である。
【図１１】本発明の一実施形態による関係演算を実装するための疑似コードのリストである。
【図１２】実施したテストのテストパラメータおよび結果を示す。
【図１３】実施したテストのテストパラメータおよび結果を示す。
【図１４】実施したテストのテストパラメータおよび結果を示す。
【図１５】４当事者によるクレジットカード取引システムを示す図である。
【図１６】本発明の一実施形態による決済処理チェーンを示す図である。
【図１７】本発明の一実施形態によるセキュアな決済処理システムを示す図である。
【図１８】本発明の一実施形態による秘密鍵サイズの縮小を示す図である。
【図１９】暗号文サイズの縮小と、フラット化（ｆｌａｔｔｅｎ）関数が不要になることを示す図である。
【図２０】暗号文の乗算演算のための疑似コードを示す。
【図２１】本発明の一実施形態によるパラメータ選択例の表である。
【図２２】本発明の一実施形態による式／等式を示す。
【発明を実施するための形態】
【００１８】
本明細書に記載する実施例は医学および金融分野での応用に基づいているが、記載した本発明の手法は他の形態の機密データに応用できる。この文脈では、データの取得、保存、および分析に関係するさまざまな装置および当事者が、処理対象の機密データの種類に対して適切であると考え直すことができる。
【００１９】
準同型暗号化／復号
機密データに対して実行される準同型暗号化／復号の演算は、図１〜５および図６Ａ〜６Ｅに示すように実行できる。鍵の生成は、鍵管理システム３６など、セキュアなシステムにおいて行われる。公開鍵６８は、機密情報を保持するリモートデバイス２０（医療用装置、クレジットカード、リモートセンサなど）を配備する前に、リモートデバイス２０に事前にロードできる。代わりに、または加えて、ネットワークリソース（パブリッククラウドなど）を通じて公開鍵６８をリモートデバイス２０において使用可能にすることもできる。この場合は、公開鍵６８にアクセスするために資格情報の検証または認可（ユーザ名およびパスワードなど）を必要とするように構成できる。リモートデバイス２０の基板上、およびデータシステム１２０内の暗号化エンジン６２は、以下に記載する準同型暗号化の手法を実装するように構成できる。鍵管理システム３６における復号エンジン１０４は、以下に記載する準同型復号の手法を実装するように構成できる。データシステム２２及び１２０における計算エンジン８８は、等式、計算パラメータ、上限、下限、中間結果、および累算結果の保存および処理を含め、以下に記載する計算手法を実装するように構成できる。
【００２０】
以下の説明のための表記に関して、奇数の素数をｑとした場合の区間（−ｑ／２，ｑ／２）∩Ｚの環をＺ／ｑＺ（またはＺｑ）と記す。表記［ｘ］ｑは、ｑを法とするｘの簡約を表す。本明細書に記載する例では、商多項式Ｒ＝Ｚ［Ｘ］／Φｍ（Ｘ）によって定義される多項式環を使用する。ここで、Φｍ（Ｘ）＝ｘｎ＋１は既約ｍ次円分多項式であり、ｎは２のべき乗であり、ｍ＝２ｎである。Ｒｑ＝Ｒ／ｑＲとする。本明細書では、行列および多項式の乗算を含め、すべての種類の乗算を乗算演算子「・」によって表す。最も近い整数への丸めは｜ａ｜によって表す。環の行列をＡＭ×Ｎと定義する。ここで、Ａｉｊ∈Ｒｑであり、Ｍ、Ｎは行列の次元である。Ｉｌ×ｌは環の単位行列を表す。行ベクトルは［ａ  ｂ］と表す。ここで、ａおよびｂはベクトルの要素とする。一方、列ベクトルは［ａ；ｂ］と表す。
【００２１】
本暗号方式のパラメータはｎ（数体の次数）、ｑ（法）、σｋおよびσｃ（それぞれ鍵空間および暗号文空間における離散ガウス誤差分布の標準偏差）、
【数１】
2019514301.tif 000003
（暗号文における環要素の数を制御する）である。これらのパラメータの設定は、セキュリティレベルλ（例えばλ＝８０または１２８ビット）のほか、暗号文に対して評価しようとする関数の複雑さによって決まる。
【００２２】
ビット分解関数ＢＤ（整数）は、ｌビットの入力整数を取り、その整数をビット分解した結果を含むサイズｌの行ベクトルを出力する。（本明細書（図を含む）に記載する文字ｌはＬの小文字である。）同様にＢＤ（ｐｏｌｙｎｏｍｉａｌ）は、各係数がｌビットの整数である大きさｎの入力多項式を取り、入力多項式の各係数をビット分解した結果を含む多項式（それぞれ大きさｎ）の大きさｌの行ベクトルを出力し、大きさｌ×ｎの行列を生成する。最後に、ＢＤ（Ｍａｔｒｉｘ  ｏｆ  ｐｏｌｙｎｏｍｉａｌｓ）は、大きさｘ×ｙの多項式の入力行列を取り（各多項式の大きさはｎとし、各係数は整数とする）、列次元に係数ｌによって展開した多項式の行列を出力し、大きさｘ×ｙｌの行列を生成する。このとき、行に沿って連続するｌ個の各要素が、各入力多項式の各係数のビット表現を含むものとする。例えば、入力多項式行列Ｂｘ×ｙ×ｎのビット分解はＢＤ（Ｂｘ×ｙ×ｎ）＝βｘ×ｙｌ×ｎである。注意すべき点は、行列βｘ×ｙｌ×ｎの多項式係数は１ビットの値であるが、ＣＰＵまたはＧＰＵの記憶装置における行列βの記憶域所要量はｘ×ｙｌ×ｎビットと等しくないことである。理由は、アドレス指定が可能な記憶装置の最小単位が１バイト（すなわちバイトアドレッシング可能）であるためである。したがって、βにはｘ×ｙｌ×ｎバイトの記憶域が必要である。そのため、βｘ×ｙｌ×ｎの記憶域所要量が少なくともＢｘ×ｙ×ｎの記憶域所要量の８倍になるともいえる。
【００２３】
ビット分解逆関数ＢＤＩ（）はビット分解関数ＢＤ（）の逆関数である。ＢＤＩ（）関数は、行に沿って連続するｌ個の係数をグループ化し（係数が２進値である必要はない）、それらｌビットに対応する整数を出力する。数学的には、ＢＤＩ（）は、多項式の展開後の行列βｘ×ｙｌの右側から、図６Ａの等式で定義する行列αｙｌ×ｙを掛ける演算として定義できる。（明瞭にするために、以後、多項式の次元ｎを省略する）。したがってＢｘ×ｙ＝ＢＤＩ（βｘ×ｙｌ）＝βｘ×ｙｌ・αｙｌ×ｙである。
【００２４】
Ｒｉｎｇ  Ｌｅａｒｎｉｎｇ  Ｗｉｔｈ  Ｅｒｒｏｒｓ（ＲＬＷＥ）ベースの暗号化方式。
本方法およびシステムはＲＬＷＥ（Ｒｉｎｇ  Ｌｅａｒｎｉｎｇ  Ｗｉｔｈ  Ｅｒｒｏｒｓ）暗号方式を利用できる。以下では、当該方式の一般的な原理について説明する。ただし、本方式は特に制限されるものではなく、他の適切な多項式ベースの完全準同型暗号方式を使用できる。さらに、下記における相違点はいずれも、周知の技術の観点から暗号分野の当業者に十分理解されよう。
【００２５】
本システムおよび方法は、鍵の生成、情報の暗号化、および情報の復号を行うように構成される。
【００２６】
鍵生成器は、以下のようにＫｅｙｇｅｎ（１λ）関数を実装するように構成される。多項式
【数２】
2019514301.tif 000004
を選択する。秘密鍵はｓｋ＝ｓ２×１←［１；−ｔ］∈Ｒｑ２になる。公開鍵はｐｋ＝Ａ１×２＝［ｂ  ａ］である。ここで、一様な標本ａ←Ｒｑ、
【数３】
2019514301.tif 000005
であり、ｂ＝ａ・ｔ＋ｅとする。このとき、図２２ａの式が成立する。
【００２７】
図１８に示すように、これは、［ｘ，２ｘ，…，２ｌ−１ｘ］と定義されるＰＯ２（ｘ）などの２のべき展開に基づく周知の秘密鍵ｓｋ＝ｖ＝ＰＯ２（ｓ）よりも有利である。したがって、本鍵生成器は、ｌ倍の理論係数の分だけ小さな秘密鍵を生成する。
【００２８】
暗号化エンジン６２は、以下のようにＥｎｃ（ｐｋ，μ）関数を実装するように構成される。メッセージ空間はＲｑである。一様ベクトルｒＮ×１のサンプリングでは、ｒの多項式の各係数が｛０，１｝、
【数４】
2019514301.tif 000006
からサンプリングされる。平文の多項式μ∈Ｒｑは、図２２ｂの式を計算することで暗号化される。図１９に示すように、この方式は、暗号化エンジン６２によってｌ倍の理論係数の分だけ小さな暗号文が得られるため、ＣＮ×Ｎを使用する先行技術よりも有利である。
【００２９】
復号エンジン１０４は、以下のようにＤｅｃ（ｓｋ，Ｃ）関数を実装するように構成される。暗号文をＣとすると、図２２ｃの式に従ってＣに暗号鍵ｓを掛けることにより、平文μ∈Ｒｑが復元される。
【００３０】
この方式は、暗号化エンジン１０４に必要な演算性能がｌ倍の理論係数の分だけ少ないため、Ｄｅｃ（ｓｋ，Ｃ）＝ＣＮ×Ｎ・ｖＮ×１を実装する先行技術よりも有利である。
【００３１】
図２２ｃに示す式の第１項の先頭からｌ個の係数はμ、２μ、…２ｌ−１μの形になっていることに注意されたい。これは、位置ｉ∈［０，ｌ−１］にある要素がμ・２ｉ＋誤差の形をしていることを意味する。すなわち、誤差がｑ／２未満であり、先行技術に見られるようにｑを法とするラップアラウンドが理論上ないと仮定すると、各項目の最上位ビットは数値μのうちの１ビットを保持する。
【００３２】
以上で、事前に暗号文を復号することなく暗号文に対する演算を行うことができる。入力暗号文ＣＮ×２およびＤＮ×２∈ＲｑＮ×２がそれぞれμ１およびμ２を暗号化しているとすると、準同型演算は以下のように実装される。
【００３３】
加算演算子は、項目ごとの加算ＣＮ×２＋ＤＮ×２を実行することによって２つの暗号文ＣＮ×２およびＤＮ×２を加算するＡＤＤ（Ｃ，Ｄ）関数を実装する。
【００３４】
乗算演算子およびビットごとの分解関数は、一方の暗号文に対してビットごとの分解関数（ＢＤ）を実行した後、ＢＤ（ＣＮ×２）・ＤＮ×２の乗算を実行することによって２つの暗号文ＣＮ×２およびＤＮ×２を掛けるＭＵＬＴ（Ｃ，Ｄ）関数を実装する。
【００３５】
図１９に示すように、この方式は、ＭＵＬＴ（Ｃ，Ｄ）＝ＦＬＡＴＴＥＮ（ＣＮ×Ｎ・ＤＮ×Ｎ）を定義する先行技術よりも有利である（ここで、ＦＬＡＴＴＥＮ（Ａ）はＢＤ（ＢＤＩ（Ａ））と定義する）。本手法で必要な演算は、少なくともｌ倍の理論係数の分だけ少ない。
【００３６】
上記の準同型加算が正しいことは、当業者には容易に明白になろう。乗算は入力暗号文ＣおよびＤで非対称的である。すなわち、Ｄの成分はひとまとまりで扱われるのに対し、Ｃの成分はビットごとに分解される。以下で説明するように、この乗算は正しく、ノイズ増大速度も遅い。
【００３７】
図２２ｄの式を見れば、前述の乗算演算が正しいことは当業者には容易に明白になろう（同図においては、明瞭にするために行列の次元を省略している）。図２２ｄに示す式の操作における最終行は、明らかにμ＝μ２・μ１の暗号化である。
【００３８】
正確に復号されるかどうかは、暗号文ノイズの制限によって決まる。したがって、準同型演算によってどのように暗号文のノイズが増加するかを理解することが重要である。作成直後の（ｆｒｅｓｈ）暗号文をＣとする。ｖ個の暗号文の準同型加算によって、最悪の場合に係数ｖだけノイズが増加することは明らかである。十分に考えられた各種の実装では、誤差多項式の係数がガウス分布に従うと考えられるため、この係数は
【数５】
2019514301.tif 000007
に近づく。
【００３９】
さらに、２つの暗号文Ｃ＝Ｅｎｃ（μ１）およびＤ＝Ｅｎｃ（μ２）があり、誤差の大きさがそれぞれＢ１およびＢ２であるとすると、これら２つの暗号文の準同型乗算によって、最悪の場合に誤差が
【数６】
2019514301.tif 000008
に増加し、十分に考えられた各種の実装では誤差が
【数７】
2019514301.tif 000009
に増加する。ここで、
【数８】
2019514301.tif 000010
はメッセージ多項式μのｌ１ノルムである。上記から明らかなように、２つの暗号文の誤差依存性が非対称であると好都合である。
【００４０】
ｖ個の暗号文を掛けるにあたっては、乗算の順序が誤差に影響すると考えられる。本明細書に記載する手法では、入力μは通常０または１であり、増大はＢ１に関して単純に加算的である。したがって、乗算の二分木を使用せずに、図２０に示すように（同一の）誤差レベルＢを持つｖ個の暗号文の乗算をアキュムレータ様の関数によって行うことが好ましい（二分木を使用すると、誤差が超多項式の速度で増大する傾向がある）。これに伴う誤差の増大は、最悪の場合でＯ（Ｂ・ｖｎｌｏｇ（ｑ））であり、十分に考えられた各種の実装では
【数９】
2019514301.tif 000011
である。したがって、制御ロジックは、図２０に示すように、および十分に考えられた各種の実装で必要とされるように、累積乗算を実装するように構成できる。
【００４１】
例として、以下では図２２ｅの式を参照する。ｘ１、…、ｘｖは暗号化する入力ビットｖ個からなる集合とし、ｙ１、…、ｙｖは何らかの集合Ｓのｖ個のビットからなる集合とし、演算
【数１０】
2019514301.tif 000012
はビットｘｉとｙｉとの間の２進ＸＮＯＲを表すとする。図２５ｅの式の形から、いずれか１項だけが残ること（ｘ１，…，ｘｖ∈Ｓの場合はＦ＝１、それ以外の場合はＦ＝０）が明らかであるため、図２２ｅの式に基づく成分の計算からどの項が残るかを正確に決定できない場合であっても、誤差の合計の増大は小さいといえる。
【００４２】
ノイズが、最悪の場合でＯ（Ｂ・ｖｎｌｏｇ  ｑ・｜Ｓ｜）に、十分に考えられた各種の実装で
【数１１】
2019514301.tif 000013
に増大することは明らかである。これは、ＩＢＭ  ＨＥｌｉｂで実装されている既知のＢｒａｋｅｒｓｋｉ−Ｇｅｎｔｒｙ−Ｖａｉｋｕｎｔａｎａｔｈａｎ暗号化方式を使用した場合の
【数１２】
2019514301.tif 000014
と対照的である。実際、図２２ｅの式に示すように、これらの式に特別なところはまったくなく、後述する決定木およびＰＩＲ様関数の評価でごく自然に発生する。
【００４３】
本明細書に開示する手法によってもたらされる改善の別の要因は、誤差項
【数１３】
2019514301.tif 000015
から明らかである。図２０に示すように、アキュムレータを使用して乗算を実行するとき、Ｂ２は、作成直後の暗号文Ｃｉの小さい誤差を表し、Ｂ１は、累算された暗号文Ｃａｃｃｕｍの大きい誤差を表す。Ｃｉがμ２＝０を暗号化する場合、大きい側の誤差項Ｂ１は誤差の式から消える。
【００４４】
この誤差の縮小は、図２２ｅの式からも明らかである。図２２ｅの式にあるそれぞれの積を評価するとき、誤差は、ｖ（乗算の総数）ではなく、ｋ（末尾から続く連続する１の最長の連鎖）に比例して増大すると見なすことができる。理由は、前述のとおり、乗算の連鎖の中で最後に０が出現すると誤差が縮小するためと考えられる。予想される集合をＳとし、末尾の１の連鎖の予想される長さを
【数１４】
2019514301.tif 000016
と仮定する。言い換えると、ｖの倍数が誤差の式からも消え、誤差の増大が
【数１５】
2019514301.tif 000017
に近くなる。これは実質的に、｜Ｓ｜個の暗号文を加算したのと同じ結果である。
【００４５】
さらに、ｆを評価対象の関数とすると（例えば図２２ｅの式）、ｅｒｒｏｒｆ（Ｂ，ｎ，ｑ）は、大きさＢの初期誤差を持つＲｑの暗号文に対して関数ｆを評価するときに誤差がどの程度増大するかを示す。正確に復号するためには、図２２ｆの式が成立する必要がある。本手法を使用すると誤差の増大が遅くなる傾向があるため、それに応じてｑを小さく設定しても、先行技術のセキュリティレベルと同等のセキュリティレベルを満たすことができる。ＬｉｎｄｎｅｒおよびＰｅｉｋｅｒｔの分析によると、λビットのセキュリティレベルの場合は、以下の式が成立する必要がある。
【数１６】
2019514301.tif 000018
【００４６】
本手法におけるｌｏｇ  ｑは小さくなるため、同じセキュリティレベルλであればｎもより小さく設定できる。さらに、ｎが小さくなればｅｒｒｏｒｆ（Ｂ，ｎ，ｑ）も小さくなる可能性があるため、ｑをさらに小さくできる（以下同様）。適切なパラメータは、図２２ｆおよび２２ｇに示す上記の両不等式を連立させて解くことで得られる。図２１に、このようなパラメータ選択の例をまとめた。
【００４７】
ＮＴＲＵベースのＦＨＥ方式
本発明の一部の例では、ＲＬＷＥベースのＦＨＥ方式の代替として、ＮＴＲＵ式の暗号化方式を使用して計算の複雑さを低減し、演算を高速化する。以下では、この点について詳細に説明する。当該暗号化システムは以下のように動作する。
【００４８】
鍵生成関数Ｋｅｙｇｅｎ（１λ）は２つの多項式
【数１７】
2019514301.tif 000019
を必要とする。ここで、（ａ）ｆは環Ｒｑの可逆元、かつ（ｂ）ｆ≡１  （ｍｏｄ  ２）とする。これは、条件（ａ）および（ｂ）を満たすまで分布
【数１８】
2019514301.tif 000020
から多項式ｆをサンプリングすることで実現できる。
【００４９】
公開鍵ｐｋおよび秘密鍵ｓｋは、図６Ｂに示す等式から計算できる。
【００５０】
暗号化関数Ｅｎｃ（ｐｋ，ｍ）に関し、メッセージ空間はＲｑである。平文の多項式μ∈Ｒｑは、図６Ｃの等式を評価することで暗号化される。ここで、
【数１９】
2019514301.tif 000021
は標準偏差σｃの離散ガウス分布からサンプリングする。この暗号化関数は暗号化エンジン６２において実装できる。
【００５１】
任意の暗号文Ｃに対する復号関数Ｄｅｃ（ｓｋ，Ｃ）に関して、平文μ∈Ｒｑは、図６Ｄの等式を使用してＣに秘密鍵ｆを掛けることで復元される。この復号関数は復号エンジン１０４において実装できる。
【００５２】
図６Ｄに関し、最終行の第１項にあるｌ個の多項式はμｆ、２μｆ、…、２ｌ−１μｆの形をしている。これは、位置ｉ∈［０，ｌ−１］にある要素がμｆ・２ｉ＋誤差の形をしていることを意味する。すなわち、誤差がｑ／２未満であり、先行技術に見られるようにｑを法とするラップアラウンドがないと仮定すると、各項目の最上位ビットは、μｆの各係数のうちの１ビットを保持する。そのため、μｆはＣから完全に復元でき、さらにｆ−１を掛けることでμを復元できる。
【００５３】
メッセージ多項式μを復元できるほか、以下で説明するように、暗号文にあるｌ個の環要素により、準同型演算（特に準同型乗算）におけるノイズの増大が緩和され、対処可能になる。
【００５４】
準同型演算に関し、入力暗号文Ｃｌ×１およびＤｌ×１∈Ｒｑｌ×１がそれぞれμ１およびμ２を暗号化しているとすると、準同型演算は以下のように定義される。２つの暗号文Ｃｌ×１およびＤｌ×１を加える加算演算ＡＤＤ（Ｃ，Ｄ）の場合、出力はＣｌ×１＋Ｄｌ×１であり、これは項目ごとの加算である。２つの暗号文Ｃｌ×１およびＤｌ×１を掛ける乗算演算ＭＵＬＴ（Ｃ，Ｄ）の場合、出力はＢＤ（Ｃｌ×１）・Ｄｌ×１である。加算および乗算の演算は計算エンジン８８において実装できる。
【００５５】
上記の準同型加算および準同型乗算が正しいことは、本開示を考慮すれば、当業者には容易に明白になろう。乗算演算は入力暗号文ＣおよびＤで非対称的であることは明白である。すなわち、Ｄの成分はひとまとまりで扱われるのに対し、Ｃの成分はビットごとに分解される。以下では、この乗算方法が正しく、ノイズ増大速度が遅いことを示す。
【００５６】
上記の乗算演算が正しいことは、図６Ｅに示す復号演算から明白である（同図においては、明瞭にするために行列の次元を省略している）。図６Ｅの最終行はμ＝μ２・μ１・ｆの暗号化であることに注意されたい。また、ＢＤ（Ｃｌ×１）・ＢＤＩ（Ｉｌ×ｌ）＝Ｉｌ×ｌ・Ｃｌ×１＝Ｃｌ×１である。
【００５７】
ノイズ分析に関し、作成直後の暗号文をＣとすると、図６Ｅに示す演算を考慮して以下のことがいえる。ｖ個の暗号文の準同型加算によって、最悪の場合に係数ｖだけノイズが増加する。実装によっては、誤差多項式の係数がガウス分布に従うため、この係数は
【数２０】
2019514301.tif 000022
に近づく。さらに、２つの暗号文Ｃ＝Ｅｎｃ（μ１）およびＤ＝Ｅｎｃ（μ２）があり、誤差の大きさがそれぞれＢ１およびＢ２であるとすると、これら２つの暗号文の準同型乗算によって、最悪の場合に誤差が
【数２１】
2019514301.tif 000023
に増加し、十分に考えられた各種の実装では誤差が
【数２２】
2019514301.tif 000024
に増加する。ここで、
【数２３】
2019514301.tif 000025
は、メッセージ多項式μのｌ１ノルムを表す。このことから分かるように、２つの暗号文の誤差依存性は非対称である。
【００５８】
パラメータの設定に関し、評価対象でありｖ個の暗号文の乗算を計算する関数をｆとすると、ｅｒｒｏｒｆ（Ｂ，ｎ，ｑ）は、大きさＢの初期誤差を持つＲｑの暗号文に対して関数ｆを評価するときに誤差がどの程度増大するかを示す。正確に復号するためには、図６Ｆの式を満たす必要がある。
【００５９】
本発明による誤差の増大は周知の一部の方式より遅いと考えられるため、およびノイズの増大を制御するためのモジュラスのチェーンが不要であると考えられるため、それに応じてｑを小さく設定しても、それら周知の方式によって得られるセキュリティレベルと同じセキュリティレベルを確保できる。λビットのセキュリティレベルの場合は、図６Ｇの等式を満たす必要がある。
【００６０】
本発明によるｌｏｇ  ｑは周知の方式より小さくできるため、ｎを小さく設定しても同じセキュリティレベルλを確保できる。さらに、ｎが小さくなれば新たなｅｒｒｏｒｆ（Ｂ，ｎ，ｑ）も小さくなるため、ｑをさらに小さくできる（以下同様）。最適なパラメータは、図６Ｆおよび６Ｇに示す上記の不等式を連立させて解くことで得られる。図７の表にパラメータ選択の例をまとめた。
【００６１】
さらに、本実施形態による暗号化方式では、ＧＳＷ方式によって導入されたフラット化演算を使用しない。フラット化された暗号文（Ｃｔｘｔ）は大きな記憶空間を占有する。また、項目の結合およびビットへの分解に必要な計算時間が長い（ｍビットのグループに分解して高い基数のビット分解演算を行う場合であっても同様である）。さらに、本発明による暗号化方式ではフラット化演算を使用しないため、暗号文を表す単一ビットも持たない。それだけでなく、暗号文はｑを法とするパック数として表される。暗号文の乗算を行うには、通常の多項式循環畳み込みを使用するのではなく、高速なＮＴＴアルゴリズムを使用して暗号文の乗算演算を高速化すると有利である。本実施形態による暗号化方式では、暗号文の１つの多項式の１ビットのみを復号するのではなく、暗号文のｌ個すべての多項式の最上位ビットを復号する。この方法では、ｌビット（各多項式から１ビットずつ）を復号できる。これらのビットは、図６Ｗに示す式を使用して結合され、暗号化状態の多項式が構成される。
【００６２】
以下では、収集可能な暗号化状態の機密データの種類、およびそれに対して実行可能な準同型計算について説明する。以下に記載するデータ／計算は、暗号化状態のゲノムデータ、疾患の予測分析、関係演算の評価などの医療データの分析を含む。ここに記載する他のデータには、金融取引データ、特にクレジットカードのデータもある。記載している一部の例は特定のデータに関係しているが、一部の計算（関係演算など）は他の種類のデータに対して使用できる。さらに、以下に記載する例は限定的なものではなく、本発明の範囲内の他の例も考慮されることに注意されたい。
【００６３】
金融取引
準同型暗号化システムの実施形態の応用分野として、金融取引、特にクレジットカード取引も挙げられる。近年、クレジットカードに対する攻撃は著しくエスカレートしており、大規模な侵害の事例では、数百万もの顧客レコードが流出している。いったん流出すると、顧客情報が（ダークウェブなどで）転売されたり、不正な取引、特に非対面（ＣＮＰ）取引に利用されたり、販売時点情報管理（ＰＯＳ）システムに対する直接攻撃に利用されたりする可能性がある。
【００６４】
これらの攻撃が起きる理由は、データベース内または顧客のいずれかのクレジットカード情報が、クレジットカードのオーソリゼーション処理のある時点で平文の形式で存在するためである。本発明の一実施形態によれば、システムが、クレジットカード情報の取得時点から当該情報を暗号化でき、認証段階であってもその暗号文が復号されることがない。
【００６５】
決済処理
ＶＩＳＡ（登録商標）やＭａｓｔｅｒＣａｒｄ（登録商標）など、主要なクレジットカード会社は、４当事者モデル（ｆｏｕｒ−ｐａｒｔｙ  ｍｏｄｅｌ）によるクレジットカード取引を構築している。このモデルの当事者はカード保有者１５００、加盟店１５１０（サービス提供者）、決済処理者１５２０（アクワイアラ）、およびカード発行者１５４０である。さらに、第５の当事者としてクレジットカード会社（決済ブランド）１５３０が存在する場合もある。これらを図１５に示す。
【００６６】
カード保有者１５００が何かを買おうとしてオンラインの加盟店でクレジットカード情報を使用するか、店頭でクレジットカード１５０５を加盟店１５１０に提示すると、取引が始まる。加盟店１５１０は（オンラインで、またはＰＯＳシステムを使用して）クレジットカード情報を取得して暗号化し、ネットワーク経由で決済処理者１５２０に送信する（１５１５）。加盟店における暗号化は、公開暗号鍵を使用し、ＰＯＳ端末で行うか、加盟店のシステムにインストールされたアプリケーションを使用して行うことができる。次に、決済処理者１５２０がそのクレジットカード情報を復号してカード発行者１５３０に転送し（１５２５）、オーソリゼーションを受ける。加盟店１５１０は、クレジットカードのオーソリゼーションを得ると、クレジットカードに課金し、サービスまたは製品をカード保有者１５００に提供する。決済処理者１５２０はそのサービス提供の費用を加盟店に弁済し、その後、カード発行者１５３０が２４時間または４８時間以内に決済処理者１５２０に対する支払いを行う。決済処理者と加盟店との間でトークン化されたシステムを使用すると、加盟店がカード保有者の情報を保存する必要をなくすことができる。加盟店は、カード保有者の口座または個々の取引に対応するトークンのみを保存する。
【００６７】
カード保有者および取引のデータなどの情報のほか、ネットワークフィーやインタチェンジフィーなどの内部手数料は、決済処理者１５２０とクレジットカード会社１５４０との間（１５４５）、カード発行者１５３０とクレジットカード会社１５４０との間（１５５５）、またはこれら両方で、取引中に必要に応じて、または取引後に渡される場合がある。
【００６８】
このクレジットカードシステムには脆弱な点が複数あり、攻撃者がクレジットカード情報を盗める可能性がある。
【００６９】
販売時点情報管理（ＰＯＳ）システム：カード保有者が加盟店でカードを提示すると、クレジットカードの機械またはカード読み取り装置にそのカードが通され、その情報がコンピュータに転送される。このカード情報が決済処理者に送信されるまでに、ある程度の時間にわたってそのカード情報が暗号化されない段階がシステムに存在する可能性がある。システムにマルウェアがインストールされていると、この段階でその情報を収集し、攻撃者に送信することができる。この脆弱性に対処するには、カード読み取り装置を使用してクレジットカード情報を読み取った瞬間にその情報を暗号化しなければならない。この方法によれば、マルウェアがこの方法を使用してカード情報を収集することはできない。現在は、Ｐ２ＰＥ（ｐｏｉｎｔ  ｔｏ  ｐｏｉｎｔ  ｅｎｃｒｙｐｔｉｏｎ）を使用してセキュアにＰＯＳシステムから決済処理者にクレジットカード情報を伝送した後、決済処理者が復号してカード発行者に送信し、検証を依頼している。Ｐ２ＰＥは暗号化に３ＤＥＳまたはＡＥＳを使用する。これらは現在のところ安全であると考えられるが、将来量子コンピュータに対してもセキュアであるとは限らない。
【００７０】
決済処理者：決済処理者は、暗号化されたクレジットカード情報を加盟店から受信すると、その情報を復号し、平文でカード発行者に送信して認証を依頼する。これは明らかな弱点である。決済処理者のシステムにマルウェアがインストールされていたり、決済処理者とカード発行者との間のセキュアチャネルに攻撃者が侵入したりすると、平文の形式になっているクレジットカード情報をそのマルウェアや攻撃者が収集できる。この脆弱性に対処するには、いかなる時点でも絶対にクレジットカード情報を復号してはならない。さらに、トークン化されたシステムの場合も、取引とトークンとの間の相互変換を行うセキュアな保管場所が存在する。この保管場所には、カード保有者の全情報および対応するトークンが保存される。この保管場所がハッキングされると、大切な情報が危険にさらされる。
【００７１】
カード発行者には以下の２つの脆弱性がある。１）顧客のクレジットカード情報を平文で受信すること。そのため、情報が攻撃の可能性にさらされている。２）カード発行者にある、全顧客のクレジットカード情報のデータベースは、受信したカード情報とそのデータベースの情報を比較するために、セキュアサーバに平文で存在する。これは、クレジットカード情報におけるセキュリティ上の最大の脅威である。理由は、このセキュアデータベースが攻撃されると全クレジットカード情報が失われるためである。
【００７２】
データベースにある全クレジットカード情報のほか、平文で受信されるカード情報も暗号化し、暗号文の状態で比較すれば、これらの脆弱性を解決できる。
【００７３】
本発明の一実施形態を図１６に示す。この実施形態は、現行のシステムよりずっと高いセキュリティレベルを実現できるようにクレジットカードのオーソリゼーションシステムを変更したものである。本システムは、格子ベース暗号に基づく量子セキュアな完全準同型暗号化（ＦＨＥ）を使用したＰＯＳシステムにおけるクレジットカード情報の暗号化を基盤とすることができる。ＦＨＥが必要である理由は、暗号化されたデータに対する準同型の加算と乗算の両方の演算が必要なためである。いずれか一方の演算しか必要としない場合は、ｓｏｍｅｗｈａｔ準同型暗号化を使用できる。いったんオンラインＷｅｂサイトまたはＰＯＳにおいてカード情報が暗号化された後は、いかなる時点においても復号の必要がないと考えられる。この暗号化状態のクレジットカード情報は、カード発行者においてクレジットカードデータベースのデータ（データベースに保存されている各種カード保有者のカード保有者データ群など）と比較できる。このデータベースのデータも、同じＦＨＥ暗号化を使用して暗号化できる。
【００７４】
したがって、量子セキュアなＦＨＥ暗号化方式を使用してすべて暗号化できるため、本システムは、ネットワーク内またはデータベースサーバ内におけるクレジットカード情報に対する攻撃の可能性を一切排除できる。
【００７５】
消費者１６１０からのカード保有者データ（カード会員番号（ＰＡＮ））がオンライン取引データの入力によって（またはＰＯＳにおいて）取得され、公開鍵完全準同型暗号化（ＦＨＥ）方式を使用してそのデータが暗号化される。クレジットカード番号（１桁目および下４桁を除く）、月、年、およびＣＶＶ番号は、クレジットカード会社によって公開されるＦＨＥ公開暗号鍵を使用して暗号化できる。カード保有者の名前ならびにクレジットカード番号の１桁目および下４桁は、通常の暗号化方式を使用して暗号化できる。次に、加盟店１６２０が、暗号化状態のＰＡＮをアクワイアラ／決済処理者１６３０に送信する。
【００７６】
決済処理者１６３０は、クレジットカードの１桁目（Ｖｉｓａ、ＭａｓｔｅｒＣａｒｄ、Ａｍｅｒｉｃａｎ  Ｅｘｐｒｅｓｓ（登録商標）など）を使用して、暗号化状態のＰＡＮを適切な決済ブランド１６４０に転送する。次に、決済ブランド１６４０が、次の５桁（銀行識別番号（ＢＩＮ））を使用して、暗号化状態のＰＡＮをカード発行者１６５０（発行元銀行）に転送する。
【００７７】
カード発行者１６５０は、カード保有者の名前およびクレジットカード番号の下４桁を使用して、データベースに存在するクレジットカード項目の中からその情報に一致する項目を絞り込める。絞り込んだリストの各項目を列挙し、ＦＨＥアルゴリズムを使用して暗号化状態のＰＡＮと比較できる。さらに、暗号化状態の一致指標に、リストの各項目に対応する数値が乗算される。各項目から得られた暗号化状態の結果がすべて加算され、最終結果が得られる。最終結果は、一致する口座の番号を暗号化しているといえる。他のすべての口座に対応する番号には（一致しないため）０が掛けられ、結果が無効化される。この暗号化状態の結果が決済ブランド１６４０に送信される。決済ブランド１６４０は、その結果を復号して最終結果（一致する口座に対応する１桁の数値）をカード発行者１６５０に送信し、カードの紛失や盗難の届け出がないこと、および当該取引の支払いを行えるだけの適切な額の信用枠／資金が口座に存在することを証明する。一致する項目が見つかったときに、カード項目を使用頻度が高い順に並べ、他の項目を無視することで、検証の時間を短縮できる。
【００７８】
承認されたら、発行者１６５０はオーソリゼーション番号を生成し、カード固有のＦＨＥ暗号化状態のＰＡＮとともにその番号を決済ブランド１６４０に送信する。次に、決済ブランド１６４０はオーソリゼーションコードおよび暗号化状態のＰＡＮをアクワイアラ／処理者１６３０に転送する。
【００７９】
アクワイアラ／処理者１６３０は、セキュアな保管場所１６６０にアクセスして、暗号化状態のＰＡＮに対応するトークンを取得／生成する。なお、トークンを除き、セキュアな保管場所１６６０もＦＨＥで暗号化できる。
【００８０】
アクワイアラ／処理者１６３０は加盟店１６２０にトークンを返す。加盟店は、返品、リトリーバル要求、またはチャージバックの処理に応じる目的のほか、消費者の購買行動の分析やマーケティングプログラムの作成など、ビジネスインテリジェンス上の理由でこのトークンを加盟店のデータベース１６７０に長期的に保持できる。
【００８１】
この実施形態は集中型システムの一例であり、１つの組織（クレジットカード会社１６４０）だけが秘密復号鍵を所有し、公開暗号鍵を配布する。別の実施形態は分散型システムであり、各カード発行者１６５０が独自の秘密復号鍵を保有し、ＰＯＳシステムが、クレジットカードが属するカード発行者を認識し、そのカード発行者に対応する適切な公開暗号鍵を使用してカードの情報を暗号化する。この分散型システムでは、暗号化状態の比較結果を復号する役割のみを担う別の者が必要になる場合がある。この場合は、暗号化状態のクレジットカード情報を保持するカード発行者のサーバを、大切な秘密復号鍵を保持するサーバから分離する必要がある場合がある。
【００８２】
別の実施形態は、ＦＨＥ複数当事者計算（ｍｕｌｔｉｐａｒｔｙ  ｃｏｍｐｕｔａｔｉｏｎ）の使用である。ユーザごとに異なる秘密鍵を生成し、公開鍵をクレジットカード自体に保存する。カード保有者のデータはユーザの公開鍵によって暗号化される。このデータをシステムに送信して、他の口座と突き合わせることができる。最終結果を復号するために、複数の秘密復号鍵が必要になる。さらに、複数の鍵があることで、各当事者を自身の鍵に関連した情報のみの復号に制限でき、各当事者が他の情報を一切復号できないため、データの総合的セキュリティが向上する。
【００８３】
本システムはいくつかのレベルで適用できる。１つの方式は完全採用システムであり、情報をその起点から暗号化し、システムのいかなる局面でも一切復号しない。
【００８４】
もう１つの方式は部分採用システムであり、現行の決済システムに適応させるため、およびデータ攻撃の危険性を低減するために、決済処理者の側でカード情報を復号した後、ＦＨＥを使用して再度暗号化してからカード発行者に送信できる。この方式では、攻撃の可能性を低減できるが、情報の復号から再暗号化までの間にデータが平文である状態が短時間ながら存在し、その間は、攻撃に対して脆弱なデバイスの記憶装置にデータが存在する。しかし、カード発行者におけるクレジットカードデータベースは常にＦＨＥを使用して暗号化した状態に保つことができる。
【００８５】
本システムは、決済情報が顧客のＰＣで暗号化されてからインターネット経由で送信される、クレジットカードまたはＰａｙＰａｌなどのオンライン取引サービスを使用するオンライン決済システムを使用したオンライン取引もサポートする。
【００８６】
一実施形態によれば、クレジットカードを構成する重要情報は銀行名（表面）、クレジットカード番号の１３〜１９桁目（表面）、クレジットカードの有効期限（表面）、カード保有者の名前（表面）、およびカード検証値（Ｃａｒｄ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｖａｌｕｅ、ＣＶＶ）（裏面）である。クレジットカード番号は、先頭６桁の銀行識別番号（ＢＩＮ。発行者識別番号（ＩＩＮ）とも呼ばれる）、６〜１２桁の口座番号、および１桁のチェックサム値から構成される。口座番号の下３桁およびチェックサム値は同じＦＨＥ方式によって暗号化されるが、使用する鍵は異なり、その鍵を、復号を担う特定の当事者に付与することができる。ＢＩＮ（ＩＩＮ）に基づく他のカード（デビットカード、ポイントカード、加盟店独自のカードなど）も使用でき、同等の番号付与体系を採用できる。
【００８７】
一実施形態では、量子セキュアな格子ベース完全準同型暗号化（ＦＨＥ）を使用して、クレジットカード番号の中間３〜９桁目（例えば口座番号のセキュア部分）、有効期限、およびＣＶＶ番号のフィールドを暗号化できる。これらのフィールドは、検証処理のいかなる段階でも決して復号できない。これらは常に暗号文（Ｃｔｘｔ）形式に保つことができる。
【００８８】
クレジットカードのその他の項目は、同じ暗号化方式を使用して、異なる公開鍵と秘密鍵の１つ以上の組によって暗号化できる。システム全体のセキュリティのために、適切な鍵管理システムが不可欠である。他方の鍵は、中間当事者が必要なフィールドを復号するために使用できる。残りのフィールドはＦＨＥ方式を使用して暗号化できるが、それらのフィールドに準同型演算を適用することはできない。残りのフィールドの文字はいずれも、同じ多項式の隣接する係数にエンコードできる。ここでいう残りのフィールドとは、銀行名、カード保有者の名前、クレジットカード番号の先頭６桁（ＢＩＮ番号）および下４桁のことである。
【００８９】
これらの残りのフィールドは、検証処理の何らかの段階において平文（Ｐｔｘｔ）になっている可能性がある。これらの情報は、クレジットカード会社（１桁目）を識別し、カード発行者のクレジットカードデータベースにおけるクレジットカード項目（下４桁およびカード保有者の名前）を絞り込む手がかりになる。この選択により、一致する可能性があるカードが数件に絞り込まれる。さらに、フィールドを区分することで、本システムは今後のクレジットカード番号体系の変更（例えば、国際標準化機構（ＩＳＯ）によって策定された８桁英数字ＢＩＮ案など）にも対応できる。
【００９０】
そのうえ、データが復号されないことから、データの実際の出所および内容は重要ではなく、検証および認証ができればよいだけであるため、取引要求に別のフィールドを含めて、破壊することなく処理できる。したがって、バイオメトリック（指紋など）識別、循環（ｒｏｔａｔｉｎｇ）または可変ＣＶＶ番号、１回限りのカード番号などの新しい方式も、本方法およびシステムによって、および場合によっては大幅な変更を加えることなく検証および認証できる。
【００９１】
前述のとおり、クレジットカード情報の一部のフィールドは検証処理中のいかなる時点でも決して復号できない。これらの暗号化状態の項目を使用したクレジットカード認証はＦＨＥ暗号化方式の性質を利用する。
【００９２】
完全準同型暗号化では、暗号化状態のデータに対する加算と乗算の演算から暗号化状態の結果が得られる。この結果を復号すると、暗号化されていないデータに対して同じ演算群を適用した場合の正しい結果が得られる。
【００９３】
２つの信号ビットｘおよびｙの間のブラインドマッチングを行うために、これら２つのビットのＸＮＯＲ  ２進演算
【数２４】
2019514301.tif 000026
を適用できる。準同型にＸＮＯＲ演算子を実装するには、加算と乗算の演算に分解する、すなわち
【数２５】
2019514301.tif 000027
と分解する必要がある。
【００９４】
複数ビットの入力ｘ＝ｘ１ｘ２…ｘｎおよびｙ＝ｙ１ｙ２…ｙｎを比較するには、単に対応する個々のビットを同じ順序で比較し、個々のビット比較の結果を掛け合わせればよい（ｚ＝ｚ１×ｚ２×…×ｚｎ）。ここで、最終結果ｚは、ｘがｙに等しいかどうかを示す１ビットになる。
【００９５】
【数２６】
2019514301.tif 000028
を使用したＸＮＯＲ演算の実装は、複数のアキュムレータＣｔｘｔ（直前のＣｔｘｔ乗算の結果を暗号化するＣｔｘｔ）の乗算をサポートする他の準同型暗号化方式に使用される。この複数アキュムレータ乗算は、本暗号化方式には適さない。理由は、パラメータの値が可能な限り小さく設定される一方でセキュリティレベルは不変であるため、作成直後のＣｔｘｔまたはＣｔｘｔの加算／減算演算の結果であるＣｔｘｔのいずれかでなければアキュムレータの乗算がサポートされないからである。これにより、Ｃｔｘｔによる記憶装置およびネットワークの使用量を低減でき、Ｃｔｘｔの演算も高速化できる。
【００９６】
この点に対処するために、ＸＮＯＲ演算を変形して、本暗号化方式に適合させることができる。ＸＮＯＲを
【数２７】
2019514301.tif 000029
と変形し、ｘおよびｙにこの式を適用すると、ｘ＝ｙの場合に限って結果がｚ＝１になる。これは本システムの要件に適合する。理由は、複数ビットの入力をｘおよびｙとすると、一致ビットｚがｚ＝（１−ｘ１−ｙ１）（１−ｘ１−ｙ１）（１−ｘ２−ｙ２）（１−ｘ２−ｙ２）…（１−ｘｎ−ｙｎ）（１−ｘｎ−ｙｎ）に等しいからである。この場合、個々の括弧内はＣｔｘｔの加算／減算演算のみで構成されており、本暗号化方式を使用して実装可能である。
【００９７】
ｘ＞ｙの場合にｚ＝１、それ以外の場合にｚ＝０になるセキュアな関係演算も、図６Ｕおよび６Ｖに示す上記のセキュアな関係演算を使用して、本ＦＨＥ暗号化方式を使用して実現できる。このことは、クレジットカード取引に必要な金額ｙが当該口座の与信枠を超える（デビットカードの場合は口座の制限を超える）かどうかを検査できる点でも大変有用である。
【００９８】
一実施形態によれば、セキュアなクレジットカード認証を実行するときに、まずクレジットカード番号の中間の桁（ここに記載する例では１６桁のカード番号を想定しているため、６桁）がビット列に変換され、その各ビットが、ＦＨＥ暗号化を使用して暗号化される。同じ処理が有効期限およびＣＶＶ番号についても行われる。これらの暗号化されたビットが、カード保有者の名前、銀行名、ＢＩＮ番号、およびクレジットカードの下４桁とともにネットワークを通じて決済処理者に送信される。次に、決済処理者がそれらの情報を適切なカード発行者に転送する。その後、カード発行者がこの情報を受信し、カード保有者の名前およびカード番号の下４桁を使用して（名前および下４桁の一致により）一致する可能性がある数件の口座まで検索を絞り込み、対応する暗号化状態の情報が取り出される。次に、受信した暗号化状態の情報と、一致候補の口座との間にセキュア認証が適用される。一致しない口座に対して認証演算を行うと、暗号化状態の指標としてｚ＝０が得られる。一致する口座の場合（クレジットカード番号、有効期限、およびＣＶＶ番号（ならびにＢＩＮ番号を使用している場合はＢＩＮ番号）のビットがすべて一致する場合）、かつ要求された取引額が口座の残高または制限に達しない場合は、暗号化状態の指標としてｚ＝１が生成される。その上で、削減されたリストに対するこの項目の順序に対応する数値を、暗号化状態の指標（０または１のいずれか）に掛けることができる。この最終結果を復号するため、およびこの取引の確認を得るためには、この暗号化状態の指標（削減したリストにおける一致口座の順序を暗号化している）を、クレジットカード会社側（または分散方式の場合はカード発行者が所有する別個のセキュアサーバ上）で使用可能な秘密復号鍵を使用して復号する必要がある。復号後、削減されたリストにおける一致口座の順序に対応する１桁だけが返される。
【００９９】
別の実施形態では、入力カードおよび一致する各口座の機密ビットをｋ個に区分し（ｋは、各マシンにおいて使用可能なプロセッサ（ＧＰＵなど）の数に対応する）、区分ごとに別個のＧＰＵに送信する。各ＧＰＵには、０からｋ−１までの範囲の番号を振ることができる。各ＧＰＵからの結果は、１を対応する位置までシフトした多項式を掛けることによって、そのＧＰＵ番号に対応する多項式スロットの数だけローテートできる。各ＧＰＵからの結果が準備できたら、結果をすべて加算する。これによって得られる結果においては、暗号化状態の多項式のｋ個のスロットそれぞれが保持するビットが、対応するビットの一致または不一致に対応している。復号後、いずれのビットも０以外であれば、この口座が一致していることになる。一致する口座が見つかったら、データベース内のリストの先頭に配置して次回の比較を高速化するとともに、他の口座を無視することができる。
【０１００】
本システムに使用する量子セキュアな格子ベースＦＨＥスキームは計算負荷が高くなる場合がある。準同型演算を高速化するには、システム内のＣＰＵとともにグラフィック処理装置（ＧＰＵ）を使用する。各ＧＰＵは、１秒間に複数の取引をサポートできる。ＶＩＳＡTMやＭａｓｔｅｒＣａｒｄTMなどの大規模な取引会社で必要とされる高い１秒あたりの取引数を実現するには（各社とも最大で１秒間に４０００件の取引を処理する必要があると考えられる）、多くのＧＰＵカードが必要である。このような処理能力を実現するために、あらゆる水準の需要に対応するスケーラビリティを備えるマルチサーバ環境を実装できる。
【０１０１】
なお、上記の実施形態の記載では、取引要求におけるクレジットカードを口座の名義および番号のリストと単純に比較して有効な口座が存在するかどうかを判断しているが、他のリストおよび他の種類の検証が発生しても構わない。例えば、別のリストに盗難／紛失カードおよびカード保有者のデータを格納しておき、取引要求をそのリストとも比較することができる。その場合、カード番号が有効であっても、そのカードが盗難／紛失リストにも登録されていれば、認証が拒否される場合がある。同様の処理は、当該情報の公開に関する法令を遵守しつつ、取引のブラックリスト登録国など、他の検証リストおよび認証リストにも使用できる。
【０１０２】
また、要求からデータを抽出するか、リスト内で突き合わせることによって要求内のデータを加盟店のポイントプログラムに結び付けるなど、ユーザ、加盟店、またはそれら両方の利益のために利用することもできる。これにより、複数のトランザクションおよび別処理の必要が減り、取引の効率が高まる可能性がある。さらなる機能の拡張や変形を制限するのは、データの規模および処理時間の要件のみであろう。
【０１０３】
実際上、任意の暗号化状態のデータを、復号することなく任意の暗号化状態のデータ群に照らして検証および認証することができる。復号情報を共有する必要がないため、データ形式、データ構造、さらにはデータ自体の変更に対応するのも容易になる。
【０１０４】
準同型暗号化自体はデータの完全性を保証しない。ハッカーは、保存中または処理中のデータに対して数学的な演算を施すことによって、暗号化状態のデータを改ざんできる。これにより、操作対象のデータの結果に影響が及び、結果が変化して、ハッカーが攻撃しやすくなる可能性がある。例えば、最終的な暗号化状態のフラグに対して暗号化された１との準同型ＯＲ演算を適用すると、結果が常に１（すなわち取引許可）になる。許可のない当事者による変更からデータの完全性を保護する方法として、追加の数学的仕組みを適用し、耐タンパ性のあるクレジットカード認証システムを実現する方法がある。例えば、暗号化状態のメッセージにハッシュ式メッセージ認証符号（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ、ＨＭＡＣ）を追加して、メッセージの完全性の認証を必須とすることができる。ただし、これは一例であり、この方式に限定されるものではない。
【０１０５】
さらに、クレジットカード取引に追加するセキュリティ保護層として、本システムは、時間とともに周期的に変化するクレジットカードＣＶＶ番号の暗号化をサポートできる。本システムは、ＣＶＶ番号生成鍵を準同型に暗号化し、銀行のデータベースに保存できる。新しい顧客のクレジットカードを検証して購入を認可する必要があるときは、ＣＶＶ生成鍵に対して準同型に数学的演算を適用し、新しい有効なＣＶＶ番号を生成して、その番号を検証対象の顧客クレジットカードと比較する。
【０１０６】
例えば、機密／暗号化の処理ならびに要求に対する検証および認証の両方が必要な他の形式の静的または準静的な個人識別データを本システムおよび方法の範囲内で使用できる。銀行デビットカード（データ構造はクレジットカードと同様）だけでなく、通常はカードまたは類似の形式になっている他の個人識別情報も使用できる。例えば医療ＩＤカードや保険証の場合は、名前、グループまたはプランの番号、および個人ＩＤが、検証用のデータ取得元となる保険者の名前とともに記録されることになろう。また、パスポートの場合は、検証用の番号、パスポート番号、発行日、有効期限、国籍、および発行国が記録されることになろう。クレジットカードと同様に、機密と見なすデータ、および平文で共有できると見なすデータは、識別データに対する責任を負う管理組織（例えばパスポートの場合は政府）の決定に委ねられる。
【０１０７】
また別の例として、本システムおよび方法は、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＡａａＳ）ソフトウェアなどにおける認証の分野にも利用できる。ＡａａＳソフトウェアは、クラウドベースの身元管理サービスとして動作し、さまざまなデバイスを使用する潜在的に多数のユーザによって世界中のあらゆる場所からアクセスされる可能性があるさまざまな場所のデータおよびアプリケーションに対するアクセスを保護する。識別および認証のほかに、本システムおよび方法は、機密性のある個人情報を含む、政府が管理する搭乗拒否リストなどの監視リストまたは登録簿を検索し、他の情報をオペレータに開示せずに個人がリストに該当するかどうかを確認するなどの目的にも利用できる。
【０１０８】
一実施形態によるシステムの全体像を図１７に示す。認証処理は、決済処理者１７１０がクレジットカード情報をカード発行者に送信したときに開始できる。カード発行者は、受信した要求を受け入れるフロントエンドサーバ１７２０を設置できる。このフロントエンドサーバ１７２０は、ＧＰＵマシンファーム（ｍａｃｈｉｎｅ  ｆａｒｍ）１７３０のネットワークに接続できる。ＧＰＵマシンファーム１７３０は、その占有状態（空いているかどうか）の通知を頻繁にフロントエンドサーバ１７２０に送信する。フロントエンドサーバ１７２０は、要求を受信すると、空いているマシン１７４０がないかサーバテーブルを調べ、その対応するＩＰアドレスを取得する。次に、このＩＰアドレスが決済処理者１７１０に送信される。次に、決済処理者１７１０がこの空いている計算ノード１７４０に接続し、カード保有者のカード情報を送信する。計算ノード１７４０は、その情報を取得すると、カード保有者の名前および下４桁に一致するクレジットカードのデータをデータベースから取得できる。これにより、認証処理をこのマシン１７４０のＧＰＵで開始できる。次に、認証処理の結果をクレジットカード会社１７５０に送信し、復号を依頼できる。その後、復号された認証値をカード発行者１７１０に送信して最終結果を通知できる。本システムを実装することで、フロントエンドサーバ１７２０に対するネットワーク接続の必要性を緩和し、計算ノード１７３０全体に分散できる。
【０１０９】
医療データの収集
機密性の高い医療データとともに使用するために本発明の一実施形態のさまざまな態様を具体化した、ネットワーク接続型コンピュータシステムを図１に示す。複数のリモート医療デバイス２０が、ワイドエリアネットワーク２４を通じて医療データシステム２２に接続されている。リモート医療デバイス２０は、ウェアラブルデバイス２６、患者の端末２８、研究室の端末３０などを含み得る。ウェアラブルデバイス２６は、専用の医療デバイス、スマートウォッチ、ウェアラブルコンピュータ、装着型のアクティビティトラッカ、計測機能付きの衣類などのデバイスを含み得る。ウェアラブルデバイス２６は、加速度計、心拍計、体温計、呼吸モニタ、グルコースモニタ、全地球的測位システム（ＧＰＳ）受信機、気圧センサなどのセンサ、およびそれらの組み合わせなどを含み得るが、これらに限定されない。患者の端末２８および研究室の端末３０は、スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータなどのデバイスを含み得る。ウェアラブルデバイス２６、患者の端末２８、および研究室の端末３０などのリモート医療デバイス２０を相互に区別する特徴は、本発明を制限すると考えられない。これらのデバイス２６〜３０の機能は重なり合う場合がある。ウェアラブルデバイス２６および患者の端末２８は患者から直接データを収集する。この収集は、患者が手作業で入力することなく行える。ウェアラブルデバイス２６および患者の端末２８では、患者３２がデータを手作業で（タイプや選択などによって）入力できる。研究室の端末３０では、患者３２に対して行われた医学的検査などの医療処置に関連したデータ（血液検査の結果など）を入力するために、医療担当者３４（臨床医、研究室の技師、看護師、医師など）による何らかの形の手動入力が必要になる場合がある。
【０１１０】
リモート医療デバイス２０は、患者の医学的状態または健康状態に関するデータを収集するように構成できる。このデータは、大きく医療データと非医療データの２つのカテゴリに分類できると考えられる。これらのカテゴリは限定的なものではなく、重なり合ったり、さまざまな種類のデータが両方のカテゴリに該当したりする場合がある。医療データは生理的データおよび／または個人の医学的状態または健康状態を直接示すデータを含み得るが、これらに限定されない。例えば、医療データは心拍数、体温、呼吸数などを含む。医療データは、リモート医療デバイス２０（心拍計など）によって直接測定することも、患者または医療従事者によってデバイス２０に入力すること（血圧の測定値を端末に入力するなど）もできる。
【０１１１】
非医療データは、医学的な結果／診断に間接的に関連する可能性があるデータであり、環境要因、遺伝的要因、健康に対する取り組み、社会およびコミュニティの要因、社会経済的要因、社会人口統計学的要因、ならびに政府または地方自治体の要因が該当し得るが、これらに限定されない。環境要因は、人間の健康に影響する可能性がある物理的環境要因であり、水質、大気の質、騒音、労働条件などが該当し得る。遺伝的要因は、通常は個人の行動による、または社会的、経済的、もしくは物理的環境による影響が及ばない遺伝的要因に関連するといえる。遺伝的要因により、特定の状態に至る素因が決まる。健康に対する取り組みの要因には、個人の行動の面に関連した要因、および疫学的研究から健康状態に影響することが明らかになっているリスク要因（個人の健康に関する習慣、子供の健全な発育など）が該当し得る。社会およびコミュニティの要因には、疫学的研究から健康に関連することが明らかになっている社会的支援、生活上のストレス、社会資本などの社会およびコミュニティの要因の普及度に関連する要因（就学が容易かどうか、文化的背景、社会的支援、社会的環境、社会的地位、住宅の取得が可能かどうか、識字能力など）が該当し得る。社会経済的要因には、疫学的研究から健康に関連することが明らかになっている、住民の社会経済的特性に関連した要因（雇用状況、所得、社会的地位、教育水準など）が該当し得る。社会人口統計学的要因には、住民の社会人口統計学的特性に関連した要因が該当し得る。これらの指標は、性別、年齢、教育水準、文化的背景、雇用状況、職業、婚姻状況、世帯人数、生活環境など、社会的要因および人口統計学的要因が複合したものに関連または関係している。政府または地方自治体の要因には、政策、財源、インフラストラクチャ、公的事業などに関連した要因が該当し得る。当業者であれば、上記の要因は限定的なものではなく、要因によっては複数のカテゴリに該当する場合があることが理解されるであろう。非医療データは、患者または医療従事者によってデバイス２０に入力できる（患者の所得集団を端末に入力するなど）。
【０１１２】
ワイドエリアネットワーク２４は、ローカルエリアネットワーク、無線ネットワーク、移動通信ネットワーク、イントラネット、バーチャルプライベートネットワーク（ＶＰＮ）、インターネットなどのデータネットワークの１つまたは複合を含み得る。
【０１１３】
医療データシステム２２は、後述する、記憶装置に保存され、１個以上のプロセッサによって実行されて、リモート医療デバイス２０から収集されたデータに対する準同型計算を行うプログラムコードによって構成された１台以上のコンピュータ（サーバと呼ばれる）を含み得る。
【０１１４】
本システムは、鍵管理システム３６およびアナリスト端末３８も含み得る。
【０１１５】
鍵管理システム３６は１つ以上の暗号鍵を保存する。この秘密鍵には、ＲＷＬＥ（ｒｉｎｇ−ｌｅａｒｎｉｎｇ  ｗｉｔｈ  ｅｒｒｏｒｓ）やＮＴＲＵ準同型暗号化方式などの完全準同型非対称暗号方式のための１つ以上の秘密鍵が該当する。鍵管理システム３６は、これらの秘密鍵を保存し、秘密鍵の使用を許可ユーザに制限するように構成された１台以上のサーバを含む。
【０１１６】
鍵管理システム３６によって管理される各秘密鍵は、リモート医療デバイス２０に配布される公開鍵に対応させることができる。リモート医療デバイス２０によって暗号化されたデータは、それぞれの秘密鍵にアクセス可能なユーザによる復号が可能であるが、この点は本実施形態の中枢ではない。本実施形態によれば、暗号化状態のデータに対して実行された準同型計算の結果を、それぞれの秘密鍵にアクセス可能なユーザが復号できる。多数のリモート医療デバイス２０が同じ公開鍵を共有できるため、データの復号が不要な準同型計算に対応した、大規模かつ継続的なデータソースが形成されると考えられる。むしろ秘密鍵は、計算結果を復号する場合にしか必要にならない。
【０１１７】
使用する公開鍵と秘密鍵の組の数は任意である。デバイスの種類などの要素に応じて、異なる公開鍵をデバイスに提供することにより、医療デバイス２０を複数の集合に分割すると好都合であろう。例えば、ウェアラブルな心拍計に公開鍵を配布するとともに、血液検査の結果を記録するために使用する研究室の端末３０には別の公開鍵を配布することができる。そのために、心拍計および血液検査のデータに対する計算を実行するときに医療データシステム２２において別の処理が必要になる可能性があるが、対応するいずれかの秘密鍵が危殆化した場合でも患者データの漏洩が低減される利点を得ることができる。医療団体／組織、保険者、デバイスの製造元などの他の要素に基づいて、医療デバイス２０の集合または種類ごとに異なる公開鍵を配布できる。さらに、医療デバイス２０が複数の種類のデータ（医療データおよび／または非医療データなど）を収集する場合は、それぞれの種類のデータを異なる公開鍵に割り当て、その公開鍵によって暗号化することができる。この場合も、患者データの漏洩を低減できる。明瞭にするために、ここに記載する例では１組の公開鍵と秘密鍵の組を取り上げているが、本発明はさまざまな公開鍵と秘密鍵の組を考慮していることに注意すべきである。さらに、一連のデータを使用する連携処理および計算は、同じ秘密鍵によって復号できる一連の暗号化状態のデータに限定されることも重要である。したがって、幅広い連携処理および計算を容易にするために、システムを単一の秘密鍵に限定すると好都合であろう。
【０１１８】
アナリスト端末３８は、研究者、臨床医、医師、管理者、保険者などのアナリスト４０による操作が可能なデバイス（スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、ラップトップコンピュータなど）を含み得る。アナリスト端末３８は、医療データシステム２２において実行される準同型計算を開始でき、その計算から得られた暗号化状態の結果を、鍵管理システム３６によって保持される秘密鍵によって復号させることができる。すると、平文の計算結果がアナリスト端末３８に出力され、さらに計算や研究を行うことができる。
【０１１９】
秘密鍵は、本発明によるさまざまな実装の要件に応じてさまざまな方法で計算結果を復号するために提供できる。暗号化状態の計算結果は、セキュアチャネル４４（セキュアなサブネットワーク、ワイドエリアネットワーク２４を通じて稼働するＶＰＮ、またはより強固なセキュリティを提供する類似のネットワークなど）を通じて鍵管理システム３６に送信し、鍵管理システム３６において復号し、復号状態の平文の計算結果（ＤＲ）４２を１つ以上のアナリスト端末３８に送信し、出力することができる。加えて、またはその代わりに、当該セキュアチャネル４４を使用して秘密鍵を鍵管理システム３６からアナリスト端末３８に送信し、１つ以上のアナリスト端末３８において計算結果を復号できる。セキュアチャネル４４は、必ずしもネットワーク通信に限らない。例えば、秘密鍵または暗号化状態のデータをネットワーク経由で送信する必要がある場合に、セキュアな場所（医療施設や研究施設の、物理的にセキュリティが確保された区域の中など）にアナリスト端末３８を配置し、それによってセキュアチャネル４４に物理的な側面を持たせることができる。あるいは、セキュアチャネル４４を主にまたは排他的に物理的にしておき、物理的な鍵カード、メモリスティック、または人間が秘密鍵または暗号化状態のデータをアナリスト端末３８まで持ち運ぶために使用できる類似のデバイスに秘密鍵または暗号化状態のデータをコピーすることもできる。
【０１２０】
運用中には、データをリモート医療デバイス２０によって継続的に収集し、リモート医療デバイス２０において暗号化し、暗号化状態のデータ（ＥＤ）５０として医療データシステム２２に送信できる。一般には、データを医療データシステム２２に送信するすべてのデバイスを、送信前にデータを暗号化するように構成できる。医療データシステム２２は、暗号化状態のデータ５０を必要な時間にわたって保存できる。任意の時点で、アナリスト端末３８を使用して、分析対象のデータ群を選択し、選択したデータ群に対して実行する計算を構成することができる。この情報を、計算コマンド（ＣＣ）５２としてアナリスト端末３８が医療データシステム２２に送信できる。計算コマンド５２は、準同型の手法によってデータを復号せずに選択された暗号化状態のデータに対する計算を行い、暗号化状態の結果５４を得る処理を医療データシステム２２に実行させるトリガとして機能する。次に、暗号化状態の計算結果５４をアナリスト端末３８に送信できる。その後、アナリスト端末３８が、セキュアチャネル４４を使用して鍵管理システム３６と通信することにより、復号状態の結果４２を取得できる。
【０１２１】
データは計算中に復号できないことが好ましい。患者のプライバシー保護を強化できる。また、患者のデータがより強固に保護されていることを知れば、医学的研究に使用する医療データをより多くの患者が提供してくれる可能性があると考えられる。さらに、データおよび計算結果が暗号化された形で送信されること、ならびに秘密鍵が厳重に管理されることから、中間者攻撃などの攻撃の機会を減らすこともできる。
【０１２２】
他の応用分野では、リモートデバイス２０（ウェアラブルデバイス２６、患者の端末２８、研究室の端末３０、データシステム２２、端末３８、リモートデバイス１３０などの構成要素）を特に医療用デバイスとしないことが可能であり、汎用のデバイスまたは特定の応用分野に適合したデバイスにすることができる。
【０１２３】
リモート医療デバイス２０の例を図２に示す。リモート医療デバイス２０は、センサ６０および／または入力デバイス、暗号化エンジン６２、およびネットワークインタフェース６４を含み得る。リモート医療デバイス２０はさらに、取得したデータ６６、公開鍵６８、および暗号化状態の医療データ５０を保存するための記憶装置（ＲＡＭ、ハードディスク、ソリッドステートドライブなど）を含み得る。リモート医療デバイス２０は、暗号化エンジン６２を実行し、リモート医療デバイス２０の動作を制御するように構成されたプロセッサも含み得る。
【０１２４】
センサおよび／または入力デバイス６０は、個人（患者など）の医療データ／生理的データおよび／または非医療データ６６を取得するように構成できる。センサとしては、例えば心拍数センサ、呼吸センサ、血糖センサ、血圧センサのほか、本明細書の他の箇所に記載している多数の例が挙げられる。医療データの測定または取得が可能なあらゆるセンサおよび／または入力デバイス６０が考えられる。医療データまたは非医療データを手作業で入力する場合の入力デバイスの例としては、キーボードまたはタッチ画面が挙げられる。入力デバイスはセンサと併用して、手作業で入力されたデータのほか、直接測定されたデータも収集対象のデータに含めることができる。取得するデータの種類および性質に特段の制限はない。
【０１２５】
暗号化エンジン６２は、公開鍵６８を適用することで、取得したデータ６６を暗号化して暗号化状態のデータ５０を生成するように構成できる。暗号化エンジン６２は、前述の完全準同型暗号化を実行するように構成できる。
【０１２６】
ネットワークインタフェース６４は、暗号化状態のデータ５０をネットワーク２４に、特に医療データシステム２２に送信するように構成できる（図１）。暗号化状態のデータ５０は、医療データシステム２２に送信した後に削除して記憶領域を節約できる。
【０１２７】
データシステム２２の例を図３に示す。前述のとおり、これは医療データシステム２２にすることができる。医療データシステム２２は、ネットワークインタフェース８０、データアキュムレータ８２、クエリ作成部８４、患者／ユーザインタフェース８６、および計算エンジン８８を含み得る。医療データシステム２２はさらに、暗号化状態のデータ５０、暗号化状態の計算結果（ＥＲ）５４、患者データ９０（または、非医療分野に応用する場合は他のデータ）、および許可９２を保存するための記憶装置（ＲＡＭ、ハードディスク、ソリッドステートドライブなど）を含み得る。医療データシステム２２は、データアキュムレータ８２、クエリ作成部８４、患者／ユーザインタフェース８６、および計算エンジン８８を実行し、および医療データシステム２２の動作を制御するように構成されたプロセッサも含み得る。なお、医療データシステム２２は暗号化状態のデータに対する計算を行うため、医療データシステム２２に暗号鍵を保存する必要はない。
【０１２８】
ネットワークインタフェース８０は、ネットワーク２４からデータおよびコマンドを受信するように構成できる。ネットワークインタフェース８０は、リモート医療デバイス２０から暗号化状態のデータ５０および患者コマンドを受信するように構成できる。ネットワークインタフェース８０は、アナリスト端末３８から計算コマンドを受信するように構成できる。
【０１２９】
データアキュムレータ８２は、複数のリモート医療デバイス２０から暗号化状態のデータ５０を取得する処理を制御するように構成できる。データアキュムレータ８２は、新しい暗号化状態のデータがないか各リモート医療デバイス２０を周期的にポーリングし、応答として当該暗号化状態のデータを受信し、当該暗号化状態のデータ５０を医療データシステム２２の記憶装置に保存するように構成できる。データアキュムレータ８２は、データ収集の条件として許可９２を参照するように構成できる。
【０１３０】
クエリ作成部８４は、アナリスト端末３８から計算コマンドを受信するように構成できる。計算コマンドは、計算エンジン８８による計算の開始をトリガする。計算コマンドは、計算の対象とする一連の暗号化状態のデータ５０を指定するパラメータのほか、計算の種類を指定するパラメータも含み得る。クエリ作成部８４は、計算に使用可能な暗号化状態のデータ５０の概要をアナリスト端末３８に提供するように構成できる。クエリ作成部８４は、計算時に暗号化状態のデータ５０の要素を使用するための条件として許可９２を参照するように構成できる。
【０１３１】
患者／ユーザインタフェース８６は、リモート医療デバイス２０、アナリスト端末３８、または他のデバイスから患者コマンドおよびデータを受信し、暗号化状態のデータ５０に関する情報を出力するように構成できる。特に、患者／ユーザインタフェース８６は、必ずしも暗号化されない患者データ９０を受信するように構成できる。患者データ９０は、固有ＩＤ、名前、住所、生年月日、全般的な健康状態および徴候、収集された暗号化状態のデータ５０の種類に関する説明などのデータを含み得る。患者データ９０は、医学的研究の計画に有用なデータを含み得る。暗号化状態のデータ５０の要素を、医学的研究の計画に有用と考えられる患者データ９０に結び付けられるように、患者データ９０は、暗号化状態のデータ５０に対する関連付けも含み得る。例えば、患者データ９０と暗号化状態のデータ５０との関連付けは、暗号化状態のデータ５０および患者データ９０の両方における患者の固有ＩＤ（ハッシュや通し番号など）を含み得る。暗号化状態のデータ５０に結合された暗号化対象外のメタデータフィールド、ファイル名、データベースに保存された暗号化状態のデータ５０に関連付けられた暗号化対象外のデータベースフィールドなどによって暗号化状態のデータ５０に平文で固有ＩＤを含めると有益である場合がある。
【０１３２】
患者／ユーザインタフェース８６は、患者または他の個人によって端末３８のアナリストなどに対して承諾される許可９２を制御するためのコマンドを受信するように構成できる。許可９２は、暗号化状態のデータ５０を収集して保存することへの同意、および暗号化状態のデータ５０を計算エンジン８８で使用できるようにすることへの同意を示すデータを含み得る。医療分野に応用する場合、各患者（またはその法的代理人）が任意の種類のデータ（血圧や心拍数など）を任意の個人または組織（患者の主な介護者、担当医、医学研究室、病院など）に提供することへの同意を得られるように、許可９２は、患者からデータへの、さらに個人または組織への１つ以上の多対多マッピングを含み得る。選択された時間が経過した後に同意が自動的に撤回されるように、許可９２には同意の時間枠を含めることもできる。
【０１３３】
患者データ９０および許可９２を変更するユーザがその変更を行う権限を持っていることを確認するために、患者／ユーザインタフェース８６には認証システム（ユーザ名およびパスワードによるログイン認証システムなど）を含め得る。
【０１３４】
計算エンジン８８は、一連の暗号化状態のデータ５０および実行する計算を定義する受信パラメータに従って暗号化状態のデータ５０に対する準同型計算を実行するように構成できる。計算エンジン８８は暗号化状態の結果５４を出力する。この暗号化状態の結果５４は、ネットワークインタフェースを通じて鍵管理システム３６またはアナリスト端末３８に送信される。計算エンジン８８は、暗号化領域で適切な任意の計算を実行するように構成できる。
【０１３５】
これらの計算には、加算、乗算、離散計算、連続計算、関係演算を使用した比較、およびこれらの組み合わせなどが含まれると考えられる。具体的な医療分野の計算には心房細動脳卒中リスクスコアの計算、心血管リスクスコアの計算、および遺伝型の計算を含み得るが、これらに限定されない。さらに、これらの計算は一連の多項式としてモデル化できる。これを実現するには、計算エンジン８８を後述のように構成できる。
【０１３６】
鍵管理システム３６の例を図４に示す。鍵管理システム３６は、ネットワークインタフェース１００、認可処理部１０２、および復号エンジン１０４を含み得る。鍵管理システム３６はさらに、暗号化状態の計算結果５４、秘密鍵１０６、および復号状態の結果４２を保存するための記憶装置（ＲＡＭ、ハードディスク、ソリッドステートドライブなど）を含み得る。秘密鍵１０６は、リモート医療デバイス２０に保存される公開鍵６８（図２）に対応する。鍵管理システム３６は、認可処理部１０２および復号エンジン１０４を実行するほか、鍵管理システム３６の動作を制御するように構成されたプロセッサも含み得る。
【０１３７】
ネットワークインタフェース１００は、セキュアチャネル４４を通じてアナリスト端末３８から暗号化状態の結果５４を受信するように構成できる（図１）。ネットワークインタフェース１００はさらに、復号状態の結果４２をアナリスト端末３８に送信するように構成できる。代わりに、または加えて、ネットワークインタフェース１００は、セキュアチャネル４４を通じて秘密鍵１０６をアナリスト端末３８に送信するように構成できる。
【０１３８】
認可処理部１０２は、鍵管理システム３６へのアクセスを許可ユーザに制限するように構成できる。認可処理部１０２は、復号状態の結果４２、秘密鍵１０６、またはそれら両方にアクセスしようとするユーザを検証するために、認証システム（ユーザ名およびパスワードによるログイン認証システムや電子証明書検証システムなど）を含み得る。
【０１３９】
復号エンジン１０４は、秘密鍵１０６を適用して暗号化状態の計算結果５４を復号し、復号状態の結果４２を生成するように構成できる。復号エンジン１０４は、本明細書に記載する準同型復号を実行するように構成できる。
【０１４０】
データシステム１２０を図５に示す。前述のとおり、データシステム１２０は医療データシステム１２０にすることができる。医療データシステム１２０は、医療データシステム２２など、本明細書に記載する構成要素を含み得る。当該構成要素の説明は、同一の構成要素を示す同一の参照番号によって参照できる。明瞭にするために、相違点に絞って詳細に説明する。医療データシステム１２０は、図１のシステムにおける医療データシステム２２を置き換えることができる。
【０１４１】
医療データシステム１２０は、患者のリモート医療デバイス２０から受信された暗号化状態のデータ５０に対して実行された計算に基づいてアラートを生成するように構成できる。医療データシステム１２０は、ネットワーク２４を通じて、これらのアラートに対処できる医療従事者によって操作されるリモートデバイス１３０にこれらのアラートを送信できる（図１）。生成されたアラートは暗号化領域にとどまると想定される。そのため、アラートは、鍵管理システム３６を経由して復号された後、関連するリモートデバイス１３０に平文の形で送信できる。この場合、平文形式のアラートを、具体的な数値ではなく、アラートの性質の一般的表示（「血圧アラート」というテキスト形式のアラートなど）にすると、プライバシー保護が強化されると考えられる。理由は、アラートの受信者が特定の医学的状態に関する背景知識や、具体的なアラートのトリガ値に関する知識を持っている可能性が考えられるためである。別の方法として、リモートデバイス１３０に秘密鍵を提供し、受信したアラートを復号させることもできる。
【０１４２】
医療データシステム１２０は、プロセッサによる実行が可能かつ許可ユーザによる設定も可能なアラートトリガ１２２を含み得る。アラートトリガ１２２および計算エンジン８８は、記憶装置に保存され、許可ユーザによる設定が可能な暗号化状態のアラート条件１２４と暗号化状態の結果５４との間の比較を実行できる。暗号化状態のアラート条件１２４は、まずネットワークインタフェース８０を通じて非暗号化形式で受信した後、リモート医療デバイス２０においてデータを暗号化する公開鍵と同じ公開鍵６８を使用して暗号化エンジン６２によって暗号化できる。暗号化状態のアラート条件１２４は、暗号化状態の結果５４によって表されるデータおよびアラートトリガ１２２に適用し、条件を満たすデータの場合にアラートを出すことができる。このアラートは、ネットワークインタフェース８０およびネットワーク２４を通じて選択した許可ユーザ（医療従事者など）のリモートデバイス１３０に送信するように構成できる。アラートは、鍵管理システム３６を経由して集中復号した後、選択した許可ユーザに平文の形で転送できる。別の方法として、リモートデバイス１３０が秘密鍵１０６を保存できるほか、復号エンジン１０４によってアラートを復号するように構成することもできる。例えば、医師が患者に対してアラート条件１２４を設定する場合に、識別を患者データ９０によって行い、使用する血圧の等式を暗号化領域で準同型に評価し、その評価を行う計算エンジン８８が、ウェアラブル医療デバイス２６によって継続的に収集される暗号化状態の元々の血圧データを使用する構成が可能である。この暗号化状態のアラート条件１２４は、血圧の等式の特定の最大値、最小値、または区間にすることができる。この等式は、満たした場合または超えた場合にアラートトリガ１２２を発生させ、電子的アラートメッセージをリモートデバイス１３０に送信する。このリモートデバイス１３０は、医師、および通知されなければ具体的なアラート条件に気付かない専門医が操作する。具体的な評価および評価対象の値は暗号化領域にとどめておくと、患者のプライバシー保護が強化され、好ましい。すなわち、患者およびアラートを設定するユーザを除く者が血圧の等式、条件、および考慮している血圧データを必ずしも知っていなくても、これらの設定に基づいてそれらの者にアラートを出せる。
【０１４３】
アラートトリガ１２２は、周期的に、または新しい暗号化状態のデータ５０を検出したときに評価できる。アラートトリガ１２２は、アラートを受信する宛先リモートデバイス１３０のネットワークアドレス（例えばＥメールアドレスや電話番号）など、アラートの配信に関する情報を保存できる。
【０１４４】
医療データシステム２２、１２０、および特に計算エンジン８８の各種の構成要素は、１つ以上のハードウェア装置として実装できる。これらのハードウェア装置は、ハードウェアのみを使用することによって、またはプログラムコードを実行するハードウェアを使用することによって本明細書に記載した計算手法を実装するように構成できる。適切なハードウェア装置を構成することで、中国の剰余定理（ＣＲＴ）、数論変換（ＮＴＴ）、１つ以上の記憶装置ブロック、１つ以上の記憶装置インタフェース、行列の乗算、行列の加算、またはこれらの組み合わせなどを使用して、本明細書に記載した計算手法を実装できる。この実現に適した当該ハードウェア装置の１つがグラフィック処理装置（ＧＰＵ）である。適切なハードウェア装置の例としては、ほかにフィールドプログラマブルゲートアレイ（ＦＰＧＡ）および特定用途向け集積回路（ＡＳＩＣ）も挙げられる。
【０１４５】
本発明の実施形態は、ゲノム相関（ｇｅｎｏｍｉｃ  ａｓｓｏｃｉａｔｉｏｎ）の研究に使用する統計的手法の実装に使用できる。この手法の例としては、ピアソンの適合度検定およびコクラン・アーミテージの傾向検定（ＣＡＴＴ）が挙げられる。
【０１４６】
遺伝子型と表現型は、以下のようにエンコードおよび暗号化できる。ここに示す例では、医療担当者３４によって患者３２から取得された遺伝的データのエンコードおよび暗号化を実行するように研究室の端末３０（図１）を構成している。
【０１４７】
遺伝子型のエンコードに関しては、遺伝子型情報を保持するテーブルを作成し、各行を１人の遺伝子型情報に対応させる。２対立遺伝子の場合は、３つの暗号文ｃＡＡ、ｃＡａ、ｃａａを使用して各個人の遺伝子をエンコードする。これらの暗号文は、図６Ｈの等式ステートメントが満たされる場合にのみ１を暗号化し、それ以外の場合は０を暗号化する。指定された遺伝子座にある個人の遺伝子型が不明な場合は、すべての暗号文が０を暗号化する。
【０１４８】
遺伝子型と表現型の相関のエンコードに関しては、事前計算の時間を短縮でき、最終的な暗号化状態の結果におけるノイズを低減できるため、必要に応じて、結果として得られた暗号文にさらに計算を行うことができる。遺伝子型｛ＡＡ，Ａａ，ａａ｝と表現型｛影響あり，影響なし｝との間の相関行列を生成し、３×２の相関行列を生成する。この相関行列の暗号文においては、この個人の遺伝子型／表現型条件に対応する１要素において１を暗号化し、それ以外の要素では０を暗号化する（図８）。この個人の遺伝子型または表現型が不明な場合は、すべての暗号文が０を暗号化する。
【０１４９】
ピアソンの適合度検定に関し、この検定は、遺伝子がハーディ・ワインベルク平衡（ＨＷＥ）にあるかどうかを調べるために使用される。ＨＷＥを使用すると、対立遺伝子の頻度が独立かどうかを検定できる。Ａおよびａを任意の遺伝子における２つの対立遺伝子とし、ＮＡＡ、ＮＡａ、およびＮａａをそれぞれ遺伝子型ＡＡ、Ａａ、およびａａの対応する数とする。Ｎ＝ＮＡＡ＋ＮＡａ＋Ｎａａを遺伝子型の総数とすると、図６Ｉのパラメータを準同型に計算できる。ここで、Ｎｉｊは図６Ｊのように計算できる。次に、これらのパラメータを使用して、図６Ｋの等式によって最終的な偏差検定統計量を計算できる。
【０１５０】
コクラン・アーミテージの傾向検定（ＣＡＴＴ）は、対立遺伝子が疾患と関連しているかどうかを調べるために使用する。この検定は、図６Ｍで計算されるパラメータを使用して図６Ｌの等式に示すように計算できる。ここで、ｗｉは事前に決定された重み∈｛０，１，２｝であり、Ｎｉｊは、特定の疾患の影響を受ける／受けない、遺伝子型ｉｊを持つ個人の数を表す。パラメータＮｉｊ、Ｒｉ、Ｃｉを図９に示す。
【０１５１】
予測式を使用すると、さまざまな疾患の可能性を調べることができる。予測式を計算するために、患者の医療データを使用できる。この医療データを保護するために、準同型暗号化を使用してそれらのデータを暗号化し、医療データシステム２２、１２０において計算エンジン８８を使用するなどの方法で、セキュアな環境で回帰式の計算を実行できる。１つの例として、期間を限定しない、心臓発作を起こす尤度の予測モデルは、図６Ｎに示すロジスティック回帰関数によって与えられる。ここで、ｘは図６Ｏの等式から計算され、ａは年齢、ｓｙｓは収縮期血圧、ｄｉａは拡張期血圧、ｃｈｏｌはコレステロールレベル、ｈｔは身長、ｗｔは体重である。
【０１５２】
図６Ｌの等式に示す指数関数式を実装するために、図６Ｐに示すように、十分な精度が得られる次数（例えば７次）までのテイラー級数を使用できる。準同型暗号化は整数の算術演算を使用するので、図６Ｏおよび６Ｐの等式は、適切な精度を確保しつつ図６Ｑおよび６Ｒの等式に正規化できる。
【０１５３】
図６Ｑおよび６Ｒの等式に対する入力は整数として表され、隣接する多項式スロットに２進形式でエンコードされる。これらの２進多項式を掛け合わせると、正しい出力が得られる。定数による乗算は一連の加算によって実装できる。正しい出力を計算するために、図６Ｑの等式の結果をデバイス（リモートデバイス２０など）に送信し、暗号化エンジン６２に再度暗号化させて図６Ｒの等式に適用し、最終結果を計算することができる。
【０１５４】
関係演算（計算エンジン８８に関して前述した関係演算など）に関しては、準同型関係演算（大なり＞、小なり＜、など）を実装できる。関係演算ａ＞ｂからは１ビットのみの結果が得られる。この値は、ａ＞ｂの場合に１に等しく、それ以外の場合は０に等しくなる。各入力ａおよびｂの個々のビットは暗号化されており、それぞれａｉおよびｂｉと表記する。ｋビットの数値があり、最下位ビットから始めるとすると、図６Ｓに示すように出力はｚｋによって与えられる。２つの入力のうちいずれかが暗号化されていない場合、図６Ｓに示す計算は大幅に単純化される。例として、ｂが暗号化されていない場合の式を図６Ｔに示す。
【０１５５】
血圧検査に関して、計算エンジン８８は、暗号化された収縮期血圧および拡張期血圧を取り、図１０に示すような血圧の分類を返すように構成できる。このような計算を実装するには、入力された血圧を複数の範囲と比較して血圧の分類を判別する。この処理は、図１１の疑似コードによる関数などの関数によって構成した計算エンジン８８によって実行できる。この疑似コード関数の入力パラメータＲｅｓ＿ＳｙｓおよびＲｅｓ＿Ｄｉａは、暗号化された数値をそれぞれ１つずつ保持する。この数値の範囲は０〜５であり、それぞれ収縮期Ｓｙｓ＿Ｒｅｆおよび拡張期Ｄｉａ＿Ｒｅｆの基準値リストにおける血圧の範囲と比較した、入力された暗号化状態の血圧測定値の分類を示す。
【０１５６】
上記の血圧の計算はあくまで１つの例であり、このような関係演算を適用する同様の例が多数考えられる。例えば、心房細動脳卒中リスクを表すＣＨＡＤＳ２スコアの計算も同様の方法で行える。同様の他の多くの計算も本発明の範囲内である。
【０１５７】
別の例を示すと、フラミンガム冠動脈疾患リスクスコア（ＦＣＲＳ）は、個人の１０年以内の心血管疾患発症リスクを推定するために使用される計算である。この計算は、複数の要因（性別、年齢、喫煙、総コレステロール、高比重リポ蛋白（ＨＤＬ）コレステロール、収縮期血圧など）に基づく。各変数を値の範囲と比較し、それぞれの範囲にスコアを割り当て、総フラミンガムスコアに加算する。例えば、男性の年齢が５０歳の場合は、総スコアに６点を加算する。
【０１５８】
この計算を実装するために、前述の関係演算の概念を、入力ｂを下限ａおよび上限ｃと比較するように拡張できる。関数ａ＜ｂ＜ｃは、ｂがこの範囲内である場合にのみ１になり、それ以外の場合に０になるように実装する。
【０１５９】
ａ＜ｂ＜ｃを実装する１つの方法は、２段階で実装する方法、すなわちａ＜ｂの後にｂ＜ｃを計算し、それらの結果を掛け合わせる方法である。しかし、この方法では、多くのＧＳＷ派生型の準同型暗号化方式と同様に、準同型乗算が非対称であるため、既に計算を経た（ｎｏｎ−ｆｒｅｓｈ）２つの暗号文を掛け合わせることができず、既に計算を経た暗号文が、暗号文の乗算結果を含む暗号文になる。ａ＜ｂ＜ｃに対する等式を変形して、作成直後の暗号文をアキュムレータによって乗算する方法で計算エンジン８８において実装することが好ましい。
【０１６０】
この変形を行うには、暗号化されたビット［ｂ０，ｂ１，…，ｂｋ−１］を持つｋビットの入力ｂをａおよびｃ（暗号化または非暗号化）と比較するとして、図６Ｕおよび６Ｖの等式に示すように関数ａ＜ｂ＜ｃを実装できる。図６Ｕの等式ではビット０を定義し、図６Ｖの等式では各ビットｉを定義している。ここで、ｘｉ、ｙｉ、ｚｉはアキュムレータであり、ｂｉは入力ｂの暗号化状態のビットｉであり、ａｉ、ｃｉはそれぞれ下限および上限のビットである。関係演算の結果はｚｋに保持される。ａｉおよびｃｉが平文である場合は、図６Ｔで説明したように図６Ｖの等式を単純化できる。
【０１６１】
テストは、本発明に従って構築したシステムで実施した。使用したテストシステムの詳細を図１２に示す。本発明における準同型演算のパフォーマンスの結果を図１３にまとめた。図１３では、Ｋｈｅｄｒ，  Ａ．，  Ｇｕｌａｋ，  Ｇ．，  ａｎｄ  Ｖａｉｋｕｎｔａｎａｔｈａｎ，  Ｖ．  ＳＨＩＥＬＤ：  Ｓｃａｌａｂｌｅ  Ｈｏｍｏｍｏｒｐｈｉｃ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｅｎｃｒｙｐｔｅｄ  Ｄａｔａ−Ｃｌａｓｓｉｆｉｅｒｓ，  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，  Ｒｅｐｏｒｔ  ２０１４／８３８，  ２０１４  （ｈｔｔｐ：／／ｅｐｒｉｎｔ．ｉａｃｒ．ｏｒｇ／２０１４／８３８．ｐｄｆ）（図１３ではＫｈｅｄｒ  ２０１４に示した）、Ｌａｕｔｅｒ，  Ｋ．，  Ｌｏｐｅｚ−Ａｌｔ，  Ａ．，  ａｎｄ  Ｎａｅｈｒｉｇ，  Ｍ．  Ｐｒｉｖａｔｅ  Ｃｏｍｐｕｔａｔｉｏｎ  ｏｎ  Ｅｎｃｒｙｐｔｅｄ  Ｇｅｎｏｍｉｃ  Ｄａｔａ．  Ｔｅｃｈ．  Ｒｅｐ，  ＭＳＲ−ＴＲ−２０１４−９３，  Ｊｕｎｅ  ２０１４（図１３ではＬａｕｔｅｒ  ２０１４に示した）、およびＬＢｏｓ，  Ｊ．  Ｗ．，  Ｌａｕｔｅｒ，  Ｋ．，  ａｎｄ  Ｎａｅｈｒｉｇ，  Ｍ．  Ｐｒｉｖａｔｅ  ｐｒｅｄｉｃｔｉｖｅ  ａｎａｌｙｓｉｓ  ｏｎ  ｅｎｃｒｙｐｔｅｄ  ｍｅｄｉｃａｌ  ｄａｔａ，  Ｉｎ  Ｊｏｕｒｎａｌ  ｏｆ  ｂｉｏｍｅｄｉｃａｌ  ｉｎｆｏｒｍａｔｉｃｓ，  Ｅｌｓｅｖｉｅｒ  Ｉｎｃ．，  ２０１４，  ｐｐ．  ２３４−２４３（図１３ではＬＢｏｓ  ２０１４に示した）と比較している。本発明のテストに使用した回路の深さは、選択したパラメータにおけるＬａｕｔｅｒ  ２０１４のものより大きいため、Ｌａｕｔｅｒ  ２０１４に報告されている結果は、回路の深さが大きくパラメータが大きい場合のものである。記載のように、本発明のＣＰＵ実装においては、ＬＢｏｓ  ２０１４と比較して乗算演算が５８倍高速である。さらに、本発明の並列化可能な性質を応用すれば、複数のＧＰＵコアに計算を分散させることによって１０４倍の高速化を達成できる。これにより、乗算演算の場合はＬＢｏｓ  ２０１４と比較して全体で６０８５倍、Ｌａｕｔｅｒ  ２０１４と比較して２８６倍の高速化が実現される。
【０１６２】
本発明は、複数のＧＰＵカードにわたって有利にスケーラブルにすることができる。ＧＰＵ間通信によるパフォーマンスの低下を測定するために、同じコンピュータに接続した４枚のＧＰＵカードを使用して実験を行った。大規模な問題を分割することにより、４個のＧＰＵすべての間で計算をスケジューリングし、３．９４６倍の高速化を達成できた。このことは、通信のオーバヘッドが縮小されたことを示している。
【０１６３】
前述のピアソンの適合度検定およびＣＡＡＴ検定、予測分析、ならびに関係演算および血圧への応用のパフォーマンス結果を図１４にまとめた。結果は、Ｌａｕｔｅｒ  ２０１４、ＬＢｏｓ  ２０１４、およびＣｈｅｏｎ，  Ｊ．  Ｈ．，  Ｋｉｍ，  Ｍ．，  ａｎｄ  Ｋｉｍ，  Ｍ．  Ｓｅａｒｃｈ−ａｎｄ−ｃｏｍｐｕｔｅ  ｏｎ  Ｅｎｃｒｙｐｔｅｄ  Ｄａｔａ，  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，  Ｒｅｐｏｒｔ  ２０１４／８１２，  ２０１４  （ｈｔｔｐ：／／ｅｐｒｉｎｔ．ｉａｃｒ．ｏｒｇ／）（図１４ではＣｈｅｏｎ  ２０１４に示した）と比較した。なお、Ｃｈｅｏｎ  ２０１４について報告されている結果は環Ｚ１４に対応している。理由は、本発明の血圧の例では、３つ以上の数値を加算して最終的な正しい結果を得るためである。
【０１６４】
生理的データなどの医療データは複雑かつ膨大で、ノイズが非常に多い場合がある。データ収集におけるノイズが発生する原因としては、データ収集に使用する技術、ヒューマンエラー、システム自体の固有の確率的性質、反復測定における個人内での変動、グループ内／母集団内での変動などが挙げられるほか、異常、疾患、または疾病を示している場合もある。ノイズがあるため、データマイニングの際には、データを探査し、保存されている患者データからパターン化された疾患を検出するために使用できるデータのクラスタリングおよび特徴抽出（ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ）アプリケーションが必要である。過去に治療し、最終診断が検証された患者から収集したデータから個々の患者の結果を予測する際には、機械学習アプリケーションも有用であろう。データマイニングおよび機械学習の両方が、スクリーニング、診断、治療、予測、モニタ、疫学的研究、生物医学的／生物学的分析、病院経営、医学教育および訓練に有用であろう。
【０１６５】
さらに、実施形態によっては、本明細書に記載した暗号化方式をプライバシー保護機械学習アプリケーション、プライバシー保護データマイニング（プライバシー保護データクラスタリングアプリケーションなど）、および医療、金融、またはその他の機密データに対する一般的なセキュアな計算に使用できる。例えば、暗号化されたデータに対するプライバシー保護データクラスタリングアプリケーションを含むプライバシー保護データマイニングにおいて、プライバシー保護機械学習アプリケーションに関連した準同型計算を実行するように計算エンジン８８を構成できる。
【０１６６】
本発明に関する前述の説明から、非常に多くの利点が明らかであろう。ウェアラブルデバイス、ポータブルデバイス、およびモノのインターネット（ＩｏＴ）に関して、本発明を使用すると、ウェアラブルデバイスおよびポータブルデバイスによって測定されたすべてのデータを暗号化してからクラウドにアップロードすることができる。これは、研究者および臨床医がプライバシーを保護しながら機密データに関する研究を行えるようにするために非常に有用である。前述のとおり、これらのデバイスは、集中管理機関によって生成された公開暗号鍵を保存できる。この集中管理機関は、秘密鍵を管理し、例えば計算結果／アラートを復号する必要がある病院などの医療施設に配布する役割も担う。ウェアラブル／ポータブルデバイスは、取得したデータを暗号化する必要があるだけである。これらの種類のデバイスは一般に処理能力がさほど大きくないが、その点が実装上の大きな障害になることはない。暗号化機能には必ずしも処理速度が要求されないため、組み込みのプロセッサが測定データを数ミリ秒で暗号化できなくても、数秒以内で暗号化できれば性能として十分である。
【０１６７】
本発明は、本発明の精神または本質的な特徴から逸脱することなく、他の形式で実施することができる。本発明の特定の適合および変更は、当業者には明らかであろう。したがって、本明細書に記載した実施形態は例示であって限定的なものではなく、本発明の範囲は、前述の説明ではなく、添付の請求項によって示される。したがって、当該特許請求の範囲の均等範囲に属する変更は、すべて本発明に含まれると解釈される。
【図１】
2019514301.tif 000030
【図２】
2019514301.tif 000031
【図３】
2019514301.tif 000032
【図４】
2019514301.tif 000033
【図５】
2019514301.tif 000034
【図６Ａ】
2019514301.tif 000035
【図６Ｂ】
2019514301.tif 000036
【図６Ｃ】
2019514301.tif 000037
【図６Ｄ】
2019514301.tif 000038
【図６Ｅ】
2019514301.tif 000039
【図６Ｆ】
2019514301.tif 000040
【図６Ｇ】
2019514301.tif 000041
【図６Ｈ】
2019514301.tif 000042
【図６Ｉ】
2019514301.tif 000043
【図６Ｊ】
2019514301.tif 000044
【図６Ｋ】
2019514301.tif 000045
【図６Ｌ】
2019514301.tif 000046
【図６Ｍ】
2019514301.tif 000047
【図６Ｎ】
2019514301.tif 000048
【図６Ｏ】
2019514301.tif 000049
【図６Ｐ】
2019514301.tif 000050
【図６Ｑ】
2019514301.tif 000051
【図６Ｒ】
2019514301.tif 000052
【図６Ｓ】
2019514301.tif 000053
【図６Ｔ】
2019514301.tif 000054
【図６Ｕ】
2019514301.tif 000055
【図６Ｖ】
2019514301.tif 000056
【図６Ｗ】
2019514301.tif 000057
【図７】
2019514301.tif 000058
【図８】
2019514301.tif 000059
【図９】
2019514301.tif 000060
【図１０】
2019514301.tif 000061
【図１１】
2019514301.tif 000062
【図１２】
2019514301.tif 000063
【図１３】
2019514301.tif 000064
【図１４】
2019514301.tif 000065
【図１５】
2019514301.tif 000066
【図１６】
2019514301.tif 000067
【図１７】
2019514301.tif 000068
【図１８】
2019514301.tif 000069
【図１９】
2019514301.tif 000070
【図２０】
2019514301.tif 000071
【図２１】
2019514301.tif 000072
【図２２ａ】
2019514301.tif 000073
【図２２ｂ】
2019514301.tif 000074
【図２２ｃ】
2019514301.tif 000075
【図２２ｄ】
2019514301.tif 000076
【図２２ｅ】
2019514301.tif 000077
【図２２ｆ】
2019514301.tif 000078
【図２２ｇ】
2019514301.tif 000079
【国際調査報告】
2019514301.tif 000080
2019514301.tif 000081
2019514301.tif 000082
2019514301.tif 000083