(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-29
(54)【発明の名称】暗号化入力に対して人工ニューラルネットワークを評価するためのクライアント-サーバ設定におけるレベル準同型暗号化の使用
(51)【国際特許分類】
G09C 1/00 20060101AFI20241122BHJP
【FI】
G09C1/00 650Z
G09C1/00 620Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024533302
(86)(22)【出願日】2022-04-08
(85)【翻訳文提出日】2024-06-04
(86)【国際出願番号】 EP2022059455
(87)【国際公開番号】W WO2023110166
(87)【国際公開日】2023-06-22
(32)【優先日】2021-12-14
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】517451940
【氏名又は名称】エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クラウディオ・ソリエンテ
(72)【発明者】
【氏名】ダリオ・フィオレ
(72)【発明者】
【氏名】カスラ・エダラット・ネヤド
(57)【要約】
クライアント-サーバ設定においてサーバの少なくとも1つのプロセッサによって暗号化入力に対して少なくとも1つの計算演算を実行する、コンピュータ実装方法を提供する。計算演算のパラメータはサーバに対してプライベートであり、入力はクライアントに対してプライベートである。実施形態によれば、方法は、サーバによって、レベル準同型暗号化(LHE)方式の暗号文cを暗号化入力として受信することと、暗号文cにランダム性を準同型的に加算し、得られた暗号文bをクライアントに送信することと、暗号文bの復号および再暗号化を含む暗号文リフレッシュ手順においてクライアントによって取得されたリフレッシュ暗号文b'を受信することと、リフレッシュ暗号文c'を取得するために、前に加算されたランダム性を受信されたリフレッシュ暗号文b'から準同型的に除去することと、リフレッシュ暗号文c'に少なくとも1つの計算演算を実行することとを含む。
【特許請求の範囲】
【請求項1】
クライアント-サーバ設定(10)においてサーバ(14)の少なくとも1つのプロセッサによって暗号化入力に対して少なくとも1つの計算演算を実行する、コンピュータにより実施される方法であって、前記計算演算のパラメータが前記サーバ(14)に対してプライベートであり、前記入力が前記クライアント(12)に対してプライベートであり、前記方法が、
前記サーバ(14)によって、レベル準同型暗号化(LHE)方式の暗号文cを暗号化入力として受信するステップと、
前記サーバ(14)によって、前記暗号文cにランダム性を準同型的に加算し、得られた暗号文bを前記クライアント(12)に送信するステップと、
前記サーバ(14)によって、前記暗号文bの復号および再暗号化を含む暗号文リフレッシュ手順において前記クライアント(12)によって取得されたリフレッシュ暗号文b'を受信するステップと、
前記サーバ(14)によって、前記前に加算されたランダム性を前記受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得するステップと、
前記サーバ(14)によって、前記リフレッシュ暗号文c'に対して前記少なくとも1つの計算演算を実行するステップと
を含む、方法。
【請求項2】
前記少なくとも1つの計算演算が、前記暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含む、請求項1に記載の方法。
【請求項3】
前記暗号文cにランダム性を準同型的に加算するステップが、
前記サーバ(14)によって、ランダム要素rを選択するステップと、
前記サーバ(14)によって、前記LHE方式の前記暗号化演算HE.Encを使用して、前記クライアント(12)の公開鍵pk
cに基づいて、前記選択されたランダム要素rを暗号化するステップと、
得られた暗号文HE.Enc(pk
c,r)を前記暗号文cに準同型的に加算するステップと
を含む、請求項1または2に記載の方法。
【請求項4】
前記前に加算されたランダム性を前記受信された暗号文b'から準同型的に除去するステップが、
前記サーバ(14)によって、前記クライアント(12)の公開鍵pk
cに基づいて暗号化されたrの前記暗号化を前記クライアント(12)から受信された前記暗号文b'から準同型的に減算するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記LHE方式の暗号文において暗号化された固定小数点平文の事前定義された量の最下位ビットを切り捨てる再スケーリング演算を適用することによって、前記固定小数点平文のスケール係数を低減するステップ
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記再スケーリング演算が、その入力値の小数部を切り捨てるfloor関数に基づいて実行される、請求項5に記載の方法。
【請求項7】
前記再スケーリング演算が招く誤差を補正するために、前記クライアント(12)と前記サーバ(14)との間でマルチパーティ計算(MPC)プロトコル(16)を使用するステップ
をさらに含む、請求項5または6に記載の方法。
【請求項8】
負数に対する計算を可能にするために、1の補数符号化を使用し、固定Nに対するN+xとして平文値xを表すステップ
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
クライアント-サーバ設定(10)におけるサーバ(14)用のデバイスであって、1つまたは複数のプロセッサとメモリとを備え、前記メモリがプロセッサ実行可能命令を備え、前記プロセッサ実行可能命令が、前記プロセッサのうちの1つまたは複数によって実行されると、前記1つまたは複数のプロセッサに、単独でまたは組み合わせて、暗号化入力に対して少なくとも1つの計算演算を実行する方法を実行させ、前記計算演算のパラメータが前記サーバ(14)に対してプライベートであり、前記入力が前記クライアント(12)に対してプライベートであり、前記方法が、
レベル準同型暗号化(LHE)方式の暗号文cを暗号化入力として受信するステップと、
前記暗号文cにランダム性を準同型的に加算し、得られた暗号文bを前記クライアント(12)に送信するステップと、
前記暗号文bを復号および再暗号化することによって前記クライアント(12)によって取得されたリフレッシュ暗号文b'を受信するステップと、
前記前に加算されたランダム性を前記受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得するステップと、
前記リフレッシュ暗号文c'に対して前記少なくとも1つの計算演算を実行するステップと
を含む、デバイス。
【請求項10】
前記少なくとも1つの計算演算が、前記暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含む、請求項9に記載のデバイス。
【請求項11】
前記暗号文cにランダム性を準同型的に加算するステップが、
前記サーバ(14)によって、ランダム要素rを選択するステップと、
前記サーバ(14)によって、前記LHE方式の前記暗号化演算HE.Encを使用して、前記クライアント(12)の公開鍵pk
cに基づいて、前記選択されたランダム要素rを暗号化するステップと、
得られた暗号文HE.Enc(pk
c,r)を前記暗号文cに準同型的に加算するステップと
を含む、請求項9または10に記載のデバイス。
【請求項12】
前記前に加算されたランダム性を前記受信された暗号文b'から準同型的に除去するステップが、
前記サーバ(14)によって、前記クライアント(12)の公開鍵pk
cに基づいて暗号化されたrの前記暗号化を前記クライアント(12)から受信された前記暗号文b'から準同型的に減算するステップ
を含む、請求項9から11のいずれか一項に記載のデバイス。
【請求項13】
コンピュータ実行可能命令を備えた非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が、クライアント-サーバ設定(10)においてサーバ(14)の1つまたは複数のプロセッサによって実行されると、
レベル準同型暗号化方式の暗号文cを暗号化入力として受信することと、
前記暗号文cにランダム性を準同型的に加算し、得られた暗号文bを前記クライアント(12)に送信することと、
前記暗号文bを復号および再暗号化することによって前記クライアント(12)によって取得されたリフレッシュ暗号文b'を受信することと、
前記前に加算されたランダム性を前記受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得することと、
前記リフレッシュ暗号文c'に対して前記少なくとも1つの計算演算を実行することと
を含む演算をもたらす、非一時的コンピュータ可読記憶媒体。
【請求項14】
前記少なくとも1つの計算演算が、前記暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含む、請求項13に記載の記憶媒体。
【請求項15】
前記LHE方式の暗号文において暗号化された固定小数点平文のスケール係数が、前記固定小数点平文の事前定義された量の最下位ビットを切り捨てる再スケーリング演算を適用することによって低減される、請求項13または14に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、特定の準同型暗号化/復号の方式、アルゴリズム、技法、方法、コンピュータプログラムおよび装置における暗号学の技術分野に関する。より詳細には、本発明の実施形態は、レベル準同型暗号化(Leveled Homomorphic Encryption、LHE)を使用し、クライアント-サーバ設定においてサーバの少なくとも1つのプロセッサによって暗号化入力に対して少なくとも1つの計算演算(computational operation)を実行するための方法を提供する。
【背景技術】
【0002】
レベル準同型暗号化(LHE)は、暗号化データに対する有界の乗法的複雑性(bounded multiplicative complexity)の算術関数の計算を可能にする。LHEは、したがって、サーバのプライベートネットワークを使用することによってクライアントのプライベート入力を分類するために人工ニューラルネットワーク(Artificial Neural Networks、ANN)を使用するクライアント-サーバアプリケーションにおいて使用され得る。簡潔には、クライアントは、その独自の公開鍵に基づいてその入力を暗号化し、暗号文をサーバに送る。サーバは、クライアントの暗号化入力に対してそのプライベートネットワークを準同型的に評価し、得られた暗号文をクライアントに返す。最終的に、クライアントは、そのプライベート鍵を使用して暗号文を復号し、分類結果を取得する。
【0003】
今説明した青写真についての課題は、準同型暗号文は各準同型演算(加算または乗算)において増大した雑音成分を伝え、その雑音が事前定義された閾値を越える場合、暗号文が復号可能でないことである。この閾値はシステムをセットアップするときに定義されなければならず、この閾値は計算されるべき関数の深さに対して本質的に上限を設定する。
【0004】
残念ながら、雑音閾値が高いセットアップは、非常に大きな暗号文を必要とし、LHE方式を非効率的にする。この理由で、効率的なLHE方式は、深さが浅い関数のみ計算することができ、したがって、ディープANNとともに使用することはできない。
【0005】
ディープANNを含めて、乗法の深さが高い関数を評価するためにLHEを使用することは、計算を通して暗号文の雑音を低く維持するための手段を必要とする。暗号文の雑音を低減するための既存の技法は、2つのカテゴリーに分類される。1つのオプションは暗号文リフレッシュと呼ばれ、復号鍵の所有者は中間計算から得られた暗号文を復号し、それをフレッシュな雑音を有する新しい暗号文で再度暗号化する。それにもかかわらず、復号を介して取得される平文値は、計算されている関数の詳細を秘密鍵を保持する当事者に漏らすことがあり、ネットワークパラメータがサーバに対してプライベートであるANNアプリケーションにおいて実行不可能である。もう1つのオプションは、本質的に非効率的であるブートストラッピングと呼ばれる技法を使用することである。
【0006】
さらに、ほとんどのLHE方式は整数に対する計算を可能にするが、ANNアプリケーションは実数値データに対して計算する。固定小数点表現は、整数を扱う暗号化方式を用いて実数値データを処理するための一般的な解決策である。それにもかかわらず、固定小数点表現のスケーリング係数は、乗算ごとに増大する。したがって、暗号化方式パラメータを定義するとき、スケーリング係数の(最大)サイズに対応するような平文サイズと暗号文サイズとが選定されなければならない。雑音と同様に、大きなスケーリング係数は大きな暗号文を必要とし、これは暗号化方式を非効率的にする。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Junfeng FanおよびFrederik Vercauteren、Somewhat Practical Fully Homomorphic Encrypton。https://eprint.iacr.org/2012/144
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、クライアントとサーバとの間で何のプライベート情報も漏れないことを確実にすることによって暗号化方式の効率が高められるように、当初説明したタイプの方法を改善し、さらに展開することが本発明の目的である。
【課題を解決するための手段】
【0009】
本発明によれば、前述の目的は、クライアント-サーバ設定においてサーバの少なくとも1つのプロセッサによって暗号化入力に対して少なくとも1つの計算演算を実行する、コンピュータにより実施される方法によって達成され、計算演算のパラメータはサーバに対してプライベートであり、入力はクライアントに対してプライベートであり、方法は、サーバによって、レベル準同型暗号化(LHE)方式の暗号文cを暗号化入力として受信するステップと、サーバによって、暗号文cにランダム性を準同型的に加算し、得られた暗号文bをクライアントに送信するステップと、サーバによって、暗号文bの復号および再暗号化を含む暗号文リフレッシュ手順においてクライアントによって取得されたリフレッシュ暗号文b'を受信するステップと、サーバによって、前に追加されたランダム性を受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得するステップと、サーバによって、リフレッシュ暗号文c'に対して少なくとも1つの計算演算を実行するステップとを含む。
【0010】
さらに、前述の目的は、独立請求項に指定されるような、クライアント-サーバ設定におけるサーバ用のデバイス、および非一時的コンピュータ可読記憶媒体によって達成される。
【0011】
本発明は、復号鍵の所有者がその平文値を学習せずに、暗号文の雑音を低減させることを可能にするためのランダム性ベースのブラインド化態様を用いて暗号文リフレッシングを拡張する暗号文リフレッシュ技法を提案する。より具体的には、本発明は、入力がクライアントに対してプライベートであり、ネットワークパラメータがサーバに対してプライベートであるクライアント-サーバアプリケーションシナリオにおいて、レベル準同型暗号化(LHE)を使用して、暗号化入力に対して複雑な計算演算、たとえば、ディープ人工ニューラルネットワーク(ANN)を用いた分類、を実行することを可能にする。上記で説明したように、ANNアプリケーションにLHEを使用する最新技法は、高い計算オーバーヘッドを招くか、または狭いネットワークのみに対応し得るかのいずれかである。今回の発明は、暗号文リフレッシュ演算が中間計算に関する情報を何も漏らさないことを確実にしながら、ディープネットワークの使用と高いオーバーヘッドを伴わない任意の深さの関数計算とを可能にするレベル準同型暗号化を使用する、新規性のある対話型ブートストラッピングを導入する。ブートストラッピングを伴わないレベル準同型暗号化方式を使用することは、計算され得る関数の乗法深さ(たとえば、ANNの深さ)を制限することになるか、または準同型演算の複雑性(すなわち、サーバにおける実行時間)を高めることになるかのいずれかであることに留意されたい。
【0012】
本開示で使用する「ブートストラッピング」という用語は、メッセージmを取得するために暗号文を復号し、メッセージmをフレッシュ暗号文で再度暗号化することを本質的に指す。その論理的根拠は、フレッシュ暗号文は、低雑音を有し、加算/乗算を用いて他の暗号文または定数と結合され得ることである。各演算において、暗号文の雑音は増大し、雑音レベルが閾値を越えて増大した場合、復号はもはや可能ではない。したがって、結果を復号する能力を保持しながら、暗号文に対して「多くの」演算を実行するために、数回の演算ごとにブートストラッピングを実行しなければならない。
【0013】
本発明のある実施形態によれば、少なくとも1つの計算演算は、暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含み得る。したがって、本発明のある実施形態は、クライアント-サーバシナリオにおいてLHE方式を使用することによって、暗号化入力に対してANNを評価するための方法を提供し、ここで、ANNはサーバに対してプライベートであり、入力を暗号化する暗号文はクライアントに対してプライベートであり、本方法は、
1)サーバによって、レベル準同型暗号化方式の暗号文にランダム性を準同型的に加算するステップと、
2)クライアントによって、ステップ1の暗号文を復号し、再度暗号化するステップと、
3)サーバによって、ステップ1のランダム性をステップ2の暗号文から準同型的に除去するステップとを含む。
【0014】
上記の方法は、リフレッシュ演算を行っている当事者がリフレッシュされている暗号文において暗号化された平文について何も学習しないように、リフレッシュ演算の前にLHE方式の暗号文の暗号文にランダム性を加算する。
【0015】
当業者が諒解するように、ANNを越えて、本明細書で開示するように暗号文をリフレッシュするための分散技法(ならびに、以下で詳細に説明するような、平文データの固定小数点表現を再スケーリングするための分散技法)は、暗号化データに対するより広い計算状況に適用可能である。具体的には、これらの技法は、様々なIoT解決策に関して、たとえば、サーバデバイスがクライアントデバイスをリモートで制御または管理するアプリケーションにおいて適用され得る。そのような場合、本発明による方法は、クライアントとサーバとの間に複数の通信ラウンドを必要とし、デバイス同士の間の安定した信頼できる通信リンクが有利となる。
【0016】
本発明のある実施形態によれば、暗号文cにランダム性を準同型的に加算するステップは、次のように実行され得る。サーバは、ランダム要素rを選択することができ、LHE方式の暗号化演算(概して、本明細書でHE.Encと示される)を使用して、クライアントの公開鍵pkcに基づいて、選択されたランダム要素rを暗号化することができる。最終的に、サーバは、得られた暗号文HE.Enc(pkc,r)を暗号文cに準同型的に加算することができる。
【0017】
本発明のある実施形態によれば、前に加算されたランダム性を受信された暗号文b'から準同型的に除去するステップは、次のように実行され得る。サーバは、クライアントの公開鍵pkcに基づいて暗号化されたrの暗号化をクライアントから受信された暗号文b'から準同型的に減算し得る。
【0018】
本発明のある実施形態によれば、暗号化方式を効率的にし、整数のみをサポートするLHE方式を用いた実数値計算を可能にするために、暗号文リフレッシュ技法は、スケーリング係数を低減し、平文データの固定小数点表現を使用する暗号化方式を用いてディープANNを評価することを可能にする再スケーリング演算で拡張され得る。より具体的には、LHE方式の暗号文における暗号化された固定小数点平文(fixed-point plaintext)のスケール係数が、固定小数点平文の前定義された量の最下位ビットを切り捨てる再スケーリング演算を適用することによって低減されることが実現され得る。本発明のある実施形態によれば、再スケーリング演算は、その入力値の小数部を切り捨てるfloor()関数に基づいて実行され得る。
【0019】
本発明のある実施形態によれば、クライアントとサーバとの間でマルチパーティ計算(MPC)プロトコルを使用することによって、再スケーリング演算が招く誤差(具体的には、モジュラリダクション(modular reduction)誤差および近似誤差)が補正されることが実現され得る。
【0020】
本発明のある実施形態によれば、計算上、負数を可能にするために、1の補数符号化が使用され、平文値xが固定Nに対してN+xと表されることが実現され得る。
【0021】
本発明の教示を有利な方法で設計し、さらに展開するためのいくつかの方法が存在する。このために、一方で独立請求項を参照し、他方で図によって示される、本発明の好ましい実施形態の以下の説明を例として参照する。図の助けにより、本発明の好ましい実施形態の説明に関して、一般的に好ましい実施形態および本教示のさらなる展開について説明する。
【図面の簡単な説明】
【0022】
【
図1】本発明の第1の実施形態による、ブラインド化された暗号文リフレッシングを使用したクライアント-サーバシナリオにおけるLHE方式を示す図である。
【
図2】本発明のある実施形態による、マルチパーティ計算(MPC)プロトコルに基づく暗号文再スケーリング手順を用いて拡張された代替的なリフレッシングプロトコルを示す図である。
【
図3】
図2の実施形態において使用されるMPCプロトコルの詳細を示す図である。
【発明を実施するための形態】
【0023】
図1は、ブラインド化された暗号文リフレッシングが使用されるクライアント-サーバシナリオ10におけるLHE(レベル準同型暗号化)方式を実装する本発明のある実施形態を示す。
図1に示す実施形態では、HE.EncおよびHE.Decは、それぞれ、暗号化アルゴリズムおよび復号アルゴリズムを示す。
【0024】
図1によれば、クライアント12は、LHE方式の鍵対(sk
c,pk
c)を保持するが、サーバ14は公開鍵pk
cのみを保持する。また、サーバ14は、クライアント12の公開鍵pk
cに基づいて暗号化されたデータxの暗号文cを保持する。cは、クライアント12の公開鍵pk
cに基づいて暗号化された暗号文に対してサーバ14によって実行される準同型計算の結果であると仮定する。
【0025】
本発明のある実施形態によれば、クライアント12にxを明らかにせずに暗号文cをリフレッシュするために、サーバ14は、以下を行うように構成される。サーバ14は、ランダム要素rを選び、クライアント12の公開鍵pkcに基づいてそれを暗号化し、得られた暗号文HE.Enc(pkc,r)をcに準同型的に加算する:
b=c+HE.Enc(pkc,r)
【0026】
得られた暗号文bは、クライアント12の公開鍵pkcに基づくx+rの暗号化である。サーバ14は、得られた暗号文bをクライアント12に送信する。
【0027】
bの受信時に、クライアント12は、正規の雑音リフレッシング手順を実行し、すなわち、クライアント12は、その秘密鍵skcを使用することによってサーバ14から受信された暗号文bを復号して、平文aを取得する:
a=HE.Dec(skc,b)
【0028】
次に、クライアント12は、その公開鍵pkcを使用することによって、取得された平文を再度暗号化する:
b'=HE.Enc(pkc,a)
【0029】
b'によって示される、得られた暗号文は、サーバ14によって送られた暗号文の同じ平文(すなわち、x+r)を暗号化するが、低減された雑音を伴う。
【0030】
クライアント12は、新しい暗号文b'をサーバ14に送る。最終的に、b'の受信時に、サーバ14は(クライアント12の公開鍵pkcに基づいて暗号化された)rの暗号化をクライアント12から受信された暗号文b'から準同型的に減算する:
c'=b'-HE.Enc(pkc,r)
【0031】
結果として、サーバ14は、クライアント12の公開鍵pkcに基づいてxを暗号化するリフレッシュ暗号文c'を取得する。暗号文c'は、次いで、たとえば、ANNなどの機械学習アプリケーションにおいて、さらなる計算のために(前の暗号文cの代わりに)使用され得る。
【0032】
機械学習アプリケーションの大部分は実数に対して動作するが、BFV(Brakerski/Fan-Vercauteren)など、普及している準同型暗号化方式(参考までに、Junfeng FanおよびFrederik Vercauteren、Somewhat Practical Fully Homomorphic Encrypton。https://eprint.iacr.org/2012/144を参照されたい)は、Zqの整数演算のみをサポートする。整数を用いて実数を表すための一般的な手法は、各値xに対してスケールsを設定し、対(x,s)をx*2-sと解釈する固定小数点表記を使用している。
【0033】
固定小数点表記は、BFVなどの準同型暗号化方式に適合する。具体的には、パブリックスケール(public scale)sを固定パラメータとして設定することができ、すべての準同型演算はこのパブリックスケーリング係数を考慮に入れなければならない。たとえば、同じスケールを共有する2つの(暗号化)オペランドを加算することは、精度に何の影響も及ぼさない。反対に、乗算アルゴリズムは、2つのオペランドが同じスケールを有することを必要としないが、出力のスケールを増大させる。すなわち、2つのオペランド(x,s)および(x',s')の乗算は(x*x,s+s')をもたらす。概して、スケールsを用いたオペランドのn回の乗算は、n*sのスケールをもたらす。BFVのような準同型暗号化方式を使用するとき、各乗算におけるスケール係数の増大を考慮に入れなければならない。しかしながら、スケールに表現ビットを割り振ることは、より大きな暗号文をもたらし、これはこの方式の計算複雑性を増大させる。
【0034】
乗算によりスケールが増大する課題に対処するための一般的な手法は、最下位ビットを切り捨てることによって値のスケールを低減させる再スケーリング手順を提供することである。具体的には、再スケーリング係数sc=2
rsを用いた値x
*2
-sの再スケーリング演算は、floor(x/sc)
*2-
(s-rs)を計算することによって実行され、式中、floor()は、入力値の小数部を切り捨てる関数である。残念ながら、除算演算は準同型方式に適合しない。この課題を解決して浮動小数点計算を可能にするために、本発明の実施形態は、その雑音をリフレッシュすることに加えて、暗号文を再スケーリングするためにリフレッシングプロトコル、たとえば、
図1に関して上記で説明したリフレッシングプロトコル、を拡張する方法を提供する。
【0035】
たとえば、
図1の暗号文リフレッシュプロトコルでは、リフレッシュされるべき値(すなわち、x)は、ランダム性rを用いてブラインド化される。したがって、本発明のある実施形態によれば、floor(x/sc)を2つの部分にスプリットすることによってfloor(x/sc)の除算を行うこと、すなわち、floor(x+r/sc)およびfloor(r/sc)を計算すること、が実現され得る。この文脈で、x+rはクライアント12に知られており、rはサーバ14に知られており、したがって、各当事者は平文データに対して再スケーリング演算を適用し得ることに留意されたい。
【0036】
それにもかかわらず、クライアント12における再スケーリングは2つのタイプの誤差を招く可能性がある。第1の考えられる誤差は、
図1においてaによって示される、復号を介して取得される平文がx+r mod qであることによるモジュラリダクション誤差である。xとrの両方がZ
qにあるため、x+r<qであるかまたはx+r≧qであるかに応じて、それはa=x+rまたはa=x+r-qのいずれかであり得る。第2の誤差は近似誤差であるが、これは、floor(x+r/sc)がfloor(x/sc)+floor(r/sc)とは異なり得るためである。これは、xおよびrをscによって除算するとき、各除算は剰余を生み出すことになり、剰余の和がscを越える場合、floor(x/sc)=(floor((x+r)/sc)-floor(r/sc))-1であることによる。
【0037】
本発明の実施形態によれば、
図2に示すように、両方の誤差を補正するために、セキュアなマルチパーティ計算(MPC)プロトコル16が使用される。
【0038】
モジュラリダクションの補正。ある実施形態では、クライアント12は、x+r<q(したがって、a=x+r)であるとを仮定し、floor(x+r/sc)をfloor(a/sc)として計算する。次に、クライアント12およびサーバ14は、MPCプロトコル16を使用して、クライアント12の仮定が真であったかどうかを検証する。仮定が偽であった場合、クライアント12はq/scを結果に加算する。
【0039】
近似誤差の補正。ある実施形態では、x+r=aとx+r=a+qの両方の場合の誤差補正を計算するために同じMPCプロトコル16が使用され得る。具体的には、誤差補正は、(x+r)%sc(クライアント12によって知られている)およびr%sc(サーバ14によって知られている)から計算され得る。ここで、数式x%yは、yによって除算されたxの剰余を示す。
【0040】
本発明の実施形態によるMPCプロトコル16の詳細が
図3に示される。示すように、クライアント12のプライベート入力は、a、a%sc、(a+q)%sc、およびr'である。サーバ14のプライベート入力は、rおよびr%scである。ここで、r、r'は任意のブラインド係数である。サーバ14は、唯一の当事者として、再スケーリングするときにクライアント12が生じさせた誤差に対する補償として出力Adjを受信する。
【0041】
ある実施形態によれば、MPC16の機能は、Adjを次のように計算し得る。最初に、この機能は、a<r(
図3の条件C
1)であるかどうかを検査する。条件が真である場合、補償はfloor(q/sc)を含むはずである。次に、この機能は、a=x+r(条件C
2)の場合またはa+q=x+r(条件C
3)の場合、近似誤差に対する補償を計算する。最終的に、この機能は、a=x+rであるかまたはa+q=x+rであるか(条件C
4)に基づいて、どちらの補償を出力すべきかを判定する。条件C
4は、(0<=Adj<q)であるかまたは(q<=Adj<2q)であるかを決定し、MPCは、オーバーフローが生じるとき、qをAdjから減算することによって、mod qを適用する。
【0042】
負数の処理。固定小数点表現は、正数の浮動小数点に対する計算を可能にする。負数の計算を可能にするために、本発明の実施形態は、1の補数符号化の変形を使用し、固定Nに対するN+xとして値xを表す。ある実施形態では、Nは、q/2に最も近い2の累乗として選定される。これは、x*2-sでxに対して[-N,q-N]の有効範囲をもたらす。1)正数と負数が両方とも同じ除算手順を有し、2)Nは[0,q]で2の最高累乗として選定されるので、N%scの剰余はゼロになることが保証されるため、この符号化は、再スケーリングプロトコルに対して何の影響も及ぼさない。
【0043】
上記の実施形態による1の補数符号化は、本明細書で開示する暗号文リフレッシング技法に適合し、上記で説明したように、MPCプロトコル16に何の変更も必要としない。しかしながら、バイアスNの加算は、すべての準同型演算に対して固定補整条件を必要とさせる。Table 1(表1)は、入力(x+N)および(y+N)に対する演算のナイーブな結果とその補正条件とを示す。スケールはこの計算に何の影響も及ぼさないため、簡単にするために、スケールは省略されている。
【0044】
【0045】
Table 1(表1)に示す補正条件の計算および加算は単純である。補正を計算し適用する複雑性は、元の演算よりも低いが、これは、暗号文間の乗算にスカラー乗算が使用され、残りの演算にスカラー加算が使用されるためである。これは、その補数演算補正の余剰オーバーヘッドが著しくないことを確実にする。
【0046】
準同型暗号化に対する1の補数符号化の選定は稀であることに留意されたい。しかしながら、本発明の実施形態によれば、そのモジュラスq余剰に基づいて[0,q]を[-q/2,q/2]に直接マッピングするLHE方式のユビキタスな符号化は、正数および負数に対して異なる除算手順を必要とし、本明細書で開示する再スケーリングプロトコルに適合しないことが認識されている。したがって、本発明の実施形態による符号化は、最終的に準同型補正を必要とするにもかかわらず、全体としてより高い効率を提供する。
【0047】
前述の説明および関連する図面に提示する教示の利益を有する、本発明が関係する当業者は、本明細書に記載される本発明の多くの修正および他の実施形態を思いつくであろう。したがって、本発明は、開示した特定の実施形態に限定されず、修正および他の実施形態が添付の請求項の範囲内に含まれることが意図されることを理解されたい。本明細書では特定の用語が採用されているが、これらは、限定のためではなく、一般的かつ説明的な意味でのみ使用される。
【符号の説明】
【0048】
10 クライアント-サーバシナリオ
12 クライアント
14 サーバ
16 マルチパーティ計算(MPC)プロトコル、MPC
【手続補正書】
【提出日】2024-06-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クライアント-サーバ設定(10)においてサーバ(14)の少なくとも1つのプロセッサによって暗号化入力に対して少なくとも1つの計算演算を実行する、コンピュータにより実施される方法であって、前記計算演算のパラメータが前記サーバ(14)に対してプライベートであり、前記入力
がクライアント(12)に対してプライベートであり、前記方法が、
前記サーバ(14)によって、レベル準同型暗号化(LHE)方式の暗号文cを暗号化入力として受信するステップと、
前記サーバ(14)によって、前記暗号文cにランダム性を準同型的に加算し、得られた暗号文bを前記クライアント(12)に送信するステップと、
前記サーバ(14)によって、前記暗号文bの復号および再暗号化を含む暗号文リフレッシュ手順において前記クライアント(12)によって取得されたリフレッシュ暗号文b'を受信するステップと、
前記サーバ(14)によって、前記前に加算されたランダム性を前記受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得するステップと、
前記サーバ(14)によって、前記リフレッシュ暗号文c'に対して前記少なくとも1つの計算演算を実行するステップと
を含む、方法。
【請求項2】
前記少なくとも1つの計算演算が、前記暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含む、請求項1に記載の方法。
【請求項3】
前記暗号文cにランダム性を準同型的に加算するステップが、
前記サーバ(14)によって、ランダム要素rを選択するステップと、
前記サーバ(14)によって、前記LHE方式
の暗号化演算HE.Encを使用して、前記クライアント(12)の公開鍵pk
cに基づいて、前記選択されたランダム要素rを暗号化するステップと、
得られた暗号文HE.Enc(pk
c,r)を前記暗号文cに準同型的に加算するステップと
を含む、請求項1または2に記載の方法。
【請求項4】
前記前に加算されたランダム性を前記受信された暗号文b'から準同型的に除去するステップが、
前記サーバ(14)によって、前記クライアント(12)の公開鍵pk
cに基づいて暗号化されたrの前記暗号化を前記クライアント(12)から受信された前記暗号文b'から準同型的に減算するステップ
を含む、請求項
1に記載の方法。
【請求項5】
前記LHE方式の暗号文において暗号化された固定小数点平文の事前定義された量の最下位ビットを切り捨てる再スケーリング演算を適用することによって、前記固定小数点平文のスケール係数を低減するステップ
をさらに含む、請求項
1に記載の方法。
【請求項6】
前記再スケーリング演算が、その入力値の小数部を切り捨てるfloor関数に基づいて実行される、請求項5に記載の方法。
【請求項7】
前記再スケーリング演算が招く誤差を補正するために、前記クライアント(12)と前記サーバ(14)との間でマルチパーティ計算(MPC)プロトコル(16)を使用するステップ
をさらに含む、請求項
5に記載の方法。
【請求項8】
負数に対する計算を可能にするために、1の補数符号化を使用し、固定Nに対するN+xとして平文値xを表すステップ
をさらに含む、請求項
1に記載の方法。
【請求項9】
クライアント-サーバ設定(10)におけるサーバ(14)用のデバイスであって、1つまたは複数のプロセッサとメモリとを備え、前記メモリがプロセッサ実行可能命令を備え、前記プロセッサ実行可能命令が、前記プロセッサのうちの1つまたは複数によって実行されると、前記1つまたは複数のプロセッサに、単独でまたは組み合わせて、暗号化入力に対して少なくとも1つの計算演算を実行する方法を実行させ、前記計算演算のパラメータが前記サーバ(14)に対してプライベートであり、前記入力
がクライアント(12)に対してプライベートであり、前記方法が、
レベル準同型暗号化(LHE)方式の暗号文cを暗号化入力として受信するステップと、
前記暗号文cにランダム性を準同型的に加算し、得られた暗号文bを前記クライアント(12)に送信するステップと、
前記暗号文bを復号および再暗号化することによって前記クライアント(12)によって取得されたリフレッシュ暗号文b'を受信するステップと、
前記前に加算されたランダム性を前記受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得するステップと、
前記リフレッシュ暗号文c'に対して前記少なくとも1つの計算演算を実行するステップと
を含む、デバイス。
【請求項10】
前記少なくとも1つの計算演算が、前記暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含む、請求項9に記載のデバイス。
【請求項11】
前記暗号文cにランダム性を準同型的に加算するステップが、
前記サーバ(14)によって、ランダム要素rを選択するステップと、
前記サーバ(14)によって、前記LHE方式
の暗号化演算HE.Encを使用して、前記クライアント(12)の公開鍵pk
cに基づいて、前記選択されたランダム要素rを暗号化するステップと、
得られた暗号文HE.Enc(pk
c,r)を前記暗号文cに準同型的に加算するステップと
を含む、請求項9または10に記載のデバイス。
【請求項12】
前記前に加算されたランダム性を前記受信された暗号文b'から準同型的に除去するステップが、
前記サーバ(14)によって、前記クライアント(12)の公開鍵pk
cに基づいて暗号化されたrの前記暗号化を前記クライアント(12)から受信された前記暗号文b'から準同型的に減算するステップ
を含む、請求項
9に記載のデバイス。
【請求項13】
コンピュータ実行可能命令を備えた非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が、クライアント-サーバ設定(10)においてサーバ(14)の1つまたは複数のプロセッサによって実行されると、
レベル準同型暗号化方式の暗号文cを暗号化入力として受信することと、
前記暗号文cにランダム性を準同型的に加算し、得られた暗号文b
をクライアント(12)に送信することと、
前記暗号文bを復号および再暗号化することによって前記クライアント(12)によって取得されたリフレッシュ暗号文b'を受信することと、
前記前に加算されたランダム性を前記受信されたリフレッシュ暗号文b'から準同型的に除去して、リフレッシュ暗号文c'を取得することと、
前記リフレッシュ暗号文c'に対して前記少なくとも1つの計算演算を実行することと
を含む演算をもたらす、非一時的コンピュータ可読記憶媒体。
【請求項14】
前記少なくとも1つの計算演算が、前記暗号化入力に対して人工ニューラルネットワーク(ANN)を評価することを含む、請求項13に記載の記憶媒体。
【請求項15】
前記LHE方式の暗号文において暗号化された固定小数点平文のスケール係数が、前記固定小数点平文の事前定義された量の最下位ビットを切り捨てる再スケーリング演算を適用することによって低減される、請求項13または14に記載の記憶媒体。
【国際調査報告】