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

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

Info

Publication number
JP2019523909A
JP2019523909A JP2018564900A JP2018564900A JP2019523909A JP 2019523909 A JP2019523909 A JP 2019523909A JP 2018564900 A JP2018564900 A JP 2018564900A JP 2018564900 A JP2018564900 A JP 2018564900A JP 2019523909 A JP2019523909 A JP 2019523909A
Authority
JP
Japan
Prior art keywords
query
text
encrypted
clear text
target
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.)
Granted
Application number
JP2018564900A
Other languages
English (en)
Other versions
JP6783877B2 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】 本発明は下記のステップを含む完全準同型暗号化の暗号化テキストのクエリメソッドを開示する。【解決手段】 任意データ型のクリアテキストを取得し、当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行い、クエリ条件としてのクリアテキストを受信し、当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として記憶を行い、取得したクエリされる対象及びクエリする対象について進数系暗号化テキスト対位法加算を行い、加算結果を暗号化テキストクエのリ結果としてクリアテキストに復号化し、取得したクリアテキストとクエリ条件としてのクリアテキストとの比較を行い、二者が同じであると、暗号化テキスに関するトクエリ結果が正確であること、反対に、暗号化テキスに関するトクエリ結果が違うことを示す。本発明は従来の対称暗号アルゴリズムに基づく暗号化テキストのクエリメソッドで同じシックレートキーを使用して暗号化された暗号化テキストが始終に同じであり、復号化不要でクエリされる内容の真偽を判断でき、機密情報の漏えいという技術上の課題があるという課題を解決できる。【選択図】図1

Description

本発明は情報安全分野、更に具体的に、完全準同型暗号化の暗号化テキストのクエリメソッド及びシステムに関する。
現在、暗号化テキストクエリは広く全文検索の技術分野でキーワードクエリの検索結果を取得することに用いられている。
現在、広く用いられている暗号化テキストのクエリメソッドは主に対称暗号アルゴリズム及び非対称暗号アルゴリズムに用いられている。対称暗号アルゴリズムで、シックレートキーが同じである場合、ブロック暗号アルゴリズムは同じ内容の暗号化された暗号化テキストが始終に同じであり、復号化不要でクエリされる内容の真偽を判断できるので、秘密情報の漏洩という課題があり、非対称暗号アルゴリズムにとって、クリアテキストデータが暗号化されると、その暗号化テキスト内容をクエリする場合、暗号化テキストの復号化を行ってクリアテキストの比較をしなければクエリ結果を取得できない。このようなクエリ過程にデータ漏洩のおそれがあるので、秘密情報の漏洩という課題がある。
本発明は完全準同型暗号化の暗号化テキストのクエリメソッド及びシステムを提供し、従来の対称暗号アルゴリズムに基づく暗号化テキストのクエリメソッド同じシックレートキーで暗号化された暗号化テキストが始終に同じであり、復号化不要でクエリされる内容の真偽を判断できるので、秘密情報の漏洩があるという技術上の課題及び非対称暗号アルゴリズムに基づく暗号化テキストのクエリメソッドクエリの過程にデータ漏洩のおそれがあるので、秘密情報の漏洩があるという技術上の課題を解決することを目的にする。
上記の目的に達成するために、本発明では下記のステップを含む完全準同型暗号化の暗号化テキストのクエリメソッドを提供する。
(1)任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行う。
(2)クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行う。
(3)ステップ(1)で取得したクエリされる対象及びステップ(2)で取得したクエリする対象に関する進数系暗号化テキストの対位法加算を行い、暗号化テキストに関するクエリ結果を取得するようにする。
(4)ステップ(3)で取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、復号化によるクリアテキストとステップ(2)でクエリ条件そしてのクリアテキストとの比較を行い、二者が同じであると、暗号化テキスに関するトクエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
本発明では下記のステップを含む完全準同型暗号化の暗号化テキストのクエリメソッドも提供する。
(1)任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行う。
(2)クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行う。
(3)ステップ(1)で取得したクエリされる対象とステップ(2)で取得したクエリする対象に対する進数系暗号化テキストの対位法減算を行い、取得した差の値を暗号化テキスに関するトクエリ結果にする。
(4)ステップ(3)で取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、当該クリアテキストがゼロであるかを判断し、Yesの場合、暗号化テキスに関するトクエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
望ましくは、ステップ(1)に具体的に下記のサブステップを含む。
(1-1)任意データ型のクリアテキストを取得し、それを進数系のクリアテキストに転換する。
(1-2)ステップ(1-1)で取得した進数系のクリアテキストの中の各進数系の値に対する暗号化を行い、暗号化の結果を暗号化テキストの組合せを構成し、当該暗号化テキストの組合せをクエリされる対象として暗号化テキストの記憶を行う。
望ましくは、ステップ(2)に具体的に下記のサブステップを含む。
(2-1)クエリ条件としてのクリアテキストを取得し、それを進数系のクリアテキストに転換する。
(2-2)ステップ(2-1)で取得した進数系のクリアテキストにおける各進数系の値に対する暗号化を行い、暗号化の結果を暗号化テキストの組合せを構成し、当該暗号化テキストの組合せをクエリする対象として暗号化テキストの記憶を行う。
望ましくは、具体的に、進数系のクリアテキストに転換するステップとして、当該文字区分のクリアテキストを文字コード、当該文字コードを進数系のクリアテキストに転換する。
望ましくは、暗号化計算について対称暗号化のアルゴリズムを利用する場合、具体的に下式を利用する。
c=(m+s×r+p×q) mod x0
その中、
c:暗号化テキスト
m:進数系のクリアテキストにおける進数系の値
s:暗号化で利用する進数系
r:乱数
p:暗号化シックレートキー
x0:中間変数=暗号化シックレートキーp×もう一つの暗号化シックレートキーqp
q:奇数
上記の如何なるシックレートキーも開示されないものである。
望ましくは、暗号化計算で非対称暗号化のアルゴリズムを利用する場合に具体的に下式を利用する。
Figure 2019523909
その中、
c:暗号化テキスト
m:進数系のクリアテキストにおける進数系の値
s:暗号化で利用する進数系
r及びτ:乱数
xi:ランダムに生成したiの個数、xi=qi×p+s×r
p:非対称アルゴリズムで利用されるシックレートキー、大奇数であり、且つqi≪q0,0≦i≦τ、非対称暗号化アルゴリズムで利用される公開鍵がpk=(x0,x1,…,xi,…,xτ)である。
望ましくは、シックレートキーpは生成方式がLWE、格子、またはGCDに基づき、スパース・サブセット合計に近似する方法である。
望ましくは、具体的に、ステップ(3)は順序にクエリされる対象からクエリする対象と同じ数量のある暗号化テキストを取り出し、クエリされる対象における暗号化テキスト数がクエリする対象の暗号化テキスト数の以下となるまで進数系暗号化テキストに従って当該暗号化テキストとクエリする対象との対位法加算を行い、それによる複数の加算結果を暗号化テキストに関するクエリ結果にする。
望ましくは、具体的に、ステップ(4)は対応する進数系のクリアテキストを取得するように、それによる複数の暗号化テキストに関するクエリ結果に対する復号化を行い、当該進数系のクリアテキストを進数系のクリアテキストに転換してから進数系のクリアテキストを対応する文字コードに転換し、それぞれそれによる文字コードをクエリ条件としてのクリアテキストとの比較を行い、比較の結果が同じである場合、対応するクエリ結果が真であることを示すが、反対に、対応するクエリ結果が偽であることを示す。
望ましくは、暗号化テキストの対位法加算に対して、それによる暗号化テキストに関するクエリ結果は復号化の操作式が次の通りである。
((c mod p)mod y)/2
その中、y≧s×2-1,且つy≦p/2
暗号化テキストに対して、対位法減算それによる暗号化テキストに関するクエリ結果は復号化の操作式が次の通りである。
(c mod p)mod s。
望ましくは、文字コードはコードASCIIまたはコードUnicodeである。
本発明では下記のモジュールを含む完全準同型暗号化の暗号化テキストクエリ・システムを提供する。
第一モジュール:任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行うことに用いられる。
第二モジュール:クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行うことに用いられる。
第三モジュール:第一モジュールが取得したクエリされる対象及び第二モジュールが取得したクエリする対象に対する進数系暗号化テキスト対位法加算を行い、暗号化テキストに関するクエリ結果を取得するようにすることに用いられる。
第四モジュール:第三モジュールが取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、対位法加算の場合、復号化によるクリアテキストと第二モジュールにおけるクエリ条件としてのクリアテキストとの比較を行い、二者が同じであると、暗号化テキスに関するトクエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示し、対位法減算の場合、復号化の結果がゼロであり、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示すことに用いられる。
本発明では下記のモジュールを含むことを特徴とする完全準同型暗号化の暗号化テキストクエリ・システムを提供する。
第一モジュール:任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行うことに用いられる。
第二モジュール:クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行うことに用いられる。
第三モジュール:第一モジュールが取得したクエリされる対象と第二モジュールが取得したクエリする対象に対する進数系暗号化テキスト対位法減算を行い、取得した差の値を暗号化テキスに関するトクエリ結果にすることに用いられる。
第四モジュール:第三モジュールが取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、当該クリアテキストがゼロであるかを判断し、Yesの場合、暗号化テキスに関するトクエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示すことに用いられる。
(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 2019523909
である。その中、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)任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行う。
暗号化計算について対称暗号化のアルゴリズムを利用する場合、具体的に下式を利用する。
c=(m+s×r+p×q) mod x0
その中、
c:暗号化テキスト
m:進数系のクリアテキストにおける進数系
s:暗号化で利用する進数系
r:乱数
p:暗号化シックレートキー
x0:中間変数=暗号化シックレートキーp×もう一つの暗号化シックレートキーqp
q:奇数
上記の如何なるシックレートキーも開示されないものである。
暗号化計算で非対称暗号化のアルゴリズムを利用する場合に具体的に下式を利用する。
Figure 2019523909
その中、
c:暗号化テキスト
m:進数系のクリアテキストにおける進数系
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)任意データ型のクリアテキストを取得し、それを進数系のクリアテキストに転換する。
具体的に、進数系のクリアテキストに転換する過程として、当該文字区分のクリアテキストを文字コード(当該文字コードはASCIIコードでもUnicodeコードでもいい)、当該文字コードを進数系のクリアテキストに転換する。
例えば、文字区分のクリアテキストm=「abdabd」につて、当該文字区分のクリアテキストを情報交換用米国標準コード(American Standard Code for Information Interchange、「ASCIIコード」と略す)(即ち、a=97,b=98,d=100)に転換してから当該ASCIIコードを2進数系のクリアテキスト(即ち、a=97=(1100001),b=98=(1100010),d=100=(1100100))に転換する。
(1-2)ステップ(1-1)で取得した進数系のクリアテキストの中の各進数系の値に対する暗号化を行い、暗号化の結果を暗号化テキストの組合せを構成し、当該暗号化テキストの組合せをクエリされる対象として暗号化テキストの記憶を行う。
具体的に、このステップで下式で暗号化計算を行う。
c=(m+s×r+p×q)mod x0
その中、
c:暗号化テキスト
m:進数系のクリアテキストにおける進数系の値
s:暗号化で利用する進数系(例:2進数系の場合、s=2、16進数系の場合、s=16),
r:乱数
p:暗号化シックレートキー
x0:中間変数=暗号化シックレートキーp×もう一つの暗号化シックレートキーq(その中、pでもqでも奇数である)
上記の如何なるシックレートキーも開示されないものである。
次に2進数系s=2を例として説明する。
例えば、業務用シックレートキーp=111,q=11,x0=p×q=1221である場合、r=1にすると、上記のステップ(1-1)で例とするクリアテキストaの2進数系のクリアテキスト1100001、クリアテキストbの2進数系のクリアテキスト1100010、及びクリアテキストdの2進数系のクリアテキスト1100100における進数系の値0及び1にとって、このステップの上式で計算してから下記の結果を取得できる。
数0の暗号化された暗号化テキスト=113
数1の暗号化された暗号化テキスト=114
よって、クリアテキストaの2進数系のクリアテキスト1100001が上式で計算されてから、暗号化テキストの記憶を行うクエリされる対象は下記の通りとなる。
Enc(a)=(114,114,113,113,113,113,114)
クリアテキストbの2進数系のクリアテキスト1100010は上式で計算されてからクエリされる対象として暗号化テキストの記憶を行う結果は下記の通りとなる。
Enc(b)=(114,114,113,113,113,114,113)
クリアテキストdの2進数系のクリアテキスト1100100が上式で計算されてからクエリされる対象として暗号化テキストの記憶を行う結果は下記の通りとなる。
Enc(d)=(114,114,113,113,114,113,113)
はっきりする表現を図るために、次に文字転換の進数系の値により暗号化テキストを構成して[]で表現する。例えば、上記の例におけるクリアテキストm=‘abdabd’について、このステップの以降にそれによるクエリされる対象の暗号化テキストが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)におけるものと完全に同じであるので、ここでは省略する。
このステップに具体的に下記のサブステップを含む。
(2-1)クエリ条件としてのクリアテキストを取得し、それを進数系のクリアテキストに転換する。
このステップは上記のステップ(1-1)の達成方式と完全に同じである。
例えば、文字区分のクリアテキストm’=‘da’について文字区分のクリアテキストをASCIIコード(即ちd=100,a=9)に転換してから、当該ASCIIコードを2進数系のクリアテキスト(即ち、d=100=(1100100),a=97=(1100001))に転換する。
(2-2)ステップ(2-1)で取得した進数系のクリアテキストにおける各進数系の値に対する暗号化を行い、暗号化の結果を暗号化テキストの組合せを構成し、当該暗号化テキストの組合せをクエリする対象として暗号化テキストの記憶を行う。
このステップは上記のステップ(1-2)の達成方式と完全に同じである。
上記の示例におけるクリアテキストm’=‘da’について、このステップの以降にそれによるクエリする対象は次の通りである。Enc(da)=([114,114,113,113,114,113,113],[114,114,113,113,113,113,114])
(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文字の転換による進数系の暗号化テキストが14件あるので、毎度にクエリする対象から進数系暗号化テキストにより暗号化テキストの14件を取ってクエリする対象の暗号化テキストの14との対位法加算を行って暗号化テキストに関するクエリ結果を取得でき、「暗号化テキストに関するクエリ結果数=クエリする対象の暗号化テキスト数-クエリする対象の暗号化テキスト数+1=42-14+1=29」である。即ち、この例の暗号化テキストに関するクエリ結果が計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];
注意:交換可能な実施方式として、このステップにおける対位法加算は対位法減算に交換されてもよく、取得した差の値を暗号化テキスに関するトクエリ結果にすること。
(4)ステップ(3)で取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、復号化によるクリアテキストとステップ(2)でクエリ条件そしてのクリアテキストとの比較を行い、二者が同じであると、暗号化テキスに関するトクエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
具体的に、このステップとして、下式によりステップ(3)で取得した複数の暗号化テキストに関するクエリ結果に対する復号化を行って、対応する進数系のクリアテキストを取得する。該進数系のクリアテキストを進数系のクリアテキストに転換してから進数系のクリアテキストを対応する文字コード(この例でASCIIコードである)に転換し、それぞれそれによる文字コードをクエリ条件としてのクリアテキストとの比較を行い、比較の結果が同じである場合、対応するクエリ結果が真であることを示し(即ちクエリする対象がクエリされる対象にある)、反対に、対応するクエリ結果が偽であることを示す(即ちクエリする対象がクエリされる対象にない)。
((c mod p)mod y)/2
その中、y≧s×2-1,且つy≦p/2
この例で、y=s×2=4となり、cは暗号化テキストに関するクエリ結果における暗号化テキストであり、その長さがクエリする対象における暗号化テキスト数と同じである。
注意:上記のステップ(3)で当該暗号化テキストとクエリする対象について進数系暗号化テキストにより対位法減算を行う場合、このステップ(4)が下記の通りに交換されること。
(4’)ステップ(3)で取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、当該クリアテキストがゼロであるかを判断し、Yesの場合、暗号化テキスに関するトクエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。この場合、暗号化テキストに対して、対位法減算それによる暗号化テキストに関するクエリ結果は復号化の操作式が次の通りである。
(c mod p)mod s。
言うまでもなく、本発明は上式に限られるものではなく、当該式のどの簡単な変形でも簡単な変換でも本発明の領域にある。
上記の示例で、第1組の暗号化テキストに関するクエリ結果に対して、cが[228,228,226,226,227,226,227],[228,228,226,226,226,227,227]における暗号化テキストである。
その中、暗号化テキスト228にとって(下記に2進数系のクリアテキストを例にする)、復号化の結果=((228 mod 111) mod 4)/2=1となる。
その中、暗号化テキスト226にとって、復号化の結果=((226 mod 111) mod 4)/2=0となる。
その中、暗号化テキスト227にとって、復号化の結果=((227 mod 111) mod 4)/2=1となる(その結果が0.5であるが、丸めで1となる)。
第1組の暗号化テキストに関するクエリ結果に対して、(1100101,1100011)となる。
次に、それについて10進数系の転換を行うと、「101,99」となり、続いてそれについてASCII転換を行うと、対応するASCIIコードがecとなる。
第1組の暗号化テキストに関するクエリ結果:
Dec([228,228,226,226,227,226,227],[228,228,226,226,226,227,227])
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=([1100101],[1100011])=([101],[99])=‘ec’
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘ec’と(2-1)クエリ条件のクリアテキスト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)
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘ge’と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」となる。
第3組の暗号化テキストに関するクエリ結果:
Dec([227,227,226,226,228,227,227],[227,227,226,227,226,227,228])
m=([1100111],[1101011])=([103],[107])=(gk)
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘gk’と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
……
第15組の暗号化テキストに関するクエリ結果:
Dec([228,228,226,226,228,226,226],[228,228,226,226,226,226,228])
m=[1100100],[1100001]=([100],[97])=(da)
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘da’と(2-1)クエリ条件のクリアテキスト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)
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘fe’と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
上記の例によると、示されていない例はクエリ結果が共に「偽」である。
「等しい」(=)クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果としてのクリアテキストと(2-1)クエリ条件のクリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、反対に、「偽」である。
「等しい」機能の暗号化テキストに関するクエリ結果:
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)
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘ecdabd’と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
「等しくない」(<>)クエリ機能で取得した暗号化テキストに関するクエリ結果が「等しい」機能による暗号化テキストに関するクエリの結果と同じであり、クエリ結果が「真」である。
次に512進数系(即ちs=512)を例にして説明する。
(1)任意データ型のクリアテキストを取得し、当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行う。
例えば、業務用シックレートキーp=11111,q=11,x0=p×q=122221である場合、r=1にすると、クリアテキストm=‘abdabd’に対して、その進数系のクリアテキスト文字aのASCIIコードの値が97、bが98、dが100に等しく、本発明の上式で計算されてから下記の結果を取得できる。
文字aの暗号化された暗号化テキスト=11720
文字bの暗号化された暗号化テキスト=11721
文字dの暗号化された暗号化テキスト=11723
よって、クエリされる対象の暗号化テキストが6件ある。
Enc(abdabd)=(11720,11721,11723,11720,11721,11723)
(2)クエリ条件を入力する。
(2-1)クエリ条件のクリアテキストを進数系のクリアテキストに転換する。例えば、文字区分のクリアテキストm=‘da’に対して、その進数系のクリアテキスト文字dのASCIIコードの値が100、aが97である。
(2-2)完全準同型暗号化アルゴリズムで(2-1)で取得したクリアテキスト進数系の各数に対する暗号化を行い、暗号化の結果の暗号化を行ってテキスト組合クエリする対象にして、暗号化計算が(1-2)における式と同じであり、即ち、クエリする対象の暗号化テキストが2件ある。
Enc(da)=(11723,11720)
(3)クエリされる対象とクエリする対象について進数系暗号化テキストに対する対位法加算を行い、その加算の結果の暗号化テキストを組み合わせて暗号化テキストに関するクエリ結果を取得する。
例えば、クエリに(like)機能を含むとはクエリ条件の暗号化テキストクエリする対象Enc(da)が暗号化テキストに記憶されたクエリされる対象Enc(abdabd)に含まれるかということである。クエリ条件の2文字が進数系の暗号化テキストの2件に転換されたので、毎度にクエリされる対象から進数系暗号化テキストにより暗号化テキストの2件を取ってクエリする対象の暗号化テキストの2件と対位法加算を行って暗号化テキストに関するクエリ結果の1組を取得でき、暗号化テキストに関するクエリ結果数=クエリする対象の暗号化テキスト数-クエリする対象の暗号化テキスト数+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件あるが、暗号化テキストの記憶対象Enc(abcabc)が6件あり、進数系暗号化テキストにより対位法加算を行って暗号化テキストに関するクエリ結果の1組を取得できる。この例で、暗号化テキストに関するクエリ結果は次の通りである。
クエリされる対象:(11720,11721,11723,11720,11721,11723)
クエリする対象: (11723,11720)
暗号化テキストに関するクエリ結果:(23443,23441,11723,11720,11721,11723)
クエリ「等しくない」(<>)機能とはクエリ条件の暗号化テキストクエリする対象Enc(da)が暗号化テキストに記憶されるクエリされる対象Enc(abdabd)に等しくないかということである。この例で、暗号化テキストに関するクエリ結果が「等しい」機能のクエリ結果と同じである。「等しい」と「等しくない」の機能の違いについて次のステップ(4)で更に説明する。
(4)クエリ及びクエリ結果に対する復号化に関する権限を持つユーザしか暗号化テキストに関するクエリ結果に対する復号化を行うことができない。即ち、復号化された暗号化テキストに関するクエリ結果としてのクリアテキストと(2-1)クエリ条件のクリアテキストとの比較を行い、等しいである場合、クエリ結果が「真」、反対に、「偽」である。例えば、
「含む」(like) クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果クリアテキストと(2-1)クエリ条件のクリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、反対に、「偽」である。
第1組の暗号化テキストに関するクエリ結果:
Dec(23443,23441)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,98)=‘cb’
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=「cb」と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
第2組の暗号化テキストに関するクエリ結果:
Dec(23444,23443)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,99)=‘cc’
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=「cc」と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
第3組の暗号化テキストに関するクエリ結果:
Dec(23446,23440)
m=(100,97)=‘da’
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=‘da’と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「真」である。
第4組の暗号化テキストに関するクエリ結果:
Dec(23443,23441)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行い、下記のクリアテキストを取得する。
m=(99,98)=「cb」
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=「cb」と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
第5組の暗号化テキストに関するクエリ結果:
Dec(23444,23443)
(4)の復号化式で暗号化テキストに関するクエリ結果に対する復号化を行って下記のクリアテキストを取得する。
m=(99,99)=‘cc’
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=「cc」と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
「等しい」(=)クエリ機能で取得した暗号化テキストに関するクエリ結果は次の通りである。暗号化テキストに関するクエリ結果に対する復号化を行ってから復号化の結果のクリアテキストと(2-1)クエリ条件のクリアテキストとの比較を行い、結果が等しいである場合、クエリ結果が「真」、反対に、「偽」である。
「等しい」機能の暗号化テキストに関するクエリ結果:
Dec(23443,23441,11723,11720,11721,11723)
m=(99,98,100,97,98,100)=(cbdabd)
暗号化テキストに関するクエリ結果復号化によるクリアテキストm=「cbdabd」と(2-1)クエリ条件のクリアテキストm=‘da’との比較を行い、クエリ結果が「偽」である。
「等しくない」(<>)クエリ機能で取得した暗号化テキストに関するクエリ結果が「等しい」機能の暗号化テキストに関するクエリの結果と同じであり、クエリ結果が「真」である。
上記のステップに記載されたすべての例にとって、上記のステップ(4)で「含む」(like)、「等しい」(=)、「等しくない」(<>)の復号化過程及び結果について詳細に説明したので、このステップで省略する。
本分野の技術者が容易に理解できるように、上記が本発明の望ましい実施例だけであり、本発明を制限するものではなく、本発明の実質及び原則によるどの改訂、同一交換または改善などの全ては本発明の保護範囲にある。

Claims (14)

  1. 下記のステップを含むことを特徴とする完全準同型暗号化の暗号化テキストのクエリメソッド。
    (1)任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行う。
    (2)クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行う。
    (3)ステップ(1)で取得したクエリされる対象及びステップ(2)で取得したクエリする対象に関する進数系暗号化テキストの対位法加算を行い、暗号化テキストに関するクエリ結果を取得するようにする。
    (4)ステップ(3)で取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、復号化によるクリアテキストとステップ(2)でクエリ条件そしてのクリアテキストとの比較を行い、二者が同じであると、暗号化テキスに関するトクエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
  2. 下記のステップを含むことを特徴とする完全準同型暗号化の暗号化テキストのクエリメソッド。
    (1)任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行う。
    (2)クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行う。
    (3)ステップ(1)で取得したクエリされる対象とステップ(2)で取得したクエリする対象に対する進数系暗号化テキストの対位法減算を行い、それによる差の値を暗号化テキストに関するクエリ結果にする。
    (4)ステップ(3)で取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、当該クリアテキストがゼロであるかを判断し、Yesの場合、暗号化テキスに関するトクエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、Noの場合、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
  3. ステップ(1)に具体的に下記のサブステップを含むことを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
    (1-1)任意データ型のクリアテキストを取得し、それを進数系のクリアテキストに転換する。
    (1-2)ステップ(1-1)で取得した進数系のクリアテキストの中の各進数系の値に対する暗号化を行い、暗号化の結果を暗号化テキストの組合せを構成し、当該暗号化テキストの組合せをクエリされる対象として暗号化テキストの記憶を行う。
  4. ステップ(2)に具体的に下記のサブステップを含むことを特徴とする請求項3に記載の暗号化テキストのクエリメソッド。
    (2-1)クエリ条件としてのクリアテキストを取得し、それを進数系のクリアテキストに転換する。
    (2-2)ステップ(2-1)で取得した進数系のクリアテキストにおける各進数系の値に対する暗号化を行い、暗号化の結果を暗号化テキストの組合せを構成し、当該暗号化テキストの組合せをクエリする対象として暗号化テキストの記憶を行う。
  5. 具体的に、進数系のクリアテキストに転換するステップとして、当該文字区分のクリアテキストを文字コード、当該文字コードを進数系のクリアテキストに転換することを特徴とする請求項4に記載の暗号化テキストのクエリメソッド。
  6. 暗号化計算について対称暗号化のアルゴリズムを利用する場合、具体的に下式を利用することを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
    c=(m+s×r+p×q) mod x0
    その中、
    c:暗号化テキスト
    m:進数系のクリアテキストにおける進数系の値
    s:暗号化で利用する進数系
    r:乱数
    p:暗号化シックレートキー
    x0:中間変数=暗号化シックレートキーp×もう一つの暗号化シックレートキーq
    p、q:奇数
    上記の如何なるシックレートキーも開示されないものである。
  7. 暗号化計算で非対称暗号化のアルゴリズムを利用する場合に具体的に下式を利用することを特徴とする請求項1または2に記載の暗号化テキストのクエリメソッド。
    Figure 2019523909
    その中、
    c:暗号化テキスト
    m:進数系のクリアテキストにおける進数系
    s:暗号化で利用する進数系
    r、τ:乱数
    xi :ランダムに生成したiの個数、xi=qi×p+s×r
    p:非対称アルゴリズムで利用されるシックレートキー、大奇数であり、qi≪q0,0≦i≦τ
    pk=(x0,x1,…,xi,…,xτ):非対称暗号化アルゴリズムで利用される公開鍵。
  8. シックレートキーpは生成方式がLWE、格子、またはGCDに基づき、スパース・サブセット合計に近似する方法であることを特徴とする請求項7に記載の暗号化テキストのクエリメソッド。
  9. 具体的に、ステップ(3)は順序にクエリされる対象からクエリする対象と同じ数量のある暗号化テキストを取り出し、クエリされる対象における暗号化テキスト数がクエリする対象の暗号化テキスト数の以下となるまで進数系暗号化テキストに従って当該暗号化テキストとクエリする対象との対位法加算を行い、それによる複数の加算結果を暗号化テキストに関するクエリ結果にすることであることを特徴とする請求項7に記載の暗号化テキストのクエリメソッド。
  10. 具体的に、ステップ(4)は対応する進数系のクリアテキストを取得するように、それによる複数の暗号化テキストに関するクエリ結果に対する復号化を行い、当該進数系のクリアテキストを進数系のクリアテキストに転換してから進数系のクリアテキストを対応する文字コードに転換し、それぞれそれによる文字コードをクエリ条件としてのクリアテキストとの比較を行い、比較の結果が同じである場合、対応するクエリ結果が真であることを示すが、反対に、対応するクエリ結果が偽であることを示すことであることを特徴とする請求項9に記載の暗号化テキストのクエリメソッド。
  11. 暗号化テキストの対位法加算に対して、それによる暗号化テキストに関するクエリ結果は復号化の操作式が次の通りである。
    ((c mod p)mod y)/2
    その中、y≧s×2-1、且つy≦p/2
    暗号化テキストに対して、対位法減算それによる暗号化テキストに関するクエリ結果は復号化の操作式が次の通りである。
    (c mod p)mod s
    上記のことを特徴とする請求項10に記載の暗号化テキストのクエリメソッド。
  12. 文字コードはコードASCIIまたはコードUnicodeであることを特徴とする請求項11に記載の暗号化テキストのクエリメソッド。
  13. 下記のモジュールを含むことを特徴とする完全準同型暗号化の暗号化テキストクエリ・システム。
    第一モジュール:用于任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行うことに用いられる。
    第二モジュール:クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行うことに用いられる。
    第三モジュール:第一モジュールが取得したクエリされる対象及び第二モジュールが取得したクエリする対象に対する進数系暗号化テキスト対位法加算を行い、暗号化テキストに関するクエリ結果を取得するようにすることに用いられる。
    第四モジュール:第三モジュールが取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、復号化によるクリアテキストと第二モジュールにおけるクエリ条件としてのクリアテキストとの比較を行い、二者が同じであると、暗号化テキスに関するトクエリ結果が正確であること、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
  14. 下記のモジュールを含むことを特徴とする完全準同型暗号化の暗号化テキストクエリ・システム。
    第一モジュール:任意データ型のクリアテキストを取得し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリされる対象として暗号化テキストの記憶を行うことに用いられる。
    第二モジュール:クエリ条件としてのクリアテキストを受信し、対称暗号化アルゴリズムまたは非対称暗号化アルゴリズムにより当該クリアテキストに対する暗号化処理を行い、暗号化処理の結果をクエリする対象として暗号化テキストの記憶を行うことに用いられる。
    第三モジュール:第一モジュールが取得したクエリされる対象と第二モジュールが取得したクエリする対象に対する進数系暗号化テキスト対位法減算を行い、それによる差の値を暗号化テキストに関するクエリ結果にすることに用いられる。
    第四モジュール:第三モジュールが取得した暗号化テキストに関するクエリ結果をクリアテキストに復号化し、当該クリアテキストがゼロであるかを判断し、Yesの場合、暗号化テキスに関するトクエリ結果が正しいこと、即ち、クエリする対象がクエリされる対象にあることを示し、反対に、暗号化テキスに関するトクエリ結果が違うこと、即ち、クエリする対象がクエリされる対象にないことを示す。
JP2018564900A 2017-05-09 2017-11-23 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム Active JP6783877B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710320825.5 2017-05-09
CN201710320825.5A CN106953722B (zh) 2017-05-09 2017-05-09 一种全同态加密的密文查询方法和系统
PCT/CN2017/112472 WO2018205549A1 (zh) 2017-05-09 2017-11-23 一种全同态加密的密文查询方法和系统

Publications (2)

Publication Number Publication Date
JP2019523909A true JP2019523909A (ja) 2019-08-29
JP6783877B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022255384A1 (ja) 2021-05-31 2022-12-08 国立大学法人三重大学 医薬組成物

Families Citing this family (19)

* 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 同盾控股有限公司 用户查询方法和装置、存储介质、电子设备
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 阿里云计算有限公司 聚合查询方法、系统、电子设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140233727A1 (en) * 2012-11-16 2014-08-21 Raytheon Bbn Technologies Corp. Method for secure substring search
CN104657413A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 加密的内存列存储
JP2015114629A (ja) * 2013-12-13 2015-06-22 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
WO2017061024A1 (ja) * 2015-10-09 2017-04-13 三菱電機株式会社 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1891626A1 (en) * 2005-06-03 2008-02-27 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
CN103269267B (zh) * 2013-04-19 2016-01-13 深圳市全同态科技有限公司 一种全同态加密装置
WO2015112859A1 (en) * 2014-01-24 2015-07-30 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
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 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140233727A1 (en) * 2012-11-16 2014-08-21 Raytheon Bbn Technologies Corp. Method for secure substring search
CN104657413A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 加密的内存列存储
JP2015114629A (ja) * 2013-12-13 2015-06-22 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
WO2017061024A1 (ja) * 2015-10-09 2017-04-13 三菱電機株式会社 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AYANTIKA CHATTERJEE ET AL.: "Searching and Sorting of Fully Homomorphic Encrypted Data on Cloud", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2015/981,Ver. 20151012:210453, JPN6019051981, 2015, ISSN: 0004189084 *
SUDHARAKA PALAMAKUMBURA ET AL.: "Homomorphic Evaluation of Database Queries", ARXIV, vol. 1606.03304,v1, JPN6019051983, 2016, ISSN: 0004189085 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022255384A1 (ja) 2021-05-31 2022-12-08 国立大学法人三重大学 医薬組成物

Also Published As

Publication number Publication date
JP6783877B2 (ja) 2020-11-11
US20180367294A1 (en) 2018-12-20
EP3454499A1 (en) 2019-03-13
US10652010B2 (en) 2020-05-12
CN106953722A (zh) 2017-07-14
EP3454499A4 (en) 2019-08-07
WO2018205549A1 (zh) 2018-11-15
CN106953722B (zh) 2017-11-07

Similar Documents

Publication Publication Date Title
JP2019523909A (ja) 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム
Al-Shabi A survey on symmetric and asymmetric cryptography algorithms in information security
CN108463968B (zh) 可变长度数据的快速格式保留加密
US9893880B2 (en) Method for secure symbol comparison
CN107078906A (zh) 公钥加密系统
Shinge et al. An encryption algorithm based on ASCII value of data
Sokouti et al. Medical image encryption: an application for improved padding based GGH encryption algorithm
Gafsi et al. High securing cryptography system for digital image transmission
US20210279341A1 (en) Cryptographic security system, method, and program product using data partitioning
KR20230141845A (ko) 임계값 키 교환
CN114443718A (zh) 一种数据查询方法及系统
CN109088721B (zh) 一种可委托揭序加密方法
Fu et al. A new medical image encryption algorithm using multiple 1-D chaotic maps
Sakib ANALYSIS ON FUNDAMENTAL ALGEBRAIC CONCEPTS AND INFORMATION SECURITY SYSTEM
CN107637013B (zh) 密钥交换方法、密钥交换系统、密钥分发装置、通信装置、及记录介质
Liu et al. Image encryption technology based on fractional two-dimensional triangle function combination discrete chaotic map coupled with Menezes-Vanstone elliptic curve cryptosystem
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
JP6270683B2 (ja) 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
EP3376706B1 (en) Method and system for privacy-preserving order statistics in a star network
CN115828300A (zh) 基于区块链的带隐私保护的政务信息处理方法及系统
Sukmaindrayana et al. Signature Security Development Utilizing Rivest Shamir Adleman and Affine Cipher Cryptographic Algorithms
CN113726512A (zh) 密钥生成和分发方法、密钥生成装置、密钥管理系统
Saxena et al. A new way to enhance efficiency & security by using symmetric cryptography
JP2010186075A (ja) 整数の暗号化及び復号化方法
CN114500006B (zh) 查询请求的处理方法及装置

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