JP6987330B1 - 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム - Google Patents
登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム Download PDFInfo
- Publication number
- JP6987330B1 JP6987330B1 JP2021558992A JP2021558992A JP6987330B1 JP 6987330 B1 JP6987330 B1 JP 6987330B1 JP 2021558992 A JP2021558992 A JP 2021558992A JP 2021558992 A JP2021558992 A JP 2021558992A JP 6987330 B1 JP6987330 B1 JP 6987330B1
- Authority
- JP
- Japan
- Prior art keywords
- search
- attribute
- key
- information
- values
- 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
- 238000013523 data management Methods 0.000 title claims description 30
- 230000004931 aggregating effect Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 81
- 230000002776 aggregation Effects 0.000 claims description 55
- 238000004220 aggregation Methods 0.000 claims description 55
- 238000000034 method Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 description 118
- 238000004891 communication Methods 0.000 description 45
- 238000010586 diagram Methods 0.000 description 13
- 238000012795 verification Methods 0.000 description 7
- 239000002131 composite material Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
Description
つまり、秘匿検索は、暗号化データを復号せずに検索する技術である。
つまり、秘匿検索は、インターネットにおいてデータを管理するためのセキュリティ技術として注目されている。
共通鍵方式では、共通暗号鍵技術が利用され、登録者および検索者が限定される。
公開鍵方式では、公開鍵暗号技術が利用され、検索者は限定されるが登録者は限定されない。
マルチユーザ型の共通鍵方式において、登録者は、各検索者の秘密鍵を使ってデータを暗号化する。登録される暗号化データには暗号化タグが付加される。暗号化タグには、キーワードと検索権限とを埋め込むことができる。
例えば、検索者Aのみが検索できるという権限が暗号化タグに埋め込まれる。また、検索者Bが、自身の秘密鍵と検索キーワードとを使って検索クエリを生成する。この場合、検索者Bには検索権限がないため、検索者Bの検索クエリの中の検索キーワードが暗号化タグの中のキーワードと同じであっても、暗号化データが検索結果として得られない。
例えば、正規ユーザXと正規ユーザYが結託すれば、正規ユーザXの秘密鍵SK_Xと正規ユーザYのSK_Yとの両方を使用することができる。その場合、正規ユーザXまたは正規ユーザYが単独では検索できないはずの暗号化データを検索することが可能な秘密鍵を生成することが可能となる。具体的には、総務課の課長と人事課の担当者が結託することによって、人事課の課長の秘密鍵が生成される可能性がある。
平文と、前記平文を参照する権限を有する利用者の複数の属性を識別する複数の属性値を示す属性情報と、検索クエリを生成するためのユーザ鍵の生成時に使用される鍵と同じ登録鍵と、を受け付ける受付部と、
前記属性情報に含まれる複数の属性値を集約することによって、それぞれに1つ以上の属性値で構成される1つ以上の集約値を示す集約情報を生成する集約情報生成部と、
前記集約情報に含まれる各集約値に対して集約値の中のゼロ個以上の属性値を代替するゼロ個以上のワイルドカードと集約値の中の残りの属性値とで構成される汎化値を複数生成し、前記集約情報に含まれる各集約値に対する複数の汎化値を示す汎化情報を生成する汎化情報生成部と、
前記平文と前記属性情報と前記汎化情報と前記登録鍵とを用いて、暗号化された前記平文を含んだ暗号文データを生成する暗号文データ生成部と、
前記平文に関するキーワードと前記属性情報と前記汎化情報と前記登録鍵とを用いて、暗号化された前記キーワードを含んだ暗号化タグを生成する暗号化タグ生成部と、
前記暗号文データと前記暗号化タグとの組をデータベースに登録する登録部と、を備える。
これにより、複数の正規ユーザによる結託攻撃に対する耐性を向上できる。つまり、マルチユーザ型の共通鍵方式の安全性を向上できる。
マルチユーザ型の共通鍵方式で秘匿検索を行う形態について、図1から図26に基づいて説明する。
図1に基づいて、秘匿検索システム100の構成を説明する。
秘匿検索システム100は、マスター鍵装置200と、登録鍵装置300と、ユーザ鍵装置400と、登録装置500と、検索操作装置600と、データ管理装置700と、を備える。
秘匿検索システム100の各装置は、ネットワーク101を介して互いに通信を行う。
マスター鍵装置200は、プロセッサ201とメモリ202と補助記憶装置203と入出力インタフェース204と通信装置205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
DSPは、Digital Signal Processorの略称である。
GPUは、Graphics Processing Unitの略称である。
RAMは、Random Access Memoryの略称である。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
USBは、Universal Serial Busの略称である。
NICは、Network Interface Cardの略称である。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、マスター鍵プログラムを実行する。
OSは、Operating Systemの略称である。
補助記憶装置203は記憶部290として機能する。但し、メモリ202、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、補助記憶装置203の代わりに、又は、補助記憶装置203と共に、記憶部290として機能してもよい。
登録鍵装置300は、プロセッサ301とメモリ302と補助記憶装置303と入出力インタフェース304と通信装置305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDDまたはフラッシュメモリである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
入出力インタフェース304は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース304はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
通信装置305はレシーバ及びトランスミッタである。例えば、通信装置305は通信チップまたはNICである。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、登録鍵プログラムを実行する。
補助記憶装置303は記憶部390として機能する。但し、メモリ302、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、補助記憶装置303の代わりに、又は、補助記憶装置303と共に、記憶部390として機能してもよい。
ユーザ鍵装置400は、プロセッサ401とメモリ402と補助記憶装置403と入出力インタフェース404と通信装置405といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ402は揮発性または不揮発性の記憶装置である。メモリ402は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ402はRAMである。メモリ402に記憶されたデータは必要に応じて補助記憶装置403に保存される。
補助記憶装置403は不揮発性の記憶装置である。例えば、補助記憶装置403は、ROM、HDDまたはフラッシュメモリである。補助記憶装置403に記憶されたデータは必要に応じてメモリ402にロードされる。
入出力インタフェース404は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース404はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
通信装置405はレシーバ及びトランスミッタである。例えば、通信装置405は通信チップまたはNICである。
生成部420は、集約情報生成部421とユーザ鍵生成部422といった要素を備える。
これらの要素はソフトウェアで実現される。
補助記憶装置403には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ402にロードされて、プロセッサ401によって実行される。
プロセッサ401は、OSを実行しながら、ユーザ鍵プログラムを実行する。
補助記憶装置403は記憶部490として機能する。但し、メモリ402、プロセッサ401内のレジスタおよびプロセッサ401内のキャッシュメモリなどの記憶装置が、メモリ402の代わりに、又は、メモリ402と共に、記憶部490として機能してもよい。
登録装置500は、プロセッサ501とメモリ502と補助記憶装置503と入出力インタフェース504と通信装置505といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ502は揮発性または不揮発性の記憶装置である。メモリ502は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ502はRAMである。メモリ502に記憶されたデータは必要に応じて補助記憶装置503に保存される。
補助記憶装置503は不揮発性の記憶装置である。例えば、補助記憶装置503は、ROM、HDDまたはフラッシュメモリである。補助記憶装置503に記憶されたデータは必要に応じてメモリ502にロードされる。
入出力インタフェース504は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース504はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
通信装置505はレシーバ及びトランスミッタである。例えば、通信装置505は通信チップまたはNICである。
生成部520は、乱数生成部521と集約情報生成部522と汎化情報生成部523と暗号文データ生成部524とキーワード生成部525と暗号化タグ生成部526といった要素を備える。
これらの要素はソフトウェアで実現される。
補助記憶装置503には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ502にロードされて、プロセッサ501によって実行される。
プロセッサ501は、OSを実行しながら、登録プログラムを実行する。
補助記憶装置503は記憶部590として機能する。但し、メモリ502、プロセッサ501内のレジスタおよびプロセッサ501内のキャッシュメモリなどの記憶装置が、メモリ502の代わりに、又は、メモリ502と共に、記憶部590として機能してもよい。
検索操作装置600は、プロセッサ601とメモリ602と補助記憶装置603と入出力インタフェース604と通信装置605といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ602は揮発性または不揮発性の記憶装置である。メモリ602は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ602はRAMである。メモリ602に記憶されたデータは必要に応じて補助記憶装置603に保存される。
補助記憶装置603は不揮発性の記憶装置である。例えば、補助記憶装置603は、ROM、HDDまたはフラッシュメモリである。補助記憶装置603に記憶されたデータは必要に応じてメモリ602にロードされる。
入出力インタフェース604は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース604はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
通信装置605はレシーバ及びトランスミッタである。例えば、通信装置605は通信チップまたはNICである。
生成部620は、集約フラグ生成部621と位置情報生成部622と検索クエリ生成部623といった要素を備える。
復号部640は、集約フラグ生成部641と位置情報生成部642と検索結果復号部643といった要素を備える。
これらの要素はソフトウェアで実現される。
補助記憶装置603には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ602にロードされて、プロセッサ601によって実行される。
プロセッサ601は、OSを実行しながら、検索操作プログラムを実行する。
補助記憶装置603は記憶部690として機能する。但し、メモリ602、プロセッサ601内のレジスタおよびプロセッサ601内のキャッシュメモリなどの記憶装置が、補助記憶装置603の代わりに、又は、補助記憶装置603と共に、記憶部690として機能してもよい。
データ管理装置700は、プロセッサ701とメモリ702と補助記憶装置703と入出力インタフェース704と通信装置705といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ702は揮発性または不揮発性の記憶装置である。メモリ702は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ702はRAMである。メモリ702に記憶されたデータは必要に応じて補助記憶装置703に保存される。
補助記憶装置703は不揮発性の記憶装置である。例えば、補助記憶装置703は、ROM、HDDまたはフラッシュメモリである。補助記憶装置703に記憶されたデータは必要に応じてメモリ702にロードされる。
入出力インタフェース704は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース704はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
通信装置705はレシーバ及びトランスミッタである。例えば、通信装置705?は通信チップまたはNICである。
検索部720は、照合部721と抽出部722といった要素を備える。
これらの要素はソフトウェアで実現される。
補助記憶装置703には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ702にロードされて、プロセッサ701によって実行される。
プロセッサ701は、OSを実行しながら、データ管理プログラムを実行する。
補助記憶装置703は記憶部790として機能する。但し、メモリ702、プロセッサ701内のレジスタおよびプロセッサ701内のキャッシュメモリなどの記憶装置が、補助記憶装置703の代わりに、又は、補助記憶装置703と共に、記憶部790として機能してもよい。
秘匿検索システム100の動作の手順は秘匿検索方法に相当する。
ステップS101において、マスター鍵装置200はマスター鍵MKを生成する。
暗号文データCは、平文Mを暗号化することによって生成される。
暗号化タグCTは、暗号文データCを検索するためのキーワードを暗号化することによって生成される。暗号化タグCTからキーワードが漏洩することはない。
データベースには、暗号文データCと暗号化タグCTとの組が複数登録される。
検索クエリSQは、ユーザ鍵UKを用いて、指定されたキーワードをランダム化することによって生成される。
データ管理装置700は、検索クエリSQを受信し、検索クエリSQに合致する暗号化タグCTを特殊な演算によって検索する。
特殊な演算において、各暗号化タグCTが復号されずに、検索クエリSQのキーワードが各暗号化タグCTのキーワードと比較される。
検索操作装置600は、暗号文データCを受信し、ユーザ鍵UKを用いて暗号文データCから平文Mを復号する。
マスター鍵生成(S120)は、マスター鍵装置200によって実行される処理である。
例えば、受付部210は、マスター鍵装置200に入力される鍵長BITを入出力インタフェース204を介して受け付ける。受付部210は、マスター鍵装置200において実行されるアプリケーションプログラムから、鍵長BITを受け付けてもよい。
具体的には、生成部220は、鍵長BITと同じ長さを有するランダムなビット列を生成する。生成されるビット列がマスター鍵MKである。
例えば、鍵長BITが256ビットである場合、生成部220は、256ビットのランダムなビット列を生成する。これにより、256ビットのマスター鍵MKが得られる。
例えば、出力部230は、通信装置205を用いて、マスター鍵MKを登録鍵装置300へ送信する。
登録鍵生成(S130)は、登録鍵装置300によって実行される処理である。
例えば、受付部310は、通信装置305を用いて、マスター鍵装置200からマスター鍵MKを受信する。受付部310は、登録鍵装置300に入力されるマスター鍵MKを入出力インタフェース304を介して受け付けてもよい。
関数F_1の一例は、擬似ランダム関数である。
擬似ランダム関数は、暗号学的な関数であり、鍵が決まると入力値に応じて確定的に乱数を返す。
関数F_1は、SHA−1のような暗号学的なハッシュ関数またはAESのような共通鍵暗号方式の関数であってもよい。
DK = F_1(MK,1)
TK = F_1(MK,2)
EK = (DK,TK)
例えば、出力部330は、通信装置305を用いて、登録鍵EKをユーザ鍵装置400と登録装置500とのそれぞれに送信する。
ユーザ鍵生成(S140)は、ユーザ鍵装置400によって実行される処理である。
例えば、受付部410は、通信装置405を用いて、登録鍵装置300から登録鍵EKを受信する。受付部410は、ユーザ鍵装置400に入力される登録鍵EKを入出力インタフェース404を介して受け付けてもよい。
例えば、受付部410は、ユーザ鍵装置400に入力される属性情報Aを入出力インタフェース404を介して受け付ける。受付部410は、ユーザ鍵装置400において実行されるアプリケーションプログラムから、属性情報Aを受け付けてもよい。
検索者は、検索操作装置600の利用者であり、暗号文C′を検索する。
利用者は、階層を成す複数の属性を有する。
属性情報は、複数の属性に対応する複数の属性値を示す。
各属性値は、各層における利用者の属性を識別する。
属性情報は、4つの層に対応する4つの属性値を示している。
第1層の属性(第1属性)は事業部である。
第2層の属性(第2属性)は部である。
第3層の属性(第3属性)は課である。
第4層の属性(第4属性)は氏名である。
2番の属性情報は、Nfさんの属性情報である。Nfさんは、Di事業部のDe部のSd課に所属する。
3番の属性情報は、Sc課員の属性情報である。Sc課員は、Di事業部のDe部のSc課に所属する。第4属性値がワイルドカード「*」であるため、氏名は限定されない。
4番の属性情報は、De部員の属性情報である。De部員は、Di事業部のDe部に所属する。第3属性値および第4属性値がワイルドカード「*」であるため、課および氏名は限定されない。
利用者の属性を表現するための階層の層数を「L」と記す。Lは2以上の整数である。
属性情報はL個の属性値を示す。
A = (A_1,・・・,A_L)
具体的には、属性情報Aに基づくデータを用いて、検索権限および復号権限が設定される。
属性情報Aは、検索権限用の属性情報と復号権限用の属性情報との2つの属性情報であってもよい。
集約情報A′は、集約後の属性情報Aである。
集約情報A′の各ブロックは、1つ以上の属性値で構成される。
集約情報A′の各ブロックが示す値を集約値と呼ぶ。
集約情報の第1要素は、第1属性と第2属性とを連結したものである。
集約情報の第2要素は、第3属性と第4属性とを連結したものである。
Neさんの属性情報(図12参照)は(Di,De,Sc,Ne)である。
Neさんの集約情報(図13参照)は(Di|De,Sc|Ne)である。
第1属性値Diと第2属性値Deは、連結されることによって1つの文字列Di|Deに集約されている。
第3属性値Scと第4属性値Neは、連結されることによって1つの文字列Sc|Neに集約されている。
他の集約情報も1番の集約情報と同様に表現される。
利用者の属性を表現するための階層の集約後の層数を「k」と記す。kは1以上の整数である。
集約情報はk個の集約値を示す。
集約値は、1つ以上の属性値を集約して得られる値である。具体的には、集約値は、1つ以上の属性値を連結して得られる文字列である。
A′ = (A′_1,・・・,A′_k)
A′_i = A_(i_1)|A_(i_2)|・・・|A_(i_m)
i_1<・・・<i_m、及び、i_1+1=i_2,i_2+1=i_3,・・・,i_(m−1)+1=i_m、i_m+1=(i+1)_1が成り立つ。
また、図13における1番の集約情報を集約情報A1′と呼ぶ。
集約情報A1′は次のように表すことができる。
A1′=(A1′_1,A1′_2)=(A1_1|A1_2,A1_3|A1_4)=(Di|De,Sc|Ne)
iは1以上k以下の整数である。jは1以上L以下の整数である。
まず、ユーザ鍵生成部422は、集約値A′_iと番号iとを連結する。得られるビット列が表す値を連結値A′_i|iと呼ぶ。
そして、ユーザ鍵生成部422は、データ鍵DKと連結値A′_i|iとを入力として関数F_2を実行する。得られる値がデータ属性鍵UDK_iである。
関数F_2は、関数F_1と同様に、擬似ランダム関数、ハッシュ関数または共通鍵暗号方式の関数である。
ユーザ鍵生成部422は、属性値A_jがワイルドカード「*」であるか判定する。
属性値A_jがワイルドカード「*」である場合、フラグ値Db_jは1である。
属性値A_jがワイルドカード「*」でない場合、フラグ値Db_jは0である。
フラグ値Db_jは、属性値A_jがワイルドカード「*」であるか否かを示す。
UDK = (UDK_1,・・・,UDK_k,Db_1,・・・,Db_L)
A_j=*である場合、Db_j = 1
A_j≠*である場合、Db_j = 0
UDK_i = F_2(DK,A′_i|i)
iは1以上k以下の整数である。jは1以上L以下の整数である。
まず、ユーザ鍵生成部422は、集約値A′_iと番号iとを連結する。得られるビット列が表す値を連結値A′_i|iと呼ぶ。
そして、ユーザ鍵生成部422は、タグ鍵TKと連結値A′_i|iとを入力として関数F_2を実行する。得られる値がタグ属性鍵UTK_iである。
ユーザ鍵生成部422は、属性値A_jがワイルドカード「*」であるか判定する。
属性値A_jがワイルドカード「*」である場合、フラグ値Tb_jは1である。
属性値A_jがワイルドカード「*」でない場合、フラグ値Tb_jは0である。
フラグ値Tb_jは、属性値A_jがワイルドカード「*」であるか否かを示す。
UTK = (UTK_1,・・・,UTK_k,Tb_1,・・・,Tb_L)
A_j=*である場合、Tb_j = 1
A_j≠*である場合、Tb_j = 0
UTK_i = F_2(TK,A′_i|i)
UK = (UDK,UTK)
例えば、出力部430は、通信装置405を用いて、ユーザ鍵UKを検索操作装置600へ送信する。
データ登録(S150)は、登録装置500によって実行される処理である。
例えば、受付部510は、通信装置505を用いて、登録鍵装置300から登録鍵EKを受信する。受付部510は、登録装置500に入力される登録鍵EKを入出力インタフェース504を介して受け付けてもよい。
例えば、受付部510は、登録装置500に入力される平文Mと属性情報Bとを入出力インタフェース504を介して受け付ける。受付部510は、登録装置500において実行されるアプリケーションプログラムから、平文Mと属性情報Bとを受け付けてもよい。
平文Mには、ファイル名File(M)がメタデータとして含まれる。
権限者は、検索操作装置600の利用者の一部であり、平文Mを参照する権限を有する。
例えば、属性情報Bは図12に示された属性情報である。
B = (B_1,・・・,B_L)
データ乱数群rとタグ乱数群Rはそれぞれ(k+1)個の乱数からなる。各乱数は一様ランダムに生成される。
集約情報B′は、集約後の属性情報Bである。
集約情報B′の各ブロックは、1つ以上の属性値で構成される。
集約情報B′の各ブロックが示す値を集約値と呼ぶ。
集約情報B′のための集約方法は、集約情報A′のための集約方法(図11のステップS143を参照)と同じである。
例えば、集約情報B′は図13に示された集約情報である。
B′ = (B′_1,・・・,B′_k)
B′_i = B_(i_1)|B_(i_2)|・・・|B_(i_m)
i_1<・・・<i_m、及び、i_1+1=i_2,i_2+1=i_3,・・・,i_(m−1)+1=i_m、i_m+1=(i+1)_1が成り立つ。
汎化情報B^は、各集約値に対する複数の汎化値を示す。
汎化値は、集約値の中のゼロ個以上の属性値を代替するゼロ個以上のワイルドカードと集約値の中の残りの属性値とで構成される。
B′_i^0 = B′_i
= B_(i_1)|B_(i_2)|・・・|B_(i_m)
B′_i^1 = *|B_(i_2)|・・・|B_(i_m)
B′_i^2 = B_(i_1)|*|B_(i_3)|・・・|B_(i_m)
B′_i^3 = *|*|B_(i_3)|・・・|B_(i_m)
B′_i^4 = B_(i_1)|B_(i_2)|*|B_(i_4)|・・・|B_(i_m)
・・・
B′_i^Ii = *|*|・・・|*
Ii = 2((i_m)−(i_1)+1)
また、集約情報B′に含まれる第1集約値を集約値B′_1と呼ぶ。
集約値B′_1に対して以下の4つの汎化値B′_1^が生成される。
B′_1^0 = B′_1 = Di|De
B′_1^1 = *|De
B′_1^2 = Di|*
B′_1^3 = *|*
集約値B′_2に対して以下の4つの汎化値B′_2^が生成される。
B′_2^0 = B′_2 = Sc|Ne
B′_2^1 = *|Ne
B′_2^2 = Sc|*
B′_2^3 = *|*
ステップS156において、暗号文データ生成部524は、データ鍵DKと平文Mと属性情報Bと汎化情報B^とデータ乱数群rとを用いて、暗号文データCを生成する。データ鍵DKは登録鍵EKに含まれる。
iは1以上k以下の整数である。hは0以上2((i_m)−(i_1)+1)−1以下の整数である。
まず、暗号文データ生成部524は、汎化情報B^に含まれる汎化値B′_i^hと番号iとを連結する。得られるビット列が表す値を連結値B′_i^h|iと呼ぶ。
次に、暗号文データ生成部524は、データ鍵DKと連結値B′_i^h|iとを入力として関数F_2を実行する。得られる値を関数値(DK,B′_i^h|i)と呼ぶ。
次に、暗号文データ生成部524は、関数値(DK,B′_i^h|i)とデータ乱数群rに含まれる乱数rsとを入力として関数F_3を実行する。得られる値を関数値(DK,B′_i^h|i,rs)と呼ぶ。
関数F_3は、関数F_1と関数F_2と同様に、擬似ランダム関数、ハッシュ関数または共通鍵暗号方式の関数である。
そして、暗号文データ生成部524は、関数値(DK,B′_i^h|i,rs)とデータ乱数群rに含まれる乱数r_iとの排他的論理和を算出する。得られる値が属性要素C_{i,j}である。
まず、暗号文データ生成部524は、データ乱数群rに含まれるk個の乱数(r_1,・・・,r_k)の排他的論理和を算出する。得られる値を乱数和r+と呼ぶ。
次に、暗号文データ生成部524は、乱数和r+を入力として関数F_4を実行する。得られる値を関数値(r+)と呼ぶ。
関数F_4は、関数F_3と同様に、擬似ランダム関数、ハッシュ関数または共通鍵暗号方式の関数である。
そして、暗号文データ生成部524は、関数値(r+)と平文Mとの排他的論理和を算出する。得られる値が暗号文C′である。
暗号文C′は、暗号化された平文Mである。
C = ((C_{1,0},C_{1,1},・・・,C_{1,I1}),(C_{2,0},C_{2,1},・・・,C_{2,I2}),・・・,(C_{k,0},C_{k,1},・・・,C_{k,Ik}),C_rs,C′)
C_{i,h} = F_3(F_2(DK,B′_i^h|i),rs)(+)r_i
C_rs = rs
C′ = F_4(r_1(+)・・・(+)r_k)(+)M
Ii = 2((i_m)−(i_1)+1)
具体的には、キーワード生成部525は、平文Mに対して形態素解析または自然言語処理などを行うことによって、平文Mからキーワードを抽出する。
但し、キーワード生成部525は、登録装置500に入力されるキーワードを入出力インタフェース504を介して受け付けてもよい。また、キーワード生成部525は、登録装置500において実行されるアプリケーションプログラムから、平文Mに関するキーワードを受け付けてもよい。
登録キーワードWは複数あってもよい。複数の登録キーワードWがある場合、各登録キーワードWに対して暗号化タグCTが生成される。
iは1以上k以下の整数である。hは0以上2((i_m)−(i_1)+1)−1以下の整数である。
まず、暗号化タグ生成部526は、汎化情報B^に含まれる汎化値B′_i^hと番号iとを連結する。得られるビット列が表す値を連結値B′_i^h|iと呼ぶ。
次に、暗号化タグ生成部526は、タグ鍵TKと連結値B′_i^h|iとを入力として関数F_2を実行する。得られる値を関数値(TK,B′_i^h|i)と呼ぶ。
次に、暗号化タグ生成部526は、関数値(TK,B′_i^h|i)と登録キーワードWとを入力として関数F_5を実行する。得られる値を関数値(TK,B′_i^h|i,W)と呼ぶ。
関数F_5は、関数F_1と関数F_2と同様に、擬似ランダム関数、ハッシュ関数または共通鍵暗号方式の関数である。
次に、暗号化タグ生成部526は、関数値(TK,B′_i^h|i,W)とタグ乱数群Rに含まれる乱数RSとを入力として関数F_6を実行する。得られる値を関数値(TK,B′_i^h|i,W,RS)と呼ぶ。
関数F_6は、関数F_5と同様に、擬似ランダム関数、ハッシュ関数または共通鍵暗号方式の関数である。
そして、暗号化タグ生成部526は、関数値(TK,B′_i^h|i,W,RS)とタグ乱数群Rに含まれる乱数R_iとの排他的論理和を算出する。得られる値が属性要素CT_{i,h}である。
まず、暗号化タグ生成部526は、タグ乱数群Rに含まれるk個の乱数(R_1,・・・,R_k)の排他的論理和を算出する。得られる値を乱数和R+と呼ぶ。
そして、暗号化タグ生成部526は、乱数和R+を入力として関数F_6を実行する。得られる値が検証要素CT_Vである。
関数F_7は、関数F_6と同様に、擬似ランダム関数、ハッシュ関数または共通鍵暗号方式の関数である。
CT = ((CT_{1,0},CT_{1,1},・・・,CT_{1,I1}),(CT_{2,0},CT_{2,1},・・・,CT_{2,I2}),・・・,(CT_{k,0},CT_{k,1},・・・,CT_{k,Ik}),CT_RS,CT_V)
CT_{i,h} = F_6(F_5(F_2(TK,B′_i^h|i),W),RS)(+)R_i
CT_RS = RS
CT_V = F_7(R_1(+)・・・(+)R_k)
Ii = 2((i_m)−(i_1)+1)
ファイル名File(M)と暗号文データCと暗号化タグCTとの組を「秘匿検索データ」と呼ぶ。
登録データベース791は、検索のためのデータベースであり、データ管理装置700の記憶部790に記憶される。
登録データベース791には、ファイル名File(M)と暗号文データCと暗号化タグCTとの組(秘匿検索データ)が登録される。
秘匿検索データは以下のように登録される。
登録部530は、通信装置505を用いて、秘匿検索データをデータ管理装置700へ送信する。データ管理装置700において、受付部710が秘匿検索データを受信し、管理部740が秘匿検索データを登録データベース791に登録する。
これにより、ファイル名File(M)と暗号文データCと暗号化タグCTとが互いに対応付けて保管される。
検索操作(S160)は、検索操作装置600によって実行される処理である。
例えば、受付部610は、通信装置605を用いて、ユーザ鍵装置400からユーザ鍵UKを受信する。受付部610は、検索操作装置600に入力されるユーザ鍵UKを入出力インタフェース604を介して受け付けてもよい。
例えば、受付部610は、検索操作装置600に入力される検索キーワードwを入出力インタフェース604を介して受け付ける。受付部610は、検索操作装置600において実行されるアプリケーションプログラムから、検索キーワードwを受け付けてもよい。
UTK = (UTK_1,・・・,UTK_k,Tb_1,・・・,Tb_L)
L個のフラグ値{Tb_1,・・・,Tb_L}をフラグ情報Tbと呼ぶ。
ステップS1631において、集約フラグ生成部621は、フラグ情報Tbに含まれる複数のフラグ値を1組以上のブロックに集約する。これにより、集約フラグTb′が生成される。
集約フラグTb′は、集約後のフラグ情報Tbである。
集約フラグTb′の各ブロックは、1つ以上のフラグ値で構成される。
集約フラグTb′の各ブロックが示す値を集約値と呼ぶ。
集約フラグTb′のための集約方法は、集約情報A′(図11のステップS143を参照)と集約情報B′(図14のステップS154を参照)のための集約方法と同じである。
Tb′ = (Tb′_1,・・・,Tb′_k)
Tb′_i = (Tb_(i_1)|Tb_(i_2)|・・・|Tb_(i_m)
i_1<・・・<i_m、及び、i_1+1=i_2,i_2+1=i_3,・・・,i_(m−1)+1=i_m、i_m+1=(i+1)_1が成り立つ。
Tb1′=(Tb1′_1,Tb1′_2)=(Tb1_1|Tb1_2,Tb1_3|Tb1_4)=(0|0,0|0)
Tb3′=(Tb3′_1,Tb3′_2)=(Tb3_1|Tb3_2,Tb3_3|Tb3_4)=(0|0,0|1)
Tb4′=(Tb4′_1,Tb4′_2)=(Tb4_1|Tb4_2,Tb4_3|Tb4_4)=(0|0,1|1)
具体的には、検索位置情報SPは1組以上の整数(i,h)を示す。
SP = ((1,SP1),・・・,(k,SPk))
SP_i = Tb′_(i_1)×20+Tb′_(i_2)×21+・・・+Tb′_(i_m)×2(i_m)−(i_1)+1
Tb1′=(Tb1′_1,Tb1′_2)=(Tb1_1|Tb1_2,Tb1_3|Tb1_4)=(0|0,0|0)
この場合、集約フラグTb1′に対応する検索位置情報SP1は以下のように表すことができる。
SP1 = (SP1_1,SP1_2)
SP1_1 = 0×20+0×21 = 0
SP1_2 = 0×20+0×21 = 0
Tb3′=(Tb3′_1,Tb3′_2)=(Tb3_1|Tb3_2,Tb3_3|Tb3_4)=(0|0,0|1)
この場合、集約フラグTb3′に対応する検索位置情報SP3は以下のように表すことができる。
SP3 = (SP3_1,SP3_2)
SP3_1 = 0×20+0×21 = 0
SP3_2 = 0×20+1×21 = 2
Tb4′=(Tb4′_1,Tb4′_2)=(Tb4_1|Tb4_2,Tb4_3|Tb4_4)=(0|0,1|1)
この場合、集約フラグTb4′に対応する検索位置情報SP4は以下のように表すことができる。
SP4 = (SP4_1,SP4_2)
SP4_1 = 0×20+0×21 = 0
SP4_2 = 1×20+1×21 = 3
検索クエリ生成部623は、タグ属性鍵UTK_iと検索キーワードwとを入力として関数F_5を実行する。得られる値が属性キーワード要素SQ_iである。
属性キーワード要素SQ_iは、暗号化された検索キーワードw(暗号化キーワード)である。
検索クエリ生成部623は、検索位置情報SPからi番目の要素SP_iを抽出する。抽出される要素SP_iが検索位置要素SQP_iである。
SQ = ((SQ_1,SQP_1),・・・,(SQ_k,SQP_k))
SQ_i = F_5(UTK_i,w)
SQP_i = SP_i
ステップS164において、要求部630は、通信装置605を用いて、検索クエリSQをデータ管理装置700へ送信する。
暗号化検索結果{C}は、検索クエリSQに合致する暗号文データCの集合である。
検索結果{M}は、検索クエリSQに合致する平文Mの集合である。
UDK = (UDK_1,・・・,UDK_k,Db_1,・・・,Db_L)
L個のフラグ値{Db_1,・・・,Db_L}をフラグ情報Dbと呼ぶ。
ステップS1661において、集約フラグ生成部641は、フラグ情報Dbに含まれる複数のフラグ値を1組以上のブロックに集約する。これにより、集約フラグDb′が生成される。
集約フラグDb′は、集約後のフラグ情報Dbである。
集約フラグDb′の各ブロックは、1つ以上のフラグ値で構成される。
集約フラグDb′の各ブロックが示す値を集約値と呼ぶ。
集約フラグDb′のための集約方法は、集約フラグTb′(図17のステップS1631を参照)と同じである。
Db′ = (Db′_1,・・・,Db′_k)
Db′_i = (Db_(i_1)|Db_(i_2)|・・・|Db_(i_m)
i_1<・・・<i_m、及び、i_1+1=i_2,i_2+1=i_3,・・・,i_(m−1)+1=i_m、i_m+1=(i+1)_1が成り立つ
具体的には、復号位置情報DPは1組以上の整数(i,h)を示す。
DP = ((1,DP_1),・・・,(k,DP_k))
DP_i = Db′_(i_1)×20+Db′_(i_2)×21+・・・+Db′_(i_m)×2(i_m)−(i_1)+1
具体的には、検索結果復号部643は、暗号化検索結果{C}の各暗号文データCから平文Mを復号する。
まず、復号部640は、ユーザデータ鍵UDKに含まれるデータ属性鍵UDK_iと暗号文データCに含まれる乱数要素C_rsとを入力として関数F_3を実行する。得られる値を関数値(UDK_i,C_rs)と呼ぶ。
次に、復号部640は、暗号文データCからk個の属性要素(C_{1,DP_1},・・・,C_{k,DP_k})を選択する。DP_iは復号位置情報DPに含まれる値である。
次に、復号部640は、関数値(UDK_i,C_rs)と属性要素C_{i,DP_i}との排他的論理和を算出する。得られる値を抽出乱数r_i^と呼ぶ。
次に、復号部640は、k個の抽出乱数(r_1^,・・・,r_k^)の排他的論理和を算出する。得られる値を乱数和r^+と呼ぶ。
次に、復号部640は、乱数和r^+を入力として関数F_4を実行する。得られる値を関数値(r^+)と呼ぶ。
そして、復号部640は、関数値(r^+)と暗号文データCに含まれる暗号文C′との排他的論理和を算出する。得られる値が平文Mである。
M = F_4(r_1^(+)・・・(+)r_k^)(+)C′
r_i^ = F_3(UDK_i,C_rs)(+)C_{i,DP_i}
ステップS167において、出力部650は検索結果{M}を出力する。
例えば、出力部650は、入出力インタフェース604を介して、検索結果{M}をディスプレイに表示する。
検索結果{M}が得られなかった場合、出力部650は、検索結果{M}の代わりに、検索エラーメッセージを出力する。
検索エラーメッセージは、秘匿検索でヒットした平文Mが無いことを示す。
データ検索(S170)は、データ管理装置700によって実行される処理である。
検索クエリSQに合致する各暗号化タグCTを「該当暗号化タグCT」と呼ぶ。
まず、照合部721は、暗号化タグCTからk個の属性要素(CT_{1,SQP_1},・・・,CT_{k,SQP_k})を選択する。SQP_iは検索クエリSQに含まれる要素である。
次に、照合部721は、検索クエリSQに含まれる属性キーワード要素SQ_iと暗号化タグCTに含まれる乱数要素CT_RSとを入力として関数F_6を実行する。得られる値を関数値(SQ_i,CT_RS)と呼ぶ。
次に、照合部721は、関数値(SQ_i,CT_RS)と属性要素CT_{i,SQP_i}との排他的論理和を算出する。得られる値を抽出乱数R_i^と呼ぶ。
次に、照合部721は、k個の抽出乱数(R_1^,・・・,R_k^)の排他的論理和を算出する。得られる値を乱数和R^+と呼ぶ。
次に、照合部721は、乱数和R^+を入力として関数F_7を実行する。得られる値を関数値(R^+)と呼ぶ。
そして、照合部721は、関数値(R^+)を暗号化タグCTに含まれる検証要素CT_Vと比較する。
関数値(R^+)と検証要素CT_Vの一致は、暗号化タグCTに埋め込まれた登録キーワードWが属性情報Aと一致して、且つ、検索クエリSQに埋め込まれた検索キーワードwが属性情報Bと一致することを意味する。
関数値(R^+)と一致する検証要素CT_Vを有する暗号化タグCTが該当暗号化タグCTである。
CT_V = F_7(R_1^(+)・・・(+)R_k^)
R_i^ = F_6(SQ_i,CT_RS)(+)CT_{i,SQP_i}
暗号化検索結果{C}は、該当暗号文データCの集合である。
データ削除(S180)は、登録装置500とデータ管理装置700とによって実行される処理である。但し、登録装置500の代わりに検索操作装置600が動作してもよい。
例えば、受付部510は、登録装置500に入力される削除ファイル名を入出力インタフェース504を介して受け付ける。受付部510は、登録装置500において実行されるアプリケーションプログラムから、削除ファイル名を受け付けてもよい。
但し、検索操作装置600の受付部610が削除ファイル名を受け付けてもよい。
但し、検索操作装置600の出力部650が通信装置605を用いて削除ファイル名をデータ管理装置700へ送信してもよい。
削除ファイル名に対応する秘匿検索データは、削除ファイル名と同じファイル名File(M)を有する。
実施の形態1によって以下のような効果を奏する。
暗号文を復号することなくキーワード検索ができる。
利用者の属性情報毎に異なる鍵を生成できる。そのため、マルチユーザ型の共通鍵方式を構成できる。
利用者の鍵を用いて暗号文の復号権限を制御できる。鍵に含まれる属性情報を分離しにくいため、複数の正規ユーザによる結託攻撃に対する耐性を向上できる。つまり、マルチユーザ型の共通鍵方式の安全性を向上できる。
属性情報の中の複数の属性値がいくつかのブロックに集約された後に鍵が生成される。これにより、鍵の長さを属性情報に比例しないように抑えることができる。
検索位置情報および復号位置情報を生成することによって、検索および復号を効率化することができる。
ユーザ鍵装置400は、属性情報をいくつかの部分にまとめてベクトル化したデータ(集約情報、汎化情報)を不可逆変換してユーザ鍵を生成する。
登録装置500は、このユーザ鍵を用いて暗号文データおよび暗号化タグを生成する。
検索操作装置600は、このユーザ鍵を用いて検索クエリを生成する。
これにより、結託攻撃に対してマルチユーザ型の共通鍵方式の安全性が向上する。
図21に基づいて、マスター鍵装置200のハードウェア構成を説明する。
マスター鍵装置200は処理回路209を備える。
処理回路209は、受付部210と生成部220と出力部230とを実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
登録鍵装置300は処理回路309を備える。
処理回路309は、受付部310と生成部320と出力部330とを実現するハードウェアである。
処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
ユーザ鍵装置400は処理回路409を備える。
処理回路409は、受付部410と生成部420と出力部430とを実現するハードウェアである。
処理回路409は、専用のハードウェアであってもよいし、メモリ402に格納されるプログラムを実行するプロセッサ401であってもよい。
登録装置500は処理回路509を備える。
処理回路509は、受付部510と生成部520と登録部530とを実現するハードウェアである。
処理回路509は、専用のハードウェアであってもよいし、メモリ502に格納されるプログラムを実行するプロセッサ501であってもよい。
検索操作装置600は処理回路609を備える。
処理回路609は、受付部610と生成部620と要求部630と復号部640と出力部650とを実現するハードウェアである。
処理回路609は、専用のハードウェアであってもよいし、メモリ602に格納されるプログラムを実行するプロセッサ601であってもよい。
データ管理装置700は処理回路709を備える。
処理回路709は、受付部710と検索部720と出力部730と管理部740とを実現するハードウェアである。
処理回路709は、専用のハードウェアであってもよいし、メモリ702に格納されるプログラムを実行するプロセッサ701であってもよい。
Claims (8)
- 平文と、前記平文を参照する権限を有する利用者の複数の属性を識別する複数の属性値を示す属性情報と、検索クエリを生成するためのユーザ鍵の生成時に使用される鍵と同じ登録鍵と、を受け付ける受付部と、
前記属性情報に含まれる複数の属性値を集約することによって、それぞれに1つ以上の属性値で構成される1つ以上の集約値を示す集約情報を生成する集約情報生成部と、
前記集約情報に含まれる各集約値に対して集約値の中のゼロ個以上の属性値を代替するゼロ個以上のワイルドカードと集約値の中の残りの属性値とで構成される汎化値を複数生成し、前記集約情報に含まれる各集約値に対する複数の汎化値を示す汎化情報を生成する汎化情報生成部と、
前記平文と前記属性情報と前記汎化情報と前記登録鍵とを用いて、暗号化された前記平文を含んだ暗号文データを生成する暗号文データ生成部と、
前記平文に関するキーワードと前記属性情報と前記汎化情報と前記登録鍵とを用いて、暗号化された前記キーワードを含んだ暗号化タグを生成する暗号化タグ生成部と、
前記暗号文データと前記暗号化タグとの組をデータベースに登録する登録部と、
を備える登録装置。 - 検索キーワードとユーザ鍵とを受け付ける受付部と、
前記検索キーワードと前記ユーザ鍵に含まれるユーザタグ鍵とを用いて検索クエリを生成する生成部と、
を備え、
前記ユーザタグ鍵は、利用者の複数の属性を識別する複数の属性値に基づく複数のフラグ値と、前記複数の属性値を集約することによって生成される1つ以上の集約値に基づく1つ以上のタグ属性鍵と、を有し、
前記生成部は、
前記ユーザタグ鍵に含まれる前記複数のフラグ値を集約することによって、それぞれに1つ以上のフラグ値で構成される1つ以上の集約値を示す検索用の集約フラグを生成し、
データベースに暗号文データと共に登録される暗号化タグに含まれる複数の属性要素のうち検索時に使用される1つ以上の属性要素を特定する検索位置情報を、前記検索用の集約フラグを用いて生成し、
前記検索キーワードと前記ユーザタグ鍵に含まれる前記1つ以上のタグ属性鍵と前記検索位置情報とを用いて前記検索クエリを生成する
検索操作装置。 - 前記検索操作装置は、
前記検索クエリを送信し、前記検索クエリに合致する暗号文データを含んだ暗号化検索結果を受信する要求部と、
前記ユーザ鍵に含まれるユーザデータ鍵を用いて、前記暗号化検索結果に含まれる前記暗号文データから平文を復号する復号部と、
を備え、
前記ユーザデータ鍵は、前記複数の属性値に基づく複数のフラグ値と、前記複数の属性値を集約することによって生成される1つ以上の集約値に基づく1つ以上のデータ属性鍵と、を有し、
前記復号部は、
前記ユーザデータ鍵に含まれる前記複数のフラグ値を集約することによって、それぞれに1つ以上のフラグ値で構成される1つ以上の集約値を示す復号用の集約フラグを生成し、
前記暗号化検索結果の中の前記暗号文データに含まれる複数の属性要素のうち復号時に使用される1つ以上の属性要素を特定する復号位置情報を、前記復号用の集約フラグを用いて生成し、
前記ユーザデータ鍵に含まれる前記1つ以上のデータ属性鍵と前記復号位置情報とを用いて、前記暗号化検索結果に含まれる前記暗号文データから前記平文を復号する
請求項2に記載の検索操作装置。 - 暗号文データと複数の属性要素を有する暗号化タグとの組が複数登録されるデータベースを管理するデータ管理装置であって、
暗号化キーワードと検索位置情報とを有する検索クエリを受信する受付部と、
前記検索クエリを各暗号化タグと照合する照合部と、
前記検索クエリに合致する暗号化タグに対応する暗号文データを含んだ暗号化検索結果を送信する出力部と、
を備え、
前記検索位置情報は、各暗号化タグに含まれる複数の属性要素のうち検索時に使用される1つ以上の属性要素を特定する情報であり、
前記照合部は、前記検索位置情報によって特定される1つ以上の属性要素を各暗号化タグから選択し、各暗号化タグから選択された1つ以上の属性要素と前記検索クエリに含まれる前記暗号化キーワードとを用いて前記検索クエリを各暗号化タグと照合する
データ管理装置。 - 平文と、前記平文を参照する権限を有する利用者の複数の属性を識別する複数の属性値を示す属性情報と、検索クエリを生成するためのユーザ鍵の生成時に使用される鍵と同じ登録鍵と、を受け付ける受付処理と、
前記属性情報に含まれる複数の属性値を集約することによって、それぞれに1つ以上の属性値で構成される1つ以上の集約値を示す集約情報を生成する集約情報生成処理と、
前記集約情報に含まれる各集約値に対して集約値の中のゼロ個以上の属性値を代替するゼロ個以上のワイルドカードと集約値の中の残りの属性値とで構成される汎化値を複数生成し、前記集約情報に含まれる各集約値に対する複数の汎化値を示す汎化情報を生成する汎化情報生成処理と、
前記平文と前記属性情報と前記汎化情報と前記登録鍵とを用いて、暗号化された前記平文を含んだ暗号文データを生成する暗号文データ生成処理と、
前記平文に関するキーワードと前記属性情報と前記汎化情報と前記登録鍵とを用いて、暗号化された前記キーワードを含んだ暗号化タグを生成する暗号化タグ生成処理と、
前記暗号文データと前記暗号化タグとの組をデータベースに登録する登録処理と、
をコンピュータに実行させるための登録プログラム。 - 検索キーワードとユーザ鍵とを受け付ける受付処理と、
前記検索キーワードと前記ユーザ鍵に含まれるユーザタグ鍵とを用いて検索クエリを生成する生成処理と、
をコンピュータに実行させるための検索操作プログラムであって、
前記ユーザタグ鍵は、利用者の複数の属性を識別する複数の属性値に基づく複数のフラグ値と、前記複数の属性値を集約することによって生成される1つ以上の集約値に基づく1つ以上のタグ属性鍵と、を有し、
前記生成処理は、
前記ユーザタグ鍵に含まれる前記複数のフラグ値を集約することによって、それぞれに1つ以上のフラグ値で構成される1つ以上の集約値を示す検索用の集約フラグを生成し、
データベースに暗号文データと共に登録される暗号化タグに含まれる複数の属性要素のうち検索時に使用される1つ以上の属性要素を特定する検索位置情報を、前記検索用の集約フラグを用いて生成し、
前記検索キーワードと前記ユーザタグ鍵に含まれる前記1つ以上のタグ属性鍵と前記検索位置情報とを用いて前記検索クエリを生成する
検索操作プログラム。 - 前記検索操作プログラムは、
前記検索クエリを送信し、前記検索クエリに合致する暗号文データを含んだ暗号化検索結果を受信する要求処理と、
前記ユーザ鍵に含まれるユーザデータ鍵を用いて、前記暗号化検索結果に含まれる前記暗号文データから平文を復号する復号処理と、
をコンピュータに実行させるためのプログラムであり、
前記ユーザデータ鍵は、前記複数の属性値に基づく複数のフラグ値と、前記複数の属性値を集約することによって生成される1つ以上の集約値に基づく1つ以上のデータ属性鍵と、を有し、
前記復号処理は、
前記ユーザデータ鍵に含まれる前記複数のフラグ値を集約することによって、それぞれに1つ以上のフラグ値で構成される1つ以上の集約値を示す復号用の集約フラグを生成し、
前記暗号化検索結果の中の前記暗号文データに含まれる複数の属性要素のうち復号時に使用される1つ以上の属性要素を特定する復号位置情報を、前記復号用の集約フラグを用いて生成し、
前記ユーザデータ鍵に含まれる前記1つ以上のデータ属性鍵と前記復号位置情報とを用いて、前記暗号化検索結果に含まれる前記暗号文データから前記平文を復号する
請求項6に記載の検索操作プログラム。 - 暗号文データと複数の属性要素を有する暗号化タグとの組が複数登録されるデータベースを管理するために、
暗号化キーワードと検索位置情報とを有する検索クエリを受信する受付処理と、
前記検索クエリを各暗号化タグと照合する照合処理と、
前記検索クエリに合致する暗号化タグに対応する暗号文データを含んだ暗号化検索結果を送信する出力処理と、
をコンピュータに実行させるためのデータ管理プログラムであって、
前記検索位置情報は、各暗号化タグに含まれる複数の属性要素のうち検索時に使用される1つ以上の属性要素を特定する情報であり、
前記照合処理は、前記検索位置情報によって特定される1つ以上の属性要素を各暗号化タグから選択し、各暗号化タグから選択された1つ以上の属性要素と前記検索クエリに含まれる前記暗号化キーワードとを用いて前記検索クエリを各暗号化タグと照合する
データ管理プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/000894 WO2021144848A1 (ja) | 2020-01-14 | 2020-01-14 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021144848A1 JPWO2021144848A1 (ja) | 2021-07-22 |
JP6987330B1 true JP6987330B1 (ja) | 2021-12-22 |
Family
ID=76864569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021558992A Active JP6987330B1 (ja) | 2020-01-14 | 2020-01-14 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11902418B2 (ja) |
JP (1) | JP6987330B1 (ja) |
CN (1) | CN114945963A (ja) |
DE (1) | DE112020005557B4 (ja) |
WO (1) | WO2021144848A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114629644A (zh) * | 2022-03-29 | 2022-06-14 | 贝壳找房网(北京)信息技术有限公司 | 数据加密方法、存储介质、计算机程序产品和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019142651A1 (ja) * | 2018-01-17 | 2019-07-25 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004297778A (ja) | 2003-03-07 | 2004-10-21 | Canon Inc | 画像データ暗号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 |
US8634553B2 (en) | 2007-11-05 | 2014-01-21 | Sumitomo Electric Industries, Ltd. | Encryption key generation device |
JP2009135871A (ja) | 2007-11-05 | 2009-06-18 | Sumitomo Electric Ind Ltd | 暗号鍵生成方法 |
EP2146504A1 (en) | 2008-07-18 | 2010-01-20 | Thomson Licensing, Inc. | Method and device for key generation |
JP6054790B2 (ja) * | 2013-03-28 | 2016-12-27 | 三菱スペース・ソフトウエア株式会社 | 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム |
US20140372433A1 (en) * | 2013-06-12 | 2014-12-18 | The Patent Box, Llc | Analysis of Event Driven Information |
WO2017122326A1 (ja) | 2016-01-14 | 2017-07-20 | 三菱電機株式会社 | 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム |
CN110140161B (zh) | 2017-01-12 | 2023-02-17 | 三菱电机株式会社 | 加密标签生成装置、检索查询生成装置和隐匿检索系统 |
DE112018007433T5 (de) | 2018-05-08 | 2020-12-31 | Mitsubishi Electric Corporation | Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm |
DE112018007468T5 (de) | 2018-05-15 | 2021-01-21 | Mitsubishi Electric Corporation | Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren |
DE112020005626T5 (de) * | 2020-01-14 | 2022-09-01 | Mitsubishi Electric Corporation | Durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungsverfahren und durchsuchbares verschlüsselungsprogramm |
-
2020
- 2020-01-14 CN CN202080091858.7A patent/CN114945963A/zh active Pending
- 2020-01-14 DE DE112020005557.4T patent/DE112020005557B4/de active Active
- 2020-01-14 JP JP2021558992A patent/JP6987330B1/ja active Active
- 2020-01-14 WO PCT/JP2020/000894 patent/WO2021144848A1/ja active Application Filing
-
2022
- 2022-05-23 US US17/750,902 patent/US11902418B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019142651A1 (ja) * | 2018-01-17 | 2019-07-25 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
DE112020005557B4 (de) | 2023-09-28 |
CN114945963A (zh) | 2022-08-26 |
US20220286271A1 (en) | 2022-09-08 |
US11902418B2 (en) | 2024-02-13 |
JPWO2021144848A1 (ja) | 2021-07-22 |
DE112020005557T5 (de) | 2022-09-01 |
WO2021144848A1 (ja) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11652608B2 (en) | System and method to protect sensitive information via distributed trust | |
US9977918B2 (en) | Method and system for verifiable searchable symmetric encryption | |
JP6910477B2 (ja) | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム | |
US10361840B2 (en) | Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program | |
WO2015108052A1 (ja) | 検索可能暗号処理システムおよび検索可能暗号処理方法 | |
JP7325396B2 (ja) | データファイル暗号化送受信システム及びデータファイル暗号化送受信方法 | |
WO2019053788A1 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JP6289768B2 (ja) | 暗号化装置、暗号化プログラム及び暗号化方法 | |
JP6987330B1 (ja) | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム | |
CN117744120B (zh) | 一种多用户可搜索加密方法及系统 | |
US12216787B2 (en) | Searchable encryption system, searchable encryption method, and non-transitory computer-readable recording medium | |
WO2022153394A1 (ja) | 秘匿検索システムおよび秘匿検索方法 | |
JP7573797B1 (ja) | 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、登録要求方法、登録要求プログラム、検索要求方法、検索要求プログラム、データ管理方法及びデータ管理プログラム | |
CN116830181A (zh) | 服务提供系统 | |
JP7217836B1 (ja) | データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム | |
JP2023046369A (ja) | データ共有システム、データ共有方法およびデータ共有プログラム | |
CN119311644A (zh) | 一种基于硬件加密卡的同态加密密文检索方法及系统 | |
Anju et al. | Removal of Duplicates and Similarity Checking Using Bi-Gram Approach with Jaccard Index in Cloud Data Storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211001 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20211001 |
|
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: 20211102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6987330 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |