JP5496756B2 - 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体 - Google Patents

環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体 Download PDF

Info

Publication number
JP5496756B2
JP5496756B2 JP2010095131A JP2010095131A JP5496756B2 JP 5496756 B2 JP5496756 B2 JP 5496756B2 JP 2010095131 A JP2010095131 A JP 2010095131A JP 2010095131 A JP2010095131 A JP 2010095131A JP 5496756 B2 JP5496756 B2 JP 5496756B2
Authority
JP
Japan
Prior art keywords
processing
mod
ciphertext
list
processing device
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
JP2010095131A
Other languages
English (en)
Other versions
JP2011227193A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010095131A priority Critical patent/JP5496756B2/ja
Publication of JP2011227193A publication Critical patent/JP2011227193A/ja
Application granted granted Critical
Publication of JP5496756B2 publication Critical patent/JP5496756B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本発明は、コンピュータによる計算方式で、情報を暗号化したまま処理する環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体に関する。
暗号方式において、メッセージを暗号化したまま演算することができる方式を準同型暗号とよぶ。例えば、メッセージ(数値)a、bの暗号文 E(a)、E(b)から、a+bの暗号文E(a+b)が計算できるもの(加算に関して準同型)や、a・bの暗号文E(a・b)が計算できるもの(乗算に関して準同型)をいう。加算に関して準同型暗号の例として非特許文献1のPaillier暗号が、乗算に関して準同型暗号の例としてElGamal暗号やRSA暗号が、それぞれ挙げられる。
乗算と加算の双方に関して準同型性を持つ暗号は環準同型暗号と呼ばれる。環準同型暗号では、平文に関する多項式の計算を暗号化したまま行うことができる。この性質は、暗号文を計算することによる、メッセージに対する論理回路の評価やデータベースの検索を可能にする。そのため、環準同型暗号の設計は長年の課題であったが、近年、Gentryが非特許文献2において環準同型暗号が存在することを示した。
Pascal Paillier, "Public-Key Cryptosystems Based on Composite Degree Residuosity Classes", EUROCRYPT'99, vol. 1592 of Lecture Notes in Computer Science, 2009, p.223-238 Craig Gentry, "Fully Homomorphic Encryption Using Ideal Lattices", Proceedings of the 41st annual ACM symposium on Theory of computing, 2009, p.169-178
Gentryが非特許文献2において示した論証は、実用的な効率で動作する環準同型暗号を具体的に構成したものではなく、少なくとも効率性に問題がある。
本発明の目的は、暗号文に対する演算で平文の加法に対応する新たな暗号文および平文の乗法に対応する新たな暗号文を計算可能で実用的な効率性を有する、環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体を提供することにある。
本発明の環準同型を計算可能な公開鍵暗号方法及び公開鍵暗号システムは、加算について準同型性を持つ公開鍵暗号に基づき構成された公開鍵暗号方法及び公開鍵暗号システムであって、送信装置と処理装置と受信装置とが連携して、鍵生成ステップと暗号文生成ステップと第1準備ステップと第1通信ステップと第2準備ステップと第2通信ステップと復号ステップとを実行する。
鍵生成ステップでは、受信装置が、任意の2つの大きな素数p,q、任意の整数g、ランダムな整数rを選び、n=p・qとして、c0=g・rn mod n2を求め、ランダムな整数a,bをa+b=1 mod nとなる数として選び、μ=c0 a+bを求め、n,g,c0,μを公開鍵として公開し、p,q,a,bを秘密鍵として保持する。
暗号文生成ステップでは、送信装置が、ランダムな整数xを選び、入力された2つのメッセージm1,m2に対する暗号文c1,c2をc1=gm1・xn mod n2、c2=gm2・xn mod n2により生成し、処理装置に送信する。
第1準備ステップでは、処理装置が、2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選ぶ。
第1通信ステップでは、第1処理サブステップと第1返信サブステップと第2処理サブステップと第3処理サブステップと第2返信ステップと第4処理サブステップを、最大t回(tはセキュリティパラメータkに対して無視できない値)繰り返して実行し、計算結果としての(w,u)が得られない場合には処理を中止する。
第1処理サブステップでは、処理装置が、ランダムな2つの整数r1,r2を選び、暗号文w11=c1・c0 r1,w21=c0 r2を計算して、受信装置に送信する。
第1返信サブステップでは、受信装置が、暗号文w11,w21からメッセージm11,m21をそれぞれ復号し、w'=w11 a・m21・w21 b・m11を計算して処理装置に返信する。
第2処理サブステップでは、処理装置が、w=w'・μ-r1・r2を計算し、u=r2とし、L2の元(υ,s)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果として第1通信ステップの処理を終了し、存在しなければその(w,u)をリストL1に追加する。
第3処理サブステップでは、処理装置が、ランダムな2つの整数r3,r4を選び、暗号文w12=c1・c0 r3,w22=c0 r4を計算して、受信装置に送信する。
第2返信サブステップでは、受信装置が、暗号文w12,w22からメッセージm12,m22をそれぞれ復号し、υ'=w12 a・m22・w22 b・m12を計算して処理装置に返信する。
第4処理サブステップでは、処理装置が、υ=υ'・μ-r3・r4を計算し、s=r2とし、L1の元(w,u)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果として第1通信ステップの処理を終了し、存在しなければその(υ,s)をリストL2に追加する。
第2準備ステップでは、処理装置が、2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選ぶ。
第2通信ステップでは、第5処理サブステップと第6処理サブステップと第3返信サブステップと第7処理サブステップと第8処理サブステップと第9処理サブステップと第10処理サブステップと第4返信サブステップと第11処理サブステップを、最大t回繰り返して実行し、暗号文としてのzが得られない場合には処理を中止する。
第5処理サブステップでは、処理装置が、リストL3を空集合で初期化する。
第6処理サブステップでは、処理装置が、ランダムな2つの整数r5,r6を選び、暗号文w13=c1 r5,w23=c2・c0 u・r6を計算して、受信装置に送信する。
第3返信サブステップでは、受信装置が、暗号文w13,w23からメッセージm13,m23をそれぞれ復号し、z'=w13 a・m23・w23 b・m13を計算して処理装置に返信する。
第7処理サブステップでは、処理装置が、z''=z'w-r5・r6を計算し、(z'',r5)をリストL3に追加する。
第8処理サブステップでは、処理装置が、リストL3の全ての元 (z1,x1),(z2,x2),・・・,(zi,xi),・・・について、x1,x2,・・・,xi,・・・の最大公約数が1であるかどうかを判定し、もし1であれば、Σiyi・xi=1となる整数y1,y2,・・・,yi,・・・を計算してz=Πiziyiとし、1でなければ第5処理サブステップに戻る。
第9処理サブステップでは、処理装置が、L2の元(υ,s)で、zd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置に返信して第2通信ステップの処理を終了し、存在しなければそのzをリストL1に追加する。
第10処理サブステップでは、処理装置が、ランダムな2つの整数r7,r8を選び、暗号文w14=c1 r7,w24=c2 d・c0 u・r8を計算して、受信装置に送信する。
第4返信サブステップでは、受信装置が、暗号文w14,w24からメッセージm14,m24をそれぞれ復号し、υ'=w14 a・m24・w24 b・m14を計算して処理装置に返信する。
第11処理サブステップでは、処理装置が、υ=υ'・μ-r7・r8を計算し、s=r7とし、L1の元zでzd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置に返信して第2通信ステップの処理を終了し、存在しなければ(υ,s)をリストL2に追加する。
復号ステップでは、受信装置が処理装置から受信した暗号文zからメッセージm1・m2を、
Figure 0005496756
により復号する。
本発明の環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体によれば、実用的な効率性にて暗号文に対する演算で平文の加法に対応する新たな暗号文および平文の乗法に対応する新たな暗号文を計算することができる。これにより、公開鍵暗号の利便性が向上し、特に、代数的回路に対してデータを暗号化したままメッセージに対する演算を行うことが可能となる。
環準同型を計算可能な公開鍵暗号システム100の構成を示すブロック図。 環準同型を計算可能な公開鍵暗号方法の処理フロー例を示す図。
図1に、本発明の環準同型を計算可能な公開鍵暗号システム100の構成を示すブロック図を、図2に当該システムに係る公開鍵暗号方法の各処理ステップのフロー図を示す。本発明の環準同型を計算可能な公開鍵暗号システム100は、送信装置110と処理装置120と受信装置130とから構成される。
本発明においては、加算について準同型性を持つ公開鍵暗号方式であるPaillier暗号(非特許文献1)を基礎として、メッセージを暗号化したまま安全に乗算を行うシステムを構成する。なお、加算について準同型性を持つ公開鍵暗号方式においては、2つのPaillier暗号文c1,c2の加算の演算は、c1・c2 mod n2である。すなわち、c1を復号して得られる平文がm1で、c2を復号して得られる平文がm2であるとき、c1・c2 mod n2を復号して得られる平文はm1+m2 mod nである。従って、加算については本発明のシステム構成の下で、送信装置110で2つの平文m1,m2について生成された2つのPaillier暗号文c1,c2を処理装置120に送信し、それを受信した処理装置120がc1・c2 mod n2の演算を行い、これを受信装置130に送信することで、受信装置130は平文m1+m2 mod nを復号することができる。
一方、乗算については安全な乗算を実現するため、処理装置120と受信装置130との間で通信しつつ処理を行う。具体的には、処理装置120から任意の2つのPaillier暗号文w1,w2が受信装置130に与えられたとき、受信装置130は、w1を復号してメッセージm1を、w2を復号してメッセージm2を計算した上で、w1a・m2・w2b・m1(a,bは受信装置130の秘密鍵)を計算して処理装置120に返信する。このように処理装置120を利用することで安全性が損なわれることがないよう、本発明では誤りを訂正することが可能な形態でアルゴリズムを構成する。本発明のアルゴリズムでは、「処理装置がメッセージの内容を知ることがないという特徴と、処理装置が受信装置と通信しつつ暗号文を処理する際に、処理中の暗号文が受信者に漏洩することがないという特徴と、処理装置が受信装置と通信しつつ暗号文を処理する際に、何者かが正規の受信者になりすましを試みた場合に処理装置は真の受信装置による応答か否かを選別することが可能であるという特徴とを有する。
以下、環準同型を計算可能な公開鍵暗号システム100の具体的な処理内容について説明する。
まず、受信装置130が、通信に先立ち秘密鍵と公開鍵を生成する(S1)。具体的には、Paillier暗号を構成するために好適な任意の2つの大きな素数p,qと、Paillier暗号を構成するために好適な整数g(0〜n2-1の元で、例えば2)と、ランダムな整数r(例えば0≦r<n)とを選ぶ。そして、n=p・qとして、c0=g・rn mod n2を求め、ランダムな整数a,bをa+b=1 mod nとなる数として選び、μ=c0 a+bを求め、n,g,c0,μを公開鍵として公開し、p,q,a,bを秘密鍵として保持する。
続いて、送信装置110が、ランダムな整数x(例えば0≦x<n)を選び、入力された2つのメッセージm1,m2(例えば0≦m1<n、0≦m2<n)に対するPaillier暗号文c1,c2をc1=gm1・xn mod n2、c2=gm2・xn mod n2により生成し、処理装置120に送信する(S2)。
続いて、処理装置120と受信装置130は、以下の処理によりc0とc1との乗算に関する量を計算する。
まず、処理装置120が、2つのリストL1,L2を空集合で初期化し、ランダムな整数d(例えば2≦d≦2k、kはセキュリティパラメータ)を選ぶ(S3)。
続いて、ランダムな2つの整数r1,r2(例えば1≦r1≦2k・n2、1≦r2≦2k・n2)を選び、Paillier暗号文w11=c1・c0 r1,w21=c0 r2を計算して、受信装置130に送信する(S4−1)。
続いて、受信装置130が、Paillier暗号文w11,w21からメッセージm11,m21をそれぞれ復号し、w'=w11 a・m21・w21 b・m11を計算して処理装置に返信する(S4−2)。
続いて、処理装置120が、w=w'・μ-r1・r2を計算し、u=r2とし、L2の元(υ,s)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果としてS5以降の処理に進む。一方、存在しなければその(w,u)をリストL1に追加する(S4−3)。
続いて、ランダムな2つの整数r3,r4(例えば1≦r3≦2k・n2、1≦r4≦2k・n2)を選び、Paillier暗号文w12=c1・c0 r3,w22=c0 r4を計算して、受信装置130に送信する(S4−4)。
続いて、受信装置130が、Paillier暗号文w12,w22からメッセージm12,m22をそれぞれ復号し、υ'=w12 a・m22・w22 b・m12を計算して処理装置120に返信する(S4−5)。
続いて、処理装置120が、υ=υ'・μ-r3・r4を計算し、s=r2とし、L1の元(w,u)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果としてS5以降の処理に進む。一方、存在しなければ、その(υ,s)をリストL2に追加する(S4−6)。
S4−1〜S4−6の各ステップの処理を最大t回繰り返して実行し、計算結果としての(w,u)が得られない場合には、信頼性が確保されていないとして処理を中止する。ここで、tは処理装置120が成りすまし攻撃を受けたときの受信装置130に対して要求する信頼性であり、セキュリティパラメータkに関して無視できない確率(例えば、1/kなど)とする。
上記計算結果として得られた(w,u)について、wはc1とc0の乗算のu乗となっている。計算結果としての(w,u)が得られた場合には、続いて以下の処理によりc1とcの乗算を計算する。
まず、処理装置120が、2つのリストL1,L2を空集合で初期化し、ランダムな整数d(例えば2≦d≦2k)を選ぶ(S5)。
続いて、リストL3を空集合で初期化する(S6−1)。
続いて、ランダムな2つの整数r5,r6(例えば1≦r5≦2k・n2、1≦r6≦2k・n2)を選び、Paillier暗号文w13=c1 r5,w23=c2・c0 u・r6を計算して、受信装置130に送信する(S6−2)。
続いて、受信装置130が、Paillier暗号文w13,w23からメッセージm13,m23をそれぞれ復号し、z'=w13 a・m23・w23 b・m13を計算して処理装置120に返信する(S6−3)。
続いて、処理装置120が、z''=z'・w-r5・r6を計算し、(z'',r5)をリストL3に追加する(S6−4)。
続いて、リストL3の全ての元 (z1,x1),(z2,x2),・・・,(zi,xi),・・・について、x1,x2,・・・,xi,・・・の最大公約数が1であるかどうかを判定し、もし1であれば、Σiyi・xi=1となる整数y1,y2,・・・,yi,・・・を計算してz=Πiziyiとし、1でなければS6−1の処理に戻る(S6−5)。
続いて、L2の元(υ,s)で、zd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置130に返信してS7以降の処理に進む。一方、存在しなければそのzをリストL1に追加する(S6−6)。
続いて、ランダムな2つの整数r7,r8(例えば1≦r7≦2k・n2、1≦r8≦2k・n2)を選び、Paillier暗号文w14=c1 r7,w24=c2 d・c0 u・r8を計算して、受信装置130に送信する(S6−7)。
続いて、受信装置130が、Paillier暗号文w14,w24からメッセージm14,m24をそれぞれ復号し、υ'=w14 a・m24・w24 b・m14を計算して処理装置120に返信する(S6−8)。
続いて、処理装置120が、υ=υ'・μ-r7・r8を計算し、s=r7とし、L1の元zでzd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置130に返信してS7以降の処理に進む。一方、存在しなければ(υ,s)をリストL2に追加する(S6−9)。
S6−1からS6−9の各ステップを最大t回繰り返して実行し、暗号文としてのzが得られない場合には、信頼性が確保されていないとして処理を中止する。
上記計算結果として得られたzについて、zはm1のPaillier暗号文c1とm2のPaillier暗号文c2との乗算(=m1・m2のPaillier暗号文)となっている。以上のS1〜S6の処理により、Paillier暗号文c1,c2について乗算を行うことができる。
そして、受信装置130が、処理装置120から受信したPaillier暗号文zからメッセージm1・m2を、
Figure 0005496756
により復号する(S7)。
以上のように、本発明の環準同型を計算可能な公開鍵暗号方法及び環準同型を計算可能な公開鍵暗号システムによれば、実用的な効率性にて暗号文に対する演算で平文の加法に対応する新たな暗号文および平文の乗法に対応する新たな暗号文を計算することができる。これにより、公開鍵暗号の利便性が向上し、特に、代数的回路に対してデータを暗号化したままメッセージに対する演算を行うことが可能となる。
本発明の環準同型を計算可能な公開鍵暗号システム、それを構成する送信装置、処理装置、及び受信装置をコンピュータによって実現する場合、送信装置、処理装置及び受信装置が担う処理機能はプログラムによって記述される。そしてパソコンや携帯端末上で、入力手段や各種記憶手段とCPUとのデータのやりとりを通じてこのプログラムを実行することにより、ハードウェアとソフトウェアが協働し、上記処理機能がコンピュータ上で実現されて本発明の環準同型を計算可能な公開鍵暗号システムの作用効果を奏する。なおこの場合、処理機能の少なくとも一部をハードウェア的に実現することとしてもよい。また、上記の各種処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
上記の処理機能を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、上述した実施形態とは別の実行形態として、コンピュータが可搬型記録媒体から直接このプログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。

Claims (6)

  1. 加算について準同型性を持つ公開鍵暗号に基づき構成された環準同型を計算可能な公開鍵暗号方法であって、
    受信装置が、任意の2つの大きな素数p,q、任意の整数g、ランダムな整数rを選び、n=p・qとして、c0=g・rnmod n2を求め、ランダムな整数a,bをa+b=1 mod nとなる数として選び、μ=c0 a+bを求め、n,g,c0,μを公開鍵として公開し、p,q,a,bを秘密鍵として保持する鍵生成ステップと、
    送信装置が、ランダムな整数xを選び、入力された2つのメッセージm1,m2に対する暗号文c1,c2をc1=gm1・xn mod n2、c2=gm2・xn mod n2により生成し、処理装置に送信する暗号文生成ステップと、
    処理装置が、2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選ぶ第1準備ステップと、
    処理装置が、ランダムな2つの整数r1,r2を選び、暗号文w11=c1・c0 r1,w21=c0 r2を計算して、受信装置に送信する第1処理サブステップと、
    受信装置が、暗号文w11,w21からメッセージm11,m21をそれぞれ復号し、w'=w11 a・m21
    ・w21 b・m11を計算して処理装置に返信する第1返信サブステップと、
    処理装置が、w=w'・μ-r1・r2を計算し、u=r2とし、L2の元(υ,s)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果として第1通信ステップの処理を終了し、存在しなければその(w,u)をリストL1に追加する第2処理サブステップと、
    処理装置が、ランダムな2つの整数r3,r4を選び、暗号文w12=c1・c0 r3,w22=c0 r4を計算して、受信装置に送信する第3処理サブステップと、
    受信装置が、暗号文w12,w22からメッセージm12,m22をそれぞれ復号し、υ'=w12 a・m22
    ・w22 b・m12を計算して処理装置に返信する第2返信サブステップと、
    処理装置が、υ=υ'・μ-r3・r4を計算し、s=r2とし、L1の元(w,u)でwd・s=υu mod
    n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果として第1通信ステップの処理を終了し、存在しなければその(υ,s)をリストL2に追加する第4処理サブステップ、
    の各サブステップを最大t回 (tはセキュリティパラメータkに対して無視できない値)繰り返して実行し、計算結果としての(w,u)が得られない場合には処理を中止する第1通信
    ステップと、
    計算結果としての(w,u)が得られた場合に、
    処理装置が、2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選ぶ第2準備ステップと、
    処理装置が、リストL3を空集合で初期化する第5処理サブステップと、
    処理装置が、ランダムな2つの整数r5,r6を選び、暗号文w13=c1 r5,w23=c2・c0 u・r6
    を計算して、受信装置に送信する第6処理サブステップと、
    受信装置が、暗号文w13,w23からメッセージm13,m23をそれぞれ復号し、z'=w13 a・m23
    ・w23 b・m13を計算して処理装置に返信する第3返信サブステップと、
    処理装置が、z''=z'・w-r5・r6を計算し、(z'',r5)をリストL3に追加する第7処理サブステップと、
    処理装置が、リストL3の全ての元 (z1,x1),(z2,x2),・・・,(zi,xi),・・・について、x1,x2,・・・,xi,・・・の最大公約数が1であるかどうかを判定し、もし1であれば、Σiyi・xi=1となる整数y1,y2,・・・,yi,・・・を計算してz=Πiziyiとし、1でなければ第5処理サブステップに戻る、第8処理サブステップと、
    処理装置が、L2の元(υ,s)で、zd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置に返信して第2通信ステップの処理を終了し、存在しなければそのzをリストL1に追加する第9処理サブステップと、
    処理装置が、ランダムな2つの整数r7,r8を選び、暗号文w14=c1 r7,w24=c2 d・c0 u・r8を計算して、受信装置に送信する第10処理サブステップと、
    受信装置が、暗号文w14,w24からメッセージm14,m24をそれぞれ復号し、υ'=w14 a・m24
    ・w24 b・m14を計算して処理装置に返信する第4返信サブステップと、
    処理装置が、υ=υ'・μ-r7・r8を計算し、s=r7とし、L1の元zでzd・s=υu mod n2
    またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置に返信して第2通信ステップの処理を終了し、存在しなければ(υ,s)をリストL2に追加する第11処理サブステップ、
    の各サブステップを最大t回(tはセキュリティパラメータkに対して無視できない値)繰り返して実行し、暗号文としてのzが得られない場合には処理を中止する第2通信ステップと、
    受信装置が、処理装置から受信した暗号文zからメッセージm1・m2を、
    Figure 0005496756


    により復号する復号ステップと、
    を実行する環準同型を計算可能な公開鍵暗号方法。
  2. 加算について準同型性を持つ公開鍵暗号に基づき構成された環準同型を計算可能な公開鍵暗号システムであって、
    送信装置と処理装置と受信装置とを備え、
    受信装置が、任意の2つの大きな素数p,q、任意の整数g、ランダムな整数rを選び、n=p・qとして、c0=g・rnmod n2を求め、ランダムな整数a,bをa+b=1 mod nとなる数として選び、μ=c0 a+bを求め、n,g,c0,μを公開鍵として公開し、p,q,a,bを秘密鍵として保持する鍵生成ステップと、
    送信装置が、ランダムな整数xを選び、入力された2つのメッセージm1,m2に対する暗号文c1,c2をc1=gm1・xn mod n2、c2=gm2・xn mod n2により生成し、処理装置に送信する暗号文生成ステップと、
    処理装置が、2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選ぶ第1準備ステップと、
    処理装置が、ランダムな2つの整数r1,r2を選び、暗号文w11=c1・c0 r1,w21=c0 r2を計算して、受信装置に送信する第1処理サブステップと、
    受信装置が、暗号文w11,w21からメッセージm11,m21をそれぞれ復号し、w'=w11 a・m21
    ・w21 b・m11を計算して処理装置に返信する第1返信サブステップと、
    処理装置が、w=w'・μ-r1・r2を計算し、u=r2とし、L2の元(υ,s)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果として第1通信ステップの処理を終了し、存在しなければその(w,u)をリストL1に追加する第2処理サブステップと、
    処理装置が、ランダムな2つの整数r3,r4を選び、暗号文w12=c1・c0 r3,w22=c0 r4を計算して、受信装置に送信する第3処理サブステップと、
    受信装置が、暗号文w12,w22からメッセージm12,m22をそれぞれ復号し、υ'=w12 a・m22
    ・w22 b・m12を計算して処理装置に返信する第2返信サブステップと、
    処理装置が、υ=υ'μ-r3・r4を計算し、s=r2とし、L1の元(w,u)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、
    その(w,u)を計算結果として第1通信ステップの処理を終了し、存在しなければその(υ,s)をリストL2に追加する第4処理サブステップ、
    の各サブステップを最大t回(tはセキュリティパラメータkに対して無視できない値)繰り返して実行し、計算結果としての(w,u)が得られない場合には処理を中止する第1通信ス
    テップと、
    計算結果としての(w,u)が得られた場合に、
    処理装置が、2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選ぶ第2準備ステップと、
    処理装置が、リストL3を空集合で初期化する第5処理サブステップと、
    処理装置が、ランダムな2つの整数r5,r6を選び、暗号文w13=c1 r5,w23=c2・c0 u・r6
    を計算して、受信装置に送信する第6処理サブステップと、
    受信装置が、暗号文w13,w23からメッセージm13,m23をそれぞれ復号し、z'=w13 a・m23
    ・w23 b・m13を計算して処理装置に返信する第3返信サブステップと、
    処理装置が、z''=z'・w-r5・r6を計算し、(z'',r5)をリストL3に追加する第7処理サブステップと、
    処理装置が、リストL3の全ての元 (z1,x1),(z2,x2),・・・,(zi,xi),・・・について、x1,x2,・・・,xi,・・・の最大公約数が1であるかどうかを判定し、もし1であれば、Σiyi・xi=1となる整数y1,y2,・・・,yi,・・・を計算してz=Πiziyiとし、1でなければ第5処理サブステップに戻る、第8処理サブステップと、
    処理装置が、L2の元(υ,s)で、zd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置に返信して第2通信ステップの処理を終了し、存在しなければそのzをリストL1に追加する第9処理サブステップと、
    処理装置が、ランダムな2つの整数r7,r8を選び、暗号文w14=c1 r7,w24=c2 d・c0 u・r8を計算して、受信装置に送信する第10処理サブステップと、
    受信装置が、暗号文w14,w24からメッセージm14,m24をそれぞれ復号し、υ'=w14 a・m24
    ・w24 b・m14を計算して処理装置に返信する第4返信サブステップと、
    処理装置が、υ=υ'μ-r7・r8を計算し、s=r7とし、L1の元zでzd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として受信装置に返信して第2通信ステップの処理を終了し、存在しなければ(υ,s)をリストL2に追加する第11処理サブステップ、
    の各サブステップを最大t回 (tはセキュリティパラメータkに対して無視できない値)繰り返して実行し、暗号文としてのzが得られない場合には処理を中止する第2通信ステップと、
    受信装置が、処理装置から受信した暗号文zからメッセージm1・m2を、
    Figure 0005496756


    により復号する復号ステップと、
    を実行する環準同型を計算可能な公開鍵暗号システム。
  3. 任意の2つの大きな素数p,q、任意の整数g、ランダムな整数rから、n=p・qとしてc0=g・rnmod n2により求められたc0、a+b=1 mod nとなる数として選ばれたランダムな整数a,bからμ=c0 a+bにより求められたμに関し、n,g,c0,μが公開鍵として公開され、これらを用い、
    2つのリストL1,L2を空集合で初期化し、ランダムな整数dを選び、
    ランダムな2つの整数r1,r2を選び、入力された暗号文c1について、暗号文w11=c1・c0 r1,w21=c0 r2を計算して出力し、
    入力されたw'=w11 a・m21・w21 b・m11(m11,m21はw11,w21から復号されたメッセージ)について、w=w'・μ-r1・r2を計算し、u=r2とし、L2の元(υ,s)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、その(w,u)を計算結果とし、存在しなければその(w,u)をリストL1に追加し、
    ランダムな2つの整数r3,r4を選び、暗号文w12=c1・c0 r3,w22=c0 r4を計算して出力し、
    入力されたυ'=w12 a・m22・w22 b・m12(m12,m22はw12,w22から復号されたメッセージ
    )について、υ=υ'・μ-r3・r4を計算し、s=r2とし、L1の元(w,u)でwd・s=υu mod n2またはwd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、
    その(w,u)を計算結果とし、存在しなければその(υ,s)をリストL2に追加し、
    前記ランダムな2つの整数r1,r2の選定以降の処理を最大t回(tはセキュリティパラメータkに対して無視できない値)繰り返して実行して、計算結果としての(w,u)が得られない場合には処理を中止し、
    計算結果としての(w,u)が得られた場合に、
    2つのリストL1,L2を空集合で初期化し、
    リストL3を空集合で初期化し、
    ランダムな2つの整数r5,r6を選び、暗号文w13=c1 r5,w23=c2・c0 u・r6を計算して出力し、
    入力されたz'=w13 a・m23・w23 b・m13(m13,m23はw13,w23から復号されたメッセージ)について、z''=z'・w-r5・r6を計算し、(z'',r5)をリストL3に追加し、
    リストL3の全ての元 (z1,x1),(z2,x2),・・・,(zi,xi),・・・について、x1,x2,・・・,xi,・・・の最大公約数が1であるかどうかを判定し、もし1であれば、Σiyi・xi=1となる整数y1,y2,・・・,yi,・・・を計算してz=Πiziyiとし、1でなければ前記リストL3の空集合による初期化以降の処理を再度実行し、
    L2の元(υ,s)で、zd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として出力して処理を終了し、存在しなければそのzをリストL1に追加し、
    ランダムな2つの整数r7,r8を選び、暗号文w14=c1 r7,w24=c2 d・c0 u・r8を計算して出力し、
    入力されたυ'=w14 a・m24・w24 b・m14(m14,m24はw14,w24から復号されたメッセージ)について、υ=υ'・μ-r7・r8を計算し、s=r7とし、L1の元zでzd・s=υu mod n2またはzd・s=-υu mod n2となるものが存在するかどうかを判定し、もし存在すれば、そのzを暗号文として出力して処理を終了し、存在しなければ(υ,s)をリストL2に追加し、
    前記リストL3の空集合による初期化以降の処理を最大t回 (tはkに対して無視できない値)繰り返して実行し、暗号文としてのzが得られない場合には処理を中止する
    処理装置。
  4. 任意の2つの大きな素数p,q、任意の整数g、ランダムな整数rを選び、n=p・qとして、c0=g・rnmod n2を求め、ランダムな整数a,bをa+b=1 mod nとなる数として選び、μ=c0 a+bを求め、n,g,c0,μを公開鍵として公開し、p,q,a,bを秘密鍵として保持し、
    入力された暗号文w1,w2からメッセージm1,m2をそれぞれ復号し、w1 a・m2・w2 b・m1を計算して出力し、
    入力された暗号文zからメッセージm1・m2を、
    Figure 0005496756


    により復号する
    受信装置。
  5. 請求項2乃至4のいずれかに記載のシステム又は装置としてコンピュータを機能させるためのプログラム。
  6. 請求項2乃至4のいずれかに記載のシステム又は装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2010095131A 2010-04-16 2010-04-16 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体 Active JP5496756B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010095131A JP5496756B2 (ja) 2010-04-16 2010-04-16 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010095131A JP5496756B2 (ja) 2010-04-16 2010-04-16 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2011227193A JP2011227193A (ja) 2011-11-10
JP5496756B2 true JP5496756B2 (ja) 2014-05-21

Family

ID=45042621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010095131A Active JP5496756B2 (ja) 2010-04-16 2010-04-16 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5496756B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681973B2 (en) * 2010-09-15 2014-03-25 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
WO2013069776A1 (ja) * 2011-11-11 2013-05-16 日本電気株式会社 データベース暗号化システムと方法及びプログラム
JP6730740B2 (ja) * 2017-12-25 2020-07-29 株式会社アクセル 処理装置、処理方法、処理プログラム、及び暗号処理システム
JP6671701B1 (ja) 2019-07-19 2020-03-25 Eaglys株式会社 演算装置、演算方法、演算プログラム、および演算システム
JP6795863B1 (ja) 2020-01-24 2020-12-02 Eaglys株式会社 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム
JP6867718B1 (ja) 2020-02-20 2021-05-12 Eaglys株式会社 情報処理システム、情報処理装置、情報処理方法、および、情報処理プログラム
CN115150055B (zh) * 2022-06-12 2024-05-24 中国科学院重庆绿色智能技术研究院 一种基于同态加密的隐私保护岭回归方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005084568A (ja) * 2003-09-11 2005-03-31 Nippon Telegr & Teleph Corp <Ntt> セキュリティ方法、セキュリティ装置及びセキュリティプログラム
JP5161177B2 (ja) * 2009-09-04 2013-03-13 日本電信電話株式会社 代理計算依頼装置、代理計算依頼方法、代理計算依頼プログラム、記録媒体
CN102687184B (zh) * 2010-01-12 2015-11-25 日本电信电话株式会社 代理计算系统、方法及代理计算委托装置

Also Published As

Publication number Publication date
JP2011227193A (ja) 2011-11-10

Similar Documents

Publication Publication Date Title
JP5496756B2 (ja) 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
Chen Cryptography standards in quantum time: new wine in old wineskin?
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
JP2011147047A (ja) プロキシ再暗号化システム、送信装置、再暗号化鍵生成装置、プロキシ装置、受信装置、プロキシ再暗号化方法、それらのプログラムおよび記録媒体
EP3817323B1 (en) Encryption processing system, encryption processing method, and program
CN111614667A (zh) 电网调控信息实时数据传输的安全加密方法、装置和系统
Paul et al. A provably secure conditional proxy re-encryption scheme without pairing
JP2006210964A (ja) エルガマル暗号による情報授受伝達方法及び装置
JP6920233B2 (ja) スターネットワークにおけるプライバシー保護順序統計の方法およびシステム
JP6294882B2 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
Darwish et al. A new hybrid cryptosystem for Internet of Things applications
JP5713947B2 (ja) プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置
Hatkar et al. Symmetric key algorithm using vernam cipher: VSA
JP2004246350A (ja) 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP2011107407A (ja) 準同型暗号システム、準同型暗号方法、プログラム
Wang et al. Anti-quantum generalized signcryption scheme based on multivariate and coding
Matthias et al. A Secure Model on Cloud using a Modified Rivest, Shamir and Adleman Algorithm along with Gray Codes
JP5755600B2 (ja) コミットメントシステム、共通参照情報生成装置、コミット生成装置、コミット受信装置、コミットメント方法
JP3518671B2 (ja) 暗号通信方法
Men et al. An NTRU-based Homomorphic Encrypted Data Analysis System
Hati HYBRID APPROACHES IN CRYPTOGRAPHY.
Liu et al. A symmetric additive homomorphic encryption scheme based on NTRU proxy rekeys

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140305

R150 Certificate of patent or registration of utility model

Ref document number: 5496756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150