JPWO2020116807A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2020116807A5
JPWO2020116807A5 JP2021532251A JP2021532251A JPWO2020116807A5 JP WO2020116807 A5 JPWO2020116807 A5 JP WO2020116807A5 JP 2021532251 A JP2021532251 A JP 2021532251A JP 2021532251 A JP2021532251 A JP 2021532251A JP WO2020116807 A5 JPWO2020116807 A5 JP WO2020116807A5
Authority
JP
Japan
Prior art keywords
homomorphic
ciphertext
value
ciphertexts
calculated
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
JP2021532251A
Other languages
English (en)
Other versions
JP2022513185A (ja
JP7170878B2 (ja
Publication date
Priority claimed from KR1020190128403A external-priority patent/KR102297536B1/ko
Application filed filed Critical
Priority claimed from PCT/KR2019/015410 external-priority patent/WO2020116807A1/ko
Publication of JP2022513185A publication Critical patent/JP2022513185A/ja
Publication of JPWO2020116807A5 publication Critical patent/JPWO2020116807A5/ja
Application granted granted Critical
Publication of JP7170878B2 publication Critical patent/JP7170878B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

このような問題を解決するために、暗号化方法が研究されている。暗号化によると、暗号化された情報を復号化せずに、暗号文そのもので演算を行うとしても、平文に対して演算した後、暗号化した値と同じ結果を得ることができる。そのため、暗号文を復号化していない状態で各種演算を行うことができる。
しかし、従来の暗号文は、足し算及び掛け算などの一部の演算のみをサポートしていたとの点において、暗号文に対して比較演算のような非多項式演算を適用することができる方法が求められている。
本発明は、以上のような目的を達成するためのものであって、本暗号文演算方法は、複数の暗号文に対する比較演算命令を入力されるステップと、前記比較演算命令に対応する合成関数に、前記複数の暗号文を反映して演算するステップと、前記演算された暗号文を出力するステップとを含む。
一方、本発明の一実施形態に係る演算装置は、少なくとも1つのインストラクション(instruction)を保存するメモリと、前記少なくとも1つのインストラクションを行うプロセッサとを含み、前記プロセッサは、前記少なくとも1つのインストラクションを行うことで、複数の暗号文に対する比較演算命令を入力されると、前記比較演算命令に対応する合成関数に、前記複数の暗号文を反映して演算し、前記演算された暗号文を出力する。
以上説明したように、本発明によれば、暗号文処理方法は、合成関数を用いて、近似暗号化された暗号文に対する比較演算を行うことができるようになる。更に、本発明で提案した合成関数は、複雑度が低いため、正確度が高くなったとしても、より速い演算ができるようになる。
各電子装置100-1~100-nは、入力された情報を暗号化し、暗号文を第1サーバ装置200に伝送してよい。
各電子装置100-1~100-nは、暗号化を行う過程で算出される暗号化ノイズ、即ち、エラーを暗号文に含めてよい。具体的には、各電子装置100-1~100-nから生成する暗号文は、以後、秘密鍵を用いて復号化した際、メッセージ及びエラー値を含む結果値が復元される形で生成されてよい。
一例として、電子装置100-1~100-nから生成される暗号文は、秘密鍵を用いて復号化した際、次のような性質を満たす形で生成されてよい。
第1サーバ装置200は、受信された暗号文を復号化せずに、暗号文の状態で保存してよい。
第2サーバ装置300は、暗号文に対する特定の処理結果を第1サーバ装置200にリクエストしてよい。第1サーバ装置200は、第2サーバ装置300のリクエストに応じて特定演算を行った後、その結果を第2サーバ装置300に伝送してよい。
暗号文の性質上、第1サーバ装置200は復号化を行っていない状態で演算を行ってよく、その結果値も暗号文の形態になる。本発明では、演算によって獲得された結果値を演算結果暗号文と称する。
第1サーバ装置200は、演算結果暗号文を第2サーバ装置300に伝送してよい。第2サーバ装置300は、受信された演算結果暗号文を復号化し、各暗号文に含まれたデータの演算結果値を獲得してよい。
具体的に、図1のシステムにおいて、第1電子装置、第2電子装置などのように暗号文を行う装置、第1サーバ装置などのように暗号文を演算する装置、第2サーバ装置などのように暗号文を復号する装置などを演算装置と称してよい。このような演算装置は、PC(Personal computer)、ノートパソコン、スマートフォン、タブレット、サーバなど多様な装置であってよい。
そして、通信装置410は、外部装置からメッセージを受信してよく、生成した暗号文を外部装置に送信してよい。
なお、通信装置410は、外部装置から暗号文に対する演算をリクエストされてよく、それにより、計算された結果を外部装置に伝送してよい。ここで、リクエストされた演算は、足し算、引き算、掛け算のような演算であってよく、非多項式演算である比較演算であってよい。
そして、メモリ420は、後述する過程で生成された暗号文を保存してよい。そして、メモリ420は、外部装置から伝送した暗号文を保存してよい。なお、メモリ420は、後述する演算過程における結果物である演算結果暗号文を保存してよい。
プロセッサ450は、伝送しようとするメッセージが入力されると、メモリ420に保存してよい。そして、プロセッサ450は、メモリ420に保存された各種設定値及びプログラムを用いて、メッセージを暗号化してよい。この場合、公開鍵が使用されてよい。
一方、上述の数式3のリングは、平文空間で複素数を有する。一方、暗号文に対する演算速度を向上するために、上述のリングの集合のうち、平文空間が実数である集合のみを利用してよい。
そして、プロセッサ450は、メッセージに対する暗号文を生成してよい。具体的に、プロセッサ450は、メッセージに対して、先に生成された公開鍵を適用して暗号文を生成してよい。このとき、プロセッサ450は、暗号文の長さをスケーリングファクタの大きさに対応するように生成してよい。
そして、プロセッサ450は、暗号文が生成されると、メモリ420に保存するか、ユーザのリクエスト又は予め設定されたデフォルトコマンドに応じて、暗号文を他の装置に伝送するように通信装置410を制御してよい。
一方、本発明の一実施形態によると、パッキング(Packing)が行われてよい。暗号化でパッキングを利用するようになると、複数のメッセージを1つの暗号文で暗号化することが可能になる。この場合、演算装置400で各暗号文の間の演算を行うと、結果的に複数のメッセージに対する演算が並列的に処理されるため、演算の負担が大幅に軽減する。
具体的に、プロセッサ450は、メッセージが複数のメッセージベクトルで行われる場合、複数のメッセージベクトルを並列的に暗号化できる形態の多項式に変換した後、その多項式にスケーリングファクタを乗算し、公開鍵を用いて暗号化してよい。それにより、複数のメッセージベクトルをパッキングした暗号文を生成してよい。
そして、プロセッサ450は、暗号文に対する復号が必要な場合、暗号文に秘密鍵を適用して多項式形態の復号文を生成し、多項式形態の復号文をデコードしてメッセージを生成してよい。このとき、生成したメッセージは、上述した数式1で言及したように、エラーを含んでよい。
そして、プロセッサ450は、暗号文に対する演算を行ってよい。具体的に、プロセッサ450は、暗号文に対して暗号化された状態を維持した状態で、足し算、引き算又は掛け算などの演算を行ってよい。
なお、プロセッサ450は、暗号文に対しても、足し算、引き算又は掛け算以外の演算を有する多項式に対する演算を行ってよい。具体的に、暗号文は、足し算、引き算、掛け算に対しては閉じているが、その他の演算に対しては閉じていない。
図3を参照すると、各暗号文10、20は、近似メッセージ領域11、21をそれぞれ含んでよい。近似メッセージ領域11、21には、メッセージ及びエラー(m1+e1、m2+e2)が一緒に入っている。
演算装置400は、両暗号文10、20を入力値とし、特定の演算を行ってよい。このような演算は、足し算、引き算、掛け算で構成される多項式演算であってよく、近似関数の利用が必要な多項式演算又は非多項式演算であってよい。
Figure 2020116807000001
ここで、aは第1暗号文、bは第2暗号文、max(a、b)は第1暗号文と第2暗号文のうち、大きい値を有する暗号文の値を出力する関数である。
Figure 2020116807000002
ここで、aは第1暗号文、bは第2暗号文、min(a、b)は第1暗号文と第2暗号文のうち、小さい値を有する暗号文の値を出力する関数である。
上述の数式9、10を参照すると、足し算、引き算、定数2割などは、暗号文の状態で演算してよいが、平方根演算は暗号文の状態ではできない。従って、平方根演算に対しては近似多項式が必要であり、入力値を初期値として有する第1変数と、入力値から1を引いた値を初期値として有する第2変数に対する第1関数と、第2変数を有する第2関数を予め設定された回数分繰り返し演算する合成関数を用いる。平方根演算の具体的な動作は、図6を参照して後述する。
Figure 2020116807000003
ここで、aは第1暗号文、bは第2暗号文、dは繰り返し回数、Sqrt((a-b);d)は、平方根演算に対応する合成関数である。
Figure 2020116807000004
のような数式を繰り返し演算することで近似してよく、上述の大きさの比較に対応する数式は、暗号文に対するインバース演算を含む。インバース演算は、暗号文状態で直ちにできないため、本発明では、インバース演算に対応する合成関数を用いる。インバース演算の具体的な動作は、図5を参照して後述する。
図4を参照すると、複数の暗号文に対する比較演算命令を受信してよい(S410)。このような命令は、外部装置から入力されてよく、演算装置で直接入力されてよい。そして、このような比較演算は、最小値算出、最大値算出、大きさの比較のうちのいずれかであってよい。
そして、比較演算命令に対応する合成関数に複数の暗号文を反映して演算してよい(S420)。具体的に、θ(α)又はθ(αlogα)の複雑度(complexity)を有する合成関数を用いて比較演算を行ってよい。
そして、演算された暗号文を出力してよい(S430)。具体的に、演算をリクエストした装置に演算結果を出力してよい。
例えば、暗号文A、Bに対する最大値計算がリクエストされると、演算装置700は、図7に示すように、[1](A+B)/2値と(A-B)/2値は計算し、[2](A-B)/2を二乗計算し、二乗計算された値を平方根演算に対応する合成関数を用いて予め設定された回数(d)分繰り返し、[3]合成関数の結果と、既に計算した(A+B)/2値を足して最大値を算出してよい。
一方、暗号文A、Bに対する最小値の計算がリクエストされると、演算装置700は、図7に示すように、[1](A+B)/2値と(A-B)/2値は計算し、[2](A-B)/2を二乗計算し、二乗計算された値を平方根演算に対応する合成関数を用いて予め設定された回数(d)分繰り返し、[3]既に計算した(A+B)/2値に合成関数の結果を引いて最小値を算出してよい。
一方、以上では、2つの値のみを比較し、最大値又は最小値を出力するものとして示して説明しているが、実現時には、3つ以上の暗号部に対しても、最大値算出及び最小値算出を行うこともできる。例えば、3つの暗号文があれば、第1と第2暗号文を比較した後、その結果と残りの暗号文とを比較し、3つのうち最も大きい値、又は3つのうち最も小さい値を算出することもできる。
Figure 2020116807000005
ここで、aは第1暗号文、bは第2暗号文、comp(a、b)は入力された2つの暗号文を比較し、aが大きい場合に1を出力し、bが大きい場合に0を出力し、aと比が同じである場合に0.5を出力する関数である。
数式14を参照すると、比較関数に対する近似関数はインバース演算が含まれている。よって、数式14のようにな近似関数を用いて、暗号文A、Bに対する大きさの比較演算を行う場合、演算装置400は、図8に示すように、初期値(a、b)を算出し、初期値算出の後、[1]図5に関連して説明したようなインバースに対応する合成関数を用いて、Inv(an+bn;d)演算を行うことができる。そして、[2]インバース演算値に、an値を掛け算、[3]1に先立って計算された値(an+1)を引く演算を予め設定された回数(t)分繰り返し、比較演算結果値を算出してよい。
Figure 2020116807000006
ここで、aは第1暗号文、bは第2暗号文、comp(a、b)は入力された2つの暗号文を比較し、aが大きい場合に1を出力し、bが大きい場合に0を出力し、aと比が同じである場合に0.5を出力する関数である。そして、sgn()は符号関数である。
図9を参照すると、暗号文に対する大きさの比較演算命令がリクエストされると、演算装置400は、[1]2値の差を計算する演算(a-b)、[2]当該演算値を数式17を用いて、予め設定された回数(d)分繰り返し演算するステップ、[3]演算値に定数演算を行うステップを行い、比較演算を行ってよい。
図11を参照すると、暗号文に対する大きさの比較演算命令がリクエストされると、演算装置400は、[1]2値の差を計算する演算(a-b)、[2]当該演算値を図10のような方式で算出された合成関数(g(x))に、予め設定された回数(d)分繰り返し演算するステップ、[3]当該演算値を数式17(f(x))を用いて、予め設定された回数(d)分繰り返し演算するステップ、[4]演算値に定数演算を行うステップを行い、比較演算を行ってよい。
JP2021532251A 2018-12-07 2019-11-13 暗号文に対する非多項式演算を行う装置及び方法 Active JP7170878B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862776883P 2018-12-07 2018-12-07
US62/776,883 2018-12-07
KR1020190128403A KR102297536B1 (ko) 2018-12-07 2019-10-16 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR10-2019-0128403 2019-10-16
PCT/KR2019/015410 WO2020116807A1 (ko) 2018-12-07 2019-11-13 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법

Publications (3)

Publication Number Publication Date
JP2022513185A JP2022513185A (ja) 2022-02-07
JPWO2020116807A5 true JPWO2020116807A5 (ja) 2022-09-26
JP7170878B2 JP7170878B2 (ja) 2022-11-14

Family

ID=70974355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021532251A Active JP7170878B2 (ja) 2018-12-07 2019-11-13 暗号文に対する非多項式演算を行う装置及び方法

Country Status (3)

Country Link
US (1) US11799628B2 (ja)
JP (1) JP7170878B2 (ja)
WO (1) WO2020116807A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637700B2 (en) * 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption
US11700110B2 (en) * 2020-09-16 2023-07-11 The Johns Hopkins University Approximate algebraic operations for homomorphic encryption
KR102409958B1 (ko) * 2020-11-10 2022-06-20 서울대학교산학협력단 전자 장치, 그 제어 방법 및 서버

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59173817A (ja) 1983-03-22 1984-10-02 Panafacom Ltd 関数演算処理方式
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
US9819650B2 (en) 2014-07-22 2017-11-14 Nanthealth, Inc. Homomorphic encryption in a healthcare network environment, system and methods
KR102402625B1 (ko) 2015-07-02 2022-05-27 삼성전자주식회사 데이터를 관리하는 방법 및 그를 위한 장치들
US9900147B2 (en) * 2015-12-18 2018-02-20 Microsoft Technology Licensing, Llc Homomorphic encryption with optimized homomorphic operations
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
JP6660319B2 (ja) 2017-02-03 2020-03-11 Kddi株式会社 分類装置、分類方法及び分類プログラム
US10749665B2 (en) * 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
CN111373401B (zh) * 2017-11-27 2023-04-25 三菱电机株式会社 同态推理装置、同态推理方法、计算机能读取的存储介质和隐匿信息处理系统
KR102550812B1 (ko) * 2018-10-26 2023-07-03 삼성에스디에스 주식회사 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치

Similar Documents

Publication Publication Date Title
CN110214433B (zh) 一种进行同态加密的终端装置及其加密方法、服务器装置的密文处理方法
CN109831430B (zh) 一种云计算环境下的安全可控高效的数据共享方法及系统
JP6507171B2 (ja) 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
KR102550812B1 (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
KR102297536B1 (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
CN113904808B (zh) 一种私钥分发、解密方法、装置、设备及介质
KR100960113B1 (ko) 고속처리 가능한 아리아 암복호화 장치
KR101449239B1 (ko) 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
KR101233682B1 (ko) 타원곡선암호를 위한 연산 장치 및 방법
KR20200087061A (ko) 근사 암호화된 암호문에 대한 재부팅 연산을 수행하는 장치 및 방법
JP7170878B2 (ja) 暗号文に対する非多項式演算を行う装置及び方法
JPH07253752A (ja) 疑似乱数生成装置と該装置により生成された疑似乱数に基づく暗号文を用いる通信方法とその装置
CN113098675A (zh) 基于多项式完全同态的二进制数据加密系统及方法
KR102203238B1 (ko) 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법
CN110266481B (zh) 基于矩阵的后量子加、解密方法与解密装置
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
JPWO2020116807A5 (ja)
KR102304992B1 (ko) 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR101707334B1 (ko) 효율적인 타원곡선 암호화 연산 장치 및 그 방법
Yudheksha et al. A study of AES and RSA algorithms based on GPUs
Kim et al. A modified exhaustive search on a password system using SHA-1
KR102337865B1 (ko) 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム