JP6719339B2 - 暗号システム、暗号方法及び暗号プログラム - Google Patents
暗号システム、暗号方法及び暗号プログラム Download PDFInfo
- Publication number
- JP6719339B2 JP6719339B2 JP2016168468A JP2016168468A JP6719339B2 JP 6719339 B2 JP6719339 B2 JP 6719339B2 JP 2016168468 A JP2016168468 A JP 2016168468A JP 2016168468 A JP2016168468 A JP 2016168468A JP 6719339 B2 JP6719339 B2 JP 6719339B2
- Authority
- JP
- Japan
- Prior art keywords
- user
- master
- key
- data
- public key
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Description
第1のユーザの公開鍵及び秘密鍵をマスタ公開鍵及びマスタ秘密鍵として生成するマスタ鍵生成装置と、
前記マスタ公開鍵を用いて、第2のユーザの公開鍵及び秘密鍵をユーザ公開鍵及びユーザ秘密鍵として生成するユーザ鍵生成装置と、
前記ユーザ公開鍵により暗号化された暗号化データを保管するデータ保管部と、データを用いた演算の手順を演算手順として取得し、前記演算手順に用いられるデータが暗号化された暗号化データを前記データ保管部から選択し、前記演算手順に基づいて前記暗号化データに対して準同型演算を行い、準同型演算の演算結果を暗号化演算結果として出力する演算部とを備えた管理装置と、
前記暗号化演算結果を取得し、取得した前記暗号化演算結果を前記マスタ秘密鍵で復号するマスタ復号装置とを備えた。
***構成の説明***
図1を用いて、本実施の形態に係る暗号システム100の構成について説明する。
本実施の形態では、加算が任意回、乗算が1回実行可能なSomewhat準同型暗号技術を開示する。
図1に示すように、暗号システム100は、マスタ鍵生成装置200と、ユーザ鍵生成装置300と、暗号化装置400と、マスタ復号装置500と、ユーザ復号装置600と、管理装置700とを備える。暗号システム100は、複数のマスタ鍵生成装置200を備えていてもよい。暗号システム100は、複数のユーザ鍵生成装置300を備えていてもよい。暗号システム100は、複数の暗号化装置400を備えていてもよい。暗号システム100は、複数のマスタ復号装置500を備えていてもよい。暗号システム100は、複数のユーザ復号装置600を備えていてもよい。暗号システム100は、複数の管理装置700を備えていてもよい。
インターネット101は、マスタ鍵生成装置200と、ユーザ鍵生成装置300と、暗号化装置400と、マスタ復号装置500と、ユーザ復号装置600と、管理装置700とを接続する通信路である。インターネット101は、ネットワークの例である。インターネット101の代わりに、他の種類のネットワークが用いられてもよい。
一方で、暗号システム100のユーザは、管理者とは異なり、他のユーザの暗号文を復号することができず、自身に対応した公開鍵で暗号化された暗号文のみ復号できる。本システムのユーザは、第2のユーザの例である。
なお、準同型演算は、マスタ公開鍵や各ユーザの公開鍵があればどのような装置でも実行できる。ただし、準同型演算を行った後の暗号文を復号するためには、マスタ秘密鍵もしくは各ユーザのユーザ秘密鍵が必要である。
また、マスタ復号装置500は、管理装置700に登録されている暗号文に対して準同型演算を実行させる要求を出し、マスタ鍵ペアを用いて、準同型演算結果の暗号文(以降、暗号化演算結果と呼ぶ)を復号して平文の演算結果を抽出する装置である。
また、ユーザ復号装置600は、管理装置700に登録されている暗号文に対して準同型演算を実行させる要求を出し、ユーザ鍵ペアを用いて、準同型演算結果の暗号文(すわなち、暗号化演算結果)を復号して平文の演算結果を抽出する装置である。
管理装置700は、保管装置として機能する。即ち、管理装置700は、暗号化装置400から暗号化データの保管の要求があれば、暗号化データを保管する。
また、管理装置700は、演算装置として機能する。即ち、管理装置700は、マスタ復号装置500またはユーザ復号装置600から、管理装置700に保管されている暗号化データに対して準同型演算の要求があれば、指定された暗号化データに関して準同型演算を実行し、暗号化演算結果をマスタ復号装置500またはユーザ復号装置600に送信する。
以下において、暗号システム100が備える装置において共通の機能を有するハードウェアについては同一の符号を付すものとする。
図2を用いて、本実施の形態に係るマスタ鍵生成装置200の構成について説明する。
マスタ鍵生成装置200は、コンピュータである。マスタ鍵生成装置200は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940、通信装置950といった他のハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、マスタ鍵生成装置200における入力部201と、マスタ鍵生成部202と、出力部203との機能を、マスタ鍵生成装置200の「部」の機能という。
マスタ鍵生成装置200の「部」の機能は、ソフトウェアで実現される。
記憶部209は、記憶装置920で実現される。
マスタ鍵生成部202は、入力部201から受け取ったセキュリティパラメーターλに基づき、マスタ公開鍵MPKとマスタ秘密鍵MSKからなるマスタ鍵ペア(MPK、MSK)を生成する。マスタ鍵生成部202は、ペアリング写像が計算できる楕円曲線上の巡回群を構成する生成元gを用いて、マスタ公開鍵MPK及びマスタ秘密鍵MSKを生成する。
具体的には、マスタ鍵生成部202は、λ/2ビットの素数pと素数qをランダムに生成し、例えば非特許文献3に記載されている方法を用いて、双線型写像e(ペアリング写像とも呼ばれる)が効率良く計算できる楕円曲線上の位数Nの巡回群G_Nを構成する生成元gを求める。なお、eはG_N×G_N→G_N’と定義される写像で、G_N’は位数Nの巡回群である。以降、G_N上の演算を*で表わし、G_N’上の演算を・で表わす。またべき乗演算を^で表わす。巡回群G_Nの部分巡回群G_pを構成するh=g^(αq)を求める。ただし、αは整数の集合{1,・・・,p}からランダムに選んだ整数とする。このとき、MPK=(N,e,g,h)、MSK=(p,q)とおく。
出力部203は、マスタ鍵生成部202で生成されたマスタ公開鍵MPKを、通信装置950を介して、ユーザ鍵生成装置300と、暗号化装置400と、管理装置700とへ送信する。また、出力部203は、マスタ鍵生成部202で生成されたマスタ鍵ペア(MSK、MSK)を、通信装置950を介して、マスタ復号装置500へ送信する。すなわち、マスタ鍵生成装置200は、マスタ公開鍵MPK及びマスタ秘密鍵MSKをマスタ復号装置500に送信すると共に、マスタ公開鍵MPKのみを、ユーザ鍵生成装置300と暗号化装置400と管理装置700とに送信する。
図3を用いて、本実施の形態に係るユーザ鍵生成装置300の構成について説明する。
ユーザ鍵生成装置300は、コンピュータである。マスタ鍵生成装置200は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940、通信装置950といった他のハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、ユーザ鍵生成装置300における入力部301と、ユーザ鍵生成部303と、出力部304との機能を、ユーザ鍵生成装置300の「部」の機能という。
ユーザ鍵生成装置300の「部」の機能は、ソフトウェアで実現される。
記憶部309は、記憶装置920で実現される。
また、入力部301は、入力インタフェース930を介して、ユーザから、そのユーザを識別するユーザ識別子UIDを受け取る。例えば、ユーザ識別子は、ユーザの名前や、所属している組織の名前や、システムで逐次一意的に振られる識別番号がその一例である。これは、どのユーザと関連するユーザ公開鍵であるか、どのユーザと関連する暗号文であるかを示すために用いられる。
マスタ公開鍵保管部302は、入力部301から受け取ったマスタ公開鍵MPKを保管する。
具体的には、ユーザ鍵生成部303は、マスタ公開鍵MPKを用いて、y=h^xを求める。ただし、xは整数の集合{1,・・・,N}からランダムに選んだ自然数である。このとき、PK=(N,e,g,h,y)、SK=xとおく。
図4を用いて、本実施の形態に係る暗号化装置400の構成について説明する。
暗号化装置400は、コンピュータである。暗号化装置400は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940、通信装置950といった他のハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、暗号化装置400における入力部401と、暗号化部404と、送信部405との機能を、暗号化装置400の「部」の機能という。
暗号化装置400の「部」の機能は、ソフトウェアで実現される。
記憶部409は、記憶装置920で実現される。
入力部401は、入力インタフェース930を介して、ユーザから、暗号化したいデータmと、そのデータを識別するデータ識別子DIDと、暗号化データを渡したいユーザのユーザ識別子UIDとを受け取る。例えば、データ識別子は、データの名前や、システムで逐次一意的に振られる識別番号がその一例である。このデータ識別子は、復号する対象の暗号文や準同型演算に用いる対象の暗号文を識別するために用いられる。また、データmは、離散対数問題が解ける程度のビット長を持つデータとする。例えば、log_2(λ)程度のビット長としてもよい。
ユーザ公開鍵保管部403は、入力部401から受け取ったユーザ公開鍵とユーザ識別子のペア(PK,UID)を保管する。
具体的には、暗号化部404は、マスタ公開鍵MPKを用いて、整数の集合{1,・・・,N}の中からランダムにrを選び、次の(式1)でc0を計算する。
c0=y^r*g^m (式1)
具体的には、暗号化部404は、ユーザ公開鍵PKを用いて、整数の集合{1,・・・,N}の中からランダムにrを選び、次の(式2)及び(式3)でc1とc2を計算する。
c1=h^r (式2),c2=y^r*g^m (式3)
送信部405は、ユーザ識別子UIDと、データ識別子DIDと、暗号化部404から受け取った暗号化データ(c1,c2)との組(UID,DID,c1,c2)を出力し、管理装置700へ送信する。
すなわち、暗号化装置400は、暗号化するデータmとユーザを識別するユーザ識別子とを取得し、データmを暗号化した暗号化データとユーザ識別子とを管理装置700に送信する。
図5を用いて、本実施の形態に係るマスタ復号装置500の構成について説明する。
マスタ復号装置500は、コンピュータである。マスタ復号装置500は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940、通信装置950といった他のハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、マスタ復号装置500における入力部501と、演算手順設定部503と、復号部504と、出力部505との機能を、マスタ復号装置500の「部」の機能という。
マスタ復号装置500の「部」の機能は、ソフトウェアで実現される。
記憶部509は、記憶装置920で実現される。
入力部501は、入力インタフェース930を介して、管理者から、管理装置700に保管されている暗号化データの中で準同型演算したい対象のデータを識別するためのデータ識別子集合{DID1,・・・,DIDn}と、その対象のデータに対してどのように処理したいかを示した処理内容Kとを受け取る。ただし、nは1以上の整数である。これ以降、データ識別子集合{DID1,・・・,DIDn}を{DID}と略して表記する。例えば、この処理内容は、2つのデータの「総和」や「ユークリッド二乗距離」などがその一例である。もしくは、どのデータとどのデータを準同型加算するなど具体的な演算手順そのものでも構わない。
入力部501は、管理装置700などに保管されている暗号化データや、管理装置700で処理された暗号化演算結果(準同型演算結果)を受け取る。
具体的には、復号部504は、マスタ鍵ペアを用いて、管理者の公開鍵で暗号化された暗号化データc0に対して、M_p=c0^p及びb_p=g^pを計算し、b_pを底としたM_pの離散対数Mを計算する。このMを計算するために、例えば、非特許文献3に記載されたλ法などを使うことができる。以降、離散対数を求めることを表すために、DLogを用いて、M=DLog_(b_p)(M_p)のように表記する。もし、ユーザ公開鍵で暗号化された暗号文データ(c1,c2)を復号する場合は、c2をc0とみて上記と同様な処理を実行すればよい。
また、復号部504は、暗号化演算結果がG_N上の一つの元sで表わされていた場合は、マスタ鍵ペアを用いて、s=c0とみて上記と同様な復号処理を行うことでデータMを求める。もし、暗号化演算結果がG’_N上の一つの元Sで表わされていた場合には、復号部504は、次の(式4)のように計算を行ってデータMを求める。
M=DLog_(e(g,g)^p)(S^p) (式4)
なお、暗号化演算結果のsやSの具体的な構造については後に述べる。
出力部505は、出力インタフェース940を介して、復号部504から受け取ったデータMを出力する。
図6を用いて、本実施の形態に係るユーザ復号装置600の構成について説明する。
ユーザ復号装置600は、コンピュータである。ユーザ復号装置600は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940、通信装置950といった他のハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、ユーザ復号装置600における入力部601と、演算手順設定部603と、復号部604と、出力部605との機能を、ユーザ復号装置600の「部」の機能という。
ユーザ復号装置600の「部」の機能は、ソフトウェアで実現される。
記憶部609は、記憶装置920で実現される。
入力部601は、入力インタフェース930を介して、ユーザから、ユーザ識別子UIDと、管理装置700に保管されている暗号化データの中で準同型演算したい対象のデータを識別するためのデータ識別子集合{DID1,・・・,DIDn}と、その対象のデータに対してどのように処理したいかを示した処理内容Kとを受け取る。ただし、nは1以上の整数である。これ以降、データ識別子集合{DID1,・・・,DIDn}を{DID}と略して表記する。
入力部601は、管理装置700などに保管されている暗号化データや、管理装置700で処理された暗号化演算結果(準同型演算結果)を受け取る。
具体的には、復号部604は、ユーザ鍵ペアを用いて、暗号化データ(c1,c2)に対して次の(式5)のようにしてデータMを求める。
M=DLog_(g)(c1^(−x)*c2) (式5)
M=DLog_(e(g,g))(T1^(−x^2)・T2^(x)・T3) (式6)
出力部605は、出力インタフェース940を介して、復号部604から受け取ったデータMを出力する。
図7を用いて、本実施の形態に係る管理装置700の構成について説明する。
管理装置700は、コンピュータである。管理装置700は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940、通信装置950といった他のハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、管理装置700における入力部701と、演算部704と、出力部705との機能を、管理装置700の「部」の機能という。
管理装置700の「部」の機能は、ソフトウェアで実現される。
記憶部709は、記憶装置920で実現される。
入力部701は、通信装置950を介して、暗号化装置400で生成されたユーザ識別子とデータ識別子と暗号化データとの組(ADMIN,DID,c0)や(UID,DID,c1,c2)を受け取る。
入力部701は、通信装置950を介して、マスタ復号装置500で生成されたユーザ識別子とデータ識別子集合と演算手順との組(ADMIN,{DID},P)や、ユーザ復号装置600で生成されたユーザ識別子とデータ識別子集合と演算手順の組(UID,{DID},P)を受け取る。
データ保管部703は、マスタ公開鍵PKあるいはユーザ公開鍵PKにより暗号化されたデータを暗号化データ(c0あるいは(c1,c2))として保管する。データ保管部703は、暗号化データとユーザ識別子(ADMINあるいはUID)とを対応付けて記憶する。具体的には、データ保管部703は、入力部701から受け取ったユーザ識別子とデータ識別子と暗号化データの組(ADMIN,DID,c0)や(UID,DID,c1,c2)を保管する。
具体的に、2つの暗号化データ(c1,c2)=(g^r,y^r*g^m)と(c1’,c2’)=(g^(r’),y^(r’)*g^(m’))の準同型加算を行う場合は、次の(式7),(式8)のように計算して新しいm+m’の暗号化データ(c1’’,c2’’)を求める。ただし、r’’は整数の集合{1,・・・,N}の中からランダムに選ばれた整数とする。
c1’’=c1*c1’*h^(r’’)=h^(r+r’+r’’) (式7)
c2’’=c2*c2’*y^(r’’)=y^(r+r’+r’’)*g^(m+m’) (式8)
(c1,c2)と(c1’,c2’)の準同型乗算を行う場合は、次の(式9)〜(式11)のように計算して新しいm×m’の暗号化データ(C1,C2,C3)を求める。ただし、r1とr2は整数の集合{1,・・・,N}の中からランダムに選ばれた整数とし、R1=rr’+r1及びR2=−rm’+r’m+r2とする。
C1=e(c1,c1’)・e(h,h)^r1=e(h,h)^R1 (式9)
C2=e(c1,c2’^(−1))・e(c1’,c2)・e(h,g)^r2=e(h,g)^R2 (式10)
C3=e(c2,c2’)・e(h,h)^r1・e(y,g)^r2=e(y,y)^R1・e(y,g)^(−R2)・e(g,g)^(m×m’) (式11)
準同型乗算後の暗号化データ(C1,C2,C3)=(e(h,h)^R1,e(h,g)^R2,e(y,y)^R1・e(y,g)^(−R2)・e(c2,c2’)^m)と(C1’,C2’,C3’)=(e(h,h)^R1’,e(h,g)^R2’,e(y,y)^R1’・e(y,g)^(−R2’)・e(g,g)^m’)に対して準同型加算を行う場合は、次の(式12)〜(式14)のようにして新しいm+m’の暗号化データ(C1’’,C2’’,C3’’)を求める。ただし、RとR’は整数の集合{1,・・・,N}の中からランダムに選ばれた整数とし、R1’’=R1+R1’+R及びR2’’=R2+R2’+R’とする。
C1’’=C1・C1’・e(h,h)^R=e(h,h)^R1’’ (式12)
C2’’=C2・C2’・e(h,g)^R’=e(h,g)^R2’’ (式13)
C3’’=C3・C3’’・e(y,y)^R・e(y,g)^(−R’)=e(y,y)^R1’’・e(y,g)^R2’’・e(g,g)^(m+m’) (式14)
なお、この準同型乗算結果の暗号化データ(C1’’,C2’’,C3’’)は、更に準同型加算を実行できるが、準同型乗算を実行することは困難である。
なお、前述した準同型演算はユーザ公開鍵で暗号化された暗号化データを対象に処理方法を述べたが、管理者の場合は、マスタ公開鍵を用いて暗号化された暗号化データc0についても準同型演算が可能である。この時、c0をc2と同一視して、準同型加算ではc2’’のみ生成するように変更することや、準同型乗算ではC3のみ生成するように変更することや、また準同型演算後の準同型加算もC3’’のみ生成するように変更すればよい。
なお、このような管理者のみ復号できる暗号化演算結果について、準同型乗算を1度も実行されていない場合の暗号化演算結果をsと表わし、また準同型演算が1度でも実行された場合の暗号化演算結果をSと表わすことにする。
また、出力部705は、データ保管部703から受け取った暗号化データを出力し、マスタ復号装置500またはユーザ復号装置600へ通信装置950を介して送信する。
プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。プロセッサ910は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ910は、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)ともいう。
出力インタフェース940は、ディスプレイといった表示機器のケーブルが接続されるポートである。出力インタフェース940は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
なお、暗号プログラム520は、暗号システム100の各装置の「部」として説明している機能を実現するプログラムである。また、暗号プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
次に、本実施の形態に係る暗号システム100における暗号方法510及び暗号プログラム520による暗号処理S100について説明する。
図8は、本実施の形態に係る暗号システム100のマスタ鍵ペア生成および保管処理を示すフローチャートである。
図8のステップS101〜ステップS112は、マスタ鍵生成装置200と、ユーザ鍵生成装置300と、暗号化装置400と、マスタ復号装置500と、管理装置700とが実行する処理である。ステップS101〜ステップS104はマスタ鍵生成装置200により実行されるマスタ鍵生成処理S10である。ステップS105〜ステップS106はユーザ鍵生成装置300により実行される。ステップS107〜ステップS108は暗号化装置400により実行される。ステップS109〜ステップS110はマスタ復号装置500により実行される。ステップS111〜ステップS112は管理装置700によって実行される。
ステップS102において、マスタ鍵生成部202は、入力部201から受け取ったセキュリティパラメーターλに基づき、マスタ公開鍵MPKとマスタ秘密鍵MSKからなるマスタ鍵ペア(MPK、MSK)を生成する。
ステップS103において、出力部203は、マスタ鍵生成部202で生成されたマスタ鍵ペア(MSK、MSK)を、マスタ復号装置500へ送信する。
ステップS104において、出力部203は、マスタ鍵生成部202で生成されたマスタ公開鍵MPKを、ユーザ鍵生成装置300と、暗号化装置400と、管理装置700とへ送信する。このとき、マスタ公開鍵MPKのみを送信し、マスタ秘密鍵MSKは送信しない。
ステップS106において、マスタ公開鍵保管部302は、入力部301から受け取ったマスタ公開鍵MPKを保管する。
ステップS108において、マスタ公開鍵保管部402は、入力部401から受け取ったマスタ公開鍵MPKを保管する。
ステップS110において、マスタ鍵ペア保管部502は、入力部501から受け取ったマスタ鍵ペア(MPK,MSK)を保管する。必要があれば、マスタ秘密鍵MSKが外部に漏れないように、暗号化して保管することや、管理者しか扱えないように認証情報なども合わせて保管する。
ステップS112において、公開鍵保管部702は、入力部701から受け取ったマスタ公開鍵MPKを保管する。
ステップS112により、暗号システム100のマスタ鍵ペア生成および保管処理は終了する。
図9は、本実施の形態に係る暗号システム100のユーザ鍵ペア生成および保管処理を示すフローチャートである。
図9のステップS201〜ステップS210は、ユーザ鍵生成装置300と、暗号化装置400と、ユーザ復号装置600と、管理装置700とが実行する処理である。ステップS201〜ステップS204はユーザ鍵生成装置300により実行されるユーザ鍵生成処理S20である。ステップS205〜ステップS206は暗号化装置400により実行される。ステップS207〜ステップS208はユーザ復号装置600により実行される。ステップS209〜ステップS210は管理装置700により実行される。
ステップS202において、ユーザ鍵生成部303は、入力部301から受け取ったユーザ識別子UIDと、マスタ公開鍵保管部302から読み出したマスタ公開鍵MPKとを用いて、ユーザ公開鍵PKとユーザ秘密鍵SKからなるユーザ鍵ペア(PK,SK)を生成する。
ステップS203において、出力部304は、ユーザ鍵生成部303で生成されたユーザ鍵ペアとユーザ識別子の組(PK,SK,UID)を出力し、ユーザ復号装置600へ送信する。
ステップS204において、出力部304は、ユーザ鍵生成部303で生成されたユーザ公開鍵とユーザ識別子のペア(PK,UID)を出力し、暗号化装置400と、管理装置700とへ送信する。このとき、ユーザ秘密鍵SKは送信しない。
ステップS206において、ユーザ公開鍵保管部403は、入力部401から受け取ったユーザ公開鍵とユーザ識別子のペア(PK,UID)を保管する。
ステップS208において、ユーザ鍵ペア保管部602は、入力部601から受け取ったユーザ鍵ペアとユーザ識別子の組(PK,SK,UID)を保管する。必要があれば、SKが外部に漏れないように、暗号化して保管することや、扱えるユーザを制限するための認証情報なども合わせて保管する。
ステップS210において、公開鍵保管部702は、ユーザ公開鍵とユーザ識別子のペア(PK,UID)を保管する。
ステップS210により、暗号システム100のユーザ鍵ペア生成および保管処理は終了する。
図10は、本実施の形態に係る暗号システム100のデータ暗号化および保管処理を示すフローチャートである。
図10のステップS301〜ステップS306は、暗号化装置400と管理装置700とが実行する処理である。ステップS301〜ステップS304は暗号化装置400により実行される。ステップS305〜ステップS306は管理装置700により実行される処理である。
ステップS302において、暗号化部404は、入力部401から受け取ったユーザ識別子UIDと対応するようなユーザ公開鍵とユーザ識別子のペア(PK,UID)をユーザ公開鍵保管部403から読み出す。もしUID=ADMINであった場合には、暗号化部404は、マスタ公開鍵保管部402からマスタ公開鍵MPKを読み出す。
ステップS303において、暗号化部404は、ステップS302で読み出したユーザ公開鍵PKを用いて、入力部401から受け取ったデータmを前述のように暗号化して、暗号化データ(c1,c2)を生成する。もしステップS302でマスタ公開鍵MPKを読み出していた場合には、暗号化部404は、入力部401から受け取ったデータmを前述のように暗号化して、暗号化データc0を生成する。
ステップS304において、送信部405は、ユーザ識別子UIDと、データ識別子DIDと、ステップS303で生成した暗号化データ(c1,c2)との組(UID,DID,c1,c2)を出力し、管理装置700へ送信する。もしステップS303で暗号化データc0を生成した場合には、送信部405は、ユーザ識別子UID=ADMINと、データ識別子DIDと、ステップS303で生成した暗号化データc0との組(ADMIN,DID,c0)を出力し、管理装置700へ送信する。
ステップS306において、データ保管部703は、入力部701がステップS305で受け取ったユーザ識別子とデータ識別子と暗号化データの組(UID,DID,c1,c2)もしくは(ADMIN,DID,c0)を保管する。
ステップS306により、暗号システム100のデータの暗号化および保管処理は終了する。
図11は、本実施の形態に係る暗号システム100のマスタ復号処理S30を示すフローチャートである。マスタ復号処理S30は、暗号化演算結果を取得し、取得した暗号化演算結果をマスタ秘密鍵MSKで復号する管理者向けのデータ復号処理である。
図11のステップS401〜ステップS404は、マスタ復号装置500が実行する処理である。
ステップS402において、復号部504は、マスタ鍵ペア保管部502からマスタ鍵ペア(MPK,MSK)を読み出す。もし必要であれば、パスワードやトークン、生体情報などを入力して、管理者の認証も行う。
ステップS403において、復号部504は、入力部501がステップS401で受け取った暗号化データc0もしくは(c1,c2)に対して、前述のように復号処理を行い、データMを求める。データMは平文ともいう。
ステップS404において、出力部505は、復号部504がステップS403で生成したデータMを出力する。
ステップS404により、暗号システム100のマスタ復号処理S30は終了する。
図12は、本実施の形態に係る暗号システム100のユーザ復号処理S40を示すフローチャートである。ユーザ復号処理S40は、管理装置700から暗号化演算結果を取得し、取得した暗号化演算結果をユーザ秘密鍵SKで復号するユーザ向けのデータ復号処理である。
図12のステップS501〜ステップS504は、ユーザ復号装置600が実行する処理である。
ステップS502において、復号部604は、入力部601がステップS501で受け取ったユーザ識別子UIDに基づき、ユーザ鍵ペア保管部602からユーザ鍵ペアとユーザ識別子の組(PK,SK,UID)を読み出す。もし必要であれば、パスワードやトークン、生体情報などを入力して、ユーザの認証も行う。
ステップS503において、復号部604は、入力部601がステップS501で受け取った暗号化データ(c1,c2)に対して、前述のように復号処理を行い、データMを求める。データMは平文ともいう。
ステップS504において、出力部605は、復号部604がステップS503で生成したデータMを出力する。
ステップS504により、暗号システム100のユーザ復号処理S40は終了する。
図13は、本実施の形態に係る暗号システム100の準同型演算処理S50および演算結果復号処理S60を示すフローチャートである。図13では、管理者向けの準同型演算処理S50および演算結果復号処理S60について説明する。
図13のステップS601〜ステップS612は、マスタ復号装置500と管理装置700とが実行する処理である。ステップS601〜ステップS603とステップS609〜ステップS612はマスタ復号装置500により実行される処理である。ステップS604〜ステップS608は管理装置700によって実行される処理である。
ステップS602において、演算手順設定部503は、入力部501がステップS601で受け取ったデータ識別子集合{DID}と処理内容とから、前述のように演算手順Pを生成する。
ステップS603において、出力部505は、管理者のユーザ識別子ADMINと、データ識別子集合{DID}と、演算手順設定部503がステップS602で生成した演算手順Pとの組(ADMIN,{DID},P)を出力し、管理装置700へ送信する。
ステップS605において、演算部704は、入力部701がステップS604で受け取った(ADMIN,{DID},P)を用いて、データ保管部703から{DID}に含まれるデータ識別子DIDを持つ組(ADMIN,DID,c0)や(UID,DID,c1,c2)を読み出す。
ステップS606において、演算部704は、公開鍵保管部702からマスタ公開鍵MPK読み出す。
ステップS607において、演算部704は、ステップS606で読み出したマスタ公開鍵MPKを用いて、ステップS605で読み出した暗号化データc0や(c1,c2)の集合を演算手順Pに従って前述のように準同型演算処理を行い、暗号化演算結果sもしくはSを生成する。
ステップS608において、出力部705は、演算部704がステップS607で生成した暗号化演算結果sもしくはSを出力し、マスタ復号装置500へ送信する。
ステップS610において、復号部504は、マスタ鍵ペア保管部502からマスタ鍵ペア(MPK,MSK)を読み出す。もし必要であれば、パスワードやトークン、生体情報などを入力して、管理者の認証も行う。
ステップS611において、復号部504は、ステップS610で読み出したマスタ鍵ペア(MPK,MSK)を用いて、入力部501がステップS609で受け取った暗号化演算結果sもしくはSを、前述の復号処理に従って平文の演算結果であるデータMを求める。
ステップS612において、出力部505は、復号部504がステップS611で求めたデータMを出力する。
ステップS612により、暗号システム100の管理者向けの準同型演算処理およびその復号処理は終了する。
図14は、本実施の形態に係る暗号システム100の準同型演算処理S50および演算結果復号処理S60を示すフローチャートである。図14では、ユーザ向けの準同型演算処理S50および演算結果復号処理S60について説明する。
図14のステップS701〜ステップS712は、ユーザ復号装置600と管理装置700とが実行する処理である。ステップS701〜ステップS703とステップS709〜ステップS712はユーザ復号装置600により実行される処理である。ステップS704〜ステップS708は管理装置700によって実行される処理である。
ステップS702において、演算手順設定部603は、入力部601がステップS701で受け取ったデータ識別子集合{DID}と処理内容とから、前述のように演算手順Pを生成する。
ステップS703において、出力部605は、ユーザ識別子UIDと、データ識別子集合{DID}と、演算手順設定部603がステップS702で生成した演算手順Pとの組(UID,{DID},P)を出力し、管理装置700へ送信する。
ステップS705において、演算部704は、入力部701がステップS704で受け取った(UID,{DID},P)を用いて、データ保管部703から(UID,DID1),・・・,(UID,DIDn)のペアに対応する組(UID,DID,c1,c2)を読み出す。
もしここで、マスタ公開鍵で暗号化された暗号化データc0や、指定したユーザのUIDとは異なるユーザ公開鍵で暗号化した暗号化データ(c1,c2)を読み出そうとした場合、すなわち、UID≠UID’で(UID’,DIDi,c1,c2)となるような組(ただし、DIDi∈{DID}かつ1≦i≦n}を読み出そうとした場合は、暗号化演算結果を復号できない、もしくは復号した結果がランダムなデータとなるため、演算部704は、この場合は暗号化演算結果として「エラー」といった特別の文字列を生成する。
ステップS706において、演算部704は、入力部701がステップS704で受け取った(UID,{DID},P)を用いて、公開鍵保管部702からユーザ公開鍵とユーザ識別子のペア(PK,UID)を読み出す。
ステップS707において、演算部704は、ステップS706で読み出した公開鍵PKを用いて、ステップS705で読み出した暗号化データ(c1,c2)の集合を演算手順Pに従って前述のように準同型演算処理を行い、暗号化演算結果(t1,t2)もしくは(T1,T2,T3)を生成する。もし、演算部704がステップS705において特別の文字列「エラー」を生成していれば、演算部704は、ここでは何も処理しない。
ステップS708において、出力部705は、演算部704がステップS707で生成した暗号化演算結果(t1,t2)、もしくは(T1,T2,T3)、もしくは特別な文字列「エラー」を出力し、ユーザ復号装置600へ送信する。
ステップS710において、復号部604は、ユーザ鍵ペア保管部602からユーザ鍵ペアとユーザ識別子の組(PK,SK,UID)を読み出す。もし必要であれば、パスワードやトークン、生体情報などを入力して、ユーザの認証も行う。もし入力部601がステップS709において特別の文字列「エラー」を受信していれば、復号部604は、ここでは何も処理しない。
ステップS712において、出力部605は、復号部604がステップS711で求めたデータMを出力する。もし入力部601がステップS709において特別の文字列「エラー」を受信していれば、出力部605は、特別の文字列「エラー」を出力する。
ステップS712により、暗号システム100のユーザ向けの準同型演算処理とその復号処理は終了する。
本実施の形態では、暗号システム100の各装置の機能がソフトウェアで実現されるが、変形例として、暗号システム100の各装置の機能がハードウェアで実現されてもよい。
この本実施の形態の変形例について、図15から図20を用いて説明する。
図16は、本実施の形態の変形例に係るユーザ鍵生成装置300の構成を示す図である。
図17は、本実施の形態の変形例に係る暗号化装置400の構成を示す図である。
図18は、本実施の形態の変形例に係るマスタ復号装置500の構成を示す図である。
図19は、本実施の形態の変形例に係るユーザ復号装置600の構成を示す図である。
図20は、本実施の形態の変形例に係る管理装置700の構成を示す図である。
以上のように、本実施の形態に係る暗号システムによれば、厳重な管理が必要なマスタ秘密鍵MSKを一切使うことなく、公開情報のマスタ公開鍵MPKからユーザ公開鍵PKを生成できるため、運用コストを下げることができる。
効率よく処理できる。また、準同型加算のみならず準同型乗算も実行できるため、高い準同型性を持つ。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (9)
- 第1のユーザの公開鍵及び秘密鍵をマスタ公開鍵及びマスタ秘密鍵として生成するマスタ鍵生成装置と、
前記マスタ公開鍵を用いて、第2のユーザの公開鍵及び秘密鍵をユーザ公開鍵及びユーザ秘密鍵として生成するユーザ鍵生成装置と、
前記ユーザ公開鍵により暗号化された暗号化データを保管するデータ保管部と、データを用いた演算の手順を演算手順として取得し、前記演算手順に用いられるデータが暗号化された暗号化データを前記データ保管部から選択し、前記演算手順に基づいて前記暗号化データに対して準同型演算を行い、準同型演算の演算結果を暗号化演算結果として出力する演算部とを備えた管理装置と、
前記暗号化演算結果を取得し、取得した前記暗号化演算結果を前記マスタ秘密鍵で復号するマスタ復号装置と
を備えた暗号システム。 - 前記マスタ鍵生成装置は、
前記マスタ公開鍵及び前記マスタ秘密鍵を前記マスタ復号装置に送信すると共に、前記マスタ公開鍵のみを前記ユーザ鍵生成装置と前記管理装置とに送信する請求項1に記載の暗号システム。 - 前記マスタ鍵生成装置は、
ペアリング写像が計算できる楕円曲線上の巡回群を構成する生成元を用いて、前記マスタ公開鍵及び前記マスタ秘密鍵を生成し、
前記ユーザ鍵生成装置は、
前記マスタ公開鍵とランダムに選択された自然数とを用いて、前記ユーザ公開鍵及び前記ユーザ秘密鍵を生成する請求項1または2に記載の暗号システム。 - 前記演算部は、
乗算を含む前記演算手順を取得する請求項1から3のいずれか1項に記載の暗号システム。 - 前記暗号システムは、さらに、
暗号化するデータを取得し、取得したデータを前記ユーザ公開鍵により暗号化し、暗号化したデータを前記暗号化データとして前記管理装置に送信する暗号化装置と、
前記管理装置から前記暗号化演算結果を取得し、取得した前記暗号化演算結果を前記ユーザ秘密鍵で復号するユーザ復号装置と
を備える請求項1から4のいずれか1項に記載の暗号システム。 - 前記マスタ鍵生成装置は、
前記マスタ公開鍵及び前記マスタ秘密鍵を前記マスタ復号装置に送信すると共に、前記マスタ公開鍵のみを、前記ユーザ鍵生成装置と前記暗号化装置と前記管理装置とに送信し、
前記ユーザ鍵生成装置は、
前記ユーザ公開鍵及び前記ユーザ秘密鍵を前記ユーザ復号装置に送信すると共に、前記ユーザ公開鍵のみを、前記暗号化装置と前記管理装置とに送信する請求項5に記載の暗号システム。 - 前記暗号化装置は、
前記暗号化するデータとユーザを識別するユーザ識別子とを取得し、前記暗号化データと前記ユーザ識別子とを前記管理装置に送信し、
前記データ保管部は、
前記暗号化データと前記ユーザ識別子とを対応付けて記憶し、
前記演算部は、
前記演算手順と前記第2のユーザのユーザ識別子である第2のユーザ識別子とを取得し、前記演算手順に用いられるデータが暗号化された暗号化データであって前記第2のユーザ識別子に対応付けられた暗号化データを前記データ保管部から選択し、選択した暗号化データに対して前記演算手順に基づいて準同型演算を行う請求項5または6に記載の暗号システム。 - マスタ鍵生成装置が、第1のユーザの公開鍵及び秘密鍵をマスタ公開鍵及びマスタ秘密鍵として生成し、
ユーザ鍵生成装置が、前記マスタ公開鍵を用いて、第2のユーザの公開鍵及び秘密鍵をユーザ公開鍵及びユーザ秘密鍵として生成し、
管理装置が、データを用いた演算の手順を演算手順として取得し、前記演算手順に用いられるデータを暗号化した暗号化データを、前記ユーザ公開鍵により暗号化された暗号化データが保管されたデータ保管部から選択し、前記演算手順に基づいて前記暗号化データに対して準同型演算を行い、準同型演算の演算結果を暗号化演算結果として出力し、
マスタ復号装置が、前記暗号化演算結果を取得し、取得した前記暗号化演算結果を前記マスタ秘密鍵で復号する暗号方法。 - 第1のユーザの公開鍵及び秘密鍵をマスタ公開鍵及びマスタ秘密鍵として生成するマスタ鍵生成処理と、
前記マスタ公開鍵を用いて、第2のユーザの公開鍵及び秘密鍵をユーザ公開鍵及びユーザ秘密鍵として生成するユーザ鍵生成処理と、
データを用いた演算の手順を演算手順として取得し、前記演算手順に用いられるデータを暗号化した暗号化データを、前記ユーザ公開鍵により暗号化された暗号化データを保管するデータ保管部から選択し、前記演算手順に基づいて前記暗号化データに対して準同型演算を行い、準同型演算の演算結果を暗号化演算結果として出力する準同型演算処理と、
前記暗号化演算結果を取得し、取得した前記暗号化演算結果を前記マスタ秘密鍵で復号する演算結果復号処理と
をコンピュータに実行させる暗号プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016168468A JP6719339B2 (ja) | 2016-08-30 | 2016-08-30 | 暗号システム、暗号方法及び暗号プログラム |
CN201780051797.XA CN109643504B (zh) | 2016-08-30 | 2017-08-07 | 加密系统、加密方法以及计算机可读的存储介质 |
US16/327,107 US20190190713A1 (en) | 2016-08-30 | 2017-08-07 | Encryption system, encryption method, and computer readable medium |
PCT/JP2017/028614 WO2018043049A1 (ja) | 2016-08-30 | 2017-08-07 | 暗号システム、暗号方法及び暗号プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016168468A JP6719339B2 (ja) | 2016-08-30 | 2016-08-30 | 暗号システム、暗号方法及び暗号プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018036418A JP2018036418A (ja) | 2018-03-08 |
JP6719339B2 true JP6719339B2 (ja) | 2020-07-08 |
Family
ID=61300467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016168468A Active JP6719339B2 (ja) | 2016-08-30 | 2016-08-30 | 暗号システム、暗号方法及び暗号プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190190713A1 (ja) |
JP (1) | JP6719339B2 (ja) |
CN (1) | CN109643504B (ja) |
WO (1) | WO2018043049A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055152B (zh) * | 2019-12-26 | 2022-10-18 | 郑珂威 | 基于完全同态加密技术的中间代码加密方法及密文虚拟机系统 |
CN112769553B (zh) * | 2020-12-30 | 2022-08-19 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
CN115102688B (zh) * | 2022-08-24 | 2022-11-22 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000174746A (ja) * | 1998-09-30 | 2000-06-23 | Hitachi Software Eng Co Ltd | デ―タ復号方法および装置 |
JP2005500740A (ja) * | 2001-08-13 | 2005-01-06 | ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティ | Idベース暗号化および関連する暗号手法のシステムおよび方法 |
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 |
US8862895B2 (en) * | 2010-04-27 | 2014-10-14 | Fuji Xerox Co., Ltd. | Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data |
JP5790471B2 (ja) * | 2011-12-13 | 2015-10-07 | 富士通株式会社 | 暗号処理方法、復号処理方法、装置及びプログラム |
JP5921410B2 (ja) * | 2012-10-19 | 2016-05-24 | 三菱電機株式会社 | 暗号システム |
EP3010173B1 (en) * | 2013-07-18 | 2019-01-16 | Nippon Telegraph And Telephone Corporation | Key storage device, key storage method, and program therefor |
JP6273951B2 (ja) * | 2014-03-24 | 2018-02-07 | 富士通株式会社 | 暗号化装置、暗号化方法、情報処理装置および暗号化システム |
-
2016
- 2016-08-30 JP JP2016168468A patent/JP6719339B2/ja active Active
-
2017
- 2017-08-07 US US16/327,107 patent/US20190190713A1/en not_active Abandoned
- 2017-08-07 CN CN201780051797.XA patent/CN109643504B/zh active Active
- 2017-08-07 WO PCT/JP2017/028614 patent/WO2018043049A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2018043049A1 (ja) | 2018-03-08 |
CN109643504A (zh) | 2019-04-16 |
US20190190713A1 (en) | 2019-06-20 |
JP2018036418A (ja) | 2018-03-08 |
CN109643504B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Privacy-preserving public auditing for data storage security in cloud computing | |
US11233659B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
JP3659178B2 (ja) | 分散ディジタル署名作成方法及び装置及び分散ディジタル署名付ディジタル文書作成方法及び装置及び分散ディジタル署名作成プログラム及び分散ディジタル署名作成プログラムを格納した記憶媒体 | |
JP4874629B2 (ja) | カースルズ−テイトペアリングに基づくデータの暗号処理 | |
JP6058237B1 (ja) | 暗号文変換装置、暗号文変換プログラム及び暗号文変換方法 | |
JP5291795B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 | |
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
Lu et al. | Efficient searchable public key encryption against keyword guessing attacks for cloud-based EMR systems | |
Chen | Cryptography standards in quantum time: new wine in old wineskin? | |
US20180278417A1 (en) | Apparatus and method for generating key, and apparatus and method for encryption | |
JP6719339B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
Gupta et al. | Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover | |
Lee et al. | Security analysis and modification of ID-based encryption with equality test from ACISP 2017 | |
WO2020240654A1 (ja) | 匿名署名システム、署名生成装置、匿名署名生成装置、検証装置、匿名署名方法及びプログラム | |
Al-Kaabi et al. | Methods toward enhancing RSA algorithm: a survey | |
Barker | Cryptographic Standards in the Federal Government: Cryptographic Mechanisms | |
JP5679344B2 (ja) | 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム | |
JP6320943B2 (ja) | 鍵共有装置、鍵共有システム、鍵共有方法、プログラム | |
WO2021095103A1 (ja) | 電子透かしシステム、電子透かし方法及びプログラム | |
WO2017203743A1 (ja) | 暗号化装置、復号装置及び暗号システム | |
Joye et al. | Traitor tracing schemes for protected software implementations | |
Imam et al. | An empirical study of secure and complex variants of RSA scheme | |
JP2019029751A (ja) | 暗号処理装置、暗号化通信システム、暗号処理方法、および暗号処理プログラム | |
JP6949276B2 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170613 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20190423 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190424 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20190423 |
|
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: 20200519 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200616 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6719339 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |