JP5255154B1 - Crypto system capable of partial match search - Google Patents
Crypto system capable of partial match search Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000013075 data extraction Methods 0.000 claims description 9
- 238000006467 substitution reaction Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 4
- 238000013523 data management Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 8
- 230000002441 reversible effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013019 agitation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Abstract
【課題】 実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成する暗号化装置および暗号化プログラムを得る。
【解決手段】 ブロックデータ生成部62は、(a1)暗号化対象文字列から連続的に1文字ずつ順番に選択し、(a2)選択した文字から連続する所定複数文字長の文字列をブロック文字列として暗号化対象文字列から抽出し、(a3)抽出したブロック文字列のデータから暗号化ブロック長のブロックデータを生成する。この暗号化ブロック長は、ブロック文字列の最大データ長以上の所定のデータ長である。暗号化処理部63は、ブロック暗号化方式でブロックデータを暗号化する。暗号データ生成部64は、暗号化対象文字列から得られる複数のブロック文字列に対応する暗号化されたブロックデータを結合して、暗号化対象文字列に対する暗号データを生成する。
【選択図】 図2PROBLEM 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
また、特許文献2に記載のシステムでは、暗号化された文書の他に、単一換字式暗号(シーザー暗号)で変換した索引情報をサーバに登録しておき、検索時には、検索キーを同一の単一換字式暗号で変換した上で、索引情報の部分一致検索を行っている。
In addition, in the system described in
しかしながら、上述の技術では、いずれも、単一換字式暗号を使用しており、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.
以下、図に基づいて本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
実施の形態1.
図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
アプリケーションサーバ11は、フロントエンドのサーバであって、ネットワーク3を介して、SaaS(Software as a Service)方式で各種サービスをユーザに提供するサービス提供部12と、サービス提供部12により提供されるサービスにおけるユーザデータを管理するデータ管理部13とを有する。
The
このサーバ装置1には、サーバ装置4、およびプロキシ装置5が例えばLAN(Local Area Network)を介して接続されている。プロキシ装置5は、本発明の暗号化装置の一実施の形態である。また、ユーザの操作するユーザ端末装置6が、ゲートウェイ7を介してネットワーク3に接続されており、アプリケーションサーバ11は、ユーザ端末装置6からの要求に応じて各種処理を実行する。
A
データ管理部13により管理されるユーザデータは、サーバ装置4におけるバックエンドのデータベースサーバ21に登録され保持される。データベースサーバ21は、レコードの登録、読み出し、検索などの各種コマンドを受け付け、受け付けたコマンドに対応する処理を実行し、処理結果をそのコマンドの応答として送信する。なお、サーバ装置4は、コンピュータを内蔵しており、コンピュータでプログラムを実行することで、データベースサーバ21を稼動している。
User data managed by the
実施の形態1では、データ管理部13とデータベースサーバ21との間で、プロキシ装置5がプロキシとして動作する。
In the first embodiment, the
データ管理部13は、データベースサーバ21の仕様に適合するコマンドを送信し、プロキシ装置5は、そのコマンドをデータ管理部13から受信し、コマンド内の暗号化対象部分を暗号化した上で、そのコマンドをデータベースサーバ21へ送信し、そのコマンドに対する応答をデータベースサーバ21から受信し、その応答における復号対象部分を復号した上で、その応答をデータ管理部13へ送信する。
The
データ管理部13とデータベースサーバ21との間で使用されるプロトコル、並びにデータ管理部13およびデータベースサーバ21は、プロキシ装置5に拘わらず、既存のものを使用可能である。
The protocol used between the
そして、プロキシ装置5は、データ管理部13から登録コマンドを受信すると、その登録コマンドによって登録されるデータに、指定されたテーブルの、指定されたカラムに登録される文字列が含まれる場合、その文字列を、データベースサーバ21によって部分一致検索が可能な暗号データに置換した上でそのコマンドをデータベースサーバ21へ送信する。
Then, when the
また、プロキシ装置5は、データ管理部13から検索コマンドを受信すると、部分一致検索時には、検索キーを暗号化した上で、検索コマンドをデータベースサーバ21へ送信し、検索結果としてヒットしたレコードをデータベースサーバ21から受信すると、その検索結果のレコードに含まれる、指定されたテーブルの、指定されたカラムの暗号データを復号し、復号された元の文字列を含む検索結果のレコードをデータ管理部13へ送信する。
In addition, when the
図2は、図1におけるプロキシ装置5の構成例を示すブロック図である。
FIG. 2 is a block diagram illustrating a configuration example of the
プロキシ装置5は、コンピュータを内蔵しており、そのコンピュータは、プロセッサであるCPU(Central Processing Unit)31、不揮発性メモリであるROM(Read Only Memory)32、主記憶装置であるRAM(Random Access Memory)33、ハードディスクドライブ、SSD(Solid State Drive)などの補助記憶装置34、およびネットワークインターフェイスなどといった通信装置35を有する。
The
ROM32または補助記憶装置34に記憶されているプログラムをRAM33にロードし、CPU31で実行することで、各種処理部が実現される。この処理部は、RAM33にデータを一時的に記憶しつつ処理を実行する。
Various processing units are realized by loading a program stored in the
実施の形態1では、暗号化プログラム41に基づいて、通信処理部51、暗号化部52および復号部53が実現される。
In the first embodiment, a
通信処理部51は、通信装置35を制御してネットワーク通信を、データ管理部13およびデータベースサーバ21との間で行う。
The
暗号化部52は、暗号化対象を特定し、特定した暗号化対象を暗号化し、暗号化対象を、暗号化後の暗号化対象に置換する。暗号化部52は、暗号化対象特定部61、ブロックデータ生成部62、暗号化処理部63、および暗号データ生成部64を有する。
The
暗号化対象特定部61は、データベースサーバ21によるデータベースのテーブルおよびそのテーブル内のカラムを暗号化対象として指定する暗号化対象情報をアプリケーションサーバ11から取得し、そのデータベースへのレコードの登録時に、そのレコード内で、暗号化対象情報により指定されたカラムの文字列を、暗号化対象文字列として特定する。なお、アプリケーションサーバ11は、ユーザ端末装置6から指定されたユーザ設定などによって暗号化対象情報を事前に特定している。
The encryption
また、暗号化対象特定部61は、そのデータベースでの検索時に、検索コマンドにおける検索キーを暗号化対象文字列として特定する。なお、暗号化対象特定部61は、検索コマンドによる検索対象が、暗号化対象情報により指定されたカラムである場合、検索キーを暗号化対象文字列とし、そうではない場合には、検索キーを暗号化対象文字列とはしない。
Further, the encryption
ブロックデータ生成部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
暗号データ生成部64は、暗号化対象文字列から抽出される複数のブロック文字列から得られる複数の暗号ブロックデータを結合して、暗号化対象文字列に対する暗号データを生成する。
The encryption
この実施の形態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
復号部53は、復号対象の暗号データを特定し、特定した暗号データを復号し、復号対象の暗号データを、復号後の平文データに置換する。復号部53は、データベースでの検索時にヒットしたレコード内で暗号化対象情報により指定されたカラムの暗号データを復号する。復号部53は、復号対象特定部71、暗号ブロックデータ抽出部72、復号処理部73、および平文データ生成部74を有する。
The decrypting
復号対象特定部71は、上述の暗号化対象情報に基づいて、そのレコード内で、暗号化対象情報により指定されたカラムの暗号データを、復号対象の暗号データとして特定する。
Based on the above-described encryption target information, the decryption
暗号ブロックデータ抽出部72は、復号対象特定部71により特定された暗号データから、暗号化ブロック長の複数の暗号ブロックデータを抽出する。
The encryption block
復号処理部73は、抽出された暗号ブロックデータを、暗号化処理部63の暗号化方式に対応する復号方式で復号する。
The
平文データ生成部74は、(b1)複数の暗号ブロックデータから復号処理部73による復号で得られたデータからブロック文字列をそれぞれ抽出し、(b2)抽出した複数のブロック文字列から、暗号データに対する平文データを生成する。
The plaintext data generation unit 74 (b1) extracts block character strings from the data obtained by the decryption by the
次に、上記プロキシ装置5の動作について説明する。
Next, the operation of the
図3は、図1におけるプロキシ装置5の動作について説明するフローチャートである。
FIG. 3 is a flowchart for explaining the operation of the
通信処理部51は、データベースサーバ21宛てのコマンドをデータ管理部13から受信すると(ステップS1)、そのコマンドが登録コマンドであるか否かを判定する(ステップS2)。
When receiving a command addressed to the
そのコマンドが登録コマンドである場合、暗号化部52は、登録対象のレコードについて暗号化処理を実行し(ステップS3)、通信処理部51は、暗号化処理後の登録コマンドを、データベースサーバ21へ送信する(ステップS4)。データベースサーバ21は、その登録コマンドに従って、暗号化処理後のレコードをデータベースに登録する。
If the command is a registration command, the
そのコマンドが登録コマンドではない場合、通信処理部51は、そのコマンドが検索コマンドであるか否かを判定する(ステップS5)。
If the command is not a registration command, the
そのコマンドが検索コマンドである場合、暗号化部52は、検索キーに対する暗号化処理を実行し(ステップS6)、通信処理部51は、暗号化処理後の検索コマンドを、データベースサーバ21へ送信する(ステップS7)。データベースサーバ21は、その検索コマンドに従って、暗号化された検索キーで検索を実行し、ヒットしたレコードをデータベースから読み出し、応答データとして送信する。
If the command is a search command, the
通信処理部51は、その検索コマンドに対する応答データをデータベースサーバ21から受信すると(ステップS8)、応答データについての復号処理を実行し(ステップS10)、復号処理後の応答データを、データ管理部13へ送信する(ステップS10)。
When the
なお、通信処理部51は、受信したコマンドが暗号化処理および復号処理が必要とされないコマンドである場合には、そのコマンドをそのままデータベースサーバ21へ送信し、そのコマンドに対する応答をデータベースサーバ21から受信すると、そのままデータ管理部13へ転送する(ステップS11)。
If the received command is a command that does not require encryption processing and decryption processing, the
ここで、ステップ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
ステップS3,S6の暗号化処理では、まず、暗号化対象特定部61が、受信したコマンドにおいて暗号化対象(登録コマンドにおける特定のテーブルの特定のカラム、検索コマンドにおける特定のレコードの特定のカラムについての検索キーなど)が存在するか否かを判定する(ステップS21)。受信したコマンドにおいて暗号化対象が存在しない場合、この暗号化処理はスキップされる。
In the encryption processing of steps S3 and S6, first, the encryption
例えば、図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
例えば、図6に示す「東京都新宿区」という文字列101が暗号化対象である場合、先頭の「東」という文字が、1番目のブロック端文字102−1に設定される。
For example, when the
次に、ブロックデータ生成部62は、ブロック端文字から始まる2文字をブロック文字列として抽出する(ステップS23)。
Next, the block
例えば、図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
そして、ブロックデータ生成部62は、抽出したブロック文字列の文字列データから、暗号化ブロック長のブロックデータを生成する(ステップS24)。
Then, the block
例えば、抽出した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
ブロックデータが生成されると、暗号化処理部63は、その暗号化ブロック長のブロックデータを暗号化し、暗号化ブロック長の暗号ブロックデータを生成する(ステップS25)。
When the block data is generated, the
これにより、例えば図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
暗号ブロックデータが生成されると、ブロックデータ生成部62は、現在設定されているブロック端文字が、暗号化対象の文字列の最後から2番目の文字であるか否かを判定する(ステップS26)。つまり、現時点のブロック端文字が、(暗号化対象の文字列の文字長−ブロック文字列の文字長+1)番目の文字であるか否かが判定される。
When the encrypted block data is generated, the block
現在設定されているブロック端文字が、暗号化対象の文字列の最後から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
例えば図6に示す「東京都新宿区」という文字列101において、先頭の「東」という文字が現時点のブロック端文字である場合、「京」という文字が新たにブロック端文字102−2に設定され、そのブロック端文字102−2に対応して、ブロック文字列103−2が抽出され、ブロックデータ104−2が生成され、暗号化ブロックデータ105−2が生成される。
For example, in the
同様に、「都」、「新」、および「宿」というブロック端文字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
例えば、図6に示す「東京都新宿区」という文字列101が暗号化対象である場合、5つのブロック文字列103−1〜103−5に対応する暗号ブロックデータ105−1〜105−5が、文字102−1〜102−5の順番に対応する順番で結合され、暗号データ106が生成される。
For example, when the
このようにして、暗号化処理が行われる。 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
受信した応答データにおいて復号対象が存在する場合、暗号ブロックデータ抽出部72は、まず、復号対象の暗号データ内の先頭の暗号ブロックデータを抽出する(ステップS42)。例えば、図6に示す暗号データ106の場合、1番目の暗号ブロックデータ105−1が抽出される。
If there is a decryption target in the received response data, the cipher block
暗号ブロックデータが抽出されると、復号処理部73は、暗号ブロックデータを復号し、暗号化ブロック長のブロックデータを生成する(ステップS43)。
When the encrypted block data is extracted, the
平文データ生成部74は、そのブロックデータに含まれる上述の2文字のブロック文字列を抽出する(ステップS44)。
The plaintext
例えば、図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
現時点の暗号ブロックデータが、復号対象の暗号データ内の最後の暗号ブロックデータではない場合、暗号ブロックデータ抽出部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
そして、復号対象の暗号データ内のすべての暗号ブロックデータに対応するブロック文字列が特定されると、平文データ生成部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
例えば、図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
このようにして、復号処理が行われる。 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
図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
同様に、「宿」というブロック端文字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
そして、暗号ブロックデータ205−1,205−2が結合され、検索キー201に対応する暗号データ206が生成され、検索キー201が、暗号データ206に置き換えられる。
Then, the encrypted block data 205-1 and 205-2 are combined to generate
したがって、データベースサーバ21は、暗号データ206を検索キーとして検索を行う。
Therefore, the
図6に示すように、暗号データ106には、「新宿」というブロック文字列103−4の暗号ブロックデータ105−4と「宿区」というブロック文字列103−5の暗号ブロックデータ105−5とが連続した状態で含まれているため、データベースサーバ21において暗号データ206を検索キーとして検索を行うと、暗号データ106を含むレコードがヒットする。
As shown in FIG. 6, the
このように、検索コマンド中の検索キーを上述のように同一の方法で暗号化することで、部分一致検索が行える。 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
これにより、複数文字長のブロック文字列が含まれるブロックデータが十分な暗号化ブロック長でブロック暗号化されるので、実用に耐え得る暗号強度を確保でき、かつ、部分一致検索が可能である暗号データを生成し、データベースサーバ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
実施の形態2.
本発明の実施の形態2に係るシステムは、ゲートウェイ2に、プロキシ装置5の機能を持たせ、バックエンド側のプロキシ装置5を省略したものである。つまり、このシステムでは、ゲートウェイ2が、本発明の暗号化装置の一実施の形態である。
The system according to
したがって、実施の形態2では、ゲートウェイ2を通過する登録コマンド、検索コマンド、およびその応答データが、実施の形態1と同様に処理される。なお、実施の形態2では、データ管理部13は、データベースサーバ21に直接アクセスする。
Therefore, in the second embodiment, the registration command, search command, and response data that pass through the
実施の形態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-
したがって、実施の形態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
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。 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
また、上記実施の形態1〜3において、ブロックデータ生成部62は、パディングを、文字列の前または文字と文字の間に入れるようにしてもよい。
In the first to third embodiments, the block
また、上記実施の形態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
また、上記実施の形態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
また、上記実施の形態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
また、上記実施の形態1〜3において、暗号化プログラム41を可搬性のある記録媒体に記録し、その記録媒体から暗号化プログラム41がプロキシ装置5、ゲートウェイ2、ゲートウェイ7、ユーザ端末装置6などへインストールされるようにしてもよいし、暗号化プログラム41がネットワーク3上のサーバからダウンロードされてプロキシ装置5、ゲートウェイ2、ゲートウェイ7、ユーザ端末装置6などへインストールされるようにしてもよい。
In the first to third embodiments, the
本発明は、例えば、クラウドコンピューティングにおけるユーザデータの暗号化に適用可能である。 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
Claims (7)
前記暗号化ブロック長単位で暗号化を行うブロック暗号化方式で、前記ブロックデータ生成部により得られた前記ブロックデータを暗号化する暗号化処理部と、
前記暗号化対象文字列から得られる複数の前記ブロック文字列に対応する暗号化された前記ブロックデータを結合して、前記暗号化対象文字列に対する暗号データを生成する暗号データ生成部と、
を備えることを特徴とする暗号化装置。 (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:
前記復号部は、
前記暗号データから、前記暗号化ブロック長の複数の暗号ブロックデータを抽出する暗号ブロックデータ抽出部と、
前記暗号化処理部の暗号化方式に対応する復号方式で前記暗号ブロックデータを復号する復号処理部と、
(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:
前記暗号化処理部のブロック暗号化方式は、換字式暗号ではない共通鍵暗号化方式であること、
を特徴とする請求項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.
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)
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)
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)
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 |
-
2012
- 2012-12-26 JP JP2012281891A patent/JP5255154B1/en active Active
Patent Citations (8)
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)
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 |