JP7656798B2 - 同型暗号を用いた暗号化方法及び装置 - Google Patents

同型暗号を用いた暗号化方法及び装置 Download PDF

Info

Publication number
JP7656798B2
JP7656798B2 JP2021077713A JP2021077713A JP7656798B2 JP 7656798 B2 JP7656798 B2 JP 7656798B2 JP 2021077713 A JP2021077713 A JP 2021077713A JP 2021077713 A JP2021077713 A JP 2021077713A JP 7656798 B2 JP7656798 B2 JP 7656798B2
Authority
JP
Japan
Prior art keywords
polynomial
target
points
processor
generating
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.)
Active
Application number
JP2021077713A
Other languages
English (en)
Other versions
JP2021177239A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020200139444A external-priority patent/KR20210136815A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2021177239A publication Critical patent/JP2021177239A/ja
Application granted granted Critical
Publication of JP7656798B2 publication Critical patent/JP7656798B2/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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)

Description

以下の実施形態は、同型暗号を用いた暗号化方法及び装置に関する。
完全同型暗号化(fully homomorphic encryption)は、暗号化されたデータを用いた任意の論理的演算又は数学的演算を可能にする暗号化方式である。完全同型暗号化方式は、データ処理でセキュリティーを保持可能にする。
しかし、従来における暗号化方式は、暗号化されたデータの処理が難しいため、顧客のプライバシーの保護が不十分であった。
完全同型暗号化は、顧客がプライバシーを守りながら多くのサービスを受けることを可能にする。
本発明の目的は、同型暗号を用いた暗号化方法及び装置を提供することにある。
プロセッサによって実行される同型暗号(homomorphic encryption)を用いた暗号化方法において、一実施形態に係る暗号化方法は、データを暗号化することで暗号文を生成するステップと、前記暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで、前記暗号文にブートストラップを行うステップとを含む。
前記行うステップは、前記モジュラーリダクションに対応する関数を近似することにより前記ブートストラップを行うステップを含むことができる。
前記モジュラーリダクションに対応する関数を近似することで前記ブートストラップを行うステップは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成するステップを含むことができる。
前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成するステップは、前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定するステップと、前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定するステップと、前記任意の多項式から選択された1つ以上の極点に基づいて前記ターゲット近似多項式を生成するステップとを含むことができる。
前記決定するステップは、前記1つ以上の基準点を通過する区分的連続関数を決定するステップと、前記1つ以上の基準点で前記区分的連続関数との誤差の絶対値が予め決定された値になる多項式を生成することで前記任意の多項式を決定するステップとを含むことができる。
前記区分的連続関数との誤差の絶対値が、予め決定された値になる多項式を生成することで前記任意の多項式を決定するステップは、前記1つ以上の基準点に含まれた第1基準点における誤差と前記第1基準点と隣接する第2基準点の誤差の符号が異なり、絶対値が前記予め決定された値になる多項式を生成することで前記任意の多項式を決定するステップを含むことができる。
前記任意の多項式から選択された1つ以上の極点に基づいて前記ターゲット近似多項式を生成するステップは、前記任意の多項式と前記1つ以上の基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか同じ候補点を決定するステップと、前記候補点のうち、前記次数に基づいた数のターゲット点を選択するステップと、前記ターゲット点に基づいて前記ターゲット近似多項式を生成するステップとを含むことができる。
前記ターゲット点を選択するステップは、前記候補点のうち、極大と極小が交互に示されるように前記ターゲット点を選択するステップを含むことができる。
前記ターゲット点を選択するステップは、前記誤差の絶対値の和が最大になるよう前記ターゲット点を選択するステップを含むことができる。
前記任意の多項式から選択された1つ以上の極点に基づいて前記ターゲット近似多項式を生成するステップは、前記1つ以上の極点の絶対値の最大値と最小値の相対誤差が閾値よりも小さい場合の多項式を前記ターゲット近似多項式で生成するステップを含むことができる。
前記ターゲット近似多項式の基底は、チェビシェフ多項式の基底であってもよい。
同型暗号を用いた暗号化装置において、データを暗号化することで暗号文を生成し、前記暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで、前記暗号文にブートストラップを行う1つ以上のプロセッサを含む。
前記暗号化装置は、前記1つ以上のプロセッサによって実行される命令を格納するメモリをさらに含み、前記1つ以上のプロセッサは、前記命令を実行して前記データを暗号化することで暗号文を生成し、前記暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで前記暗号文にブートストラップを行うことができる。
前記1つ以上のプロセッサは、前記モジュラーリダクションに対応する関数を近似することで前記ブートストラップを行うことができる。
前記1つ以上のプロセッサは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成することができる。
前記1つ以上のプロセッサは、前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定し、前記1つ以上の基準点に基づいて任意の多項式を取得し、前記任意の多項式から選択された1つ以上の極点に基づいて前記ターゲット近似多項式を生成することができる。
前記1つ以上のプロセッサは、前記1つ以上の基準点を通過する区分的連続関数を決定し、前記1つ以上の基準点で前記区分的連続関数との誤差の絶対値が、予め決定された値になる多項式を生成することで前記任意の多項式を決定することができる。
前記1つ以上のプロセッサは、前記1つ以上の基準点に含まれた第1基準点における誤差と前記第1基準点と隣接する第2基準点の誤差の符号が異なり、絶対値が前記予め決定された値になる多項式を生成することで前記任意の多項式を決定することができる。
前記1つ以上のプロセッサは、前記任意の多項式と前記1つ以上の基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか同じ候補点を決定し、前記候補点のうち、前記次数に基づいた数のターゲット点を選択し、前記ターゲット点に基づいて前記ターゲット近似多項式を生成することができる。
前記1つ以上のプロセッサは、前記候補点のうち、極大と極小が交互に示されるように前記ターゲット点を選択することができる。
前記1つ以上のプロセッサは、前記誤差の絶対値の和が最大になるように前記ターゲット点を選択することができる。
前記1つ以上のプロセッサは、前記1つ以上の極点の絶対値の最大値と最小値の相対誤差が閾値よりも小さい場合の多項式を前記ターゲット近似多項式で生成することができる。
前記ターゲット近似多項式の基底は、チェビシェフ多項式の基底であってもよい。
同型暗号化を行う装置において、暗号化されたデータの暗号文に対応するモジュラスに対して、1つ以上のターゲット点の選択に基づいたモジュラーリダクションに対応する関数の近似を行うことで前記暗号化されたデータの暗号文をブートストラップし、前記モジュラーリダクションに対応する前記関数を近似するターゲット近似多項式を生成する1つ以上のプロセッサとを含む。
前記近似多項式は、チェビシェフ交互定理(Chebyshev alternation theorem)を用いて生成されることができる。
前記1つ以上のプロセッサは、前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定し、前記1つ以上の基準点に基づいて任意の多項式を決定し、前記任意の多項式から選択された1つ以上の極点に基づいてターゲット近似多項式を生成することができる。
本発明によると、同型暗号を用いた暗号化方法及び装置を提供することができる。
一実施形態に係る暗号化装置の概略的なブロック図を示す。 図1に示された暗号化装置がターゲット近似多項式を生成するアルゴリズムの一例を示す。 図1に示された暗号化装置がターゲット近似多項式を生成するアルゴリズムの他の例を示す。 図1に示された暗号化装置がターゲット近似多項式を生成する動作のフローチャートを示す。 図1に示された暗号化装置が極点を探索する動作のフローチャートを示す。 図1に示された暗号化装置がターゲット点を選択するアルゴリズムの例を示す。 図1に示された暗号化装置がターゲット点を選択する動作のフローチャートを示す。 図1に示された暗号化装置の全体動作の順序を示す。
以下、添付の図面を参照して実施形態を詳細に説明する。しかし、実施形態には多様な変更が加えられることができ、特許出願の権利範囲がこの実施形態により制限されたり限定されることはない。実施形態に対するすべての変更、均等物ないし代替物が権利範囲に含まれるものとして理解されなければならない。
本明細書で用いる用語は、単に特定の実施形態を説明するために用いられるものであって、本発明を限定しようとする意図はない。単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものが存在することを示すものであって、一つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
また、図面を参照して説明する際に、図面符号に拘わらず同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略する。実施形態の説明において関連する公知技術に対する具体的な説明が本発明の要旨を不要に曖昧にすると判断される場合、その詳細な説明は省略する。
また、実施例の構成要素の説明において、第1,第2,A,B,(a),(b)などの用語を使用することができる。このような用語は、その構成要素を他の構成要素と区別するためのものであって、その用語によって該当の構成要素の本質や順番又は順序などが限定されることはない。いずれかの構成要素が他の構成要素に「連結」,「結合」又は「接続」されたと記載される場合、その構成要素はその他の構成要素に直接的に連結又は接続され得るが、各構成要素の間に更なる構成要素が「連結」,「結合」又は「接続」され得ると理解されなければならないのであろう。
いずれかの1つの実施形態に含まれている構成要素と、共通的な機能を含む構成要素は、他の実施形態において同じ名称を用いて説明することにする。反対となる記載がない以上、いずれか1つの実施形態に記載した説明は、他の実施形態にも適用されてもよく、重複する範囲で具体的な説明は省略することにする。
図1は、一実施形態に係る暗号化装置の概略的なブロック図を示す。
図1を参照すると、暗号化(encryption)装置10は、データの暗号化を行う。暗号化装置10は、データの暗号化を介して暗号化されたデータを生成する。以下において、暗号化されたデータは、暗号文(ciphertext)と称される。
暗号化装置10は、同型暗号を用いて暗号化されたデータを復号化することなく、演算できる暗号技術を提供することができる。例えば、暗号化装置10は、同型暗号を用いて暗号化された状態で演算した結果を復号化することで、平文(plain text)状態のデータを演算した結果と同じ結果が導き出される。暗号化装置10は、任意の実数又は複素数に対する同型暗号演算を提供することができる。
暗号化装置10は、同型暗号(homomorphic encryption)に必要なブートストラップ(bootstrapping)を行ってもよい。暗号化装置10は、同型暗号に求められるモジュラーリダクション(modular reduction)に対応する関数を近似するためにターゲット近似多項式を生成する。
暗号化装置10は、最適な最小最大近似多項式(optimal minimax approximate polynomial)の各次数に対して、最小最大近似誤差(minimax approximation error)を算出することができる。
暗号化装置10は、最適近似多項式をターゲット近似多項式により探すことで、同型暗号方式の最小最大近似誤差の観点で優れた性能を提供することができる。
暗号化装置10は、モジュラーリダクション関数を近似するための近似領域情報を用いて、モジュラーリダクション関数を近似するターゲット近似多項式を生成する。
暗号化装置10は、プロセッサ100及びメモリ200を含む。
プロセッサ100は、メモリ200に格納されたデータを処理する。プロセッサ100は、メモリ200に格納されたコンピュータで読み出し可能なコード(例えば、ソフトウェア)及びプロセッサ100によって誘発された命令(instruction)を実行する。
「プロセッサ100」は、目的とする動作を実行させるための物理的な構造を有する回路を有するハードウェアで具現されたデータ処理装置である。例えば、目的とする動作は、プログラムに含まれているコード又は命令を含んでもよい。
例えば、ハードウェアで具現されたデータ処理装置は、マイクロプロセッサ、中央処理装置、プロセッサコア、マルチコアプロセッサ、マルチプロセッサ、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)を含んでもよい。
プロセッサ100は、データを暗号化することで暗号文を生成する。プロセッサ100は、生成した暗号文に対応するモジュラスに対して、モジュラーリダクション(modular reduction)を行うことで暗号文にブートストラップを行ってもよい。
プロセッサ100は、モジュラーリダクションに対応する関数を近似することによりブートストラップを行う。プロセッサ100は、モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成する。
プロセッサ100は、ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定することができる。
プロセッサ100は、決定された1つ以上の基準点に基づいて任意の多項式を決定する。プロセッサ100は、1つ以上の基準点を通過する区分的連続(piecewise continuous)関数を決定する。プロセッサ100は、1つ以上の基準点で区分的連続関数との誤差の絶対値が、予め決定された値になる多項式を生成することで、任意の多項式を決定することができる。
プロセッサ100は、1つ以上の基準点に含まれた第1基準点における誤差と、第1基準点に隣接する第2基準点の誤差の符号が異なり、絶対値が予め決定された値になる多項式を生成することで、任意の多項式を決定することができる。
プロセッサ100は、任意の多項式から選択された1つ以上の極点(extremum point)に基づいてターゲット近似多項式を生成する。具体的に、プロセッサ100は、任意の多項式と1つ以上の基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか同じ候補点を決定することができる。
プロセッサ100は、決定した候補点のうち、ターゲット近似多項式の次数に基づいた数のターゲット点を選択する。プロセッサ100は、候補点のうち、極大と極小が交互に示されるようにターゲット点を選択してもよい。プロセッサ100は、任意の多項式と1つ以上の基準点を通過する区分的連続関数間の誤差の絶対値の和が最大になるようターゲット点を選択する。
プロセッサ100は、選択したターゲット点に基づいてターゲット近似多項式を生成する。プロセッサ100は、1つ以上の極点の絶対値の最大値と最小値の相対誤差が閾値よりも小さい場合の多項式を、ターゲット近似多項式で生成することができる。
ここで、ターゲット近似多項式の基底は、チェビシェフ(Chebyshev)多項式の基底であってもよい。
メモリ200は、プロセッサによって実行可能な命令(又は、プログラム)を格納する。例えば、命令は、プロセッサの動作及び/又はプロセッサの各構成の動作を実行するための命令を含んでもよい。
メモリ200は、揮発性メモリ装置又は不揮発性メモリ装置に具現されてもよい。
揮発性メモリ装置は、DRAM(dynamic random access memory)、SRAM(static random access memory)、T-RAM(thyristor RAM)、Z-RAM(zero capacitor RAM)、又はTTRAM(Twin Transistor RAM)で具現される。
不揮発性メモリ装置は、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュ(flash)メモリ、MRAM(Magnetic RAM)、スピン伝達トルクMRAM(Spin-Transfer Torque(STT)-MRAM)、Conductive Bridging RAM(CBRAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、抵抗メモリ(Resistive RAM(RRAM))、ナノチューブRRAM(Nanotube RRAM)、ポリマーRAM(Polymer RAM(PoRAM))、ナノ浮遊ゲートメモリ(Nano Floating Gate Memory(NFGM))、ホログラフィックメモリ(holographic memory)、分子電子メモリ素子(Molecular Eelectronic Memory Device)、又は、絶縁抵抗変化メモリ(Insulator Resistance Change Memory)に具現することができる。
以下において、図2A~図2Cを参照して暗号化装置10が暗号化及びブートストラップを行う過程について詳細に説明する。以下、暗号化装置10が行う暗号化動作の説明後も、ブートストラップ過程についてより詳細に説明する。
図2A及び図2Bは、図1に示された暗号化装置がターゲット近似多項式を生成するアルゴリズムの例を示し、図2Cは、図1に示された暗号化装置がターゲット近似多項式を生成する動作のフローチャートを示す。
図2A~図2Cを参照すると、プロセッサ100は、データに対する暗号化を行ってもよい。
以下、プロセッサ100の暗号化動作を説明するための表記について説明する。

以下、プロセッサが行う暗号化動作について説明する。
プロセッサ100は、実数又は複素数の暗号化されたデータに対する数個の演算を支援する。暗号化装置10は、主に実数を扱っているため、暗号化方式のセキュリティーを保障するノイズがデータの重要な要素の外部に受容されされてもよい。
数個の独立的なメッセージが暗号化前に基本埋め込み(canonical embedding)によって1つの多項式で符号化される。

暗号化装置10はキーを生成することができる。与えられたセキュリティーパラメータλに対して、暗号化装置10はMの累乗、整数h、整数P、正の実数α、フレッシュ暗号文モジュラス(fresh ciphertext modulus)q及び最大暗号文モジュラスとなるビッグ暗号文モジュラス(big ciphertext modulus)Qを選択する。
フレッシュ暗号文は、演算が実行されていない暗号化されたデータ又は最初に暗号化されたデータを意味する。
プロセッサ100は、パブリックキー(public key、pk)及びシークレットキー(secret key、sk)を数式(2)のように設定することができる。

プロセッサ100は、計算キー(evaluation key)を数式(3)のように設定することができる。

それぞれの暗号文は、ブートストラップなしに乗算の最大回数を示すレベルl(エル)を有する。レベルlの各暗号文に対するモジュラスqlはスケーリング因子がpであり、ベースモジュラスがqであるとき、pの値を有することができる。
さらに、プロセッサ100は、ブートストラップにおける同型線形変換に使用される複素共役(complex conjugation)演算及び回転(rotation)演算を行ってもよい。
以下、暗号化装置10が行うブートストラップの動作について説明する。
ブートストラップの目的は、乗算がこれ以上実行できないレベル0の暗号文をリフレッシュし、同じメッセージを有するレベルLの暗号文を生成することにある。
暗号文は、暗号化されたデータを意味する。暗号文のレベルは、ブートストラップなしに可能な乗算の数を意味する。
ブートストラップは、4つの動作を含んでもよい。最初に、ブートストラップはモジュラス増加動作を含み、第2に、同型線形変換動作を含む。第3に、同型モジュラーリダクション動作を含み、第4に、同型線形変換動作を含む。
プロセッサ100は、モジュラス増加を行ってもよい。モジュラス増加動作を説明するために、R q0の代わりにR の元素としてレベル0の暗号文が使用されてもよい。
レベル0の暗号文は〈ct,sk〉≒m mod qの状態であってもよい。ここで、ctは暗号文を意味し、skはシークレットキーを意味する。プロセッサ100が暗号文を復号化(decrypt)するときには、いかなるI∈Rに対して〈ct,sk〉≒m+qI mod Qの形態を有してもよい。
ここで、skの係数が小さい数を有しているため、Iの係数の絶対値は小さい数を有する。例えば、Iの係数の絶対値は12よりも小さい値を有する。
プロセッサ100は、レベル0の暗号文にブートストラップを行うことで〈ct’,sk〉≒m mod qを満たすct’を作ることができる。そのため、プロセッサ100は、同型線形変換及びモジュラーリダクション関数の同型計算を行うことができる。
以下では、プロセッサ100の同型線形変換動作について説明する。モジュラス増加が実行された後、暗号文ctはm+qIを暗号化する暗号文として見なし得る。プロセッサ100は、メッセージ多項式の係数にモジュラーリダクションを同型的に行う。
演算はスロットのためのものであり、メッセージ多項式の係数に対するものではないため、係数に意味のある演算を行うために、プロセッサ100は、ctをm+qIの係数をそのスロット(slot)に暗号化する暗号文に変換することができる。
プロセッサ100は、同型モジュラーリダクション関数の計算以後に変換された暗号文を以前の暗号文のスロットをそのメッセージの係数で暗号化する他の暗号文ct’に逆変換する。以下では、このような変換及び逆変換演算をそれぞれCOEFFToSLOT及びSLOTToCOEFFと称する。
上述した2つの変換演算は、メッセージの符号化及び復号化の同型計算として見なし、Φ(x)の根に対するヴァンデルモンド(Vandermonte)の行列の一部の変数による線形変換であってもよい。また、変換演算は、一般的な同型行列乗算又はFFT-類似(fast Fourier transform-like)演算によって実行されてもよい。
プロセッサ100は、同型モジュラーリダクション(又は、モジュラーリダクション)動作を行ってもよい。具体的に、プロセッサ100は、同型モジュラーリダクション関数を用いてモジュラーリダクション動作を行ってもよい。
OEFFToSLOT変換が行われた後、プロセッサ100は、モジュラスqにて各スロット上にモジュラーリダクションを同型的に行うことができる。以下では、このような過程はEVALMODと称する。
プロセッサ100はメッセージの範囲を、m/qを十分に小さくするよう制限することで、近似領域をqの倍数の近所に制限する。このような範囲の制限により、プロセッサ100は、モジュラーリダクションをより効率よく行うことができる。
以下、図2Aに示すアルゴリズムについて詳細に説明する。
プロセッサ100は、図2Aに示すアルゴリズム1を用いて区間[a,b]上の任意の連続関数について最小最大近似多項式を探すことで、ターゲット近似多項式を生成することができる。プロセッサ100は、チェビシェフ交互定理(Chebyshev alternation theorem)を用いて、equioscillation条件が満たされるターゲット近似多項式を生成することができる。
プロセッサ100は、ハール条件(Haar condition)を満たす基底関数{g,...,g}を有するターゲット近似多項式を生成する。プロセッサ100は、次数がdであるターゲット近似多項式を生成するため、基底関数{g,...,g}をパワー基底(power basis){1,x,...,xd}として選択する。ここで、n=d+1であってもよい。
プロセッサ100は、最小最大近似多項式の極点に収斂する基準点の集合を初期化することができる。プロセッサ100は、基準点の集合に対して最小最大多項式を取得する。基準点の集合は[a,b]で有限な点の集合であるため、[a,b]の閉部分集合であってもよく、基準点に集合に対してチェビシェフ交互定理が満たされる。
f(x)が[a,b]上の連続関数であれば、基準点の集合上の最小最大近似多項式は、基底{g,...,g}を有する一般化された多項式p(x)であり、任意のE値に対して数式(8)の条件を満たす。

プロセッサ100は、数式(8)を用いて任意の多項式p(x)を取得する。数式(8)により、p(x)及びEのn係数のn+1の変数及びn+1の方程式を有する線形方程式のシステムが形成され、線形方程式は、ハール条件により特異的でないため、プロセッサ100は、数式(8)の条件を満たす多項式p(x)を決定することができる。
プロセッサ100は、z=a,zn+1=b=1,2,...,n、であるとき、xとxi+1との間でp(x)-f(x)のn個の零点(zeros)zを取得し、それぞれの[zi-1,z]でp(x)-f(x)のn+1個の極点であるy,...,yn+1を取得することができる。
プロセッサ100は、p(x)-f(x)<0であるとき、[zi-1,z]でp(x)-f(x)の最小点を選択し、p(x)-f(x)>0であるとき、[zi-1,z]でp(x)-f(x)の最大点を選択することができる。
これを通じて、プロセッサ100は、新しい極点の集合y,...,yn+1を候補点として選択することができる。このような候補点がequioscillation条件を満たせば、プロセッサ100は、チェビシェフ交互定理から最小最大近似多項式を返還することで、ターゲット近似多項式を生成することができる。
また、プロセッサ100は、基準点の集合を上述した過程を介して取得した新しい極点の集合であるy,...,yn+1に代替し、上述した多項式の生成過程を繰り返して行う。
図2Aに示されたアルゴリズム1は、1つの区間の多重部分区間(multiple sub-intervals)に拡張されてもよい。多重部分区間で拡張して適用される場合、図2Aのステップ3とステップ4が変更される。
それぞれの繰り返しで、プロセッサ100は、誤差関数p-fの全ての地域極点を取得し、このような地域極点の絶対誤差値は、現在の基準点における絶対誤差値よりも大きくてもよい。
その後、プロセッサ100は、取得した全ての地域極点のうち次の2つの条件が満たされるn+1個の新しい極点を選択することができる。
1.誤差値は符号が交互に表示される。
2.新しい極点の集合は、全域極点(global extreme point)を含む。
上述した2つの条件は、最小最大一般化多項式の収斂を保障する。
図2B及び図2Cは、図2Aに示すアルゴリズムを修正した多項式生成方法を示す。プロセッサ100は、全ての地域極点のうち新しい極点を選択する方法を変更してもよい。
図2Bに示すアルゴリズムをフローチャートに示せば、図2Cの通りである。プロセッサ100は、近似領域でd+2個の点を設定する(S210)。d+2個の点は上記で説明した1つ以上の基準点を意味する。
プロセッサ100は、d+2個の基準点に基づいて任意の多項式を取得することができる。例えば、プロセッサ100は、数式(8)を満たす多項式p(x)とE値を探す(S220)。
プロセッサ100は、p(x)-f(x)の局所極大点と局所極小点のうち、絶対値がEよりも大きいか同じ点を取得する(S230)。ここで、E値は、上述した予め決定された値を意味し、取得された局所極大点と局所極小点は上記で説明した候補点を意味する。
プロセッサ100は、取得した点のうち、極大と極小が交互に示されるようd+2個の点を選択するが、p(x)-f(x)の絶対値の和が最大になるよう、d+2個の点を選択する(S240)。絶対値が和が最大になるd+2個の点は上記で説明したターゲット点を意味する。絶対値の和が最大になるようにd+2個の点を選択する過程については、図4A、図4Bを参照して詳しく説明する。
プロセッサ100は、選択したd+2個のターゲット点のうち、絶対値の最大値と最小値の相対誤差がδよりも小さいかを判別する(S250)。δは、上記で説明した閾値を意味する。
プロセッサ100は、ターゲット点に対応する絶対値の最大値及び最小値の相対誤差がδよりも小さい場合、任意の多項式p(x)をターゲット近似多項式で出力する(S260)。そうではない場合、プロセッサ100は、S220ないしS250の過程を繰り返す。
以下では、図2B及び図2Cの動作をより詳しく説明する。
プロセッサ100が近似しようとする関数は、数式(9)に表現される有限な数字の整数近所でのみ定義される正規化されたモジュラーリダクション(normalized modular reduction)関数である。

数式(9)は、ドメイン及び範囲に対してスケーリングされたモジュラーリダクション関数を示す。
プロセッサ100は、同型計算(homorphic evaluation)を効率的に行うために、normod(x)を近似するためコサイン関数を倍角の公式(double-angle formula)を用いて近似することができる。
倍角の公式をl(エル)回使用すれば、数式(10)のコサイン関数が近似されなければならない。

数式(9)、(10)の関数を含む区分的連続関数を近似するために、プロセッサ100は、数式(11)のように与えられる有限な複数の閉じた区間の和集合(union)上に定義される一般的な区分的連続関数を仮定する。

ここで、全てのi=1,...,t-1に対して、a<b<ai+1<bi+1であってもよい。
プロセッサ100は、d以下の次数を有する多項式で与えられた区分的連続関数を数式(11)のD上に近似するため、複数の極点から新しいd+2個の基準点を選択するための基準を設定することができる。
プロセッサ100は[a,b]上でハール条件が満たされる{g,...,g}を多項式の基底にして、ターゲット近似多項式を生成することができる。プロセッサ100は、各繰り返しで基準点の集合による最小最大近似多項式を取得することができ、次の繰り替えしで新しい基準点の集合を選択することができる。
プロセッサ100が基準点の集合を用いて取得した任意の多項式を用いて算出した誤差関数の極点のうち、n+1個の点を選択する場合の数は極めて多いこともある。プロセッサ100が行う暗号化過程において、多くの区間が考慮され得るため、候補極点の数が極めて多くてもよい。
プロセッサ100は、繰り返しの数を最大に減らすために、各繰り返しで複数の候補点のうち、n+1個のターゲット点を選択してもよい。そのため、プロセッサ100は、各繰り返しで生成する近似多項式を収斂させて最小最大近似多項式を生成することができる。
n+1個のターゲット点を選択する基準を設定するため、プロセッサ100は数式(12)の関数を定義する。

ここで、p(x)は各繰り返しで取得した任意の多項式を意味し、f(x)は近似される区分的連続関数を意味する。以下で便宜のためにμp,fはμと称する。
プロセッサ100は、p(x)-f(x)の全ての極点を取得して集合Bを生成する。Bは有限集合として、B={x,x,...,x}のように示すことができる。プロセッサ100は、Bに属する1つの区間で一点を選択してもよい。
Bがx<x<・・・<xのように昇べきの順で整列されていると仮定すれば、μの値は1又は-1であってもよい。極点の数はm≧n+1を満たす。
プロセッサ100は、関数の集合Sを数式(13)のように定義する。

ここで、n+1=mである場合、集合Sは恒等関数(identity function)のみを含んでもよい。
プロセッサ100は、n+1個の極点を選択するために3種類の基準を設定することができる。
最初の条件として、プロセッサ100は、地域極値(local extreme value)条件を設定する。もし、Eが設定された基準点における絶対誤差であれば、数式(14)の条件が設定されてもよい。

プロセッサ100は、地域極値の条件を満たすためにp(x)-f(x)の地域最大値が負数であるか、p(x)-f(x)の地域最小値が正数である場合にその極点を捨てることができる。
第2に、プロセッサ100は、交互条件を設定する。言い換えれば、数式(15)の条件が設定されてもよい。言い換えれば、隣接する2つの極点のうち1つの極点が地域最大値であれば、他の1つの極点は地域最小値であってもよい。

第3に、プロセッサ100は、最大絶対和の条件(maximum absolute sum condition)を設定する。プロセッサ100は、地域極値の条件及び交互条件が満たされるσのうち、数式(16)の値を最大化するσを選択することができる。

現在の基準点であるx,・・・,xn+1における絶対誤差値は小最大近似誤差よりも小さく、繰り返し回数が増加するほど、最小最大近似誤差として収斂されることができる。
また、現在の基準点の絶対誤差値は、x,・・・,xn+1で以前の繰り返しにおける近似多項式の絶対誤差値の加重平均であってもよい。
プロセッサ100は、最大絶対和の条件を用いて現在の基準点の絶対誤差値が最小最大近似誤差として早く収斂するようにする。
地域極値の条件及び交互条件は、図2A及び図2Bに示すアルゴリズムの全てに適用され、最大絶対和の条件は、図2Bに示すアルゴリズム2に適用される。プロセッサ100は、最大絶対和の条件を適用させることで、最小最大近似多項式の収斂を加速化することができる。

プロセッサ100は、図2Bに示すアルゴリズム2のステップ2、3及び4を下記のように効率よく行うことができる。プロセッサ100は、連続関数f(x)に対する現在の基準点におけるパワー基底を有する近似多項式の係数を探すことができる。
言い換えれば、プロセッサ100は、数式(17)の係数c値を取得することでターゲット近似多項式を生成し得る。

ここで、Eは、線形方程式の任意の未知数であってもよい。近似多項式の基底の次数が増加するほど係数は減少する。プロセッサ100は、高い次数の基底の係数に対してより高い正確度を設定しなければならない。
従って、プロセッサ100は、ターゲット近似多項式の基底をチェビシェフ多項式の基底を用いることで正確度の問題を効率よく解決することができる。チェビシェフ基底を用いた多項式の係数は、ほとんど同じ次数(order)を有するため、プロセッサ100は、パワー基底の代わりにチェビシェフ基底を用いてターゲット近似多項式を生成することができる。
チェビシェフ多項式は、上述したハール条件を満たし、プロセッサ100は、d+2個の基準点を用いて数式(18)のd+2個の線形方程式のシステムを解いてc及びEを算出することで、ターゲット近似多項式を取得することができる。

図3は、図1に示された暗号化装置が極点を探索する動作のフローチャートを示す。
図3を参照すると、プロセッサ100は、基準点に基づいて任意の多項式を取得し、任意の多項式と基準点を通過する区分的連続関数間の誤差の極点を探索することができる。プロセッサ100は、任意の多項式と基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか、又は同じ候補点を取得することができる。以下、プロセッサ100が極点を探索して候補点を取得する過程について説明する。
プロセッサ100は、任意の多項式と区分的連続関数間の誤差であるp(x)-f(x)を小さいステップ(step)でスキャンし、増加と減少が変わる極点を取得することができる。
一般に、小さいステップは、極点探索の正確度を増加させるが、スキャン時間が増加してもよい。具体的に、l(エル)ビットの正確度で極点を取得するためには2に比例する時間が費やされる。
しかし、プロセッサ100は、後述する探索動作によって2時間の代わりにlの線形時間(linear time)内に極点を探索することができる。
プロセッサ100は、バイナリサーチ(binary search)方式を用いて増加と減少が変わる極点の探索時間を低減することができる。
以下では、任意の多項式と区分的連続関数の誤差をr(x)=p(x)-f(x)のように示し、scはスキャンステップを示す。

数式(19)の過程を介して、プロセッサ100はO(log(sc)+l)
ビットの正確度(precision)で極点を取得することができる。
以下、上述した極点探索を通した候補点の取得過程を詳しく説明する。プロセッサ100は、近似領域のうち最も小さい点xを取得する(S310)。プロセッサ100は、xが極大値である場合、r(x)がEの絶対値よりも大きいか同一であるか、xが極小値である場合、r(x)がEの絶対値に-1を乗算した値よりも小さいかを判断する(S320)。
ステップS320の条件が満たされる場合、プロセッサ100は、xを配列Bに追加する(S321)。ステップS320の条件が満たされない場合、プロセッサ100は、xにx+scを代入する(S330)。
その後、プロセッサ100は、xが近似領域に含まれているかを判断する(S340)。Xが近似領域に含まれている場合、プロセッサ100は、r(x)-r(x-sc)とr(x+sc)-r(x)の符号が異なるかを判断する(S350)。
xが近似領域に含まれていない場合、プロセッサ100は、xに該当区間の最も大きい値を代入する(S341)。ここで、プロセッサ100は、xが極大値である場合、r(x)がEの絶対値よりも大きいか同一であるか、又は、xが極小値である場合、r(x)がEの絶対値に-1を乗算した値よりも小さいかを判断する(S342)。
プロセッサ100は、ステップS342の条件が満たされる場合、xを配列Bに追加し(S343)、ステップS342の条件が満たされない場合、xが近似領域の最大値であるかを判断する(S344)。ここで、xが近似領域の最大値である場合、プロセッサ100は動作を終了し、xが近似領域の最大値でない場合、xを次の区間の最も小さい値に代入する(S345)。
プロセッサ100は、r(x)-r(x-sc)とr(x+sc)-r(x)の符号が同一である場合、ステップS330の動作を再び実行し、r(x)-r(x-sc)とr(x+sc)-r(x)の符号が異なる場合、l(エル)に0を代入し、tにsc/2を代入する(S360)。
プロセッサ100は、r(x)-r(x-sc)の値が0よりも大きいかを判断する(S370)。プロセッサ100は、ステップS370の条件が満たされる場合、x-t、x、x+tのうち、r(x)値が大きいものを選択してxに代入する(S371)。その後、プロセッサ100は、lにl+1を代入し、tにt/2を代入する(S372)。
プロセッサ100は、lが正確度値であるかを比較する(S373,S374)。プロセッサ100は、lが正確度値でない場合、ステップS371の過程を再び行ってもよい。プロセッサ100は、lが正確度値である場合、x-t、x、x+tのうち、r(x)値が小さいものを選択してxに代入する(S375)。その後、プロセッサ100は、lにl+1を代入し、tにt/2を代入する(S376)。
プロセッサ100は、S373、S374の条件が満たされる場合、ステップS320の動作を再び行ってもよい。最終的に、プロセッサ100は、配列Bに属する極点を候補点として取得することができる。
scの値が十分に小さければ、|r(x)|はa>0であり、xの近くのbに対してa(x-x+bと類似して動作することができる。このような、動作を通じてプロセッサ100は、xの近所で|x-x|<|x-x|である場合、|r(x)|>|r(x)|を保障することができ、その逆も保障できる。
上述した極点探索を通した候補点の取得動作により、プロセッサ100は、lのビット正確度を有する極点を2時間の代わりに、lの線形時間(linear time)内に探索して候補点を取得することができる。
図4Aは、図1に示された暗号化装置がターゲット点を選択するアルゴリズムの例を示し、図4Bは、図1に示された暗号化装置がターゲット点を選択する動作のフローチャートを示す。
図4A及び図4Bを参照すると、プロセッサ100は、図3に示す探索動作によって探した候補点のうち、ターゲット近似多項式の次数に基づいた数のターゲット点を選択する。
プロセッサ100は、候補点のうち極大と極小が交互に示されるようにターゲット点を選択し、誤差の絶対値の和が最大になるようターゲット点を選択する。ターゲット点は、次の繰り返し(iteration)動作における新しい基準点になり得る。
以下では、ターゲット点を取得する過程について詳細に説明する。プロセッサ100は、ターゲット点(又は、新しい基準点)を探すために上記で説明した地域極値の条件、交互条件、及び最大絶対和の条件が満たされる点をサイーブ(naive)な方式で選択することができる。
ナイーブな選択方式は、交互条件が満たされる全てのn+1個の点に対して絶対和を算出し、最大絶対和を有するn+1個の点を選択してもよい。ナイーブな選択方式である場合、地域極点の数がmである場合、( n+1)個の点を全て調査しなければならない。
プロセッサ100は、図4A及び図4Bに示す動作により、ナイーブな方式に比べてターゲット点を選択する時間を低減することができる。以下では、ターゲット点を効率よく選択する動作について説明する。
プロセッサ100は、繰り返しの動作ごとに候補点のうち、一部の元素を除去することで、最終的にn+1個のターゲット点を取得することができる。m>n+1である場合、ターゲット点に含まれていない点が少なくとも1つ存在し得る状態であってもよい。
図4Aに示すアルゴリズムを介して、プロセッサ100は、O(mlogm)時間内にターゲット点を選択する。言い換えれば、プロセッサ100は、準線型(quasi-linear)時間内にターゲット点を選択することができる。
順に整列した集合Bから元素が除去されるごとに、残っている元素は整列され、インデックスである昇順で再びラベル(relabeled)されてもよい。
プロセッサ100は、アルゴリズムの4aで一部の極点を除去するために値を比較するとき、比較される値が同一であるか最も小さい元素が1つ以上の場合、このような元素をランダムに除去することができる。
図4Bに示すフローチャートは、図4Aに示すアルゴリズムの動作の順序を示す。図4A及び図4Bの動作により、プロセッサ100は、ターゲット点を元素として有する配列Bを取得することができる。
プロセッサ100は、iに1を代入する(S410)。プロセッサ100は、xとxi+1の両方が極大であるか極小であるかを判断する(S420)。
ステップS420の条件を満たす場合、プロセッサ100は、xとxi+1のうち|r(x)|値が小さい値は配列から除去し、配列の元素を再配列する(S421)。|r(x)|値は、上述した任意の多項式と区分的連続関数の誤差値を意味する。ステップS420の条件が満たされない場合、プロセッサ100は、iにi+1を代入する(S422)。
再配列した後、プロセッサ100は、xが配列Bで最も大きい点であるかを判断する(S430)。xが最も大きい点ではない場合、プロセッサ100は420の動作を再び行う。
ステップS410~ステップS430の動作は、図4Aに示すアルゴリズム3のステップ1~7の動作に対応する。
が最も大きい点である場合、プロセッサ100は、Bの元素の個数がd+2個であるかを判断する(S440)。Bの元素の個数がd+2個である場合、プロセッサ100は、ターゲット点の選択動作を終了する。
Bの元素の個数がd+2個でない場合、プロセッサ100は、隣接する2点の|r(x)|値を加えた値の全てを配列Tに入れて整列する(S450)。言い換えれば、|r(x)|+|r(x)|,|r(x)|+|r(x)|,|r(x)|+|r(x)|,・・・をTに入れて整列することができる。
ステップS440~ステップS450の動作は、図4Aに示すルゴリズムのステップ9~ステップS10の動作に対応する。
プロセッサ100は、Bの元素の個数がd+3個であるかを判断する(S460)。Bの元素の個数がd+3個である場合、プロセッサ100はx、xd+3のうち|r(x)|値が小さい値を配列から捨て、配列の再配列を行って動作を終了する(S461)。
プロセッサ100は、Bの元素の個数がd+4個であるか判断する(S470)。Bの元素の個数がd+4個である場合、プロセッサ100はTに|rx1|+|rxd+4|を追加して再整列する(S471)。その後、プロセッサ100は、Tで最も小さい値に該当する2点をBから除去して再配列した後、動作を終了する(S472)。
プロセッサ100は、Bの元素の個数がd+4でない場合、Tで最も小さい値に該当する2点のうち、両端の2個の点のうち1つが含まれているかを判断する(S480)。ステップS480の条件が満たされる場合、プロセッサ100は、両端2個の点のうちの1つをBから捨てて再配列する(S481)。ステップS480の条件を満たされない場合、プロセッサ100は、Tで最も小さい値に該当する2点を全てBから捨てて再配列する(S482)。
その後、プロセッサ100は、Tから捨てられた元素が含まれている値は捨て、新しく隣接になった2点の|r(x)|値を加えた値を追加して再整列した後、ステップS460の動作を再び行う(S490)。ステップS460~ステップS490の動作については、図4Aに示すステップS11~ステップS23の動作に対応する。
図4Aに示すアルゴリズムの最後の部分で極点X2が除去される場合について説明すると、
T={|r(x)|+|r(x)|,|r(x)|+|r(x)|,|r(x)|+|r(x)|,・・・}
は、
T={|r(x)|+|r(x)|,|r(x)|+|r(x)|,・・・}
のように変更される。
図4A及び図4Bに示すターゲット点を選択する動作により、プロセッサ100は準線型時間内に候補点からターゲット点を選択することができる。
プロセッサ100は、選択したターゲット点に基づいてモジュラーリダクション関数を最適に近似するターゲット近似多項式を生成することができる。言い換えれば、プロセッサ100は、選択したターゲット点を経由するd次多項式をターゲット近似多項式により生成することができる。
図5は、図1に示された暗号化装置の全体動作の順序を示す。
プロセッサ100は、同型暗号(homomorphic encryption)を用いてデータに対する暗号化を行う。プロセッサ100は、データを暗号化することで暗号文を生成する(S510)。
プロセッサ100は、生成した暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで、暗号文にブートストラップを行う(S530)。
プロセッサ100は、モジュラーリダクションに対応する関数を近似することで、ブートストラップを行ってもよい。プロセッサ100は、モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成する。
プロセッサ100は、ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定する。プロセッサ100は、決定された1つ以上の基準点に基づいて任意の多項式を取得する。
具体的に、プロセッサ100は、1つ以上の基準点を通過する区分的連続関数を取得し、1つ以上の基準点で区分的連続関数との誤差の絶対値が予め決定された値になる多項式を生成することで、任意の多項式を取得することができる。
プロセッサ100は、1つ以上の基準点に含まれた第1基準点における誤差と、第1基準点と隣接する第2基準点の誤差の符号が異なり、絶対値が予め決定された値になる多項式を生成することで、任意の多項式を取得することができる。
プロセッサ100は、取得した任意の多項式から選択された1つ以上の極点に基づいてターゲット近似多項式を生成する。プロセッサ100は、任意の多項式と1つ以上の基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか同じ候補点を取得することができる。
プロセッサ100は、取得した候補点のうち、ターゲット近似多項式の次数に基づいた数のターゲット点を選択する。具体的に、プロセッサ100は、候補点のうち、極大と極小が交互に示されるようにターゲット点を選択してもよい。プロセッサ100は、区分的連続関数の任意の多項式の誤差の絶対値の和が最大になるようにターゲット点を選択してもよい。
プロセッサ100は、選択したターゲット点に基づいてターゲット近似多項式を生成する。プロセッサ100は、1つ以上の極点の絶対値の最大値と最小値の相対誤差が、閾値よりも小さい場合の多項式をターゲット近似多項式により生成することができる。
ここで、ターゲット近似多項式の基底(basis)は、チェビシェフ多項式の基底が使用され得る。
実施形態に係る方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順で実行されるし、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
したがって、他の具現、他の実施形態、及び特許請求の範囲と均等なものも後述する請求範囲の範囲に属する。

Claims (20)

  1. プロセッサによって実行される同型暗号を用いた暗号化方法において、
    データを暗号化することで暗号文を生成するステップと、
    前記暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで、前記暗号文にブートストラップを行うステップと、
    を含み、前記行うステップは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成するステップを行うことにより前記ブートストラップを行うステップを含み
    前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成するステップは、
    前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定するステップと、
    前記1つ以上の基準点に基づいて任意の多項式を取得するステップと、
    前記任意の多項式から選択された1つ以上の極点に基づいて決定される前記ターゲット点に基づき、前記ターゲット近似多項式を生成するステップと
    を含む、暗号化方法。
  2. 前記決定するステップは、前記1つ以上の基準点を通過する区分的連続関数を決定するステップと、
    前記1つ以上の基準点で前記区分的連続関数との誤差の絶対値が予め決定された値になる多項式を生成することで前記任意の多項式を決定するステップと、
    を含む、請求項に記載の暗号化方法。
  3. 前記区分的連続関数との誤差の絶対値が、予め決定された値になる多項式を生成することで前記任意の多項式を決定するステップは、前記1つ以上の基準点に含まれた第1基準点における誤差と前記第1基準点と隣接する第2基準点の誤差の符号が異なり、絶対値が前記予め決定された値になる多項式を生成することで前記任意の多項式を決定するステップを含む、請求項に記載の暗号化方法。
  4. 前記任意の多項式から選択された1つ以上の極点に基づいて前記ターゲット近似多項式を生成するステップは、
    前記任意の多項式と前記1つ以上の基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか同じ候補点を決定するステップと、
    前記候補点のうち、前記次数に基づいた数のターゲット点を選択するステップと、
    前記ターゲット点に基づいて前記ターゲット近似多項式を生成するステップと、
    を含む、請求項に記載の暗号化方法。
  5. 前記ターゲット点を選択するステップは、前記候補点のうち、極大と極小が交互に示されるように前記ターゲット点を選択するステップを含む、請求項に記載の暗号化方法。
  6. 前記ターゲット点を選択するステップは、前記誤差の絶対値の和が最大になるよう前記ターゲット点を選択するステップを含む、請求項に記載の暗号化方法。
  7. 前記任意の多項式から選択された1つ以上の極点に基づいて前記ターゲット近似多項式を生成するステップは、前記1つ以上の極点の絶対値の最大値と最小値の相対誤差が閾値よりも小さい場合の多項式を前記ターゲット近似多項式で生成するステップを含む、請求項に記載の暗号化方法。
  8. 前記ターゲット近似多項式の基底は、チェビシェフ多項式の基底である、請求項に記載の暗号化方法。
  9. 求項1~請求項のいずれか一項に記載の暗号化方法を前記プロセッサに実行させるコンピュータプログラム。
  10. 同型暗号を用いた暗号化装置において、
    データを暗号化することで暗号文を生成し、前記暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで、前記暗号文にブートストラップを行う1つ以上のプロセッサを含み、
    前記1つ以上のプロセッサは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成することで前記ブートストラップを行い、
    前記1つ以上のプロセッサは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成する場合において、
    前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定し、
    前記1つ以上の基準点に基づいて任意の多項式を取得し、
    前記任意の多項式から選択された1つ以上の極点に基づいて決定される前記ターゲット点に基づき、前記ターゲット近似多項式を生成する、暗号化装置。
  11. 前記1つ以上のプロセッサによって実行される命令を格納するメモリをさらに含み、
    前記1つ以上のプロセッサは、前記命令を実行して前記データを暗号化することで暗号文を生成し、前記暗号文に対応するモジュラスに対して1つ以上のターゲット点の選択に基づいたモジュラーリダクションを行うことで前記暗号文にブートストラップを行う、請求項10に記載の暗号化装置。
  12. 前記1つ以上のプロセッサは、
    前記1つ以上の基準点を通過する区分的連続関数を決定し、
    前記1つ以上の基準点で前記区分的連続関数との誤差の絶対値が予め決定された値になる多項式を生成することで前記任意の多項式を決定する、請求項10に記載の暗号化装置。
  13. 前記1つ以上のプロセッサは、前記1つ以上の基準点に含まれた第1基準点における誤差と前記第1基準点と隣接する第2基準点の誤差の符号が異なり、絶対値が前記予め決定された値になる多項式を生成することで前記任意の多項式を決定する、請求項12に記載の暗号化装置。
  14. 前記1つ以上のプロセッサは、
    前記任意の多項式と前記1つ以上の基準点を通過する区分的連続関数間の誤差の極点のうち、絶対値が予め決定された値よりも大きいか同じ候補点を決定し、
    前記候補点のうち、前記次数に基づいた数のターゲット点を選択し、
    前記ターゲット点に基づいて前記ターゲット近似多項式を生成する、請求項10に記載の暗号化装置。
  15. 前記1つ以上のプロセッサは、前記候補点のうち、極大と極小が交互に示されるように前記ターゲット点を選択する、請求項14に記載の暗号化装置。
  16. 前記1つ以上のプロセッサは、前記誤差の絶対値の和が最大になるように前記ターゲット点を選択する、請求項14に記載の暗号化装置。
  17. 前記1つ以上のプロセッサは、前記1つ以上の極点の絶対値の最大値と最小値の相対誤差が閾値よりも小さい場合の多項式を前記ターゲット近似多項式で生成する、請求項10に記載の暗号化装置。
  18. 前記ターゲット近似多項式の基底は、チェビシェフ多項式の基底である、請求項10に記載の暗号化装置。
  19. 同型暗号化を行う装置において、
    暗号化されたデータの暗号文に対応するモジュラスに対して、1つ以上のターゲット点の選択に基づいたモジュラーリダクションに対応する関数の近似を行うことで前記暗号化されたデータの暗号文をブートストラップし、
    前記モジュラーリダクションに対応する前記関数を近似するターゲット近似多項式を生成する1つ以上のプロセッサをみ、
    前記1つ以上のプロセッサは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成することで前記ブートストラップを行い、
    前記1つ以上のプロセッサは、前記モジュラーリダクションに対応する関数を近似するターゲット近似多項式を生成する場合において、
    前記ターゲット近似多項式の次数に基づいて1つ以上の基準点を決定し、
    前記1つ以上の基準点に基づいて任意の多項式を決定し、
    前記任意の多項式から選択された1つ以上の極点に基づいて決定される前記ターゲット点に基づき、前記ターゲット近似多項式を生成する、装置。
  20. 前記ターゲット近似多項式は、チェビシェフ交互定理(Chebyshev alternation theorem)を用いて生成される、請求項19に記載の装置。
JP2021077713A 2020-05-08 2021-04-30 同型暗号を用いた暗号化方法及び装置 Active JP7656798B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063021761P 2020-05-08 2020-05-08
US63/021,761 2020-05-08
KR1020200139444A KR20210136815A (ko) 2020-05-08 2020-10-26 동형 암호를 이용한 암호화 방법 및 장치
KR10-2020-0139444 2020-10-26

Publications (2)

Publication Number Publication Date
JP2021177239A JP2021177239A (ja) 2021-11-11
JP7656798B2 true JP7656798B2 (ja) 2025-04-04

Family

ID=75659968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021077713A Active JP7656798B2 (ja) 2020-05-08 2021-04-30 同型暗号を用いた暗号化方法及び装置

Country Status (4)

Country Link
US (1) US12192320B2 (ja)
EP (1) EP3907926B1 (ja)
JP (1) JP7656798B2 (ja)
CN (1) CN113630234A (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102304992B1 (ko) * 2021-04-07 2021-09-27 서울대학교산학협력단 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
US12463792B2 (en) * 2021-06-28 2025-11-04 Duality Technologies, Inc. Accelerated division of homomorphically encrypted data
US12381710B2 (en) * 2021-11-04 2025-08-05 Samsung Electronics Co., Ltd. Crypto processor and electronic device including the same
US12362905B2 (en) * 2021-12-09 2025-07-15 Electronics And Telecommunications Research Institute Computing apparatus and method of integrating different homomorphic operations in homomorphic encryption
US20250055671A1 (en) * 2021-12-14 2025-02-13 NEC Laboratories Europe GmbH Using leveled homomorphic encryption in a client-server setting for evaluating an artificial neural network over an encrypted input
US12362904B2 (en) 2022-02-18 2025-07-15 Samsung Electronics Co., Ltd. Homomorphic encryption operation accelerator, and operating method of homomorphic encryption operation accelerator
US20230315920A1 (en) * 2022-04-02 2023-10-05 Intel Corporation Apparatus and method to implement homomorphic encyption and computation with dram
CN114553394B (zh) * 2022-04-22 2022-08-16 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于多密钥全同态方案的补码运算器及运算方法
CN114745116B (zh) * 2022-04-27 2024-04-05 浙江数秦科技有限公司 一种安全交换秘钥的方法
JP7556577B2 (ja) * 2022-10-03 2024-09-26 株式会社アクセル 暗号処理装置、暗号処理方法、暗号処理プログラム
US12587355B2 (en) 2023-09-05 2026-03-24 International Business Machines Corporation Polynomial evaluation under fully homomorphic encryption
US12562886B2 (en) * 2024-03-13 2026-02-24 International Business Machines Corporation Fast polynomial evaluation under fully homomorphic encryption by products of differences from roots using rotations
US20260039449A1 (en) * 2024-08-01 2026-02-05 International Business Machines Corporation Increasing the speed of homomorphic encryption encoding

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8249250B2 (en) 2009-03-30 2012-08-21 Mitsubishi Electric Research Laboratories, Inc. Secure similarity verification between homomorphically encrypted signals
WO2012149395A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
KR101608515B1 (ko) 2013-10-14 2016-04-01 서울대학교기술지주 주식회사 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
KR102019159B1 (ko) 2013-12-23 2019-09-09 한국전자통신연구원 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
KR101618941B1 (ko) 2014-01-09 2016-05-09 서울대학교산학협력단 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
US9946970B2 (en) 2014-11-07 2018-04-17 Microsoft Technology Licensing, Llc Neural networks for encrypted data
KR101600016B1 (ko) 2014-12-10 2016-03-15 서울대학교기술지주 주식회사 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
KR101971215B1 (ko) 2016-06-17 2019-04-22 서울대학교산학협력단 유효 숫자 연산을 지원하는 동형 암호문의 생성 방법 및 그러한 방법에 의해서 생성된 동형 암호문에 대한 유효 숫자 연산 방법
KR101861089B1 (ko) 2016-07-28 2018-05-25 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
KR101919940B1 (ko) 2017-02-08 2018-11-19 서울대학교산학협력단 완전 동형 암호 방법에 의한 동적 데이터의 처리 방법
US10298385B2 (en) * 2017-04-11 2019-05-21 The Governing Council Of The University Of Toronto Homomorphic processing unit (HPU) for accelerating secure computations under homomorphic encryption
US20190065974A1 (en) 2017-08-30 2019-02-28 Axell Corporation Inference device, inference system, and inference method
KR101965628B1 (ko) 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
US10778409B2 (en) * 2017-12-15 2020-09-15 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
KR102040106B1 (ko) 2018-10-29 2019-11-27 주식회사 크립토랩 실수 평문에 대한 동형 암호화 방법
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
KR102040120B1 (ko) 2018-07-27 2019-11-05 주식회사 크립토랩 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법
KR102550812B1 (ko) 2018-10-26 2023-07-03 삼성에스디에스 주식회사 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yongwoo Lee et al.,Near-optimal Polynomial for Modulus Reduction Using L2-norm for Approximate Homomorphic Encryption,ePrint Archive,2020年04月28日,pages 1-9,<URL:https://eprint.iacr.org/2020/488>

Also Published As

Publication number Publication date
US20210351913A1 (en) 2021-11-11
JP2021177239A (ja) 2021-11-11
EP3907926B1 (en) 2025-08-27
CN113630234A (zh) 2021-11-09
US12192320B2 (en) 2025-01-07
EP3907926A1 (en) 2021-11-10

Similar Documents

Publication Publication Date Title
JP7656798B2 (ja) 同型暗号を用いた暗号化方法及び装置
US11870889B2 (en) Method and apparatus with homomorphic encryption
US20230291541A1 (en) Methods of operating on data in a fully homomorphic encryption system using in-situ processing-in-memory and related circuits
CN113541918B (zh) 基于使用函数的复合的同态加密的加密方法及装置
WO2012057134A1 (ja) 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体
Pessl et al. Enhancing side-channel analysis of binary-field multiplication with bit reliability
KR20220120410A (ko) 동형 암호에서 교환 법칙 및 결합 법칙을 이용한 암호화 방법 및 장치
CN113630233B (zh) 基于使用奇函数性质的同态加密的加密方法及装置
KR20240140669A (ko) 동형 암호 연산 장치 및 방법
CN118316601A (zh) 区块链的密钥生成方法、装置、设备、介质及产品
CN104919753B (zh) 解密服务提供装置、处理装置、安全性评价装置、程序以及记录介质
Lau et al. Key recovery attacks on some rank metric code-based signatures
Škorić A trivial debiasing scheme for helper data systems
Ananth et al. Towards attribute-based encryption for RAMs from LWE: sub-linear decryption, and more
KR20210136815A (ko) 동형 암호를 이용한 암호화 방법 및 장치
CN109274504A (zh) 一种基于云平台的多用户大数据存储分享方法及系统
Kumar et al. An efficient noncommutative NTRU from semidirect product
CN116318647B (zh) 一种具有同态特性的cp-abe外包解密方法和装置
CN112966294A (zh) 一种单轮交互的链表oram访问方法
JP7261502B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
Shortell et al. Secure Convolutional Neural Network using FHE
KR20210130620A (ko) 함수의 합성을 이용한 동형 암호 기반 암호화 방법 및 장치
Nourian et al. Using segmentation for confidentiality aware image storage and retrieval on clouds
JP7158635B2 (ja) 暗号システム、暗号化装置、復号装置及び鍵生成装置
JP7786593B2 (ja) 暗号システム、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20241031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250120

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: 20250212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250305

R150 Certificate of patent or registration of utility model

Ref document number: 7656798

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150