JP6783877B2 - 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム - Google Patents
完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム Download PDFInfo
- Publication number
- JP6783877B2 JP6783877B2 JP2018564900A JP2018564900A JP6783877B2 JP 6783877 B2 JP6783877 B2 JP 6783877B2 JP 2018564900 A JP2018564900 A JP 2018564900A JP 2018564900 A JP2018564900 A JP 2018564900A JP 6783877 B2 JP6783877 B2 JP 6783877B2
- Authority
- JP
- Japan
- Prior art keywords
- text
- query
- clear text
- encrypted
- value
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Description
(1-2)ステップ(1-1)で取得した前記所定進数系の前記第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、当該第1暗号化テキストを、クエリされる対象として記憶する。
(2-2)ステップ(2-1)で取得した前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶する。
(1-2)ステップ(1-1)で取得した前記所定進数系の前記第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、当該第1暗号化テキストを、クエリされる対象として記憶する。
(2-2)ステップ(2-1)で取得した前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶する。
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x0:中間変数=暗号化で利用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq、
p、q:奇数
上記の如何なるシークレットキーも開示されないものである。
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r及びτ:乱数
xi:ランダムに生成したi個の数、xi=qi×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、且つqi≪q0,0≦i≦τ、非対称暗号化アルゴリズムで利用される公開鍵がpk=(x0,x1,…,xi,…,xτ)である。
ここで、cは前記第3暗号化テキストにおける各構成要素の値である。
である。その中、rは乱数である。
(1-2)ステップ(1-1)で取得した前記所定進数系の第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、第1暗号化テキストを、クエリされる対象として記憶する。
c:第1暗号化テキストにおける各構成要素の値
m:第2クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x0:中間変数=暗号化で利用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものである。
c:第1暗号化テキストおける各構成要素の値
m:第2クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r及びτ:乱数
xi :ランダムに生成したi個の数、xi=qi×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、且つqi≪q0,0≦i≦τである。
pk=(x0,x1,…,xi,…,xτ):非対称暗号化アルゴリズムで利用される公開鍵。
c:第1暗号化テキストにおける各構成要素の値
m:第2クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値(例:2進数系の場合、s=2、16進数系の場合、s=16),
r:乱数
p:暗号化で利用するシークレットキー
x0:中間変数=暗号化で使用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq(その中、pでもqでも奇数である)
数1の暗号化された暗号化テキスト=114
Enc(a)=(114,114,113,113,113,113,114)
Enc(b)=(114,114,113,113,113,114,113)
Enc(d)=(114,114,113,113,114,113,113)
Enc(abdabd)=([114,114,113,113,113,113,114],[114,114,113,113,113,114,113],[114,114,113,113,114,113,113],[114,114,113,113,113,113,114],[114,114,113,113,113,114,113],[114,114,113,113,114,113,113])。
(2-2)ステップ(2-1)で取得した前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶する。
上記の例にとって、このステップはクエリされる対象の
Enc(abdabd)=([114,114,113,113,113,113,114],[114,114,113,113,113,114,113],[114,114,113,113,114,113,113],[114,114,113,113,113,113,114],[114,114,113,113,113,114,113],[114,114,113,113,114,113,113])からクエリする対象の
Enc(da)=([114,114,113,113,114,113,113],[114,114,113,113,113,113,114])と同じ数の構成要素、即ち
[114,114,113,113,113,113,114],[114,114,113,113,113,114,113]を取り出し、それとクエリする対象の構成要素とをそれぞれ加算してから、クエリされる対象Enc(abdabd)における対応長さの次の構成要素の組、即ち[114,113,113,113,113,114,114],[114,113,113,113,114,113,114]を取り出す。最後に、クエリされる対象から取り出される構成要素の組が[114,114,113,113,113,114,113],[114,114,113,113,114,113,113]となるまで上記の操作を繰り返す。
クエリされる対象:[114,114,113,113,113,113,114],[114,114,113,113,113,114,113]
クエリする対象:[114,114,113,113,114,113,113],[114,114,113,113,113,113,114]
暗号化テキストに関するクエリ結果:[228,228,226,226,227,226,227],[228,228,226,226,226,227,227]
クエリされる対象:[114,113,113,113,113,114,114],[114,113,113,113,114,113,114]
クエリする対象:[114,114,113,113,114,113,113],[114,114,113,113,113,113,114]
暗号化テキストに関するクエリ結果:[228,227,226,226,227,227,227],[228,227,226,226,227,226,228]
クエリされる対象:[113,113,113,113,114,114,114],[113,113,113,114,113,114,114]
クエリする対象:[114,114,113,113,114,113,113],[114,114,113,113,113,113,114]
暗号化テキストに関するクエリ結果:[227,227,226,226,228,227,227],[227,227,226,227,226,227,228]
……
クエリされる対象:[114,114,113,113,114,113,113],[114,114,113,113,113,113,114]
クエリする対象:[114,114,113,113,114,113,113],[114,114,113,113,113,113,114]
暗号化テキストに関するクエリ結果:[228,228,226,226,228,226,226],[228,228,226,226,226,226,228]
……
クエリされる対象:[114,114,113,113,113,114,113],[114,114,113,113,114,113,113]
クエリする対象:[114,114,113,113,114,113,113],[114,114,113,113,113,113,114]
暗号化テキストに関するクエリ結果:
[228,228,226,226,227,227,226],[228,228,226,226,227,226,227];
Dec([228,228,226,226,227,226,227],[228,228,226,226,226,227,227])
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=([1100101],[1100011])=([101],[99])=‘ec’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘ec’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Dec([228,227,226,226,227,227,227],[228,227,226,226,227,226,228])
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=([1100111],[1100101])=([103],[101])=(ge)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘ge’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」となる。
Dec([227,227,226,226,228,227,227],[227,227,226,227,226,227,228])
m=([1100111],[1101011])=([103],[107])=(gk)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘gk’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
……
Dec([228,228,226,226,228,226,226],[228,228,226,226,226,226,228])
m=[1100100],[1100001]=([100],[97])=(da)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘da’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「真」である。
……
Dec([228,228,226,226,227,227,226],[228,228,226,226,227,226,227])
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=([1100110],[1100101])=([102],[101])=(fe)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘fe’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Dec([228,228,226,226,227,226,227],[228,228,226,226,226,227,227], [114,114,113,113,114,113,113],[114,114,113,113,113,113,114],[114,114,113,113,113,114,113],[114,114,113,113,114,113,113])
m=([1100101],[1100011],[1100100],[1100001],[1100010],[1100100])=(ecdabd)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘ecdabd’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
文字bの暗号化された暗号化テキスト=11721
文字dの暗号化された暗号化テキスト=11723
Enc(abdabd)=(11720,11721,11723,11720,11721,11723)
Enc(da)=(11723,11720)
クエリされる対象:(11720,11721)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441)
クエリされる対象:(11721,11723)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23444,23443)
クエリされる対象:(11723,11720)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23446,23440)
クエリされる対象:(11720,11721)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441)
クエリされる対象:(11721,11723)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23444,23443)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441,11723,11720,11721,11723)
「含む」(like) クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果である第6クリアテキストと(2-1)のクエリ条件の第3クリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、等しいでない場合、「偽」である。
Dec(23443,23441)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,98)=‘cb’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cb」と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Dec(23444,23443)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,99)=‘cc’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cc」と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Dec(23446,23440)
m=(100,97)=‘da’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘da’と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「真」である。
Dec(23443,23441)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行い、下記のクリアテキストを取得する。
m=(99,98)=「cb」
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cb」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Dec(23444,23443)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,99)=‘cc’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cc」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Dec(23443,23441,11723,11720,11721,11723)
m=(99,98,100,97,98,100)=(cbdabd)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cbdabd」と(2-1)のクエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
Claims (9)
- 下記のステップ、
(1-1)任意データ型の第1クリアテキストを取得し、該第1クリアテキストから所定進数系の第2クリアテキストを取得する、
ここで、前記第1クリアテキストのデータ型が前記所定進数系でない場合には、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換する、
(1-2)ステップ(1-1)で取得した前記所定進数系の前記第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、当該第1暗号化テキストを、クエリされる対象として記憶する、
(2-1)クエリ条件としての任意データ型の第3クリアテキストを受信し、該第3クリアテキストから前記所定進数系の第4クリアテキストを取得する、
ここで、前記第3クリアテキストのデータ型が前記所定進数系でない場合には、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換する、
(2-2)ステップ(2-1)で取得した前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶する、
(3)ステップ(1-2)で取得したクエリされる対象である第1暗号化テキスト及びステップ(2-2)で取得したクエリする対象である第2暗号化テキストに対し、前記暗号化された各桁の値である構成要素ごとの加算を行い、加算結果を構成要素とする第3暗号化テキストを、クエリ結果として取得する、
(4)ステップ(3)で取得したクエリ結果である前記第3暗号化テキストの各構成要素に対して復号化して前記所定進数系の第5クリアテキストを取得し、
前記所定進数系の前記第5クリアテキストから第6クリアテキストを取得し、ここで、該第5クリアテキストのデータ型が前記第3クリアテキストのデータ型と同じでない場合には、該第5クリアテキストのデータ型を前記第3クリアテキストのデータ型に転換して前記第6クリアテキストを取得し、
該第6クリアテキストとステップ(2-1)で受信したクエリ条件としての前記第3クリアテキストとの比較を行い、二者が同じであると、クエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、二者が同じでないと、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す、
を含み、
ステップ(1-2)およびステップ(2-2)において暗号化に対称暗号化アルゴリズムを利用する場合、下式を利用し、
c=(m+s×r+p×q) mod x 0
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x 0 :中間変数=暗号化で利用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものであり、
ステップ(1-2)およびステップ(2-2)において暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r、τ:乱数
x i :ランダムに生成したi個の数、x i =q i ×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、q i ≪q 0 ,0≦i≦τ
pk=(x 0 ,x 1 ,…,x i ,…,x τ ):非対称暗号化アルゴリズムで利用される公開鍵であり、
ステップ(4)における復号化の操作式が次の通りであり、
((c mod p)mod y)/2
ここで、cは前記第3暗号化テキストにおける各構成要素の値であり、 y≧s×2-1、且つy≦p/2であることを特徴とする完全準同型暗号化の暗号化テキストのクエリメソッド。 - 下記のステップ、
(1-1)任意データ型の第1クリアテキストを取得し、該第1クリアテキストから所定進数系の第2クリアテキストを取得する、
ここで、前記第1クリアテキストのデータ型が前記所定進数系でない場合には、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換する、
(1-2)ステップ(1-1)で取得した前記所定進数系の前記第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、当該第1暗号化テキストを、クエリされる対象として記憶する、
(2-1)クエリ条件としての任意データ型の第3クリアテキストを受信し、該第3クリアテキストから前記所定進数系の第4クリアテキストを取得する、
ここで、前記第3クリアテキストのデータ型が前記所定進数系でない場合には、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換する、
(2-2)ステップ(2-1)で取得した前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶する、
(3)ステップ(1-2)で取得したクエリされる対象である第1暗号化テキストとステップ(2-2)で取得したクエリする対象である第2暗号化テキストに対し、前記暗号化された各桁の値である構成要素ごとの減算を行い、減算結果を構成要素とする第3暗号化テキストを、クエリ結果として取得する、
(4)ステップ(3)で取得したクエリ結果である前記第3暗号化テキストの各構成要素に対して復号化して前記所定進数系の第5クリアテキストを取得し、当該第5クリアテキストがゼロであるかを判断し、Yesの場合、クエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、Noの場合、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す、
を含み、
ステップ(1-2)およびステップ(2-2)において暗号化に対称暗号化アルゴリズムを利用する場合、下式を利用し、
c=(m+s×r+p×q) mod x 0
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x 0 :中間変数=暗号化で利用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものであり、
ステップ(1-2)およびステップ(2-2)において暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r、τ:乱数
x i :ランダムに生成したi個の数、x i =q i ×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、q i ≪q 0 ,0≦i≦τ
pk=(x 0 ,x 1 ,…,x i ,…,x τ ):非対称暗号化アルゴリズムで利用される公開鍵であり、
ステップ(4)における復号化の操作式が次の通りであり、
(c mod p)mod s
ここで、cは前記第3暗号化テキストにおける各構成要素の値であることを特徴とする完全準同型暗号化の暗号化テキストのクエリメソッド。 - ステップ(1-1)における、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換するステップが、文字区分の前記第1クリアテキストを文字コードに転換し、当該文字コードを前記所定進数系の前記第2クリアテキストに転換するステップを含むか、または、
ステップ(2-1)における、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換するステップが、文字区分の前記第3クリアテキストを文字コードに転換し、当該文字コードを前記所定進数系の前記第4クリアテキストに転換するステップを含むことを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。 - シークレットキーpは生成方式がLWE、格子、またはGCDに基づき、スパース・サブセット合計に近似する方法であることを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
- ステップ(3)は順にクエリされる対象である第1暗号化テキストからクエリする対象である第2暗号化テキストと同じ数量の構成要素を取り出し、クエリされる対象である第1暗号化テキストにおける構成要素数がクエリする対象である第2暗号化テキストの構成要素数以下となるまで、前記第1暗号化テキストから取り出された構成要素と前記第2暗号化テキストの構成要素とをそれぞれ加算し、加算結果を構成要素とする複数の第3暗号化テキストを、クエリ結果として取得することであることを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
- ステップ(4)における、前記第5クリアテキストのデータ型を前記第3クリアテキストのデータ型に転換して前記第6クリアテキストとするステップが、前記所定進数系の前記第5クリアテキストを対応する文字コードに転換し、当該文字コードを文字区分の前記第6クリアテキストに転換するステップを含むことを特徴とする請求項1に記載の暗号化テキストのクエリメソッド。
- 文字コードはコードASCIIまたはコードUnicodeであることを特徴とする請求項3または6に記載の暗号化テキストのクエリメソッド。
- 下記のモジュール、
第一モジュール:任意データ型の第1クリアテキストを取得し、該第1クリアテキストから所定進数系の第2クリアテキストを取得し、
ここで、前記第1クリアテキストのデータ型が前記所定進数系でない場合には、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換し、
前記所定進数系の前記第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、当該第1暗号化テキストを、クエリされる対象として記憶することに用いられる、
第二モジュール:クエリ条件としての任意データ型の第3クリアテキストを受信し、該第3クリアテキストから前記所定進数系の第4クリアテキストを取得し、
ここで、前記第3クリアテキストのデータ型が前記所定進数系でない場合には、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換し、
前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶することに用いられる、
第三モジュール:第一モジュールが取得したクエリされる対象である第1暗号化テキスト及び第二モジュールが取得したクエリする対象である第2暗号化テキストに対し、前記暗号化された各桁の値である構成要素ごとの加算を行い、加算結果を構成要素とする第3暗号化テキストを、クエリ結果として取得するようにすることに用いられる、
第四モジュール:第三モジュールが取得したクエリ結果である前記第3暗号化テキストの各構成要素に対して復号化して前記所定進数系の第5クリアテキストを取得し、
前記所定進数系の前記第5クリアテキストから第6クリアテキストを取得し、ここで、該第5クリアテキストのデータ型が前記第3クリアテキストのデータ型と同じでない場合には、該第5クリアテキストのデータ型を前記第3クリアテキストのデータ型に転換して前記第6クリアテキストを取得し、該第6クリアテキストと第二モジュールにおけるクエリ条件としての前記第3クリアテキストとの比較を行い、二者が同じであると、クエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、二者が同じでないと、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示すことに用いられる、
を含み、
前記第一モジュールおよび前記第二モジュールにおいて暗号化に対称暗号化アルゴリズムを利用する場合、下式を利用し、
c=(m+s×r+p×q) mod x 0
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x 0 :中間変数=暗号化で利用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものであり、
前記第一モジュールおよび前記第二モジュールにおいて暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値、
r、τ:乱数
x i :ランダムに生成したi個の数、x i =q i ×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、q i ≪q 0 ,0≦i≦τ
pk=(x 0 ,x 1 ,…,x i ,…,x τ ):非対称暗号化アルゴリズムで利用される公開鍵であり、
前記第四モジュールにおける復号化の操作式が次の通りであり、
((c mod p)mod y)/2
ここで、cは前記第3暗号化テキストにおける各構成要素の値であり、 y≧s×2-1、且つy≦p/2であることを特徴とする完全準同型暗号化の暗号化テキストクエリ・システム。 - 下記のモジュール、
第一モジュール:任意データ型の第1クリアテキストを取得し、該第1クリアテキストから所定進数系の第2クリアテキストを取得し、
ここで、前記第1クリアテキストのデータ型が前記所定進数系でない場合には、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換し、
前記所定進数系の前記第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、当該第1暗号化テキストを、クエリされる対象として記憶することに用いられる、
第二モジュール:クエリ条件としての任意データ型の第3クリアテキストを受信し、該第3クリアテキストから前記所定進数系の第4クリアテキストを取得し、
ここで、前記第3クリアテキストのデータ型が前記所定進数系でない場合には、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換し、
前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶することに用いられる、
第三モジュール:第一モジュールが取得したクエリされる対象である第1暗号化テキストと第二モジュールが取得したクエリする対象である第2暗号化テキストに対し、前記暗号化された各桁の値である構成要素ごとの減算を行い、減算結果を構成要素とする第3暗号化テキストを、クエリ結果として取得することに用いられる、
第四モジュール:第三モジュールが取得したクエリ結果である前記第3暗号化テキストの各構成要素に対して復号化して前記所定進数系の第5クリアテキストを取得し、当該第5クリアテキストがゼロであるかを判断し、Yesの場合、クエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、Noの場合、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示すことに用いられる、
を含み、
前記第一モジュールおよび前記第二モジュールにおいて暗号化に対称暗号化アルゴリズムを利用する場合、下式を利用し、
c=(m+s×r+p×q) mod x 0
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x 0 :中間変数=暗号化で利用するシークレットキーp×暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものであり、
前記第一モジュールおよび前記第二モジュールにおいて暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
ここで、
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r、τ:乱数
x i :ランダムに生成したi個の数、x i =q i ×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、q i ≪q 0 ,0≦i≦τ
pk=(x 0 ,x 1 ,…,x i ,…,x τ ):非対称暗号化アルゴリズムで利用される公開鍵であり、
前記第四モジュールにおける復号化の操作式が次の通りであり、
(c mod p)mod s
ここで、cは前記第3暗号化テキストにおける各構成要素の値であることを特徴とする完全準同型暗号化の暗号化テキストクエリ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320825.5A CN106953722B (zh) | 2017-05-09 | 2017-05-09 | 一种全同态加密的密文查询方法和系统 |
CN201710320825.5 | 2017-05-09 | ||
PCT/CN2017/112472 WO2018205549A1 (zh) | 2017-05-09 | 2017-11-23 | 一种全同态加密的密文查询方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019523909A JP2019523909A (ja) | 2019-08-29 |
JP6783877B2 true JP6783877B2 (ja) | 2020-11-11 |
Family
ID=59478407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018564900A Active JP6783877B2 (ja) | 2017-05-09 | 2017-11-23 | 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10652010B2 (ja) |
EP (1) | EP3454499A4 (ja) |
JP (1) | JP6783877B2 (ja) |
CN (1) | CN106953722B (ja) |
WO (1) | WO2018205549A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953722B (zh) * | 2017-05-09 | 2017-11-07 | 深圳市全同态科技有限公司 | 一种全同态加密的密文查询方法和系统 |
CN109063496A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种数据处理的方法及装置 |
CN109379177A (zh) * | 2018-12-26 | 2019-02-22 | 济南浪潮高新科技投资发展有限公司 | 一种同态密文计算加速逻辑系统及实现方法 |
CN109784931B (zh) * | 2019-02-27 | 2024-04-05 | 成都埃克森尔科技有限公司 | 一种基于区块链的数据查询平台的查询方法 |
CN109933603B (zh) * | 2019-03-15 | 2022-09-30 | 中国科学技术大学 | 保护数据隐私和查询隐私的结果可验证的数据查询方法 |
KR20210081471A (ko) * | 2019-12-23 | 2021-07-02 | 삼성전자주식회사 | 프로그램 코드를 저장하는 비일시적 컴퓨터 판독가능 매체, 복호화 장치, 및 암호화 장치와 복호화 장치를 포함하는 통신 시스템 |
CN111291844B (zh) * | 2020-01-16 | 2023-03-14 | 清华大学深圳国际研究生院 | 一种体全息式四维码防伪的实现方法 |
US11321382B2 (en) | 2020-02-11 | 2022-05-03 | International Business Machines Corporation | Secure matching and identification of patterns |
CN112332979B (zh) * | 2020-11-11 | 2023-06-27 | 深圳技术大学 | 云计算环境中的密文搜索方法及系统、设备 |
CN112613077B (zh) * | 2021-01-22 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 保护隐私的多方数据处理的方法、装置和系统 |
CN113111357B (zh) * | 2021-03-09 | 2022-02-22 | 深圳市教育信息技术中心(深圳市教育装备中心) | 字段加密方法、装置、设备和介质 |
CN112966022B (zh) * | 2021-03-10 | 2024-04-05 | 安徽航天信息科技有限公司 | 一种数据交易平台的信息查询方法、装置及系统 |
CN113158247B (zh) * | 2021-04-27 | 2023-03-14 | 同盾控股有限公司 | 用户查询方法和装置、存储介质、电子设备 |
CN117500519A (zh) | 2021-05-31 | 2024-02-02 | 国立大学法人三重大学 | 医药组合物 |
CN113312654B (zh) * | 2021-06-29 | 2023-05-12 | 重庆交通大学 | 一种基于csp问题的同态密文编码与计算方法 |
CN113806766A (zh) * | 2021-08-12 | 2021-12-17 | 招银云创信息技术有限公司 | 数据加密方法、装置、计算机设备和存储介质 |
CN114500006B (zh) * | 2022-01-05 | 2023-08-04 | 支付宝(杭州)信息技术有限公司 | 查询请求的处理方法及装置 |
CN114793156B (zh) * | 2022-06-27 | 2022-08-26 | 北京瑞莱智慧科技有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN115580396B (zh) * | 2022-10-08 | 2024-03-22 | 上海勃池信息技术有限公司 | 匿踪查询系统及匿踪查询方法 |
CN115525817B (zh) * | 2022-11-16 | 2023-05-02 | 阿里云计算有限公司 | 聚合查询方法、系统、电子设备及计算机存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080212780A1 (en) * | 2005-06-03 | 2008-09-04 | Koninklijke Philips Electronics, N.V. | Homomorphic Encryption For Secure Watermarking |
US20100329448A1 (en) * | 2009-06-30 | 2010-12-30 | Rane Shantanu D | Method for Secure Evaluation of a Function Applied to Encrypted Signals |
NO331571B1 (no) * | 2009-10-30 | 2012-01-30 | Uni I Stavanger | System for a beskytte en kryptert informasjonsenhet |
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 |
WO2014109828A2 (en) * | 2012-11-16 | 2014-07-17 | Raytheon Bbn Technologies Corp. | Method for secure substring search |
CN103269267B (zh) * | 2013-04-19 | 2016-01-13 | 深圳市全同态科技有限公司 | 一种全同态加密装置 |
US9213764B2 (en) * | 2013-11-22 | 2015-12-15 | Sap Se | Encrypted in-memory column-store |
JP6173904B2 (ja) * | 2013-12-13 | 2017-08-02 | 株式会社東芝 | 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム |
US20170242961A1 (en) * | 2014-01-24 | 2017-08-24 | Indiscine, Llc | Systems and methods for personal omic transactions |
US9461974B2 (en) * | 2014-02-28 | 2016-10-04 | Raytheon Bbn Technologies Corp. | System and method to merge encrypted signals in distributed communication system |
CN105323209A (zh) * | 2014-06-05 | 2016-02-10 | 江苏博智软件科技有限公司 | 全同态加密和多重数字水印技术的云数据安全保护方法 |
AU2015336949B2 (en) * | 2014-10-24 | 2020-04-09 | Commonwealth Scientific And Industrial Research Organisation | Gradients over distributed datasets |
US9742556B2 (en) * | 2015-08-25 | 2017-08-22 | International Business Machines Corporation | Comparison and search operations of encrypted data |
WO2017061024A1 (ja) * | 2015-10-09 | 2017-04-13 | 三菱電機株式会社 | 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム |
CN105787387B (zh) * | 2016-03-07 | 2018-09-14 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN106529327B9 (zh) * | 2016-10-08 | 2023-02-03 | 西安电子科技大学 | 混合云环境下面向加密数据库的数据存取系统及方法 |
CN106534313B (zh) * | 2016-11-17 | 2019-09-13 | 浙江工商大学 | 面向云端数据发布保护安全及隐私的频度测定方法和系统 |
CN106452723B (zh) * | 2016-12-13 | 2017-05-31 | 深圳市全同态科技有限公司 | 一种基于模运算的全同态加密处理方法 |
CN106953722B (zh) * | 2017-05-09 | 2017-11-07 | 深圳市全同态科技有限公司 | 一种全同态加密的密文查询方法和系统 |
-
2017
- 2017-05-09 CN CN201710320825.5A patent/CN106953722B/zh active Active
- 2017-11-23 WO PCT/CN2017/112472 patent/WO2018205549A1/zh unknown
- 2017-11-23 JP JP2018564900A patent/JP6783877B2/ja active Active
- 2017-11-23 EP EP17909307.5A patent/EP3454499A4/en not_active Withdrawn
-
2018
- 2018-09-03 US US16/120,443 patent/US10652010B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3454499A1 (en) | 2019-03-13 |
WO2018205549A1 (zh) | 2018-11-15 |
CN106953722B (zh) | 2017-11-07 |
CN106953722A (zh) | 2017-07-14 |
US20180367294A1 (en) | 2018-12-20 |
JP2019523909A (ja) | 2019-08-29 |
US10652010B2 (en) | 2020-05-12 |
EP3454499A4 (en) | 2019-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6783877B2 (ja) | 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
EP1834438B1 (en) | Cryptography related to keys | |
US20160335450A1 (en) | Searchable encryption processing system and searchable encryption processing method | |
KR101829267B1 (ko) | 암호문의 크기가 감소되는 동형 암호화 방법 | |
WO2014109828A2 (en) | Method for secure substring search | |
JP2011164607A (ja) | シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム | |
US9893880B2 (en) | Method for secure symbol comparison | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
RU2124814C1 (ru) | Способ шифрования блоков цифровых данных | |
Gafsi et al. | High securing cryptography system for digital image transmission | |
CN115801224A (zh) | 一种云计算环境中支持浮点数运算的全同态加密方法 | |
Sakib | Analysis of Fundamental Algebraic Concepts and Information Security System | |
Razaq et al. | Secure communication through reliable S-box design: A proposed approach using coset graphs and matrix operations | |
CN101783728B (zh) | 隐藏域上遍历矩阵的公钥加密方法 | |
Fu et al. | A new medical image encryption algorithm using multiple 1-D chaotic maps | |
Razzaque et al. | An efficient S-box design scheme for image encryption based on the combination of a coset graph and a matrix transformer | |
Kumar et al. | Image encryption using simplified data encryption standard (S-DES) | |
US7280663B1 (en) | Encryption system based on crossed inverse quasigroups | |
JP2010186075A (ja) | 整数の暗号化及び復号化方法 | |
Yin et al. | Fast S-box security mechanism research based on the polymorphic cipher | |
Wu et al. | Enhancing the anti-cryptanalysis ability and avalanche effect with Zeckendorf representation via FPGA implementation | |
Razaq et al. | Enhancing the Robustness of Block Ciphers through a Graphical S-Box Evolution Scheme for Secure Multimedia Applications | |
KR20090066497A (ko) | 데이터 암호화 장치와 이를 이용한 암호화 방법 | |
Al-Muhammed et al. | Randomly Distorted Double Substitution Encryption Technique with Effective Block Diffusion and Chaos-Induced Noise |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181211 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200108 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200608 |
|
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: 20201002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201022 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6783877 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |