JP2020530577A - 暗号文に対する近似演算を行う装置及び方法 - Google Patents

暗号文に対する近似演算を行う装置及び方法 Download PDF

Info

Publication number
JP2020530577A
JP2020530577A JP2019560690A JP2019560690A JP2020530577A JP 2020530577 A JP2020530577 A JP 2020530577A JP 2019560690 A JP2019560690 A JP 2019560690A JP 2019560690 A JP2019560690 A JP 2019560690A JP 2020530577 A JP2020530577 A JP 2020530577A
Authority
JP
Japan
Prior art keywords
ciphertext
approximate
value
operation result
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019560690A
Other languages
English (en)
Other versions
JP6964688B2 (ja
Inventor
ジャン ヒー チョン
ジャン ヒー チョン
ヨンス ソン
ヨンス ソン
アンドリュー キム
アンドリュー キム
ミラン キム
ミラン キム
キュヒョン ハン
キュヒョン ハン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Crypto Lab Inc
Original Assignee
Crypto Lab Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Crypto Lab Inc filed Critical Crypto Lab Inc
Publication of JP2020530577A publication Critical patent/JP2020530577A/ja
Application granted granted Critical
Publication of JP6964688B2 publication Critical patent/JP6964688B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

同型暗号文を処理する演算装置及び方法を開示する。本方法は、同型暗号文に適用しようとする演算関数に対応する近似多項式を算出するステップと、近似多項式を用いて同型暗号文を近似演算するステップとを含む。それにより、本発明は、より効率的な暗号文処理を行うことができるようになる。

Description

本発明は、暗号文に対する近似演算を効率的に行うための装置及び方法に関する。
通信技術が発達して電子装置の普及が進むにつれ、電子装置間の通信セキュリティを保持するための取り組みが持続的に進められている。それにより、多くの通信環境では、暗号化/復号技術が使われている。
暗号化技術によって暗号化されたメッセージが相手に転送されると、相手はメッセージを利用するためには、復号を行わなければならない。この場合、相手は、暗号化されたデータを復号する過程でリソース及び時間の無駄遣いを強いられるようになる。なお、相手が演算のために、一時的にメッセージを復号した状態で第三者のハッキングが行われる場合、そのメッセージが第三者に容易に流出しかねないという問題もあった。
このような問題を解決するために、同型暗号化方法が研究されている。同型暗号化によると、暗号化された情報を復号せずに、暗号文そのもので演算を行っても、平文に対して演算してから暗号化された値と同じ結果を得ることができる。よって、暗号文を復号していない状態で各種演算を行うことができる。
しかし、同型暗号文を演算に数回繰り返し使用する場合、その暗号文内の平文の領域が足りなくなり、それ以上の演算を行うことができなくなるという問題があった。それにより、効率的なデータ処理方法が求められるようになっている。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、同型暗号文に対する効率的な近似演算及び近似復号を行うことができる方法及びその装置を提供することにある。
本発明は、以上のような目的を達成するためのものとして、本発明の一実施形態に係る同型暗号文処理方法は、同型暗号文に適用しようとする演算関数に対応する近似多項式を算出するステップと、前記近似多項式を用いて前記同型暗号文を近似演算するステップとを含む。
ここで、前記近似多項式を算出するステップは、前記演算関数が復号関数である場合、前記演算関数との差の絶対値が閾値以下になるように前記近似多項式を算出してよい。
また、前記近似演算によって獲得された演算結果暗号文に対する後続演算を行う場合、前記演算結果暗号文内の近似メッセージ割合が閾値を超過すると、前記演算結果暗号文の平文空間を拡張するステップを更に含んでよい。
ここで、前記平文空間を拡張するステップは、暗号化された入力値を予め設定された閾値暗号文モジュラスで除算した商を求めて除去するように定義された関数を、前記演算結果暗号文に適用して前記平文空間を獲得してよい。
なお、前記閾値は、早期リブート(early rebooting)のために、限界値未満の値に設定され、前記限界値は、前記演算結果暗号文に対する後続演算ができなくなる前記平文空間の大きさであってよい。
以上のような方法において、前記演算結果暗号文の復号に使われる付加情報を提供するステップを更に含んでよい。ここで、付加情報は、演算過程で変更されたスケーリングファクタ及び前記平文空間の拡張に使われたモジュラス値を含んでよい。
一方、本発明の一実施形態に係る演算装置は、同型暗号文を入力されるためのインターフェースと、前記同型暗号文を保存するメモリと、前記同型暗号文に適用しようとする演算関数に対応する近似多項式を算出し、前記近似多項式を用いて前記同型暗号文を近似演算するするプロセッサとを含んでよい。
前記プロセッサは、前記演算関数が復号関数である場合、前記近似多項式と前記演算関数との差の絶対値が閾値以下になるように前記近似多項式を設定して前記近似演算を行い、前記近似演算によって獲得された演算結果暗号文内の平文空間を拡張してよい。
ここで、前記プロセッサは、前記近似演算によって獲得された演算結果暗号文に対する後続演算を行う場合、前記演算結果暗号文内の近似メッセージ割合が閾値を超過すると、前記演算結果暗号文の平文空間を拡張してよい。
前記閾値は、早期リブート(early rebooting)のために、限界値未満の値に設定され、前記メモリに保存され、前記限界値は、前記演算結果暗号文に対する後続演算ができなくなる前記平文空間の大きさであってよい。
なお、前記プロセッサは、前記演算結果暗号文の復号に使われる付加情報を前記メモリに保存し、前記付加情報は、演算過程で変更されたスケーリングファクタ及び前記平文空間の拡張に使われたモジュラス値を含んでよい。
以上説明したように、本発明によれば、同型暗号文に対する効率的な近似演算及び近似復号を行うことができるようになる。
本発明の一実施形態に係るデータ処理システムを説明するためのブロック図である。
本発明の一実施形態に係る暗号化装置の構成を示すブロック図である。
本発明の一実施形態に係る演算装置の構成を示すブロック図である。
演算装置の動作を説明するための図である。
図1のデータ処理システムの動作を説明するための図である。
本発明の一実施形態に係る同型暗号文処理方法を説明するためのフローチャートである。
以下では、添付の図面を参照して、本発明について詳細に説明する。本明細書で行う情報(データ)伝送過程は、必要に応じて、暗号化/復号が適用されてよく、本明細書及び特許請求の範囲で情報(データ)伝送過程を説明する表現は、格別に言及しなくても、全て暗号化/復号する場合も含むものとして解釈されるべきである。本明細書で「AからBに伝送(伝達)」又は「AがBから受信」というような形態の表現は、中間に別の媒体が含まれて伝送(伝達)又は受信されることも含み、必ずしもAからBに直接伝送(伝達)又は受信されることのみを表現するものではない。
本発明の説明において、各ステップの順番は、先行ステップが論理的及び時間的に必ずしも後行ステップの前に行われなければならない場合ではなければ、各ステップの順番は非制限的に理解されるべきである。即ち、上記のような例外的な場合を除いては、後行ステップとして説明された過程が先行ステップとして説明された過程より前に行われたとしても、発明の本質には影響がなく、権利範囲もステップの順番によらず定義されるべきである。そして、本明細書で「A又はB」と記載したのは、AとBのうちいずれかを選択的に指すだけでなく、AとBの両方を含むことも意味するものとして定義される。なお、本明細書で「含む」という用語は、含むものとして並び立てられた用語の他に、更に別の構成要素を更に含むことも包括する意味を有する。
本明細書においては、本発明の説明に必要な構成要素のみを説明し、本発明の本質に関係のない構成要素については、言及しない。そして、言及される構成要素のみを含む排他的な意味として解釈されてはならず、他の構成要素も含むことができる非排他的な意味として解釈されるべきである。
そして、本明細書において「値」とは、スカラー値だけでなく、ベクトルも含む概念として定義される。
後述の本発明の各ステップの数学的な演算及び算出は、当該演算又は算出を行うために公知となっているコーディング方法及び/又は本発明に適するように考案されたコーディングによってコンピュータ演算で実現されてよい。
以下で説明する具体的な数学式は、可能な複数の代案ののうち例示的に説明されるものであり、本発明の権利範囲が本明細書に言及された数学式に制限されるものとして解釈されてはならない。
以下では、添付の図面を用いて、本発明の多様な実施形態について具体的に説明する。
図1は、本発明の一実施形態に係るデータ処理システムの構成を示す図である。図1によると、データ処理システムは、複数の装置100−1〜100−3及び演算装置200を含む。図1においては、3つの装置を含むものとして示しているが、それは、使用例によって異なることがある。例えば、一つの装置だけで実現されてよく、3つ以上の装置で実現されてよい。
各装置100−1〜100−3及び演算装置200は、携帯電話、タブレット、ゲームプレーヤ、パソコン、ラップトップパソコン、ホームサーバ、キオスク端末などのような多様な装置で実現されてよく、その他に、IoT機能が適用された家電製品で実現されてよい。
第1装置100−1及び第2装置100−2は、それぞれ同型暗号化を行い、その結果値である同型暗号文を演算装置200に提供する。ここで、同型暗号文は、それぞれ誤差を含む近似メッセージに対する同型暗号文を意味する。
具体的には、第1及び第2装置100−1、100−2から生成する同型暗号文は、後で秘密鍵を用いて復号した際、メッセージ及び誤差値を含む結果値が復元される形態で生成されてよい。以下、本明細書においては、メッセージに誤差が含まれた状態を近似メッセージという。
第1及び第2装置100−1、100−2は、それぞれ伝送しようとするメッセージが入力されると、誤差を含む近似メッセージに対する同型暗号文を生成する。
一例として、第1及び第2装置100−1、100−2のそれぞれは、自主的に生成した誤差をメッセージに含めて近似メッセージを作ることができる。具体的には、伝送するメッセージMが入力されると、第1及び第2装置100−1、100−2のそれぞれは、任意の多項式c1をランダムに生成し、小さな誤差eを生成した後、c0= −c1*s+M+e(mod q)を計算し、同型暗号文E(m,s)=ct=(c0,c1)を生成する。後でそれを復号することになると、Dec(ct)=M+e(mod q)になることが分かる。
別の例として、第1及び第2装置100−1、100−2のそれぞれがメッセージを同型暗号化する過程で誤差が追加され、近似メッセージの形態であってよい。具体的には、第1及び第2装置100−1、100−2のそれぞれが生成する同型暗号文は秘密鍵を用いて復号した際、次のような性質を満たす形態で生成される。
(数式1)
Dec(ct,sk) = <ct,sk> = M+e(mod q)
ここで、<,>は、内積(usual inner product)、ctは暗号文、skは秘密鍵、Mは平文メッセージ、eは暗号化誤差値、qは暗号文の除数(モジュラス(Modulus))を意味する。
演算装置200は、受信された同型暗号文に対する演算を行う。演算の種類は、多様に設定されてよい。同型暗号文の性質上、演算装置200は復号をしていない状態で演算を行うことができ、その結果値も暗号文の形態になる。本明細書においては、演算によって獲得された結果値を演算結果暗号文という。演算装置200は、演算結果暗号文を第3装置100−3に伝送する。第3装置100−3は、受信された演算結果暗号文を復号し、各同型暗号文に含まれたデータの演算結果値を獲得することができる。
図1においては、第1及び第2装置で暗号化を行い、第3装置が復号を行う場合を示しているが、必ずしもそれに限られるものではない。例えば、演算装置200は、演算結果値を第1及び第2装置のうち少なくとも一つに提供することもできる。なお、一つの装置、例えば、第1装置100−1で2回の暗号化を行い、2つの同型暗号文を提供することもできる。
演算装置200は、ユーザの要請によって、演算を数回行うことができる。この場合、毎回演算の度に獲得される演算結果暗号文内の近似メッセージ割合が異なるようになる。演算装置200は、近似メッセージ割合が閾値を超過すると、演算結果暗号文内の平文空間を拡張する動作を行う。
演算装置200は、暗号化された入力値を予め設定された閾値暗号文モジュラスで除算した商を求めて除去するように定義された関数を、演算結果暗号文に適用し、平文空間を拡張することができる。
具体的には、上述の数式1において、qがMより小さい場合、M+e(mod q)はM+eと異なる値を有するため、復号ができなくなる。よって、q値は常にMより大きく保持されなければならない。しかし、演算が進められることにより、q値は次第に減少するようになる。平文空間の拡張とは、暗号文ctをより大きいモジュラスを有する暗号文に変化させることを意味する。平文空間を拡張する動作は、他にリブート(rebooting)とすることもできる。リブートを行うことにより、暗号文は再び演算が可能な状態になってよい。
一方、図1においては、第1及び第2装置100−1、100−2において、それぞれ誤差を含む近似メッセージに対する同型暗号文を作り、演算装置200に提供するものとして図示及び説明しているが、必ずしもそれに限るものではない。例えば、演算装置200は、近似メッセージがでない、メッセージそのものに対する同型暗号文を入力されることもできる。
なお、演算装置200は、入力された同型暗号文に対して近似演算を行うこともできる。近似演算とは、正確な演算式ではなく、それに類似する結果が得られる近似式を用いて演算を行うことを意味する。近似演算は、近似メッセージに対する同型暗号文だけでなく、通常のメッセージに対する同型暗号文に対しても適用されてよい。
近似演算のために、演算装置200は適用しようとする演算関数に対応する近似多項式を算出する。演算関数が復号関数である場合、演算装置200は演算関数との差の絶対値が閾値以下になるように近似多項式を算出することができる。この場合、近似演算によって、演算結果暗号文の平文空間が拡張されることができる。
もし、復号関数に対応する近似多項式ではない場合、近似演算によって獲得された演算結果暗号文に対する後続演算を行わなければならない場合、その演算結果暗号文内の近似メッセージ割合を閾値と比較し、閾値を超過した際、平文空間の拡張動作を行うこともできる。
以下において、各装置の構成及び動作について説明する。
図2は、本発明の一実施形態に係る暗号化装置の構成を示す。図1におけるシステムで、第1、第2装置100−1、100−2のように、同型暗号化を行う装置を、他には暗号化装置ということができる。
図2によると、暗号化装置100は、プロセッサ110、メモリ120を含む。図2においては、暗号化動作に必要な最小限の構成のみを示しており、暗号化装置100の種類によって多様な構成要素が更に追加されてよい。例えば、通信インターフェース、ディスプレイ部、入力手段などが更に含まれてよく、このような構成は、同型暗号化と直接関連性がないため、図示及び説明は省略する。
プロセッサ110は、伝送しようとするメッセージが入力されると、メモリ120に保存する。プロセッサ110は、メモリ120に保存された各種設定値及びプログラムを用いて、メッセージを同型暗号化する。この場合、公開鍵が使用されてよい。
プロセッサ110は、暗号化を行うのに必要な公開鍵を自主的に生成して使用することもでき、外部装置から受信して使用することもできる。一例として、復号を行う第3装置100−3が公開鍵を他の装置に配布することができる。
自主的に鍵を生成する場合、プロセッサ110はRing−LWE技法を用いて公開鍵を生成することができる。具体的に説明すると、プロセッサ110は先ず各種パラメータ及びリングを設定し、メモリ120に保存する。パラメータの例としては、平文メッセージビットの長さ、公開鍵及び秘密鍵の大きさなどがあってよい。
リングは、次のような数式で表されてよい。
(数式2)
リング(Ring)とは、予め設定された係数を有する多項式の集合を意味する。一例として、リングは、係数がZqであるn次多項式の集合を意味する。数式2において、f(x)はn次多項式を意味する。具体的には、nがΦ(N)とすると、N次円分多項式(N−th cyclotomic polynomial)を意味する。(f(x))とは、f(x)で生成されるZq[x]のイデアル(ideal)を示す。Euler totient関数Φ(N)とは、Nと互いに素であり、Nより小さい自然数の数を意味する。ΦN(x)をN次円分多項式として定義すると、リングは次のような数式でも表されてよい。
(数式3)
秘密鍵(sk)は、次のように表されてよい。
(数式4)
s(x)は、小さい係数でランダムに生成した多項式を意味する。
プロセッサ110は、リングから第1ランダム多項式(a(x))を算出する。第1ランダム多項式は、次のように表されてよい。
(数式5)
なお、プロセッサ110は、離散ガウシアン分布またはそれと統計的な距離が近い分布から誤差を抽出する。誤差は、次のような数式で表されてよい。
(数式6)
誤差まで算出されると、暗号化装置100は第1ランダム多項式及び秘密鍵に誤差をモジュラー演算して第2ランダム多項式を算出することができる。第2ランダム多項式は、次のように表されてよい。
(数式7)
最終的に、公開鍵(pk)は、第1ランダム多項式及び第2ランダム多項式を含む形態で次のように設定される。
(数式8)
上述の鍵生成方法は一例に過ぎないため、必ずしもそれに限るものではなく、その他に、別の方法で公開鍵及び秘密鍵を生成することもできる。
プロセッサ110は、同型暗号文が生成されると、メモリ120に保存するか、ユーザからの要請または予め設定されたデフォルト命令に応じて同型暗号文を演算装置200に伝送することができる。
図3は、本発明の一実施形態に係る演算装置200の構成を示すブロック図である。図3によると、演算装置200は、インターフェース210、プロセッサ220、メモリ230を含む。図2と同様に、図3の演算装置も多様な付加構成を更に含むこともできるが、本発明の動作に関連性がないか、微弱な部分は図示及び説明を省略する。
インターフェース210は、各種装置からデータ及び信号を受信するか送信するための構成である。具体的には、インターフェース210は、LAN、無線LAN、Wi−Fi(登録商標)、ブルートゥース(登録商標)、NFC(Near Field Communication)、Zigbee(登録商標)などのような様々な有無線通信インターフェースで実現されてよい。
プロセッサ220は、誤差を含む近似メッセージに対する同型暗号文がインターフェース210を介して入力されると、それをメモリ230に保存する。誤差を含まない通常のメッセージに対する同型暗号文が入力された場合でも、プロセッサ220はそれをメモリ230に保存する。
メモリ230は、同型暗号文だけでなく、各種プログラム及びデータを保存するための構成要素である。
プロセッサ220は、ユーザの要請又は予め設定された設定値に応じて、同型暗号文に対する演算を行う。この場合、同型暗号文に対する復号は行わない。演算の種類は、様々に設定されてよい。一例として、2つの同型暗号文に対する乗算値や平均値を要請されたなら、プロセッサ220は指定された2つの同型暗号文を乗算したり、乗算した後2で割るなどの演算を行うことができる。または、プロセッサ220は、近似演算を行うこともできる。
プロセッサ220は、演算によって獲得された演算結果暗号文内の近似メッセージ割合を確認する。プロセッサ220は、近似メッセージ割合が閾値を超過すると、演算結果暗号文の平文空間を拡張する。
具体的には、プロセッサ220は、予め設定された関数を演算結果暗号文に適用して平文空間を拡張することができる。プロセッサ220は、暗号化された入力値を予め設定された閾値暗号文モジュラスで除算した商を求めて除去するように定義された関数を使用することができる。閾値は、暗号化/復号の性能に適するように任意の値に設定され、メモリ230に保存されていてよい。一例として、閾値は、演算結果が平文空間の全てを占める際の割合、即ち100%に設定されてよい。別の例として、平文空間を全て占める前にリブートを行うことができるように、即ち、早期リブートのために限界値未満の値に設定されることもできる。例えば、80〜50%程度の限界値が設定されていてよい。限界値は、演算結果暗号文に対する後続演算ができなくなる平文空間の大きさを意味する。
または、プロセッサ220は、同型暗号文に適用しようとする演算多項式に対応する近似多功式を算出し、算出された近似多項式を用いて演算結果暗号文を演算し、平文空間を拡張することもできる。この場合、演算多項式が復号関数なら、近似多項式は、演算多項式との差の絶対値が閾値以下になるように設定されてよい。一例として、復号関数は、次のように設定されてよい。
(数式9)
数式9の復号関数に含まれたモジュラス演算は、次のような方法で近似的に変えてよい。
(数式10)
別の例として、モジュラス演算を再帰的(recursive)方法で計算することもできる。この場合、モジュラス演算は、次のように表されてよい。
(数式11)
数式11において、kは任意の整数である。Kは計算の精度やパラメータの特性によって変動してよい。
数式11において、Skは、次のような4つの数式を用いて算出することができる。
(数式12)
ここで、Skは、数式11でのように、演算関数がSin関数である際の近似多項式を意味する。
なお、プロセッサ220は、演算結果暗号文が後で復号される際に、使用されなければならない付加情報をメモリ230に保存しておくこともできる。付加情報は、演算結果暗号文内における演算結果メッセージの位置、平文空間の拡張に使用されたモジュラス値などを含むことができる。
プロセッサ220は、演算結果を要請した装置に対して、演算結果暗号文と付加情報とをインターフェース210を介して提供することもできる。
図4は、演算装置の動作を具体的に説明するための図である。図4においては、2つの同型暗号文10、20に対する演算及びリブートの過程を示す。
各同型暗号文10、20は、近似メッセージ領域11、21をそれぞれ含む。近似メッセージ領域11、21には、メッセージ及び誤差(m1+e1,m2+e2)が同時に含まれている。
演算装置は、両同型暗号文10、20を入力値として、特定の演算を行う。演算結果暗号文30は、各近似メッセージ間の演算結果(m3+e3)が込まれた近似メッセージ領域31を含む。演算結果が入力値より大きくなるにつれ、近似メッセージ領域も大きくなり、よって、残りの平文空間32が小さくなる。このような演算が数回行われると、結局残りの平文空間32がなくなるか、限界値より小さくなり、演算ができなくなる。このような状態と判断されると、演算装置200はリブートを行う。
リブートの行われた暗号文40は、近似メッセージ領域41が小さくなる代わりに、平文空間42が拡張されていることが分かる。リブート前の暗号文内の近似メッセージ(m3+e3)とリブート後の暗号文内の近似メッセージ(m3’+e3’)には若干の差があるものの、誤差の大きさの差が小さいため、元のメッセージと比較した際に大差がなくなる。従来の暗号化/復号メカニズムの場合、復号後のデータが元の平文と同様になるように設計するが、本実施形態によると、ぴったり同じ平文の代わりに、近似メッセージが出力される。結果的に、安全性のために必要とする誤差と有効数字演算を通じて発生する誤差とを含んで一つのノイズとして扱うため、暗号化された状態で実数演算が可能となり、暗号化/復号の効率性を増大させることができる。
図5は、本発明の一実施形態に係るデータ処理方法を説明するための図である。図5によると、第1装置100−1及び第2装置100−2は、それぞれメッセージm1、m2を同型暗号化して同型暗号文E(m1’)、E(m2’)を出力する。演算装置200は、同型暗号文E(m1’)、E(m2’)に対する演算を行い、演算結果暗号文EL−i(m3’)を出力する。ここで、Lは暗号文のモジュラスレベルを意味する。演算が繰り返されることにより、モジュラスレベルは持続的に減少するようになる。例えば、演算装置200が暗号化された状態で行いたい演算のデプスがiなら、モジュラスレベルはiの分減少するようになる。それにより、モジュラスレベルが閾値未満に減少すると、同型暗号文に対するそれ以上の演算はできなくなる。
図5においては、閾値をレベル1に設定している。それにより、レベル1の同型暗号文E(m4’)、E(m5’)は演算不可の状態であることが分かる。
演算装置200は、E(m4’)、E(m5’)をそれぞれリブートして、E(m4”)、E(m5”)を生成する。リブートによってモジュラスレベルはLと略類似するレベルL’となり、近似メッセージもm4’、m5’で略類似するm4”、m5”のように変化する。
演算装置200は、リブートした暗号文を演算し、演算結果暗号文EL’−i(m6”)を第3装置100−3に提供する。最終的に演算された演算結果暗号文は、次の数式のように表されてよい。
(数式13)
第3装置100−3は、演算結果暗号文を復号して近似メッセージm6”を獲得する。
復号のために、第3装置100−3は付加情報を利用することできる。上述のように、付加情報は、スケーリングファクタ及び演算結果暗号文のモジュラス値などを含むことができる。
モジュラス値がΔ’なら、復号された近似メッセージはm6”/Δ’であってよい。それにより、実数平文が暗号化過程で整数化されているとしても、復号で再び実数により復旧されることがある。なお、付加情報内のモジュラス値は数式9でリング(R)のモジュラスとして使用されてよい。
第3装置100−3は、復号を通じて最終的にm6”を獲得することができるようになる。
図6は、本発明の一実施形態に係る同型暗号文処理方法を説明するためのフローチャートである。図6によると、近似メッセージの同型暗号文が入力され、その暗号文に対する演算要請が入力されると、要請された演算を行う(S610)。一例として、演算は、乗算、除算、加算、減算などのような基本的な演算に設定することもできるが、必ずしもそれに限るものではない。具体的には、暗号化されたメッセージが複素数の場合、共役(conjugate)演算が行われてよく、その他に統計やソーティングなどの演算も行われてよい。
演算装置は、演算前に又は演算後に同型暗号文内の近似メッセージ割合が閾値を超過しているか否かを判断することができる(S620)。図6においては、演算後にすることを示しているが、必ずしもそれに限るものではない。判断の結果、閾値を超過すると判断されると、演算装置は平文空間を拡張するリブートを行う(S630)。それにより、演算が効率的に繰り返し行われてよい。
演算装置は、その他に、演算結果暗号文の復号に使用される付加情報を提供するステップを更に行うこともできる。
なお、上述のように、演算装置は、演算そのものを近似演算に置き換えることができる。この場合、演算装置は、同型暗号文に適用しようとする演算関数に対応する近似多項式を算出するステップ及び算出された近似多項式を用いて同型暗号文を近似演算するステップを順次に行うことができる。ここで、近似多項式は、演算関数が復号関数である場合、演算関数との差の絶対値が閾値以下になるように算出することができる。このような近似多項式を用いて近似演算を行うと、演算結果暗号文の平文空間が拡張されてよい。
その他の場合には、近似演算によって獲得された演算結果暗号文に対する後続演算を行う場合、近似メッセージ割合が閾値を超過すると、平文空間を拡張することもできる。平文空間の拡張方法については、既に具体的に説明しているため、繰り返し説明は省略する。
以上では、多様な実施形態をフローチャート及びブロック図を用いて説明してきた。各フローチャートに示したステップの順番は例示に過ぎず、状況によって順番が入れ替わってよい。なお、実施形態によっては、一部のステップが省略されたり追加されてよい。
なお、以上のような多様な実施形態による暗号化方法、処理方法、復号方法、リブート方法、演算方法などは、その方法を行うためのプログラムコードの形態で記録媒体に保存されて配布されてよい。この場合、記録媒体の搭載された装置は、上述の多様な実施形態による動作を行うことができる。
記録媒体は、ROM、RAM、メモリチップ、メモリカード、外付けハード、ハード、CD、DVD,磁気ディスクまたは磁気テープなどのような多様なコンピュータ読み取り可能な媒体であってよい。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。

Claims (12)

  1. 同型暗号文に適用しようとする演算関数に対応する近似多項式を算出するステップと、
    前記近似多項式を用いて前記同型暗号文を近似演算するステップと
    を含む同型暗号文処理方法。
  2. 前記近似多項式を算出するステップは、
    前記演算関数が復号関数である場合、前記演算関数との差の絶対値が閾値以下になるように前記近似多項式を算出することを特徴とする請求項1に記載の同型暗号文処理方法。
  3. 前記近似演算によって獲得された演算結果暗号文に対する後続演算を行う場合、前記演算結果暗号文内の近似メッセージ割合が閾値を超過すると、前記演算結果暗号文の平文空間を拡張するステップを更に含むことを特徴とする請求項1に記載の同型暗号文処理方法。
  4. 前記平文空間を拡張するステップは、
    暗号化された入力値を予め設定された閾値暗号文モジュラスで除算した商を求めて除去するように定義された関数を、前記演算結果暗号文に適用して前記平文空間を拡張することを特徴とする請求項3に記載の同型暗号文処理方法。
  5. 前記閾値は、早期リブート(early rebooting)のために、限界値未満の値に設定され、前記限界値は、前記演算結果暗号文に対する後続演算ができなくなる前記平文空間の大きさであることを特徴とする請求項1に記載の同型暗号文処理方法。
  6. 前記演算結果暗号文の復号に使われる付加情報を提供するステップを更に含み、
    前記付加情報は、
    スケーリングファクタ及び前記演算結果暗号文のモジュラス値を含むことを特徴とする請求項1に記載の同型暗号文処理方法。
  7. 同型暗号文を入力されるためのインターフェースと、
    前記同型暗号文を保存するメモリと、
    前記同型暗号文に適用しようとする演算関数に対応する近似多項式を算出し、前記近似多項式を用いて前記同型暗号文を近似演算するするプロセッサと
    を含む演算装置。
  8. 前記プロセッサは、
    前記演算関数が復号関数である場合、
    前記近似多項式と前記演算関数との差の絶対値が閾値以下になるように前記近似多項式を設定して前記近似演算を行い、前記近似演算によって獲得された演算結果暗号文内の平文空間を拡張することを特徴とする請求項7に記載の演算装置。
  9. 前記プロセッサは、
    前記近似演算によって獲得された演算結果暗号文に対する後続演算を行う場合、前記演算結果暗号文内の近似メッセージ割合が閾値を超過すると、前記演算結果暗号文の平文空間を拡張することを特徴とする請求項7に記載の演算装置。
  10. 前記プロセッサは、
    暗号化された入力値を予め設定された閾値暗号文モジュラスで除算した商を求めて除去するように定義された関数を、前記演算結果暗号文に適用して前記平文空間を拡張することを特徴とする請求項9に記載の演算装置。
  11. 前記閾値は、早期リブート(early rebooting)のために、限界値未満の値に設定されて前記メモリに保存され、
    前記限界値は、前記演算結果暗号文に対する後続演算ができなくなる前記平文空間の大きさであることを特徴とする請求項9に記載の演算装置。
  12. 前記プロセッサは、
    前記演算結果暗号文の復号に使われる付加情報を前記メモリに保存し、
    前記付加情報は、
    スケーリングファクタ及び前記演算結果暗号文のモジュラス値を含むことを特徴とする請求項9に記載の演算装置。
JP2019560690A 2018-07-27 2019-02-01 暗号文に対する近似演算を行う装置及び方法 Active JP6964688B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2018-0087928 2018-07-27
KR1020180087928A KR102040120B1 (ko) 2018-07-27 2018-07-27 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법
PCT/KR2019/001486 WO2020022598A1 (ko) 2018-07-27 2019-02-01 암호문에 대한 근사 연산을 수행하는 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2020530577A true JP2020530577A (ja) 2020-10-22
JP6964688B2 JP6964688B2 (ja) 2021-11-10

Family

ID=68576779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019560690A Active JP6964688B2 (ja) 2018-07-27 2019-02-01 暗号文に対する近似演算を行う装置及び方法

Country Status (4)

Country Link
US (1) US11115182B2 (ja)
JP (1) JP6964688B2 (ja)
KR (1) KR102040120B1 (ja)
WO (1) WO2020022598A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020174515A1 (ja) * 2019-02-25 2020-09-03 日本電気株式会社 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
US11275585B2 (en) * 2019-09-12 2022-03-15 Intuit Inc. System and method for approximating branching operations for use with data encrypted by fully homomorphic encryption (FHE)
KR20210118717A (ko) 2020-03-23 2021-10-01 삼성에스디에스 주식회사 암호화된 데이터를 이용한 연산을 수행하기 위한 방법 및 장치
US11277257B2 (en) 2020-03-23 2022-03-15 Samsung Sds Co., Ltd. Method and apparatus for performing operation using encrypted data
KR102349855B1 (ko) * 2020-04-16 2022-01-11 주식회사 크립토랩 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
US11546134B2 (en) 2020-04-16 2023-01-03 Samsung Electronics Co., Ltd. Method and apparatus for processing ciphertext based on homomorphic encryption
US11907052B2 (en) * 2020-04-20 2024-02-20 Dell Products L.P. Systems and methods for encrypting unique failure codes to aid in preventing fraudulent exchanges of information handling system components
US11558172B2 (en) 2020-04-22 2023-01-17 Samsung Electronics Co., Ltd. Encryption method and apparatus based on homomorphic encryption using composition of functions
US11671239B2 (en) 2020-05-08 2023-06-06 Samsung Electronics Co., Ltd. Encryption method and apparatus based on homomorphic encryption using odd function property
KR20210146513A (ko) * 2020-05-27 2021-12-06 삼성전자주식회사 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치
KR102361327B1 (ko) 2020-05-29 2022-02-10 서울대학교산학협력단 쉘 정렬을 이용하여 동형 암호문에 대한 정렬을 수행하는 전자 장치 및 그 동작 방법
CN115918028A (zh) * 2020-06-15 2023-04-04 加密实验室公司 对同态密文执行统计操作的装置及其方法
KR20220009643A (ko) 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption
KR20220040309A (ko) * 2020-09-23 2022-03-30 삼성전자주식회사 동형 암호화 장치 및 그 동작 방법
KR20220078155A (ko) 2020-12-03 2022-06-10 삼성전자주식회사 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치
US11870889B2 (en) 2021-02-23 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus with homomorphic encryption
KR102304992B1 (ko) * 2021-04-07 2021-09-27 서울대학교산학협력단 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
US11722290B2 (en) * 2021-05-21 2023-08-08 Samsung Electronics Co., Ltd. Method and apparatus for modulus refresh in homomorphic encryption
WO2023282359A1 (ko) * 2021-07-05 2023-01-12 주식회사 크립토랩 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
US20230344617A1 (en) * 2022-04-20 2023-10-26 Crypto Lab Inc. Apparatus for bootstrap processing homomorphic encrypted message and method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160350648A1 (en) * 2014-11-07 2016-12-01 Microsoft Technology Licensing, Llc. Neural networks for encrypted data
US20180096248A1 (en) * 2016-09-30 2018-04-05 Safran Identity & Security Methods for secure learning of parameters of a convolution neural network, and for secure input data classification
JP2019046460A (ja) * 2017-08-30 2019-03-22 株式会社アクセル 推論装置、及び推論方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8630422B2 (en) 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
WO2012149395A1 (en) 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption
US8831133B2 (en) * 2011-10-27 2014-09-09 Lsi Corporation Recursive digital pre-distortion (DPD)
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
KR101449239B1 (ko) * 2013-01-24 2014-10-15 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
KR101475747B1 (ko) * 2014-01-22 2014-12-23 고려대학교 산학협력단 동형 암호를 이용한 다자간 위탁 연산 방법
KR102359265B1 (ko) * 2015-09-18 2022-02-07 삼성전자주식회사 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
KR101971215B1 (ko) 2016-06-17 2019-04-22 서울대학교산학협력단 유효 숫자 연산을 지원하는 동형 암호문의 생성 방법 및 그러한 방법에 의해서 생성된 동형 암호문에 대한 유효 숫자 연산 방법
KR101861089B1 (ko) * 2016-07-28 2018-05-25 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
US10728017B2 (en) * 2017-11-03 2020-07-28 International Business Machines Corporation Performing vector comparison operations in fully homomorphic encryption
KR101965628B1 (ko) 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160350648A1 (en) * 2014-11-07 2016-12-01 Microsoft Technology Licensing, Llc. Neural networks for encrypted data
US20180096248A1 (en) * 2016-09-30 2018-04-05 Safran Identity & Security Methods for secure learning of parameters of a convolution neural network, and for secure input data classification
JP2019046460A (ja) * 2017-08-30 2019-03-22 株式会社アクセル 推論装置、及び推論方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
呉 双 ほか: "垂直分割モデルにおけるプライバシ保護ロジスティックス回帰分析", 2014年度 人工知能学会全国大会(第28回)論文集, JPN6020051353, 12 May 2014 (2014-05-12), JP, pages 1 - 4, ISSN: 0004422017 *
高田 敏行 ほか: "準同型暗号を用いた経験損失最小化のための秘密精度保証", 電子情報通信学会技術研究報告, vol. 115, no. 323, JPN6020051355, 19 November 2015 (2015-11-19), JP, pages 249 - 256, ISSN: 0004422018 *

Also Published As

Publication number Publication date
KR102040120B1 (ko) 2019-11-05
WO2020022598A1 (ko) 2020-01-30
JP6964688B2 (ja) 2021-11-10
US20200036511A1 (en) 2020-01-30
US11115182B2 (en) 2021-09-07

Similar Documents

Publication Publication Date Title
JP6964688B2 (ja) 暗号文に対する近似演算を行う装置及び方法
JP7370402B2 (ja) 端末装置における暗号化方法及び端末
KR101965628B1 (ko) 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
KR102040106B1 (ko) 실수 평문에 대한 동형 암호화 방법
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
KR102297536B1 (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR102349855B1 (ko) 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
JP2004336794A (ja) 暗号システム内でユーザ定義idに基づく公開鍵を発生する方法と機器
US11799628B2 (en) Apparatus and method for processing non-polynomial operation on encrypted messages
KR102475273B1 (ko) 동형 암호 시스템에 대한 시뮬레이션 장치 및 방법
KR20220121221A (ko) 동형 암호문의 변환 장치 및 방법
KR102393941B1 (ko) 근사 암호화된 암호문에 대한 인코딩 또는 디코딩
US20240039695A1 (en) Electronic apparatus for generating homomorphic encrypted message and method therefor
US20240039696A1 (en) Apparatus and method for homomorphic encryption of text data
US20230344617A1 (en) Apparatus for bootstrap processing homomorphic encrypted message and method thereof
KR20230162524A (ko) 동형 암호문에 대한 재부팅 연산을 수행하는 장치 및 방법
KR20230149708A (ko) 동형 암호문에 대한 재부팅 연산을 수행하는 장치 및 방법
KR20220134487A (ko) 동형 암호문을 처리하는 전자 장치 및 그 방법
KR20240048985A (ko) 투표 분석 정보를 포함하는 동형 암호문을 생성하는 방법 및 그 전자 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200218

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211019

R150 Certificate of patent or registration of utility model

Ref document number: 6964688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150