JP2001101055A - Data base managing device, data base system, enciphering device and ercording medium - Google Patents

Data base managing device, data base system, enciphering device and ercording medium

Info

Publication number
JP2001101055A
JP2001101055A JP27920899A JP27920899A JP2001101055A JP 2001101055 A JP2001101055 A JP 2001101055A JP 27920899 A JP27920899 A JP 27920899A JP 27920899 A JP27920899 A JP 27920899A JP 2001101055 A JP2001101055 A JP 2001101055A
Authority
JP
Japan
Prior art keywords
data
column
database
search
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP27920899A
Other languages
Japanese (ja)
Other versions
JP3921892B2 (en
Inventor
Makoto Sato
佐藤  誠
Koji Takeda
恒治 竹田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP27920899A priority Critical patent/JP3921892B2/en
Priority to US09/670,424 priority patent/US7093137B1/en
Priority to EP00121136.6A priority patent/EP1089194B1/en
Priority to KR10-2000-0057347A priority patent/KR100401225B1/en
Priority to CNB00134899XA priority patent/CN1327379C/en
Publication of JP2001101055A publication Critical patent/JP2001101055A/en
Priority to HK01109010A priority patent/HK1038806A1/en
Priority to KR10-2003-0033587A priority patent/KR100398319B1/en
Application granted granted Critical
Publication of JP3921892B2 publication Critical patent/JP3921892B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To ensure the security of a data base, and to attain the quick retrieval of an item to be used for retrieval. SOLUTION: At the enciphering of a data base, the data of column items to be used for retrieval are enciphered by using a column key common to the column items stored in a key storing device 15, and the data of the other column items are enciphered by using a line key specific to each line stored in the key storing device 15, and the resultant data are preserved in a data base storage area 16a of a data storage device 16. Thus, it is possible to increase security by making keys for each line different. In the retrieval, data inputted as data for retrieval are enciphered by using the column key common to the prescribed column items, and the enciphered data for retrieval are compared with the enciphered data base in a data base storage area 16a so that high speed retrieval can be realized.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、データベースを暗
号化して管理するデータベース管理装置と、暗号化デー
タベースを有する検索装置をネットワーク上に配置した
データベースシステムと、データベースの暗号化を行う
暗号化装置及び記録媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a database management device for encrypting and managing a database, a database system in which a search device having an encrypted database is arranged on a network, an encryption device for encrypting the database, and It relates to a recording medium.

【0002】[0002]

【従来の技術】データベース管理装置では、データベー
スのセキュリティを確保するため、管理対象として保有
しているデータベースを暗号化して保存しておくことが
求められる。
2. Description of the Related Art In a database management apparatus, in order to ensure the security of a database, it is required that a database held as a management target be encrypted and stored.

【0003】ここでセキュリティを高めるためには、よ
り複雑な暗号処理を施すことで実現することができる
が、複雑な暗号処理は演算に要する時間も大きくなるこ
とは避けられない。
[0003] Here, in order to enhance security, it can be realized by performing more complicated cryptographic processing. However, it is inevitable that the time required for the complicated cryptographic processing becomes longer.

【0004】データベースは膨大なデータを有し、デー
タ検索は、それらのデータの中からある項目について条
件に合致するものを選び出し、条件に合う項目データを
含むレコード(行データ)を出力するという処理にな
る。従って、大量のデータを取り扱うデータ検索システ
ムにおいては演算時間の増加は処理効率を悪化させる原
因となる。
A database has a huge amount of data, and a data search is a process of selecting a certain item from the data that satisfies a condition and outputting a record (line data) including the item data that satisfies the condition. become. Therefore, in a data retrieval system that handles a large amount of data, an increase in the operation time causes a reduction in processing efficiency.

【0005】[0005]

【発明が解決しようとする課題】上述したように、機密
性の高いデータを記憶しているデータベースにはセキュ
リティの要求があり、セキュリティを高めるための暗号
化処理はデータベースの利用性を妨げるという問題があ
る。
As described above, there is a demand for security in a database storing highly confidential data, and encryption processing for enhancing security hinders the usability of the database. There is.

【0006】本発明は前記のような課題を解決するため
になされたもので、データベースのセキュリティを確保
すると共に、データの高速検索を可能にしたデータベー
ス管理装置、データベースシステム、暗号化装置及び記
録媒体を提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and has a database management device, a database system, an encryption device, and a recording medium which ensure the security of a database and enable high-speed retrieval of data. The purpose is to provide.

【0007】[0007]

【課題を解決するための手段】本発明は、データベース
を暗号化する際に、検索に利用される列項目のデータに
ついては当該列項目に共通の列鍵を用いて暗号化し、そ
の他の列項目のデータについては各行毎に固有の行鍵を
用いて暗号化するようにしたものである。
According to the present invention, when encrypting a database, data of a column item used for retrieval is encrypted using a column key common to the column item, and other column items are encrypted. Is encrypted using a unique row key for each row.

【0008】具体的には、本発明のデータベース管理装
置は、データベースの所定の列項目のデータについて当
該列項目に共通の列鍵を用いて暗号化し、その他の列項
目のデータについては各行毎に固有の行鍵を用いて暗号
化する暗号化手段と、この暗号化手段によって暗号化さ
れたデータベースを記憶する記憶手段とで構成される。
Specifically, the database management apparatus of the present invention encrypts data of a predetermined column item of the database using a column key common to the column item, and encrypts data of other column items for each row. It comprises an encrypting means for encrypting using a unique row key, and a storage means for storing a database encrypted by the encrypting means.

【0009】このような構成されよれば、データベース
を暗号化する際に、各行毎に鍵を異ならせることでセキ
ュリティを高めることができ、検索時には、検索用とし
て入力されたデータを前記所定の列項目に共通の列鍵を
用いて暗号化し、その暗号化された検索用データと暗号
化データベースの各項目データとを比較することで高速
検索を実現することができる。
According to this configuration, when encrypting the database, security can be improved by using a different key for each row, and at the time of retrieval, data input for retrieval is stored in the predetermined column. A high-speed search can be realized by encrypting an item using a common column key and comparing the encrypted search data with each item data of the encrypted database.

【0010】また、検索に利用される列項目以外の列項
目のデータについて、各行毎に固有の行鍵と当該列項目
に共通の列鍵とを複合的に用いて暗号化するようにすれ
ば、さらにセキュリティを強化することができる。
[0010] Further, if data of a column item other than a column item used for retrieval is encrypted by using a unique row key for each row and a column key common to the column item in a complex manner. , Can further enhance security.

【0011】また、暗号化方式として、所定の関数に基
づいて多次元空間に逐次ベクトルを発生させ、これらの
ベクトル成分を暗号のキーストリームとした多次元空間
回転方式を用いれば、複雑な演算処理を必要とせずにデ
ータベースを暗号化することができるので、演算能力の
低い情報処理装置にも適用可能となる。
In addition, if a multidimensional space rotation method is used as an encryption method in which vectors are sequentially generated in a multidimensional space based on a predetermined function and these vector components are used as a key stream of encryption, complicated arithmetic processing can be performed. Since the database can be encrypted without the need for the information processing, the present invention can be applied to an information processing apparatus having a low computing capacity.

【0012】また、データベースの保管場所を離間させ
ておき、別の情報端末からネットワークを介して検索を
依頼するようなデータベースシステムを構築することも
可能である。この場合、前記のようにデータベースの所
定の列項目(検索に利用される列項目)のデータを当該
列項目に共通の列鍵を用いて暗号化し、その他の列項目
のデータについては各行毎に固有の行鍵を暗号化してお
く。そして、別の情報端末からデータベースの検索を依
頼する際に、検索用データを当該列項目に共通の列鍵を
用いて暗号化し、その暗号化された検索用データをネッ
トワークを介して送るようにする。この検索用データを
受けることで、前記暗号化データベースの検索処理を行
い、その検索結果として得られたデータを暗号化された
状態でネットワークを介して前記情報端末に返信する。
したがって、常に暗号化された状態でデータをやり取り
できるので、データベースのセキュリティを確保するこ
とができる。
It is also possible to construct a database system in which the storage locations of the databases are separated from each other and a search is requested from another information terminal via a network. In this case, as described above, data of a predetermined column item (column item used for search) in the database is encrypted using a column key common to the column item, and data of the other column items is encrypted for each row. Encrypt your unique row key. Then, when requesting a database search from another information terminal, the search data is encrypted using a common column key for the column item, and the encrypted search data is sent via a network. I do. Upon receiving the search data, the encrypted database is searched, and the data obtained as a result of the search is returned to the information terminal via the network in an encrypted state.
Therefore, data can always be exchanged in an encrypted state, so that the security of the database can be ensured.

【0013】[0013]

【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0014】(第1の実施形態)図1は本発明の第1の
実施形態に係るデータベース管理装置の構成を示す図で
ある。本装置は、行と列からなるマトリクス形式のデー
タベースを有し、そのデータベースを暗号化して管理す
る機能と共に、入力された検索用データを暗号化して、
その暗号化された検索用データに基づいてデータベース
を検索する機能を備えたものであって、例えば磁気ディ
スク等の記録媒体に記録されたプログラムを読み込み、
このプログラムによって動作が制御されるコンピュータ
によって実現される。
(First Embodiment) FIG. 1 is a diagram showing a configuration of a database management apparatus according to a first embodiment of the present invention. This device has a matrix-type database consisting of rows and columns, and with the function of encrypting and managing the database, encrypting the input search data,
It has a function of searching a database based on the encrypted search data, and reads a program recorded on a recording medium such as a magnetic disk, for example,
It is realized by a computer whose operation is controlled by this program.

【0015】図1に示すように、本装置には、CPU1
1、表示装置12、入力装置13、プログラム記憶装置
14、鍵記憶装置15、データ記憶装置16が設けられ
ている。
As shown in FIG. 1, a CPU 1
1, a display device 12, an input device 13, a program storage device 14, a key storage device 15, and a data storage device 16 are provided.

【0016】CPU11は、本装置全体の制御を行うも
のであり、プログラム記憶装置14に記憶されたプログ
ラムを読み込み、そのプログラムに従って各種処理を実
行する。本実施形態において、CPU11は図2に示す
ようなデータベースの暗号化処理や、図3および図4に
示すようなデータベースの検索処理を実行する。
The CPU 11 controls the entire apparatus, reads a program stored in the program storage device 14, and executes various processes according to the program. In the present embodiment, the CPU 11 executes a database encryption process as shown in FIG. 2 and a database search process as shown in FIGS.

【0017】表示装置12は、データを表示するための
デバイスであり、例えばLCD(Liquid Crystal Displ
ay)やCRT(Cathode-ray tube)等が用いられる。入
力装置13は、データを入力するためのデバイスであ
り、例えばキーボード、マウス等が用いられる。
The display device 12 is a device for displaying data, for example, an LCD (Liquid Crystal Displ.).
ay) or CRT (Cathode-ray tube). The input device 13 is a device for inputting data, and for example, a keyboard, a mouse, and the like are used.

【0018】プログラム記憶装置14は、例えばROM
あるいはRAMなどで構成され、本装置に必要なプログ
ラムを記憶する。本装置に必要なプログラムとしては、
データベース管理プログラムや暗号化プログラム等があ
る。
The program storage device 14 is, for example, a ROM
Alternatively, it is constituted by a RAM or the like, and stores a program necessary for this apparatus. The necessary programs for this device are:
There are a database management program, an encryption program, and the like.

【0019】なお、プログラム記憶装置14は半導体メ
モリの他に磁気的、光学的記録媒体で構成することがで
きる。この記録媒体はCD-ROM等の可搬型の媒体や
ハードディスク等の固定的な媒体を含む。また、この記
録媒体に格納するプログラムは、その一部若しくは全部
をサーバやクライアントからネットワーク回線などの伝
送媒体を介して伝送制御部から受信する構成にしてもよ
く、更に、前記記録媒体はネットワーク上に構築された
サーバの記録媒体であってもよい。更に、前記プログラ
ムをネットワーク回線などの伝送媒体を介してサーバー
やクライアントへ伝送してこれらの機器にインストール
するように構成してもよい。
The program storage device 14 can be constituted by a magnetic or optical recording medium other than the semiconductor memory. The recording medium includes a portable medium such as a CD-ROM and a fixed medium such as a hard disk. Further, the program stored in the recording medium may be configured such that a part or all of the program is received from a transmission control unit via a transmission medium such as a network line from a server or a client. It may be a recording medium of a server constructed in the above. Further, the program may be transmitted to a server or a client via a transmission medium such as a network line and installed in these devices.

【0020】鍵記憶装置15は、例えばRAMなどで構
成され、データベースの暗号化に用いられる鍵(行鍵と
列鍵)を記憶する。
The key storage device 15 is composed of a RAM, for example, and stores keys (row key and column key) used for encrypting the database.

【0021】データ記憶装置16は、本装置に必要な各
種のデータを記憶するためのデバイスであり、例えばR
AMあるいは磁気ディスク装置等の外部記憶装置で構成
される。このデータ記憶装置16には、データベースを
格納しておくためのデータベース格納エリア16a、デ
ータベースを暗号化する際にオペレータにより設定され
た情報(検索対象項目、非暗号化項目等)を格納してお
くための暗号化設定情報格納エリア16b、データベー
スを検索する際にオペレータにより設定された情報(対
象列項目、検索文字列等)を格納しておくための検索設
定情報格納エリア16c、データベース検索時の比較文
字列を格納しておくための比較文字列格納エリア16d
などが設けられている。
The data storage device 16 is a device for storing various data necessary for the present device.
It is composed of an external storage device such as an AM or a magnetic disk device. The data storage device 16 stores a database storage area 16a for storing a database and information (search target items, non-encrypted items, etc.) set by an operator when encrypting the database. Setting information storage area 16c for storing information (object column items, search character strings, etc.) set by an operator when searching a database, and an encryption setting information storage area 16c for searching a database. Comparison character string storage area 16d for storing comparison character strings
And so on.

【0022】ここで、本装置の動作を説明する前に、本
装置によって実現されるデータベースの暗号化方法につ
いて説明しておく。
Here, before describing the operation of the present apparatus, a database encryption method realized by the present apparatus will be described.

【0023】データベースを暗号化する場合に、各行毎
(レコード毎)に異なる鍵を用いて暗号化すると、鍵の
解読は困難となり、セキュリティ性を高めることができ
る。しかし、データベースを検索する際に、暗号化され
ているデータを各行毎の鍵で復号化するか、または、検
索用として入力されたデータ(キーワード)を各行毎の
鍵で暗号化しなければならいため、検索結果を得るのに
時間がかかることになる。一方、各列毎に異なる鍵を用
いてデータベースを暗号化すると、検索対象となる列項
目に対応した鍵のみを用いて検索用データを暗号化すれ
ば良いのでデータベース検索を高速に行うことができ
る。しかし、同じ列の中で同一のデータがあると、暗号
化結果も同じになってしまうため、そこから鍵を解読さ
れる可能性が高くなる。
When encrypting a database using a different key for each row (each record), decryption of the key becomes difficult, and security can be improved. However, when searching the database, the encrypted data must be decrypted with a key for each row, or data (keyword) input for search must be encrypted with a key for each row. , It takes time to get search results. On the other hand, if the database is encrypted using a different key for each column, the database search can be performed at high speed because only the search data needs to be encrypted using the key corresponding to the column item to be searched. . However, if there is the same data in the same column, the encryption result will be the same, so that the possibility of decrypting the key therefrom increases.

【0024】そこで、本発明では、データベースを暗号
化する際に、検索に頻繁に利用される列項目のデータに
ついては列共通鍵で暗号化し、その他の列項目のデータ
については各行毎に異なる鍵を与えて暗号化することを
特徴とする。つまり、各行毎に鍵を異ならせることで、
セキュリティを高めると共に、検索時には検索に利用さ
れる項目に入力されたデータを列鍵で暗号化してデータ
ベース上の暗号化データと比較することで高速検索を可
能とするものである。
Therefore, according to the present invention, when encrypting a database, data of a column item frequently used for retrieval is encrypted with a column common key, and data of other column items is encrypted with a different key for each row. And encrypting. In other words, by making the key different for each line,
In addition to enhancing security, at the time of retrieval, high-speed retrieval is enabled by encrypting data input to an item used for retrieval with a column key and comparing the data with encrypted data in a database.

【0025】図5は第1の実施形態におけるデータベー
スの構成を説明するための図であり、図5(a)は暗号
化前の状態、同図(b)は暗号化後の状態、同図(c)
は復号化後の状態を示している。また、図6は第1の実
施形態における列鍵と行鍵の構成を示す図である。
FIGS. 5A and 5B are diagrams for explaining the configuration of the database in the first embodiment. FIG. 5A shows a state before encryption, FIG. 5B shows a state after encryption, and FIG. (C)
Indicates the state after decoding. FIG. 6 is a diagram illustrating a configuration of a column key and a row key according to the first embodiment.

【0026】図5(a)に示すように、本装置では、行
と列からなるマトリクス形式のデータベースを備えてい
る。ここでは、個人データをデータベース化した場合を
示している。このデータベースは、1レコードが「nu
mber」,「name」,「state」,「wei
ght」,「height」,「age」,「phon
e」の各項目で構成するようにしている。
As shown in FIG. 5A, the present apparatus is provided with a matrix database composed of rows and columns. Here, a case is shown in which personal data is made into a database. In this database, one record has "nu
mber "," name "," state "," wei
ght ”,“ height ”,“ age ”,“ phon ”
e ".

【0027】このようなデータベースに対し、列鍵と行
鍵を用いて暗号化を行う。すなわち、検索に頻繁に利用
される列項目を「name」,「state」,「ag
e」とした場合に、これらの列項目の各行のデータにつ
いては、図6に示すように、「apple」,「ora
nge」,「lemon」といった各列項目に共通の列
鍵を用いて暗号化し、その他の列項目「weigh
t」,「height」,「phone」の各行のデー
タについては、各行毎に固有の鍵を用いて暗号化する。
Such a database is encrypted using a column key and a row key. That is, the column items frequently used in the search are “name”, “state”, “ag”.
When "e" is set, as shown in FIG. 6, "apple", "ora"
nge "," lemon ", and so on, using a common column key for the other column items, and the other column items" weigh ".
The data in each row of “t”, “height”, and “phone” is encrypted using a unique key for each row.

【0028】なお、「number」の列は暗号化を行
わないものとする。行鍵としては、「tiger」,
「dog」,「cat」,「mouse」,「elep
hant」,「cow」,「pig」,「rabbi
t」,「lion」といった鍵が用いられる。これらの
鍵は所定の関数を用いて各列または各行毎に数学的に発
生させることができる。
It is assumed that the "number" column is not encrypted. As the row key, "tiger",
"Dog", "cat", "mouse", "elep
hunt, "cow", "pig", "rabbi"
Keys such as "t" and "lion" are used. These keys can be generated mathematically for each column or row using a predetermined function.

【0029】図5(a)のデータベースを列鍵と行鍵を
用いて暗号化した結果を図5(b)に示す。データ記憶
装置16のデータベース格納エリア16aには、図5
(b)に示すような状態でデータベースが保存されるこ
とになる。
FIG. 5B shows the result of encrypting the database of FIG. 5A using the column key and the row key. In the database storage area 16a of the data storage device 16, FIG.
The database is stored in a state as shown in FIG.

【0030】データベースを検索する場合には、検索に
利用される列項目に対応した列鍵を用いて検索用データ
を暗号化してから検索処理を行う。例えば、「stat
e」の中の「Florida」といったデータを検索す
る場合には、まず、検索用データとして入力された「F
lorida」を「state」の列鍵「apple」
で暗号化して、「h*/fDD」を得る。この「h*/
fDD」といったデータを「state」の列の各行か
ら検索する。これにより、「number2」と「nu
mber8」に該当するデータが存在することがわか
る。
When searching the database, the search data is encrypted using the column key corresponding to the column item used for the search, and then the search process is performed. For example, "stat
When searching for data such as “Florida” in “e”, first, “F” input as search data is searched.
"lorida" is changed to the column key "apple" of "state".
To obtain “h * / fDD”. This "h * /
Data such as “fDD” is retrieved from each row of the “state” column. As a result, “number2” and “nu”
It can be seen that there is data corresponding to “mber8”.

【0031】また、暗号化されたデータベースを元に戻
す場合には、暗号化の時と同じ列鍵と行鍵を用いる。図
5(b)のデータベースを暗号化の時と同じ列鍵と行鍵
を用いて復号化すると、図5(c)に示すように元のデ
ータを得ることができる。
When the encrypted database is restored, the same column key and row key as in the encryption are used. When the database in FIG. 5B is decrypted using the same column key and row key as in the encryption, the original data can be obtained as shown in FIG. 5C.

【0032】以下に、本装置の動作について説明する。The operation of the present apparatus will be described below.

【0033】ここでは、(a)データベースを暗号化す
る場合の処理と、(b)データベースを検索する場合の
処理に分けて説明する。なお、このフローチャートで示
す各機能を実現するプログラムはCPUが読み取り可能
なプログラムコードの形態で前記プログラム記憶装置1
4の記録媒体に格納されている。また、このプログラム
はプログラムコードの形態でネットワーク回線などの伝
送媒体を介して伝送することもできる。
Here, a description will be given of (a) a process for encrypting the database and (b) a process for searching the database. The program for realizing each function shown in this flowchart is in the form of a program code readable by a CPU.
4 recording medium. This program can also be transmitted in the form of a program code via a transmission medium such as a network line.

【0034】(a)データベースを暗号化する場合 図2は本装置にて実行されるデータベース暗号化処理の
動作を示すフローチャートである。今、データベースが
暗号化されていない状態でデータ記憶装置16のデータ
ベース格納エリア16aに記憶されているものとする。
この状態が図5(a)である。
(A) Encrypting the database FIG. 2 is a flowchart showing the operation of the database encryption processing executed by the present apparatus. Now, it is assumed that the database is stored in the database storage area 16a of the data storage device 16 in an unencrypted state.
This state is shown in FIG.

【0035】まず、図示せぬデータベース暗号化設定画
面にて、暗号化対象となるデータベースを指定する(ス
テップA11)。
First, a database to be encrypted is specified on a database encryption setting screen (not shown) (step A11).

【0036】次に、そのデータベースに設けられた各列
項目の中で検索に利用する列項目と、暗号化を必要とし
ない列項目をそれぞれ設定する(ステップA12)。図
5(a)の例では、検索に利用する列項目は「nam
e」,「state」,「age」であり、暗号化を必
要としない列項目は「number」である。ここでの
設定情報はデータ記憶装置16の暗号化設定情報格納エ
リア16bに記憶される。
Next, among the column items provided in the database, a column item to be used for retrieval and a column item not requiring encryption are set (step A12). In the example of FIG. 5A, the column item used for the search is “nam
e "," state ", and" age ", and the column item that does not require encryption is" number ". The setting information here is stored in the encryption setting information storage area 16b of the data storage device 16.

【0037】次に、当該データベースの暗号化に用いる
行鍵と列鍵を決定する(ステップA13)。ここで決定
された行鍵と列鍵の情報は鍵記憶装置15に記憶され
る。
Next, a row key and a column key used for encrypting the database are determined (step A13). The information of the row key and the column key determined here is stored in the key storage device 15.

【0038】このような設定操作の後、データベースの
中の各列項目を順次指定していくと(ステップA1
4)、その指定された列項目に対する暗号化方式が前記
設定情報に基づいて判断される(ステップA15)。こ
の場合、データベースの中の「number」の列項目
については非暗号化項目として設定されているので、何
もしない。つまり、「number」の項目は元データ
のままである。
After such a setting operation, each column item in the database is sequentially designated (step A1).
4) The encryption method for the designated column item is determined based on the setting information (step A15). In this case, nothing is performed for the column item of “number” in the database because it is set as an unencrypted item. That is, the item of “number” remains the original data.

【0039】また、指定された列項目が検索に利用する
列項目として設定されている場合には、鍵記憶装置15
に記憶された当該列項目に共通の列鍵が読み出され(ス
テップA15→A16)、当該列項目の各行のデータが
その列鍵により暗号化される(ステップA17)。すな
わち、データベースの「name」,「state」,
「age」の項目の各行のデータは、図6に示すよう
に、「apple」,「orange」,「lemo
n」といった各列に固有の鍵を用いて暗号化されること
になる。
If the designated column item is set as a column item to be used for searching, the key storage device 15
Is read out (step A15 → A16), and the data of each row of the column item is encrypted with the column key (step A17). That is, "name", "state",
As shown in FIG. 6, the data of each line of the item of “age” is “apple”, “orange”, “lemo”.
n "is encrypted using a key unique to each column.

【0040】また、指定された列項目が検索に利用する
列項目として設定されていない場合、つまり、他の列項
目であった場合には、鍵記憶装置15に記憶された各行
に対応した行鍵が読み出され(ステップA15→A1
8)、当該列項目の各行のデータがそれぞれに固有の行
鍵により暗号化される(ステップA19,A20)。す
なわち、データベースの中の「state」,「wei
ght」,「height」の各項目のデータに関して
は、図6に示すように、1行目のデータは「tige
r」,2行目のデータは「dog」,3行目のデータは
「cat」,4行目のデータは「mouse」,5行目
のデータは「elephant」,6行目のデータは
「cow」,7行目のデータは「pig」,8行目のデ
ータは「rabbit」,9行目のデータは「lio
n」といったように、各行に対応した行鍵を用いて暗号
化される。
If the designated column item is not set as a column item to be used in the search, that is, if it is another column item, a row corresponding to each row stored in the key storage device 15 The key is read (step A15 → A1)
8) The data of each row of the column item is encrypted with a unique row key (steps A19 and A20). That is, "state", "wei" in the database
As for the data of each item of “ght” and “height”, as shown in FIG.
r, the data on the second line is “dog”, the data on the third line is “cat”, the data on the fourth line is “mouse”, the data on the fifth line is “elephant”, and the data on the sixth line is “cat”. cow, the data in the seventh row is “pig”, the data in the eighth row is “rabbit”, and the data in the ninth row is “lio”.
For example, n is encrypted using a row key corresponding to each row.

【0041】このような暗号化処理がデータベースの各
列項目について繰り返し行なわれる。すべての列項目の
各行のデータの暗号化が終了すると、その暗号化データ
ベースがデータ記憶装置16のデータベース格納エリア
16aに上書き保存される(ステップA22)。この状
態が図5(b)である。
Such an encryption process is repeatedly performed for each column item of the database. When the encryption of the data in each row of all the column items is completed, the encrypted database is overwritten and stored in the database storage area 16a of the data storage device 16 (step A22). This state is shown in FIG.

【0042】(b)データベースを検索する場合 図3は本装置にて実行されるデータベース検索処理の動
作を示すフローチャートである。今、前記(a)で説明
した暗号化処理にて、データベースが暗号化されてデー
タ記憶装置16に保存されているものとする。
(B) Searching the database FIG. 3 is a flowchart showing the operation of the database search process executed by the present apparatus. Now, it is assumed that the database is encrypted and stored in the data storage device 16 in the encryption processing described in (a).

【0043】まず、図3(a)のフローチャートに示す
ように、図示せぬデータベース検索用設定画面にて、検
索情報の入力を行う(ステップB11)。検索情報の入
力とは、検索対象となる列項目と、検索用の文字列(キ
ーワード)を入力することである。これらの入力情報は
データ記憶装置16の検索設定情報格納エリア16cに
格納される。入力装置13を通じて検索情報が入力され
ると、検索前処理が実行される(ステップB12)。
First, as shown in the flowchart of FIG. 3A, search information is input on a database search setting screen (not shown) (step B11). Inputting the search information means inputting a column item to be searched and a character string (keyword) for search. These pieces of input information are stored in the search setting information storage area 16c of the data storage device 16. When search information is input through the input device 13, pre-search processing is executed (step B12).

【0044】この検索前処理では、図3(b)のフロー
チャートに示すように、検索対象として入力された列項
目が所定の列項目であるか否かが判断され(ステップC
11)、所定の列項目であることが判明した場合には
(ステップC11のYes)、その列項目に共通の列鍵
で検索用の文字列が暗号化される(ステップC12)。
In the pre-search process, as shown in the flowchart of FIG. 3B, it is determined whether or not the column item input as a search target is a predetermined column item (step C).
11) If it is determined that the column item is a predetermined column item (Yes in step C11), a character string for search is encrypted with a column key common to the column item (step C12).

【0045】所定の列項目とは、前記データベースの暗
号化時に設定された検索対象項目(検索に利用される項
目)であり、具体的には「name」,「stat
e」,「age」の各項目が該当する。この検索対象項
目に関する情報はデータ記憶装置16の暗号化設定情報
格納エリア16bに格納されている。したがって、前記
ステップC11では、この暗号化設定情報格納エリア1
6bを参照して所定の列項目であるか否かの判断を行う
ことになる。また、列項目に共通の列鍵は鍵記憶装置1
5に格納されている。したがって、前記ステップC12
では、この鍵記憶装置15から当該列項目に対応した列
鍵を読み出して検索用の文字列を暗号化することにな
る。例えば、指定項目が「state」であれば、「o
rang」といった列鍵を用いて検索用の文字列を暗号
化することになる。
The predetermined column items are search target items (items used for search) set at the time of encrypting the database, and specifically, “name”, “stat”
e) and “age”. Information on the search target item is stored in the encryption setting information storage area 16b of the data storage device 16. Therefore, in step C11, this encryption setting information storage area 1
6b, it is determined whether or not the item is a predetermined column item. The column key common to the column items is the key storage device 1
5 is stored. Therefore, step C12
Then, a column key corresponding to the column item is read from the key storage device 15 and a character string for search is encrypted. For example, if the designated item is “state”, “o”
A character string for search will be encrypted using a column key such as “range”.

【0046】また、検索対象として入力された列項目が
所定の列項目でなかった場合には(ステップC11のN
o)、前記のような検索用文字列の暗号化は行われな
い。
If the column item input as a search target is not a predetermined column item (N in step C11).
o), the search character string is not encrypted as described above.

【0047】このような検索前処理の後、データベース
の検索処理(図4参照)が行われ(ステップB13)、
その検索結果として得られたデータが表示装置12に表
示される(ステップB14)。図4にデータベースの検
索処理を示す。
After such a pre-search process, a database search process (see FIG. 4) is performed (step B13).
The data obtained as a result of the search is displayed on the display device 12 (step B14). FIG. 4 shows a database search process.

【0048】図4は前記ステップB13の検索処理の動
作を具体的に示すフローチャートである。
FIG. 4 is a flowchart specifically showing the operation of the search processing in step B13.

【0049】まず、図4(a)のフローチャートに示す
ように、検索用文字列がデータベースとの比較文字列と
してデータ記憶装置16の比較文字列格納エリア16d
にセットされる(ステップD11)。この場合、上述し
たように検索対象として入力された列項目が所定の列項
目(「name」,「state」,「age」)であ
った場合には、前記検索前処理によって、当該検索用文
字列がその列項目に対応した列鍵にて暗号化されて比較
文字列格納エリア16dにセットされる。その他の列項
目の場合には、暗号化されることなく、そのままの状態
で比較文字列格納エリア16dにセットされる。
First, as shown in the flowchart of FIG. 4A, the search character string is used as a comparison character string with the database as a comparison character string storage area 16d of the data storage device 16.
Is set to (Step D11). In this case, if the column item input as a search target is a predetermined column item (“name”, “state”, “age”) as described above, the search The column is encrypted with the column key corresponding to the column item and set in the comparison character string storage area 16d. In the case of other column items, they are set in the comparison character string storage area 16d as they are without being encrypted.

【0050】次に、データ記憶装置16のデータベース
格納エリア16aに格納された暗号化データベースの列
番号による暗号化方式が判断される(ステップD1
2)。これにより、検索対象が列鍵で暗号化された所定
の列項目に該当する場合には、その対象列の各行にある
データが順次走査され(ステップD12→D13)、指
定された行に含まれた対象項目のデータの文字列と前記
比較文字列格納エリア16dにセットされた検索用文字
列(暗号化された文字列)との比較処理が行われる(ス
テップD14)。
Next, the encryption method based on the column number of the encrypted database stored in the database storage area 16a of the data storage device 16 is determined (step D1).
2). Accordingly, when the search target corresponds to a predetermined column item encrypted with the column key, the data in each row of the target column is sequentially scanned (step D12 → D13) and included in the designated row. A comparison process is performed between the character string of the data of the target item and the search character string (encrypted character string) set in the comparison character string storage area 16d (step D14).

【0051】この比較処理では、図4(b)のフローチ
ャートに示すように、データベースから取り出された対
象項目のデータの暗号化文字列と検索用の暗号化文字列
とを比較して、両者が一致するか否かを判断する(ステ
ップE11)。両者が一致した場合には(ステップE1
1のYes)、その一致した項目を含むレコードデータ
をデータベース検索結果として抽出する(ステップE1
2)。
In this comparison processing, as shown in the flowchart of FIG. 4B, the encrypted character string of the data of the target item retrieved from the database is compared with the encrypted character string for search, and both are compared. It is determined whether they match (step E11). If they match (step E1)
1; Yes), record data including the matching item is extracted as a database search result (step E1).
2).

【0052】この処理を暗号化データベースの終端まで
繰り返して、該当するデータを順次抽出し(ステップD
15)、この抽出したデータを検索結果として出力する
(ステップD20)。
This process is repeated until the end of the encrypted database, and the corresponding data is sequentially extracted (step D).
15), and output the extracted data as a search result (step D20).

【0053】具体的に説明すると、図5(b)の暗号化
データベースの例で、例えば「state」の項目の中
の「Florida」といったデータを検索することが
指定された場合には、まず、検索用データとして入力さ
れた「Florida」を「state」の列鍵「ap
ple」で暗号化して、「h*/fDD」を得る。この
「h*/fDD」といったデータを「state」の列
から検索する。これにより、「number2」と「n
umber8」に該当するデータが存在することがわか
る。
More specifically, in the example of the encrypted database shown in FIG. 5B, if it is specified to search for data such as "Florida" in the item "state", first, "Florida" input as search data is replaced with the "state" column key "ap
ple ”to obtain“ h * / fDD ”. Data such as “h * / fDD” is searched from the column of “state”. As a result, “number2” and “n”
It can be seen that there is data corresponding to “number8”.

【0054】一方、検索対象が行鍵で暗号化されたその
他の列項目に該当する場合には、その対象列の各行にあ
るデータが順次走査され(ステップD12→D16)、
指定された行に含まれた対象項目のデータが各行に固有
の行鍵によって復号化された後(ステップD17)、前
記比較文字列格納エリア16dにセットされた検索用文
字列(非暗号化文字列)との比較処理が行われる(ステ
ップD18)。
On the other hand, if the search target corresponds to another column item encrypted with the row key, the data in each row of the target column is sequentially scanned (step D12 → D16),
After the data of the target item included in the designated line is decrypted with the line key unique to each line (step D17), the search character string (non-encrypted character) set in the comparison character string storage area 16d Is performed (step D18).

【0055】この比較処理では、図4(b)のフローチ
ャートに示すように、データベースから取り出された対
象列のデータの復号化文字列と検索用の非暗号化文字列
との比較により、両者が一致するか否かを判断する(ス
テップE11)。両者が一致した場合には(ステップE
11のYes)、その一致した項目を含むレコードデー
タをデータベース検索結果として抽出する(ステップE
12)。
In this comparison processing, as shown in the flowchart of FIG. 4B, by comparing the decrypted character string of the data of the target column retrieved from the database with the non-encrypted character string for search, both are compared. It is determined whether they match (step E11). If they match (step E
11 Yes), record data including the matched item is extracted as a database search result (step E).
12).

【0056】この処理を暗号化データベースの終端まで
繰り返して、該当するデータを順次抽出し(ステップD
19)、この抽出したデータを検索結果として出力する
(ステップD20)。
This process is repeated until the end of the encrypted database, and the corresponding data is sequentially extracted (step D).
19), and outputs the extracted data as a search result (step D20).

【0057】具体的に説明すると、図5(b)の暗号化
データベースの例で、例えば「weight」の項目の
中の「163」といったデータを検索することが指定さ
れたとした場合に、まず、「weight」の1行目の
データを「tiger」といった行鍵で復号化する。同
様にして、2行目のデータを「dog」,3行目のデー
タを「cat」,4行目のデータを「mouse」,5
行目のデータを「elephant」,6行目のデータ
を「cow」,7行目のデータを「pig」,8行目の
データを「rabbit」,9行目のデータを「lio
n」といったように、各行に対応した行鍵を用いて、そ
れぞれ復号化した後に、検索用データとして入力された
「163」に基づいて「state」の列から該当する
データを検索する。これにより、「number3」と
「number9」に該当するデータが存在することが
わかる。
More specifically, in the example of the encrypted database shown in FIG. 5B, if it is specified to search for data such as "163" in the item "weight", first, The data in the first row of “weight” is decrypted with a row key such as “tiger”. Similarly, the data in the second row is “dog”, the data in the third row is “cat”, the data in the fourth row is “mouse”,
The data in the line is “elephant”, the data in the sixth line is “cow”, the data in the seventh line is “pig”, the data in the eighth line is “rabbit”, and the data in the ninth line is “lio”.
After decrypting each using a row key corresponding to each row, such as “n”, the corresponding data is searched from the “state” column based on “163” input as search data. This indicates that data corresponding to “number3” and “number9” exists.

【0058】このように、データベースを暗号化する際
に、検索に利用される所定の列項目については列共通鍵
で暗号化し、検索時には、検索用データをその列共通鍵
で暗号化してデータベース上の暗号化データと比較する
ことで高速検索を実現できる。また、所定の列項目以外
の列項目については各行毎に異なる鍵を与えて暗号化す
ることでセキュリティを高める。この場合、検索時には
各行毎の鍵を用いた復号化を必要とするため、前記所定
の列項目に対する検索に比べて時間はかかるものの、検
索に頻繁に利用される項目ではないので問題にはならな
い。
As described above, when encrypting the database, predetermined column items used for search are encrypted with the column common key, and at the time of search, the search data is encrypted with the column common key and stored in the database. High-speed search can be realized by comparing with the encrypted data. Further, security is enhanced by encrypting column items other than the predetermined column items by giving different keys to each row. In this case, at the time of retrieval, decryption using a key for each row is required. Therefore, although it takes more time than retrieval for the predetermined column item, it is not a problem because the item is not frequently used for retrieval. .

【0059】(第2の実施形態)前記第1の実施形態で
は、所定の列項目以外の列項目のデータについては、各
行毎に固有の行鍵を用いて暗号化するようにしたが、第
2の実施形態では、さらにセキュリティを高めるため、
各行毎に固有の行鍵と当該列項目に共通の列鍵とを複合
的に用いて暗号化することを特徴とする。
(Second Embodiment) In the first embodiment, the data of the column items other than the predetermined column items is encrypted using a unique row key for each row. In the second embodiment, in order to further increase security,
It is characterized in that each row is encrypted using a unique row key and a column key common to the column item in a complex manner.

【0060】図7は第2の実施形態におけるデータベー
スの構成を示す図であり、図7(a)は暗号化前の状
態、同図(b)は暗号化後の状態、同図(c)は復号化
後の状態を示している。また、図8は第2の実施形態に
おける合成鍵の構成を示す図である。
FIG. 7 is a diagram showing the configuration of a database according to the second embodiment. FIG. 7A shows a state before encryption, FIG. 7B shows a state after encryption, and FIG. Indicates the state after decoding. FIG. 8 is a diagram illustrating a configuration of a synthetic key according to the second embodiment.

【0061】図7(a)に示すように、本装置では、行
と列からなるマトリクス形式のデータベースを備えてい
る。ここでは、個人データをデータベース化した場合を
示している。このデータベースは、1レコードが「nu
mber」,「name」,「state」,「wei
ght」,「height」,「age」,「phon
e」の各項目で構成するようにしている。
As shown in FIG. 7A, the present apparatus is provided with a matrix database composed of rows and columns. Here, a case is shown in which personal data is made into a database. In this database, one record has "nu
mber "," name "," state "," wei
ght ”,“ height ”,“ age ”,“ phon ”
e ".

【0062】このようなデータベースに対し、合成鍵を
用いて暗号化を行う。すなわち、検索に頻繁に利用され
る列項目を「name」,「state」,「age」
とした場合に、これらの列項目の各行のデータについて
は、図8に示すように、「apple」,「orang
e」,「lemon」といった各列項目に共通の列鍵を
用いて暗号化し、その他の列項目「weight」,
「height」,「phone」の各行のデータにつ
いては、「banana+行鍵」,「lychee+行
鍵」,「apricot+行鍵」といったように、列鍵
と行鍵とを組み合わせて暗号化する。
Such a database is encrypted using a synthetic key. That is, the column items frequently used in the search are “name”, “state”, “age”
In this case, as shown in FIG. 8, the data of each row of these column items is "apple", "orang".
e "," lemon ", and the like, using a common column key for each column item, and encrypting the other column items" weight "," lemon ".
The data of each row of “height” and “phone” is encrypted by combining a column key and a row key, such as “banana + row key”, “lyche + row key”, and “apricot + row key”.

【0063】なお、「number」の列は暗号化を行
わないものとする。行鍵としては、「tiger」,
「dog」,「cat」,「mouse」,「elep
hant」,「cow」,「pig」,「rabbi
t」,「lion」といった鍵が用いられる。これらの
鍵は所定の関数を用いて各列または各行毎に数学的に発
生させることができる。
It is assumed that the "number" column is not encrypted. As the row key, "tiger",
"Dog", "cat", "mouse", "elep
hunt, "cow", "pig", "rabbi"
Keys such as "t" and "lion" are used. These keys can be generated mathematically for each column or row using a predetermined function.

【0064】図7(a)のデータベースを合成鍵を用い
て暗号化した結果を図7(b)に示す。データ記憶装置
16のデータベース格納エリア16aには、図7(b)
に示すような状態でデータベースが保存されることにな
る。
FIG. 7B shows the result of encrypting the database shown in FIG. 7A using the synthetic key. In the database storage area 16a of the data storage device 16, FIG.
The database is saved in the state as shown in FIG.

【0065】データベースを検索する場合に、前記第1
の実施形態と同様に、検索に利用される列項目に共通の
列鍵を用いて検索用データを暗号化してから検索処理を
行えば良い。例えば、「state」の中の「Flor
ida」といったデータを検索する場合には、まず、検
索用データとして入力された「Florida」を「s
tate」の列鍵「apple」で暗号化して、「h*
/fDD」を得る。この「h*/fDD」といったデー
タを「state」の列の各行から検索する。これによ
り、「number2」と「number8」に該当す
るデータが存在することがわかる。
When searching the database, the first
As in the embodiment, the search processing may be performed after encrypting the search data using the column key common to the column items used for the search. For example, "Flor" in "state"
When searching for data such as "ida", first, "Florida" input as search data is replaced with "s
"h *" encrypted with the column key "apple"
/ FDD ". Data such as “h * / fDD” is searched from each row in the column of “state”. This indicates that data corresponding to “number2” and “number8” exists.

【0066】また、暗号化されたデータベースを元に戻
す場合には、暗号化の時と同じ合成鍵を用いる。図7
(b)のデータベースを暗号化の時と同じ合成鍵を用い
て復号化すると、図7(c)に示すように元のデータを
得ることができる。
When the encrypted database is restored, the same composite key as that used for the encryption is used. FIG.
By decrypting the database of (b) using the same synthetic key as in the encryption, the original data can be obtained as shown in FIG. 7 (c).

【0067】なお、データベースを暗号化する場合の処
理や、暗号化されたデータベースを検索する場合の処理
については、所定の列項目以外の列項目の各行のデータ
に対して列鍵と行鍵を組み合わせて暗号化する点を除い
ては前記第1の実施形態の処理(図2〜図4)と同様で
あるため、ここでは、その説明を省略するものとする。
In the process for encrypting the database and the process for searching the encrypted database, a column key and a row key are applied to the data of each row of the column items other than the predetermined column items. The processing is the same as the processing of the first embodiment (FIGS. 2 to 4) except that the encryption is performed in combination, and the description is omitted here.

【0068】このように、検索に頻繁に利用される列項
目については、その列項目に共通の列鍵を用いて暗号化
することで、前記第1の実施形態と同様に高速検索を実
現できるものであり、また、他の列項目については、列
鍵と行鍵とを複合的に用いて暗号化することで、さらに
セキュリティを強化することができる。
As described above, for a column item frequently used for retrieval, a high-speed retrieval can be realized as in the first embodiment by encrypting the column item using a column key common to the column item. For other column items, security can be further enhanced by encrypting the column item and the row key in combination.

【0069】(第3の実施形態)前記第1または第2の
実施形態では、本発明を装置単体で構成したが、データ
ベースの保管場所を離間させておき、別の情報端末から
ネットワークを介して検索を依頼するようなデータベー
スシステムを構築することも可能である。
(Third Embodiment) In the first or second embodiment, the present invention is configured as a single device. However, the storage location of the database is separated, and another information terminal is connected via a network. It is also possible to construct a database system that requests a search.

【0070】以下に、このようなデータベースシステム
について説明する。
Hereinafter, such a database system will be described.

【0071】図9は本発明の第3の実施形態に係るデー
タベースシステムの構成を示すブロック図である。本シ
ステムは、第1の端末装置20と第2の端末装置30と
を有する。第1の端末装置20と第2の端末装置30と
はネットワーク40を介して接続されている。
FIG. 9 is a block diagram showing the configuration of a database system according to the third embodiment of the present invention. This system has a first terminal device 20 and a second terminal device 30. The first terminal device 20 and the second terminal device 30 are connected via a network 40.

【0072】第1の端末装置20は、データベースサー
ビスを行うサーバコンピュータとして用いられるもので
あって、データベースの検索処理を行う検索装置21
と、データベースを保存しておくためのデータ記憶装置
22とで構成される。第2の端末装置30は、データベ
ースの検索を第1の端末装置20に依頼し、その結果を
第1の端末装置20から受け取るクライアントコンピュ
ータとして用いられるものであって、検索依頼装置31
と復号化装置32とで構成される。
The first terminal device 20 is used as a server computer for performing a database service, and is a search device 21 for performing a database search process.
And a data storage device 22 for storing a database. The second terminal device 30 is used as a client computer that requests the first terminal device 20 to search the database and receives the result from the first terminal device 20.
And the decoding device 32.

【0073】このようなデータベースシステムにあって
は、第1の端末装置20において、図2で説明したよう
に、データベースの所定の列項目の各行のデータを当該
列項目に共通の列鍵を用いて暗号化し、その他の列項目
の各行のデータについては各行毎に固有の行鍵を用いて
暗号化してデータ記憶装置22に保存しておくものとす
る。
In such a database system, as described with reference to FIG. 2, in the first terminal device 20, data of each row of a predetermined column item of the database is written using a column key common to the column item. The data in each row of the other column items is encrypted using a unique row key for each row and stored in the data storage device 22.

【0074】ここで、第2の端末装置30から第1の端
末装置20に対してデータベースの検索を依頼する際
に、図3の検索前処理までを第2の端末装置30側で実
行する。すなわち、第2の端末装置30の検索依頼装置
31によって、検索対象として入力された列項目が所定
の列項目であるか否かを判断し、所定の列項目である場
合に、検索用の文字列(キーワード)を当該列項目に共
通の列鍵を用いて暗号化する。その他の列項目が検索対
象である場合には、このような暗号化は不要である。
Here, when the second terminal device 30 requests the first terminal device 20 to search the database, the processing up to the search pre-processing shown in FIG. 3 is executed on the second terminal device 30 side. That is, the search request device 31 of the second terminal device 30 determines whether or not the column item input as the search target is a predetermined column item. A column (keyword) is encrypted using a column key common to the column item. If other column items are to be searched, such encryption is unnecessary.

【0075】検索前処理の後、第2の端末装置30から
検索用文字列をネットワーク40を介して第1の端末装
置20に送る。第1の端末装置20側では、この検索用
文字列を受けることにより、図4で説明したような検索
処理を実行する。
After the pre-search processing, the second terminal device 30 sends a search character string to the first terminal device 20 via the network 40. The first terminal device 20 executes the search processing as described in FIG. 4 by receiving the search character string.

【0076】すなわち、第1の端末装置20の検索装置
21により、検索対象が所定の列項目か否かを判断し、
所定の列項目であれば、第2の端末装置30から取得し
た検索用文字列(暗号化文字列)とデータ記憶装置22
内の暗号化データベースの当該列項目の各行のデータと
を比較して、該当するデータを抽出するといった処理を
行う。また、検索対象が所定の列項目以外の列項目であ
れば、データ記憶装置22内の暗号化データベースの当
該列項目のデータを各行毎の鍵で復号化してから、第2
の端末装置30から取得した検索用文字列(非暗号化文
字列)とその復号化された各行のデータとを比較して、
該当するデータを抽出するといった処理を行う。
That is, the search device 21 of the first terminal device 20 determines whether or not the search target is a predetermined column item.
If it is a predetermined column item, the search character string (encrypted character string) acquired from the second terminal device 30 and the data storage device 22
Then, a process of comparing the data of each row of the corresponding column item of the encrypted database in the table and extracting the corresponding data is performed. If the search target is a column item other than the predetermined column item, the data of the column item in the encrypted database in the data storage device 22 is decrypted using the key for each row, and then the second
The search character string (unencrypted character string) obtained from the terminal device 30 of the above is compared with the data of each decrypted line,
Processing such as extracting relevant data is performed.

【0077】このようにして検索結果が得られると、第
1の端末装置20はその検索結果として得られたデータ
を暗号化の状態のままでネットワーク40を介して第2
の端末装置30に返信する。第2の端末装置30は、第
1の端末装置20と共通の暗号鍵を持っている。したが
って、第1の端末装置20から検索結果を受信すると、
内部の復号化装置32にて、そのデータを暗号鍵を用い
て復号化することができる。この場合、第1の端末装置
20と第2の端末装置30との間で、常に暗号化された
状態でデータがやり取りされるので、データベースのセ
キュリティを確保することができる。
When the search result is obtained in this way, the first terminal device 20 transmits the data obtained as the search result to the second terminal via the network 40 in the encrypted state.
To the terminal device 30. The second terminal device 30 has a common encryption key with the first terminal device 20. Therefore, when the search result is received from the first terminal device 20,
The data can be decrypted by the internal decryption device 32 using the encryption key. In this case, since the data is always exchanged between the first terminal device 20 and the second terminal device 30 in an encrypted state, the security of the database can be ensured.

【0078】このように、第1の端末装置20側にデー
タベースを持たせて、第2の端末装置30からのアクセ
スによってデータベース検索を行うようにしたデータベ
ースシステムであっても、検索に頻繁に使う列項目のデ
ータを当該列項目に共通の列鍵を用いて暗号化し、その
他の列項目のデータについては各行毎に固有の行鍵を用
いて暗号化しておくことで、セキュリティを高めると共
に高速検索を実現することができる。
As described above, even in a database system in which a database is provided on the first terminal device 20 side and a database search is performed by access from the second terminal device 30, it is frequently used for search. Enhance security and perform high-speed search by encrypting column item data using a common column key for the column item and encrypting other column item data using a unique row key for each row. Can be realized.

【0079】なお、前記所定の列項目以外の列項目のデ
ータについては、前記第2の実施形態で説明したよう
に、各行毎に固有の行鍵と当該列項目に共通の列鍵とを
複合的に用いて暗号化することでも良く、このようにす
れば、さらにセキュリティを強化することができる。
As for the data of the column items other than the predetermined column item, as described in the second embodiment, a unique row key for each row and a column key common to the column item are combined. Alternatively, the encryption may be performed by using the encryption in this way, and in this case, the security can be further enhanced.

【0080】(暗号化方式)次に、本発明に適用される
データベースの暗号化方式について説明する。
(Encryption System) Next, a database encryption system applied to the present invention will be described.

【0081】本発明では、データベースの暗号化アルゴ
リズムとして多次元空間回転方式(多次元空間ベクトル
方式)を用いる。この多次元空間回転方式は、所定の関
数に基づいて多次元空間に逐次ベクトルを発生させ、こ
れらのベクトル成分を暗号のキーストリームとするもの
である。この多次元空間回転方式では、演算能力の低い
情報処理装置でも計算できるので、携帯型の端末に適用
するのに相応しい。つまり、本発明のデータベースを外
部からアクセスするような環境において、データの機密
性を保持して処理するためには、このような暗号化方式
を採用することが望ましい。
In the present invention, a multidimensional space rotation method (multidimensional space vector method) is used as a database encryption algorithm. In the multidimensional space rotation method, vectors are sequentially generated in a multidimensional space based on a predetermined function, and these vector components are used as a key stream for encryption. This multidimensional spatial rotation method is suitable for application to a portable terminal because it can be calculated even with an information processing device having a low computing capacity. In other words, in an environment where the database of the present invention is accessed from the outside, it is desirable to employ such an encryption method in order to process the data while maintaining the confidentiality.

【0082】以下に、図10および図11を参照して、
多次元空間回転方式を用いた暗号化と復号化の処理を示
す。
Hereinafter, referring to FIGS. 10 and 11,
2 shows encryption and decryption processing using a multidimensional spatial rotation method.

【0083】図10(a)は多次元空間回転方式を用い
た場合での暗号化の処理動作を示すフローチャートであ
る。
FIG. 10A is a flowchart showing an encryption processing operation when the multidimensional space rotation method is used.

【0084】暗号化の対象となる原データをMとする
(ステップF11)。このデータMは、バイナリデータ
である。まず、このデータMに対してbit単位でスク
ランブル1をかける(ステップF12)。こうして得ら
れたデータをM´とする(ステップF13)。
The original data to be encrypted is set to M (step F11). This data M is binary data. First, scramble 1 is applied to this data M in bit units (step F12). The data thus obtained is defined as M '(step F13).

【0085】ここで、このデータM´に数学的に順次生
成される乱数をXOR(排他的論理和)して暗号化を行
う(ステップF14)。このとき、乱数の発生の関数に
多次元ベクトルrを用いることが多次元空間回転方式の
特徴である。この場合、多次元ベクトルrを発生させる
関数、あるいは、その関数に用いられる定数は暗号化キ
ー(秘密・公開キー)で決定される。
Here, the data M 'is subjected to XOR (exclusive OR) with a random number generated mathematically in sequence to perform encryption (step F14). At this time, the use of the multidimensional vector r as a function for generating random numbers is a feature of the multidimensional spatial rotation method. In this case, a function for generating the multidimensional vector r or a constant used for the function is determined by an encryption key (a secret / public key).

【0086】すなわち、暗号化に際し、秘密キー
(P1 ,P2 )および公開キー(P3 ,P 4 )を定数と
して用いた関数に従って多次元ベクトルrを生成し、M
´XOR rといった論理演算を行ってデータM´を暗号化
する。こうして得られた暗号データをCとする(ステッ
プF15)。
That is, a secret key is used for encryption.
(P1, PTwo) And public key (PThree, P Four) With a constant
Generates a multidimensional vector r according to the function used
Perform logical operation such as' XOR r 'to encrypt data M'
I do. The encrypted data thus obtained is designated as C (step
F15).

【0087】具体的に説明すると、例えば図11に示す
ように、rが3次元ベクトル(x,y,z)であり、そ
のベクトル成分x,y,zの計算精度が16bitであ
るとする。この3次元ベクトルr(x,y,z)を後述
する式(1)に従ってr0 ,r1 ,r2 ,r3 …といっ
たように順次発生する。
More specifically, as shown in FIG. 11, for example, it is assumed that r is a three-dimensional vector (x, y, z) and the calculation accuracy of the vector components x, y, z is 16 bits. The three-dimensional vector r (x, y, z) is sequentially generated as r 0 , r 1 , r 2 , r 3, ... In accordance with the following equation (1).

【0088】今、データMが8bitデータの並びとし
て、m0 1 2 3 4 5 6…と与えられたと
き、Mは前記計算精度(16bit)に基づいて、その
要素の2つ(8bit)ずつに分解される。そして、3
次元ベクトルがr0 である場合には、データMとr
0 (x0 ,y0 ,z0 )とのXOR(排他的論理和)に
より、(x XOR m0 1 )(y XOR m2 3 )(z X
OR m4 5 )…といった計算が行われ、この計算結果
として、C0 1 2 3 4 5 …といった暗号デー
タCが得られる。
Now, when the data M is given as m 0 m 1 m 2 m 3 m 4 m 5 m 6 ... As a sequence of 8-bit data, M is based on the calculation accuracy (16 bits). It is decomposed into two (8 bits) each. And 3
If the dimension vector is r 0 , the data M and r
0 (x 0 , y 0 , z 0 ) and XOR (exclusive OR) with (x XOR m 0 m 1 ) (y XOR m 2 m 3 ) (z X
OR m 4 m 5 )..., And as a result of this calculation, encrypted data C such as C 0 C 1 C 2 C 3 C 4 C 5 .

【0089】このようにして得られたデータCに対し
て、さらにbit単位でスクランブル2をかける(ステ
ップF16)。こうして得られたデータをC´とし、最
終的な暗号データとして出力する(ステップF17)。
The data C thus obtained is further scrambled in bit units (step F16). The data thus obtained is set as C 'and output as final encrypted data (step F17).

【0090】なお、前記の処理で、C´を改めてM´と
見なして前記同様の暗号化を繰り返すことによって、復
号化の困難さのレベルを上げることができる。また、こ
のときの多次元ベクトルrを生成する関数の形を変えれ
ば、復号化の困難さはさらに増すことになる。
In the above-described processing, the level of difficulty in decryption can be increased by re-assuming C 'as M' and repeating the same encryption as described above. Further, if the form of the function for generating the multidimensional vector r is changed, the difficulty of decoding will be further increased.

【0091】次に、復号化の処理動作について説明す
る。
Next, the decoding operation will be described.

【0092】図6(b)は復号化の処理動作を示すフロ
ーチャートである。
FIG. 6B is a flowchart showing the operation of the decoding process.

【0093】復号化は、基本的には前記暗号化処理の逆
の処理を行えば良い。
For decryption, basically, the reverse process of the above-described encryption process may be performed.

【0094】すなわち、暗号データをC´とすると(ス
テップG11)、まず、このデータCに対してbit単
位で前記暗号化時に行ったスクランブル2とは逆のスク
ランブル2をかける(ステップG12)。これにより、
スクランブル2をかける前のデータCが得られる(ステ
ップG13)。
That is, assuming that the encrypted data is C '(step G11), first, the data C is subjected to scrambling 2 which is the reverse of the scrambling 2 performed at the time of encryption in units of bits (step G12). This allows
Data C before scrambling 2 is obtained (step G13).

【0095】次に、C XOR rといった計算を行ってデ
ータCを復号化する(ステップG14)。これにより、
暗号化を行う前のデータM´が得られる(ステップG1
5)。
Next, data C is decoded by performing calculations such as C XOR r (step G14). This allows
Data M 'before encryption is obtained (step G1).
5).

【0096】そして、このデータM´に対してもbit
単位で前記暗号化時に行ったスクランブル1とは逆のス
クランブル1をかける(ステップG12)。これによ
り、スクランブル1をかける前のデータつまり原データ
Mが得られる(ステップG17)。
The data M 'is also bit
A scramble 1 reverse to the scramble 1 performed at the time of the encryption is applied in units (step G12). As a result, data before scrambling 1, that is, original data M is obtained (step G17).

【0097】なお、暗号化の処理で、C´を改めてM´
と見なして暗号化を繰り返したり、多次元ベクトルrを
生成する関数の形を変えたりする処理が加わっていれ
ば、その処理に対応させて復号化の処理を行うものとす
る。
In the encryption process, C ′ is changed to M ′ again.
If processing for repeating encryption or changing the form of the function for generating the multidimensional vector r is added, the decryption processing is performed in accordance with the processing.

【0098】ところで、多次元ベクトルrを用いた暗号
化において、多次元ベクトルrを扱う関数を決定するパ
ラメータ(定数)の集合Pを2つの部分に分けて、 P={Ps ,Pp } と表わす。ここで、Ps は秘密パラメータであり、暗号
化キー(秘密キーP1 ,P2 )に相当する。Pp は公開
パラメータであり、暗号化キー(公開キーP3 ,P4
に相当する。
By the way, in the encryption using the multidimensional vector r, a set P of parameters (constants) for determining a function for handling the multidimensional vector r is divided into two parts, and P = {P s , P p } It is expressed as Here, P s is a secret parameter, and corresponds to an encryption key (secret keys P 1 and P 2 ). P p is a public parameter, and an encryption key (public keys P 3 and P 4 )
Is equivalent to

【0099】次に、多次元空間回転方式について、さら
に詳しく説明する。
Next, the multidimensional spatial rotation method will be described in more detail.

【0100】n(n≧1)次元の空間を張るベクトルを
rとし、その初期値r0 から逐次的に新しいベクトルr
i (i=0,1,2,3…)を発生する関数をRとす
る。このとき、ri は以下のような式(1)で表わされ
る。
A vector extending an n (n ≧ 1) -dimensional space is denoted by r, and a new vector r is sequentially obtained from its initial value r 0.
Let R be a function that generates i (i = 0, 1, 2, 3...). At this time, r i is represented by the following equation (1).

【0101】 ri =A・R(P,ri-1 )ri-1 +c …(1) ここで、Aは適当な定数係数である。Pは関数に使用さ
れる定数の集合であり、秘密キーP1 ,P2と、公開キ
ーP3 ,P4 が使用される。cはベクトルを並進移動す
る定数ベクトルである。
[0102] r i = A · R (P , r i-1) r i-1 + c ... (1) where, A is appropriate constant factor. P is a set of constants used for the function, and secret keys P 1 and P 2 and public keys P 3 and P 4 are used. c is a constant vector that translates the vector.

【0102】前記式(1)において、係数Aは関数Rに
適当な制約(例えば|R|≦1)を設けたときに、各ベ
クトルが多次元空間の閉空間領域内に存在するための条
件を与える。定数ベクトルcはベクトルri が収斂する
とき、「トリビアル」な点(例えばr=0のような無意
味な点)にならないことを保証する(勿論c=0も許さ
れる)。
In the above equation (1), the coefficient A is a condition for each vector to exist in a closed space region of a multidimensional space when an appropriate constraint (for example, | R | ≦ 1) is provided for the function R. give. When the constant vector c vector r i converges, (also permitted course c = 0) guaranteed that not a "trivial" point (e.g., meaningless terms such as r = 0).

【0103】n次元空間では、ベクトルrはn個の要素
を持つ。r=(x1 ,x2 …xn )。計算機上では、数
値データ一般に、コンパイラが定義するビット長(m)
の精度(例えば8バイト又は64ビット)で表現されて
いる。したがって、ベクトルの逐次生成法のある瞬間に
n×mのデータの精度でベクトルrを再現できないと、
それに続くベクトルrは正確には再現できない(あるい
はそうなるような関数Rを定義する)。これは、ベクト
ルrの初期値r0 についても同様で、初期値r 0 をn×
mのデータの精度で再現したときにのみ、それに続くベ
クトルr1 ,r 2 ,r3 …の再現性が保証される。
In an n-dimensional space, a vector r has n elements
have. r = (x1, XTwo... xn). On the calculator, the number
Value data Generally, the bit length (m) defined by the compiler
Expressed in precision (for example, 8 bytes or 64 bits)
I have. Therefore, at some moment in the sequential vector generation method,
If the vector r cannot be reproduced with the accuracy of nxm data,
The following vector r cannot be reproduced exactly (or
Defines such a function R). This is a vector
Initial value r of0The same applies to 0Is nx
only when reproduced with the accuracy of m data
Kutor r1, R Two, RThreeIs guaranteed.

【0104】前記式(1)を用いて得られたベクトルr
の成分を、そのデータ定義長に応じて1個乃至複数個並
べて、その総ビット長に対応した文字列(1文字あたり
8ビットが普通)とビット毎の排他論理演算(XOR)
を行う。これを第1暗号化とする。これについては、前
記図11で述べた通りある。
The vector r obtained by using the above equation (1)
Are arranged one or more according to the data definition length, a character string corresponding to the total bit length (usually 8 bits per character) and an exclusive logical operation (XOR) for each bit
I do. This is referred to as first encryption. This is as described in FIG.

【0105】この手続きは暗号解読への対策となる。こ
の場合、再度式(1)、関数Rを変えてて新しいベクト
ルを発生させ、第1暗号化と同じ手法により暗号化を行
っても良い。これを第2暗号化とする。
This procedure is a measure against decryption. In this case, a new vector may be generated by changing equation (1) and the function R again, and encryption may be performed by the same method as the first encryption. This is referred to as second encryption.

【0106】具体的な例として、n=2の場合を考え
る。
As a specific example, consider the case where n = 2.

【0107】まず、ri-1 をこの平面に立てた法線の周
りにθだけが回転する演算として、Rを定義すれば、R
は2×2のマトリックスとなり、次のように表わされ
る。
First, if R is defined as an operation in which only θ rotates around a normal line where r i−1 is set on this plane, R
Becomes a 2 × 2 matrix, and is expressed as follows.

【0108】[0108]

【数1】 (Equation 1)

【0109】この場合、θは一種の媒介変数となってい
る。すなわち、媒介変数がri-1 の関数として与えら
れ、 θ(r)=f(P,r) …(3) で表わされるとき、前記式(2)で表わされる変換は、
形式的に前記式(1)で表わされる。
In this case, θ is a kind of parameter. That is, when the parameter is given as a function of r i−1 and θ (r) = f (P, r) (3), the conversion represented by the above equation (2) becomes
Formally represented by the above equation (1).

【0110】なお、前記式(3)において、Pは関数f
に使われる定数の集合として定義されるものであり、秘
密キーP1 ,P2と、公開キーP3 ,P4 が使用され
る。
In the above equation (3), P is a function f
Is intended to be defined as a set of used is constant, the secret key P 1, P 2, the public key P 3, P 4 are used.

【0111】このように、逐次的に発生させた多次元空
間を張るベクトルrを暗号化に使うことで、RSAのよ
うな暗号化に比べ、計算機の処理精度や処理能力に依存
しない暗号化を実現できる。
As described above, by using a vector r that spans a multidimensional space generated sequentially for encryption, encryption independent of the processing accuracy and processing ability of a computer can be performed in comparison with encryption such as RSA. realizable.

【0112】さて、このような多次元空間回転方式を本
発明のデータベースの暗号化に適用する場合には、行鍵
と列鍵を r′=A・R(P,r)r +c …(4) の関数RのPとして利用する。前記式(4)のPは関数
Rに使用される定数の集合である。本発明の場合には、
「apple」,「orange」,「lemon」等
を秘密キーとして用いる。すなわち、前記の説明では、
秘密キーとしてP 1 ,P2と定めているので、例えば
「apple」を秘密キーとする場合には、P1を「a
p」、P2を「ple」とする。なお、これは一例であ
り、鍵の設定の仕方はこれに限らず、いろいろな組み合
わせが考えられる。
Now, such a multidimensional space rotation method is described in the book.
When applied to database encryption of the invention, the row key
And the column key as r '= AR (P, r) r + C (4) Used as the P of the function R. P in the above equation (4) is a function
A set of constants used for R. In the case of the present invention,
"Apple", "orange", "lemon", etc.
Is used as a secret key. That is, in the above description,
P as secret key 1, PTwoSo, for example,
When "apple" is used as a secret key, P1To "a
p ", PTwoIs “ple”. This is an example
The key setting method is not limited to this, and various combinations
Can be considered.

【0113】このように、多次元空間回転方式を本発明
のデータベースの暗号化に適用する場合には、行鍵と列
鍵を多次元空間回転方式の所定の関数の定数成分として
用いる。これにより、高精度の演算能力を必要とせず
に、解読困難な暗号結果を得ることができる。
As described above, when the multidimensional space rotation method is applied to the encryption of the database of the present invention, the row key and the column key are used as constant components of a predetermined function of the multidimensional space rotation method. As a result, a cryptographic result that is difficult to decipher can be obtained without requiring high-precision arithmetic capability.

【0114】なお、多次元空間回転方式では、次元数が
大きくなると、回転行列R(関数)の要素も多くなり、
暗号化/復号化時の演算負荷が大きくなる問題がある。
このような問題を解消する方法として、多次元空間回転
方式を用いた暗号化方式における多次元空間回転行列を
次数の少ない疑似空間回転行列に置き換えて計算する方
法がある。
In the multidimensional space rotation method, as the number of dimensions increases, the number of elements in the rotation matrix R (function) also increases.
There is a problem that the calculation load at the time of encryption / decryption increases.
As a method for solving such a problem, there is a method in which a multidimensional space rotation matrix in an encryption method using the multidimensional space rotation method is replaced with a pseudo-space rotation matrix having a small degree for calculation.

【0115】具体的に説明すると、例えば、6次元空間
における回転行列Rの要素は、式(5)のようになり、
計算量が膨大に増える。
More specifically, for example, the elements of the rotation matrix R in a six-dimensional space are as shown in Expression (5).
The amount of calculation increases enormously.

【0116】[0116]

【数2】 (Equation 2)

【0117】そこで、このような回転行列Rを疑似回転
行列Qに置き換えて計算する。疑似回転行列Qは、次数
の少ない空間回転行列の要素を対角に配置し、残りの要
素を0とした擬似的な行列である。例えば、6次元空間
の場合には、式(6)のような疑似回転行列Qを用い
る。
Therefore, the rotation matrix R is calculated by replacing the rotation matrix R with the pseudo rotation matrix Q. The pseudo rotation matrix Q is a pseudo matrix in which elements of a spatial rotation matrix having a small degree are arranged diagonally, and the remaining elements are set to 0. For example, in the case of a six-dimensional space, a pseudo rotation matrix Q as shown in Expression (6) is used.

【0118】[0118]

【数3】 (Equation 3)

【0119】なお、式(6)において、A,Bは3次元
回転行列である。
In the equation (6), A and B are three-dimensional rotation matrices.

【0120】この疑似回転行列Qと前記回転行列Rの要
素を比較して見ると、Qの要素には0が多く、計算量が
少なくて済む。しかも、暗号化としての機能も十分に果
たす。一般的には、式(7)のように、多次元空間回転
行列Qを設定すれば良い。
When comparing the pseudo rotation matrix Q with the elements of the rotation matrix R, the elements of Q have many 0s and the amount of calculation is small. Moreover, the function as the encryption is sufficiently performed. Generally, a multidimensional spatial rotation matrix Q may be set as in equation (7).

【0121】[0121]

【数4】 (Equation 4)

【0122】このように、多次元空間回転方式における
回転行列を次元数の少ない複数の回転行列の要素を対角
に配置し、残りを0要素とした疑似回転行列に置き換え
て計算することで、計算量を大幅に減らして速やかに暗
号化または復号化の処理を実行することができる。
As described above, the rotation matrix in the multidimensional space rotation method is calculated by arranging the elements of a plurality of rotation matrices having a small number of dimensions diagonally and replacing the remainder with a pseudo rotation matrix having 0 elements. The amount of calculation can be significantly reduced and the encryption or decryption process can be executed quickly.

【0123】また、別の方法として、 P=S・Q・ST …(8) として得られるPを新たな疑似空間回転行列として用い
ても良い。
[0123] In addition, as another method, may be used P obtained as P = S · Q · S T ... (8) as a new pseudo-space rotation matrix.

【0124】式(8)において、Qは前記疑似回転行列
である。Sは置換行列であり、式(9)のように、各行
各列に1の要素が1つ含まれた正方行列である。
In the equation (8), Q is the pseudo rotation matrix. S is a permutation matrix, and is a square matrix including one element in each row and each column, as in Expression (9).

【0125】[0125]

【数5】 (Equation 5)

【0126】例えば、疑似回転行列Qが前記式(6)で
表現される場合(6次元の場合)には、疑似空間回転行
列Pは、式(10)のように表せる。
For example, when the pseudo rotation matrix Q is expressed by the above equation (6) (in the case of six dimensions), the pseudo spatial rotation matrix P can be expressed by the following equation (10).

【0127】[0127]

【数6】 (Equation 6)

【0128】これは、置換行列Sが式(11)のような
場合である。
This is the case where the permutation matrix S is as shown in equation (11).

【0129】[0129]

【数7】 (Equation 7)

【0130】このように、多次元空間回転方式における
回転行列を次元数の少ない複数の回転行列の要素を対角
に配置し、残りを0要素とした疑似回転行列に置換行列
を組み合わせてできる新たな疑似回転行列に置き換えて
計算すれば、計算の行程が複雑化するため、暗号の解読
をさらに困難なものにできる。
As described above, the rotation matrix in the multidimensional space rotation method can be newly formed by arranging elements of a plurality of rotation matrices having a small number of dimensions diagonally and combining the permutation matrix with a pseudo rotation matrix having the remaining 0 elements. If the calculation is performed by replacing the pseudo rotation matrix, the calculation process becomes complicated, so that the decryption of the encryption can be made more difficult.

【0131】[0131]

【発明の効果】以上詳記したように本発明によれば、デ
ータベースを暗号化する際に、検索に利用される列項目
のデータについては当該列項目に共通の列鍵を用いて暗
号化し、その他の列項目のデータについては各行毎に固
有の行鍵を用いて暗号化するようにしたため、各行毎に
鍵を異ならせることでセキュリティを高めることがで
き、検索時には、検索用として入力されたデータを前記
所定の列項目に共通の列鍵を用いて暗号化し、その暗号
化された検索用データと暗号化データベースとを比較す
ることで高速検索を実現することができる。
As described above in detail, according to the present invention, when encrypting a database, data of a column item used for retrieval is encrypted using a column key common to the column item. The data of other column items is encrypted using a unique row key for each row, so the security can be improved by using a different key for each row, and the data is input for search at the time of search. High-speed search can be realized by encrypting data using a common column key for the predetermined column item and comparing the encrypted search data with an encrypted database.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施形態に係るデータベース管
理装置の構成を示す図。
FIG. 1 is a diagram showing a configuration of a database management device according to a first embodiment of the present invention.

【図2】前記データベース管理装置にて実行されるデー
タベース暗号化処理の動作を示すフローチャート。
FIG. 2 is a flowchart showing an operation of a database encryption process executed by the database management device.

【図3】前記データベース管理装置にて実行されるデー
タベース検索処理の動作を示すフローチャート。
FIG. 3 is a flowchart showing an operation of a database search process executed by the database management device.

【図4】前記図3のステップB13の検索処理の動作を
具体的に示すフローチャート。
FIG. 4 is a flowchart specifically showing an operation of a search process in step B13 of FIG. 3;

【図5】第1の実施形態におけるデータベースの構成を
説明するための図であり、図5(a)は暗号化前の状
態、同図(b)は暗号化後の状態、同図(c)は復号化
後の状態を示す図。
FIGS. 5A and 5B are diagrams for explaining the configuration of a database according to the first embodiment. FIG. 5A shows a state before encryption, FIG. 5B shows a state after encryption, and FIG. () Is a diagram showing a state after decoding.

【図6】第1の実施形態における列鍵と行鍵の構成を示
す図。
FIG. 6 is a diagram illustrating a configuration of a column key and a row key according to the first embodiment.

【図7】本発明の第2の実施形態におけるデータベース
の構成を示す図であり、図7(a)は暗号化前の状態、
同図(b)は暗号化後の状態、同図(c)は復号化後の
状態を示す図。
FIG. 7 is a diagram showing a configuration of a database according to a second embodiment of the present invention. FIG. 7A shows a state before encryption,
FIG. 2B shows a state after encryption, and FIG. 2C shows a state after decryption.

【図8】第2の実施形態における合成鍵の構成を示す
図。
FIG. 8 is a diagram showing a configuration of a synthetic key according to the second embodiment.

【図9】本発明の第3の実施形態に係るデータベースシ
ステムの構成を示すブロック図。
FIG. 9 is a block diagram showing a configuration of a database system according to a third embodiment of the present invention.

【図10】多次元空間回転方式を用いた場合での暗号化
処理と復号化処理の動作を示すフローチャート。
FIG. 10 is a flowchart showing an operation of an encryption process and a decryption process when a multidimensional space rotation method is used.

【図11】多次元空間回転方式を用いた場合での暗号化
の演算方法を説明するための図。
FIG. 11 is a diagram for explaining a calculation method of encryption when a multidimensional space rotation method is used.

【符号の説明】[Explanation of symbols]

11…CPU 12…表示装置 13…入力装置 14…プログラム記憶装置 15…鍵記憶装置 16…データ記憶装置 16a…データベース格納エリア 16b…暗号化設定情報格納エリア 16c…検索設定情報格納エリア 16d…比較文字列格納エリア 20…第1の端末装置 21…検索装置 22…データ記憶装置 30…第2の端末装置 31…検索依頼装置 32…復号化装置 11 ... CPU 12 ... Display Device 13 ... Input Device 14 ... Program Storage Device 15 ... Key Storage Device 16 ... Data Storage Device 16a ... Database Storage Area 16b ... Encryption Setting Information Storage Area 16c ... Search Setting Information Storage Area 16d ... Comparison Character Column storage area 20 first terminal device 21 search device 22 data storage device 30 second terminal device 31 search request device 32 decoding device

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B017 AA03 BA07 CA16 5B075 KK54 KK63 NK02 NR03 NR20 PP22 QP10 QT06 5B082 GA11 5J104 AA01 AA18 FA00 JA04 NA02 NA27 PA07 PA14  ──────────────────────────────────────────────────続 き Continued on the front page F term (reference) 5B017 AA03 BA07 CA16 5B075 KK54 KK63 NK02 NR03 NR20 PP22 QP10 QT06 5B082 GA11 5J104 AA01 AA18 FA00 JA04 NA02 NA27 PA07 PA14

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 データベースの所定の列項目のデータに
ついて当該列項目に共通の列鍵を用いて暗号化し、その
他の列項目のデータについては各行毎に固有の行鍵を用
いて暗号化する暗号化手段と、 この暗号化手段によって暗号化されたデータベースを記
憶する記憶手段とを具備したことを特徴とするデータベ
ース管理装置。
1. An encryption method for encrypting data of a predetermined column item of a database using a common column key for the column item, and encrypting data of other column items using a unique row key for each row. A database management device comprising: an encrypting unit; and a storage unit that stores a database encrypted by the encrypting unit.
【請求項2】 前記所定の列項目を検索対象とした場合
に、検索用として入力されたデータを前記所定の列項目
に共通の列鍵を用いて暗号化し、その暗号化された検索
用データと前記記憶手段に記憶された暗号化データベー
スの各項目データとを比較して検索処理を行うデータベ
ース検索手段を具備したことを特徴とする請求項1記載
のデータベース管理装置。
2. When the predetermined column item is set as a search target, data input for search is encrypted using a column key common to the predetermined column item, and the encrypted search data is used. 2. The database management apparatus according to claim 1, further comprising a database search unit that performs a search process by comparing the data with each item data of the encrypted database stored in the storage unit.
【請求項3】 前記暗号化手段は、データベースの所定
の列項目のデータを当該列項目に共通の列鍵を用いて暗
号化し、その他の列項目のデータについては各行毎に固
有の行鍵と当該列項目に共通の列鍵とを複合的に用いて
暗号化することを特徴とする請求項1記載のデータベー
ス管理装置。
3. The encryption means encrypts data of a predetermined column item in a database using a column key common to the column item, and encrypts data of other column items with a unique row key for each row. 2. The database management apparatus according to claim 1, wherein the column item is encrypted using a common column key in combination.
【請求項4】 前記暗号化手段は、所定の関数に基づい
て多次元空間に逐次ベクトルを発生させ、これらのベク
トル成分を暗号のキーストリームとした暗号化方式方式
を用い、前記行鍵および列鍵を前記関数の定数としてデ
ータベースの暗号化を行うことを特徴とする請求項1記
載のデータベース管理装置。
4. The encryption means according to claim 1, wherein said encrypting means sequentially generates vectors in a multidimensional space based on a predetermined function, and uses an encryption method in which these vector components are used as a key stream of encryption. 2. The database management apparatus according to claim 1, wherein the database is encrypted using a key as a constant of the function.
【請求項5】 データベースを有する第1の情報端末
と、この第1の情報端末にデータベースの検索を依頼す
る第2の端末とを有し、これらをネットワークを介して
接続してなるデータベースシステムにおいて、 前記第1の情報端末側で、前記データベースの所定の列
項目のデータについて当該列項目に共通の列鍵を用いて
暗号化し、その他の列項目のデータについては各行毎に
固有の行鍵を用いて暗号化し、 前記第2の情報端末から前記所定の列項目を検索対象と
してデータベースの検索を依頼する際に、検索用として
入力されたデータを当該列項目に共通の列鍵を用いて暗
号化し、その暗号化された検索用データを前記ネットワ
ークを介して前記第1の情報端末に送り、 前記第1の情報端末側で、前記検索用データに基づいて
前記暗号化データベースの検索処理を行い、その検索結
果として得られたデータを暗号化された状態で前記ネッ
トワークを介して前記第2の情報端末に返信することを
特徴とするデータベースシステム。
5. A database system comprising: a first information terminal having a database; and a second terminal requesting the first information terminal to search the database, and connecting these via a network. On the side of the first information terminal, data of a predetermined column item of the database is encrypted using a column key common to the column item, and a unique row key is provided for each row for data of other column items. When the second information terminal requests a database search with the predetermined column item as a search target, data input for search is encrypted using a column key common to the column item. And sends the encrypted search data to the first information terminal via the network, and on the first information terminal side, encrypts the encrypted search data based on the search data. A database system which performs a database search process and returns data obtained as a result of the search in an encrypted state to the second information terminal via the network.
【請求項6】 所定の列項目のデータが当該列項目に共
通の列鍵を用いて暗号化されているデータベースを管理
するデータベース管理装置であって、 所定の列項目を対象にしたデータ検索をする際、検索用
に入力されたデータを前記列鍵を用いて暗号化する暗号
化手段と、 この暗号化された検索用データと前記暗号化されている
データベースの各項目データとを比較して検索処理を行
う検索手段とを具備したことを特徴とするデータベース
管理装置。
6. A database management apparatus for managing a database in which data of a predetermined column item is encrypted using a column key common to the column item, wherein a data search for the predetermined column item is performed. And encrypting the data input for search using the column key, and comparing the encrypted search data with each item data of the encrypted database. A database management device comprising: a search unit that performs a search process.
【請求項7】 データベースの少なくとも1つの列項目
データを当該列項目に共通の列鍵を用いて暗号化する暗
号化装置であって、 暗号化の対象となる原データを取得する原データ取得手
段と、 少なくとも前記列鍵によってを決定される関数を用い
て、n(n≧1)次元の空間の閉領域内に定義されたベ
クトルを逐次的に生成するベクトル生成手段と、 前記原データ取得手段によって得られた原データと前記
ベクトル生成手段によって生成されたベクトルの成分と
の論理演算をビット単位で行って暗号データを生成する
論理演算手段とを具備したことを特徴とする暗号化装
置。
7. An encryption device for encrypting at least one column item data of a database using a column key common to the column items, wherein the original data acquisition means acquires original data to be encrypted. Vector generating means for sequentially generating vectors defined in a closed region of an n-dimensional (n ≧ 1) space using at least a function determined by the column key; and the original data obtaining means. A logical operation means for performing a logical operation on the bit data of the original data obtained by the above and the components of the vector generated by the vector generation means to generate encrypted data.
【請求項8】 コンピュータに、 データベースの所定の列項目のデータについて当該列項
目に共通の列鍵を用いて暗号化し、その他の列項目のデ
ータについては各行毎に固有の行鍵を用いて暗号化する
暗号化機能と、 この暗号化機能の実行結果として得られた暗号化データ
ベースに対するデータ検索を行う検索機能とを実行させ
るためのプログラムを記録したコンピュータ読み取り可
能な記録媒体。
8. A computer encrypts data of a predetermined column item of a database using a common column key for the column item, and encrypts data of other column items using a unique row key for each row. A computer-readable recording medium storing a program for executing an encryption function to be encrypted and a search function to search data in an encrypted database obtained as a result of executing the encryption function.
【請求項9】 所定の列項目のデータが当該列項目に共
通の列鍵を用いて暗号化されているデータベースを管理
するためのコンピュータに、 所定の列項目を対象にしたデータ検索をする際、検索用
に入力されたデータを前記列鍵を用いて暗号化する暗号
化機能と、 この暗号化された検索用データと前記暗号化されている
データベースの各項目データとを比較して検索処理を行
う検索機能とを実行させるためのプログラムを記録した
コンピュータ読み取り可能な記録媒体。
9. A computer for managing a database in which data of a predetermined column item is encrypted using a column key common to the column item, when a data search for the predetermined column item is performed. An encryption function for encrypting data input for search using the column key, and a search process by comparing the encrypted search data with each item data of the encrypted database. And a computer-readable recording medium recording a program for executing a search function.
JP27920899A 1999-09-30 1999-09-30 Database management apparatus, database system, and recording medium Expired - Fee Related JP3921892B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP27920899A JP3921892B2 (en) 1999-09-30 1999-09-30 Database management apparatus, database system, and recording medium
US09/670,424 US7093137B1 (en) 1999-09-30 2000-09-26 Database management apparatus and encrypting/decrypting system
EP00121136.6A EP1089194B1 (en) 1999-09-30 2000-09-28 Database management apparatus and encrypting/decrypting system
KR10-2000-0057347A KR100401225B1 (en) 1999-09-30 2000-09-29 Database management apparatus
CNB00134899XA CN1327379C (en) 1999-09-30 2000-09-30 Data bank management device and encryption/deciphering system
HK01109010A HK1038806A1 (en) 1999-09-30 2001-12-22 Database management apparatus and encrypting/ decrypting system
KR10-2003-0033587A KR100398319B1 (en) 1999-09-30 2003-05-27 Encrypting/decrypting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27920899A JP3921892B2 (en) 1999-09-30 1999-09-30 Database management apparatus, database system, and recording medium

Publications (2)

Publication Number Publication Date
JP2001101055A true JP2001101055A (en) 2001-04-13
JP3921892B2 JP3921892B2 (en) 2007-05-30

Family

ID=17607950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27920899A Expired - Fee Related JP3921892B2 (en) 1999-09-30 1999-09-30 Database management apparatus, database system, and recording medium

Country Status (1)

Country Link
JP (1) JP3921892B2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055608A (en) * 2000-08-10 2002-02-20 Japan Information Technology Co Ltd Device and method for ciphering, device and method for deciphering, recording medium which records ciphering program and recording medium with deciphering program recorded thereon
JP2007500912A (en) * 2003-06-11 2007-01-18 オラクル・インターナショナル・コーポレイション Method and apparatus for encrypting database columns
WO2007122726A1 (en) * 2006-04-21 2007-11-01 Mitsubishi Denki Kabushiki Kaisha Authenticating server device, terminal device, authenticating system and authenticating method
JP2008501175A (en) * 2004-05-28 2008-01-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for querying protected structured data
JP2008517354A (en) * 2004-05-20 2008-05-22 イングリアン ネットワークス インコーポレーテッド A computer with a method of building an encrypted database index for database table search
JP2009099151A (en) * 2007-10-16 2009-05-07 Penta Security Systems Inc User query processing system and method by query encryption transformation in database including encrypted column
WO2012043012A1 (en) * 2010-09-28 2012-04-05 日本電気株式会社 Encrypted database system, client terminal, encrypted database server, natural joining method, and program
WO2012081450A1 (en) * 2010-12-13 2012-06-21 日本電気株式会社 Encoded database management system, client and server, natural joining method and program
JP5255154B1 (en) * 2012-12-26 2013-08-07 株式会社エアー Crypto system capable of partial match search
JP2017037180A (en) * 2015-08-10 2017-02-16 Kddi株式会社 Anonymity device, retrieval device, method, and program
CN112235258A (en) * 2020-09-24 2021-01-15 黄杰 Encryption/decryption method, encryption/decryption system, and encryption/decryption device for information transmission

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4081940B2 (en) * 1999-10-19 2008-04-30 カシオ計算機株式会社 Database management apparatus and recording medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09233067A (en) * 1990-07-31 1997-09-05 Hiroichi Okano Method and device for processing intelligence information
JPH11109855A (en) * 1997-10-06 1999-04-23 Casio Comput Co Ltd Enciphering device and enciphering method
JPH11143780A (en) * 1997-11-05 1999-05-28 Hitachi Ltd Method and device for managing secret information in database

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09233067A (en) * 1990-07-31 1997-09-05 Hiroichi Okano Method and device for processing intelligence information
JPH11109855A (en) * 1997-10-06 1999-04-23 Casio Comput Co Ltd Enciphering device and enciphering method
JPH11143780A (en) * 1997-11-05 1999-05-28 Hitachi Ltd Method and device for managing secret information in database

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055608A (en) * 2000-08-10 2002-02-20 Japan Information Technology Co Ltd Device and method for ciphering, device and method for deciphering, recording medium which records ciphering program and recording medium with deciphering program recorded thereon
JP2007500912A (en) * 2003-06-11 2007-01-18 オラクル・インターナショナル・コーポレイション Method and apparatus for encrypting database columns
JP4685782B2 (en) * 2003-06-11 2011-05-18 オラクル・インターナショナル・コーポレイション Method and apparatus for encrypting database columns
JP2008517354A (en) * 2004-05-20 2008-05-22 イングリアン ネットワークス インコーポレーテッド A computer with a method of building an encrypted database index for database table search
JP2008501175A (en) * 2004-05-28 2008-01-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for querying protected structured data
JPWO2007122726A1 (en) * 2006-04-21 2009-08-27 三菱電機株式会社 Authentication server device, terminal device, authentication system, and authentication method
JP4616335B2 (en) * 2006-04-21 2011-01-19 三菱電機株式会社 Authentication server device, terminal device, authentication system, and authentication method
WO2007122726A1 (en) * 2006-04-21 2007-11-01 Mitsubishi Denki Kabushiki Kaisha Authenticating server device, terminal device, authenticating system and authenticating method
JP2009099151A (en) * 2007-10-16 2009-05-07 Penta Security Systems Inc User query processing system and method by query encryption transformation in database including encrypted column
JP5776696B2 (en) * 2010-09-28 2015-09-09 日本電気株式会社 Encrypted database system, client terminal, encrypted database server, natural join method and program
WO2012043012A1 (en) * 2010-09-28 2012-04-05 日本電気株式会社 Encrypted database system, client terminal, encrypted database server, natural joining method, and program
US9147079B2 (en) 2010-09-28 2015-09-29 Nec Corporation Encrypted database system, client terminal, encrypted database server, natural joining method, and program
WO2012081450A1 (en) * 2010-12-13 2012-06-21 日本電気株式会社 Encoded database management system, client and server, natural joining method and program
US9037846B2 (en) 2010-12-13 2015-05-19 Nec Corporation Encoded database management system, client and server, natural joining method and program
JP5348337B2 (en) * 2010-12-13 2013-11-20 日本電気株式会社 Encrypted database management system, client and server, natural join method and program
JP5255154B1 (en) * 2012-12-26 2013-08-07 株式会社エアー Crypto system capable of partial match search
JP2017037180A (en) * 2015-08-10 2017-02-16 Kddi株式会社 Anonymity device, retrieval device, method, and program
CN112235258A (en) * 2020-09-24 2021-01-15 黄杰 Encryption/decryption method, encryption/decryption system, and encryption/decryption device for information transmission

Also Published As

Publication number Publication date
JP3921892B2 (en) 2007-05-30

Similar Documents

Publication Publication Date Title
KR100398319B1 (en) Encrypting/decrypting system
US9275250B2 (en) Searchable encryption processing system
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
US8930691B2 (en) Dynamic symmetric searchable encryption
US8600048B1 (en) Format-translating encryption systems
WO2024077948A1 (en) Private query method, apparatus and system, and storage medium
JP2001101055A (en) Data base managing device, data base system, enciphering device and ercording medium
US11494499B1 (en) Searching encrypted data stores
CN114398656A (en) File encryption method, file decryption method, file encryption device, file decryption device, computer equipment and storage medium
Shatilov et al. Solution for secure private data storage in a cloud
Pathak et al. A secure framework for file encryption using base64 encoding
Lapworth Parallel encryption of input and output data for HPC applications
JPWO2020145340A1 (en) Secret array access device, secret array access method, and program
Achenbach et al. Mimosecco: A middleware for secure cloud storage
CN114297274A (en) Big data extraction method and device, computer equipment and storage medium
JP2003296331A (en) Data retrieval method and system, retrieval keyword generation device and its computer program
Salmani et al. Dynamic searchable symmetric encryption with full forward privacy
CN115563638B (en) Data processing method, system, device and storage medium
US11971998B2 (en) Data comparison device, data comparison system, and data comparison method
Rajendran et al. An Efficient Ranked Multi-Keyword Search for Multiple Data Owners Over Encrypted Cloud Data: Survey
KR100924796B1 (en) System and method of order-preserving symmetric encryption for numeric data using beta expansion
JP2001117805A (en) Database managing device, database system, and recording medium
WO2024130721A1 (en) Data storage server and client devices for securely storing and retrieving data
US20240205016A1 (en) Searchable encryption
US20130036474A1 (en) Method and Apparatus for Secure Data Representation Allowing Efficient Collection, Search and Retrieval

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070212

R150 Certificate of patent or registration of utility model

Ref document number: 3921892

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: 20110302

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120302

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140302

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees