JP6783877B2 - 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム - Google Patents

完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム Download PDF

Info

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
Application number
JP2018564900A
Other languages
English (en)
Other versions
JP2019523909A (ja
Inventor
胡和平
胡薇
Original Assignee
深▲せん▼市全同態科技有限公司
胡和平
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 深▲せん▼市全同態科技有限公司, 胡和平 filed Critical 深▲せん▼市全同態科技有限公司
Publication of JP2019523909A publication Critical patent/JP2019523909A/ja
Application granted granted Critical
Publication of JP6783877B2 publication Critical patent/JP6783877B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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-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-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-1)における、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換するステップが、文字区分の前記第1クリアテキストを文字コードに転換し、当該文字コードを前記所定進数系の前記第2クリアテキストに転換するステップを含むか、または、ステップ(2-1)における、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換するステップが、文字区分の前記第3クリアテキストを文字コードに転換し、当該文字コードを前記所定進数系の前記第4クリアテキストに転換するステップを含む
望ましくは、暗号化計算について対称暗号化のアルゴリズムを利用する場合、具体的に下式を利用する。
c=(m+s×r+p×q) mod x0
ここで
c:第1暗号化テキストおよび第2暗号化テキストにおける各構成要素の値
m:第2クリアテキストおよび第4クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数
r:乱数
p:暗号化で利用するシークレットキー
x0:中間変数=暗号化で利用するシークレットキー暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものである。
望ましくは、暗号化計算で非対称暗号化のアルゴリズムを利用する場合に具体的に下式を利用する。
Figure 0006783877
ここで、
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τ)である。
望ましくは、シークレットキーpは生成方式がLWE、格子、またはGCDに基づき、スパース・サブセット合計に近似する方法である。
望ましくは、ステップ(3)は順にクエリされる対象である第1暗号化テキストからクエリする対象である第2暗号化テキストと同じ数量の構成要素を取り出し、クエリされる対象である第1暗号化テキストにおける構成要素数がクエリする対象である第2暗号化テキスト構成要素数以下となるまで、前記第1暗号化テキストから取り出された構成要素と前記第2暗号化テキストの構成要素とをそれぞれ加算し、加算結果を構成要素とする複数の第3暗号化テキストを、クエリ結果として取得する。
望ましくは、ステップ(4)における、前記第5クリアテキストのデータ型を前記第3クリアテキストのデータ型に転換して前記第6クリアテキストとするステップが、前記所定進数系の前記第5クリアテキストを対応する文字コードに転換し、当該文字コードを文字区分の前記第6クリアテキストに転換するステップを含む
ステップ(3)で加算を行う場合、ステップ(4)における復号化の操作式が次の通りである。
((c mod p)mod y)/2
ここで、cは前記第3暗号化テキストにおける各構成要素の値であり、y≧s×2-1,且つy≦p/2である。
ステップ(3)で減算を行う場合、ステップ(4)における復号化の操作式が次の通りである。
(c mod p)mod s
ここで、cは前記第3暗号化テキストにおける各構成要素の値である。
望ましくは、文字コードはコードASCIIまたはコードUnicodeである。
本発明では下記のモジュールを含む完全準同型暗号化の暗号化テキストクエリ・システムを提供する。
第一モジュール:任意データ型の第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クリアテキストとの比較を行い、二者が同じであると、クエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、二者が同じでないと、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示すことに用いられる。
本発明では下記のモジュールを含むことを特徴とする完全準同型暗号化の暗号化テキストクエリ・システムを提供する。
第一モジュール:任意データ型の第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の場合、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示すことに用いられる。
(1)本発明は従来の対称暗号アルゴリズムに基づく暗号化テキストのクエリメソッドにある秘密情報の漏洩という技術上の課題を解決できる。本発明によるクエリメソッドで同じシークレットキーを利用し、同じ内容暗号化による暗号化テキストの内容が違うので、情報漏洩という課題がない。
(2)本発明は従来の非対称暗号アルゴリズムに基づく暗号化テキストのクエリメソッドにおける、クエリの過程にデータ漏洩のおそれがあるという技術上の課題を解決できる。本発明によるクエリメソッドで所定進数系のクリアテキストの各桁の値を暗号化し、暗号化された各桁の値を構成要素とする暗号化テキストを構成し、暗号化された各桁の値である構成要素ごとに加算を行うだけでクエリ結果を取得でき、暗号化テキストがクエリの過程に始終に計算に参加するものであるので、データ漏洩という課題がない。
(3)本発明は暗号化テキストクエリの過程に所定進数系のクリアテキストの各桁の値を暗号化し、暗号化された各桁の値を構成要素とする暗号化テキストを構成し、暗号化された各桁の値である構成要素ごとに加算を行うだけでクエリの結果を取得できるので、クエリ効率が高い。
(4)本発明はクエリの結果の正確性に対する判断が復号化過程だけで達成できるので、操作が簡単である。
(5)本発明は暗号化テキストクエリの過程が完全に暗号化テキストの状態で行われるのでクエリの過程にいかなるデータ漏洩もなく、クエリ及び復号化の権限を持つユーザが暗号化テキストに関するクエリ結果に対する復号化操作を行うだけでクエリ結果のデータを調べることができるので、本発明の応用シーンが更に拡張し、そしてより一歩に暗号化テキストクエリ過程におけるデータの安全性を向上させるものである。
本発明による完全準同型暗号化の暗号化テキストのクエリメソッドのプロセスチャート。
本発明の目的、ソリューション及び長所を更にはっきりして理解できるように、次に図及び実施例を利用して本発明について更に詳細に説明する。いうまでもなく、ここで、具体的な実施例は本発明の説明のためのものだけであり、本発明を限定するものではない。また、下記の本発明各実施方式に関する技術上の特徴は衝突を構成しない限り相互に組み合わせることができる。
次に、先ず本発明で利用される用語について説明する。
進数系:進数系によるビットの数量のことである。例:2進数系は1ビット、8進数系は3ビット、16進数系は4ビット、32進数系は5ビット、64進数系は6ビット、128進数系は7ビットである。
進数系の値:現在の進数系状態にある値。例:2進数系の値は表現可能な領域が{0,1}、8進数系の値は表現可能な領域が{0,1,2,3,4,5,6,7}である。
本発明では完全準同型暗号化の暗号化テキストのクエリメソッドを利用する。先ず、完全準同型暗号化のアルゴリズムでクリアテキストデータをクエリされる対象として暗号化、記憶する。ユーザが暗号化テキストに記憶された内容をクエリする場合、クリアテキストのクエリ条件を入力するだけでシステムが完全準同型暗号化アルゴリズムでそのクリアテキスト条件を暗号化テキストに暗号化し、クエリする対象にし、クエリされる対象及びクエリする対象から、クエリ結果を取得する。そのクエリ結果はまだ暗号化テキストであり、クエリ及び復号化のクエリ結果に関する権限を持つユーザしか暗号化テキストに関するクエリ結果を調べることができない。システムは暗号化テキストクエリの「含む」(like)、「等しい」(=)及び「等しくない」 (<>)の操作機能に達成するものである。
本発明による完全準同型暗号化の暗号化テキストのクエリメソッドはデータ表示、シークレットキー生成、暗号化アルゴリズム、復号化アルゴリズム及び暗号化テキストクエリ(Ciphertext Query、「CQ」と略す)を含む。
データ表示:クリアテキストmの区分(Type)をT、Tの集合を{整数、実数、文字、年月日、ブール}などに表記する。既知クリアテキストms、その中、sはデータ進数系(System)、即ち2進数系、10進数系、16進数系、521進数系などであり、(T,ms)と表記される。例:s=2は2進数系を示す。普通、2進数系はBで表記され、クリアテキストmは2進数系mBを示し、(T,mB)で表記され、s=16は16進数系を示し、16進数系がHで表記され、クリアテキストmは16進数系mH を示し、(T,mH)で表記され、s=512は512進数系、クリアテキストmは512進数系m512を示し、(T,m512)で表記される。
シークレットキー生成(KeyGen):大奇数pを選択し、x0=q0×p+s×rにより計算し、x0が奇数ではなければ再計算をしなければいけない。
ランダムにτ個の数を生成する:xi=qi×p+s×rにより計算する。その中、0≦i≦τ、qi≪q0、rが乱数である。
非対称アルゴリズム用公開鍵はpk=(x0,x1,…,xi,…,xτ)、シークレットキーはp、対称アルゴリズム用シークレットキーは(x0,p)である。はっきりして暗号化、復号化及び暗号化を表現するために、テキストクエリの過程に関する説明に業務用シークレットキーWkey(pk,p)を導入する。
暗号化アルゴリズム(Enc):KeyGenから生成した業務用シークレットキーWkeyで任意の数mの暗号化を行う。mを2進数系に転換し、BでmBを表記し、B=(b1,b2,…,bi,…,bn),bi∈{0,1},1≦i≦n,c=Enc(Wkey,B)。cは暗号化アルゴリズムfによるc=(c1,c2,…,ci,…,cn),
Figure 0006783877
である。その中、rは乱数である。
復号化アルゴリズム(Dec):KeyGenから生成した業務用シークレットキーWkeyであり、入力された暗号化テキストデータcに対するものであり、b’=Dec(Wkey,ci)となる。b’は復号化アルゴリズムf’によるb’=(b1’,b2’,…,bi’,…,bn’)である。その中、b’= f’(Wkey,ci)=((ci mod p)mod s × 2)/2,1≦i≦nであり、s進数系b’をクリアテキストmに転換する。
暗号化テキストクエリ(CQ):KeyGenから生成した業務用シークレットキーWkeyであり、入力された暗号化テキストデータc1、c2に対するものである。その中、c1はクエリされる対象、c2はクエリする対象であり、c’=CQ(Wkey,c1 O c2)となり、c’は暗号化テキストクエリ機能関数f”によって取得したクエリ結果c’=(c1’,c2’,…,ci’,…,cn’)である。
ci’= f”(Wkey,c1i’O c2i’ )
その中、1≦i≦n , O∈{like,=,<>}
暗号化テキストクエリ機能関数f”は暗号化テキストのクエリの達成に用いられ、暗号化テキストのクエリ過程としてクエリされる対象とクエリする対象からクエリ結果が取得され、クエリ及び暗号化テキストに関するクエリ結果に関するデータに対する復号化に関する権限を持つユーザが暗号化テキストに関するクエリ結果に対する復号化を行い、クエリ条件が入力されたクリアテキストとの比較を行い、等しいである場合、「真」というクエリ結果を示し、暗号化テキストに関するクエリ結果に関するデータを調べることができるようになり、反対に、「偽」というクエリ結果を示し、暗号化テキストに関するクエリ結果に関するデータを調べることができない。
図1によると、本発明による完全準同型暗号化の暗号化テキストのクエリメソッドは下記のステップを含む。
(1-1)任意データ型の第1クリアテキストを取得し、第1クリアテキストから所定進数系の第2クリアテキストを取得する。ここで、第1クリアテキストのデータ型が前記所定進数系でない場合には、第1クリアテキストを前記所定進数系の第2クリアテキストに転換する。
(1-2)ステップ(1-1)で取得した前記所定進数系の第2クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、第1暗号化テキストを、クエリされる対象として記憶する
暗号化計算について対称暗号化のアルゴリズムを利用する場合、具体的に下式を利用する。
c=(m+s×r+p×q) mod x0
その中、
c:第1暗号化テキストにおける各構成要素の値
m:第2クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r:乱数
p:暗号化で利用するシークレットキー
x0:中間変数=暗号化で利用するシークレットキー暗号化で利用するもう一つのシークレットキーq
p、q:奇数
上記の如何なるシークレットキーも開示されないものである。
暗号化計算で非対称暗号化のアルゴリズムを利用する場合に具体的に下式を利用する。
Figure 0006783877
その中、
c:第1暗号化テキストおける各構成要素の値
m:第2クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値
r及びτ:乱数
xi :ランダムに生成したi個の数、xi=qi×p+s×r
p:非対称アルゴリズムで利用されるシークレットキー、大奇数であり、且つqi≪q0,0≦i≦τである。
pk=(x0,x1,…,xi,…,xτ):非対称暗号化アルゴリズムで利用される公開鍵。
シークレットキーpは生成方式がエラー付けの学習(Leaning with Error、「LWE」と略す)、格子(Lattice)、または近似最大公約数(Greatest Common Divisor「GCD」と略す)及びスパース・サブセット合計(Sparse Subset Sum Problem、「SSSP」と略す)に基づく方法である。
このステップに具体的に下記のサブステップを含む。
(1-1)任意データ型の第1クリアテキストを取得し、それを所定進数系の第2クリアテキストに転換する。
具体的に、所定進数系の第2クリアテキストに転換する過程として、当該文字区分の第1クリアテキストを文字コード(当該文字コードはASCIIコードでもUnicodeコードでもいい)、当該文字コードを所定進数系の第2クリアテキストに転換する。
例えば、文字区分の第1クリアテキストm=「abdabd」につて、当該文字区分の第1クリアテキストを情報交換用米国標準コード(American Standard Code for Information Interchange、「ASCIIコード」と略す)(即ち、a=97,b=98,d=100)に転換してから当該ASCIIコードを2進数系の第2クリアテキスト(即ち、a=97=(1100001),b=98=(1100010),d=100=(1100100))に転換する。
(1-2)ステップ(1-1)で取得した所定進数系の第2クリアテキストの中の各の値に対する暗号化を行い、暗号化の結果を組合せて第1暗号化テキストを構成し、当該第1暗号化テキストをクエリされる対象として記憶する
具体的に、このステップで下式で暗号化計算を行う。
c=(m+s×r+p×q)mod x0
その中、
c:第1暗号化テキストにおける各構成要素の値
m:第2クリアテキストにおける各桁の値
s:暗号化で利用する所定進数系の進数値(例:2進数系の場合、s=2、16進数系の場合、s=16),
r:乱数
p:暗号化で利用するシークレットキー
x0:中間変数=暗号化で使用するシークレットキー暗号化で利用するもう一つのシークレットキーq(その中、pでもqでも奇数である)
上記の如何なるシークレットキーも開示されないものである。
次に2進数系s=2を例として説明する。
例えば、業務用シークレットキーp=111,q=11,x0=p×q=1221である場合、r=1にすると、上記のステップ(1-1)で例とする第1クリアテキストaの2進数系の第2クリアテキスト1100001、第1クリアテキストbの2進数系の第2クリアテキスト1100010、及び第1クリアテキストdの2進数系の第2クリアテキスト1100100における各桁の値0及び1にとって、このステップの上式で計算してから下記の結果を取得できる。
数0の暗号化された暗号化テキスト=113
数1の暗号化された暗号化テキスト=114
よって、第1クリアテキストaの2進数系の第2クリアテキスト1100001が上式で計算されてから、クエリされる対象として記憶を行う第1暗号化テキストは下記の通りとなる。
Enc(a)=(114,114,113,113,113,113,114)
第1クリアテキストbの2進数系の第2クリアテキスト1100010は上式で計算されてからクエリされる対象として記憶を行う第1暗号化テキストは下記の通りとなる。
Enc(b)=(114,114,113,113,113,114,113)
第1クリアテキストdの2進数系の第2クリアテキスト1100100が上式で計算されてからクエリされる対象として記憶を行う第1暗号化テキストは下記の通りとなる。
Enc(d)=(114,114,113,113,114,113,113)
はっきりする表現を図るために、第1クリアテキストの1文字に対応する第1暗号化テキストの構成要素を[]で表現する。例えば、上記の例におけるクリアテキストm=‘abdabd’について、このステップの以降にそれによるクエリされる対象の第1暗号化テキストの構成要素が42件ある。
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-1)クエリ条件としての任意データ型の第3クリアテキストを受信し、第3クリアテキストから前記所定進数系の第4クリアテキストを取得し、ここで、前記第3クリアテキストのデータ型が前記所定進数系でない場合には、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換する。
(2-2)ステップ(2-1)で取得した前記所定進数系の前記第4クリアテキストの各桁の値に対し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより暗号化を行い、暗号化された各桁の値を構成要素とする第2暗号化テキストを構成し、当該第2暗号化テキストを、クエリする対象として記憶する
このステップの非対称暗号化または対称暗号化過程は上記のステップ(1-2)におけるものと完全に同じであるので、ここでは省略する。
このステップに具体的に下記のサブステップを含む。
(2-1)クエリ条件としての任意データ型の第3クリアテキストを取得し、該第3クリアテキストから前記所定進数系の第4クリアテキストを取得し、ここで、前記第3クリアテキストのデータ型が前記所定進数系でない場合には、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換する
このステップは上記のステップ(1-1)の達成方式と完全に同じである。
例えば、文字区分の第3クリアテキストm’=‘da’について文字区分の第3クリアテキストをASCIIコード(即ちd=100,a=97)に転換してから、当該ASCIIコードを2進数系の第4クリアテキスト(即ち、d=100=(1100100),a=97=(1100001))に転換する。
(2-2)ステップ(2-1)で取得した進数系の第4クリアテキストにおける各の値に対する暗号化を行い、暗号化の結果を組合せて第2暗号化テキストを構成し、当該第2暗号化テキストクエリする対象として記憶する
このステップは上記のステップ(1-2)の達成方式と完全に同じである。
上記の示例におけるクリアテキストm’=‘da’について、このステップの以降にそれによるクエリする対象は次の通りである。Enc(da)=([114,114,113,113,114,113,113],[114,114,113,113,113,113,114])
(3)ステップ(1-2)で取得したクエリされる対象である第1暗号化テキスト及びステップ(2-2)で取得したクエリする対象である第2暗号化テキスト対し、暗号化された各桁の値である構成要素ごとの加算を行い、加算結果を構成要素とする第3暗号化テキストを、クエリ結果として取得する。
具体的に、このステップは次の通りである。
順にクエリされる対象である第1暗号化テキストからクエリする対象である第2暗号化テキストと同じ数量の構成要素を取り出し、クエリされる対象である第1暗号化テキストにおける構成要素数がクエリする対象である第2暗号化テキスト構成要素数以下となるまで、前記第1暗号化テキストから取り出された構成要素と前記第2暗号化テキストの構成要素とをそれぞれ加算し、加算結果を構成要素とする複数の第3暗号化テキストを、クエリ結果として取得する。
その中、暗号化テキストに関するクエリ結果サイクル回数=第1暗号化テキストの構成要素数-第2暗号化テキストの構成要素数+1
上記の例にとって、このステップはクエリされる対象の
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]となるまで上記の操作を繰り返す。
例えば、クエリに(like)機能を含むとはクエリ条件の暗号化テキストであるクエリする対象Enc(da)が暗号化テキストとして記憶されたクエリされる対象Enc(abdabd)に含まれるかということである。クエリ条件の2文字の転換による第2暗号化テキストの構成要素が14件あるので、毎度にクエリされる対象である第1暗号化テキストから第2暗号化テキストの構成要素数と同じ14件を取ってクエリする対象の暗号化テキストの14個の構成要素との構成要素ごとの加算を行って暗号化テキストに関するクエリ結果として第3暗号化テキストを取得でき、「暗号化テキストに関するクエリ結果数=クエリされる対象の第1暗号化テキストの構成要素数-クエリする対象の第2暗号化テキストの構成要素数+1=42-14+1=29」である。即ち、この例の暗号化テキストに関するクエリ結果である第3暗号化テキストが計29組ある。次に暗号化テキストに関するクエリ結果の若干組によりその正確性について説明する。
第1組の暗号化テキストに関するクエリ結果:
クエリされる対象:[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]
第2組の暗号化テキストに関するクエリ結果:
クエリされる対象:[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]
第3組の暗号化テキストに関するクエリ結果:
クエリされる対象:[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]
……
第15組の暗号化テキストに関するクエリ結果:
クエリされる対象:[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]
……
第29組の暗号化テキストに関するクエリ結果:
クエリされる対象:[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];
注意:交換可能な実施方式として、このステップにおける構成要素ごとの加算は構成要素ごとの減算に交換されてもよく、取得した差の値を暗号化テキスに関するクエリ結果である第3暗号化テキストにすること。
(4)ステップ(3)で取得したクエリ結果である前記第3暗号化テキストの各構成要素に対して復号化して前記所定進数系の第5クリアテキストを取得し、前記所定進数系の第5クリアテキストから第6クリアテキストを取得し、第6クリアテキストとステップ(2-1)で受信したクエリ条件しての第3クリアテキストとの比較を行い、二者が同じであると、クエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、二者が同じでないと、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
具体的に、このステップとして、下式によりステップ(3)で取得した複数の第3暗号化テキストの各構成要素に対する復号化を行って、所定進数系の第5クリアテキストを取得する。該所定進数系の第5クリアテキストに転換してから対応する文字コード(この例でASCIIコードである)に転換し、それぞれそれによる文字コードをクエリ条件としての第3クリアテキストとの比較を行い、比較の結果が同じである場合、対応するクエリ結果が真であることを示し(即ちクエリする対象がクエリされる対象にある)、同じでない場合、対応するクエリ結果が偽であることを示す(即ちクエリする対象がクエリされる対象にない)。
((c mod p)mod y)/2
その中、y≧s×2-1,且つy≦p/2
この例で、y=s×2=4となり、cは第3暗号化テキストにおける各構成要素の値ある
注意:上記のステップ(3)で減算を行う場合、このステップ(4)が下記の通りに交換されること。
(4’)ステップ(3)で取得したクエリ結果である前記第3暗号化テキストの各構成要素に対して復号化して前記所定進数系の第5クリアテキストを取得し、当該第5クリアテキストがゼロであるかを判断し、Yesの場合、クエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、Noの場合、クエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。この場合、第3暗号化テキストに対する復号化の操作式が次の通りである。
(c mod p)mod s
言うまでもなく、本発明は上式に限られるものではなく、当該式のどの簡単な変形でも簡単な変換でも本発明の領域にある。
上記の示例で、第1組の暗号化テキストに関するクエリ結果である第3暗号化テキストに対して、cが[228,228,226,226,227,226,227],[228,228,226,226,226,227,227]における構成要素の値である。
その中、c=228にとって(下記に2進数系のクリアテキストを例にする)、復号化の結果=((228 mod 111) mod 4)/2=1となる。
その中、c=226にとって、復号化の結果=((226 mod 111) mod 4)/2=0となる。
その中、c=227にとって、復号化の結果=((227 mod 111) mod 4)/2=1となる(その結果が0.5であるが、丸め1となる)。
第1組の暗号化テキストに関するクエリ結果である第3暗号化テキストに対して、復号の結果は、2進数系の第5クリアテキストである(1100101,1100011)となる。
次に、それについて10進数系の転換を行うと、「101,99」となり、続いてそれについてASCII転換を行うと、対応するASCIIコードが第6クリアテキストであるecとなる。
第1組の暗号化テキストに関するクエリ結果:
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’との比較を行い、クエリ結果が「偽」である。
第2組の暗号化テキストに関するクエリ結果
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’との比較を行い、クエリ結果が「偽」となる。
第3組の暗号化テキストに関するクエリ結果:
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’との比較を行い、クエリ結果が「偽」である。
……
第15組の暗号化テキストに関するクエリ結果:
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’との比較を行い、クエリ結果が「真」である。
……
第29組の暗号化テキストに関するクエリ結果
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’との比較を行い、クエリ結果が「偽」である。
上記の例によると、示されていない例はクエリ結果が共に「偽」である。
「等しい」(=)クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果としての第6クリアテキストと(2-1)クエリ条件の第3クリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、等しいでない場合、「偽」である。
「等しい」機能の暗号化テキストに関するクエリ結果:
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’との比較を行い、クエリ結果が「偽」である。
「等しくない」(<>)クエリ機能で取得した暗号化テキストに関するクエリ結果が「等しい」機能による暗号化テキストに関するクエリの結果と同じであり、クエリ結果が「真」である。
次に512進数系(即ちs=512)を例にして説明する。
(1)任意データ型の第1クリアテキストを取得し、該第1クリアテキストから512進数系の第2クリアテキストを取得し、512進数系の前記第2クリアテキストの各桁の値に対し、暗号化を行い、暗号化された各桁の値を構成要素とする第1暗号化テキストを構成し、第1暗号化テキストを、クエリされる対象として記憶する
例えば、業務用シークレットキーp=11111,q=11,x0=p×q=122221である場合、r=1にすると、第1クリアテキストm=‘abdabd’に対して、512進数系の第1クリアテキスト文字aのASCIIコードの値が97、bが98、dが100に等しく、本発明の上式で計算されてから下記の結果を取得できる。
文字aの暗号化された暗号化テキスト=11720
文字bの暗号化された暗号化テキスト=11721
文字dの暗号化された暗号化テキスト=11723
よって、クエリされる対象である第1暗号化テキストの構成要素が6件ある。
Enc(abdabd)=(11720,11721,11723,11720,11721,11723)
(2)クエリ条件を入力する。
(2-1)クエリ条件の第3クリアテキストを512進数系の第4クリアテキストに転換する。例えば、文字区分の第3クリアテキストm=‘da’に対して、512進数系の第3クリアテキスト文字dのASCIIコードの値が100、aが97である。
(2-2)完全準同型暗号化アルゴリズムで(2-1)で取得した第4クリアテキストの各桁の値に対する暗号化を行い、暗号化の結果組合せて第2暗号化テキストを構成し、クエリする対象とする。暗号化計算が(1-2)における式と同じであり、即ち、クエリする対象である第2暗号化テキストの構成要素が2件ある。
Enc(da)=(11723,11720)
(3)クエリされる対象である第1暗号化テキストとクエリする対象である第2暗号化テキスト対し、暗号化された各桁の値である構成要素ごとの加算を行い、加算結果を構成要素とする第3暗号化テキストを、クエリ結果として取得する。
例えば、クエリに(like)機能を含むとはクエリ条件の暗号化テキストであるクエリする対象Enc(da)が暗号化テキストとして記憶されたクエリされる対象Enc(abdabd)に含まれるかということである。クエリ条件の2文字が第2暗号化テキストの2件の構成要素に転換されたので、毎度にクエリされる対象である第1暗号化テキストから第2暗号化テキストの構成要素数と同じ2件を取ってクエリする対象の暗号化テキストの2件の構成要素の構成要素ごとの加算を行って暗号化テキストに関するクエリ結果として第3暗号化テキストを取得でき、暗号化テキストに関するクエリ結果数=クエリされる対象の第1暗号化テキストの構成要素数-クエリする対象の第2暗号化テキストの構成要素数+1=6-2+1=5となり、即ち、この例で暗号化テキストに関するクエリ結果は、下記の計5組がある。
第1組の暗号化テキストに関するクエリ結果:
クエリされる対象:(11720,11721)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441)
第2組の暗号化テキストに関するクエリ結果:
クエリされる対象:(11721,11723)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23444,23443)
第3組の暗号化テキストに関するクエリ結果:
クエリされる対象:(11723,11720)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23446,23440)
第4組の暗号化テキストに関するクエリ結果:
クエリされる対象:(11720,11721)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441)
第5組の暗号化テキストに関するクエリ結果:
クエリされる対象:(11721,11723)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23444,23443)
クエリの「等しい」(=)機能とはクエリ条件の暗号化テキストクエリする対象Enc(da)が暗号化テキストとして記憶されるクエリされる対象Enc(abdabd)に等しいかということである。クエリ条件が2文字であり、第2暗号化テキストの構成要素が2件あるが、第1暗号化テキストの記憶対象Enc(abdabd)の構成要素が6件あり、構成要素ごとの加算を行い、加算結果を構成要素とする第3暗号化テキストを、クエリ結果として、1組、取得できる。この例で、暗号化テキストに関するクエリ結果は次の通りである。
クエリされる対象:(11720,11721,11723,11720,11721,11723)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441,11723,11720,11721,11723)
クエリ「等しくない」(<>)機能とはクエリ条件の暗号化テキストであるクエリする対象Enc(da)が暗号化テキストとして記憶されるクエリされる対象Enc(abdabd)に等しくないかということである。この例で、暗号化テキストに関するクエリ結果が「等しい」機能のクエリ結果と同じである。「等しい」と「等しくない」の機能の違いについて次のステップ(4)で更に説明する。
(4)クエリ及びクエリ結果に対する復号化に関する権限を持つユーザしか暗号化テキストに関するクエリ結果に対する復号化を行うことができない。即ち、復号化された暗号化テキストに関するクエリ結果としての第6クリアテキストと(2-1)クエリ条件の第3クリアテキストとの比較を行い、等しいである場合、クエリ結果が「真」、等しいでない場合、「偽」である。例えば、
「含む」(like) クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果である第6クリアテキストと(2-1)クエリ条件の第3クリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、等しいでない場合、「偽」である。
第1組の暗号化テキストに関するクエリ結果:
Dec(23443,23441)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,98)=‘cb’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cb」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
第2組の暗号化テキストに関するクエリ結果:
Dec(23444,23443)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,99)=‘cc’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cc」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
第3組の暗号化テキストに関するクエリ結果:
Dec(23446,23440)
m=(100,97)=‘da’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=‘da’と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「真」である。
第4組の暗号化テキストに関するクエリ結果:
Dec(23443,23441)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行い、下記のクリアテキストを取得する。
m=(99,98)=「cb」
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cb」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
第5組の暗号化テキストに関するクエリ結果:
Dec(23444,23443)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,99)=‘cc’
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cc」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
「等しい」(=)クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果として第6クリアテキストと(2-1)クエリ条件の第3クリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、等しいでない場合、「偽」である。
「等しい」機能の暗号化テキストに関するクエリ結果:
Dec(23443,23441,11723,11720,11721,11723)
m=(99,98,100,97,98,100)=(cbdabd)
暗号化テキストに関するクエリ結果復号化による第6クリアテキストm=「cbdabd」と(2-1)クエリ条件の第3クリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
「等しくない」(<>)クエリ機能で取得した暗号化テキストに関するクエリ結果が「等しい」機能の暗号化テキストに関するクエリの結果と同じであり、クエリ結果が「真」である。
上記のステップに記載されたすべての例にとって、上記のステップ(4)で「含む」(like)、「等しい」(=)、「等しくない」(<>)の復号化過程及び結果について詳細に説明したので、このステップで省略する。
本分野の技術者が容易に理解できるように、上記が本発明の望ましい実施例だけであり、本発明を制限するものではなく、本発明の実質及び原則によるどの改訂、同一交換または改善などの全ては本発明の保護範囲にある。

Claims (9)

  1. 下記のステップ
    (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)において暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
    Figure 0006783877
    ここで、
    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であることを特徴とする完全準同型暗号化の暗号化テキストのクエリメソッド
  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)において暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
    Figure 0006783877
    ここで、
    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暗号化テキストにおける各構成要素の値であることを特徴とする完全準同型暗号化の暗号化テキストのクエリメソッド
  3. ステップ(1-1)における、前記第1クリアテキストを前記所定進数系の前記第2クリアテキストに転換するステップが、文字区分の前記第1クリアテキストを文字コードに転換し、当該文字コードを前記所定進数系の前記第2クリアテキストに転換するステップを含むか、または、
    ステップ(2-1)における、前記第3クリアテキストを前記所定進数系の前記第4クリアテキストに転換するステップが、文字区分の前記第3クリアテキストを文字コードに転換し、当該文字コードを前記所定進数系の前記第4クリアテキストに転換するステップを含むことを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
  4. シークレットキーpは生成方式がLWE、格子、またはGCDに基づき、スパース・サブセット合計に近似する方法であることを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
  5. テップ(3)は順にクエリされる対象である第1暗号化テキストからクエリする対象である第2暗号化テキストと同じ数量の構成要素を取り出し、クエリされる対象である第1暗号化テキストにおける構成要素数がクエリする対象である第2暗号化テキスト構成要素数以下となるまで、前記第1暗号化テキストから取り出された構成要素と前記第2暗号化テキストの構成要素とをそれぞれ加算し、加算結果を構成要素とする複数の第3暗号化テキストを、クエリ結果として取得することであることを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
  6. テップ(4)における、前記第5クリアテキストのデータ型を前記第3クリアテキストのデータ型に転換して前記第6クリアテキストとするステップが、前記所定進数系の前記第5クリアテキストを対応する文字コードに転換し、当該文字コードを文字区分の前記第6クリアテキストに転換するステップを含むことを特徴とする請求項に記載の暗号化テキストのクエリメソッド。
  7. 文字コードはコードASCIIまたはコードUnicodeであることを特徴とする請求項3または6に記載の暗号化テキストのクエリメソッド。
  8. 下記のモジュール
    第一モジュール:任意データ型の第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:奇数
    上記の如何なるシークレットキーも開示されないものであり、
    前記第一モジュールおよび前記第二モジュールにおいて暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
    Figure 0006783877
    ここで、
    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であることを特徴とする完全準同型暗号化の暗号化テキストクエリ・システム
  9. 下記のモジュール
    第一モジュール:任意データ型の第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:奇数
    上記の如何なるシークレットキーも開示されないものであり、
    前記第一モジュールおよび前記第二モジュールにおいて暗号化に非対称暗号化アルゴリズムを利用する場合、下式を利用し、
    Figure 0006783877
    ここで、
    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暗号化テキストにおける各構成要素の値であることを特徴とする完全準同型暗号化の暗号化テキストクエリ・システム
JP2018564900A 2017-05-09 2017-11-23 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム Active JP6783877B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统

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