IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クリプト ラボ インクの特許一覧 ▶ ソウル ナショナル ユニバーシティ アールアンドディービー ファウンデーションの特許一覧

特開2022-160985同型暗号文に対する非多項式演算を行う装置及び方法
<>
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図1
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図2
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図3
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図4
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図5
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図6
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図7
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図8
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図9
  • 特開-同型暗号文に対する非多項式演算を行う装置及び方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022160985
(43)【公開日】2022-10-20
(54)【発明の名称】同型暗号文に対する非多項式演算を行う装置及び方法
(51)【国際特許分類】
   G09C 1/00 20060101AFI20221013BHJP
   G06N 99/00 20190101ALI20221013BHJP
   G06F 17/17 20060101ALI20221013BHJP
【FI】
G09C1/00 620Z
G06N99/00 180
G06F17/17
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021174196
(22)【出願日】2021-10-25
(31)【優先権主張番号】10-2021-0045002
(32)【優先日】2021-04-07
(33)【優先権主張国・地域又は機関】KR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ブルートゥース
2.BLUETOOTH
(71)【出願人】
【識別番号】519389328
【氏名又は名称】クリプト ラボ インク
【氏名又は名称原語表記】CRYPTO LAB INC.
【住所又は居所原語表記】27-404, 1, Gwanak-ro, Gwanak-gu, Seoul, 08826, Republic of Korea
(71)【出願人】
【識別番号】519001383
【氏名又は名称】ソウル ナショナル ユニバーシティ アールアンドディービー ファウンデーション
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100137903
【弁理士】
【氏名又は名称】菅野 亨
(72)【発明者】
【氏名】チョン ジャン ヒー
(72)【発明者】
【氏名】パク ジャイ ヒュン
(72)【発明者】
【氏名】キム ウーテ
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB55
(57)【要約】      (修正有)
【課題】同型暗号文に対する非多項式演算の際に広いドメインを有する近似多項式を算出して行う装置及び方法を提供する。
【解決手段】暗号文演算方法は、同型暗号文に対する非多項式演算命令を入力されるステップと、非多項式演算に対応する近似多項式関数を算出するステップと、算出された多項式関数を用いて、同型暗号文に対する演算を行うステップと、演算された同型暗号文を出力するステップと、を含む。近似多項式関数は、第1範囲内で非多項式演算と予め設定された正確度を有する第1近似多項式関数を、第1範囲より広い第2範囲を有するように拡張された第2近似多項式関数である。
【選択図】図4
【特許請求の範囲】
【請求項1】
同型暗号文に対する非多項式演算命令を入力されるステップと、
前記非多項式演算に対応する近似多項式関数を算出するステップと、
前記算出された多項式関数を用いて、前記同型暗号文に対する演算を行うステップと、
前記演算された同型暗号文を出力するステップと
を含み、
前記近似多項式関数は、
第1範囲内で前記非多項式演算と予め設定された正確度を有する第1近似多項式関数を、前記第1範囲より広い第2範囲を有するように拡張された第2近似多項式関数である暗号文演算方法。
【請求項2】
前記近似多項式関数を算出するステップは、
前記第1近似多項式を決定するステップと、
前記第1範囲内では、前記第1範囲内での前記第1近似多項式の計算値に対応する値を有し、前記第1範囲以外の前記第2範囲では、前記第1範囲の端での前記第1近似多項式の計算値に対応する値を有する第2近似多項式を算出するステップと
を含むことを特徴とする請求項1に記載の暗号文演算方法。
【請求項3】
前記第2近似多項式を算出するステップは、
前記第1範囲及び前記第2範囲に基づいて繰り返し回数と基本関数とを決定し、基本関数と基本関数に対応するスケーリング基本関数とを前記決定された繰り返し回数分だけ繰り返して合成し、第2近似多項式を算出することを特徴とする請求項2に記載の暗号文演算方法。
【請求項4】
前記非多項式演算は、ロジスティック関数を含む演算であり、
前記ロジスティック関数に使用される前記第2範囲は、次の数式によって算出されることを特徴とし、
【数60】
ここで、Ca、d、tは第2範囲の上端値、aは学習率、dはデータの属性数、tはロジスティック回帰分析の学習回数である、請求項1に記載の暗号文演算方法。
【請求項5】
前記非多項式演算は、ロジスティック関数、hypertangent関数、erf関数、arctangent関数、ガウシアン関数、ReLU-n関数のうち、少なくとも一つの関数を利用する演算であることを特徴とする請求項1に記載の暗号文演算方法。
【請求項6】
演算装置において、
少なくとも一つのインストラクション(instruction)を保存するメモリと、
前記少なくとも一つのインストラクションを実行するプロセッサと
を含み、
前記プロセッサは、
前記少なくとも一つのインストラクションを実行することで、
同型暗号文に対する非多項式演算命令を入力されると、前記非多項式演算に対応する近似多項式関数を算出し、前記算出された多項式関数を用いて、前記同型暗号文に対する演算を行い、
前記近似多項式関数は、
第1範囲内で前記非多項式演算と予め設定された正確度を有する第1近似多項式関数を、前記第1範囲より広い第2範囲を有するように拡張された第2近似多項式関数である演算装置。
【請求項7】
前記プロセッサは、
前記第1近似多項式を決定し、前記第1範囲内では、前記第1範囲内での前記第1近似多項式の計算値に対応する値を有し、前記第1範囲以外の前記第2範囲では、前記第1範囲の端での前記第1近似多項式の計算値に対応する値を有する第2近似多項式を算出することを特徴とする請求項6に記載の演算装置。
【請求項8】
前記プロセッサは、
前記第1範囲及び前記第2範囲に基づいて繰り返し回数と基本関数とを決定し、基本関数と基本関数に対応するスケーリング基本関数とを前記決定された繰り返し回数分だけ繰り返して合成し、第2近似多項式を算出することを特徴とする請求項7に記載の演算装置。
【請求項9】
前記非多項式演算は、ロジスティック関数を含む演算であり、
前記ロジスティック関数に使用される前記第2範囲は、次の数式によって算出されることを特徴とし、
【数61】
ここで、Ca、d、tは第2範囲の上端値、aは学習率、dはデータの属性数、tはロジスティック回帰分析の学習回数である、請求項6に記載の演算装置。
【請求項10】
前記非多項式演算は、ロジスティック関数、hypertangent関数、erf関数、arctangent関数、ガウシアン関数、ReLU-n関数のうち、少なくとも一つの関数を利用する演算であることを特徴とする請求項6に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同型暗号文に対する非多項式演算の際に、広いドメインを有する近似多項式を算出して行うことができる装置及び方法に関する。
【背景技術】
【0002】
通信技術が発達しており、電子装置の普及が活発化するにつれ、電子装置間の通信セキュリティを保持するための取り組みが継続的に行われている。それにより、多くの通信環境においては、暗号化/復号化技術が使用されている。
【0003】
暗号化技術によって暗号化されたメッセージが相手に伝達されると、相手は、メッセージを利用するためには、復号化を行わなければならない。この場合、相手は、暗号化されたデータを復号化する過程でリソース及び時間の無駄が生じることになる。なお、相手が演算のために、一時的にメッセージを復号化した状態で、第三者のハッキングが行われる場合、メッセージが第三者に簡単に流出されてしまうという問題もあった。
【0004】
このような問題を解決するために、同型暗号化方法が研究されている。同型暗号(Homoprophic Encryption)は、最も有名な暗号体系の一つである。同型暗号は、復号過程なしに暗号化されたデータに対する足し算及び掛け算を行うことができる。よって、同型暗号を活用することで、クライアントは信頼することができないクラウドサーバに計算を委任することができ、暗号化された状態の入力データをサーバに伝送し、何の追加の質疑がない状態で、全ての計算を行うことができる。このように、同型暗号は、個人データに対する計算の委任構造を単純かつ安全に提供する。
【0005】
マシンラーニング方法が個人データを活用しており、個人情報関連の問題が絶えず提起されいるため、近来は、マシンラーニング(ML:Machine Learning)に同型暗号を利用しようとする色んな研究が進められている。マシンラーニングにおける個人情報保護のために、従来は情報損失の可能性、脆弱性発生の可能性などの限界があるが、同型暗号ベースのマシンラーニングソリューションは、このような限界を解決することができる。
【0006】
マシンラーニングアルゴリズム内の非多項式演算を算出するために、多くの同型暗号ベースソリューションは、非多項式をそれに対する近似多項式に代替して利用する。しかし、従来の近似化は、全実数に対して行われずに、限定された範囲のみで動作されるように行われている。
【0007】
しかし、従来のような近似化方式は、公共のデータセット及びハイパーパラメータに向いておらず、新たなデータセットの入力範囲の従来のドメイン範囲を逸脱する場合、当該モデルは潜在的に動作しないおそれがあるという問題があった。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】Cramer, Ronald, et al. ”SPD $$¥mathbb {Z} _ {2^ k} $$: Efficient MPC mod $$ 2^ k $$ for Dishonest Majority.”?Annual International Cryptology Conference. Springer, Cham, 2018.
【特許文献2】Orsini, Emmanuela, Nigel p. Smart, and Frederik Vercauteren. ”Overdrive2k: Efficient Secure MPC over $$¥mathbb {Z} _ {2^ k} $$ from Somewhat Homomorphic Encryption.”?Cryptographers’ Track at the RSA conference. Springer, Cham, 2020.
【特許文献3】Catalano, Dario, et al. ”Mon $$¥mathbb {Z} _ {2^{k}} $$ a: Fast Maliciously Secure Two Party Computation on $$¥mathbb {Z} _ {2^{k}} $$.”?IACR International Conference on Public-キー Cryptography. Springer, Cham, 2020.
【発明の概要】
【発明が解決しようとする課題】
【0009】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、同型暗号文に対する非多項式演算の際に広いドメインを有する近似多項式を算出して行うことができる装置及び方法を提供することにある。
【課題を解決するための手段】
【0010】
本開示は、以上のような目的を達成するためのものであり、同型暗号文に対する非多項式演算命令を入力されるステップと、前記非多項式演算に対応する近似多項式関数を算出するステップと、前記算出された多項式関数を用いて、前記同型暗号文に対する演算を行うステップと、前記演算された同型暗号文を出力するステップとを含み、前記近似多項式関数は、第1範囲内で前記非多項式演算と予め設定された正確度を有する第1近似多項式関数を、前記第1範囲より広い第2範囲を有するように拡張された第2近似多項式関数である。
【0011】
ここで、前記近似多項式関数を算出するステップは、前記第1近似多項式を決定するステップと、前記第1範囲内では、前記第1範囲内での前記第1近似多項式の計算値に対応する値を有し、前記第1範囲以外の前記第2範囲では、前記第1範囲の端での前記第1近似多項式の計算値に対応する値を有する第2近似多項式を算出するステップとを含んでよい。
【0012】
ここで、前記第2近似多項式を算出するステップは、前記第1範囲及び前記第2範囲に基づいて繰り返し回数と基本関数とを決定し、基本関数と基本関数に対応するスケーリング基本関数とを前記決定された繰り返し回数分だけ繰り返して合成し、第2近似多項式を算出してよい。
【0013】
一方、前記非多項式演算は、ロジスティック関数を含む演算であり、前記ロジスティック関数に使用される前記第2範囲は、次の数式によって算出されてよい。
【0014】
【数1】
ここで、Ca、d、tは第2範囲の上端値、aは学習率、dはデータの属性数、tはロジスティック回帰分析の学習回数である。
【0015】
一方、前記非多項式演算は、ロジスティック関数、hypertangent関数、erf関数、arctangent関数、ガウシアン関数、ReLU-n関数のうち、少なくとも一つの関数を利用する演算であってよい。
【0016】
一方、本開示の一実施形態に係る演算装置は、少なくとも一つのインストラクション(instruction)を保存するメモリと、前記少なくとも一つのインストラクションを実行するプロセッサとを含み、前記プロセッサは、前記少なくとも一つのインストラクションを実行することで、同型暗号文に対する非多項式演算命令を入力されると、前記非多項式演算に対応する近似多項式関数を算出し、前記算出された多項式関数を用いて、前記同型暗号文に対する演算を行い、前記近似多項式関数は、第1範囲内で前記非多項式演算と予め設定された正確度を有する第1近似多項式関数を、前記第1範囲より広い第2範囲を有するように拡張された第2近似多項式関数である。
【0017】
ここで、前記プロセッサは、前記第1近似多項式を決定し、前記第1範囲内では、前記第1範囲内での前記第1近似多項式の計算値に対応する値を有し、前記第1範囲以外の前記第2範囲では、前記第1範囲の端での前記第1近似多項式の計算値に対応する値を有する第2近似多項式を算出してよい。
【0018】
この場合、前記プロセッサは、前記第1範囲及び前記第2範囲に基づいて繰り返し回数と基本関数とを決定し、基本関数と基本関数に対応するスケーリング基本関数とを前記決定された繰り返し回数分だけ繰り返して合成し、第2近似多項式を算出してよい。
【0019】
一方、前記非多項式演算は、ロジスティック関数を含む演算であり、前記ロジスティック関数に使用される前記第2範囲は、次の数式によって算出されてよい。
【0020】
【数2】
ここで、Ca、d、tは第2範囲の上端値、aは学習率、dはデータの属性数、tはロジスティック回帰分析の学習回数である。
【0021】
一方、前記非多項式演算は、ロジスティック関数、hypertangent関数、erf関数、arctangent関数、ガウシアン関数、ReLU-n関数のうち、少なくとも一つの関数を利用する演算であってよい。
【0022】
以上のような本発明の多様な実施形態によると、以前の同型暗号ベースマシンラーニングアルゴリズムは、経験的に推定されたドメインのみで有効な多項式近似値で非多項式を代替している。それにより、データ集合や媒介変数が極度に大きくなると、動作ができなくなるという問題があった。一方で、本開示に係る方法は、マシンラーニングモデル内の各非多項式関数の可能な入力の範囲を計算し、各範囲内で信頼をもって動作可能な近似多項式を算出して使用するため、任意に与えられたデータ集合とパラメータで正常な動作が可能である。
【発明の効果】
【0023】
以上説明したように、本発明によれば、本開示の一実施形態に係る近似多項式生成方法は、簡単な機能の繰り返しで構成されており、近似ドメインが異常に大きくても有効であり、同型暗号に適している。
【図面の簡単な説明】
【0024】
図1】本発明の一実施形態に係るネットワークシステムの構造を説明するための図である。
図2】本発明の一実施形態に係る演算装置の構成を示すブロック図である。
図3】本発明の演算装置の演算動作を説明するための図である。
図4】本発明の一実施形態に係る暗号文演算方法を説明するためのフローチャートである。
図5】本発明の第1実施形態に係る範囲が拡張された多項式の例を示す図である。
図6】本発明の第2実施形態に係る範囲が拡張された多項式の例を示す図である。
図7】本発明の第1実施形態に係る多項式拡張アルゴリズムを説明するための図である。
図8】本発明の第2実施形態に係る多項式拡張アルゴリズムを説明するための図である。
図9】本発明の第3実施形態に係る多項式拡張アルゴリズムを説明するための図である。
図10】本発明の第4実施形態に係る多項式拡張アルゴリズムを説明するための図である。
【発明を実施するための形態】
【0025】
以下では、添付図面を参照し、本発明について詳細に説明する。本発明において、処理される情報(データ)伝送過程は、必要に応じて、暗号化/復号化が適用されてよく、本発明及び特許請求範囲で情報(データ)伝送過程を説明する表現は、格別に言及されなくても、いずれも暗号化/復号化する場合も含むものとして解釈されるべきである。本発明において、「AからBに伝送(伝達)」又は「AがBから受信」のような表現は、中間に他の媒介体が含まれて伝送(伝達)又は受信されることも含み、必ずしもAからBまで直接伝送(伝達)又は受信されるものだけを表現するわけではない。
【0026】
本発明の説明において、各ステップの順番は、先行段階が論理的及び時間的に必ず後続段階より前に行われなければならない場合でなければ、各段階の順番は非制限的に理解されるべきである。即ち、上記のような例外的な場合を除いては、後続段階として説明された過程が先行段階として説明された過程より前に行われるとしても、開示の本質には影響がなく、権利範囲も段階の順番によらず定義されるべきである。そして、本明細書において、「A又はB」との記載は、AとBとのいずれか一方を選択的に指すだけでなく、AとBとのいずれもを含むことも意味するものとして定義される。なお、本発明で「含む」との用語は、含むものとして並べ立てられた要素の他に、他の構成要素を更に含むことも包括する意味を有する。
【0027】
本開示においては、本発明の説明に必要な必須の構成要素のみを説明し、本発明の本質と関係のない構成要素については言及しないこととする。そして、言及される構成要素のみを含む排他的な意味として解釈されてはならず、他の構成要素も含むことができる非排他的な意味として解釈されるべきである。
【0028】
そして、本開示において、「値」とは、スカラー値だけでなく、ベクトルも含む概念で定義される。
【0029】
後述する本発明の各段階の数学的な演算及び算出は、当該演算又は算出を行うために、公知となっているコーディング方法及び/又は本開示に好適に考案されたコーディングによってコンピュータ演算で実現されてよい。
【0030】
以下で説明する具体的な数式は、可能な限り、複数の代案のうち、例示的に説明されるものであり、本発明の権利範囲が本発明に言及された数式に制限されるものとして解釈されてはならない。
【0031】
説明の便宜上、本発明では、次のように表記を定めることにする。
【0032】
a←D:分布(D)に応じて、元素(a)を選択する
s1、s2∈R:S1、S2のそれぞれは、R集合に属する元素である
mod(q):q元素でモジュール(module)演算
【0033】
【数3】
:内部値を四捨五入する
以下では、添付図面を用いて、本発明の多様な実施形態について具体的に説明する。
【0034】
図1は、本発明の一実施形態に係るネットワークシステムの構造を説明するための図である。
【0035】
図1を参照すると、ネットワークシステムは、複数の電子装置100-1~100-n、第1サーバ装置200、第2サーバ装置300を含んでよく、各構成は、ネットワーク10を介して相互接続されてよい。
【0036】
ネットワーク10は、多様な形態の有・無線通信ネットワーク、放送通信ネットワーク、光通信ネットワーク、クラウドネットワークなどで実現されてよく、各装置は、別途の媒介体なしに、Wi-Fi、ブルートゥース、NFC(Near Field Communication)などのような方式で接続されてよい。
【0037】
図1においては、電子装置が、複数100-1~100-nであるとして示しているが、必ずしも複数の電子装置が使用されなければならないわけではなく、1つの装置が使用されてよい。一例として、電子装置100-1~100-nは、スマートフォン、タブレット、ゲームプレイヤ、パソコン、ラップトップ、ホームサーバ、キオスク端末などのような多様な装置で実現されてよく、その他に、IoT機能付きの家電製品で実現されてもよい。
【0038】
ユーザは、自らが使用する電子装置100-1~100-nを介して多様な情報を入力してよい。入力された情報は、電子装置100-1~100-nそのものに保存されてよいが、保存容量及びセキュリティなどを理由に、外部装置に伝送されて保存されてよい。図1において、第1サーバ装置200は、このような情報を保存する役割を担い、第2サーバ装置300は、第1サーバ装置200に保存された情報の一部又は全部を用いる役割を担ってよい。
【0039】
各電子装置100-1~100-nは、入力された情報を同型暗号化し、同型暗号文を第1サーバ装置200に伝送してよい。
【0040】
各電子装置100-1~100-nは、同型暗号化を行う過程で算出される暗号化ノイズ、即ち、エラーを暗号文に含めてよい。具体的には、各電子装置100-1~100-nから生成する同型暗号文は、以後、秘密鍵を用いて復号化した際、メッセージ及びエラー値を含む結果値が復元される形で生成されてよい。
【0041】
一例として、電子装置100-1~100-nから生成される同型暗号文は、秘密鍵を用いて復号化した際、次のような性質を満たす形で生成されてよい。
【0042】
【数4】
ここで、<、>は、内在的演算(usual inner product)、ctは暗号文、skは秘密鍵、Mは平文メッセージ、eは暗号化エラー値、mod qは暗号文のモデュラス(Modulus)を意味する。qは、スケーリングファクタ(scaling factor)(Δ)がメッセージに掛け算された結果値Mより大きい値に選択されなければならない。エラー値eの絶対値がMに比べて十分に小さい値である場合、暗号文の復号化値M+eは、有効数字演算で本来のメッセージを同じ精度に代替できる値である。復号化されたデータのうち、エラーは最下位ビット(LSB)側に配置され、Mは、最下位から2番目のビット側に配置されてよい。
【0043】
メッセージの大きさが小さすぎるか大きすぎる場合、スケーリングファクタを用いて、その大きさを調節することもできる。スケーリングファクタを使用するようになると、整数のメッセージだけでなく、実数のメッセージまで暗号化できるようになるため、活用性が大幅に増大することができる。なお、スケーリングファクタを用いて、メッセージの大きさを調節することで、演算が行われてからの暗号文でメッセージの存在する領域、即ち、有効領域の大きさも調節されてよい。
【0044】
実施形態によって、暗号文のモジュラスqは、多様な形態に設定されて使用されてよい。一例として、暗号文のモジュラスは、スケーリングファクタΔのべき乗q=ΔLの形態に設定されてよい。Δが2なら、q=210のような値に設定されてよい。
【0045】
第1サーバ装置200は、受信された同型暗号文を復号化せずに、暗号文の状態で保存してよい。
【0046】
第2サーバ装置300は、同型暗号文に対する特定の処理結果を第1サーバ装置200にリクエストしてよい。第1サーバ装置200は、第2サーバ装置300のリクエストに応じて特定演算を行った後、その結果を第2サーバ装置300に伝送してよい。
【0047】
一例として、2つの電子装置100-1、100-2の伝送した暗号文ct1、ct2が、第1サーバ装置200に保存された場合、第2サーバ装置300は、両電子装置100-1、100-2から提供された情報を合算した値を、第1サーバ装置200にリクエストしてよい。第1サーバ装置200は、リクエストに応じて、2つの暗号文を合算する演算を行った後、その結果値(ct1+ct2)を第2サーバ装置300に伝送してよい。
【0048】
同型暗号文の性質上、第1サーバ装置200は復号化を行っていない状態で演算を行ってよく、その結果値も暗号文の形態になる。本発明では、演算によって獲得された結果値を演算結果暗号文と称する。
【0049】
第1サーバ装置200は、演算結果暗号文を第2サーバ装置300に伝送してよい。第2サーバ装置300は、受信された演算結果暗号文を復号化し、各同型暗号文に含まれたデータの演算結果値を獲得してよい。
【0050】
第1サーバ装置200は、ユーザのリクエストに応じて、演算を複数回行ってよい。そのとき、第1サーバ装置200は、足し算、引き算及び掛け算のみで構成される演算だけでなく、ロジスティック関数などマシンラーニングに使用される非多項式演算も行ってよい。このような場合、第1サーバ装置200は、非多項式演算に対応する近似多項式関数を算出し、算出された近似多項式関数を用いて非多項式演算を行うことができる。ここで、算出される近似多項式関数は、同型暗号から算出可能な四則計算で構成される多項式である。具体的な非多項式近似動作については、図4を参照して説明する。
【0051】
このように、第1サーバ装置200は、演算動作を行うことができるとのことから、演算装置と称してよい。
【0052】
一方、図1においては、第1電子装置及び第2電子装置で暗号化を行い、第2サーバ装置が復号化を行う場合を示しているが、それに限らない。
【0053】
図2は、本発明の一実施形態に係る演算装置の構成を示すブロック図である。
【0054】
具体的に、図1のシステムにおいて、第1電子装置、第2電子装置などのように同型暗号化を行う装置、第1サーバ装置などのように同型暗号文を演算する装置、第2サーバ装置などのように同型暗号文を復号する装置などを演算装置と称してよい。このような演算装置は、PC(Personal computer)、ノートパソコン、スマートフォン、タブレット、サーバなど多様な装置であってよい。
【0055】
図2を参照すると、演算装置400は、通信装置410、メモリ420、ディスプレイ430、操作入力装置440及びプロセッサ450を含んでよい。
【0056】
通信装置410は、演算装置400を外部装置(図示せず)と接続するために形成され、ローカル・エリア・ネットワーク(LAN:Local Area Network)及びインターネット網を介して、外部装置に接続される形態だけでなく、USB(Universal Serial Bus)ポート又は無線通信(例えば、WiFi 802.11a/b/g/n、NFC、Bluetooth)ポートを介して接続される形態も可能である。このような通信装置410は、送受信部(transceiver)と称してよい。
【0057】
通信装置410は、公開鍵を外部装置から受信してよく、演算装置400自ら生成した公開鍵を外部装置に伝送してよい。
【0058】
そして、通信装置410は、外部装置からメッセージを受信してよく、生成した同型暗号文を外部装置に送信してよい。
【0059】
なお、通信装置410は、暗号文の生成に必要な各種パラメータを外部装置から受信してよい。一方、実現時は、各種パラメータは、後述する操作入力装置440を介してユーザから直接入力されてよい。
【0060】
なお、通信装置410は、外部装置から同型暗号文に対する演算をリクエストされてよく、それにより、計算された結果を外部装置に伝送してよい。ここで、リクエストされた演算は、足し算、引き算、掛け算のような演算であってよく、非多項式演算である比較演算であってよい。
【0061】
メモリ420には、演算装置400に関する少なくとも1つのインストラクション(instruction)が保存されてよい。具体的に、メモリ420には、本開示の多様な実施形態によって、演算装置400が動作するための各種プログラム(又は、ソフトウェア)が保存されてよい。
【0062】
このようなメモリ420は、RAMやROM、フラッシュメモリ、HDD、外付けメモリ、メモリカードなどのような多様な形態で実現されてよく、何れかに限定されるものではない。
【0063】
メモリ420は、暗号化するメッセージを保存してよい。ここで、メッセージとは、ユーザが引用する各種信用情報、個人情報などであってよく、演算装置400で使用される位置情報、インターネット使用時間情報など、使用履歴などに関連する情報であってよい。
【0064】
そして、メモリ420は、公開鍵を保存してよく、演算装置400が直接公開鍵を生成した装置である場合、秘密鍵だけでなく、公開鍵及び秘密鍵の生成に必要な各種パラメータを保存してよい。
【0065】
そして、メモリ420は、後述する過程で生成された同型暗号文を保存してよい。そして、メモリ420は、外部装置から伝送した同型暗号文を保存してよい。なお、メモリ420は、後述する演算過程における結果物である演算結果暗号文を保存してよい。
【0066】
そして、メモリ420は、マシンラーニングに必要な学習モデルを保存してよい。更に、メモリ420は、当該学習モデルで使用される非多項式演算関数及びそれに対する近似多項式(本発明によって範囲の拡張された多項式関数又は拡張前の多項式関数)を保存してよい。
【0067】
ディスプレイ430は、演算装置400のサポートする機能を選択されるためのユーザインターフェースウィンドウを表示する。具体的に、ディスプレイ430は、演算装置400の提供する各種機能を選択されるためのユーザインターフェースウィンドウを表示してよい。このようなディスプレイ430は、LCD(liquid crystal display)、OLED(Organic Light Emitting Diodes)などのようなモニタであってよく、後述する操作入力装置440の機能を同時に実行することができるタッチスクリーンで実現されてよい。
【0068】
ディスプレイ430は、秘密鍵及び公開鍵の生成に必要なパラメータの入力をリクエストするメッセージを表示してよい。そして、ディスプレイ430は、暗号化対象がメッセージを選択するメッセージを表示してよい。一方、実現の際は、暗号化対象は、ユーザが直接選択してよく、自動的に選択されてよい。即ち、暗号化の必要な個人情報などは、ユーザが直接メッセージを選択しなくても、自動的に設定されてよい。
【0069】
操作入力装置440は、ユーザから演算装置400の機能選択及び当該機能に対する制御命令を入力されてよい。具体的に、操作入力装置440は、ユーザから秘密鍵及び公開鍵の生成に必要なパラメータを入力されてよい。なお、操作入力装置440は、ユーザから暗号化されるメッセージを設定されてよい。
【0070】
プロセッサ450は、演算装置400の動作全般を制御する。具体的に、プロセッサ450は、メモリ420に保存された少なくとも1つのインストラクションを実行することで、演算装置400の動作を全般的に制御してよい。このようなプロセッサ450は、CPU(central processing unit)、ASIC(application-specific integrated circuit)のような単一装置で構成されてよく、CPU、GPU(Graphics Processing Unit)などの複数の装置で構成されてよい。
【0071】
プロセッサ450は、伝送しようとするメッセージが入力されると、メモリ420に保存してよい。そして、プロセッサ450は、メモリ420に保存された各種設定値及びプログラムを用いて、メッセージを同型暗号化してよい。この場合、公開鍵が使用されてよい。
【0072】
プロセッサ450は、暗号化を行うのに必要な公開鍵を自ら生成して使用してよく、外部装置から受信して使用してよい。一例として、復号化を行う第2サーバ装置300が公開鍵を他の装置に配信してよい。
【0073】
自ら鍵を生成する場合、プロセッサ450は、Ring-LWE技法を用いて公開鍵を生成してよい。具体的に説明すると、プロセッサ450は、まず、各種パラメータ及びリングを設定し、メモリ420に保存してよい。パラメータの例としては、平文メッセージビットの長さ、公開鍵及び秘密鍵の大きさなどがあってよい。
【0074】
リングは、次のような数式で表現されてよい。
【0075】
【数5】
ここで、Rはリング、Zqは係数、f(x)はn次多項式である。
【0076】
リング(Ring)とは、予め設定された係数を有する多項式の集合であって、元素の間で足し算と掛け算とが定義されており、足し算と掛け算とに対しては閉じている集合を意味する。このようなリングは、環と称してよい。
【0077】
一例として、リングは、係数がZqであるn次多項式の集合を意味する。具体的には、nがΦ(n)である際、N次円分多項式(n-th cyclotomic polynomial)を意味する。(f(x))とは、f(x)として生成されるZq[x]のアイディール(ideal)を示す。Euler totient関数Φ(N)とは、Nと互いに素であり、Nより小さい自然数の数を意味する。ΦN(x)をN次円分多項式と定義すると、リングは次のような数式3でも表されてよい。
【0078】
【数6】
一方、上述の数式3のリングは、平文空間で複素数を有する。一方、同型暗号文に対する演算速度を向上するために、上述のリングの集合のうち、平文空間が実数である集合のみを利用してよい。
【0079】
このようなリングが設定されると、プロセッサ450はリングから秘密鍵(sk)、公開鍵(pk)を算出してよい。このような算出動作は、別の演算装置から生成して当該演算装置400に提供されてよい。
【0080】
そして、プロセッサ450は、メッセージに対する同型暗号文を生成してよい。具体的に、プロセッサ450は、メッセージに対して、先に生成された公開鍵を適用して同型暗号文を生成してよい。このとき、プロセッサ450は、暗号文の長さをスケーリングファクタの大きさに対応するように生成してよい。
【0081】
そして、プロセッサ450は、同型暗号文が生成されると、メモリ420に保存するか、ユーザのリクエスト又は予め設定されたデフォルトコマンドに応じて、同型暗号文を他の装置に伝送するように通信装置410を制御してよい。
【0082】
一方、本発明の一実施形態によると、パッキング(Packing)が行われてよい。同型暗号化でパッキングを利用するようになると、複数のメッセージを1つの暗号文で暗号化することが可能になる。この場合、演算装置400で各暗号文の間の演算を行うと、結果的に複数のメッセージに対する演算が並列的に処理されるため、演算の負担が大幅に軽減する。
【0083】
具体的に、プロセッサ450は、メッセージが複数のメッセージベクトルで行われる場合、複数のメッセージベクトルを並列的に暗号化できる形態の多項式に変換した後、その多項式にスケーリングファクタを乗算し、公開鍵を用いて同型暗号化してよい。それにより、複数のメッセージベクトルをパッキングした暗号文を生成してよい。
【0084】
そして、プロセッサ450は、同型暗号文に対する復号が必要な場合、同型暗号文に秘密鍵を適用して多項式形態の復号文を生成し、多項式形態の復号文をデコードしてメッセージを生成してよい。このとき、生成したメッセージは、上述した数式1で言及したように、エラーを含んでよい。
【0085】
そして、プロセッサ450は、暗号文に対する演算を行ってよい。具体的に、プロセッサ450は、同型暗号文に対して暗号化された状態を維持した状態で、足し算、引き算又は掛け算などの演算を行ってよい。
【0086】
なお、プロセッサ450は、暗号文に対しても、足し算、引き算又は掛け算以外の演算を有する多項式に対する演算を行ってよい。具体的に、同型暗号文は、足し算、引き算、掛け算に対しては閉じているが、その他の演算に対しては閉じていない。
【0087】
従って、足し算、引き算、掛け算以外の演算に対しては、上述の3つの演算で表現される近似演算式を用いなければならない。このような点において、プロセッサ450は、足し算、引き算又は掛け算以外の演算に対しては、リクエストされる演算に対応する近似関数を用いて演算を行ってよい。
【0088】
そのために、従来広く知られる近似関数(例えば、Taylor、Least square、minimax)を用いてよいが、従来の近似関数は、狭い範囲を有することから、マシンラーニングに適することが困難という不都合があった。
【0089】
このような問題点を解決するために、本開示では、第1範囲内で予め設定された正確度を有する第1近似関数を算出(又は、算定)し、当該第1近似関数を第1範囲より広い第2範囲に拡張した第2近似関数を算出して利用する。このように、従来より広い範囲を有する近似関数を利用することで、従来の第1近似関数の良い特徴を保持すると同時に、マシンラーニングに適用することが可能である。具体的な近似関数算出方法については、図5ないし図11を参照して後述する。
【0090】
そして、演算装置400は演算が完了すると、演算結果データから有効領域のデータを検出してよい。具体的に、演算装置400は、演算結果データをラウンディング処理を行って有効領域のデータを検出してよい。ラウンディング処理とは、暗号化された状態でメッセージの四捨五入(round-off)を行うことを意味し、他には、リスケーリング(rescaling)と称してよい。
【0091】
なお、演算装置400は、演算結果暗号文内の近似メッセージの割合がしきい値を超過すると、暗号文に対するリブート動作を行ってよい。
【0092】
図3は、本発明の演算装置の演算動作を説明するための図である。
【0093】
図3を参照すると、各同型暗号文10、20は、近似メッセージ領域11、21をそれぞれ含んでよい。近似メッセージ領域11、21には、メッセージ及びエラー(m1+e1、m2+e2)が共に含まれている。
【0094】
演算装置400は、両同型暗号文10、20を入力値とし、特定の演算を行ってよい。このような演算は、足し算、引き算、掛け算で構成される多項式演算であってよく、近似関数の利用が必要な多項式演算又は非多項式演算であってよい。
【0095】
非多項式演算には、最大値算出、最小値算出、大きさの比較などのような比較演算又はマシンラーニングでは、ロジスティック関数、hypertangent関数、erf関数などがあってよい。以下では、マシンラーニングで最も多く使用されるロジスティック関数に対する近似関数の算出動作について説明するが、以下の動作は、ロジスティック関数だけでなく、別の非多項式演算にも適用されてよい。
【0096】
上述しているように、非多項式演算を同型暗号に適用するためには、非多項式に対する多項式近似が求められる。しかし、非多項式の入力が同型暗号によって隠ぺいされる場合、近似値に対するドメインは、入力の全ての候補を超過できるほどに大きくならなければなれない。
【0097】
しかし、従来の公知の多項式近似方法は、大きいドメインに適用される際、同型暗号によって算出されるのに限界があった。例えば、[-R、R]範囲上のロジスティック関数の最小近似値を算出するためには、同型掛け算が
【0098】
【数7】
個が求められる。なお、同型暗号の媒介変数は、算出中に大きい中間値を有するようになり、実用的ではない。
【0099】
よって、本発明では、広いドメインを有する効率的な多項式近似方法を説明する。本発明に係る方法を利用することで、同型掛け算が0(log R)の数だけで、[-R、R]上のロジスティック関数を近似してよい。なお、算出の中間値は小さい値を保持するため、合理的な同型暗号パラメータを使用してよい。
【0100】
一方、上述の演算による暗号文30は、各近似メッセージ間の演算結果(m3+e3)が盛り込まれた近似メッセージ領域31を含んでよい。もし、平文空間32がなくなるか、限界値より小さくなった場合、演算装置400は、リブート動作を行ってよい。
【0101】
図4、本発明の一実施形態に係る暗号文演算方法を説明するためのフローチャートである。
【0102】
図4を参照すると、同型暗号文に対する非多項式演算命令を受信してよい(S410)。このような命令は、外部装置から入力されてよく、演算装置で直接入力されてよい。そして、このような非多項式演算は、ロジスティック関数を用いた演算又はロジスティック回帰分析などであってよい。
【0103】
そして、非多項式演算に対応する近似多項式関数を算出する(S420)。具体的に、第1範囲内で非多項式演算と予め設定された正確度を有する第1近似多項式関数を決定し、第1範囲内では、第1範囲内における第1近似多項式の計算値に対応する値を有し、第1範囲以外の第2範囲では、第1範囲の端における第1近似多項式の計算値に対応する値を有する第2近似多項式を算出してよい。
【0104】
そして、算出された多項式関数を用いて同型暗号文に対する演算を行う(S430)。
【0105】
そして、演算された同型暗号文を出力してよい(S440)。具体的に、演算をリクエストした装置に演算結果を出力してよい。もし、演算を別の装置にリクエストしたものなら、演算結果を別の装置に伝送してよい。
【0106】
以上のように、本発明に係る暗号文演算方法は、広いドメインを有する近似多項式を用いて演算を行うことから、入力の全ての候補を知ることが困難なマシンラーニングで同型暗号文を演算処理することを可能とする。
【0107】
以下では、より詳細に本発明に係る近似多項式算出動作について説明する。
【0108】
マシンラーニングに同型暗号を適用するためには、非多項式に対する近似化が求められる。しかし、従来の近似化は、狭い範囲(即ち、狭いドメイン又は狭い定義する項)を有するため、学習の際に使用したデータセットと異なる範囲のデータを利用する場合に、学習モデルが動作しない潜在的な問題点がある。
【0109】
このようなことを解決するために、広い範囲を有するものとして知られる多項式近似方式を利用することができる。しかし、広い範囲を有する公知の多項式近似は、同型暗号で計算されにくい特徴がある。具体的に、近似値区間が広くなると、近似多項式の次数も大きくなる。例えば、固定上限ノームエラー(fixed supremum norm error)eを有するように、[-R、R]範囲のロジスティック関数σ(x)=1=(1+exp(-x))の近似のためには、0(R)次数の多項式が求められる。
【0110】
特に、多項式演算過程で掛け算の数を最小化するPaterson-Stockmeyer方法を使用するとしても、近似値を算出するためには、同型掛け算は
【0111】
【数8】
個求められる。
【0112】
なお、近似多項式の次数が大きいと、算出に大きい中間値が誘導される。例えば、上限ノームエラーが0.05で[-1000;1000]範囲でロジスティック関数に対するminnimax近似多項式は593次数を有する。次数dを有する多項式に対するPaterson-Stockmeyer方法を使用し、算出の間に
【0113】
【数9】
を計算しても、算出に100025演算が求められる。なお、潜在的な巨大な中間値を全て含めるためには、同型暗号の平文空間は十分に大きくなければならず、それは、同型暗号パラメータを伴うことになる。
【0114】
このように、従来知られている広い範囲の多項式近似は、高い計算費用と非常に大きい同型暗号パラメータが求められ、マシンラーニングに適用することに限界があった。
【0115】
このような問題を解決するために、本発明では、ドメイン拡張機能(DEF:domain extension functions)を利用する。ここで、ドメイン拡張機能は、狭い第1範囲からの値を補正し、2次領域から第1インターバルの最も近いポイントに各アウトラインを持ってくる機能である。具体的に、第1範囲では、当該範囲における正常に動作する第1近似多項式の計算値に対応する値を出力し、第1範囲より大きい第2範囲では、第1範囲の端における第1近似多項式の計算値に対応する値を有する第2近似多項式を算出する機能である。
【0116】
このように、従来の近似多項式方法とドメイン拡張機能とを組み合わせると、1次ドメインの良い特徴値を保持しつつも、それと同時に2次ドメインからアウトラインを合理的に管理することができる。ドメイン拡張機能は、特に、目標比多項式関数が1次間隔に特異で、第2間隔に平らな傾向がある場合に有利である。ロジスティック関数、hypertangent関数、erf関数、arctangent関数、ガウシアン関数、ReLU-n関数が、このような特徴を有する。以下では、説明を容易にするために、ロジスティック関数及びロジスティック回帰分析に焦点を合わせて説明する。
【0117】
本発明に係る方法は、同型掛け算にo(log R)の数のみを使用し、minimax多項式近似は、
【0118】
【数10】
個の同型掛け算のみが求められる。なお、[-1000;1000]範囲を有するロジスティック関数を近似するうえで、本方法に係る中間値は10003より小さい。それは、従来の近似方式に必要な中間値である100025より格段に合理的である。
【0119】
最後に、上述のドメイン拡張機能を使用し、特定のデータ又はハイパーパラメータに偏らないロジスティック回帰分析のための新たな同型暗号ベースの方法を説明する。まず、ロジスティック回帰分析モデルで各ロジスティック関数の多項式近似値に対する間隔を計算する。たとえ推定された間隔が広すぎたとしても、ドメイン拡張機能は、同型暗号で効率的に算出ができるようにすることができる。
【0120】
まず、以下では、ロジスティック回帰に関する内容について先に説明する。
【0121】
ロジスティック回帰は、二項分類問題を解決するものとして広く知られるモデルである。ロジスティック回帰模型は、訓練された加重値Wとバイアスbで構成され、各基準点xに対し、特定のクラス「1」に分類される確率
【0122】
【数11】
を与える。以下では、2つのクラスを「1」、「-1」に定義している。なお、各基準点xを値1がある追加特徴(WTx+b=(WT、b)(x、1) as WTx)と組み合わせている。
【0123】
加重値及びロジスティック回帰モデルのバイアス(b)を学習するために、以下では、次のような費用関数を利用するものとして仮定する。
【0124】
【数12】
ここで、xは学習データ(又は、学習資料(datum))、Wは加重値、yはクラス、nはデータ数である。
【0125】
学習過程は、与えられた学習データに対し、費用関数を最小化することで、加重値及びバイアスを探索するものである。サブパラメータ、学習率(α)は加重値及びバイアスに対し、次のようにアップデートされてよい。
【0126】
【数13】
ここで、Wは加重値、α学習率(learning rate)、yはクラス、xは学習データ、nはデータ数である。
【0127】
以下では、多項式近似方式について説明する。以下では、シグモイド関数を特定して説明するが、本発明に係る近似化方式は、シグモイド関数の他に別の非多項式関数にも適用されてよい。
<ドメイン拡張関数>
本発明に係るドメイン拡張関数Dr(x)を次のように定義する。
【0128】
【数14】
ここで、Dr(x)はドメイン拡張関数、xは入力値、rは定数である。
【0129】
f(x)=Dr(x)のように、定数rが存在すると、関数F(x)がr-ドメイン拡張関数(r-DEF)と称する。もし、必要でなければ、rを省略してよい。
【0130】
r>0のP:[-r、r]→Rが与えられると仮定すると、r-ドメイン拡張関数でPを構成することで、次のように、関数ドメインを拡張することができる。
【0131】
【数15】
元来、ドメイン[-r、r]から入力された場合、同一の機能を行う。よって、ドメイン拡張関数が実際に与えられた関数のドメインを拡張すると言える。
<多項式DEF>
152同型暗号アルゴリズムにドメイン拡張関数を活用するために、多項式近似を考慮する。特に、以下の動作は、ドメイン拡張関数の中核属性を満たす多項式を求めることを目標とする。r-ドメイン拡張関数(Dr(x))の次の属性によって、関数の定義域を拡張することができる。
【0132】
Prop I.Dr(x)=x on[-r、r]
【0133】
【数16】
Prop III.The image of Dr(x) is bounded by [-r、r]
与えられた関数P:[-r、r]→Rの場合、Prop IIIを使用すれば、Dr(x)とともにP(x)を適切に合成することができる。Prop Iは、[-r、r]でP(x)を保持するための構成を作り、Prop IIは最も近い境界で値を模倣するように、アウトライン入力を合理的に管理することができるようにする。
【0134】
多項式の場合、上記の全ての中核属性を満たすことは困難である。代案として、次のように、各属性の概略的なバージョンを利用することができる。与えられた多項式Pr及び区間[-R、R]の場合、次のような属性を考慮することができる。
【0135】
【数17】
【0136】
【数18】
Prop III’.The image of Pr(x) on [-R、R] is bounded by [-r、r]
このような属性は、Pr(x)を少ない誤りとともに関数の定義域を[-r、r]から[-R、R]に拡張することができる。
【0137】
では、一部rに対して修正されたProp I’、II’、III’を満たす多項式で、[-R、R]上のr-多項式ドメイン拡張機能(r-polyDEF)を定義する。必要でない場合、rは省略されてよい。
【0138】
このような多項式ドメイン拡張関数は、[-r、r]範囲内の値は保持し、[-r、r]範囲外は[-r、r]の最も近い点から持ってくる。多項式ドメイン拡張関数は、潜在的な少ないエラーを有する類似する特性を有する。よって、[-r、r]上のf(x)関数を[-R、R]上の多項式ドメイン拡張関数で構成すると、[-r、r]上のf(x)の特徴は保持され、[-R、R]\[-r、r]から入力は、合理的に管理されてよい。
<Iterative Construction of polyDEF.>
以下では、基本関数B(x)が[-L、L]上の1-polyDEFとし、L>1が拡張比率であるとする。
【0139】
各量の定数n>0に対するLnにB(x)がスケーリングされた関数であるBn(x)
【0140】
【数19】
を考慮する。
【0141】
各nに対し、Fn(x)=B0°B1°…°Bn-1(x)とし、Fn(x)は
【0142】
【数20】
と同様であれば、[-Ln、Ln]上でProp I’、II’、III’をFn(x)を満たすか誘導して確認することができる。よって、Fnは、[-Ln、Ln]の1-polyDEFである。
【0143】
r>0に対する、[-Ln、Ln]から生成された1-polyDEFのサイズを調整し、[-rLn、rLn]上の1-polyDEFを得ることができる。正確には、次のような数式8(Fn、r)を算出してよい。
【0144】
【数21】
<例示1>
【0145】
【数22】
が[-1.5、1.5]範囲の1-polyDEFであるため、拡張比率が1.5である基本関数と見なすことができる。上記の構造を使用することで、B(x)でFn、r(x)を生成することができ、生成されたFn、r(x)は[-1.5nr、1.5nr]のr-polyDEFになってよい。
【0146】
図5は、本発明の第1実施形態によって拡張された多項式の例を示す図である。
【0147】
図5を参照すると、基本関数(Bx)は、
【0148】
【数23】
を使用した1-polyDEFの構成である。そして、B1(x)は1次スケーリングされた関数であり、B2(x)は基本関数に2次スケーリングされた関数である。このような基本関数と第1スケーリング関数とを合成し、その後、第1スケーリング関数と第2スケーリング関数とを合成し、範囲の拡張された多項式を生成することができる。最終的に生成されたF3(x)は[-1.53、1.53]上の1-polyDEFである。このような近似多項式生成動作に対する具体的なアルゴリズムは、図8に関連して再度説明する。
【0149】
以下では、シグモイド関数の範囲を拡張する場合を説明する。
【0150】
シグモイド関数は、S字状を有する関数である。本発明において、説明を容易にするために、ロジスティック関数σ(x)=1/(1+exp(-x))を重点的に説明するが、tanf関数、erf関数などのような別のシグモイド関数にも適用されてよい。
【0151】
多項式ドメイン拡張関数は、σ(x)の多項式近似の有効なドメインを拡張してよい。以下では、[-r、r]間隔でσ(x)に対する多項式近似P(x)が与えられたと仮定する。そして、
【0152】
【数24】
になるように、rが十分に大きいと仮定する。すると、拡張比率Lを有するr-polyDEF Fn、rはP(x)のドメインは、[-Lnr、Lnr]に拡張されてよい。
【0153】
【数25】
よって、Fn、r(x)を効率的に評価した後は、狭いドメイン[-r、r]上の近似多項式を広い区間[-Lnr、Lnr]上のロジスティック関数で算出してよい。
【0154】
例えば、[-r、r]範囲を有するシグモイド関数の近似多項式をP(x)とすると、上述の例1のように、近似ドメイン[-r、r]を[-1.5nr、1.5nr]に拡張することができる。このような動作をまとめたアルゴリズム2は、図8を参照して詳細に記載している。このようなアルゴリズム2を利用すると、従来の狭い範囲で正常に動作する近似多項式をより広い範囲で動作する近似多項式に拡張してよい。以下では、従来の多項式の範囲を拡張するとの表現を使用しているが、新たな多項式を生成すると表現してよい。
【0155】
以下では、例示1のpolyDEFがロジスティック関数の多項式近似のドメインを拡張する例に対する証明について説明する。
<証明1>
r≧12であり、sup-error εを有し、[-r、r]範囲を有するσ(x)の近似多項式P(x)に対し、アルゴリズム2はε+0.02未満の誤差で[-1.5nr、1.5nr]上でσ(x)を均一に近似してよい。
【0156】
Proof、x∈[0、1.5nr]が与えられたと仮定すると、各mに対してxm=Bm-n °Bm-n+1 °…°Bn(x)にしてよい。そして、
【0157】
【数26】
よって、x≧5であれば、|σ(x)-σ(Fn、r(x))|≦|1-σ(Fn、12(5))|≦0.02である。
【0158】
そして、2.5≦x≦5であれば、
【0159】
【数27】
そして、0≦x≦2.5
【0160】
【数28】
よって、各x∈[0、1.5nr]に対し、
|σ(x)-P°σ(Fn、r(x))|≦|σ(x)-σ(Fn、r(x))|-|σ°Fn,r(x)-P°Fn、r(x)|≦ε+0.02 ・・・数式10
類似するように、x∈[-1.5nr、0]に対し、同様の結果を保持する。
【0161】
このようなドメイン拡張関数は、一部の定数c1、c2に対し、
【0162】
【数29】
になるように、連続関数f(x)を使用してよい。シグモイド関数は、そのような条件を満たす。同時に、ガウス関数のようなc0関数も、このような属性がある。それにより、ドメイン拡張関数アプローチ方式を活用し、c0関数に対する近似多項式のドメインを拡張してよい。
【0163】
以下では、上述の方式を用いたアルゴリズムの安定性及び効率について説明する。
【0164】
上述のように、同型暗号をベースとする公知の広い範囲の多項式近似は非実用的である。一方で、本発明に係る多項式近似の構造は、単なる基本関数の構成で安定的かつ効率的である。
【0165】
既に説明したpolyDEF構造は、ロジスティック関数の近似化を繰り返しの方法で提供する。即ち、簡単な関数を繰り返し計算し、ロジスティック関数を広い間隔を有するロジスティック関数を算出してよい。
【0166】
上述の例2の場合に、狭い[-r、r]領域上の近似多項式を、
【0167】
【数30】
を計算し、[-1.5nr、1.5nr]上のロジスティック関数で算出してよい。
【0168】
Bn(x)は、低次の多項式であり、係数が緩慢であるため、中間値と同型暗号を伴うエラーが氾濫しない。結果的に、本発明に係るpolyDEf構造は、広い領域のロジスティック関数を近似化する安定した方法を提供する。
【0169】
なお、多項式ドメイン拡張関数を用いたドメイン拡張は、一定回数の同型暗号掛け算のみを許容する。即ち、上述のドメイン拡張関数の構造を使用し、σ(x)=1/(1+exp(-x))をスーパーノームエラー0.05を有する広い範囲の多項式で近似してよい。
【0170】
既に説明した証明1は、ドメイン拡張関数がO(lnR)同型掛け算を有し、[-R、R]範囲を有するロジスティック関数を均一に近似することができることを意味する。それは、同型掛け算の数を最小化するPaterson-Stockmeyerアルゴリズムでも少なくとも
【0171】
【数31】
掛け算が必要なミニマックス多項式近似より漸近的により良い。
【0172】
例示1で、基本関数
【0173】
【数32】
によって構成された多項式ドメイン拡張関数が各構成要素がドメインを1.5倍拡張することについて説明している。以下では、(a)より高い次数の基本関数、(b)狭い間隔におけるドメイン拡張関数に適している近似化、(c)次数3の波動基準関数など、3つの変形について説明する。
【0174】
(a)高次元基本関数
各正数mに対し、
【0175】
【数33】
とする。ここで、
【0176】
【数34】
は、拡張比率である。そして、Bm、0(x)は、[-Lm、Lm]範囲を有する2m+1次数を有する1-polyDEFであれば、Bm、0(x)を基本関数として取ることで、上述のように、
【0177】
【数35】
上のr-polyDEFを構成することができる。より具体的に、スケーリングされた関数
【0178】
【数36】
と、それらの構成FM、n、r(x)=r・Bm、0°Bm、1°・・・°Bm、n-1(x/r)を考慮すると、FM、n、r(x)は
【0179】
【数37】
上のr-polyDEFである。
【0180】
FM、n、r(x)の計算のために、拡張比率が
【0181】
【数38】
であれば、
【0182】
【数39】
同型掛け算が必要になる。m=9がm=3より効率的なのは事実であり、m=3は算出過程で中間値をより小さくすることを補償することができる。
<Remark2>
例示1で生成した多項式ドメイン拡張関関数は、実際にF3、n、rである。ここで、拡張比率は、L3=1.5である。
<Remark3>
Bm、0の構造は、符号関数を繰り返し演算を通じて近似化する方法からヒントを得ている。本発明では、上記作業と同様に、繰り返し動作によって記号関数を近似することができる近似基本関数を求めることを目的とする。
<Minimax Approximation with Monotone polyDEFs>
アルゴリズム1で、[-r、r]範囲のロジスティック関数σ(x)の近似P(x)を仮定する。ミニマックス近似値が最上の均一の性能を補償することができると考えることができる。しかし、単調多項式ドメイン拡張関数を使用する際、[-r、r]上にミニマックス近似より更にマシな近似値が存在してよい。
【0183】
ロジスティック関数のミニマックス近似の代わりに、[-r、r]範囲上の
【0184】
【数40】
のミニマックス近似である別の近似であるQ(x)
【0185】
【数41】
を使用してよい。多項式ドメイン拡張関数は、できる限り近似するように増加すると、それは逆関数
【0186】
【数42】
になる。
【0187】
なお、Q°Fn(x)は、次のようなP°Fn(x)より低い均一度エラーを補償する間、[-1.5nr、1.5nr]上にσ(x)を近似してよい。
【0188】
【数43】
全てのまとめると、
【0189】
【数44】
は、[-1.5nr、1.5nr]上のσ(x)均一な近似値を提供する。このような最適は、単調多項式ドメイン拡張機能を収容し、Fn、m、rが上述の単調を構成する際に動作してよい。
【0190】
<Wavy polyDEF>
以下では、単調よりずっとドメインを拡張することができる非単調基本関数について説明する。
【0191】
安定性を保持するために、3次基本関数に焦点を当てる。例示1において、使用したものと同じ関数、即ち、[-1.5、1.5]範囲を有する
【0192】
【数45】

を使用する。しかし、基本関数は、広い範囲上の
【0193】
【数46】
の1-polyDEFであり、より高い拡張比率L>1.5を使用してよい。
【0194】
B(X)の2.45nでスケールされた関数及びそれらの構成は、次の通りである。
【0195】
【数47】
ロジスティック関数σ(x)に対する適切なpolyDEFを構成するために、パラメータ(L=2.45、r=14.5)を利用する。
【0196】
上記パラメータを信頼することができる理由は、次の通りである。ε<0.05超規格エラーを有する[-r、r]上のσ(x)の多項式近似P(x)が与えられたと仮定すると、P°Fn、r(x)が
【0197】
【数48】
上のσ(x)を適切に近似しているといえる。
【0198】
τ=0.27とし、x∈[-τ、τ]に対し、各Bn(x)ができる限り近似するように増加するため、Fn(x)もできる限り近似するように増加する。そして、
【0199】
【数49】
である。よって、全てのx∈[-τr、τr]に対し、
【0200】
【数50】
が成立する。
【0201】
x∈[τ、Ln+1]に対し、Bn(x)が単調でなくてもよい。しかし、Bn(Ln+1)=Ln・B(L)>LnB(τ)>Bn(τ)であるため、Bn(x)∈[Bn(τ)、Ln]が保持される。
【0202】
数学的に、全てのx∈[τr、Ln+1r]に対し、Fn、r(τr)≦Fn、r(x)≦rが保持されると推論することができる。しかし、Fn、r(τ)>3.84、σ(Fn、r(τ))>σ(3.84)>0.978は1に極めて近い。全てのx∈[τr、Ln+1+r]に対し、
【0203】
【数51】
である。
【0204】
x∈[τr、Ln+1+r]に対し、
【0205】
【数52】
である。それをまとめると、L=2.45、r=14.5を有するウェーブpolyDEF Fn、r(x)に対してドメインを適切に拡張することができる。
【0206】
図6は、本発明の第2実施形態によって拡張された多項式の例を示す図である。具体的に、図6は、拡張比が2.45であるB(x)に対するスケーリングベース関数と構成されたpolyDEFを示す。
【0207】
図6を参照すると、[-2.45、2.45]上の
【0208】
【数53】
を使用し、1-polyDEFの構成を視覚化した図である。F3(x)の構成マップは、[-2.453、2.453]上のウェーブ1-polyDEFである。ここで、近似多項式は、後述する図9のようなアルゴリズム3を用いて生成されてよい。
【0209】
図7は、本発明の第1実施形態に係る多項式拡張方法を説明するための図である。
【0210】
図7を参照すると、アルゴリズム1は、[-1.5nr、1.5nr]に対する多項式ドメイン拡張関数の効率的な評価のための詳細な過程を説明する。具体的に、基本多項式、即ち、第1範囲内で求められる非多項式演算に対応する第1多項式を先に選定する。
【0211】
そして、選定された第1多項式に対するスケーリング基本関数を生成する。具体的に、第1多項式に対するスケーリング基本関数を生成する。そして、基本多項式と生成されたスケーリング基本関数を合成して第1範囲より拡張された範囲を有する近似多項式を生成し、このような拡張範囲に対応する回数分だけ、上述の動作を繰り返して拡張された近似多項式(即ち、第2近似多項式)を生成してよい。当該図面では、3回繰り返して行って、最終的に生成された第2近似多項式は3次関数で、中間値が大きく増加しない。
【0212】
なお、図7を再度参照すると、最終的に生成された第2近似多項式(y=F3(x))は、第1範囲内では第1近似多項式と非常に近似する値を有し、第1範囲より広い第2範囲値を有することを知ることができる。
【0213】
図8は、本発明の第2実施形態に係るシグモイド関数に対する拡張動作を説明するための図である。
【0214】
図8を参照すると、まず、基本多項式、即ち、第1範囲内で求められる非多項式演算に対応する第1多項式を先に選定する。
【0215】
そして、選定された第1多項式に対するスケーリング基本関数を生成する。具体的に、拡張範囲に対応する回数分、第1多項式に対するスケーリング基本関数を順次に生成し、範囲の拡張された近似多項式を生成してよい。
【0216】
図9は、本発明の第3実施形態に係る多項式拡張方法を説明するための図である。
【0217】
アルゴリズム3は、ロジスティック関数を広い間隔で近似化するアルゴリズムについて説明する。[-14.5、14.5]上にミニマックス近似値9を取る際、[-14.5、14.5]上の超規格エラーは0.441であり、アルゴリズム3は、0.045未満の超規格エラーを保持する近似ドメインを適切に拡張してよい。
【0218】
一方、ロジスティック回帰分析は、二項分類問題を解決するマシンラーニング方法である。ロジスティック回帰分析が個人データに頻繁に使用されるため、個人情報を保存するロジスティック関数分析に対する需要が増加している。
【0219】
同型暗号をベースに、ロジスティック回帰分析を実行しようとする試みが多くあったが、従来はロジスティック関数の近似領域を慎重に選択しようとする試みはなかった。従来は、各ロジスティック関数の入力が暗号化されていない状態のデータセットから[-8、8]に属するかを手動で確認していた。なお、従来は、平均プーリングを用いてロジスティック関数の各入力が[-5、5]に属するようにしていた。しかし、このような従来のアプローチ方法は、潜在的な漏洩又はデータの損失を引き起こしかねない。なお、任意に与えられたデータセット、学習率及び繰り返し回数に対する結果の成功を補償することができない。それは、近似区間が狭すぎるためである。
【0220】
この問題を解決するために、本発明では、ドメイン拡張機能を利用する。既に説明しているように、ドメイン拡張機能を使用し、広範囲な間隔でロジスティック関数を効率的に近似することができる。ロジスティック回帰分析の各繰り返しでロジスティック関数に対する近似区間を慎重に選択したほうがいい。それをDEFと組み合わせるために、特定のデータセット、学習率又は繰り返し回数に偏らないロジスティック回帰に対する同型暗号アルゴリズムを得ることができる。
【0221】
以下では、ロジスティック回帰分析で各ロジスティック関数の2つの近似区間について説明する。
【0222】
まず、基準点の全ての属性が[0、1]、例えば、各基準点の最高ノームは、1によって制限される(それは、唯一の仮定である)と仮定する。
【0223】
Wは、ロジスティック回帰分析の加重値とロジスティック回帰のバイアスを考慮したベクトルとする。学習率α 、ミニバッチサイズをn、データの属性数をdとすると、Wtラウンドでそれぞれ訓練される加重値とバイアスを示す。ここで、xはデータ集合でサンプリングされた基準点である。
【0224】
加重値の繰り返し関係(数式12)において、次のように、繰り返す際、ロジスティック関数の入力を概略に制限することができる。
【0225】
【数54】
Wn・xは、ロジスティック関数の入力絶対値である。よって、上述の数式13は、[-nα(d+1)、nα(d+1)]区間がn番目のラウンドでロジスティック関数の全ての区間を含むことを意味する。
【0226】
polyDEFを使用して広い間隔で新たな多項式近似値と組み合わせつつ、多様な学習率と暗号化された状態の数多くの繰り返しで、全てのデータセットを訓練させることができるロジスティック回帰に対する新たな同型暗号ベースの方法について説明する。
【0227】
しかし、数式13によって与えられた間隔が非常に広いため、ドメイン拡張機能を使用しても、非常に多くの同型演算が必要になる。それにより、次のように、より狭い間隔を導入することができる。
【0228】
【数55】
数式14は、以下の数式15によって算出されている。
【0229】
【数56】
数式14は、ロジスティック回帰分析のt番目の繰り返しで、ロジスティック関数の多項式近似値に対するより合理的な間隔[-Cα、d、t、Cα、d、t]を使用することができる。ここで、
【0230】
【数57】
であり、Cα、d、tは第2範囲の上端値、αは学習率、dはデータの属性数、tはロジスティック回帰分析の学習回数である。それを活用し、同型暗号ベースロジスティック回帰分析に適用した場合について、以下で説明する。
【0231】
本発明は、各ロジスティック関数を慎重に選択した区間に対する多項式近似値に代替する。極端なデータでも、結果の成功を補償するために、推定ドメインは潜在的に広くなる。本発明に係る方法を使用すると、同型暗号をベースに広い領域のロジスティック関数を効率的に近似化することができえる。
【0232】
次は、広い間隔でロジスティック関数の多項式近似値に対する有効な設定である。既に説明している
【0233】
【数58】
と、拡張比率L 2.45を使用する。狭い区間におけるロジスティック関数の近似化のために、dflは区間[-14.5、14.5]で次数90の最大多項式を、以下のように取ることができる。
【0234】
P(x)=0.5+0.1939x-4.813e-3x3+5.992e-5x5-3.232e-7x7+6.195e-10x9 ・・・数式16
その後、P(x)、b(x)及びLによって生成された多項式近似値は、0.045より小さいスーパーノームエラーを有する広い間隔のロジスティック関数を近似化することができる。
【0235】
それを、上述の数式16と組み合わせ、個人情報保護ロジスティック回帰分析のためのHEベースの方法を行うことができる。このような方法は、特定のデータセット、学習率又は繰り返し回数に偏らない。このような動作については、図11のアルゴリズム4に具体的に示している。
【0236】
以下では、本発明に係る拡張機能の性能について詳細に説明する。
【0237】
【表1】
表1は、MNISTデータセットに対する暗号化された状態のロジスティック回帰分析の試験結果を示す。第2列は、全工程の間、ロジスティック関数の入力の最大サイズを示す。学習レート(learning rate)が増加するにつれて、学習率が増加する傾向がある。第3列は、加重値のパーセンテージであり、それは、2加重値の間の差はどのくらいかを示す。このような値は、
【0238】
【数59】
で計算されてよい。ここで、WPは、暗号化されていない状態に対する訓練加重値であり、WCは暗号化された状態における訓練加重値である。
【0239】
【表2】
表2は、多様な学習率でMNISTデータセットに対する正確度結果を示す。暗号化されていない状態で訓練された加重値に対する正確度の結果も一緒に示す。表2を参照すると、暗号化されたモデルは学習率が0.6の際、96.32%の正確度を有す、暗号化されていないモデルの正確度と類似していることを確認することができる。
【0240】
【表3】
表3は、CiFAR-10データセットに対する実験結果を示す。MNISTデータセットだけでなく、暗号化された状態で訓練されたモデルは、暗号化されていない状態で訓練されたモデルと類似する正確度を有することを確認することができる。
【0241】
ロジスティック回帰に対する以前のHEベースのアルゴリズムは、狭いドメインでロジスティック関数を近似化しているため、学習率が高い際(例えば、0.4より大きい際)、従来の学習モデルはMNISTデータセットを訓練させることができない。それを回避するために、学習率を下げると、受け入れ速度を減少させ、性能が低下する。MNISTデータセットで低い学習率0.1、0.2、0.41の低い性能がそれを裏付ける。まとめると、以前のHEベースのアルゴリズムは、制限された学習率を取ることができ、それによって性能の低下が発生しかねない。一方で、本発明は、如何なる学習率を取ることができ、より少ない繰り返しでも優れた成果を得ることができる。
【0242】
本発明では、マシンラーニングをプライバシー保証するための新たなフレームワークを説明する。各非多項式の多項式近似値に対するドメインを固定する代わりに、慎重に選択したドメインの多項式で各非多項式を近似化する。よって、本発明に係る新たなフレームワークは、任意に与えられたデータセットと与えられた媒介変数で行われてよい。
【0243】
本発明の一実施形態に係るドメイン拡張関数は、ロジスティック関数のようなシグモイド関数に適用されてよく、狭いドメインで与えられた近似多項式の近似ドメインを効率的に拡張することができる。なお、本発明に係るドメイン拡張関数は、なお、計算中に中間値を非常に小さく保持するという長所がある。
【0244】
一方、上述の多様な実施形態に係る暗号文処理方法は、各ステップを行うためのプログラムコードで実現され、記録媒体に保存されて配布されてよい。この場合、記録媒体の登載された装置は、上述の暗号化又は暗号文処理などの動作を行うことができる。
【0245】
このような記録媒体は、ROM、RAM、メモリチップ、メモリカード、外付けハード、ハード、CD、DVD、磁気ディスク又は磁気テープなどのような多様なコンピュータ読み取り可能な媒体であってよい。
【0246】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10