JP2017223822A - 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 - Google Patents
暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 Download PDFInfo
- Publication number
- JP2017223822A JP2017223822A JP2016118682A JP2016118682A JP2017223822A JP 2017223822 A JP2017223822 A JP 2017223822A JP 2016118682 A JP2016118682 A JP 2016118682A JP 2016118682 A JP2016118682 A JP 2016118682A JP 2017223822 A JP2017223822 A JP 2017223822A
- Authority
- JP
- Japan
- Prior art keywords
- ciphertext
- computer
- natural number
- secret key
- division
- 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.)
- Pending
Links
Images
Abstract
【課題】秘密鍵を開示することなく、かつ少ない処理負荷で平文の除算結果に対応する暗号文を生成する。【解決手段】計算機は、第1秘密鍵ベクトルs=(s1,s2,…,sn)∈(Zq)n(nは自然数、qは2の冪乗であって1でない自然数、Zqはqを法とする剰余類環)を用いて、平文m∈Zt(tはqの約数、Ztはtを法とする剰余類環)が暗号化された第1暗号文c=(a,<s,a>+e+(mq/t))(a∈(Zq)n、e∈Zq)を保持し、mに対して演算が実行された結果がsを用いて暗号化された第2暗号文を生成する命令を受信する。該演算は、2の冪乗である自然数による除算を含み、該計算機はcに対する演算処理を実行することにより、第2暗号文を生成し、Zq上での大小関係をZp上において保存する関数f:Zq→Zp(p=q/(該自然数)、Zpはpを法とする剰余類環)による変換処理を該除算に対応する処理として実行する。【選択図】なし
Description
本発明は、暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法に関する。
近年、大量のデータを収集し分析を行い、価値のある知識を抽出するビックデータビジネスが普及している。大量データの分析を実行する際、大容量のストレージ、高速なCPU、及びこれらを分散統制するシステムが必要であるため、クラウドなどの外部リソースに分析を依頼することがある。
データを外部にアウトソースする場合において、データの機密性を確保した上で分析を実行するために、平文に対して足し算、掛け算、平均値計算などの演算処理を実行した結果に対応する暗号文、を当該平文に対応する暗号文から生成する秘匿分析技術がある。
秘匿分析技術の背景として、米国特許第2011−0110525号明細書(特許文献1)、及び下記の非特許文献1がある。これらの文献は、暗号化状態で任意の演算を実行する完全準同型暗号方式について記載している。また、特許文献1は、完全準同型暗号に比べて計算処理負荷の小さいsomewhat準同型暗号方式について記載し、非特許文献1は、LWEベースの加法的共通鍵暗号方式について記載している。
Leo Ducas, Daniele Micciancio: FHEW: Bootstrapping Homomorphic Encryption in Less Than a Second. EUROCRYPT 2015: pages 617-640.
例えば、複数の平文の平均値に対応する暗号文を、当該複数の平文それぞれに対応する暗号文から生成する際には、暗号文に対する割り算(以下、除算とも呼ぶ)を実行する必要がある。暗号文に対する割り算(除算)とは、当該暗号文に対応する平文の除算結果を当該暗号文の生成に用いた秘密鍵で暗号化した暗号文を生成することであり、必ずしも暗号文そのものを割ることに相当するわけではない。
また、特許文献1には、somewhat準同型暗号方式を用いた、暗号文に対する所定回数の足し算、引き算、及び掛け算について記載されているが、somewhat準同型暗号方式を用いた暗号文に対する割り算の実行方法は明記されていない。また、非特許文献1にはLWEベースの加法的共通鍵暗号方式を用いた、暗号文に対する足し算、引き算、及びNANDゲート演算が記載されているが、LWEベースの加法的共通鍵暗号方式を用いた暗号文に対する割り算の実行方法は明記されていない。
本発明の一態様は、第三者に秘密鍵を開示することなく、かつ少ない処理負荷で、平文の除算結果に対応する暗号文を生成する暗号文処理システムを提供する。
上記課題を解決するために、本発明の一態様は以下の構成を採用する。暗号文処理システムであって、第1計算機と第2計算機とを含み、前記第2計算機は、第1秘密鍵ベクトルs=(s1,s2,…,sn) ∈(Zq)n(ただし、nは自然数、qは2の冪乗であって1でない自然数、Zqはqを法とする剰余類環)を用いて、平文m∈Zt(ただし、tはqの約数、Ztはtを法とする剰余類環)が暗号化された第1暗号文c=(a, <s,a> + e + (mq/t))(ただし、a∈(Zq)n、e∈Zq)を保持し、前記平文mに対して第1演算が実行された結果が前記第1秘密鍵ベクトルsを用いて暗号化された第2暗号文、を生成する命令を、前記第1計算機から受信し、前記第1演算は、2の冪乗である第1自然数による除算を含み、前記第2計算機は、前記第1暗号文cに対する演算処理を実行することにより、前記第2暗号文を生成し、前記演算処理において、Zq上での大小関係をZp上において保存する第1関数f:Zq→Zp(ただし、p=q/(前記第1自然数)、Zpはpを法とする剰余類環)による変換処理を、前記除算に対応する処理として実行する、暗号文処理システム。
本発明の一態様によれば、秘密鍵を開示することなく、かつ少ない処理負荷で、平文の除算結果に対応する暗号文を生成することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。本実施形態は、ユーザの秘密鍵を持たないサーバが、暗号文に対する割り算(除算)を実行することができる暗号文処理システムを説明する。なお、本実施形態において、暗号文に対する割り算(除算)とは、当該暗号文に対応する平文の除算結果を当該暗号文の生成に用いた秘密鍵で暗号化した暗号文、を生成することであり、必ずしも暗号文そのものを割ることに相当するわけではない。
図1は、本実施例の暗号文処理システムの構成例を示すブロック図である。暗号文処理システムは、例えば、秘密鍵及び平文データを保持するユーザ端末100と、暗号文の除算処理を実行するサーバ200と、を含む。ユーザ端末100とサーバ200の詳細な構成については後述する。ユーザ端末100とサーバ200は、ネットワーク300を介して相互に情報を送受信する。
図2Aは、ユーザ端末100の構成例を示すブロック図である。ユーザ端末100は、例えば、内部信号線104で連結された、プロセッサ(CPU)101、補助記憶装置102、メモリ103、表示装置105、入出力インターフェース106、及び通信インターフェース107を有する計算機によって構成される。
プロセッサ101は、メモリ103に格納されたプログラムを実行する。メモリ103は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置102は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置102から読み出されて、メモリ103にロードされて、プロセッサ101によって実行される。
入出力インターフェース106は、キーボードやマウスなどが接続され、オペレータからの入力を受けるインターフェースである。また、入出力インターフェース106は、表示装置105やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。表示装置105は、入出力インターフェース106から出力されたプログラムの実行結果を表示する。
通信インターフェース107は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信インターフェース107は、例えば、USB等のシリアルインターフェースを含む。
プロセッサ101が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワーク300を介してユーザ端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置102に格納される。このため、ユーザ端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
ユーザ端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
プロセッサ101は、例えば、秘密鍵生成部111、暗号文生成部112、除算暗号文復号用秘密鍵生成部113、及び除算暗号文復号部114を含む。例えば、プロセッサ101は、メモリ103にロードされた秘密鍵生成プログラムに従って動作することで、秘密鍵生成部111として機能し、メモリ103にロードされた暗号文生成プログラムに従って動作することで、暗号文生成部112として機能する。プロセッサ101に含まれる他の部についても同様である。
秘密鍵生成部111は、平文を暗号化する秘密鍵を生成する。暗号文生成部112は、秘密鍵を用いて暗号文を生成する。除算暗号文復号用秘密鍵生成部113は、サーバ200が生成した除算暗号文を復号するための秘密鍵を生成する。除算暗号文とは、平文の除算結果に対応する暗号文である。除算暗号文復号部114、除算暗号文復号用秘密鍵生成部113が生成した秘密鍵を用いて除算暗号文を復号し、復号結果を、元の平文を除算することにより得られた商に決定する。
図2Bは、サーバ200のハードウェア構成例を示すブロック図である。サーバ200は、例えば、内部信号線204で連結された、プロセッサ(CPU)201、補助記憶装置202、メモリ203、表示装置205、入出力インターフェース206、及び通信インターフェース207を有する計算機によって構成される。サーバ200に含まれる構成は、ユーザ端末100に含まれる構成と同様であるため、各構成についての説明を省略する。
プロセッサ201は、除算暗号文生成部211を含む。例えば、プロセッサ201は、メモリ203にロードされた除算暗号文生成プログラムに従って動作することで、除算暗号文生成部211として機能する。除算暗号文生成部211は、暗号文を復号することなく、除算暗号文を生成する。
以下、本実施例で使用する用語を定義する。
(1)LWEベース加法的共通鍵暗号
本実施例の暗号化処理システムは、特に断りが無い限り、非特許文献2の3章で述べられている、LWEベース加法的共通鍵暗号方式を利用する。LWEベース加法的共通鍵暗号方式における方式の暗号化、復号化、及び加算演算について説明する。
本実施例の暗号化処理システムは、特に断りが無い限り、非特許文献2の3章で述べられている、LWEベース加法的共通鍵暗号方式を利用する。LWEベース加法的共通鍵暗号方式における方式の暗号化、復号化、及び加算演算について説明する。
qを2の冪乗の自然数(20=1を除く)、tをqの約数とする。集合Zq={0,1,2,…,q-1}とすると、Zqは整数環Zのイデアル(q)による剰余環構造を与える。即ちZqは、qを法とする剰余類環である。このとき、秘密鍵ベクトル(以下、単に秘密鍵とも称する)s=(s1,s2,…,sn)∈(Zq)nによる平文m∈Ztの暗号文cを以下のように決定する。なお、Ztは、tを法とする剰余類環である。
ランダムに決定されたベクトルa=(a1,a2,…,an)∈(Zq)nと、エラー項e∈Zqに対して、暗号文cをc=(a, b)=(a, <s,a> + e + (mq/t)) ∈(Zq)n+1とする。ただし、<s,a>はベクトルsとaの内積値である。
また、暗号文c=(a, b)の復号結果を「t(b-<s,a>)/q」∈Ztとする。ただし、「」は、実数xをxに最も近い整数へ写像する、丸め込み関数である。例えば「2.8」=3、「-1.2」=-1である。なお、丸め込み関数は、例えば1.5のように最も近い整数が2つ存在する実数を、当該2つの整数のうち大きい整数又は小さい整数に写像する。なお、丸め込み関数が、当該実数を、当該2つの整数のうち大きい整数に写像するか、小さい整数に写像するかは、例えば、予め定められている。なお、エラー項eの絶対値がq/2t以下の場合、復号結果が元の平文m∈Ztに一致する。
また、2つの暗号文c1=(a1, b1),c2=(a2, b2)の加算演算をc1+c2=(a1+a2, b1+b2)と定義する。なお、当該暗号化処理は加法的準同型性を有する。即ち、平文a1を暗号化して生成された暗号文と平文a2を暗号化して生成された暗号文との和と、a1とa2との和を暗号化して生成された暗号文と、が等しい。
なお、暗号文c1, c2それぞれのエラー項e1,e2に対して、e1+e2の絶対値がq/2t以下である場合、加算暗号文c1+c2の復号結果が元の平文m1,m2の加算結果m1+m2∈Ztに一致する。なお、前述の秘密鍵の生成やパラメータなどにおいて、非特許文献2に記載されている他の秘密鍵生成方法やパラメータが用いられてもよい。また、他のLWEベース暗号方式の秘密鍵生成方法やパラメータが用いられてもよい。
(2)モジュラースイッチ、kビットシフト演算
pを前述のqの約数とし、Zpを、pを法とする剰余類環とする。ZqからZpへのモジュラースイッチ関数MS:Zq→ZpをMS(x)=((xp/q)を超えない最大の整数のZpでの剰余類)とする。なお、モジュラースイッチ関数の代わりに、例えば、Zq上での大小関係をZp上においても保存する他の関数f:Zq→Zpが利用されてもよい。つまり、f:Zq→Zpは、x≧yである任意のx,y∈Zpに対して、f(x)≧f(y)となる関数である。
pを前述のqの約数とし、Zpを、pを法とする剰余類環とする。ZqからZpへのモジュラースイッチ関数MS:Zq→ZpをMS(x)=((xp/q)を超えない最大の整数のZpでの剰余類)とする。なお、モジュラースイッチ関数の代わりに、例えば、Zq上での大小関係をZp上においても保存する他の関数f:Zq→Zpが利用されてもよい。つまり、f:Zq→Zpは、x≧yである任意のx,y∈Zpに対して、f(x)≧f(y)となる関数である。
前述の暗号文c=(a, b)=(a, <s,a> + e + (mq/t)) ∈(Zq)n+1に対するモジュラースイッチMS(c)を、暗号文cの各成分のモジュラースイッチからなるベクトルMS(c)= (MS(a), MS(b)) = (MS(a1),MS(a2),…,MS(an), MS(b))とする。
例えば、q=256, p=16の場合、MS(1)=0, MS(15)=0, MS(16)=1, MS(124)=7, MS(255)=15である。これらの例において、モジュラースイッチ関数は、実数を、当該実数を4(=log2(q/p))ビットシフトさせた値を代表元とするZpの剰余類に写像する。即ち、モジュラースイッチ関数は、当該実数を16=24で除算した商を代表元とする剰余類を返す。本実施例の暗号文処理システムは、暗号文にモジュラースイッチ関数を適用することを暗号文に対する除算処理とみなすことにより、除算暗号文を生成する。従って、本実施例では、暗号文cをモジュラースイッチ関数によって変換する演算を、kビットシフト演算と呼ぶ。なお、k=log2(q/p)である。
(3)自然写像
q, pを前述の通りとする。ZqからZpへの自然写像NM: Zq→ZpをNM(x)=xのZpでの剰余類とする。s∈(Zq)nに対して、NM(s)=(NM(s1), NM(s2),…, NM(sn))とする。
q, pを前述の通りとする。ZqからZpへの自然写像NM: Zq→ZpをNM(x)=xのZpでの剰余類とする。s∈(Zq)nに対して、NM(s)=(NM(s1), NM(s2),…, NM(sn))とする。
(4)kビットシフト演算の復号化
q, pを前述の通りとする。またk=log2(q/p), t’=tp/qとする。c=(a, b)=(a, <s,a> + e + (mq/t)) ∈(Zq)n+1のモジュラースイッチMS(c) ∈(Zp)n+1を平文空間Zt’のZp上の暗号文とみなし、当該暗号文を秘密鍵NM(s)で復号した結果「t’(MS(b)-<MS(s),MS(a)>)/p」∈Zt’を、kビットシフト演算結果に対する復号結果とする。このkビットシフト演算結果に対する復号結果は、暗号文cの平文mをkビットシフトした平文m’にp, q, sから定まるエラー項が加えられた平文である。つまり、「t’(MS(b)-<MS(s),MS(a)>)/p」= m’+e(p,q,s)である。つまり、当該復号結果はエラー項を含むため、エラー項の値が大きい場合には、厳密な意味でのkビットシフトm’と一致しない。
q, pを前述の通りとする。またk=log2(q/p), t’=tp/qとする。c=(a, b)=(a, <s,a> + e + (mq/t)) ∈(Zq)n+1のモジュラースイッチMS(c) ∈(Zp)n+1を平文空間Zt’のZp上の暗号文とみなし、当該暗号文を秘密鍵NM(s)で復号した結果「t’(MS(b)-<MS(s),MS(a)>)/p」∈Zt’を、kビットシフト演算結果に対する復号結果とする。このkビットシフト演算結果に対する復号結果は、暗号文cの平文mをkビットシフトした平文m’にp, q, sから定まるエラー項が加えられた平文である。つまり、「t’(MS(b)-<MS(s),MS(a)>)/p」= m’+e(p,q,s)である。つまり、当該復号結果はエラー項を含むため、エラー項の値が大きい場合には、厳密な意味でのkビットシフトm’と一致しない。
図3は、暗号文処理の一例を示すフローチャートである。2の冪乗であって1でない自然数q、及びqの約数tが予め定められている。また、平文m∈Ztは、例えば、予め補助記憶装置102又はメモリ103に格納されている。まず、秘密鍵生成部111は、例えば、前述のLWEベース暗号方式の秘密鍵生成アルゴリズムを実行することにより、秘密鍵sを生成する(S301)。なお、秘密鍵sは、例えば、予め補助記憶装置102又はメモリ103に格納されていてもよい。
次に、暗号文生成部112は、例えば、ランダムに、a=(a1,a2,…,an)∈(Zq)n及びエラー項e∈Zqを決定し、前述の暗号化方式に従って、平文m∈Ztの秘密鍵sによる暗号文c=(a, b)=(a, <s,a> + e + (mq/t)) ∈(Zq)n+1を生成する(S302)。なお、暗号文生成部112は、例えば、Zqの所定範囲の元から、ランダムにエラー項eを決定してもよい。また、暗号文生成部112は、例えば、Zqの全ての値をとり得る所定の確率変数が従う所定の確率分布を用いて、エラー項eを決定してもよい。
次に、暗号文生成部112は、生成した暗号文cを、サーバ200に送信する(S303)。図4は、暗号文c=(a, b)=(a, <s,a> + e + (mq/t)) ∈(Zq)n+1のデータフォーマットの一例である。暗号文データ400は、例えば、ベクトルaの値を格納するセル401、及びbの値を格納するセル402を含む。なお、図4の例では、説明のため、セル402にb(=<s,a> + e + (mq/t))と記載されているが、暗号文生成部112はa及びbの値そのもののみをサーバ200に送信し、<s,a>、e、及び(mq/t)の値についてはサーバ200に送信しない。
図3の説明に戻る。次に、暗号文生成部112は、サーバ200に除算命令データを送信する(S304)。図5は、除算命令のデータフォーマットの一例である。除算命令データ500は、例えば、分子フィールド501及び分母フィールド502を含む。分母フィールド502は、2の冪乗の値を格納する。図5の除算命令データ500は、平文に対して3/8を掛けた値、即ち平文に3を掛けて8で割った値、に対応する暗号文を生成する命令である。
分子フィールド501に格納される値及び分母フィールド502に格納される値は、例えば、ユーザ等によって予め設定され、補助記憶装置102又はメモリ103に格納されていてもよい。
また、例えば、暗号文生成部112が、平文を割る数の入力をユーザから受け付け、受け付けた数を用いて、分子フィールド501に格納される値及び分母フィールド502に格納される値を決定してもよい。
具体的には、例えば、暗号文生成部112は、平文を自然数n(≧2)で割る除算指示をユーザから受け付けた場合、1/nに最も近いw/2v(vは所定値以下の任意の自然数、wは2V以下の自然数)を特定する。なお、1/nに最も近いw/2vが複数存在する場合、暗号文生成部112は、分母が最小であるw/2vを選択する。暗号文生成部112は、特定したw/2vにおける、wを分子フィールド501に格納し、2Vを分母フィールド502に格納する。なお、前述の所定値は除算指示ごとに指定されてもよいし、全ての除算指示において不変の予め定められた値でもよい。
図3の説明に戻る。次に、除算暗号文生成部211は、除算暗号文を生成する(S305)。ステップS305の処理の詳細は、図6を用いて後述する。除算暗号文生成部211は、生成した除算暗号文を、ユーザ端末100に送信する(S306)。次に、除算暗号文復号用秘密鍵生成部113は、受信した除算暗号文を復号するための除算暗号文復号用秘密鍵を生成する(S307)。ステップS307の処理の詳細は、図7を用いて後述する。
除算暗号文復号部114は、ステップS307で生成された除算暗号文復号用秘密鍵を用いて、上述のkビットシフト演算の復号化方法を用いて、除算暗号文を復号化することにより、平文の除算結果を算出し、処理を終了する(S308)。なお、除算暗号文復号部114は、算出した除算結果を、表示装置105に出力してもよい。
図6は、ステップS306における除算暗号文生成処理の一例を示すフローチャートである。まず、除算暗号文生成部211は、受信した暗号文c=(a, b)と、除算命令データ500の分子フィールド501に格納された値と分母フィールド502に格納された値と(図5の例では(3, 8))、をメモリ203にロードする(S601)。
次に、除算暗号文生成部211は、例えばLWEベース加法的共通鍵暗号の加算演算を繰り返し実行することにより、暗号文c=(a, b)に除算命令の分子フィールド501の値を掛けた暗号文である中間暗号文c’を生成する(S602)。図5の例の場合、分子フィールド501の値は3であるため、除算暗号文生成部211は、中間暗号文c’=3c = (3a, 3b)を生成する。なお、分子フィールド501の値が1である場合、ステップS602は実行されない。
次に、除算暗号文生成部211は、ステップS602で算出した中間暗号文c’に対して、モジュラースイッチを用いたkビットシフト演算を実行することにより、除算暗号文MS(c’)を生成する(S603)。ただしk = log2(分母フィールド502の値)である。つまりp=q/(分母フィールド502の値)である。図5の例では、k = log2(8) = 3のため、除算暗号文生成部211は、モジュラースイッチを用いることにより、中間暗号文c’に対する3ビットシフト演算を実行し、除算暗号文を生成する。
図6の例では、除算暗号文生成部211は、暗号文に対して分子フィールド501の値による乗算(S602)を行ってから、分母フィールド502の値による除算(S603)を行ったが、処理順序を入れ替えてもよい。即ち、除算暗号文生成部211は、暗号文cに対して除算(S603)を実行した結果に対して乗算(S602)を実行してもよい。
図7は、ステップS307における除算暗号文復号用秘密鍵生成処理の一例を示すフローチャートである。まず、除算暗号文復号用秘密鍵生成部113は、初期処理として秘密鍵sと、除算命令データ500の分母フィールド502の値をメモリ103にロードする(S701)。次に、除算暗号文復号用秘密鍵生成部113は、ZqからZpへの自然写像を用いてNM(s)を算出し、除算暗号文復号用秘密鍵に決定する(S702)。ただし、p = q/(分母フィールド502の値)である。
以上、本実施例の暗号文処理システムは、前述の処理により除算暗号文を生成することができる。サーバ200は、モジュラースイッチを用いた変換により、秘密鍵を利用することなく少ない処理負荷で、除算暗号文を生成することができる。また、ユーザ端末100は、少ない処理負荷で除算暗号文から平文の除算結果を得ることができる。
なお、暗号文処理システムは、複数の平文の線形和に対する除算結果(例えば、複数の平文に対応する平均値)に対応する除算暗号文を生成してもよい。
具体的には、暗号文生成部112は、ステップS301で複数の平文それぞれに対する暗号文c1,c2,…,cnを生成し、ステップS303でc1,c2,…,cnをサーバ200に送信し、ステップS304で当該暗号文の線形和α1×c1+α2×c2+ … +αn×cn(ただし、α1,…,αkは実数)それぞれは実数に対する除算命令を送信する。
なお、この場合除算命令データ500は、例えば、当該線形和の係数α1,α2,…,αnの値を格納するフィールドを含む。除算暗号文生成部211は、例えばLWEベース加法的共通鍵暗号の加算演算を繰り返し実行することにより当該線形和を計算する。除算暗号文生成部211は計算した線形和に対して、ステップS305の除算暗号文処理を実行することにより、線形和の除算暗号文を算出することができる。なお、除算暗号文生成部211は、先にc1,…,cnそれぞれの除算暗号文を生成し、生成した除算暗号文の線形和を算出してもよい。
また、本実施例の暗号文処理システムは、kビットシフト演算を暗号文に対する除算以外の処理に利用してもよい。例えば、暗号文処理システムは、暗号文に対するkビットシフト演算によって暗号文の最上位ビットのみを算出する処理を実行してもよい。例えば、暗号文処理システムは、暗号文c1,c2に対して、暗号文に対する加算演算を用いて暗号文c1-c2を算出し、暗号文c1-c2の最上位ビットを算出することにより、暗号文c1,c2に対応する平文の大小比較結果を算出することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
Claims (11)
- 暗号文処理システムであって、
第1計算機と第2計算機とを含み、
前記第2計算機は、
第1秘密鍵ベクトルs=(s1,s2,…,sn) ∈(Zq)n(ただし、nは自然数、qは2の冪乗であって1でない自然数、Zqはqを法とする剰余類環)を用いて、平文m∈Zt(ただし、tはqの約数、Ztはtを法とする剰余類環)が暗号化された第1暗号文c=(a, <s,a> + e + (mq/t))(ただし、a∈(Zq)n、e∈Zq)を保持し、
前記平文mに対して第1演算が実行された結果が前記第1秘密鍵ベクトルsを用いて暗号化された第2暗号文、を生成する命令を、前記第1計算機から受信し、
前記第1演算は、2の冪乗である第1自然数による除算を含み、
前記第2計算機は、
前記第1暗号文cに対する演算処理を実行することにより、前記第2暗号文を生成し、
前記演算処理において、Zq上での大小関係をZp上において保存する第1関数f:Zq→Zp(ただし、p=q/(前記第1自然数)、Zpはpを法とする剰余類環)による変換処理を、前記除算に対応する処理として実行する、暗号文処理システム。 - 請求項1に記載の暗号文処理システムであって、
前記第1関数f:Zq→Zpは、Zqの任意の元xを、(xp/q)を超えない最大の整数、のZpでの剰余類、に写像する、暗号文処理システム。 - 請求項1に記載の暗号文処理システムであって、
前記第1計算機は、
前記平文mの自然数iによる除算指示を受け付け、
1/iに最も近いw/2V(vは所定値以下の自然数、wは2V以下の自然数)を特定し、
前記特定したw/2Vにおける2Vを前記2の冪乗である自然数に決定し、
前記特定したwによる乗算を前記第1演算に含め、
前記第2計算機は、前記演算処理において、前記命令が示すwによる乗算処理を、前記第1演算に含まれる乗算に対応する処理として実行する、暗号文処理システム。 - 請求項1に記載の暗号文処理システムであって、
前記第2計算機は、前記第2暗号文を、前記第1計算機に送信し、
前記第1計算機は、
前記第1秘密鍵ベクトルsを保持し、
前記第1秘密鍵ベクトルsの各成分のZpでの剰余類を成分とする第2秘密鍵ベクトルs’=(s’1,s’2,…,s’n) ∈(Zp)nを生成し、
前記第2秘密鍵ベクトルs’=(s’1,s’2,…,s’n)nを用いて前記第2暗号文を復号し、
前記復号した第2暗号文を、前記平文mに対して前記第1演算が実行された結果に決定する、暗号文処理システム。 - 請求項1に記載の暗号文処理システムであって、
前記第2計算機は、前記第1秘密鍵ベクトルsを用いて、複数の平文m1,…,mk∈Zt(ただし、m1=m、kは2以上の自然数)それぞれが暗号化された暗号文c1,…,ck(ただし、c1=c、2≦j≦kである全ての自然数jに対して、cj=(aj-, <s,aj> + ej + (mjq/t))、aj∈(Zq)n、ej∈Zq)からなる暗号文群を保持し、
前記第1演算は、前記複数の平文の線形和α1m1 + … +αkmk(ただし、α1,…,αkそれぞれは実数)に対する前記第1自然数による除算であり、
前記第2計算機は、前記演算処理において、前記暗号文群と前記第1関数fとを用いて、α1c1’ + … +αkck’(ただし、1≦h≦kである全ての自然数hに対して、ch’はchを前記第1関数fで写像した値)を、前記第2暗号文として生成する、暗号文処理システム。 - 暗号文処理サーバであって、
記憶装置とプロセッサとを含み、
前記記憶装置は、
第1秘密鍵ベクトルs=(s1,s2,…,sn) ∈(Zq)n(ただし、nは自然数、qは2の冪乗であって1でない自然数、Zqはqを法とする剰余類環)を用いて、平文m∈Zt(ただし、tはqの約数、Ztはtを法とする剰余類環)が暗号化された第1暗号文c=(a, <s,a> + e + (mq/t))(ただし、a∈(Zq)n、e∈Zq)を保持し、
前記プロセッサは、前記平文mに対して第1演算が実行された結果が前記第1秘密鍵ベクトルsを用いて暗号化された第2暗号文、を生成する命令を受信し、
前記第1演算は、2の冪乗である第1自然数による除算を含み、
前記プロセッサは、
前記第1暗号文cに対する演算処理を実行することにより、前記第2暗号文を生成し、
前記演算処理において、Zq上での大小関係をZp上において保存する第1関数f:Zq→Zp(ただし、p=q/(前記第1自然数)、Zpはpを法とする剰余類環)による変換処理を、前記除算に対応する処理として実行する、暗号文処理サーバ。 - 暗号文処理システムが暗号文に対する処理を実行する方法であって、
前記暗号文処理システムは、第1計算機と第2計算機とを含み、
前記第2計算機は第1秘密鍵ベクトルs=(s1,s2,…,sn) ∈(Zq)n(ただし、nは自然数、qは2の冪乗であって1でない自然数、Zqはqを法とする剰余類環)を用いて、平文m∈Zt(ただし、tはqの約数、Ztはtを法とする剰余類環)が暗号化された第1暗号文c=(a, <s,a> + e + (mq/t))(ただし、a∈(Zq)n、e∈Zq)を保持し、
前記方法は、前記第2計算機が、前記平文mに対して第1演算が実行された結果が前記第1秘密鍵ベクトルsを用いて暗号化された第2暗号文、を生成する命令を、前記第1計算機から受信し、
前記第1演算は、2の冪乗である第1自然数による除算を含み、
前記方法は、前記第2計算機が、
前記第1暗号文cに対する演算処理を実行することにより、前記第2暗号文を生成し、
前記演算処理において、Zq上での大小関係をZp上において保存する第1関数f:Zq→Zp(ただし、p=q/(前記第1自然数)、Zpはpを法とする剰余類環)による変換処理を、前記除算に対応する処理として実行する、方法。 - 請求項7に記載の方法であって、
前記第1関数f:Zq→Zpは、Zqの任意の元xを、(xp/q)を超えない最大の整数、のZpでの剰余類、に写像する、方法。 - 請求項7に記載の方法であって、
前記第1計算機が、
前記平文mの自然数iによる除算指示を受け付け、
1/iに最も近いw/2V(vは所定値以下の自然数、wは2V以下の自然数)を特定し、
前記特定したw/2Vにおける2Vを前記2の冪乗である自然数に決定し、
前記特定したwによる乗算を前記第1演算に含め、
前記第2計算機は、前記演算処理において、前記命令が示すwによる乗算処理を、前記第1演算に含まれる乗算に対応する処理として実行する、方法。 - 請求項7に記載の方法であって、
前記第1計算機は、前記第1秘密鍵ベクトルsを保持し、
前記方法は、
前記第2計算機が、前記第2暗号文を、前記第1計算機に送信し、
前記第1計算機が、
前記第1秘密鍵ベクトルsの各成分のZpでの剰余類を成分とする第2秘密鍵ベクトルs’=(s’1,s’2,…,s’n) ∈(Zp)nを生成し、
前記第2秘密鍵ベクトルs’=(s’1,s’2,…,s’n)nを用いて前記第2暗号文を復号し、
前記復号した第2暗号文を、前記平文mに対して前記第1演算が実行された結果に決定する、方法。 - 請求項7に記載の方法であって、
前記第2計算機は、前記第1秘密鍵ベクトルsを用いて、複数の平文m1,…,mk∈Zt(ただし、m1=m、kは2以上の自然数)それぞれが暗号化された暗号文c1,…,ck(ただし、c1=c、2≦j≦kである全ての自然数jに対して、cj=(aj-, <s,aj> + ej + (mjq/t))、aj∈(Zq)n、ej∈Zq)からなる暗号文群を保持し、
前記第1演算は、前記複数の平文の線形和α1m1 + … +αkmk(ただし、α1,…,αkそれぞれは実数)に対する前記第1自然数による除算であり、
前記方法は、前記第2計算機が、前記演算処理において、前記暗号文群と前記第1関数fとを用いて、α1c1’ + … +αkck’(ただし、1≦h≦kである全ての自然数hに対して、ch’はchを前記第1関数fで写像した値)を、前記第2暗号文として生成する、方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016118682A JP2017223822A (ja) | 2016-06-15 | 2016-06-15 | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016118682A JP2017223822A (ja) | 2016-06-15 | 2016-06-15 | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017223822A true JP2017223822A (ja) | 2017-12-21 |
Family
ID=60688071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016118682A Pending JP2017223822A (ja) | 2016-06-15 | 2016-06-15 | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017223822A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7187076B1 (ja) | 2021-11-26 | 2022-12-12 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
JP7187074B1 (ja) * | 2021-10-26 | 2022-12-12 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
-
2016
- 2016-06-15 JP JP2016118682A patent/JP2017223822A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7187074B1 (ja) * | 2021-10-26 | 2022-12-12 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
WO2023074133A1 (ja) * | 2021-10-26 | 2023-05-04 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
JP7187076B1 (ja) | 2021-11-26 | 2022-12-12 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
WO2023095419A1 (ja) * | 2021-11-26 | 2023-06-01 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
JP2023078774A (ja) * | 2021-11-26 | 2023-06-07 | 株式会社アクセル | 暗号処理装置、暗号処理方法、及び暗号処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6934963B2 (ja) | データを暗号化する方法およびシステム | |
JP6083234B2 (ja) | 暗号処理装置 | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
Bogos et al. | Cryptanalysis of a homomorphic encryption scheme | |
JPWO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
EP3661115B1 (en) | Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program | |
WO2018134922A1 (ja) | 準同型演算装置、暗号システム及び準同型演算プログラム | |
JP2023063430A (ja) | 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム | |
JP5732429B2 (ja) | 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム | |
CN103701593A (zh) | 基于256进制大数的rsa加密方法 | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
JP7125857B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム | |
JP6532843B2 (ja) | 秘匿計算システム、第一秘匿計算装置、第二秘匿計算装置、秘匿回路生成方法、秘匿回路評価方法、プログラム | |
KR101133988B1 (ko) | 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템 | |
US11343070B2 (en) | System and method for performing a fully homomorphic encryption on a plain text | |
JP2023064452A (ja) | 暗号処理装置、暗号処理方法、及び暗号処理プログラム | |
WO2021124520A1 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
JP4676873B2 (ja) | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム | |
JP5038868B2 (ja) | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム | |
JP2009130872A (ja) | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム | |
JP2009128773A (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
US11811741B2 (en) | Information processing system and information processing method | |
JP2015069192A (ja) | 情報処理装置、暗号化方法 | |
JP7317261B2 (ja) | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム |