JP5255154B1 - Crypto system capable of partial match search - Google Patents

Crypto system capable of partial match search Download PDF

Info

Publication number
JP5255154B1
JP5255154B1 JP2012281891A JP2012281891A JP5255154B1 JP 5255154 B1 JP5255154 B1 JP 5255154B1 JP 2012281891 A JP2012281891 A JP 2012281891A JP 2012281891 A JP2012281891 A JP 2012281891A JP 5255154 B1 JP5255154 B1 JP 5255154B1
Authority
JP
Japan
Prior art keywords
block
encryption
data
character string
character
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
JP2012281891A
Other languages
Japanese (ja)
Other versions
JP2014126621A (en
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 株式会社エアー
Priority to JP2012281891A priority Critical patent/JP5255154B1/en
Application granted granted Critical
Publication of JP5255154B1 publication Critical patent/JP5255154B1/en
Publication of JP2014126621A publication Critical patent/JP2014126621A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成する暗号化装置および暗号化プログラムを得る。
【解決手段】 ブロックデータ生成部62は、(a1)暗号化対象文字列から連続的に1文字ずつ順番に選択し、(a2)選択した文字から連続する所定複数文字長の文字列をブロック文字列として暗号化対象文字列から抽出し、(a3)抽出したブロック文字列のデータから暗号化ブロック長のブロックデータを生成する。この暗号化ブロック長は、ブロック文字列の最大データ長以上の所定のデータ長である。暗号化処理部63は、ブロック暗号化方式でブロックデータを暗号化する。暗号データ生成部64は、暗号化対象文字列から得られる複数のブロック文字列に対応する暗号化されたブロックデータを結合して、暗号化対象文字列に対する暗号データを生成する。
【選択図】 図2
PROBLEM TO BE SOLVED: To obtain an encryption device and an encryption program for generating encryption data that can secure encryption strength that can withstand practical use and that can be partially matched.
A block data generating unit (a1) sequentially selects one character at a time from a character string to be encrypted in order, and (a2) selects a character string having a predetermined plural character length from a selected character as a block character. A block is extracted from the encryption target character string, and (a3) block data having an encrypted block length is generated from the extracted block character string data. The encrypted block length is a predetermined data length that is equal to or greater than the maximum data length of the block character string. The encryption processing unit 63 encrypts block data using a block encryption method. The encryption data generation unit 64 combines encrypted block data corresponding to a plurality of block character strings obtained from the encryption target character string, and generates encryption data for the encryption target character string.
[Selection] Figure 2

Description

本発明は、部分一致検索の可能な暗号システムに関するものである。   The present invention relates to an encryption system capable of partial match search.

近年のクラウドコンピューティングの普及などによって、ユーザのデータが、サービス提供者のシステム内のデータベースに保存されることが多くなってきている。   With the spread of cloud computing in recent years, user data is often stored in a database in a service provider's system.

そのようなシステムでは、サービス提供者側においてデータベースにアクセスすることでユーザのデータを読み出しデータの内容を取得することができてしまう。そのため、サービス提供者側に悪意者がいると、データベースに保存されているユーザの秘密情報が漏洩してしまう可能性がある。   In such a system, by accessing the database on the service provider side, the user data can be read and the contents of the data can be acquired. Therefore, if there is a Service-to-Self on the service provider side, there is a possibility that the confidential information of the user stored in the database will be leaked.

そこで、ユーザデータを暗号化した上でデータベースに保存する技術が提案されている。暗号化されたユーザデータが保存されているデータベースにおいて、暗号化されたユーザデータを復号することなく検索を行う場合、検索キーを暗号化した上でデータベース検索を行うことで、検索キーと完全に一致するデータを発見する完全一致検索は可能であるが、一般的に、検索キーに一部がヒットするデータを発見する部分一致検索は困難である。   Therefore, a technique for encrypting user data and storing it in a database has been proposed. In a database where encrypted user data is stored, when searching without decrypting the encrypted user data, the search key is encrypted and then the database search is performed. Although an exact match search that finds matching data is possible, in general, a partial match search that finds data that partially hits the search key is difficult.

その点を鑑みて、特許文献1に記載のシステムでは、単一換字式暗号(つまり、単一の換字テーブルを使用する換字式暗号)で1文字ずつデータを変換し、変換後のデータを暗号化データとして保存し、検索キーも同一の単一換字式暗号で1文字ずつ変換し、変換後の検索キーで部分一致検索を行っている。   In view of this point, in the system described in Patent Document 1, data is converted character by character by single substitution encryption (that is, substitution encryption using a single substitution table), and the converted data is encrypted. The search key is also converted character by character with the same single substitution cipher, and a partial match search is performed with the converted search key.

また、特許文献2に記載のシステムでは、暗号化された文書の他に、単一換字式暗号(シーザー暗号)で変換した索引情報をサーバに登録しておき、検索時には、検索キーを同一の単一換字式暗号で変換した上で、索引情報の部分一致検索を行っている。   In addition, in the system described in Patent Document 2, index information converted by single substitution type encryption (Caesar encryption) is registered in the server in addition to the encrypted document, and the same search key is used for the search. A partial match search of index information is performed after conversion using a single substitution cipher.

特開2002−108910号公報JP 2002-108910 A 特開2002−278970号公報JP 2002-278970 A

しかしながら、上述の技術では、いずれも、単一換字式暗号を使用しており、1文字単位での暗号化になっているため、実用に耐え得る暗号強度を確保できない。また、別の暗号方式で1文字ずつ暗号化をしたとしても、原データのデータ長が1文字長と短いため、暗号を解読されやすい。   However, all of the above-described techniques use single substitutional encryption and are encrypted in units of one character, so that it is impossible to secure a cryptographic strength that can withstand practical use. Further, even if encryption is performed character by character using another encryption method, since the data length of the original data is as short as one character, the encryption is easily deciphered.

本発明は、上記の問題に鑑みてなされたものであり、実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成する暗号化装置および暗号化プログラムを得ることを目的とする。   The present invention has been made in view of the above problems, and provides an encryption device and an encryption program that generate encrypted data that can ensure practically sufficient encryption strength and that can be partially matched. With the goal.

上記の課題を解決するために、本発明では以下のようにした。   In order to solve the above problems, the present invention is configured as follows.

本発明に係る暗号化装置は、ブロックデータ生成部と、暗号化処理部と、暗号データ生成部とを備える。ブロックデータ生成部は、(a1)同一の方法で暗号化データが生成される被検索文字列および検索キーのいずれかである暗号化対象文字列から連続的に1文字ずつ順番に選択し、(a2)選択した文字から連続する所定複数文字長の文字列をブロック文字列として暗号化対象文字列から抽出し、(a3)抽出したブロック文字列のデータから暗号化ブロック長のブロックデータを生成する。この暗号化ブロック長は、ブロック文字列の最大データ長以上の所定のデータ長である。暗号化処理部は、暗号化ブロック長単位で暗号化を行うブロック暗号化方式で、ブロックデータ生成部により得られたブロックデータを暗号化する。暗号データ生成部は、暗号化対象文字列から得られる複数のブロック文字列に対応する暗号化されたブロックデータを結合して、暗号化対象文字列に対する暗号データを生成する。 An encryption apparatus according to the present invention includes a block data generation unit, an encryption processing unit, and an encryption data generation unit. The block data generation unit (a1) sequentially selects one character at a time from the character string to be encrypted that is one of the character string to be searched and the search key for which encrypted data is generated by the same method, a2) A character string having a predetermined plurality of characters continuous from the selected character is extracted as a block character string from the character string to be encrypted, and (a3) block data having an encrypted block length is generated from the extracted block character string data. . The encrypted block length is a predetermined data length that is equal to or greater than the maximum data length of the block character string. The encryption processing unit encrypts block data obtained by the block data generation unit by a block encryption method in which encryption is performed in units of encrypted block length. The encryption data generation unit combines encrypted block data corresponding to a plurality of block character strings obtained from the encryption target character string to generate encryption data for the encryption target character string.

これにより、複数文字長のブロック文字列が含まれるブロックデータが十分な暗号化ブロック長でブロック暗号化されるので、実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成することができる。   As a result, block data containing a block character string with multiple character lengths is block-encrypted with a sufficient encryption block length, so that the encryption strength that can withstand practical use can be secured and partial matching search is possible. Data can be generated.

また、本発明に係る暗号化装置は、上記の暗号化装置に加え、次のようにしてもよい。この場合、暗号化装置は、暗号化対象特定部をさらに備える。暗号化対象特定部は、データベースのテーブルおよびそのテーブル内のカラムを暗号化対象として指定する暗号化対象情報を取得し、データベースへのレコードの登録時に、そのレコード内で、暗号化対象情報により指定されたカラムの文字列を、暗号化対象文字列として特定する。   In addition to the above-described encryption apparatus, the encryption apparatus according to the present invention may be configured as follows. In this case, the encryption device further includes an encryption target specifying unit. The encryption target identification unit obtains the encryption target information that specifies the database table and the columns in the table as the encryption target, and specifies the encryption target information in the record when registering the record in the database. The character string of the designated column is specified as the character string to be encrypted.

これにより、特定のカラムの文字列だけを、部分一致検索が可能で暗号データとすることができる。   As a result, only the character string of the specific column can be partially matched and can be used as encrypted data.

また、本発明に係る暗号化装置は、上記の暗号化装置に加え、次のようにしてもよい。この場合、暗号化対象特定部は、データベースでの検索時に、暗号化対象情報に基づいて、暗号化対象文字列となる検索キーを特定する。   In addition to the above-described encryption apparatus, the encryption apparatus according to the present invention may be configured as follows. In this case, the encryption target specifying unit specifies a search key to be an encryption target character string based on the encryption target information when searching in the database.

これにより、平文の検索キーを与えても、必要に応じて検索キーが選択的に暗号化され、データベース内の暗号データを復号することなく部分一致検索を行うことができる。   Thus, even when a plain text search key is given, the search key is selectively encrypted as necessary, and a partial match search can be performed without decrypting the encrypted data in the database.

また、本発明に係る暗号化装置は、上記の暗号化装置に加え、次のようにしてもよい。この場合、暗号化装置は、データベースでの検索時にヒットしたレコード内で暗号化対象情報により指定されたカラムの暗号データを復号する復号部をさらに備える。そして、復号部は、暗号ブロックデータ抽出部と、復号処理部と、平文データ生成部とを有する。暗号ブロックデータ抽出部は、暗号データから、暗号化ブロック長の複数の暗号ブロックデータを抽出する。復号処理部は、暗号化処理部の暗号方式に対応する復号方式で暗号ブロックデータを復号する。平文データ生成部は、(b1)複数の暗号ブロックデータから復号処理部による復号で得られたデータからブロック文字列をそれぞれ抽出し、(b2)抽出した複数のブロック文字列から、暗号データに対する平文データを生成する。   In addition to the above-described encryption apparatus, the encryption apparatus according to the present invention may be configured as follows. In this case, the encryption apparatus further includes a decryption unit that decrypts the encrypted data of the column specified by the encryption target information in the record hit at the time of searching in the database. The decryption unit includes an encryption block data extraction unit, a decryption processing unit, and a plaintext data generation unit. The encryption block data extraction unit extracts a plurality of encryption block data having an encryption block length from the encryption data. The decryption processing unit decrypts the encrypted block data by a decryption method corresponding to the encryption method of the encryption processing unit. The plaintext data generation unit (b1) extracts block character strings from the data obtained by decryption by the decryption processing unit from the plurality of cipher block data, and (b2) plaintext for the cipher data from the extracted block character strings. Generate data.

これにより、検索でヒットしたレコード内の暗号データを復号した上で、検索結果としてユーザ等に提示することができる。   As a result, the encrypted data in the record hit by the search can be decrypted and presented to the user as a search result.

また、本発明に係る暗号化装置は、上記の暗号化装置に加え、次のようにしてもよい。この場合、暗号化ブロック長は、ブロック文字列の最大データ長より長い所定のデータ長であり、ブロックデータ生成部は、ブロック文字列のデータにパディングをしてブロックデータを生成する。   In addition to the above-described encryption apparatus, the encryption apparatus according to the present invention may be configured as follows. In this case, the encrypted block length is a predetermined data length longer than the maximum data length of the block character string, and the block data generation unit generates block data by padding the block character string data.

これにより、暗号化ブロック長が長く暗号強度の高い暗号化方式を採用することができる。   As a result, an encryption method having a long encryption block length and high encryption strength can be employed.

また、本発明に係る暗号化装置は、上記の暗号化装置に加え、次のようにしてもよい。この場合、上述のブロック文字列の文字長は、2文字であり、暗号化処理部のブロック暗号化方式は、換字式暗号ではない共通鍵暗号化方式である。   In addition to the above-described encryption apparatus, the encryption apparatus according to the present invention may be configured as follows. In this case, the character length of the block character string is two characters, and the block encryption method of the encryption processing unit is a common key encryption method that is not a substitution type encryption.

本発明に係る暗号化プログラムは、コンピュータを、上述のブロックデータ生成部、上述の暗号化処理部、および上述の暗号データ生成部として機能させるものである。   An encryption program according to the present invention causes a computer to function as the block data generation unit, the encryption processing unit, and the encryption data generation unit.

本発明によれば、実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成することができる暗号化装置および暗号化プログラムを得ることができる。   According to the present invention, it is possible to obtain an encryption device and an encryption program that can ensure encryption strength that can be practically used and can generate encrypted data that can be partially matched.

図1は、本発明の実施の形態に係るシステムの構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a system according to an embodiment of the present invention. 図2は、図1におけるプロキシ装置の構成例を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration example of the proxy device in FIG. 図3は、図1におけるプロキシ装置の動作について説明するフローチャートである。FIG. 3 is a flowchart for explaining the operation of the proxy device in FIG. 図4は、図3におけるステップS3,S6の暗号化処理の詳細を説明するフローチャートである。FIG. 4 is a flowchart for explaining details of the encryption processing in steps S3 and S6 in FIG. 図5は、図1におけるデータベースサーバにより管理されるテーブルの一例を示す図である。FIG. 5 is a diagram showing an example of a table managed by the database server in FIG. 図6は、図3におけるステップS3,S6の暗号化処理により生成される一連のデータを説明する図である。FIG. 6 is a diagram for explaining a series of data generated by the encryption processing in steps S3 and S6 in FIG. 図7は、図3におけるステップS9の復号処理の詳細を説明するフローチャートである。FIG. 7 is a flowchart illustrating details of the decoding process in step S9 in FIG. 図8は、図3のステップS6における検索キーについての暗号化処理により生成される一連のデータを説明する図である。FIG. 8 is a diagram for explaining a series of data generated by the encryption process for the search key in step S6 of FIG.

以下、図に基づいて本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

実施の形態1. Embodiment 1 FIG.

図1は、本発明の実施の形態に係るシステムの構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of a system according to an embodiment of the present invention.

図1に示すシステムでは、サーバ装置1が、ゲートウェイ2を介してインターネットなどのネットワーク3に接続しており、アプリケーションサーバ11を稼動している。なお、サーバ装置1は、コンピュータを内蔵しており、コンピュータでプログラムを実行することで、アプリケーションサーバ11を稼動している。   In the system shown in FIG. 1, a server apparatus 1 is connected to a network 3 such as the Internet via a gateway 2 and operates an application server 11. The server device 1 has a built-in computer, and the application server 11 is operated by executing a program on the computer.

アプリケーションサーバ11は、フロントエンドのサーバであって、ネットワーク3を介して、SaaS(Software as a Service)方式で各種サービスをユーザに提供するサービス提供部12と、サービス提供部12により提供されるサービスにおけるユーザデータを管理するデータ管理部13とを有する。   The application server 11 is a front-end server, and a service providing unit 12 that provides various services to the user via a network 3 by a software as a service (SaaS) method, and a service provided by the service providing unit 12 And a data management unit 13 for managing user data.

このサーバ装置1には、サーバ装置4、およびプロキシ装置5が例えばLAN(Local Area Network)を介して接続されている。プロキシ装置5は、本発明の暗号化装置の一実施の形態である。また、ユーザの操作するユーザ端末装置6が、ゲートウェイ7を介してネットワーク3に接続されており、アプリケーションサーバ11は、ユーザ端末装置6からの要求に応じて各種処理を実行する。   A server device 4 and a proxy device 5 are connected to the server device 1 via, for example, a LAN (Local Area Network). The proxy device 5 is an embodiment of the encryption device of the present invention. A user terminal device 6 operated by the user is connected to the network 3 via the gateway 7, and the application server 11 executes various processes in response to requests from the user terminal device 6.

データ管理部13により管理されるユーザデータは、サーバ装置4におけるバックエンドのデータベースサーバ21に登録され保持される。データベースサーバ21は、レコードの登録、読み出し、検索などの各種コマンドを受け付け、受け付けたコマンドに対応する処理を実行し、処理結果をそのコマンドの応答として送信する。なお、サーバ装置4は、コンピュータを内蔵しており、コンピュータでプログラムを実行することで、データベースサーバ21を稼動している。   User data managed by the data management unit 13 is registered and held in the back-end database server 21 in the server device 4. The database server 21 accepts various commands such as record registration, reading, and search, executes processing corresponding to the accepted command, and transmits the processing result as a response to the command. The server device 4 has a built-in computer, and the database server 21 is operated by executing a program on the computer.

実施の形態1では、データ管理部13とデータベースサーバ21との間で、プロキシ装置5がプロキシとして動作する。   In the first embodiment, the proxy device 5 operates as a proxy between the data management unit 13 and the database server 21.

データ管理部13は、データベースサーバ21の仕様に適合するコマンドを送信し、プロキシ装置5は、そのコマンドをデータ管理部13から受信し、コマンド内の暗号化対象部分を暗号化した上で、そのコマンドをデータベースサーバ21へ送信し、そのコマンドに対する応答をデータベースサーバ21から受信し、その応答における復号対象部分を復号した上で、その応答をデータ管理部13へ送信する。   The data management unit 13 transmits a command that conforms to the specifications of the database server 21, and the proxy device 5 receives the command from the data management unit 13, encrypts the encryption target part in the command, The command is transmitted to the database server 21, a response to the command is received from the database server 21, the part to be decoded in the response is decoded, and the response is transmitted to the data management unit 13.

データ管理部13とデータベースサーバ21との間で使用されるプロトコル、並びにデータ管理部13およびデータベースサーバ21は、プロキシ装置5に拘わらず、既存のものを使用可能である。   The protocol used between the data management unit 13 and the database server 21 and the existing data management unit 13 and database server 21 can be used regardless of the proxy device 5.

そして、プロキシ装置5は、データ管理部13から登録コマンドを受信すると、その登録コマンドによって登録されるデータに、指定されたテーブルの、指定されたカラムに登録される文字列が含まれる場合、その文字列を、データベースサーバ21によって部分一致検索が可能な暗号データに置換した上でそのコマンドをデータベースサーバ21へ送信する。   Then, when the proxy device 5 receives the registration command from the data management unit 13, if the data registered by the registration command includes a character string registered in the specified column of the specified table, the proxy device 5 After the character string is replaced with encrypted data that can be partially matched by the database server 21, the command is transmitted to the database server 21.

また、プロキシ装置5は、データ管理部13から検索コマンドを受信すると、部分一致検索時には、検索キーを暗号化した上で、検索コマンドをデータベースサーバ21へ送信し、検索結果としてヒットしたレコードをデータベースサーバ21から受信すると、その検索結果のレコードに含まれる、指定されたテーブルの、指定されたカラムの暗号データを復号し、復号された元の文字列を含む検索結果のレコードをデータ管理部13へ送信する。   In addition, when the proxy device 5 receives the search command from the data management unit 13, at the time of partial match search, the proxy device 5 encrypts the search key, transmits the search command to the database server 21, and records the hit record as the search result in the database. When received from the server 21, the encrypted data in the specified column of the specified table included in the search result record is decrypted, and the search result record including the decrypted original character string is stored in the data management unit 13. Send to.

図2は、図1におけるプロキシ装置5の構成例を示すブロック図である。   FIG. 2 is a block diagram illustrating a configuration example of the proxy device 5 in FIG.

プロキシ装置5は、コンピュータを内蔵しており、そのコンピュータは、プロセッサであるCPU(Central Processing Unit)31、不揮発性メモリであるROM(Read Only Memory)32、主記憶装置であるRAM(Random Access Memory)33、ハードディスクドライブ、SSD(Solid State Drive)などの補助記憶装置34、およびネットワークインターフェイスなどといった通信装置35を有する。   The proxy device 5 includes a computer. The computer includes a CPU (Central Processing Unit) 31 that is a processor, a ROM (Read Only Memory) 32 that is a nonvolatile memory, and a RAM (Random Access Memory) that is a main storage device. ) 33, a hard disk drive, an auxiliary storage device 34 such as an SSD (Solid State Drive), and a communication device 35 such as a network interface.

ROM32または補助記憶装置34に記憶されているプログラムをRAM33にロードし、CPU31で実行することで、各種処理部が実現される。この処理部は、RAM33にデータを一時的に記憶しつつ処理を実行する。   Various processing units are realized by loading a program stored in the ROM 32 or the auxiliary storage device 34 into the RAM 33 and executing it by the CPU 31. This processing unit executes processing while temporarily storing data in the RAM 33.

実施の形態1では、暗号化プログラム41に基づいて、通信処理部51、暗号化部52および復号部53が実現される。   In the first embodiment, a communication processing unit 51, an encryption unit 52, and a decryption unit 53 are realized based on the encryption program 41.

通信処理部51は、通信装置35を制御してネットワーク通信を、データ管理部13およびデータベースサーバ21との間で行う。   The communication processing unit 51 controls the communication device 35 to perform network communication between the data management unit 13 and the database server 21.

暗号化部52は、暗号化対象を特定し、特定した暗号化対象を暗号化し、暗号化対象を、暗号化後の暗号化対象に置換する。暗号化部52は、暗号化対象特定部61、ブロックデータ生成部62、暗号化処理部63、および暗号データ生成部64を有する。   The encryption unit 52 identifies the encryption target, encrypts the identified encryption target, and replaces the encryption target with the encrypted encryption target. The encryption unit 52 includes an encryption target specifying unit 61, a block data generation unit 62, an encryption processing unit 63, and an encryption data generation unit 64.

暗号化対象特定部61は、データベースサーバ21によるデータベースのテーブルおよびそのテーブル内のカラムを暗号化対象として指定する暗号化対象情報をアプリケーションサーバ11から取得し、そのデータベースへのレコードの登録時に、そのレコード内で、暗号化対象情報により指定されたカラムの文字列を、暗号化対象文字列として特定する。なお、アプリケーションサーバ11は、ユーザ端末装置6から指定されたユーザ設定などによって暗号化対象情報を事前に特定している。   The encryption target specifying unit 61 acquires from the application server 11 encryption target information that designates a database table and a column in the table by the database server 21 as an encryption target, and at the time of registering the record in the database, In the record, the character string of the column specified by the encryption target information is specified as the encryption target character string. Note that the application server 11 specifies the encryption target information in advance by a user setting specified from the user terminal device 6.

また、暗号化対象特定部61は、そのデータベースでの検索時に、検索コマンドにおける検索キーを暗号化対象文字列として特定する。なお、暗号化対象特定部61は、検索コマンドによる検索対象が、暗号化対象情報により指定されたカラムである場合、検索キーを暗号化対象文字列とし、そうではない場合には、検索キーを暗号化対象文字列とはしない。   Further, the encryption target specifying unit 61 specifies the search key in the search command as an encryption target character string when searching in the database. If the search target by the search command is a column specified by the encryption target information, the encryption target specifying unit 61 sets the search key as an encryption target character string. It is not a character string to be encrypted.

ブロックデータ生成部62は、(a1)暗号化対象文字列の先頭から連続的に1文字ずつ順番に選択し、(a2)選択した文字を先頭とする所定複数文字長の文字列をブロック文字列として暗号化対象文字列から抽出し、(a3)抽出したブロック文字列のデータから暗号化ブロック長のブロックデータを生成する。   The block data generation unit 62 (a1) sequentially selects one character at a time from the beginning of the character string to be encrypted, and (a2) selects a character string having a predetermined multiple character length starting from the selected character as a block character string. And (a3) block data having an encrypted block length is generated from the extracted block character string data.

この暗号化ブロック長は、ブロック文字列の最大データ長以上の所定のデータ長である。例えば、ブロック文字列の文字長は、2文字であり、文字が1バイト文字または2バイト文字である場合、ブロック文字列の最大データ長は4バイトとなる。なお、各文字のデータ長は、例えば、使用されている文字コードの種別から特定される。   The encrypted block length is a predetermined data length that is equal to or greater than the maximum data length of the block character string. For example, the character length of the block character string is 2 characters, and when the character is a 1-byte character or a 2-byte character, the maximum data length of the block character string is 4 bytes. Note that the data length of each character is specified from, for example, the type of character code being used.

暗号化処理部63は、所定の暗号化ブロック長単位で暗号化を行うブロック暗号化方式で、ブロックデータ生成部62により得られたブロックデータを暗号化する。   The encryption processing unit 63 encrypts the block data obtained by the block data generation unit 62 by a block encryption method in which encryption is performed in units of a predetermined encryption block length.

暗号データ生成部64は、暗号化対象文字列から抽出される複数のブロック文字列から得られる複数の暗号ブロックデータを結合して、暗号化対象文字列に対する暗号データを生成する。   The encryption data generation unit 64 combines a plurality of encryption block data obtained from a plurality of block character strings extracted from the encryption target character string to generate encryption data for the encryption target character string.

この実施の形態1では、暗号化ブロック長は、ブロック文字列の最大データ長より長い所定のデータ長であり、ブロックデータ生成部は、ブロック文字列のデータにパディングをしてブロックデータを生成する。   In the first embodiment, the encrypted block length is a predetermined data length longer than the maximum data length of the block character string, and the block data generating unit generates block data by padding the block character string data. .

この実施の形態1では、上述のブロック文字列の文字長は2文字であり、暗号方式としては、鍵長が128ビット、192ビットおよび256ビットのいずれかであり、暗号化ブロック長が128ビットであるAES(Advanced Encryption Standard)方式が使用される。ただし、ブロック文字列の文字長は、3文字以上としてもよく、暗号化処理部63の暗号化方式は、換字式暗号ではない別の共通鍵暗号方式(暗号鍵を使用したビット演算による攪拌を行う現代暗号方式)としてもよい。また、暗号化処理部63の暗号化方式としては、暗号化ブロック長が8ビットの倍数であるものが使用される。また、例えば、暗号化処理部63の暗号鍵は、ユーザごとに設定され、プロキシ装置5内に保存される。   In the first embodiment, the block character string has a character length of 2 characters, and the encryption method has a key length of 128 bits, 192 bits or 256 bits, and an encryption block length of 128 bits. AES (Advanced Encryption Standard) method is used. However, the character length of the block character string may be 3 characters or more, and the encryption method of the encryption processing unit 63 is another common key encryption method that is not a substitution type encryption (agitation by bit operation using an encryption key). Modern encryption method). As the encryption method of the encryption processing unit 63, an encryption block length whose multiple is a multiple of 8 bits is used. For example, the encryption key of the encryption processing unit 63 is set for each user and stored in the proxy device 5.

復号部53は、復号対象の暗号データを特定し、特定した暗号データを復号し、復号対象の暗号データを、復号後の平文データに置換する。復号部53は、データベースでの検索時にヒットしたレコード内で暗号化対象情報により指定されたカラムの暗号データを復号する。復号部53は、復号対象特定部71、暗号ブロックデータ抽出部72、復号処理部73、および平文データ生成部74を有する。   The decrypting unit 53 identifies the encrypted data to be decrypted, decrypts the identified encrypted data, and replaces the decrypted encrypted data with the plaintext data after decryption. The decrypting unit 53 decrypts the encrypted data in the column designated by the encryption target information in the record hit during the search in the database. The decryption unit 53 includes a decryption target identification unit 71, an encrypted block data extraction unit 72, a decryption processing unit 73, and a plaintext data generation unit 74.

復号対象特定部71は、上述の暗号化対象情報に基づいて、そのレコード内で、暗号化対象情報により指定されたカラムの暗号データを、復号対象の暗号データとして特定する。   Based on the above-described encryption target information, the decryption target specifying unit 71 specifies the encrypted data of the column designated by the encryption target information in the record as the decryption target encrypted data.

暗号ブロックデータ抽出部72は、復号対象特定部71により特定された暗号データから、暗号化ブロック長の複数の暗号ブロックデータを抽出する。   The encryption block data extraction unit 72 extracts a plurality of encryption block data having an encryption block length from the encryption data specified by the decryption target specification unit 71.

復号処理部73は、抽出された暗号ブロックデータを、暗号化処理部63の暗号化方式に対応する復号方式で復号する。   The decryption processing unit 73 decrypts the extracted encrypted block data with a decryption method corresponding to the encryption method of the encryption processing unit 63.

平文データ生成部74は、(b1)複数の暗号ブロックデータから復号処理部73による復号で得られたデータからブロック文字列をそれぞれ抽出し、(b2)抽出した複数のブロック文字列から、暗号データに対する平文データを生成する。   The plaintext data generation unit 74 (b1) extracts block character strings from the data obtained by the decryption by the decryption processing unit 73 from the plurality of encrypted block data, and (b2) encrypts the encrypted data from the extracted block character strings. Generate plain text data for.

次に、上記プロキシ装置5の動作について説明する。   Next, the operation of the proxy device 5 will be described.

図3は、図1におけるプロキシ装置5の動作について説明するフローチャートである。   FIG. 3 is a flowchart for explaining the operation of the proxy device 5 in FIG.

通信処理部51は、データベースサーバ21宛てのコマンドをデータ管理部13から受信すると(ステップS1)、そのコマンドが登録コマンドであるか否かを判定する(ステップS2)。   When receiving a command addressed to the database server 21 from the data management unit 13 (step S1), the communication processing unit 51 determines whether or not the command is a registration command (step S2).

そのコマンドが登録コマンドである場合、暗号化部52は、登録対象のレコードについて暗号化処理を実行し(ステップS3)、通信処理部51は、暗号化処理後の登録コマンドを、データベースサーバ21へ送信する(ステップS4)。データベースサーバ21は、その登録コマンドに従って、暗号化処理後のレコードをデータベースに登録する。   If the command is a registration command, the encryption unit 52 executes encryption processing for the record to be registered (step S3), and the communication processing unit 51 sends the registration command after encryption processing to the database server 21. Transmit (step S4). The database server 21 registers the encrypted record in the database according to the registration command.

そのコマンドが登録コマンドではない場合、通信処理部51は、そのコマンドが検索コマンドであるか否かを判定する(ステップS5)。   If the command is not a registration command, the communication processing unit 51 determines whether or not the command is a search command (step S5).

そのコマンドが検索コマンドである場合、暗号化部52は、検索キーに対する暗号化処理を実行し(ステップS6)、通信処理部51は、暗号化処理後の検索コマンドを、データベースサーバ21へ送信する(ステップS7)。データベースサーバ21は、その検索コマンドに従って、暗号化された検索キーで検索を実行し、ヒットしたレコードをデータベースから読み出し、応答データとして送信する。   If the command is a search command, the encryption unit 52 executes encryption processing for the search key (step S6), and the communication processing unit 51 transmits the search command after the encryption processing to the database server 21. (Step S7). The database server 21 performs a search with the encrypted search key in accordance with the search command, reads the hit record from the database, and transmits it as response data.

通信処理部51は、その検索コマンドに対する応答データをデータベースサーバ21から受信すると(ステップS8)、応答データについての復号処理を実行し(ステップS10)、復号処理後の応答データを、データ管理部13へ送信する(ステップS10)。   When the communication processing unit 51 receives response data for the search command from the database server 21 (step S8), the communication processing unit 51 executes a decoding process for the response data (step S10), and the response data after the decoding process is sent to the data management unit 13. (Step S10).

なお、通信処理部51は、受信したコマンドが暗号化処理および復号処理が必要とされないコマンドである場合には、そのコマンドをそのままデータベースサーバ21へ送信し、そのコマンドに対する応答をデータベースサーバ21から受信すると、そのままデータ管理部13へ転送する(ステップS11)。   If the received command is a command that does not require encryption processing and decryption processing, the communication processing unit 51 transmits the command to the database server 21 as it is, and receives a response to the command from the database server 21. Then, it transfers to the data management part 13 as it is (step S11).

ここで、ステップS3,S6での暗号化処理の詳細を説明する。   Here, details of the encryption processing in steps S3 and S6 will be described.

図4は、図3におけるステップS3,S6の暗号化処理の詳細を説明するフローチャートである。図5は、図1におけるデータベースサーバ21により管理されるテーブルの一例を示す図である。図6は、図3におけるステップS3,S6の暗号化処理により生成される一連のデータを説明する図である。   FIG. 4 is a flowchart for explaining details of the encryption processing in steps S3 and S6 in FIG. FIG. 5 is a diagram showing an example of a table managed by the database server 21 in FIG. FIG. 6 is a diagram for explaining a series of data generated by the encryption processing in steps S3 and S6 in FIG.

ステップS3,S6の暗号化処理では、まず、暗号化対象特定部61が、受信したコマンドにおいて暗号化対象(登録コマンドにおける特定のテーブルの特定のカラム、検索コマンドにおける特定のレコードの特定のカラムについての検索キーなど)が存在するか否かを判定する(ステップS21)。受信したコマンドにおいて暗号化対象が存在しない場合、この暗号化処理はスキップされる。   In the encryption processing of steps S3 and S6, first, the encryption target specifying unit 61 performs encryption on the received command (for a specific column of a specific table in a registration command and a specific column of a specific record in a search command). It is determined whether or not there is a search key (step S21). When there is no encryption target in the received command, this encryption process is skipped.

例えば、図5に示すアドレス帳テーブルの住所カラムが暗号化の対象に指定されている場合において、アドレス帳テーブルに対してレコードを登録する登録コマンド、およびアドレス帳テーブルの住所カラムについての検索コマンドが受信されると、受信したコマンドにおいて暗号化対象(レコード内の住所カラムの文字列、および検索キー)が存在すると判定される。   For example, when the address column of the address book table shown in FIG. 5 is designated as an encryption target, a registration command for registering a record in the address book table and a search command for the address column of the address book table are When received, it is determined that there is an encryption target (a character string in the address column in the record and a search key) in the received command.

受信したコマンドにおいて暗号化対象が存在する場合、ブロックデータ生成部62は、まず、暗号化対象の文字列の先頭文字を、ブロック端文字に設定する(ステップS22)。   If there is an encryption target in the received command, the block data generation unit 62 first sets the first character of the character string to be encrypted as the block end character (step S22).

例えば、図6に示す「東京都新宿区」という文字列101が暗号化対象である場合、先頭の「東」という文字が、1番目のブロック端文字102−1に設定される。   For example, when the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6 is an encryption target, the first character “east” is set as the first block end character 102-1.

次に、ブロックデータ生成部62は、ブロック端文字から始まる2文字をブロック文字列として抽出する(ステップS23)。   Next, the block data generation unit 62 extracts two characters starting from the block end character as a block character string (step S23).

例えば、図6に示すように、ブロック端文字102−1については、文字列101から、「東京」というブロック文字列103−1が抽出される。   For example, as illustrated in FIG. 6, for the block end character 102-1, a block character string 103-1 “Tokyo” is extracted from the character string 101.

そして、ブロックデータ生成部62は、抽出したブロック文字列の文字列データから、暗号化ブロック長のブロックデータを生成する(ステップS24)。   Then, the block data generation unit 62 generates block data having an encrypted block length from the extracted character string data of the block character string (step S24).

例えば、抽出した2文字がそれぞれ2バイト文字である場合、抽出した2文字の文字列データのデータ長は4バイトである。暗号化ブロック長が128ビット(=16バイト)である場合には、ブロックデータ生成部62は、図6に示すように、4バイトの文字列データに12バイトのパディングデータを結合して、16バイトのブロックデータ104−1を生成する。なお、パディングデータは、抽出した2文字に応じた所定のデータである。   For example, when the two extracted characters are each 2-byte characters, the data length of the extracted character string data of the two characters is 4 bytes. If the encrypted block length is 128 bits (= 16 bytes), the block data generation unit 62 combines 12 bytes of padding data with 4 bytes of character string data as shown in FIG. Byte block data 104-1 is generated. The padding data is predetermined data corresponding to the extracted two characters.

ブロックデータが生成されると、暗号化処理部63は、その暗号化ブロック長のブロックデータを暗号化し、暗号化ブロック長の暗号ブロックデータを生成する(ステップS25)。   When the block data is generated, the encryption processing unit 63 encrypts the encrypted block length block data, and generates encrypted block length encrypted block data (step S25).

これにより、例えば図6に示すように、文字列101内の1つの文字102−1に対して、その文字102−1のブロック文字列103−1に対応する1つの暗号ブロックデータ105−1が生成される。   Thereby, as shown in FIG. 6, for example, for one character 102-1 in the character string 101, one encrypted block data 105-1 corresponding to the block character string 103-1 of the character 102-1 is obtained. Generated.

暗号ブロックデータが生成されると、ブロックデータ生成部62は、現在設定されているブロック端文字が、暗号化対象の文字列の最後から2番目の文字であるか否かを判定する(ステップS26)。つまり、現時点のブロック端文字が、(暗号化対象の文字列の文字長−ブロック文字列の文字長+1)番目の文字であるか否かが判定される。   When the encrypted block data is generated, the block data generating unit 62 determines whether or not the currently set block end character is the second character from the end of the character string to be encrypted (step S26). ). That is, it is determined whether or not the current block end character is the (character length of encryption target character string−character length of block character string + 1) -th character.

現在設定されているブロック端文字が、暗号化対象の文字列の最後から2番目の文字ではない場合、ブロックデータ生成部62は、現在設定されているブロック端文字の次の文字を、ブロック端文字に設定する(ステップS27)。新たにブロック端文字が設定されると、そのブロック端文字についてステップS23以降の処理が実行される。   If the currently set block end character is not the second character from the end of the character string to be encrypted, the block data generation unit 62 sets the next character after the currently set block end character to the block end character. A character is set (step S27). When a block end character is newly set, the processing after step S23 is executed for the block end character.

例えば図6に示す「東京都新宿区」という文字列101において、先頭の「東」という文字が現時点のブロック端文字である場合、「京」という文字が新たにブロック端文字102−2に設定され、そのブロック端文字102−2に対応して、ブロック文字列103−2が抽出され、ブロックデータ104−2が生成され、暗号化ブロックデータ105−2が生成される。   For example, in the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6, when the first character “East” is the current block end character, the character “Kyo” is newly set as the block end character 102-2. Then, the block character string 103-2 is extracted corresponding to the block end character 102-2, the block data 104-2 is generated, and the encrypted block data 105-2 is generated.

同様に、「都」、「新」、および「宿」というブロック端文字102−3〜102−5が順番に設定され、それらのブロック端文字102−3〜102−5に対応して、それぞれ、ブロック文字列103−3〜103−5が抽出され、ブロックデータ104−3〜104−5が生成され、暗号化ブロックデータ105−3〜105−5が生成される。   Similarly, block end characters 102-3 to 102-5 such as “Me”, “New”, and “Hotel” are set in order, and corresponding to these block end characters 102-3 to 102-5, respectively. The block character strings 103-3 to 103-5 are extracted, block data 104-3 to 104-5 are generated, and encrypted block data 105-3 to 105-5 are generated.

そして、ステップS26において、現在設定されているブロック端文字が、暗号化対象の文字列の最後から2番目の文字である場合、暗号データ生成部64は、暗号化対象の文字列について生成したすべての暗号ブロックデータを結合して、暗号化対象に対する暗号データを生成し(ステップS28)、コマンド内の暗号化対象をその暗号データに置き換える(ステップS29)。   In step S26, when the currently set block end character is the second character from the end of the character string to be encrypted, the encrypted data generation unit 64 generates all of the character strings to be encrypted. The encryption block data is combined to generate encryption data for the encryption target (step S28), and the encryption target in the command is replaced with the encryption data (step S29).

例えば、図6に示す「東京都新宿区」という文字列101が暗号化対象である場合、5つのブロック文字列103−1〜103−5に対応する暗号ブロックデータ105−1〜105−5が、文字102−1〜102−5の順番に対応する順番で結合され、暗号データ106が生成される。   For example, when the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6 is an encryption target, encrypted block data 105-1 to 105-5 corresponding to five block character strings 103-1 to 103-5 are stored. Are combined in the order corresponding to the order of the characters 102-1 to 102-5, and the encrypted data 106 is generated.

このようにして、暗号化処理が行われる。   In this way, the encryption process is performed.

次に、ステップS9での復号処理の詳細を説明する。   Next, details of the decoding process in step S9 will be described.

図7は、図3におけるステップS9の復号処理の詳細を説明するフローチャートである。   FIG. 7 is a flowchart illustrating details of the decoding process in step S9 in FIG.

ステップS9の復号処理では、まず、復号対象特定部71が、受信された応答データにおいて復号対象(登録コマンドにおける特定のテーブルの特定のカラム)が存在するか否かを判定する(ステップS41)。受信したコマンドにおいて復号対象が存在しない場合、この復号処理はスキップされる。   In the decoding process of step S9, first, the decoding target specifying unit 71 determines whether or not there is a decoding target (a specific column of a specific table in the registration command) in the received response data (step S41). When there is no decoding target in the received command, this decoding process is skipped.

受信した応答データにおいて復号対象が存在する場合、暗号ブロックデータ抽出部72は、まず、復号対象の暗号データ内の先頭の暗号ブロックデータを抽出する(ステップS42)。例えば、図6に示す暗号データ106の場合、1番目の暗号ブロックデータ105−1が抽出される。   If there is a decryption target in the received response data, the cipher block data extraction unit 72 first extracts the top cipher block data in the decryption target cipher data (step S42). For example, in the case of the encrypted data 106 shown in FIG. 6, the first encrypted block data 105-1 is extracted.

暗号ブロックデータが抽出されると、復号処理部73は、暗号ブロックデータを復号し、暗号化ブロック長のブロックデータを生成する(ステップS43)。   When the encrypted block data is extracted, the decryption processing unit 73 decrypts the encrypted block data and generates block data having an encrypted block length (step S43).

平文データ生成部74は、そのブロックデータに含まれる上述の2文字のブロック文字列を抽出する(ステップS44)。   The plaintext data generation unit 74 extracts the above-described two-character block character string included in the block data (step S44).

例えば、図6に示す例では、復号によって暗号ブロックデータ105−1からブロックデータ104−1が生成され、ブロックデータ104−1の先頭の4バイトから2文字のブロック文字列103−1(「東京」)が抽出される。   For example, in the example shown in FIG. 6, the block data 104-1 is generated from the encrypted block data 105-1 by decryption, and the block character string 103-1 (“Tokyo” from the first 4 bytes of the block data 104-1 is generated. )) Is extracted.

このように、1つの暗号ブロックデータに対応する平文のブロック文字列が特定されると、暗号ブロックデータ抽出部72は、現時点の暗号ブロックデータが、復号対象の暗号データ内の最後の暗号ブロックデータであるか否かを判定する(ステップS45)。   When the plaintext block character string corresponding to one piece of cipher block data is specified in this way, the cipher block data extraction unit 72 determines that the current cipher block data is the last cipher block data in the cipher data to be decrypted. It is determined whether or not (step S45).

現時点の暗号ブロックデータが、復号対象の暗号データ内の最後の暗号ブロックデータではない場合、暗号ブロックデータ抽出部72は、現時点の暗号ブロックデータの次の暗号ブロックデータを復号対象から抽出する(ステップS46)。新たに暗号ブロックデータが抽出されると、その暗号ブロックデータについてステップS43以降の処理が実行される。   If the current cipher block data is not the last cipher block data in the cipher data to be decrypted, the cipher block data extraction unit 72 extracts the cipher block data next to the current cipher block data from the decryption target (step S46). When new encryption block data is extracted, the processes after step S43 are executed for the encryption block data.

そして、復号対象の暗号データ内のすべての暗号ブロックデータに対応するブロック文字列が特定されると、平文データ生成部74は、先頭の暗号ブロックデータから、最後から2番目の暗号ブロックデータまでについてのブロック文字列の先頭文字を結合し、さらに、最後の暗号ブロックデータについてのブロック文字列を結合して、復号対象の元の文字列を生成し(ステップS47)、応答データ内の復号対象をその文字列に置き換える(ステップS48)。   When the block character string corresponding to all the encrypted block data in the decrypted encryption data is specified, the plaintext data generation unit 74 starts from the first encrypted block data to the second encrypted block data from the last. Are combined with the first character of the block character string, and the block character string for the last encrypted block data is combined to generate the original character string to be decrypted (step S47). The character string is replaced (step S48).

例えば、図6に示す暗号データ106からは、5つの暗号ブロックデータ105−1〜105−5が抽出され、5つのブロック文字列103−1〜103−5(「東京」、「京都」、「都新」、「新宿」、および「宿区」)から、元の文字列101(「東京都新宿区」)が生成される。   For example, five encrypted block data 105-1 to 105-5 are extracted from the encrypted data 106 shown in FIG. 6, and five block character strings 103-1 to 103-5 (“Tokyo”, “Kyoto”, “ The original character string 101 (“Shinjuku-ku, Tokyo”) is generated from “Toshin”, “Shinjuku”, and “Suku-ku”).

このようにして、復号処理が行われる。   In this way, the decoding process is performed.

ここで、部分一致検索の具体的な例について説明する。   Here, a specific example of partial match search will be described.

ここでは、図6に示す「東京都新宿区」という文字列101に対応する暗号データ106がデータベースに登録されており、「新宿区」という検索キーで検索を行う場合について説明する。   Here, a case will be described in which encrypted data 106 corresponding to the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6 is registered in the database and a search is performed using a search key “Shinjuku-ku”.

図8は、図3のステップS6における検索キーについての暗号化処理により生成される一連のデータを説明する図である。   FIG. 8 is a diagram for explaining a series of data generated by the encryption process for the search key in step S6 of FIG.

検索コマンドにおいて「新宿区」という検索キー201が設定されている場合、図8に示すように、「新」というブロック端文字202−1について、「新宿」というブロック文字列203−1が検索キー201から抽出され、そのブロック文字列203−1に対応するブロックデータ204−1が生成され、ブロックデータ204−1が暗号化されて暗号ブロックデータ205−1が生成される。   When the search key 201 “Shinjuku-ku” is set in the search command, as shown in FIG. 8, the block character string 203-1 “Shinjuku” is the search key for the block end character 202-1 “new”. The block data 204-1 corresponding to the block character string 203-1 is generated from the data 201, and the block data 204-1 is encrypted to generate the encrypted block data 205-1.

同様に、「宿」というブロック端文字202−2について、「宿区」というブロック文字列203−2が検索キー201から抽出され、そのブロック文字列203−2に対応するブロックデータ204−2が生成され、ブロックデータ204−2が暗号化されて暗号ブロックデータ205−2が生成される。   Similarly, for the block end character 202-2 “inn”, a block character string 203-2 “juku-ku” is extracted from the search key 201, and block data 204-2 corresponding to the block character string 203-2 is obtained. The block data 204-2 is encrypted, and the encrypted block data 205-2 is generated.

そして、暗号ブロックデータ205−1,205−2が結合され、検索キー201に対応する暗号データ206が生成され、検索キー201が、暗号データ206に置き換えられる。   Then, the encrypted block data 205-1 and 205-2 are combined to generate encrypted data 206 corresponding to the search key 201, and the search key 201 is replaced with the encrypted data 206.

したがって、データベースサーバ21は、暗号データ206を検索キーとして検索を行う。   Therefore, the database server 21 performs a search using the encrypted data 206 as a search key.

図6に示すように、暗号データ106には、「新宿」というブロック文字列103−4の暗号ブロックデータ105−4と「宿区」というブロック文字列103−5の暗号ブロックデータ105−5とが連続した状態で含まれているため、データベースサーバ21において暗号データ206を検索キーとして検索を行うと、暗号データ106を含むレコードがヒットする。   As shown in FIG. 6, the encrypted data 106 includes encrypted block data 105-4 of a block character string 103-4 “Shinjuku” and encrypted block data 105-5 of a block character string 103-5 “Juku”. Therefore, when the database server 21 performs a search using the encrypted data 206 as a search key, a record including the encrypted data 106 is hit.

このように、検索コマンド中の検索キーを上述のように同一の方法で暗号化することで、部分一致検索が行える。   In this way, partial matching search can be performed by encrypting the search key in the search command by the same method as described above.

以上のように、上記実施の形態1によれば、ブロックデータ生成部62は、(a1)暗号化対象文字列から連続的に1文字ずつ順番にブロック端文字を選択し、(a2)選択したブロック端文字から連続する所定複数文字長のブロック文字列を暗号化対象文字列から抽出し、(a3)抽出したブロック文字列のデータから暗号化ブロック長のブロックデータを生成する。この暗号化ブロック長は、ブロック文字列の最大データ長以上の所定のデータ長である。暗号化処理部63は、暗号化ブロック長単位で暗号化を行うブロック暗号化方式で、ブロックデータ生成部62により得られたブロックデータを暗号化する。暗号データ生成部64は、暗号化対象文字列から得られる複数のブロック文字列に対応する暗号化されたブロックデータを結合して、暗号化対象文字列に対する暗号データを生成する。   As described above, according to the first embodiment, the block data generation unit 62 (a1) selects block end characters sequentially from the encryption target character string one character at a time, and (a2) selects them. A block character string having a predetermined plurality of characters continuous from the block end character is extracted from the encryption target character string, and (a3) block data having an encrypted block length is generated from the extracted block character string data. The encrypted block length is a predetermined data length that is equal to or greater than the maximum data length of the block character string. The encryption processing unit 63 encrypts the block data obtained by the block data generation unit 62 by a block encryption method that performs encryption in units of encrypted block length. The encryption data generation unit 64 combines encrypted block data corresponding to a plurality of block character strings obtained from the encryption target character string, and generates encryption data for the encryption target character string.

これにより、複数文字長のブロック文字列が含まれるブロックデータが十分な暗号化ブロック長でブロック暗号化されるので、実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成し、データベースサーバ21によるデータベースにおいて使用することができる。   As a result, block data containing a block character string with multiple character lengths is block-encrypted with a sufficient encryption block length, so that the encryption strength that can withstand practical use can be secured and partial matching search is possible. Data can be generated and used in a database by the database server 21.

実施の形態2. Embodiment 2. FIG.

本発明の実施の形態2に係るシステムは、ゲートウェイ2に、プロキシ装置5の機能を持たせ、バックエンド側のプロキシ装置5を省略したものである。つまり、このシステムでは、ゲートウェイ2が、本発明の暗号化装置の一実施の形態である。   The system according to Embodiment 2 of the present invention is such that the gateway 2 has the function of the proxy device 5 and the back-end side proxy device 5 is omitted. That is, in this system, the gateway 2 is an embodiment of the encryption device of the present invention.

したがって、実施の形態2では、ゲートウェイ2を通過する登録コマンド、検索コマンド、およびその応答データが、実施の形態1と同様に処理される。なお、実施の形態2では、データ管理部13は、データベースサーバ21に直接アクセスする。   Therefore, in the second embodiment, the registration command, search command, and response data that pass through the gateway 2 are processed in the same manner as in the first embodiment. In the second embodiment, the data management unit 13 directly accesses the database server 21.

実施の形態3. Embodiment 3 FIG.

本発明の実施の形態3に係るシステムは、ユーザ側のゲートウェイ7またはユーザ端末装置6に、プロキシ装置5の機能を持たせ、バックエンド側のプロキシ装置5を省略したものである。つまり、このシステムでは、ゲートウェイ7またはユーザ端末装置6が、本発明の暗号化装置の一実施の形態である。   The system according to Embodiment 3 of the present invention is such that the user-side gateway 7 or the user terminal device 6 has the function of the proxy device 5 and the back-end side proxy device 5 is omitted. That is, in this system, the gateway 7 or the user terminal device 6 is an embodiment of the encryption device of the present invention.

したがって、実施の形態3では、ゲートウェイ7を通過する登録コマンド、検索コマンド、およびその応答データが、実施の形態1と同様に処理されるか、ユーザ端末装置6から登録コマンド、検索コマンド、およびその応答データが送信される際に、その登録コマンド、検索コマンド、およびその応答データが、実施の形態1と同様に処理される。なお、実施の形態3では、データ管理部13は、データベースサーバ21に直接アクセスする。   Therefore, in the third embodiment, the registration command, the search command, and the response data that pass through the gateway 7 are processed in the same manner as in the first embodiment, or the registration command, the search command, and When response data is transmitted, the registration command, search command, and response data are processed in the same manner as in the first embodiment. In the third embodiment, the data management unit 13 directly accesses the database server 21.

なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。   Each embodiment described above is a preferred example of the present invention, but the present invention is not limited to these, and various modifications and changes can be made without departing from the scope of the present invention. It is.

例えば、上記実施の形態1〜3において、ブロックデータ生成部62は、パディングする代わりに、可逆的な変換式によって、文字列データからブロックデータを生成するようにしてもよい。その場合、平文データ生成部74は、その変換式の逆演算を行って、ブロックデータから文字列を抽出する。   For example, in the first to third embodiments, the block data generation unit 62 may generate block data from character string data by a reversible conversion formula instead of padding. In that case, the plaintext data generation unit 74 performs reverse operation of the conversion formula to extract a character string from the block data.

また、上記実施の形態1〜3において、ブロックデータ生成部62は、パディングを、文字列の前または文字と文字の間に入れるようにしてもよい。   In the first to third embodiments, the block data generation unit 62 may insert padding before a character string or between characters.

また、上記実施の形態1〜3において、暗号化対象の文字列のうち、2文字(=ブロック文字列の文字長)以上の長さの文字列のみを、上述のようにして暗号化するようにしてもよい。ただし、その場合、暗号化対象が2文字(=ブロック文字列の文字長)の文字列である場合、完全一致検索となるので、実質的には、暗号化対象が3文字以上の文字列である場合について部分一致検索が可能となる。   In the first to third embodiments, only a character string having a length equal to or longer than two characters (= character length of a block character string) among character strings to be encrypted is encrypted as described above. It may be. However, in that case, if the encryption target is a character string of 2 characters (= character length of the block character string), the search is an exact match. Therefore, the encryption target is substantially a character string of 3 characters or more. Partial match search is possible for some cases.

また、上記実施の形態1〜3において、暗号化対象内の文字は、1バイト文字または2バイト文字であるが、3バイト文字や4バイト文字を使用可能としてもよい。その場合、使用可能な文字コードが予め決められるので、その文字コードに応じて、1文字のデータ長、ひいては、ブロック文字列の最大データ長を特定すればよい。   In the first to third embodiments, the character to be encrypted is a 1-byte character or a 2-byte character, but a 3-byte character or a 4-byte character may be usable. In this case, since usable character codes are determined in advance, the data length of one character, and hence the maximum data length of the block character string, may be specified according to the character code.

また、上記実施の形態1〜3において、ブロック端文字が、暗号化対象文字列の先頭から(暗号化対象文字列の文字長−ブロック文字列の文字長+1)番目の文字まで、順番に選択されているが、その代わりに、ブロック端文字を、暗号化対象文字列の「ブロック文字列の文字長」番目の文字から最後の文字まで順番に選択し、ブロック端文字から、暗号化対象文字列の先頭方向へ連続する「ブロック文字列の文字長」の文字列を、ブロック文字列としてもよい。   In the first to third embodiments, block end characters are selected in order from the beginning of the encryption target character string to the (character length of the encryption target character string−character length of the block character string + 1) -th character. Instead, block end characters are selected in order from the "character length of the block character string" th character to the last character of the character string to be encrypted, and from the block end character to the character to be encrypted. A character string of “character length of block character string” continuous in the head direction of the column may be used as a block character string.

この場合、例えば、図6に示す「東京都新宿区」という文字列101については、ブロック文字列の文字長が2文字とすると、ブロック端文字として、「京」、「都」、「新」、「宿」、および「区」が順番に選択され、それらに対応する「東京」、「京都」、「都新」、「新宿」、および「宿区」がブロック文字列として抽出される。つまり、上記実施の形態1〜3では、ブロック端文字は、ブロック文字列の先端の文字であるが、このように、ブロック端文字は、ブロック文字列の終端の文字でもよい。   In this case, for example, for the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6, if the character length of the block character string is two characters, “Kyo”, “Miyako”, “New” are used as block end characters. "Tokyo", "Kyoto", "Toshin", "Shinjuku", and "Yukujuku" are extracted as block character strings. That is, in the first to third embodiments, the block end character is the character at the front end of the block character string. However, the block end character may be the end character of the block character string.

また、上記実施の形態1〜3において、ブロック端文字が、暗号化対象文字列の先頭から(暗号化対象文字列の文字長−ブロック文字列の文字長+1)番目の文字まで、順番に選択されているが、その代わりに、ブロック端文字を、暗号化対象文字列の最後の文字から「ブロック文字列の文字長」番目の文字まで、逆順に選択し、ブロック端文字から、暗号化対象文字列の先頭方向へ連続する「ブロック文字列の文字長」の文字列を、ブロック文字列としてもよい。   In the first to third embodiments, block end characters are selected in order from the beginning of the encryption target character string to the (character length of the encryption target character string−character length of the block character string + 1) -th character. Instead, block end characters are selected in reverse order from the last character of the character string to be encrypted to the character length of the “character length of the block character string”. A character string of “character length of a block character string” continuous in the head direction of the character string may be a block character string.

この場合、例えば、図6に示す「東京都新宿区」という文字列101については、ブロック文字列の文字長が2文字とすると、ブロック端文字として、「区」、「宿」、「新」、「都」、および「京」が選択され、それらに対応する「宿区」、「新宿」、「都新」、「京都」、および「東京」がブロック文字列として抽出される。この場合、ブロック端文字は、ブロック文字列の終端の文字となっている。また、ブロック文字列内の文字の順序を、「区宿」、「宿新」、「新都」、「都京」、および「京東」と逆にしてもよい(この場合、ブロック端文字は、ブロック文字列の先端の文字となる)。   In this case, for example, for the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6, assuming that the character length of the block character string is two characters, “ku”, “inn”, “new” , “Miyako”, and “Kyo” are selected, and “Yado Ward”, “Shinjuku”, “Toshin”, “Kyoto”, and “Tokyo” corresponding to them are extracted as block character strings. In this case, the block end character is the end character of the block character string. In addition, the order of the characters in the block character string may be reversed as “kuyadojuku”, “yukushin”, “shinto”, “tokyo”, and “kyoto” (in this case, the block end character is , The first character of the block string).

また、上記実施の形態1〜3において、ブロック端文字が、暗号化対象文字列の先頭から(暗号化対象文字列の文字長−ブロック文字列の文字長+1)番目の文字まで、順番に選択されているが、その代わりに、ブロック端文字を、暗号化対象文字列の(暗号化対象文字列の文字長−ブロック文字列の文字長+1)番目の文字から先頭文字まで、逆順に選択し、ブロック端文字から、暗号化対象文字列の終端方向へ連続する「ブロック文字列の文字長」の文字列を、ブロック文字列としてもよい。   In the first to third embodiments, block end characters are selected in order from the beginning of the encryption target character string to the (character length of the encryption target character string−character length of the block character string + 1) -th character. Instead, block end characters are selected in reverse order from the character to be encrypted (character length of the character string to be encrypted-character length of the block character string +1) to the first character. A character string of “character length of the block character string” continuous from the block end character toward the end of the character string to be encrypted may be used as the block character string.

この場合、例えば、図6に示す「東京都新宿区」という文字列101については、ブロック文字列の文字長が2文字とすると、ブロック端文字として、「宿」、「新」、「都」、「京」、および「東」が選択され、それらに対応する「宿区」、「新宿」、「都新」、「京都」、および「東京」がブロック文字列として抽出される。この場合、ブロック端文字は、ブロック文字列の先端の文字となっている。また、ブロック文字列内の文字の順序を、「区宿」、「宿新」、「新都」、「都京」、および「京東」と逆にしてもよい(この場合、ブロック端文字は、ブロック文字列の終端の文字となる)。   In this case, for example, for the character string 101 “Shinjuku-ku, Tokyo” shown in FIG. 6, if the block character string has a character length of two characters, “inn”, “new”, “to” , “Kyo”, and “East” are selected, and “Yuku Ward”, “Shinjuku”, “Toshin”, “Kyoto”, and “Tokyo” corresponding to them are extracted as block character strings. In this case, the block end character is the leading character of the block character string. In addition, the order of the characters in the block character string may be reversed as “kuyadojuku”, “yukushin”, “shinto”, “tokyo”, and “kyoto” (in this case, the block end character is , The last character of the block string).

また、上記実施の形態1〜3において、暗号化プログラム41を可搬性のある記録媒体に記録し、その記録媒体から暗号化プログラム41がプロキシ装置5、ゲートウェイ2、ゲートウェイ7、ユーザ端末装置6などへインストールされるようにしてもよいし、暗号化プログラム41がネットワーク3上のサーバからダウンロードされてプロキシ装置5、ゲートウェイ2、ゲートウェイ7、ユーザ端末装置6などへインストールされるようにしてもよい。   In the first to third embodiments, the encryption program 41 is recorded on a portable recording medium, and the encryption program 41 is transferred from the recording medium to the proxy device 5, the gateway 2, the gateway 7, the user terminal device 6, and the like. Alternatively, the encryption program 41 may be downloaded from a server on the network 3 and installed in the proxy device 5, the gateway 2, the gateway 7, the user terminal device 6, and the like.

本発明は、例えば、クラウドコンピューティングにおけるユーザデータの暗号化に適用可能である。   The present invention can be applied to, for example, encryption of user data in cloud computing.

2,7 ゲートウェイ(暗号化装置の一例)
5 プロキシ装置(暗号化装置の一例)
6 ユーザ端末装置(暗号化装置の一例)
41 暗号化プログラム
53 復号部
61 暗号化対象特定部
62 ブロックデータ生成部
63 暗号化処理部
64 暗号データ生成部
72 暗号ブロックデータ抽出部
73 復号処理部
74 平文データ生成部
103−1〜103−5 ブロック文字列
104−1〜104−5 ブロックデータ
106 暗号データ
201 検索キー
2,7 Gateway (an example of an encryption device)
5 Proxy device (an example of an encryption device)
6 User terminal device (an example of an encryption device)
DESCRIPTION OF SYMBOLS 41 Encryption program 53 Decryption part 61 Encryption object specific | specification part 62 Block data generation part 63 Encryption process part 64 Encryption data generation part 72 Encryption block data extraction part 73 Decryption process part 74 Plain text data generation part 103-1 to 103-5 Block character string 104-1 to 104-5 Block data 106 Encrypted data 201 Search key

Claims (7)

(a1)同一の方法で暗号化データが生成される被検索文字列および検索キーのいずれかである暗号化対象文字列から連続的に1文字ずつ順番に選択し、(a2)選択した文字から連続する所定複数文字長の文字列をブロック文字列として前記暗号化対象文字列から抽出し、(a3)抽出した前記ブロック文字列のデータから、前記ブロック文字列の最大データ長以上の暗号化ブロック長を有するブロックデータを生成するブロックデータ生成部と、
前記暗号化ブロック長単位で暗号化を行うブロック暗号化方式で、前記ブロックデータ生成部により得られた前記ブロックデータを暗号化する暗号化処理部と、
前記暗号化対象文字列から得られる複数の前記ブロック文字列に対応する暗号化された前記ブロックデータを結合して、前記暗号化対象文字列に対する暗号データを生成する暗号データ生成部と、
を備えることを特徴とする暗号化装置。
(A1) sequentially select one character at a time from the character string to be encrypted that is one of the search target character string and the search key for which encrypted data is generated by the same method, and (a2) from the selected character A continuous character string having a plurality of character lengths is extracted from the encryption target character string as a block character string, and (a3) an encrypted block having a length equal to or greater than the maximum data length of the block character string from the extracted block character string data A block data generator for generating block data having a length;
An encryption processing unit that encrypts the block data obtained by the block data generation unit in a block encryption method that performs encryption in units of the encrypted block length;
An encrypted data generation unit that generates encrypted data for the encryption target character string by combining the encrypted block data corresponding to the plurality of block character strings obtained from the encryption target character string;
An encryption device comprising:
データベースのテーブルおよびそのテーブル内のカラムを暗号化対象として指定する暗号化対象情報を取得し、前記データベースへのレコードの登録時に、そのレコード内で、前記暗号化対象情報により指定されたカラムの文字列を、前記暗号化対象文字列として特定する暗号化対象特定部をさらに備えることを特徴とする請求項1記載の暗号化装置。   Get the encryption target information that specifies the database table and the columns in the table as the encryption target, and when registering the record in the database, the character of the column specified by the encryption target information in the record The encryption apparatus according to claim 1, further comprising: an encryption target specifying unit that specifies a string as the encryption target character string. 前記暗号化対象特定部は、前記データベースでの検索時に、前記暗号化対象情報に基づいて、前記暗号化対象文字列となる検索キーを特定することを特徴とする請求項2記載の暗号化装置。   3. The encryption apparatus according to claim 2, wherein the encryption target specifying unit specifies a search key to be the encryption target character string based on the encryption target information when searching in the database. . 前記データベースでの検索時にヒットしたレコード内で前記暗号化対象情報により指定されたカラムの暗号データを復号する復号部をさらに備え、
前記復号部は、
前記暗号データから、前記暗号化ブロック長の複数の暗号ブロックデータを抽出する暗号ブロックデータ抽出部と、
前記暗号化処理部の暗号化方式に対応する復号方式で前記暗号ブロックデータを復号する復号処理部と、
(b1)前記複数の暗号ブロックデータから前記復号処理部による復号で得られたデータから前記ブロック文字列をそれぞれ抽出し、(b2)抽出した複数の前記ブロック文字列から、前記暗号データに対する平文データを生成する平文データ生成部とを有すること、
を特徴とする請求項3記載の暗号化装置。
A decrypting unit for decrypting encrypted data of a column designated by the encryption target information in a record hit at the time of searching in the database;
The decoding unit
An encryption block data extraction unit for extracting a plurality of encryption block data of the encryption block length from the encryption data;
A decryption processing unit for decrypting the encrypted block data with a decryption method corresponding to the encryption method of the encryption processing unit;
(B1) Each of the block character strings is extracted from the data obtained by decryption by the decryption processing unit from the plurality of encrypted block data, and (b2) plaintext data for the encrypted data from the extracted plurality of block character strings. A plaintext data generation unit for generating
The encryption device according to claim 3.
前記暗号化ブロック長は、前記ブロック文字列の最大データ長より長い所定のデータ長であり、
前記ブロックデータ生成部は、前記ブロック文字列のデータにパディングをして前記ブロックデータを生成すること、
を特徴とする請求項1から請求項4のうちのいずれか1項記載の暗号化装置。
The encrypted block length is a predetermined data length longer than the maximum data length of the block character string,
The block data generation unit generates the block data by padding the block character string data;
The encryption device according to any one of claims 1 to 4, wherein:
前記ブロック文字列の文字長は、2文字であり、
前記暗号化処理部のブロック暗号化方式は、換字式暗号ではない共通鍵暗号化方式であること、
を特徴とする請求項1から請求項5のうちのいずれか1項記載の暗号化装置。
The block string has a character length of 2 characters,
The block encryption method of the encryption processing unit is a common key encryption method that is not a substitution encryption,
The encryption device according to claim 1, wherein:
コンピュータを、
(a1)同一の方法で暗号化データが生成される被検索文字列および検索キーのいずれかである暗号化対象文字列から連続的に1文字ずつ順番に選択し、(a2)選択した文字から連続する所定複数文字長の文字列をブロック文字列として前記暗号化対象文字列から抽出し、(a3)抽出した前記ブロック文字列のデータから、前記ブロック文字列の最大データ長以上の暗号化ブロック長を有するブロックデータを生成するブロックデータ生成部、
前記暗号化ブロック長単位で暗号化を行うブロック暗号化方式で、前記ブロックデータ生成部により得られた前記ブロックデータを暗号化する暗号化処理部、および
前記暗号化対象文字列から得られる複数の前記ブロック文字列に対応する暗号化された前記ブロックデータを結合して、前記暗号化対象文字列に対する暗号データを生成する暗号データ生成部
として機能させることを特徴とする暗号化プログラム。
Computer
(A1) sequentially select one character at a time from the character string to be encrypted that is one of the search target character string and the search key for which encrypted data is generated by the same method, and (a2) from the selected character A continuous character string having a plurality of character lengths is extracted from the encryption target character string as a block character string, and (a3) an encrypted block having a length equal to or greater than the maximum data length of the block character string from the extracted block character string data A block data generator for generating block data having a length;
In a block encryption method that performs encryption in units of the encrypted block length, an encryption processing unit that encrypts the block data obtained by the block data generation unit, and a plurality of strings obtained from the encryption target character string An encryption program that functions as an encryption data generation unit that combines the encrypted block data corresponding to the block character string to generate encryption data for the encryption target character string.
JP2012281891A 2012-12-26 2012-12-26 Crypto system capable of partial match search Active JP5255154B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012281891A JP5255154B1 (en) 2012-12-26 2012-12-26 Crypto system capable of partial match search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012281891A JP5255154B1 (en) 2012-12-26 2012-12-26 Crypto system capable of partial match search

Publications (2)

Publication Number Publication Date
JP5255154B1 true JP5255154B1 (en) 2013-08-07
JP2014126621A JP2014126621A (en) 2014-07-07

Family

ID=49052925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012281891A Active JP5255154B1 (en) 2012-12-26 2012-12-26 Crypto system capable of partial match search

Country Status (1)

Country Link
JP (1) JP5255154B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020502896A (en) * 2016-12-16 2020-01-23 アマゾン・テクノロジーズ、インコーポレイテッド Secure distribution of sensitive data over content distribution networks
CN117195248A (en) * 2023-08-04 2023-12-08 中国科学院软件研究所 Sectional organization and operation method and device for field encryption of embedded database

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017122326A1 (en) 2016-01-14 2017-07-20 三菱電機株式会社 Confidential search system, confidential search method and confidential search program
JP6038427B1 (en) 2016-01-15 2016-12-07 三菱電機株式会社 ENCRYPTION DEVICE, ENCRYPTION METHOD, ENCRYPTION PROGRAM, AND STORAGE DEVICE
CN108370312B (en) 2016-01-18 2021-01-05 三菱电机株式会社 Encryption device, search device, computer-readable recording medium, encryption method, and search method
CN110546631A (en) 2017-04-25 2019-12-06 三菱电机株式会社 Search device, search system, search method, and search program

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101055A (en) * 1999-09-30 2001-04-13 Casio Comput Co Ltd Data base managing device, data base system, enciphering device and ercording medium
JP2002108911A (en) * 2000-09-28 2002-04-12 Nec Soft Ltd Method and device for retrieving enciphered file and computer readable recording medium
JP2002108910A (en) * 2000-09-27 2002-04-12 Nec Soft Ltd Enciphered filing system, enciphered file retrieving method and computer readable recording medium
JP2003296331A (en) * 2002-04-04 2003-10-17 Kddi Corp Data retrieval method and system, retrieval keyword generation device and its computer program
JP2006201911A (en) * 2005-01-19 2006-08-03 Icon:Kk Electronic information encryption system, electronic information encryption method, storage medium and program
JP2011223385A (en) * 2010-04-12 2011-11-04 Hitachi Ltd Encryption communication apparatus
WO2012004880A1 (en) * 2010-07-08 2012-01-12 三菱電機株式会社 Keyword conversion device, keyword conversion program, recording medium, and keyword conversion method
WO2012131856A1 (en) * 2011-03-25 2012-10-04 富士通株式会社 Information processing device, tampering detection device, information processing method, tampering detection method, information processing program, and tampering detection program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101055A (en) * 1999-09-30 2001-04-13 Casio Comput Co Ltd Data base managing device, data base system, enciphering device and ercording medium
JP2002108910A (en) * 2000-09-27 2002-04-12 Nec Soft Ltd Enciphered filing system, enciphered file retrieving method and computer readable recording medium
JP2002108911A (en) * 2000-09-28 2002-04-12 Nec Soft Ltd Method and device for retrieving enciphered file and computer readable recording medium
JP2003296331A (en) * 2002-04-04 2003-10-17 Kddi Corp Data retrieval method and system, retrieval keyword generation device and its computer program
JP2006201911A (en) * 2005-01-19 2006-08-03 Icon:Kk Electronic information encryption system, electronic information encryption method, storage medium and program
JP2011223385A (en) * 2010-04-12 2011-11-04 Hitachi Ltd Encryption communication apparatus
WO2012004880A1 (en) * 2010-07-08 2012-01-12 三菱電機株式会社 Keyword conversion device, keyword conversion program, recording medium, and keyword conversion method
WO2012131856A1 (en) * 2011-03-25 2012-10-04 富士通株式会社 Information processing device, tampering detection device, information processing method, tampering detection method, information processing program, and tampering detection program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020502896A (en) * 2016-12-16 2020-01-23 アマゾン・テクノロジーズ、インコーポレイテッド Secure distribution of sensitive data over content distribution networks
JP7036494B2 (en) 2016-12-16 2022-03-15 アマゾン・テクノロジーズ、インコーポレイテッド Secure data distribution of sensitive data over content delivery networks
CN117195248A (en) * 2023-08-04 2023-12-08 中国科学院软件研究所 Sectional organization and operation method and device for field encryption of embedded database

Also Published As

Publication number Publication date
JP2014126621A (en) 2014-07-07

Similar Documents

Publication Publication Date Title
JP5255154B1 (en) Crypto system capable of partial match search
CN107302539B (en) Electronic identity registration and authentication login method and system
US8886956B2 (en) Data storage apparatus having cryption and method thereof
US8165301B1 (en) Input-output device and storage controller handshake protocol using key exchange for data security
WO2006030878A1 (en) Image processing apparatus, image processing system, and control method therefor
CN109951295B (en) Key processing and using method, device, equipment and medium
CN102325026A (en) Account password secure encryption system
CN110084599B (en) Key processing method, device, equipment and storage medium
JP4344957B2 (en) Processing distribution system, authentication server, distributed server, and processing distribution method
JP2006253745A (en) Data processing apparatus, system, and method
EP1865652A1 (en) Data processing apparatus
JP2012164031A (en) Data processor, data storage device, data processing method, data storage method and program
CN101582901A (en) Information processing apparatus and control method thereof
KR20110139798A (en) Control method of data management system with emproved security
US9331852B2 (en) System and method for securing data transaction
CN114417073A (en) Neighbor node query method and device of encryption graph and electronic equipment
KR100817222B1 (en) Method for encrypting/decrypting electronic product code and rfid system using the same
JP6149749B2 (en) Information processing apparatus, information processing system, and program
JP4637612B2 (en) Identification information generation management device, system, and program
JP5411034B2 (en) Database encryption system and method
US20160080327A1 (en) Terminal apparatus, gateway apparatus, and relay apparatus connected to content-centric network, and communication method
JP6631210B2 (en) Terminal device authentication program, terminal device authentication method, server device, and authentication system
KR20100014995A (en) The security technology of internet on encrypted transmission data
JP2008035044A (en) Information transmission/reception system
JP4223330B2 (en) Authentication method between parent device and child device, parent device and child device, and computer program

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Ref document number: 5255154

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250