CN1303065A - 数据库管理装置和加密/解密系统 - Google Patents
数据库管理装置和加密/解密系统 Download PDFInfo
- Publication number
- CN1303065A CN1303065A CN00134899A CN00134899A CN1303065A CN 1303065 A CN1303065 A CN 1303065A CN 00134899 A CN00134899 A CN 00134899A CN 00134899 A CN00134899 A CN 00134899A CN 1303065 A CN1303065 A CN 1303065A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- database
- encryption
- row
- 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
Links
- 239000013598 vector Substances 0.000 claims abstract description 176
- 238000000034 method Methods 0.000 claims abstract description 135
- 230000008569 process Effects 0.000 claims abstract description 100
- 239000011159 matrix material Substances 0.000 claims description 129
- 238000012545 processing Methods 0.000 claims description 79
- 238000003860 storage Methods 0.000 claims description 75
- 238000004519 manufacturing process Methods 0.000 claims description 34
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 238000013519 translation Methods 0.000 claims description 3
- 230000007935 neutral effect Effects 0.000 claims description 2
- 238000013481 data capture Methods 0.000 claims 3
- 238000013459 approach Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 112
- 238000013500 data storage Methods 0.000 description 42
- 238000007726 management method Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 11
- 230000008676 import Effects 0.000 description 9
- 230000037396 body weight Effects 0.000 description 7
- 239000000284 extract Substances 0.000 description 7
- 241000282326 Felis catus Species 0.000 description 4
- 241000406668 Loxodonta cyclotis Species 0.000 description 4
- 241000283973 Oryctolagus cuniculus Species 0.000 description 4
- 241000282320 Panthera leo Species 0.000 description 4
- 241000282376 Panthera tigris Species 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 235000005979 Citrus limon Nutrition 0.000 description 3
- 244000131522 Citrus pyriformis Species 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002650 habitual effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 208000035126 Facies Diseases 0.000 description 1
- 240000008790 Musa x paradisiaca Species 0.000 description 1
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 1
- 244000018633 Prunus armeniaca Species 0.000 description 1
- 235000009827 Prunus armeniaca Nutrition 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在一数据库中,频繁检索的列项用公用密钥加密,而其他列是使用指定的行密钥加密的。由此检索处理能以高速进行,并能提高安全性。另外,通过假定要加密的原文是位串,并用随机位串执行一二进制运算来加密数据库的行和列。随机位串的获得是通过定义1个字和多个字的预定位长作为多维向量的分量,用非线性函数顺序产生多维向量而获得的。
Description
本发明涉及一用于执行加密的数据通信系统中的加密/解密系统,和一用于加密和管理数据库的数据库管理装置。
例如在广大一般用户使用的计算机和网络信息系统中,存在着一个严重的问题,即某些有预谋的用户非法存取和修改信息。因此加密技术已经被广泛使用作为有效对策。公知的加密技术详细披露在下述文献。
见ACM通信2l卷2期(1978)P120,题目:获得数字签名和公钥密码的系统,麻省理工学院(MIT)计算机科学研究所和数学研究部作者R.L.Rivest,A.Shamir和L.Adleman。
公开在这份文献中的加密方法普遍认为是一相当可靠的方法,涉及到一RSA(公开密钥密码系统)方法,从该RSA推导的系统已经研制成用于签名的鉴别系统,应用于电子贸易系统中并且已实际投入使用。
该RSA方法基于分解素数的难度是一个公钥(非对称)加密系统,通过将引发的数据除以大整数得到余数获得密码文件。RSA方法的特点是难于从两个原始素数的乘积中找出两个素数(p和q)。即使能查出两个素数的乘积也难于找出p和q或难于估计该解码操作。上述RSA方法当加密密钥的数据位长足够长时在某种意义上实用。为了保证可靠性通常用的加密密钥数据为256位长。但在某种情况下,它还不够长,实际细究起来需要512或1024位的数据长度。然而因为数据长度受计算机运算精度和运算速度限制,长的比特位是无形的。
也就是说用RSA方法和用从RSA推导出的加密方法存在着问题,这些方法的可靠性受计算机特性限制,另外,该方法用于基于加密密钥位长变化的鉴别系统的可靠性等试验时需要显著变化。
此外,该数据库管理装置必须加密和必须管理存储于其中的数据库以保证数据的安全。
为了提高安全性可执行更复杂的加密处理,但也需要长时间进行运算。
一个数据库中包含大量数据,在数据检索过程中,相关于一特定项和与已知条件符合的数据从大量数据中选择,而包含有与该条件符合的项数据的记录(行数据)被输出。因此在处理大量数据的数据检索系统中延长运算时间会造成系统特性降低。
如上所述含有机密数据的数据库需要保证其安全性。为提高安全性,加密处理数据库,该处理如出现问题会降低数据库的可用性。
按惯例,当加密数据库时,通常用例如用口令等产生的固定加密密钥加密全部目标文件。
但如上所述,因为加密处理已经根据惯用系统使用固定加密密钥被执行。每个数据项的安全级被平均。此外,当存在含有相同的数据的多个项目时,输出相同的加密结果,由此产生了解密该加密密钥的可能性。
本发明目的在于提供一加密/解密装置,该装置能够在没有精密运算的结果的情况下进行加密处理。且能实现一通用的加密/解密处理,该处理具有高可靠性和易于相加和变化一应用。
本发明另一目的是提供一数据库管理装置,该装置能够保证数据库安全并快速的检索数据。
本发明又一目的是提供一数据库管理装置,能够加密数据库中的指定数据项使其具有比其他数据项更高的安全性。本发明的数据库管理装置加密检索处理中的一列项数据,该检索过程使用了通常用在该列项的列密钥和使用指定给每行的行密钥加密其他列项。
本发明的加密设备包括:原文件数据获得单元,用于获得将要加密的原文件数据;向量产生单元,用于顺序产生限定在n(n≥1)维空间封闭区中的向量;和一逻辑运算单元,用于通过逻辑运算产生加密的数据,该运算是在由向量产生单元产生的向量元素和原文件获得单元获得的原文件数据基础上进行的。另方面本发明的解密设备也包括向量产生单元,和逆逻辑运算单元,它使用密码文件通过该逻辑运算的逆运算解码原文件数据。
本发明的数据库管理装置,在加密处理时使用本发明的加密设备,而当把密码文件数据解密为原文件数据时使用本发明的解密设备。
本发明的加密系统包括:向量产生单元,用于由n(n≥1)维空间封闭区中定义的各向量元素和由参数组p确定的角Ωn产生向量rj,产生向量rj采用了这样的方法,使非线性函数顺序产生的各向量rj(j≥0)在n维空间互相不匹配,该非线性函数包括:用于旋转该向量的至少n维旋转矩阵;和一个二进制运算单元,采用原文件数据和由向量产生单元产生的向量rj的二进制运算产生加密的数据。
本发明的解密系统包括:向量产生单元,用于由n(n≥1)维空间封闭区中定义的各向量元素和由参数组p确定的角Ωn产生向量rj,产生向量rj采用了这样的方法。使非线性函数产生顺序的各向量rj(j≥0)在n维空间互相不匹配,该非线性函数包括:用于旋转该向量的至少n维旋转矩阵Rn(Ωn);一逆二进制运算单元,用于接收原文件数据的二进制运算产生的加密数据和类似于向量产生单元的方法产生的向量rj元素,对应于使用向量产生单元产生的向量rj和该加密的数据的二进制运算的逆运算按逆二进制运算解密该原文件。
按照上述配置,在n(n≥1)维空间封闭区中定义的向量顺序地产生,并且按照将要加密的原文件数据和向量元素的一逻辑运算产生密码文件数据。
由此,通过使用多维向量元素加密原文件数据,在没有经过例如RSA方法的精密运算的情况下也能进行加密处理和实现一可靠通用的加密/解密处理,该处理容易相加和变化一应用。
本发明数据管理装置包括:加密单元,用于使用列项中公用的列密钥(column key)加密数据库预定列项的数据,和使用指定给各行(row)的列密钥加密其它列数据;还有一存储单元,用于储存加密单元加密的数据库。
按照该配置,当加密数据库时,通过向各行赋值不同的密钥能提高安全性。当执行检索处理时,使用预定列项中公用的列密钥加密检索输入数据,将加密的检索数据的项数据和加密的数据库的数据相比较实现高速检索处理。
此外,使用指定给各行的行密钥和列项中公用的列密钥的组合通过对列项的数据而不是检索处理中用的列项进行加密能进一步提高安全性。
另外,数据库可存储在不同的位置以产生数据库系统使请求的一检索处理能通过一网络从不同的信息终端发出。在这种情况下,预定列项的数据(用在检索处理中的列项)使用列项中公用的列密钥加密,和其他列项的数据使用指定给各行的行密钥加密。当检索数据库的请求从另一信息终端发出时,使用列项中公用的列密钥加密检索的数据,并通过网络传送加密的检索数据。通过接收该检索的数据,检索加密数据库的处理能被执行,且作为检索结果获得的加密数据通过网络返回到信息终端。因此,数据在加密状态下不断传送,数据库的安全得到了保证。
当加密数据库时,本发明的数据库管理装置用列项中公用的列密钥加密检索处理时用的列项数据,用指定给各行的行密钥与用行中公用的另外密钥又加密的行密钥加密要求高安全性的其他列项的数据。
实际上,本发明的数据库管理装置包括:一第一加密单元,用列项中公用的列密钥加密数据库预定列项的数据,和用指定给各行的行密钥加密其他列项的数据;一第二加密单元,用于加密该行密钥,该行密钥用于加密第一加密单元使用各行中公用的另外密钥来加密的数据库的其他列项数据;和存储单元,用于将由第一加密单元加密的数据库与由第二加密单元加密的行密钥一起储存。
按照该配置,当加密数据库时,列项的数据而非检索处理中用的预定列项数据能使用相关于各行的不同密钥加密,使得对于列项中相同值的数据能够获得不同值的加密结果,并且利用另外密钥对该密钥(行密钥)进行再加密,然后对该密钥进行复杂的解密可实现高安全性。该行密钥用于加密该些列项。
而且当使用赋值给数据库各行的行数和使该密钥的加密更困难的随机数产生行密钥时,能成功地提高安全性。
此外一数据库系统能由第一终端设备与第二终端设备构成,第一终端设备用于管理数据库;第二终端设备独立于第一终端设备,用于检索该数据库。
在数据库中,第一终端设备加密该数据库,将已加密的数据库存储在存储媒体中,并且分配存储媒体,第二终端设备检索储存在分配媒体中已存储的加密数据库中的数据,解密所获得的数据作为该检索结果,并显示该结果数据。在此情况下,数据库中预定列项的数据用列项中公用的列密钥加密,其它列项的数据用指定给各行的行密钥加密,而该行密钥用列中公用的另外密钥加密,由此将该数据库存储在存储媒体中,并在安全得到成功保证下分配该储存介质。
图1说明本发明第一实施例的数据库管理装置的配置;
图2是由该数据库管理装置执行的数据库加密处理操作的流程图;
图3A和3B是由该数据库管理装置执行的数据库检索处理的操作流程图;
图4A和4B是图18A步骤P13表示的检索处理实际操作的流程图;
图5是说明本发明数据库管理装置第一实施例的数据库配置;图5(a)说明加密前的该状态;图5(b)说明加密后的该状态;和图5(c)说明解密后的该状态。
图6说明本发明数据库管理装置第一实施例的列密钥和行密钥的配置;
图7说明本发明数据库管理装置第二实施例的数据库配置;图7(a)说明加密前的状态;图7(b)说明加密后的状态;7(c)说明解密后的状态;
图8说明本发明数据库管理装置第二实施例的组合密钥的配置;
图9是本发明数据库管理装置第三实施例的数据库系统配置的方框图;
图10说明本发明第四实施例的数据管理装置;
图11是数据库管理装置功能配置方框图;
图12说明数据库管理装置中用于设置一基本密钥的对话的配置;
图13说明数据库管理装置中基本密钥参数表的一个例子;
图14说明数据库管理装置中用于设定密钥规范对话的配置;
图15说明数据库管理装置中密钥规范表中条目(entry)的一个例子;
图16说明在数据管理装置中加密和解密该数据库时的数据流;
图17A和17B是由数据库管理装置执行的数据库加密处理的操作流程图;
图18A和18B是由数据库管理装置执行的数据库检索处理的操作流程图;
图19A和19B是说明在图18A中的步骤P13中检索处理的实际操作流程图;
图20说明数据库管理装置中数据库的配置;图20(a)说明加密前的状态;图20(b)说明加密后的状态;图20(c)说明解密后的状态;
图21是本发明数据管理装置第五实施例的数据库配置的方框图;
图22说明数据库系统中使用的存储媒体的数据内容;
图23说明根据本发明一实施例,用于完成被加密的数据通信的系统配置;
图24是在该系统中安全设备PC电路配置方框图;
图25说明安全设备的数据库配置;
图26是在该施例中当做出一用户条目时PC和安全设备的处理操作流程图;
图27是在该实施例中加密数据时PC和安全处理操作的流程图;
图28A和28B是在该实施例中加密和解密处理操作的流程图;
图29说明本发明使用多维向量的加密操作的方法;
图30说明用于表示本发明加密/解密系统原理的系统配置;
图31说明图8中表示的设备110和112的内部功能的一个例子;
图32是产生多维向量的处理流程图;
图33是使用产生多维向量的该处理的加密/解密流程图;
图34是本发明一实施例的解密处理的流程图;
图35是本发明一实施例的产生了3维向量rj的处理的流程图;
图36是本发明一实施例产生n维旋转矩阵Rn(Ωn)的处理的流程图:
图37A至37C说明本发明一实施例的三维向量的旋转操作流程图;
以下参考附图描述本发明的一实施例。
图1说明本发明数据管理装置的配置。
该装置包括按行和列的矩阵形式的数据库,该装置具有以下功能:加密和管理数据库,加密输入的检索数据,及根据加密的检索数据检索该数据库。该装置读出存储在例如磁盘等的存储媒体中的一程序,并由该程序控制计算机操作完成。
如图1所示,该装置包括:CPU311,显示设备312,输入设备313,程序存储设备314,密钥存储设备315,和数据存储设备316。
CPU311控制整个设备,读出存储在程序存储设备314中的程序,根据该程序执行各种处理。根据本实施例,CPU311执行图2所示的数据库加密处理,及执行图3A到4B所示的数据库检索处理。
显示设备312是用于显示数据的设备,采用例如LCD(液晶显示),CRT(阴极射线管)等。输入设备313是用于输入数据的设备,例如可以是键盘,鼠标等。
程序存储设备314包括:例如ROM,RAM等和存储该装置必须的程序,该装置需要例如数据库管理程序,加密程序等。
程序存储设备314还可包括除半导体存储器外的磁和光存储媒体。存储媒体包括便携式媒体,例如CD-ROM等和固定媒体,例如硬盘等。储存在存储媒体中的全部或部分程序能够从服务器的传输控制单元接收和通过例如网络等的传输媒体等从客户接收。存储媒体可以是设置在网络中的服务器的存储媒体。而且在程序通过例如网络电路等传输到该服务器和该客户后,可以设计将该程序装在服务器和客户的设备上。
密钥存储设备315包括:例如RAM等,当数据库加密时用于存储一密钥(行密钥和列密钥)。
数据存储设备316是用于存储该装置各种必须数据的设备,它包括:例如RAM或外部存储设备例如磁盘设备等。数据存储设备316提供用于存储数据库的数据库存储区316a,用于存储当存储数据库时由操作员设置的信息(将要检索的项,非加密的项等)的加密设置信息存储区316b,用于存储当检索数据库时由操作员设置的信息(目标列项,检索的字符串等)的检索设置信息存储区316c,当数据库检索时提供用于存储比较字符串的一比较字符串存储区316d。
在描述该装置操作以前,首先描述该装置使用的数据库加密方法。
当加密数据库时,如果把不同密钥用于各行(记录),解密一个密钥就会变得更困难,由此提高安全性。但是,因为加密的数据必须使用相关于各行的密钥解密或当检索数据库时输入的检索数据(关键词)必须使用相关于各行的密钥加密,这将花费长时间以获得检索结果,另一方面,如果数据库使用相关于各列的不同密钥加密,检索数据只使用一个相应于要检索的列项的密钥加密,由此能以高速检索一数据库。但是在相同列中存在相同数据时,会输出相同的加密结果,这样可能使该密钥被解密。
本发明的特点在于,当加密数据库时,使用公用列密钥(commoncolumn key)加密检索处理中频繁使用的列项数据,利用为各行赋值的不同密钥加密其他列项的数据。也就是说把不同密钥用于各行能提高安全性,并且通过使用一列密钥加密输入检索项的数据以及将该加密结果与数据库中加密的数据相比较能够实现高速检索处理。
图5示出本发明数据库管理装置第一实施例的配置;图5(a)示出加密前的状态;图5(b)示出加密后的状态;和图5(c)示出解密后的状态。图6说明数据库管理装置第一实施例的列密钥和行密钥的配置。
如图5(a)所示,该装置具有一行和列组成的矩阵。图5(a)示出作为数据库的个人数据。该数据库有一记录包括了下列各项:‘编号’‘姓名’‘体重’‘身高’‘年龄’和‘电话’。
该数据库使用列密钥和行密钥加密。即,当检索处理中频繁使用的列项包括‘姓名’‘州’,和‘年龄’时,该列项各行数据使用列项中公用列密钥例如‘苹果’‘桔子’‘柠檬’等加密,如图6所示,其他列项的各行数据‘体重’‘身高’和‘电话’使用指定给各行的密钥加密。
假定‘编号’这行不加密。所使用的行密钥有‘虎’,‘狗’,‘猫’,‘老鼠’,‘象’,‘母牛’,‘猪’,‘兔’,‘狮子’等。
这些列密钥和行密钥确定了一预定的非线性函数,加密(解密)处理通过该函数和用该函数产生的数学向量的二进制运算(逆二进制运算)进行。在此情况下,可按如下所述使用本发明的加密/解密系统。
图5(b)说明使用列密钥和行密钥加密图5(a)所示的数据库形成的结果。数据存储设备316的数据库存储区316a存储了图5(b)所示状态的数据库。
当检索数据库时,使用与检索时所用的列项相对应的列密钥加密检索的数据,然后执行检索处理,例如当要检索‘州’中的‘佛罗里达’数据时,使用‘州’中的列密钥‘桔子’加密作为检索数据输入的‘佛罗里达’,于是获得‘h*/fDD’。为h*/fDD的数据从‘州’的列中的各行中检索出来。由此确定对应于‘编号2’和‘编号8’ 该数据存在。
此外,当把加密的数据库恢复为原始状态时,使用加密处理时用过的列密钥和行密钥。如图5(b)所示当使用数据库加密处理时所用的列密钥和行密钥解密数据时,可获得如图5(c)所示的原始数据。
该装置的操作描述如下。
加密数据库的处理(a)和检索数据库的处理(b)将分别进行描述。用于实现图2到4流程的各种功能的程序以CPU可读程序代码形式存储在程序存储设备314的存储媒体。程序也能通过传输媒体,例如网络电路,传送。
(a)加密数据库时:
图2是该装置执行数据库加密处理的流程图。图5(a)说明存储在数据存储设备316的数据库存储区316a中的数据库的未加密状态。
首先,在数据库加密设定屏幕上,指定要加密的一个数据库(步骤G11)。
然后,在数据库的列项中设定检索处理时所用的列项和不加密的列项(步骤G12)。在图20(a)所示的举例中,在检索处理时所用的列项是‘姓名’,‘州’,和‘年龄’,不加密的列项是‘编号’。设定的信息存储在数据存储设备316的加密设定信息存储区316b中。
然后确定加密数据库时所用的行密钥和列密钥(步骤G13)。有关确定行密钥和列密钥的信息存储在密钥存储设备315中。
当上述设定操作执行后,顺序指定数据库中列项(步骤G14),根据设定信息确定用于该列项的加密系统(步骤15)。在此情况下,因为‘编号’列项在数据库中设定为非加密,不执行处理。即‘编号’项按照原来的数据不改变。
当指定的列项设定为检索处理所用的列项时,存储在密钥存储设备315中的该列项的公用列密钥被读出(步骤G15和G16),该列项的各行数据用该列密钥加密(步骤G17)。即,数据库中‘姓名’,‘州’和‘年龄’各项的各行用指定给各列的密钥例如‘苹果’,‘桔子’,‘柠檬’加密,如图6所示。
当指定的列项没有设定为检索处理所用的列项,也就是作为其它列项时,存储在密钥存储设备315中的与每行相应的行密钥被读出(步骤G15和G18),该列项的各行数据用特定行密钥加密(步骤G19和G20),即数据库中“州”,“体重”,“身高”各列项的第1,2,3,4,5,6,7,8和9行数据分别用各自对应的行密钥‘老虎’,‘狗’,‘猫’,‘老鼠’,‘象’,‘母牛’,‘猪’,‘兔’,和‘狮子’来加密,如图6所示。
于是,对数据库的每个列项重复进行加密处理。当在所有列项的各行完成数据加密处理时,在数据存储设备316的数据库存储区316a改写加密的数据库。图5(b)说明该状态。
(b)检索数据库时:
图3A和3B是由该装置执行的数据库检索处理操作的流程图。
假设数据库是在(a)所述的加密处理时加密的并且存储在数据存储设备316中。
首先如图3A所示的流程图所表示,在数据库检索设定屏幕上输入检索信息(步骤H11)。输入的检索信息涉及输入要检索的列项,和检索字符串(关键词)。输入信息存储在数据存储设备316的检索设定信息存储区316c。当检索信息通过输入设备313输入时,执行预检索处理(步骤H12)。
如图3B所示的流程图所表示在该预检索处理中判定输入检索列项是否预检索处理列项(步骤I11)。如果是(在步骤I11为yes),将检索字符串用该列项的公用列密钥加密(步骤I12)。
预定列项指在加密数据库时设定的要检索的项(用在检索处理中的项),实际上就是对应于‘姓名’,‘州’,和‘年龄’这些项的各项。有关于检索项的信息存储在数据存储设备316的加密设定信息存储区316b。因此,在步骤I11,通过参考设定在信息存储区316b的加密来判定输入的列项是否预定列项。该列项的公用列密钥存储在密钥存储设备315中。因此,在步骤I12,对应于该列项的列密钥从密钥存储设备315读出,并且加密检索字符串。例如,如果指定项是‘州’,将使用例如‘桔子’等加密检索字符串。
如果输入检索列项不是预定列项(不在步骤I11),将不加密检索字符串。
在上述预检索处理后,检索数据库(参见图4A)(步骤H13),作为检索结果获得的数据显示在显示设备312上(步骤H14)。
图4A和4B说明数据库检索处理。
图4A和4B是步骤H13检索处理实际操作的流程图。
首先,如图4A所示的流程图所表示一个检索字符串作为要与数据库比较的字符串在数据存储设备的比较字符串存储区316d中设定(步骤J11)。在此情况下,如上所述,如果输入的检索列项是预定的列项‘姓名’,‘州’,和‘年龄’,那么检索字符串用对应于该列项的列密钥加密,并在预检索处理的比较字符串存储区中设定。如果输入项不是预定的列项就不加密,保持不变,并在比较字符串存储区316d中设定。
然后由数据存储设备316的数据库存储区316a中存储的加密数据库的列编号(column number)确定加密系统(步骤J12)。于是当要检索的项是用列密钥加密的预定列项时,顺序扫描目标列各行的数据(步骤J12和J13),并将包含在指定行的目标项数据的字符串与在比较字符串存储区316d中设定的检索字符串(加密字符串)比较(步骤J14)。
在比较处理中,如图4B流程图所示,从数据库检索的目标项数据的加密字符串与用在检索处理中的加密字符串比较,并且确定他们是否匹配(步骤K11)。当他们互相匹配时(步骤K11为是),包含匹配项的记录数据被提取作为数据库检索结果(步骤K12)。
该处理重复直到加密数据库终止,相应数据按顺序提取(步骤J15),提取的数据作为检索结果输出(步骤J20)。
实际应用中,在图5(b)示出的加密数据库的举例中,例如,如果在项‘州’,中的佛罗里达等被指定用于检索,接着使用该‘州’的列密钥‘桔子’加密作为检索数据输入的‘佛罗里达’,由此获得‘h*/fDD’。为h*/fDD的数据会从‘州’的列中检索出来。于是便可确定对应于‘编号2’和‘编号8’的数据存在。
另一方面,当检索项对应于用一个行密钥加密的其他列项之一时,目标列各行数据顺序被扫描(步骤J12,J16),包含在指定行目标项的数据使用指定给各行的行密钥解密(步骤J17),然后该结果与在比较字符串存储区316d中设定的检索字符串(非加密字符串)比较(步骤J18)。
在比较处理中如图4B流程图所示,判定从数据库检索出的目标列中的数据的解密字符串是否与用在检索处理中的未加密字符串匹配(步骤K11)。如他们互相匹配,那么将包含匹配项的记录数据提取作为数据库检索结果(步骤K12)。
该处理重复进行到加密数据库结束。相应的数据顺序提取出来(步骤J19),并将提取的数据作为检索结果输出。(步骤J20)。
实际应用中,在图5(b)所示加密的数据库例子中,例如当项‘体重’中的‘63’数据指定要检索时,‘体重’的行1数据使用行密钥例如‘虎’等解密。类似地行2、3、4、5、6、7、8和9的数据分别使用对应的行密钥‘狗’,‘猫’,‘老鼠’,‘象’,‘母牛’,‘兔’和‘狮子’解密,如图6所示。然后基于作为检索数据输入的63,检索‘州’或相应数据列,于是判定对应于‘编号3’和‘编号9’的数据存在。
由此,当加密数据库时,用公用列密钥加密检索处理中采用的预定列项。在检索处理中用公用列密钥加密检索数据,并与数据库中加密的数据比较,从而实现了高速检索。另外,列项而不是预定列项相关于各行被赋予不同密钥并且被加密以便提高安全性。在此情况下,当执行检索处理时,需要使用相关于各行的密钥解密。因此,该检索处理比预定列项的检索处理花费的时间要长,但是这不是一个问题,因为在检索处理中不会频繁使用该项。
根据第一实施例,列项而非预定列项使用相关于各行的特定的行密钥加密。然而根据第二实施例,使用了相关于各行的特定行密钥和一相应列项的公用列密钥在加密处理中组合使用以进一步提高安全性。
图7是根据第二实施例的数据库配置示意图;图7(a)说明加密前状态;图7(b)说明加密后状态;图7(c)说明解密后状态。图8说明根据第二实施例的组合密钥的配置。
如图7(a)所示,该装置具有行和列形式的矩阵。此处说明作为一数据库的个人数据。该数据库具有包含以下各项的一记录:‘编号’,‘姓名’,‘体重’,‘身高’,‘年龄’和‘电话’。
数据库使用组合密钥加密。即,当在检索处理中频繁使用的列项包括‘姓名’,‘州’,和‘年龄’时,使用例如‘苹果’,‘桔子’,‘柠檬’等列项中公用列密钥加密列项各行的数据。如图8所示,其他的列项‘体重’,‘身高’和‘电话’的各行数据使用列密钥和行密钥的组合密钥例如‘香蕉+1个行密钥’,‘荔枝+1个行密钥’,‘杏+1个行密钥’等加密。
假定‘编号’行不加密。‘虎’,‘狗’,‘猫’,‘老鼠’,‘象’,‘母牛’,‘猪’,‘兔’,‘狮子’用作行密钥。
该些列密钥和行密钥确定一预定非线性函数,加密(解密)处理是用该函数和通过该函数产生的数学向量的二进制运算(逆二进制运算)进行的。在该情况下本发明采用的加密/解密系统将如下所述。
图7(b)说明使用组合密钥加密图7(a)所示的数据库的结果。数据存储设备316的数据存储区316a存储图7(b)状态数据库。
当检索数据库时,如以上第一实施例所述,检索数据使用对应于检索时所用列项的公用列密钥加密,然后执行检索处理。例如当要检索项‘州’中的‘佛罗里达’数据时,作为检索数据输入的‘佛罗里达’使用‘州’的列密钥‘桔子’加密,于是获得‘h*/fDD’。为‘h*/fDD’的数据从‘州’列各行检索出来。于是确定对应于‘编号2’和‘编号8’的数据存在。
此外,当把加密的数据库恢复为原来状态时,使用加密处理时所用的组合密钥。如图7(b)所示当使用加密处理数据库所用的组合密钥解密数据时,原来数据能够获得,如图7(c)所示。
因此加密数据库或检索加密数据库时执行的处理除了列项而不是预定列项的各行数据使用列密钥和行密钥的组合密钥加密外都与上述第一实施例(图2到4B)相同,此处省略对该处理的说明。
于是,检索处理中频繁使用的列项采用列项中公用列密钥加密,由此实现如上述第一实施例所述的高速检索。其他列项使用列密钥和行密钥的组合密钥加密,因而进一步提高安全性。
根据第一和第二实施例,本发明设计为一独立的装置,但也能设计为一个数据库系统,用于通过网络从具有存储在不同位置的数据库的另外信息终端请求一检索处理。
上述所说的数据库系统将描述如下。
图9是本发明第三实施例的数据库系统配置的方框图。
该系统包括第一终端设备320和第二终端设备330。第一终端设备320通过网络340连接到第二终端设备340。
第一终端设备320用作服务器用于提供数据库服务,它包括:一检索设备321,用于检索一数据库,和一数据存储设备322,用于存储数据库。第二终端设备330用作客户机,请求第一终端设备320检索一数据库,并从第一终端设备320接收检索结果,第二终端设备包括一检索请求设备331和一解密设备332。
按照该数据库系统,第一终端设备使用以上所述参考图2中对应列项中公用列项加密数据库预定列项各行的数据,使用指定给各行的行密钥加密其他列项各行的数据,并将结果存储在存储设备322中。
当第二终端330请求第一终端320检索一数据库时,第二终端设备330如图3A所示执行该处理直到预检索处理。即,第二终端设备330的检索请求设备331判定输入检索列项是否预定的列项,当输入列项是预定列项时使用对应列项中公用列密钥加密一字符串(口令),当输入列项不是预定列项时不请求加密处理。
预检索处理后,第二终端设备330通过网络340向第一终端设备320传送检索字符串。第一终端设备320如上所述参考图4A和4B中通过接收该检索字符串执行该检索处理。
即,第一终端设备320的检索设备321判定检索列项是否一预定列项,将从第二终端设备330获得的检索字符串(加密的字符串)与数据存储设备322中加密数据库对应列项的各行数据相比较,如果该列项是预定列项,提取该对应的数据。此外,如果要检索的列项不是预定项,然后数据存储设备322中加密数据库对应列项的数据使用各行的密钥解密。从第二终端设备330获得的检索字符串(未加密字符串)与各行的解密数据比较,提取对应的数据。
当能够获得检索结果时,第一终端设备320通过该网络340将与加密数据一样的检索结果返回到第二终端设备330。第二终端设备330与第一终端设备320共用一加密密钥。因此当第二终端设备330接收来自第一终端设备320的检索结果时,解密设备332能使用该加密密钥解密该数据。在此情况下,因为加密的数据在第一终端设备320和第二终端设备330之间传递,故能保证数据库的安全。
因此,即使数据库系统在第一终端设备320具有一数据库,通过来自第二终端设备330的访问检索数据库,在检索处理中频繁使用的列项数据使用对应列项中公用列密钥加密,而其他列项数据使用指定给各行的行密钥加密,由此提高安全性和实现高速检索。
列项而非预定列项可使用组合密钥加密,该组合密钥包括指定给各行的行密钥和对应列项中公用列密钥,正如前面第二实施例中所描述,因此进一步提高安全性。
根据本发明数据库管理装置的又一实施例将描述如下。
图10说明本发明第四实施例的数据库管理装置配置示意图。
该装置加密和管理按行和列矩阵形式设置的数据库。该装置可通过计算机实现以便读出例如存储在磁盘等存储媒体上的程序并且控制计算机的运行。
如图10所示,该装置包括CPU411,一显示设备412一输入设备413,一程序存储设备414,一密钥产生设备415,一数据存储设备416,和一数据I/F417。
CPU控制整个装置,读出存储在程序存储设备414上的程序并根据该程序执行各种操作。根据该实施例,CPU411如图17A和17B所示执行数据库的加密处理和如图18A到19所示执行数据库的检索处理。
显示设备412是一个用于显示数据的设备,例如可以是一LCD(液晶显示),一CRT(阴极射线管)等。输入设备413是一输入数据的设备,例如可以是一键盘,鼠标等。
程序存储设备414包括如ROM或RAM等;存储该装置必需的程序,该装置需要的程序可以是,数据库加密程序,数据库检索程序等。
程序存储设备414可以是除半导体存储器外的磁和光存储媒体。存储媒体包括如便携式媒体CD-ROM等和固定媒体如硬盘等。储存在存储媒体上的程序可设计成使部分或全部程序通过如网络电路等的传输媒体从服务器或客户传送到传输控制单元。并且存储媒体可以是网络中提供的服务器的存储媒体,而且程序可以通过如网络电路等传输媒体传输到服务器或客户。
密钥产生设备415是用以产生加密数据库使用的加密密钥的设备,在该实施例中它包括:一基本密钥产生单元415a,一行密钥产生单元415b,一列密钥产生单元415c,用于产生三个加密密钥,即分别是基本密钥,行密钥和列密钥。
数据存储设备416存储该装置需要的各种数据和表格,它包括RAM,或例如磁盘设备等的外部存储设备。数据存储设备416包括基本密钥参数表416a,基本密钥存储单元416b,密钥规范表416c,加密数据存储单元416d和检索字符串存储单元416e。
基本密钥参数表416a是记录基本密钥参数值的表(参见图13)。基本密钥存储单元416b存储操作员按指定操作获得的基本密钥参数值。密钥规范表416c是存储相关于数据库(参考图15)各列(字段)定义的加密系统类型(非加密,行密钥,列密钥)的表。加密数据存储单元416d存储加密的数据库。检索字符串存储单元416e存储检索数据库时由操作员指定的检索字符串。
数据库I/F417是一接口,用于向独立于该装置设置的外部数据库存储设备418传送数据和从其接收数据。外部数据库存储设备418包含多个数据库文件(原始数据),通过来自该装置的访问指定要选择读出的这些数据库文件。
接着将描述将上述加密系统应用于该装置的数据库的方法。
当加密数据库时,如果将不同密钥用于各行(记录),会给解密密钥造成困难。因而提高了安全性。但是因为加密的数据必须使用相关于各行的密钥解密或当检索数据库时输入的检索数据必须使用相关于各行的密钥加密,如果不同密钥用于每一行,将花费长的时间获得检索结果。另方面,如果数据库使用相关于各行(字段)的不同密钥加密,检索数据只使用对应于要检索的列项的密钥加密,就会以高速检索一数据库。但是当在相同列中存在相同数据时,输出相同加密结果,就可能解密该密钥。
本发明的特点在于:对检索处理中频繁使用的列项数据使用公用密钥(列密钥)加密,对其他列项的数据使用相关于各行的不同密钥(行密钥)加密,而不同于各行的密钥(行密钥)使用行中另外的公用密钥(基本密钥)加密。使用基本密钥的加密处理(解密处理)可确定一预定的非线性函数,并且加密(解密)处理是通过对该函数和用该函数产生的数学向量进行二进制运算(逆运算)执行的。在该情况下的本发明加密/解密系统将在下面描述。
图20说明一个实际举例。
图20说明本发明该装置数据库的配置;图20(a)说明加密前的状态;图20(b)说明加密后的状态;图20(c)说明解密后的状态。
如图20(a)所示,该装置加密按行和列矩阵形式设置的数据库。在该例子中个人数据作为数据库被处理。该数据库包含的各列项(字段)为‘编号’,‘姓名’,‘州’,‘年龄’和‘电话’。
该数据库使用列密钥和行密钥加密。即,当检索处理中频繁采用的列项包括‘州’和‘年龄’时,该列项各行数据(记录)使用列项中公用列密钥加密,而其他列项‘姓名’和‘电话’的各行数据使用相关于各行指定的行密钥加密。这样,该结果存储在记录文件中。此时,当对应列项加密时采用的行密钥使用基本密钥加密,把加密的行密钥加到各记录,并存储该结果。该列项‘编号’不加密。
图20(b)说明使用列密钥和行密钥加密图20(a)所示数据库的结果。在此情况下例如‘线密钥’(‘line key’)的列项被加入,并且行密钥(9658,9143,8278,…)加入该列项。图10所示的数据存储设备416的加密数据存储单元416(d)在图20(b)所示状态下存储一数据库。
当检索数据库时,检索数据使用与检索时使用的列项相对应的列密钥加密,然后执行检索处理。例如当检索项‘州’中的‘佛罗里达’数据时,作为检索数据输入的‘佛罗里达’使用‘州’的列密钥加密,由此得到‘h*/fDD’。为‘h*/fDD’的数据从‘州’列各行检索出来。于是确定对应于‘编号1002’和‘编号1008’的数据存在出现。
此外当把加密数据库恢复为原来状态时,使用加密处理中采用的列密钥,行密钥和基本密钥。当如图20(b)所示该数据使用数据库加密处理中采用的列密钥,行密钥和基本密钥解密时,如图20(c)所示可获得原来数据。
加密/解密数据库的实际配置将描述如下。
图11是本发明该装置功能配置方框图。
该装置的输入处理系统包括:基本密钥规范单元421,基本密钥设定单元422,密钥规范输入单元423和密钥规范设定单元424。该装置加密处理系统包括:数据读取单元425,记录输入存储器426,加密单元427,加密的记录写入存储器428,和数据写入单元429。该装置的加密处理系统包括:加密的记录读出存储器430,解密单元431,记录输出存储器432,和数据输出单元433。此外,用到上述基本密钥参数表416a,基本密钥存储单元416b,密钥规范表416c和加密数据存储单元416d。基本密钥参数表416a用于基本密钥设定单元422。基本密钥存储单元416b,密钥规范表416c和加密数据存储单元416d均用于加密单元427和解密单元431。
图11所示的各类存储器426,428,430和432是一寄存器组并设置在数据存储设备416的预定区。
当使用该配置加密数据库时,通过基本密钥规范单元421按照操作员的操作指定基本密钥。基本密钥设定单元422从基本密钥参数表读出由基本密钥规范单元421规范的基本密钥参数值,将它在基本密钥存储单元416b中设定。
实际上,如图12所示通过基本密钥设定对话规范该基本密钥。该基本密钥设定对话是一屏幕,用于由操作员选择基本密钥规范。在屏幕上设置基本密钥规范按钮单元441,OK按钮442,取消按钮443。基本密钥规范按钮单元441包括多个按钮。当操作员按压这些按钮中的一选择按钮时,基本密钥参数值取决于按压按钮位置。OK按钮442用于确保基本密钥的规范,而取消按钮443用于取消该基本按钮的规范。
例如,假定16个按钮1到16从左到右顺序地设置在基本密钥规范按钮单元441。如图13所示基本按钮参数值相应于在基本密钥参数表416a上这些按钮的位置被定义。当操作员在基本密钥规范按钮单元441上按压按钮1时,根据基本密钥参数表416a确定基本密钥参数值为5。类似地,当按压基本密钥规范按钮单元上的按钮2时,确定基本密钥参数值为7。
然后,外部数据库存储设备418被访问,要加密的数据库从存储在外部数据库存储设备418中各种数据库中指定。指定该数据库后操作员通过密钥规范输入单元423为数据库各数据项指定一密钥规范。该密钥规范设定单元424通过密钥规范输入单元423按照密钥规范指定的操作输入密钥规范表416c中的密钥规范信息。
实际上如图14所示,密钥规范通过密钥规范设定对话输入。密钥规范设定对话是一屏幕,在其上操作员对数据库各矩阵项(字段)选择地指定加密系统(在加密时使用的密钥类型)。在屏幕上设置有加密系统规范列451,OK按钮452和一取消按钮453。
作为一加密系统,每行可用一密钥(行密钥),或可以用各列中的公用密钥(行密钥)。在该例中,一值能输入到加密系统规范列451作为用于数据库各列项的加密系统。该值可以是0(非加密),1(行密钥),或2(列密钥)。OK按钮452用于设定密钥规范。取消按钮453用于取消设定的密钥规范。当加密系统在密钥规范设定对话中指定时,规范内容作为用于各列项的密钥规范信息输入密钥规范表416c。
图15表示密钥规范表416c中条目的举例。
在该例中,数据库列编号1的项设定为非加密,列编号2的项设定为行密钥,列编号3的项设定为列密钥,列编号4的项设定为列密钥,列编号5的项设定为列密钥。具有列编号1的项是‘编码’。具有列编号2的项是‘姓名’,具有列编号3的项是‘州’,具有列编号4的项是‘年龄’,列编号为5的项是‘电话’。
当基本密钥在基本密钥存储单元416b中设定,且当用于各列项的密钥规范信息在密钥规范信息表416c中设定时,根据该设定信息数据按下面步骤加密。
即,如图11所示由外部数据库存储设备418指定的数据库由数据读单元425按行单元(记录单元)读出,并顺序地存储在记录输入存储器426中。加密单元427利用基本密钥参数表416a和基本密钥存储单元416b加密存储在记录输入存储器426中的记录。
参考图6将加密处理详细描述如下。
由加密单元427加密一记录后,将其存储在加密记录写入存储器428。通过数据写入单元429写入加密数据存储单元416d。于是在加密数据存储单元416d中产生加密数据库。
按照逆步骤解密数据库。
即,首先,将存储在加密数据存储单元416d中的加密数据库按行单元(记录单元)读出,顺序地存储在加密记录读出存储器430。解密单元431利用密钥规范表416c和基本密钥存储单元416b解密存储在加密记录读出存储器430中的加密记录。解密处理将参考图16详细描述。由解密单元431解密的记录存储在记录输出存储器432,然后通过数据输出单元433输出到数据文件434。于是,在数据文件434中产生解密数据库。如图10所示数据文件设置在数据存储设备416的预定区中。
图16说明一实例。
图16说明根据本发明的该装置加密和解密数据库时的流程。
假设指定要加密的数据库行1的记录由数据读单元425读出,并存储在记录输入存储器426中。在该情况,利用图20(a)所示数据库为例,数据含5项,即,‘1001’,‘约翰’,‘纽约’,‘22’,‘407-228-6611’,位于数据库行1被顺序存储在记录输入存储器426中。
加密单元427参照密钥规范表416c加密相关于各项的5项记录。例如图15示出了在密钥规范表416c中设定的内容,相应于列编号1记录的第一项数据(‘编号’)不加密,照原样写到加密记录写存储器428中。
此外,相应于列编号2记录的第二项数据(‘姓名’)用行密钥加密并写到加密记录写存储器428。行密钥利用行编号和随机号随机产生,并将不同值用于各行。相应于列编号3记录的第三项(‘州’),数据利用列密钥加密。该列密钥具有在列中的公用值。
类似地相应于列编号4记录的第4项(‘年龄’)数据利用列密钥加密,相应于列编号5记录的第5项(‘电话’)数据利用行密钥加密。然后将他们写到加密记录写存储器428。于是,在加密记录写存储器428中产生1行加密数据为‘1001’,‘wjls’,‘noevjolc’,‘jh’,和‘jgdltytfhDSK’。
进一步,加密单元427利用在基本密钥存储单元416b设定的参数值和行中公用的基本密钥加密加密记录时用过的行密钥,然后把加密后的行密钥加到加密记录写存储器428中。在图16的该例中数据‘9658’是加密后的行密钥。
上述处理在数据库各行重复执行,加密的数据库存储在加密数据存储单元416d中,图20(b)示出该状态如下。
当执行解密处理时执行与加密处理相反的处理。
即,把存储在加密数据存储单元416d中的加密数据库按记录单元读出到加密记录读出存储器430。假定行1的加密记录读出到加密记录读存储器430中。在上述例中,含有行密钥的6项加密数据即‘1001’,‘wjls’,‘noevjolc’,‘jh’,‘jgdltytfhDSK’,和‘9658’顺序存储在加密记录读存储器430中。
解密单元431参照密钥规范表416c相应于各项解密该6项数据记录。在图15的示例中,相应于列编号1的第一项(‘编号’)数据为非加密,该数据照原样写到记录输出存储器432中。
相应于列编号2的第二项(‘姓名’)数据利用行密钥解密,将其结果写到记录输出存储器432。因为行密钥在加密处理时是利用基本密钥加密的,该行密钥利用该基本密钥解密以便恢复为原来的数据。此外,相应于列编号3的第三项(‘州’)数据利用列密钥解密并写到记录输出存储器432。
类似地相应于列编号4的第四项(‘年龄’)数据利用列密钥解密,相应于列编号5的第四项(‘年龄’)数据利用行密钥解密。该些结果均写到记录输出存储器432。因而在记录输出存储器432中产生1行解密数据(原始数据),即,‘1001’,‘约翰’,‘22’,‘州’,‘407-228-6611’。
上述处理在加密数据库各行重复执行,并将解密数据库存储在数据文件434中,图20(c)说明了该状态。
根据本发明该装置的操作将参考流程图描述如下。
在该例中,对加密数据库时执行的处理(a)和检索数据库时执行的处理(b)分别进行描述。用于实现流程中各功能的程序是CPU可读程序代码储存在程序存储设备414的存储媒体中。程序可作为程序代码通过如网络电路的传输媒体可进行传输。
(a)当加密数据库时:
图17A和17B是本发明的该装置执行数据库加密处理操作的流程图。假定非加密数据库存储在外部数据库存储设备418中。图17A示出该状态。
如图17A(步骤N11)当加密数据库时,首先设定基本密钥。如上所述基本密钥通过基本密钥设定对话设定。
即,如图17B流程图所示,当加密数据库时图12所示基本密钥设定对话显示在显示设备412上(步骤O11)。该基本密钥设定对话用基本密钥规范按钮441提供,操作员在多个设置在基本密钥规范按钮单元441的按钮中按压选择的按钮用以指定一基本密钥。在操作员按压基本密钥规范按钮441中选择的按钮后,如果操作员按压OK按钮452就指定了一个基本密钥(步骤O12),然后如图13所示,从基本密钥参数表416a读出相应于该按钮位置的基本密钥参数值,并在基本密钥存储单元416b中设定(步骤O13)。
然后,指定要加密的数据库。根据本发明,与本装置无关的外部数据库存储设备418存储各种数据库(原始数据)。因此,当执行加密处理时,外部数据库存储单元418通过数据库I/F417被访问,要加密的数据库应被指定。
指定要加密的数据库后,设定该数据库检索处理用的列项和设定非加密列项(步骤N13)。并确定相关于各列项的加密密钥(行密钥和列密钥)(步骤N14)。
如图14所示通过密钥规范设定对话执行设定处理。该密钥规范设定对话是一屏幕,由操作员在其上对于数据库各列(字段)选择地指定一加密系统(用在加密中的密钥类型)。当指定要加密的数据库时该屏幕显示在显示设备412上。在该例中,如图13所示,可将一作为相关于数据库各列项的加密系统的值输入到密钥规范设定对话的加密系统规范列451。该值可以是0(非加密),1(行密钥),或2(列密钥)。
在该情况下,图20(a)所示的数据库中,用在检索处理的列项为列3是‘州’,列4是‘年龄’。并为该些列项指定为列密钥,为其他的项列2的‘姓名’和列5的‘电话’指定行密钥。非加密列项是列1‘编号’。
设定操作后加密数据库操作如下所述。
即,如图11所示,该数据库各行数据顺序地从第一行起读到记录输入存储器426(步骤N15)。此时由基于由密钥产生设备415的行密钥产生单元415b赋值各行的行数和随机数随机地产生行密钥,并且将该行密钥存储在数据存储设备416的预定区(步骤N16)。
读到记录输入存储器426的行数据的各列项顺序地从第一列起被指定(步骤N17),并根据存储在密钥规范表416c中的密钥规范信息确定相关于指定列项的加密系统(步骤N18),并利用一个行密钥或1个列密钥加密(步骤N19到N22)。
实际上,因为该数据库第一列项‘编号’在图15所示密钥规范表416c上设定为非加密,不采取行动(步骤N18,N23)所以项‘编号’保持原数据。
因为相关于第二行中的项‘姓名’设定了1行密钥,相应于步骤N16产生的该行编号的该行密钥(指定给各行),并从数据存储设备416的预定区读出(步骤N18,N21),然后利用该行密钥加密第二列的数据(步骤N22)。
此外,因为相关于第三列项‘州’设定了一个列密钥,相应于该列编号的该列密钥(列中公用密钥)通过密钥产生设备415的列密钥产生单元415c产生(步骤N18和N19),并利用该列密钥加密第三列中数据(步骤N20)。
类似地,第4列的项‘年龄’利用列密钥加密,而第5列的项‘电话’利用行密钥加密。
如图11所示各列项加密数据存储在加密记录写存储器428。当加密最后项时,该行密钥利用基本密钥加密,该行密钥是在行数据的第二和第三列进行加密时采用的行密钥。并将其加到密钥记录写存储器428(步骤N25)。该基本密钥由密钥产生设备415的基本密钥产生单元415a产生。该基本密钥产生单元415a从基本密钥存储单元416b读出如图12所示的基本密钥设定对话,由操作员设定参数值,并产生基于该参数值的一基本密钥。
当通过利用基本密钥加密行密钥获得的1行加密数据和数据存储在加密记录写存储器428时,该数据存储在加密数据存储单元416d(步骤N25)中。
上述加密处理在各行重复执行(步骤N26到N15)。当所有行数据全加密时,加密数据库的最终状态如图20(b)所示。在该加密数据库中,利用基本密钥加密行密钥,并加到各行的最后项。
(b)当检索数据库时:
检索加密数据库的处理将描述如下。
图18A和18B是本装置执行的数据库检索处理操作流程图。假定数据库在上述(a)所示加密处理中被加密,并存储在基本密钥存储单元416b中。
首先,如图18A的流程图所示,检索信息在图18A未示出的数据库检索设定屏幕上输入(步骤P11)。输入的检索信息指示输入检索列项和检索字符串(关键词)。输入信息存储在数据存储设备416的预定区。当检索信息通过输入设备413输入时,执行预检索处理(步骤P12)。
在预检索处理时,如图18B所示,判定输入的检索列项是否一预定列项(步骤Q11)。当判定输入项是预定的列项时(步骤Q11为是),用列项中公用列密钥加密检索字符串(步骤Q12)。
预定列项指示一个在加密数据库时设定的检索项。实际上它指示‘州’和‘年龄’的各项。相关于检索项设定一列项。因此,判定一输入项是否一预定列项,该判定取决于参照密钥规范表416c对相应列项设定的密钥类型。如果输入项是预定列项,然后由密钥产生设备415的列密钥产生单元415c产生相应于该列项的一列密钥,并利用该列密钥加密检索字符串。
如果输入的检索列项不是预定列项(步骤Q11为否),然后如上所述检索字符不加密。
在上述的预检索处理后,检索数据库(参考图19A和19B)(步骤P13),和作为检索结果获得的数据显示在显示设备412上(步骤P14) 。
图19A和19B是步骤P13检索处理实际操作的流程图。
首先,如图19A流程图所示,将一检索字符串设定为与数据存储设备416的检索字符串存储单元416e中的数据库相比较的字符串(步骤R11)。在该情况下,如果输入项是检索列项(‘州’,‘年龄’),然后将检索字符串利用相应于预检索处理中列项的列密钥加密和将该结果在检索字符串存储单元416e中设定。如果输入项不是检索列项,则不加密该输入项,并照原样将其设定在检索字符串存储单元416e中。
接着,基于该列编号确定存储在数据存储设备416的基本密钥参数表416a中的加密系统(步骤R12)。如果检索项是利用一个列密钥加密的预定列项,顺序扫描目标列中各行数据(步骤R12和R13),并将该行的加密字符串与设定在检索字符串存储单元的检索字符串(加密字符串)相比较(步骤R14)。
在该比较处理中,将从数据库检索的行加密字符串与该加密的检索字符串比较如图19B流程图所示,并判定他们是否匹配(步骤S11)。如果他们互相匹配(在步骤S11为是),则将包括匹配项的记录数据提取出来作为数据库检索结果(步骤S12)。
重复该处理直到加密数据库结束。相应的数据顺序地被提取(步骤R15),并将提取的数据作为检索结果输出(步骤R21)。
实际上,在如图20(b)所示加密数据库的示例中,当指定检索‘州’项中数据‘佛罗里达’时把作为检索数据输入的‘佛罗里达’利用列3中‘州’的列密钥加密,由此获得‘h*/fDD’。数据‘h*/fDD’是从‘州’列中检索出的。于是对应于1001和1008的编号的数据出现。
当检索项是利用行密钥加密的列项时,顺序扫描目标列行数据(步骤R12,R16)。因为当加密每个行数据时所用的每个行密钥是用基本密钥加密的,所以解密每个行密钥时必须利用基本密钥(步骤R17)。当利用基本密钥解密各行密钥时,各行加密字符串利用行密钥解密(步骤R18),并将解密字符串与设定在检索字符串存储区416e中的检索字符串(非加密字符串)相比较(步骤R19)。
在比较处理中,把从数据库检索的该行加密字符串与加密的检索字符串相比较如图19B流程图所示,并判定他们是否匹配(步骤S11)。如果他们互相匹配(在步骤S11为是),则将包括该匹配项的记录数据作为数据库检索结果提取出来(步骤S12)。
重复该处理直到加密数据库结束。顺序提取相应的数据(步骤R20)。并把提取的数据作为检索结果输出(步骤R21)。
实际上如图20(b)加密数据库示例中,当指定检索项‘姓名’中数据‘约翰’时,对应于‘姓名’行1的行密钥‘9658’(加密数据)利用基本密钥解密,并且行1的‘WJIS’利用行密钥解密,由此获得数据‘约翰’。类似地,对应于各行的行密钥(加密数据)利用基本密钥解密后,通过利用行密钥解密各行数据获得原始数据。如图20(c)所示,利用各行密钥解密项‘姓名’各行数据后,从解密数据检索出作为与检索数据输入的‘约翰’符合的数据。于是确定对应于‘1001’骗号的数据存在。
因而,当加密数据库时,利用公用列密钥来加密检索处理中所用的预定列项以使检索数据能利用检索处理中的公用列密钥加密,并与数据库中的加密数据相比较,由此实现了高速的检索处理。
根据该第四实施例,本发明数据库被设计在设备单元,但可通过把终端分为数据库管理的终端和数据库检索终端,将数据库设计在终端单元。
根据本发明的第五实施例的数据库系统将描述如下。
图21是根据第五实施例的数据库系统配置方框图。
本系统包括:服务设备1100和多个(本例中为3个终端)便携终端1200a,1200b,1200c,…服务设备1100与各便携终端1200a,1200b,1200c,…联机通信,并且他们通过存储媒体1400a,1400b,1400c,…传递数据。
服务设备1100用作服务器用于提供数据库服务,它包括:分布数据收集设备1101,用于收集分布到各终端的数据;一加密设备1102,用于加密一数据库,一AP软件存储单元1103,用于存储各种应用软件(AP);和一数据库存储单元1104,用于存储各种数据库。AP软件存储单元1103和数据库存储单元1104可以是象磁盘设备等的数据存储设备。此外,该服务没备1100也可包括通常为通用计算机提供的显示设备和输入设备等。(未在附图中示出)。
另一方面,便携终端1200a,1200b,1200c,…用作客户机,用于接收来自服务设备的数据库。
便携终端1200a,包括:解密设备1201a,用于解密加密的数据库;数据库检索设备1202a,用于检索数据库。便携终端1200b和1200c具有类似的配置,并分别包括:解密设备1201b和1201c;数据库检索设备1202b和1202c。向便携终端1200a,1200b,1200c,…提供媒体读出的设备还有显示设备,输入设备等,虽然他们未在附图中示出。该些便携终端1200a,1200b,1200c…不具有联机观看数据的浏览功能。但通过存储媒体1400a,,400b,1400c,…可与服务设备1100传递数据。
存储媒体1400a,1400b,1400c,…是例如含有CF卡(致密闪速存储器卡)的存储媒体。卡读写器1300是用于向存储媒体1400a,1400b,1400c,…写入数据和从其读出数据的设备,并且它连到服务设备1100。
按该配置,服务设备1100读出由操作员从数据库存储单元1104的各种数据库中指定的数据库,并通过加密设备1102加密。在该情况下,加密设备1102按照与第四实施例采用的方法相同的方法加密数据库。即,在检索处理中使用的预定列项用公用列密钥加密,同时列项而非预定列项用相关于各行的不同密钥加密,并且行密钥用基本密钥加密。
由加密设备1102加密的数据库存储在文件中,而加密的数据文件使用卡读写器1300存储在存储媒体1400a,1400b,1400c,…例如CF卡等中。在此情况下,当加密数据文件存储在存储媒体1400a,1400b,1400c,…时,如图22所示,除了加密数据文件1402,密钥规范表1403,基本密钥参数表1404,和应用程序1401也均被存储。
密钥规范表1403是用于储存相关于数据库各列(字段)限定的加密系统类型(非加密,行密钥,列密钥)的表。并且有类似于第四实施例(参考图15)密钥规范表416c配置的配置。基本密钥参数表1404是输入基本密钥参数值的表,并具有与第五实施例基本密钥参数表配置类似的配置(参考图13)。密钥规范表1403和基本密钥参数表1404均存储在加密设备1102中。应用程序1401在数据库检索时使用,并存储在应用软件存储单元1103中。
存储媒体1400a,1400b,1400c,…分别分布到便携终端1200a,1200b,1200c,…,各用户通过把分配的媒体1400a,1400b,1400c,…插入她或他自己的终端可检索数据。
即,例如便携终端1200a插入分布存储媒体1400a并读出存储在存储媒体1400a中的密钥规范表1403和基本密钥参数表1404,还有应用程序1401和加密数据文件1402,用于数据检索处理。然后用于数据检索处理的应用程序1401被启动,指定一个预定列项,检索加密的数据文件1402,并解密和显示作为检索结果获得的数据。
数据检索处理由提供在便携终端1200a中的数据库检索设备1202a执行。数据库检索设备1202a是根据应用程序1401操作的。并类似于第四实施例的数据库检索设备。数据通过解密设备1201a解密。解密设备1201a参照基本密钥参数表1404和密钥规范表1403执行如第四实施例中的处理的数据库解密处理。
由此,如果数据库系统由与数据库检索终端无关的数据库管理终端设计,因而用户管理的数据库能被加密并存储在存储媒体,并分配给销售的人。由此销售人能利用另外终端检索数据。在此情况下因为存储在存储媒体的数据库是按上述方法加密的,所以数据的安全得到了保证。该存储媒体不仅存储加密数据文件而且存储数据检索应用程序。因此没有必要给便携终端配置数据检索应用程序。该系统用简单便携终端能够实现。
依据该数据库管理装置,列项而不是预定列项数据在执行检索处理时被使用,该列项利用相关于各行的不同密钥被加密,而加密该列项时使用的密钥用另外密钥加密,由此使密钥的解密复杂并实现了高安全性。
用在数据库管理装置中的加密/解密系统将描述如下。
图23说明加密数据通信系统配置原理,图23中11a,11b是个人计算机(后面称为PC),12a,12b是安全设备。在该例中,数据通信建立在用户A的PC11a和用户B的PC11b之间。
PC11a和PC11b是通用计算机,并且他们分别都连到安全设备12a和12b。安全设备12a和12b包括IC卡。当他们从工厂交付使用时,信息写入了安全设备12a和12b中。该信息包括IC卡生产号,一组中各成员的用户ID,和加密密钥(私有密钥P1,P2),该信息在一组成员中共用,但不公用。
图24是PC11a电路和安全设备12a配置的方框图。PC11b和安全设备12b具有与PC11a和安全设备12a相同的配置。
PC11a是通用计算机包括:CPU21;并通过调用主程序处理数据。存储设备22,RAM23,键盘24,显示单元25和卡I/F(接口)26通过系统总线都连到CPU21。
存储设备22包括:例如硬盘设备,软盘设备,CD-ROM设备等并存储各种数据、程序等。该例中,它存储要加密的原文数据,后面将描述的鉴别文件等。另外存储在存储媒体(盘等)的程序安装在存储设备22中。CPU21读出安装在存储设备22中的程序,并依据该程序执行一处理。
RAM23用作本发明该装置的主存储器,并存储该装置执行处理时需要的各种数据。键盘24是输入设备,用于输入数据和传送各种功能的指令。显示单元25例如包括CRT(阴极射线管),LCD(液晶显示)等,是一个用于显示数据的显示设备。
卡I/F26通过连接器27连到安全设备12a,并控制输入数据到安全设备12a和从安全设备12a输出数据。
安全设备12a包括IC卡和CPU31,并通过调用二级程序处理数据。ROM32,RAM33和闪速存储器36通过系统总线连到CPU31。
ROM32储存用于实现安全设备12a功能的二级程序。RAM33储存安全设备12a执行处理需要的各种数据,该例中它包括:输入缓冲器34用于临时存储从PC11a传送的数据,输出缓冲器35用于临时存储向PC11a传送的数据。
闪速存储器36用作存储设备,用于存储图25示出的数据库41。如图25所示,数据库41包括成员中共用信息(非公用信息)和指定给各成员的信息(公用信息)。成员中共用信息(非公用信息)包括:生产号,该组各成员用户ID,和加密密钥数据(私有密钥P1,P2)指定给各成员的信息(公用信息)包括加密密钥数据(公用密钥P3,P4)和口令,口令用作部分公用密钥。
连接器37用于电连接安全设备12a到PC11a,当加密数据通信设置在该系统时,其执行的操作将简述如下(图23)。
首先,将用作IC卡的安全设备12a和12b传送到一组中各成员。安全设备12a和12b具有事先输入了生产号,一组每个成员的用户ID,加密密钥数据(私有密钥P1、P2)的数据库41。
各成员将加密密钥(公用密钥P3、P4)和口令写到安全设备12a和12b。写入的信息存储在数据库41公用部分。
当加密数据从PC11a传送到PC11b时,各成员(用户A和B)分别将安全设备12a和12b插入到PC11a和PC11b以执行加密处理。在此情况下,依据本发明,加密算法依据下面描述的向量的产生。
此时,用于确定产生向量的非线性函数的参数(后面也称为‘常数’)由加密密钥(私有和公用密钥)决定。加密文献和公用密钥一起传送给通信者。在接收侧,利用接收的公用密钥和接收机的私有密钥,用相同的非线性函数产生的向量解密加密文献。
下面描述该实施例的操作。在该实施例中,参照如图23所示PC11a和安全设备12a,该处理操作用以下两种模式分别描述(a)用户条目和(b)数据加密。
(a)用户条目
首先,当用户利用安全设备12a建立加密数据通信时用户形成用户条目。即,赋有安全设备12a(IC卡)值的成员把有关图25示出的公用部分输入他或她自己的PC11a。
图26(a)和26(b)是当用户进入完成时PC11a和安全设备执行处理的操作流程图。
用户通过PC11a上的主程序输入用户鉴别数据到PC11a。在该情况下,用户鉴别数据指示一用户ID。主程序把输入的用户ID输入给安全设备12a的输入缓冲器34(步骤A12)。然后它传送控制到安全设备12a的二级程序。
在安全设备12a侧当程序确认储存在输入缓冲器34中的该数据时,读出该数据(步骤B11)。然后二级程序访问安全设备12a的闪速存储器36,并检查作为用户鉴别数据输入的用户ID是否已输入存储在闪速存储器36中的数据库41。其结果是如果用户ID还没有输入数据库41(在步骤B12为否),则判定该用户不是该组成员并处理结束(步骤B13)。
如果用户ID已输入数据库41(在步骤B12为是),则判定该用户是该组成员,并请求用户通过PC11a输入他或她的口令和加密密钥(公用密钥)(步骤14)。
为响应该请求,用户输入他或她的口令和加密密钥(公用密钥)(步骤A13)。PC11a的主程序传送输入的口令和加密密钥(公用密钥)到安全设备12a的输入缓冲器34(步骤A14)。口令用作公用密钥的一部分。
当从验证为组成员的用户输入口令和加密密钥(公用密钥)时,安全设备12a的二级程序读出该输入的信息,需要时将它解密,并把该结果写到储存在闪速存储器36中的数据库41(步骤B15)。
此时,确定在加密处理中由用户使用的非线性函数。用在该函数中的多个常数由密钥确定。根据本发明的一实施例,多维向量产生函数用作非线性函数,将在下面详细描述。
在处理该信息后,二级程序产生一数据库41报表(步骤B16),将它储存在安全设备12a的输出缓冲器35中,并向主程序传送控制(步骤B17)。
当用户验证处理完成时,由主程序使用的加密数据写到上述报表。在PC11a侧,主程序确认存储在安全设备12a的输出缓冲器35中的数据,读出该数据,将它作为文件数据写到存储设备22(步骤A15)。写入的文件数据作为验证文件,当以后建立加密数据通信时,用于用户的验证检验(步骤A16)。
(b)数据加密
数据加密实际上涉及加密文献和传送文献。
图27(a)和27(b)是当数据加密时由PC11a和安全设备12a执行处理的操作流程图,用户使用插入PC11a的安全设备12a(IC卡)输入他自己的用户ID。通过输入的用户ID和口令,PC11a的用户程序根据验证文件,验证用户(步骤C12)。
作为验证检验结果(步骤C121),如果用户不是注册的用户(在步骤C121为否),主程序进入终止步骤(步骤C16)。如果用户是注册的用户(在步骤C121为是),主程序传送输入的用户ID和口令到安全设备12a(步骤C13)。
二级程序在安全设备12a上读出用户ID和口令(步骤D11)。然后二级程序把该信息与闪速存储器36中数据库41的内容相比较,并验证该用户(步骤D12)。
作为用户验证检验的结果,二级程序产生验证报表用以指示用户是否已经注册到安全系统,将该验证报表传送给安全设备12a,并将其送到PC11a的主程序(步骤D13)。
在PC11a侧,主程序读出从安全设备12a传送的验证报表,并确认用户已经在安全设备侧验证(步骤C14)。
如果用户在用户验证检验中遭拒绝,即如果验证报表指示用户不是注册用户(在步骤C15为否);PC11a的主程序将它通知给用户,并终止该处理(步骤C16)。
如果用户在用户验证检验中确认为注册用户,即,如果验证报表指示该用户是注册用户(在步骤C15为是)。然后PC11a的主程序执行下面的加密数据通信。
即,主程序从存储设备22读出要加密的原文数据(产生的文献),并把它与附加给它的验证报表传送到安全设备12a的输入缓冲器34,然后传送控制到安全设备12a的二级程序(步骤C17)。
验证报表附加到原文数据以使安全设备12a确认文献已从安全设备12a验证注册的用户接收。
在安全设备12a侧,二级程序读出从PC11a传送的原文数据(步骤D14)。如果没有验证报表加到原文数据(在步骤D15为否),则判定该文献未从注册用户收到,由此终止该处理(步骤D16)。
另方面,如果验证报表加到原文数据(在步骤D15为是),则判定文献已从注册用户接收,二级程序通过使用多维向量的(后面描述)加密系统加密该原文数据(步骤D17)。然后二级程序存储解密密钥(公用密钥)和加密数据(加密的文献)将其存储到安全设备12a的输出缓冲器35并传送他们到PC11a(步骤D18)。
PC11a的主程序接收该解密密钥和该加密的数据(加密的文献)(步骤C18),将它们作为文件输入PC11a的存储设备22中或传送控制到例如电子邮件的通信软件。并向外部传送他们(到图1示出的PC11b)(步骤C19)。
下面描述由安全设备12a执行的加密处理的操作。
图28A是加密操作的流程图。
要加密的原文数据(报文数据)定义为M(步骤E11),数据M是二进制数据。安全设备12a的二级程序首先将以位单元的加扰(scramble)1应用于该数据M(步骤E12)。得到的数据定义为M(步骤E13)。
二级程序XORs(得到异或逻辑和)通过把数据M′加到数学上连续产生的随机数,然后执行加密处理(步骤E14)。此时,多维向量r的生成函数用作随机数生成函数,在此情况下,用于生成多维向量r的函数,或用于该函数的常数由加密密钥确定(私有和公用密钥)。
即,二级程序当执行加密处理时从数据库41读出私有密钥(P1,P2)和公用密钥(P3,P4),依据使用加密密钥作为参数常量的该函数生成多维向量r并执行例如M′XORr的逻辑运算,由此执行加密处理,因而,得到的加密数据定义为C(步骤E15)。
实际上如图29所示假定r是三维向量(x,y,z),向量分量x,y,z的计算精度是16位。依据后面描述的方程(1),三维向量r(x,y,z)顺序地产生r0,r1,r2,r3…。
当已知M数据为m0 m1 m2 m3 m4 m5 m6…的8位数据序列(各字符具有8位的一字符串),依据计算精度(16位),M分解为几个2元素(8位)单元。如果三维向量是r0,则数据M和r0(x0,y0,z0)进行异或运算(作为异或逻辑和获得),由此进行(x XORm0 ml)(Y XOR m2 m3)(z XOR m4 m5)的计算,作为计算结果可得到例如c0 c1 c2 c3 c4 c5…,加密数据C。
二级程序进一步将加扰(scramble)2按位单元应用于上述获得的数据C(步骤E16)。得出的数据定义为C′,并将其输出作为最后的加密数据。
在上述处理中,通过重复执行类似用定义C′为M′的加密处理能提高非法解密的难辨程度,如果多维向量r生成函数的格式改变,难辨程度还能进一步提高。
通过安全设备12a执行的解密处理操作将在下面描述。
图28B是解密处理操作的流程图。
解密处理通过执行与加密处理相反的处理能简单地实现。即,假定加密数据定义为C′(步骤F11),二级程序首先应用一逆加扰(inverse scramble)2,该逆加扰2相反于加密处理时按位单元应用于数据C的加扰2(步骤F12)。由此,获得C作为应用加扰2前的数据(步骤F13)。
然后二级程序通过例如执行C XORr等的计算处理解密数据C(步骤F14),由此得到执行加密处理前的数据M′。(步骤F15)。
该二级程序应用一逆加扰(inverse scramble)1,该逆加扰1相反于加密处理时按位单元应用于数据M′的加扰1(步骤F12)。因而能获得应用加扰1以前的数据,即能获得原文数据M(步骤17)。
如果改变生成多维向量的函数的形式重复进行定义C′为M′的加密处理的过程己加入加密过程,则相应于附加的处理执行解密处理。
依据本发明,一组参数P(常量)分为两部分,该参数P用于在由多维向量r执行的加密处理中确定多维向量r的函数,该P由下式表示。
P={Ps,Pp}
其中Ps是私有参数,且对应于加密密钥(私有密钥P1,P2),该加密密钥存储在数据库41的非公用部分,而Pp是公用参数,且对应于加密密钥(公用密钥P3,P4),该加密密钥储存在数据库41的公用部分。Ps与Pp一起用在验证用户,加密及解密处理中。
依据本实施例,有两个Ps和两个Pp,但很明显参数的数量不局限于本应用中。
依据本发明的一实施例的加密系统将描述如下。
假定在n(n≥1)维空间的向量是r,从初始值r0顺序产生新向量rj(j=0,1,2,3,…)的矩阵是R,此时,向量rj是由下列方程(1)的非线性函数表达的。rj=a*R(P,rj-1)rj-1+C (1)
其中a是一适当的常系数,P是用在矩阵中的常数集,并且使用储存在数据库41非公用部分的加密密钥(私有密钥P1,P2)和储存在数据库41公用部分的加密密钥(公用密钥P3,P4)。C是用于矢量空间转换的一常向量。
在上述方程(1)中当适当的限定(例如|R|≤1)设置在矩阵时,该系数一集一条件(a sets a conditon)用于多维向量封闭空间区中的各向量。常向量C保证向量不收敛到无用点(例如一无意义点具有r=0)(明显使c=0)。
在n维空间,向量r有n个分量(r=x1,x2,…xn),在计算时通常由位长精度表示一数字数据(例如8字节或64字节)由编译器决定。因此,如果按照连续向量产生方法在一瞬间用n×m的数据精度不能再生向量r,后续向量r不能正确地再生(或这样定义矩阵R)。用向量r的初始值r0使向量产生保持正确。即,只有当用n×m的位置精度能再生初始值r0,后续向量r1,r2,r3能保证。
依据本发明实施例的该加密处理,设置了按上述方程(1)获得向量r的一个或多个分量,该一或多个分量取决于定义的位长度并且具有相应于总位长的字符串(每个字符串通常是8位)在每个位上进行异或运算(异或逻辑处理)这称为第一加密处理,已经在上述参考图29的描述中描述。
该步骤作为针对解密的干扰可在双处理中执行。在该情况下上述方程(1)的矩阵R能再次改变用以产生新向量使另外的加密处理能按照与第一加密处理相同的方法执行。这个另外的加密处理称为第二加密处理。
在一实例中n等于2(n=2)。首先R定义为操作指令其中rj-1绕平面上设定的法线旋转θ角度,该R是242矩阵可按下面表达为:在该情况下,θ是一种参数。即,已知该参数是rj-1的函数,并可按下列方程表达。
θ(r)=f(P,r) (3)
此时,由上述方程(2)表示的变换能正式由上述方程(1)表示。在该情况下非线性使向量产生过程复杂化。
在上述方程(3)中P定义为用在非线性函数f中的一组系数并且使用储存在数据库41非公用部分的加密密钥(私有密钥P1,P2)和储存在数据库41公用部分的加密密钥(公用密钥P3,P4)。
由此,在加密处理中通过使用在多维空间顺序产生的向量r,该加密处理例如与RSA的加密处理相比较能够在与计算机精度和特性无关的情况下进行。
此外,容易增加和修改一应用。而且因为本实施例在解密处理中应获得常数a常数P(私有和公用密钥)常向量c和向量的初始值r0所有这些数所以使解密处理不能成功进行。
例如,假定P含有三维向量的5个常数,初始值r0给定的数值由下列方程可知。
1(A)+5(P)+3(r0)+3(C)=12
如果向量中的每个向量是8位数字的实数,则全部向量可再生的概率为10-96。概率几乎等于0,因此,很难有可能成功解密。
并且在依据本发明的该方法中必须清楚指示确定旋转矩阵R(θ)的函数f,由此进一步使非法解密复杂化。
另外,依据上述实施例,使用由限定的私有和公用密钥确定的函数产生一向量,而且使用由限定的至少一个公用密钥确定的函数也能产生一向量。
而且,采用常数时用于确定产生向量的函数的每个常数(a,p,c)是固定的,并且函数也固定。但是,用于确定一函数的常数可如下所述取决于一口令(用作部分公用密钥的加密密钥)。
有可能使用于确定一函数的各常数依赖于加密处理中的一口令,其中该函数可被确定,以使在n(n≥1)维空间封闭区中顺序产生的向量彼此不匹配。该口令用作部分公用密钥。该函数应该固定。即,在上述方程(1)中。
a→a(k)
p→p(k)
c→c(k)
其中a是一常系数,p是一组常数(私有密钥和公用密钥)用在矩阵中,c是用于向量空间变换的一常向量,k是一口令。
口令k由用户输入,存储在数据库41的公用部分。二级程序从数据库41中读出口令,并依据口令k确定上述方程(1)中各常数(a,p,c)。然后,使用基于常数的该函数产生多维向量,并加密数据。
由此通过使确定函数的各常数与口令相关,与固定各常数的情况相比,前者加密的安全性能够改进。
也有可能在加密处理时顺序产生n(n≥1)维空间封闭区中定义的向量,这样设定一函数使产生的向量不能彼此匹配。用于确定函数的各常数可以取决于口令和实时。口令用作部分公用密钥。该函数是固定的。即,在上述方程(1)中。
a→a(k,t)
p→p(k,t)
c→c(k,t)
其中a是一常系数,p是一组常数(私有和公用密钥),用在矩阵中,c是用于向量空间变换的常向量,k是口令,和t是一实时。
口令k由用户输入并存储在数据库41的公用密钥部分。该二级程序从数据库41读出口令k,并基于该口令k和实时t确定上述方程(1)各常数(a,p,c)。然后使用基于常数的函数产生多维向量和加密数据。
由此,通过使确定一函数的各常数依赖于一口令且使各常数依赖于实时,各常数不仅依赖于一口令而且还依赖于一实时,由此进一步提高了加密的安全性。
还有可能在加密处理中顺序产生n(n≥1)维空间封闭区中定义的向量,设定一函数使产生的向量彼此不匹配。用于确定函数的各常数依赖于一口令和一实时相关,另外矩阵函数的选择依赖于一口令。口令用作部分公用密钥。即,在上述方程(1)中。
a→a(k,t)
p→p(k,t)
c→c(k,t)
和
R→Rk
其中a是一常系数,p是一组常数(私有和公用密钥)被用在矩阵中,c与一向量同时运动的常向量,k是口令,和t是实时,R是矩阵。
口令k由用户输入,存储在数据库41的公用部分。该二级程序从数据库41读出口令k;并基于该口令k和实时t确定上述方程(1)的各常数(a,p,c)。
二级程序依据口令k利用该些常数选择矩阵R。基于选择的矩阵R产生多维向量,并加密数据。
由此,通过使确定函数的各常数依赖于口令,另外使各常数依赖于实时,及通过选择依赖于口令的矩阵,各常数不仅依赖于一口令还依赖于一实时,并且利用该常数的函数也依赖于一口令被选择,由此进一步改进了加密的安全性。
还有可能在加密处理时顺序产生n(n≥1)维空间闭合区定义的向量,设定一函数以使产生的向量不能彼此匹配。用于确定该函数的各常数可由口令和实时而定。口令用作部分公用密钥。
依据一口令和一实时,选择函数类型。即上述方程(1)中,
a→a(k,t)
p→p(k,t)
c→c(k,t)
和
R→Rk
其中a是一常系数,p是一组常数(私有和公用密钥)被用在矩阵中,c是用于向量空间变换的常向量,k是口令,t是实时,R是矩阵。
口令k由用户输入,并存储在数据库41的公用部分。二级程序从该数据库41读出口令,并基于口令k和实时t确定上述方程(1)各常数(a,p,c)。
二级程序使用与取决于口令k和实时t的该些常数选择矩阵R。基于选择的矩阵R,产生多维向量,并加密数据。
由此,使确定函数的各常数取决于口令,且使之取决于一实时,通过选择取决于口令的矩阵,各常数不仅取决于口令,还取决于实时,利用该常数的函数也依赖于口令和实时选择,由此进一步提高加密安全性。
还有可能在加密处理中顺序产生n(n≥1)维空间闭合区定义的向量。和通过线性组合多个函数以使产生的向量互相不能匹配,用于确定该函数的一常数可与一口令和实时相关。口令用作部分公用密钥。依据口令和实时选择函数类型。并且,线性组合的系数与口令和实时相关。
假定在一n(n≥1)维空间内从向量r的初始值r。产生一新向量rj(j=0,1,2,3,…)的矩阵是Rd(d=0,1,2,3,…),由下列方程可产生新向量。
上述方程(1)中,a是常系数,p是一组常数(私有和公用密钥)被用在矩阵中,c是用于向量空间变换的常向量,k是口令,R是矩阵,和w是线性组合系数。
口令k由用户输入,并存储在数据库41的公用部分。该二级程序从数据库41中读出口令k,和基于口令k和实时t确定上述方程(4)中的各常数(a,p,c)。通过线性组合多个矩阵二级程序选择一个得出的矩阵R。
用在矩阵R中的线性组合系数Wd由口令k和实时t确定。依据选择的非线性函数(4)产生多维向量来加密数据。
由此使用通过线性组合多个矩阵获得的新矩阵,产生用于确定各矩阵的常数,该常数取决于一口令和一实时,矩阵的选择也依赖于一口令和一实时,线性组合的系数也取决于一口令和一实时,由此提高了加密数据的安全。
此外,在加密处理中,可这样确定该函数,使得在n(n≥1)维空间闭合区顺序产生的向量不能互相匹配,由用户选择地定义函数的类型,当把函数应用于主加密算法时可动态地与其他函数组合。
即,相对于顺序产生的多维向量编译的基本加密程序编译用户定义的函数,当执行全部程序时通过动态链接使用编译结果。由此,有预谋的用户例如黑客等几乎能遭到全部拒绝。
如上所述在n(n≥1)维空间闭合区定义的向量能顺序地产生,并且通过使用要加密的原文数据和向量分量的逻辑运算产生加密数据。因此,加密处理在没有RSA方法需要的精度和特性情况下能够实现。此外,具有高可靠性和易于增加或修改应用的加密处理能够实现。由此,通过把不同的密钥应用于方程1中的参数组p可定义一个选择的加密数据通信系统。因此仅描述使用公用密钥(私有密钥)的加密/解密算法就足够了。下面将详细描述本发明一实施例的加密/解密系统。
图30说明本发明一实施例的加密/解密系统的原理。
图30中在设备110和112中的安全设备分别位于发送和接收侧,即,加密/解密机存储公用密钥(私有密钥)。当从一设备110到另一设备112建立加密数据通信时,设备110的主程序传送控制到专用硬件安全设备的二级程序。
在发送侧用于执行加密处理的安全设备使用一个随对应于一公用密钥的一参数变化的函数。即,使用一个变换和旋转在n维空间闭合区定义的n维向量的非线性函数不规则和顺序地产生向量,并且通过在原文数据和产生的向量之间按位单元进行的逻辑运算产生加密数据。
在接收侧用于执行解密处理的安全设备产生与发射侧相同的向量,在产生的向量上执行一相反操作,容易把接收的加密数据解密为原文数据。
在本发明的加密/解密系统中,用于确定非线性函数的参数对第三方是保密的,该非线性函数用于产生上述多维向量。因此,依据本发明,通过至少定义的一公用密钥确定n维向量的产生,由此使用非线性函数产生的n维向量能够产生混沌以使产生的各n维向量不能互相匹配。
即,本发明包括:向量产生单元,用于使用在n(n≥1)维空间闭合区定义的各向量分量和角Ωn产生一向量rj,该角Ωn由参数组p以这样的方法确定,使利用包含至少用于该向量旋转的n维旋转矩阵Rn(Ωn)(相应于方程1中的R)的非线性函数(相应于方程(1))顺序产生的各向量相关于向量旋转在n维空间不能匹配;在加密处理中,一二进制运算单元,用于使用对原文数据和由向量产生单元产生的向量分量进行的一二进制运算产生加密数据;在解密处理中,一逆二进制运算单元,用于在逆二进制运算中产生原文数据,该二进制逆运算对应于使用向量产生单元产生的向量rj和加密数据进行的二进制运算的相反的运算。
特别是,本发明包括:一旋转矩阵产生单元,用于使用在n(n≥1)维空间闭合区定义的一向量的分量和由参数组p确定角Ωn来产生n维旋转矩阵Rn(Ωn)该n维旋转矩阵用该(n-1)维旋转矩阵Rn-1(Ωn- 1)作为(n-1)维小矩阵来旋转该向量;一向量产生单元,用于产生向量rj,使包含至少该旋转矩阵Rn(Ωn)的非线性函数顺序产生的各向量rj(j≥0)在n维空间互相不能匹配;一个二进制运算单元,用于利用原文数据和由向量产生单元产生的向量分量的二进制运算产生加密数据。
本发明的加密/解密系统与当数据发送机和数据接收机使用通用安全设备(加密设备)建立数据通信时执行的加密/处理有关。
依据本加密系统,数据发送机(加密侧)基于预定公用密钥,通过使用已产生原文数据报文的密钥序列按位单元执行预定逻辑运算(通常是异或逻辑和运算)产生密文。数据接收机(解密侧)基于预定公用密钥,通过使用与加密侧相同的密钥序列按位单元执行预定逻辑运算(与加密侧相同的操作)获得原始的原文。
在该加密系统中,多维向量产生设备用作随机数产生设备以产生上述的密钥序列。在该情况下,用于确定多维向量产生设备向量产生函数的不同参数和初始状态作为公用密钥提供。
图30说明应用本发明的加密系统的配置举例。加密设备110包括:多维向量产生函数单元101和逻辑操作处理函数单元102。
类似地,该解密设备包括:多维向量产生函数单元121和逻辑运算操作函数单元122。
图30位于加密侧的加密设备110和位于解密侧的解密设备112之间,例如使用IC卡来分配一公用密钥。在保密状态,共享该公用密钥,位于加密侧的加密设备110基于由预定公用密钥确定的函数产生多维向量,使用原文和作为随机数序列的向量分量数据获得异或逻辑和,以便将原文报文变换为密文并将该密文发送到该解密设备112。
接收到密文的解密设备112通过逻辑运算处理函数单元122从密文产生一向量,该逻辑运算处理函数单元122具有与加密设备110的多维向量产生函数单元101相同的函数;获得该向量和产生的随机数序列的异或逻辑;及恢复该原始的原文报文。
此外,由于加密设备110和解密设备112执行的处理实际上彼此相同,处理设备,例如计算机等,具有解密设备112和加密设备110二者的功能。
图31说明加密设备110和解密设备112中的解密和加密程序的配置。
主程序131管理输入和输出数据,确定数据是否加密或解密并管理整个加密解密处理。参数表生成库储存用IC卡分配的公用密钥。加密/解密机133从参数表生成库132接收作为参数的公用密钥,基于由多维向量旋转函数生成库134确定的矩阵产生旋转向量,利用向量分量加密原文或解密密文。
下面将详细描述多维向量的产生。
就相关于在多维空间(n维空间)定义的向量rj-1的旋转而论,一般旋转角用Ωn表示,相应于该旋转的操作用Rn(Ωn)来表示为一n×n矩阵。即Rn(Ωn)作用于rj-1,并旋转该向量方程,于是(1)可改写为下列方程(5)即,旋转向量的一般方程由此定义了一新的向量rj。
rj=αRn(Ωn)rj-1+c (5)
其中a是一常数满足|a|≤1,c是n维常向量。上述方程表示新向量rj是从rj-1通过旋转和空间平移产生。
依据本发明,非线性序列能够这样产生,使产生的r向量序列可以不是混沌的,即,通过设置的旋转角Ωn在闭合空间中的原始序列取决于r,即,Ωn可用参数p和向量r的函数正式表示如下列方程(6)所示(相应于方程(3))。
Ωn=Ωn (P,rj-1)……… (6)其中p指示一组用在Ωn的函数中的任意个参数。
P={Pi|i=1,2,3,…}…… (7)
例如在二维向量中,二维旋转解Ωn用二维向量r=(x,y)的分量x和y表示如下式:
Ω2=p1x+p2y+p3
其中参数p1,p2和p3选择地给出。
参考图32示出的流程图描述图30系统中由加密设备110和112处理上述二维向量时执行的实际操作。
利用正交坐标系统的分量x和y由r=(x,y)表示二维向量r。相关于向量的角Ωn=θ的旋转运行由二维矩阵表示如下。
假定用于旋转向量的函数使用一函数θ=P1x+P2y+P3和获得的旋转角存储在多维向量旋转函数产生库134(见图13),和r0的初始值x0,y0以及p值,即,p1=1,p2=1,p3=1事先存储在参数表产生库132(见图31)作为公用密钥。参考图32描述一举例。
为了产生二维向量,初始值r0(包括分量数据x0,y0)和用于定义旋转角θ函数的参数p1,p2,p3从参数表产生库132(见图31)读出并存储在设备(110,112)存储器工作区(步骤21)。基于r0的值x0,y0计算θ=p1 *xj-1+p2 *y1-1+p3(θ=p1 *x0 *p2 *y0+p3)。
然后为了确定旋转矩阵R元素值,获得cosθ和sinθ并作为cos_t和sin_t分别存储(步骤23)。
接着由方程rj=aR2(Ω2)rj-1+c计算新向量rj(步骤24),即,执行下列计算,以产生新向量rj(分量xj,yj)。xj=a*(“cos_t”*xj-1-“sin_t”*yj-1)+c_x;yj=a*(“sin_t” *xj-1+“cos_t”*yj-1)+c_x;
然后,基于向量yj的分量获得连续旋转角θ(步骤22)以及重复上述步骤23和24,由此顺序地产生向量。
依据本发明的加密/解密系统,因为对旋转引入三角函数,使用三角函数的乘积,非线性比通常的无规则函数有更多改进,由此使解密更复杂化。
下面描述通过产生多维向量的加密数据处理。
如图33所示n维旋转矩阵Rn(Ωn)在加密处理中首先产生(步骤41)。产生矩阵的方法下面将详细描述。
使用包含n维旋转矩阵Rn(Ωn)的非线性函数产生向量(步骤42)。向量yj顺序产生以使他们在n维空间互相不匹配。利用原文数据和由向量产生单元产生的向量分量执行二进制运算,由此产生加密数据(步骤43)。然后加密数据传输到接收机的接收设备(步骤44)。
下面描述步骤43的二进制运算。
假定每个顺序产生的向量r用N位表示。例如当二维向量用分量x和y表示时,每个x和y的数据值用16位表示。x和y的数据按N位设置(例如32位)。
向量串rj(=1,2,3,…)在该步骤获得和通过分割加密原文数据M的数据串Mj=(j=1,2,3,…)按N位单元表示将rj和Mj用作二进制操作数以便获得异或逻辑和(XOR),和结果Cj(j=1,2,3,…)作为加密数据获得。即,进行下列计算。Cj=rjop Mj (9)
上述二进制运算符op通常是相关于每个的异或逻辑和(exclusivelogical sum)但由于异或逻辑和是可逆的,不适合将其作为加密运算符使用,为了补偿异或逻辑和的这一缺陷,提出一种加扰Mj位的异或逻辑和运算作为二进制运算符,在该情况下出现下列方程。op=XOR*S (10)
其中S指示一加扰(scrambling)运算用于加扰Mj位,而XOR指示作为接着的异或逻辑和运算的定义。然后加密数据由Cj=rjop Mj获得。
解密处理参考图33描述如下
在解密处理中,如象加密处理,首先产生Ωn维闭合区定义的旋转向量的旋转矩阵Rn(Ωn)(步骤45)。向量rj以这种方式顺序产生,即,使由包含旋转矩阵Rn(Qn)的非线性函数产生的各向量在n维空间互相匹配(步骤46)。
然后,解密数据通过使用收到的加密数据与在向量产生步骤46产生的向量rj执行逆二进制运算产生相应于步43执行的二进制运算的相反运算(步骤47和48)。
在解密处理中连续检索接收的加密字符串Cj=j=1,2,3,…)以执行一解密运算同时产生相应于Cj的向量,该处理用参考图34的流程图进行说明。
解密处理由j=0开始(步骤51)在步骤52检索加密数据Cj,在步骤53产生n维旋转矩阵Rn(Ωn)和在步骤54产生向量rj。然后在步骤55执行Mj=rjop-1 Cj的运算以产生解密数据(原文Mj)如果加密数据还没有完全处理,那么用j=j+1接着检索下面的加密数据(步骤56和57)以产生Rn(Ωn),和重复产生连续向量rj的处理。执行重复步骤52到56的处理直到加密数据全部处理。
此外,上述第一加密和解密实施例可以推广到更实际的加密数据的步骤,第二实施例将在下面描述。
首先,执行下列方程。C0=r0op M0 (11)
然后计算相关于C0的检验和∑0。并且上述方程(9)可相关于j其中j≥1改写为下列方程。Cj=(rjop ∑j-1)op Mj (12)
即,相关于M0的加密数据C0通过C0=r0op M0发射机获得C0因而获得C0的检验和∑0。相关于M1的加密数据C1是由C1=(r1op ∑0)op M1计算于是获得C1的检验和∑1。连续的数据Mj用计及前面数据获得的∑j-1通过Cj=(rjop ∑j-1)opM1加密。rj和∑j-1用相同数据宽度(位数)计算。
用于解密的接收机接收C0,C1,C2,…,和计算M0=r0op-1C0,并且必须从接收的C0中获得检验和∑0。以此类推M1相关于C1从下式计算。M1=(r1op ∑0)op-1 C1 (13)连续数据Mj利用相关于接收的Cj-1通过下列方程解密。Mj=(rjop ∑j-1)op-1 Cj (14)
上述步骤获得的加密数据已经用不同密钥处理,假定针对使用假设密钥解密该数据的企图该数据是永久的。
如果在多维空间旋转系统中维数变大,旋转矩阵元素数变大,于是产生问题即,在加密/解密处理中的运算负担加大。为解决该问题,在加密系统中计算多维空间旋转矩阵的方法使用了具有小维数的伪空间旋转矩阵的多维空间旋转系统。
下面将说明相关于多维空间旋转导出的旋转矩阵Rn(Ωn)。
第一种方法是从(n-1)维旋转矩阵Rn-1(Ωn-1)中产生n维旋转矩阵Rn(Ωn)。因为相关于多维空间旋转的方法计算复杂,例如采用两维空间旋转进行的说明描述如下。两维空间向量r用正交坐标系统的分量x和y由下列方程表示。
r=(x,y)
其中左侧下标2表示在两维空间定义的运算。该运算满足下列方程的条件。|R2(θ)|=1……(17)R2(-θ) =R2(θ)-1……(18)
方程(17)保证在旋转运行中旋转向量大小保持不变,而方程(18)表示存在一个旋转运行使旋转向量恢复为原始状态。
注意他们能通过加1获得该1作为方程(19)的两维空间旋转运行的对角元素。此外,很明显,运行中三维向量的旋转在图37A到37C中表示。
上述矩阵(20-1),(20-2),(20-3),是三维矩阵包括了表示二维空间旋转运行的二维矩阵。通过从上述矩阵中检索三个矩阵(矩阵能复制)和连续把矩阵彼此相乘能获得广义的三维旋转。在三维空间广义的旋转角能用下列方程表示。
Ω3=(θ1,θ2,θ3)其中相关于三维向量的旋转运行R3(Ω3)由下列方程表示。
R3(Ω3)=R3,i(θi)R3,j(θj)R3,k(θk)……(21)
其中i,j和k可以是1,2和3中任一个。并且在相同轴上不继续运行的条件基础上通常能重复。i,j,k例如可以是1,2和3。
如果‘逆旋转角’用-Ω3=(-θ1,-θ2,-θ3)表示,那么由(21)表示的旋转运行的逆旋转运行用计及有效的下列方程表示。R3(-Ω3)=R3,k(-θk)R3,j(-θj)R3,i(-θi)……(22)由方程(21)定义的旋转运行通常得到下列形式
其中矩阵元素从方程(16),(19),(20-1),到(20-3)和(21)中唯一地确定。
相关于R3(Ω3),满足下列条件。|R3(Ω3)|=1……(24)R3(-Ω3)=R3(Ω3)-1……(25)
在实际的三维空间中向量的产生如下所述。
在三维空间中,向量rj能够由存储的旋转矩阵相乘的排序产生。如果旋转角由xj-1=x,,yj-1=y,zj-1=z表示相关于简化说明的三维旋转出现下列方程。
θ1=p11x+p12y+p13z+p14
θ2=P21x+P22y+P23z+P24
θ3=P31x+P32y+P33z+P34
三维空间旋转运行R3(Ω3)如方程(21)所示由下面三个旋转矩阵的相乘表示即:R3(Ω3)=R3,i(θi)R3,j(θj)R3,k(θk)
其中整数i,j和k是1,2和3中任一个和通常能重复即,有R3 1(θ1),R3,2(θ2),R3,3(θ3)相乘的,3×2×2(=12)种方法取决于发射机的参数。在该加密处理中,向量rj在三维空间的产生过程如图35所示。
即,R3(Ω3)可基于发送机参数指定的乘法排序制备。计算旋转向量角θ1,θ2,θ3的函数的初始向量值r0及参数p11到p34都被存储起来(步骤62)。然后,用r0(rj-1)的分量(x,y,z)执行以下操作(步骤63)。
θ1=p11x+p12y+p13z+p14
θ2=P21x+P22y+P23z+P24
θ3=p31x+p32y+p33z+p34
然后计算R3(Ω3),并由式(5)产生一新向量rj。与此同时,由上所述发送机的参数确定乘法的排序。例如,如发送机的职员数等。对于旋转矩阵R3(Ω3),发送机)接收机不根据发送数据时指定的排序来计算它,但是事先12个存储函数,任何一函数均可指定。
以下描述将上述所述二维旋转扩展到三维,从三维扩展到四维的应用过程。
在该情况下,四个二维矩阵,即,R4,i(Ω3)(i=1,2,3,4),通过把1加入方程(23)该1作为对角元素,即获得下列方程。 进而在四维空间旋转角Ω4的旋转运行由下式定义:R4(Ω4)=R4,i(Ω3,i)R4,j(Ω3,j)R4,k(Ω3,k)R4,1(Ω3,1)……(27)Ω3,i=(i=1,2,3,4)是另外的三维旋转角Ω3不同于上述定义的角。
容易确认获得的旋转运行满足方程(29)和(30)的特征通过估计方程(28)右侧乘积的排序。|Rn(Ωn)|=1……(29)Rn(-Ωn)=Rn(Ωn -1)……(30)
n维旋转矩阵Rn(Ωn)通过执行图36流程的处理能够产生。
即,首先设置k=2(步骤30),产生2维旋转矩阵R2(Ω2)(步骤31)。然后判断k值是否小于n(步骤32)。如果是,k值增1(步骤33),产生k维旋转矩阵Rk(Ωk)以使它能包括(k-1)维旋转矩阵Rk- 1(Ωk-1)作为(k-1)维小矩阵(步骤34)。
于是,k产生的k维旋转矩阵Rkj1(θj1),Rkj2(θj2),…,Rkjk(θjk)的乘积获得,从而获得旋转矩阵Rk(Ωk)(步骤35)。然后从k=2到k=n重复步骤34和步骤35,能产生n维旋转矩阵Rn(Ωn)。
在下面说明的第二种方法中,通过设置多个小维数旋转矩阵作为对角块能获得伪旋转矩阵。该小维数旋转矩阵具有设置为0的保留元素(remaining element)。第二种方法将详细说明如下。在六维空间的旋转矩阵R的元素由下列方程(37)表示显示了大量计算。
其中A和B是三维旋转矩阵。
其中A1,A2,…Aj是多维空间旋转矩阵
由此计算量可显著减少,通过用伪旋转矩阵置换多维空间旋转系统的旋转矩阵可快速执行加密和解密处理。该伪旋转矩阵是通过设置多个作为对角块(diagonal blocks) (具有设置为0的保留元素)的小维数旋转矩阵获得。
在又一方法中,把在通过下列方程(40)表示的小变换中获得的P值用作一伪空间旋转矩阵。P=S*Q*ST (40)
在方程(40)中,q是上述伪矩阵,而s是置换矩阵。如下列方程(41)所示,它是具有各行和列并包含1作为元素的方程。
由此,通过用组合的置换矩阵(permutation matrice)获得的伪旋转矩阵代替多维空间旋转系统的旋转矩阵使计算处理复杂化,于是进一步增加了解密的难度。该置换矩阵具有多个设置为零的保留元素的作为对角块设置的小维素旋转矩阵。
本加密系统的特征是用增加空间维数增加解密加密数据的难度,但软件处理能快速进行。由此不需要特殊硬件进行加密和解密处理,能精确指示分级特许(授权)和用于个人,用于组等的解密。
因此,本发明的应用包括:个人或私有数据的管理,保密邮件的管理、广播通讯数据等的管理,和各种其他领域。此外因为本发明能增强因特网环境服务器中数据的安全,所以系统管理人员和因特网服务的提供者可充分利用本发明。
此外,依据本发明参数p和常向量c可依赖于时间,并且p能由下列方程表示。P(t)={pi(t):i=1,2,3,……} (31)
其中c可设置为c(t)。另外向量初始值r0也能依赖于t。
在实际加密处理中,向量初始值r0代替右侧的rj-1(j=1)。获得的新向量r1代替了方程(5)右侧的rj-1。通过重复该处理,顺序产生新向量。由方程(31)表示的时间依赖关系表示相同的加密数据不能获得。即使在不同时间加密相同原始数据。
如果在方程(6)中仔细设置参数组和函数,由方程(5)顺序产生的向量rj能避免收敛到平衡解(balanced solution)。
如果密钥是保密的,可以认为在不规则或随机系统加密的数据是难于解密的。本发明的加密系统继承了上述特点。本发明的特征是除了上述惯用加密系统要求的特征外,相关于下列几种情况本发明能自由修改(定制)加密过程。
1.能选择确定依据方程的旋转矩阵Rn(Ωn)的表示。
2.在不分散函数值条件基础上能选择地设置方程(6)右侧函数Ωn(p,rj-1)和参数p。
3.各“初始值”可选择地设值。
4.由选择向量的初始值开始,通过选择地重复方程(5)的运行获得的向量rj可再次设置为用在加密/保密处理中的向量的初始值。
5.当执行具有浮点的运算时,操作结果取决于数字操作处理机和编译器,因此解密处理需要的解密环境相同于加密环境。
依据本实施例的过程能够用整数进行,在该情况下多维空间可由网络分割,并且由离散网格点的坐标表示的向量根据旋转和空间变换改变。
本加密系统的多维旋转向量的加密过程包括许多选择。例如多维向量旋转运行不能简单设置,并且试图解密加密数据的人必须再生旋转产生单元系统,识别该函数系统以规定一个综合的多维向量旋转角,和正确地检测该参数(密钥)。
依据本发明再生向量rj的可能性极低,因为有大量设置非线性函数的方法从具有参数p(作为密钥)的旋转向量状态获得一旋转角Ωn和大量确定旋转矩阵的方法。
因为本加密系统从小于n维旋转矩阵的维数的旋转矩阵产生n维旋转矩阵,并应用于连续的处理。还因为依据本发明连续的非线性函数或向量无规则的产生是通过利用n维旋转矩阵在n维空间闭合区定义的n维向量的空间变换和旋转由实数定义的,用选择或数字表示的数据执行加密/解密处理。因此本发明可用在各种应用中。
以下所述为本发明的加密、解密系统在以上所述数据库管理装置的实施例中的应用。
依据本发明一种多维空间旋转系统(多维空间向量系统)用作数据库加密算法。在多维空间旋转系统中连续向量产生在基于预定函数的多维空间,向量分量是加密的密钥流。在多维空间旋转系统中采用具有低特性的各信息处理设备能完成计算。因此系统可应用于便携终端。即,在外部存取本发明数据库的环境下要求加密系统处理数据要成功地保证数据的安全。此时,依据本实施例加密数据库,列密钥不同于行密钥。因此预定函数的参数使用至少一个列密钥和行密钥确定,由此产生相关于加密的密钥流,于是能产生每行和列的唯一密钥流。
综上所述,依据本发明的数据库管理装置,当加密数据库时检索处理中用的列项使用列项中公用密钥加密,同时其他列项的数据使用各行唯一的行密钥加密。因此相关于不同行使用不同密钥能提高安全性。当执行检索处理时,相关于检索输入的数据使用预定列项中公用列密钥加密,并且将加密的检索数据与加密的数据库比较,从而实现了高速的检索处理。
Claims (29)
1.一种数据库管理装置,包括:
一加密密钥规范单元,规定是用列项中公用的列密钥还是用相关于各行的行密钥来对数据库中一列项数据进行加密;
一加密单元,用所说的加密密钥规范单元指定的密钥加密数据库的各列项;
一存储单元,将由所说的加密单元加密的数据库存储在存储器中。
2.根据权利要求1的数据库管理装置,其中还包括:
一数据库搜索单元,当检索使用公用行密钥加密的列项时,使用预定列项中公用行密钥加密检索输入数据,将加密的检索数据与存储在存储器中加密数据库的各项数据进行比较,执行检索处理。
3.根据权利要求1的数据库管理装置,其中所说的加密单元使用相关于各行指定的行密钥和相应列项中的公用列密钥的组合加密一预定列项的数据。
4.根据权利要求1的数据库管理装置,其中所说加密单元基于预定函数在一多维空间产生顺序的向量,使用作为加密系统函数常数的行密钥和列密钥加密一数据库,该加密系统采用作为加密密钥流的向量元素。
5.一种数据库系统,包括,第一信息终端,该第一信息终端包含一数据库;和请求该第一信息终端搜索该数据库的第二信息终端;并通过网络连接该第一和第二信息终端,其中:
在该第一信息终端侧,该数据库列项的第一类型数据使用列项中公用列密钥加密,列项的第二类型数据使用相关于各行的行密钥加密;
当第二信息终端请求搜索相关于列项的第一类型数据库时,检索输入数据使用列项中公用列密钥加密,加密的检索数据通过网络传送到第一信息终端;和
在第一信息终端侧,加密数据库使用检索数据搜索;作为搜索结果获得的加密数据通过网络返回到第二信息终端。
6.一种管理数据库的数据库管理装置,其中数据使用预定列项中公用列密钥被加密,该装置包括:
一加密单元,当从预定列项检索数据时使用列密钥加密输入检索数据;和
检索单元通过将加密的检索数据与加密数据库各项数据相比较进行数据的检索。
7.根据权利要求1的数据库管理装置,其中包括:
一原文数据获取单元,用于获取要加密的原文;
一向量产生单元,使用由至少该列密钥或一行密钥确定的一函数顺序产生在n(n≥1)维空间闭合区定义的向量;和
一逻辑运算单元,使用由所说原文数据获取单元获取的原文数据和由所说向量产生单元产生的向量元素按位单元进行一逻辑运算,产生加密数据。
8.一种计算机可读存储媒体,用于存储控制计算机完成处理过程的程序,包括:使用列项中公用密钥来加密数据库列项的第一类型数据,和使用相关于各行指定的行密钥来加密列项第二类型数据;和
搜索作为加密函数的结果获得的加密数据库。
9.一种计算机可读存储媒体,用于存储控制计算机完成处理过程的程序,包括:
当从预定列项检索数据时使用列密钥来加密输入检索数据;和
通过将加密检索数据与加密数据库各项数据相比较检索数据。
10.一种数据库管理装置,包括:
第一加密单元,使用列项中公用列密钥加密数据库列项第一类型数据,和使用相关于各行的行密钥加密列项第二类型数据;
第二加密单元,使用各行中另外的公用密钥加密该行密钥,该行密钥是在由所说第一加密单元加密数据库列项的第二类型数据中使用的;和
存储单元,将所说第一加密单元加密的数据库和所第二加密单元加密的行密钥存储在存储器中。
11.根据权利要求10的数据库管理装置,其中所说行密钥由指定给所说数据库各行的行数和一随机数产生。
12.根据权利要求10的数据库管理装置,其中包括:
向量产生单元,使用由该数据库管理装置中各密钥确定的函数顺序产生在n(n≥1)维空间闭合区定义的向量;和
逻辑运算单元,使用由所说原文数据获取单元获取的原文数据和由所说向量产生单元产生的向量分量按位单元进行逻辑运算,产生加密数据。
13.一种数据库系统,包括一第一终端单元,用于管理一数据库;和一第二终端单元,它独立于第一终端单元,用于搜索该数据库,其中:
在该第一终端单元侧,该数据库被加密并把加密数据库存储在便携式存储媒体中,而该存储媒体是被分配的;和
在该第二终端单元侧,使用所说被分配的存储媒体搜索加密数据库,解密及显示作为搜索结果获取的数据。
14.根据权利要求13的系统,其中:
所说第一终端单元使用列项中公用列密钥加密数据库列项第一类型数据,使用指定给各行的列密钥加密列项的第二类型数据,使用行中另一公用密钥加密行密钥;和
所说加密数据库与加密后的行密钥存储在存储媒体中。
15.根据权利要求13的系统,其中
所说存储媒体用于存储在所说第一终端单元加密的数据库,和存储用于搜索加密数据库的预定程序。
16.一种计算机可读存储媒体,用于存储控制计算机完成处理过程的程序,包括:
使用列项中公用列密钥来加密数据库列项第一类型数据,和使用相关于各行指定的行密钥来加密列项第二类型数据;和
使用行中另外的公用密钥加密行密钥,该行密钥是由所说第一加密函数在加密数据库列项第二类型数据时使用的。
17.一种加密系统,包括:
旋转矩阵产生单元,使用一向量的各分量和取决于一参数组p的角Ωn产生用于旋转在n(n≥1)维空间闭合区定义的该向量的n维旋转矩阵Rn(Ωn),以使能包含(n-1)维旋转矩阵Rn-1(Ωn-1)作为(n-1)维小矩阵;
向量产生单元,用于产生一向量rj,使得用包含至少该旋转矩阵Rn(Ωn)的非线性函数顺序产生的向量rj(j≥0)在n维空间不互相匹配;
二进制运算单元,通过使用原文数据和由所说向量产生单元产生的向量rj的各分量进行二进制运算产生加密数据。
18.根据权利要求17的系统,其中:
所说向量产生单元的非线性函数是一个包含用于一旋转向量的空间平移的固定向量的函数,而所说向量产生单元顺序产生向量以使产生的向量不能互相匹配。
19.根据权利要求17的系统,其中:
所说向量产生单元使用的所说n维旋转矩阵Rn(Ωn)是由n维旋转矩阵的乘积产生的,该n维旋转矩阵是通过改变相应于(n-1)维旋转矩阵Rn-1(Ωn-1)的(n-1)维小矩阵的引入位置变化而产生的。
20.根据权利要求17的系统,其中:
所说二进制运算(op)指示在执行一加扰运算S后执行异或逻辑和运算(XOR),由下式表示
op=XOR·S
21.根据权利要求17的系统,其中:
加密数据Cj是通过对原文数据Mj和一向量进行的二进制运算产生的,该向量是通过由所说向量产生单元使用的非线性函数产生的第j个(j-th)向量rj和产生的第j-1个加密数据Cj-1的检验和∑j-1进行的二进制运算获取的。
22.一解密系统,包括:
一向量产生单元,用于产生向量rj以使由一非线性函数顺序产生的向量rj在n维空间互相不匹配,该非线性函数包含至少一n维旋转矩阵Rn(Ωn),该矩阵用一定义在n维空间闭合区的向量的各分量和取决于参数组p的角Ωn来旋转该向量;
一逆二进制运算单元,用于接收来自加密侧的加密数据,该加密数据是通过对原文数据和由与所说向量产生单元类似方法产生的向量rj的分量进行的二进制运算产生的;且通过使用所说向量产生单元产生的向量rj和该加密数据,执行相应于该二进制运算相反运算的二进制逆运算来解密出原文数据。
23.根据权利要求21的系统,其中
所说旋转矩阵Rn(Ωn)是由所说旋转矩阵产生单元产生的。
24.根据权利要求21的系统,其中
由所说向量产生单元使用的非线性函数是包含用于旋转向量的空间平移的固定向量的函数,而所说向量产生单元顺序产生向量,以使这些向量不互相匹配。
25.根据权利要求21的系统,其中
由所说向量产生单元使用的n维旋转矩阵Rn(Ωn)是通过改变相应于(n-1)维旋转矩阵Rn-1(Ωn-1)的(n-1)维小矩阵的引入位置产生的n维旋转矩阵的乘积产生的。
26.根据权利要求21的系统,基中
所说二进制运算(op)指示执行一加扰运算S后执行异或逻辑和运算(XOR),由下式表示
op=XOR·S
所说逆二进制运算(op-1)指示执行异或逻辑和(XOR)运算后执行相反于加扰运算S的逆运算S-1,由下式表示
op-1=S-1XOR
27.根据权利要求26的系统,其中
生成第j-1个接收的加密数据Cj-1的检验和∑j-1,并且二进制运算是使用该生成结果和所说向量产生单元所用的非线性函数产生的向量rj来完成的,而逆二进制运算是使用该二进制运算产生的向量与接收的第j个加密数据Cj进行的,由此解密原文数据Mj。
28.一种向量产生系统,用于数据库管理装置和加密/解密系统中,其中
当产生用于以一定义在n维空间闭合区的一向量的各分量和取决于一参数组p的角来旋转该向量的一n维旋转矩阵R时,多个小维数旋转矩阵作为对角块(diagonalblock)设置,而作为零元素产生的伪旋转矩阵Q用在其余部分。
29.根据权利要求28的系统,其中
当产生用于以一定义在n维空间闭合区的一向量的各分量和取决于一参数组p的角来旋转该向量的一n维旋转矩阵R时,多个小维数旋转矩阵作为对角块(diagonal block)设置,而将通过用置换矩阵S来对作为0元素生成的一伪旋转矩阵进行式P=S·Q·ST所表示的类似的变换而形成的矩阵P用于其余的部分。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP279208/1999 | 1999-09-30 | ||
JP27920899A JP3921892B2 (ja) | 1999-09-30 | 1999-09-30 | データベース管理装置、データベースシステム及び記録媒体 |
JP296669/1999 | 1999-10-19 | ||
JP29666999A JP4081940B2 (ja) | 1999-10-19 | 1999-10-19 | データベース管理装置及び記録媒体 |
JP2000224534A JP2002044073A (ja) | 2000-07-25 | 2000-07-25 | 暗号化方式及び復号化方式 |
JP224534/2000 | 2000-07-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1303065A true CN1303065A (zh) | 2001-07-11 |
CN1327379C CN1327379C (zh) | 2007-07-18 |
Family
ID=27336635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB00134899XA Expired - Fee Related CN1327379C (zh) | 1999-09-30 | 2000-09-30 | 数据库管理装置和加密/解密系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7093137B1 (zh) |
EP (1) | EP1089194B1 (zh) |
KR (2) | KR100401225B1 (zh) |
CN (1) | CN1327379C (zh) |
HK (1) | HK1038806A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761923B (zh) * | 2003-06-11 | 2010-05-26 | 甲骨文国际公司 | 加密数据库列的方法和设备 |
CN103392178A (zh) * | 2011-11-11 | 2013-11-13 | 日本电气株式会社 | 数据库加密系统、方法和程序 |
CN103563325A (zh) * | 2011-01-27 | 2014-02-05 | 安全第一公司 | 用于保护数据的系统和方法 |
CN105787387A (zh) * | 2016-03-07 | 2016-07-20 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN106796764A (zh) * | 2014-10-08 | 2017-05-31 | 日本电信电话株式会社 | 部分字符串位置检测装置、部分字符串位置检测方法及程序 |
CN103532707B (zh) * | 2007-05-18 | 2018-01-26 | 美国唯美安视国际有限公司 | 用于确定在保护数据时应用的可编程处理步骤的系统和方法 |
CN108009440A (zh) * | 2017-11-23 | 2018-05-08 | 重庆金融资产交易所有限责任公司 | 数据存储方法、查询方法、装置、存储介质和计算机设备 |
CN108831186A (zh) * | 2018-06-25 | 2018-11-16 | 深圳市嘉泊智慧城市运营管理有限公司 | 大型综合停车场信息管理平台 |
CN111766787A (zh) * | 2019-04-02 | 2020-10-13 | 上海观创智能科技有限公司 | 一种智能家居控制系统及方法 |
CN115440107A (zh) * | 2022-10-26 | 2022-12-06 | 北京千种幻影科技有限公司 | 一种基于vr虚拟现实的聋哑人智能驾驶训练系统及方法 |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770230B2 (en) * | 2002-04-22 | 2010-08-03 | Arvato Digital Services Canada, Inc. | System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software |
SE9904094D0 (sv) * | 1999-11-12 | 1999-11-12 | Protegrity Research & Dev | Method for reencryption of a database |
JP4003203B2 (ja) | 2000-08-10 | 2007-11-07 | サイファーゲート株式会社 | 暗号化プログラムを記録した記録媒体及び復号化プログラムを記録した記録媒体 |
JP2002108910A (ja) * | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
US20070079119A1 (en) * | 2000-11-16 | 2007-04-05 | Ulf Mattsson | Encryption key rotation |
US7325129B1 (en) * | 2000-11-16 | 2008-01-29 | Protegrity Corporation | Method for altering encryption status in a relational database in a continuous process |
US7353387B2 (en) * | 2001-03-08 | 2008-04-01 | International Business Machines Corporation | Method and system for integrating encryption functionality into a database system |
US7484092B2 (en) * | 2001-03-12 | 2009-01-27 | Arcot Systems, Inc. | Techniques for searching encrypted files |
US7526795B2 (en) * | 2001-03-27 | 2009-04-28 | Micron Technology, Inc. | Data security for digital data storage |
FR2828607B1 (fr) * | 2001-08-07 | 2004-01-30 | Centre Nat Rech Scient | Procede de securisation de bases de donnees |
US7266699B2 (en) * | 2001-08-30 | 2007-09-04 | Application Security, Inc. | Cryptographic infrastructure for encrypting a database |
JP4071517B2 (ja) * | 2002-03-26 | 2008-04-02 | 富士通株式会社 | データ処理方法、情報通信端末装置、サーバ及びソフトウェアプログラム |
JP4039158B2 (ja) * | 2002-07-22 | 2008-01-30 | ソニー株式会社 | 情報処理装置および方法、情報処理システム、記録媒体、並びにプログラム |
US7240046B2 (en) | 2002-09-04 | 2007-07-03 | International Business Machines Corporation | Row-level security in a relational database management system |
US7121639B2 (en) * | 2002-12-02 | 2006-10-17 | Silverbrook Research Pty Ltd | Data rate equalisation to account for relatively different printhead widths |
US20040139043A1 (en) * | 2003-01-13 | 2004-07-15 | Oracle International Corporation | Attribute relevant access control policies |
US7873660B1 (en) | 2003-02-27 | 2011-01-18 | Oracle International Corporation | Enforcing data privacy aggregations |
US7310647B2 (en) | 2003-12-24 | 2007-12-18 | Oracle International Corporation | Column masking of tables |
US8825702B2 (en) | 2004-02-24 | 2014-09-02 | Oracle International Corporation | Sending control information with database statement |
US7676453B2 (en) | 2004-04-22 | 2010-03-09 | Oracle International Corporation | Partial query caching |
EP1757006A2 (en) * | 2004-06-01 | 2007-02-28 | Ben-Gurion University of the Negev Research and Development Authority | Structure preserving database encryption method and system |
JP2006071695A (ja) * | 2004-08-31 | 2006-03-16 | Yamatake Corp | 暗号化、復号化プログラム及び暗号システム。 |
US7743069B2 (en) * | 2004-09-03 | 2010-06-22 | Sybase, Inc. | Database system providing SQL extensions for automated encryption and decryption of column data |
US7797342B2 (en) * | 2004-09-03 | 2010-09-14 | Sybase, Inc. | Database system providing encrypted column support for applications |
US7571490B2 (en) * | 2004-11-01 | 2009-08-04 | Oracle International Corporation | Method and apparatus for protecting data from unauthorized modification |
US7639819B2 (en) * | 2005-06-16 | 2009-12-29 | Oracle International Corporation | Method and apparatus for using an external security device to secure data in a database |
US20070074292A1 (en) * | 2005-09-28 | 2007-03-29 | Hitachi, Ltd. | Management of encrypted storage networks |
US20070168671A1 (en) * | 2006-01-16 | 2007-07-19 | Fujitsu Limited | Digital document management system, digital document management method, and digital document management program |
US8064604B2 (en) * | 2006-04-04 | 2011-11-22 | Oracle International Corporation | Method and apparatus for facilitating role-based cryptographic key management for a database |
US8190915B2 (en) * | 2006-06-14 | 2012-05-29 | Oracle International Corporation | Method and apparatus for detecting data tampering within a database |
US7904732B2 (en) * | 2006-09-27 | 2011-03-08 | Rocket Software, Inc. | Encrypting and decrypting database records |
US20080097954A1 (en) * | 2006-10-20 | 2008-04-24 | Microsoft Corporation | Ranged lookups |
US8082452B2 (en) * | 2006-12-06 | 2011-12-20 | George Mason Intellectual Properties, Inc. | Protecting sensitive data associations |
US8639948B2 (en) * | 2006-12-28 | 2014-01-28 | Teradata Us, Inc. | Encrypted data management in database management systems |
US7814250B2 (en) * | 2007-04-27 | 2010-10-12 | Atmel Corporation | Serialization of data for multi-chip bus implementation |
ATE541265T1 (de) * | 2007-06-22 | 2012-01-15 | Neutrino Concepts Ltd | Randomisierung |
JP4456137B2 (ja) * | 2007-07-11 | 2010-04-28 | 富士通株式会社 | 電子文書管理プログラム、該プログラムを記録した記録媒体、電子文書管理装置、および電子文書管理方法 |
US9158933B2 (en) * | 2007-08-17 | 2015-10-13 | Sybase, Inc. | Protection of encryption keys in a database |
US8078595B2 (en) | 2007-10-09 | 2011-12-13 | Oracle International Corporation | Secure normal forms |
KR100859162B1 (ko) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
KR100924796B1 (ko) * | 2007-11-29 | 2009-11-03 | 한국전자통신연구원 | 베타 전개를 이용한 순서 보존 수치 데이타 암호화 시스템및 방법 |
US8813247B1 (en) * | 2008-04-07 | 2014-08-19 | Alex I. Alten | Providing cryptographic security for objective-oriented programming files |
US7904489B2 (en) * | 2008-05-09 | 2011-03-08 | Target Brands, Inc. | Database unload/reload of partitioned tables |
CN101587479B (zh) * | 2008-06-26 | 2011-04-13 | 北京人大金仓信息技术股份有限公司 | 面向数据库管理系统内核的数据加解密系统及其方法 |
US8397051B2 (en) | 2009-02-23 | 2013-03-12 | Autonomy, Inc. | Hybrid hash tables |
US20100215175A1 (en) * | 2009-02-23 | 2010-08-26 | Iron Mountain Incorporated | Methods and systems for stripe blind encryption |
US8145598B2 (en) * | 2009-02-23 | 2012-03-27 | Iron Mountain Incorporated | Methods and systems for single instance storage of asset parts |
US8090683B2 (en) * | 2009-02-23 | 2012-01-03 | Iron Mountain Incorporated | Managing workflow communication in a distributed storage system |
US8239396B2 (en) | 2009-03-20 | 2012-08-07 | Oracle International Corporation | View mechanism for data security, privacy and utilization |
US8510552B2 (en) * | 2010-04-07 | 2013-08-13 | Apple Inc. | System and method for file-level data protection |
JP5466763B2 (ja) * | 2010-07-23 | 2014-04-09 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 |
JP5776696B2 (ja) | 2010-09-28 | 2015-09-09 | 日本電気株式会社 | 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム |
US20120102324A1 (en) * | 2010-10-21 | 2012-04-26 | Mr. Lazaro Rodriguez | Remote verification of user presence and identity |
CN102098282B (zh) * | 2010-12-02 | 2015-01-21 | 东方口岸科技有限公司 | 数据库的安全加密方法 |
WO2012081450A1 (ja) | 2010-12-13 | 2012-06-21 | 日本電気株式会社 | 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US8843767B2 (en) * | 2011-07-06 | 2014-09-23 | The Boeing Company | Secure memory transaction unit |
US8839001B2 (en) * | 2011-07-06 | 2014-09-16 | The Boeing Company | Infinite key memory transaction unit |
US8832144B2 (en) * | 2011-07-11 | 2014-09-09 | International Business Machines Corporation | Search optimization in a computing environment |
KR101295069B1 (ko) * | 2011-07-11 | 2013-08-08 | 주식회사 데이터스트림즈 | 가독 대칭형 암호화방법 |
JP6137173B2 (ja) * | 2012-04-24 | 2017-05-31 | 日本電気株式会社 | 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム |
US9094873B2 (en) * | 2012-05-14 | 2015-07-28 | Wei Lu | Classified relation networking optimization platform in open wireless architecture (OWA) mobile cloud terminal device |
US9298756B1 (en) * | 2013-02-25 | 2016-03-29 | Mark Johnson | Read/write RFID system for animals |
US10313128B2 (en) | 2014-08-29 | 2019-06-04 | The Boeing Company | Address-dependent key generator by XOR tree |
US9928385B2 (en) | 2014-08-29 | 2018-03-27 | The Boeing Company | Periodic memory refresh in a secure computing system |
US10146701B2 (en) | 2014-08-29 | 2018-12-04 | The Boeing Company | Address-dependent key generation with a substitution-permutation network |
US9946662B2 (en) | 2014-08-29 | 2018-04-17 | The Boeing Company | Double-mix Feistel network for key generation or encryption |
US9252943B1 (en) | 2014-09-26 | 2016-02-02 | The Boeing Company | Parallelizable cipher construction |
EP3032453B1 (en) * | 2014-12-08 | 2019-11-13 | eperi GmbH | Storing data in a server computer with deployable encryption/decryption infrastructure |
KR102249826B1 (ko) * | 2015-01-06 | 2021-05-11 | 삼성전자주식회사 | 데이터 관리 방법 및 이를 수행하는 전자 장치 |
US9509500B2 (en) * | 2015-03-31 | 2016-11-29 | Here Global B.V. | Method and apparatus for migrating encrypted data |
US10892889B2 (en) * | 2015-04-07 | 2021-01-12 | Coleridge Enterprises Llc | Systems and methods for an enhanced XOR cipher through extensions |
KR102460096B1 (ko) * | 2015-05-27 | 2022-10-27 | 삼성에스디에스 주식회사 | 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치 |
CN106096448A (zh) * | 2016-06-20 | 2016-11-09 | 浪潮电子信息产业股份有限公司 | 一种基于ssr加密技术的数据库安全加固方法和系统 |
US10277561B2 (en) | 2016-07-22 | 2019-04-30 | International Business Machines Corporation | Database management system shared ledger support |
US10230700B2 (en) * | 2016-08-09 | 2019-03-12 | Lenovo (Singapore) Pte. Ltd. | Transaction based message security |
WO2018119315A1 (en) * | 2016-12-21 | 2018-06-28 | University Of Hawaii | Hybrid encryption for cyber security of control systems |
US10496631B2 (en) * | 2017-03-10 | 2019-12-03 | Symphony Communication Services Holdings Llc | Secure information retrieval and update |
US11074997B2 (en) * | 2018-01-23 | 2021-07-27 | Statum Systems Inc. | Multi-modal encrypted messaging system |
US10893505B2 (en) | 2018-01-23 | 2021-01-12 | Statum Systems Inc. | Enhanced pager network |
US10839087B2 (en) * | 2018-07-30 | 2020-11-17 | Sap Se | Secure data aggregation in databases using dynamic bucketization and grouping bucketization |
US10824739B2 (en) * | 2018-07-30 | 2020-11-03 | Sap Se | Secure data aggregation in databases using static shifting and shifted bucketization |
CN109635273B (zh) * | 2018-10-25 | 2023-04-25 | 平安科技(深圳)有限公司 | 文本关键词提取方法、装置、设备及存储介质 |
US11283619B2 (en) * | 2019-06-20 | 2022-03-22 | The Boeing Company | Bit mixer based parallel MAC and hash functions |
US11804955B1 (en) | 2019-09-13 | 2023-10-31 | Chol, Inc. | Method and system for modulated waveform encryption |
KR102300467B1 (ko) * | 2019-10-28 | 2021-09-09 | 주식회사 한글과컴퓨터 | 스프레드시트 문서에 포함된 표를 이용한 지식 데이터베이스의 구축 및 상기 지식 데이터베이스에 대한 사용자 접근을 가능하게 하는 지식 데이터베이스 관리 장치 및 그 동작 방법 |
US11641275B2 (en) * | 2019-12-11 | 2023-05-02 | LendingClub Bank, National Association | Encryption key rotation framework |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4605820A (en) * | 1983-11-10 | 1986-08-12 | Visa U.S.A. Inc. | Key management system for on-line communication |
US4740927A (en) * | 1985-02-13 | 1988-04-26 | International Business Machines Corporation | Bit addressable multidimensional array |
US4827508A (en) * | 1986-10-14 | 1989-05-02 | Personal Library Software, Inc. | Database usage metering and protection system and method |
US5295188A (en) * | 1991-04-04 | 1994-03-15 | Wilson William J | Public key encryption and decryption circuitry and method |
US5363449A (en) * | 1993-03-11 | 1994-11-08 | Tandem Computers Incorporated | Personal identification encryptor and method |
US5677953A (en) * | 1993-09-14 | 1997-10-14 | Spyrus, Inc. | System and method for access control for portable data storage media |
SE501128C2 (sv) * | 1993-11-30 | 1994-11-21 | Anonymity Prot In Sweden Ab | Anordning och metod för lagring av datainformation |
EP0719045B1 (en) * | 1994-12-13 | 2003-10-29 | Mitsubishi Corporation | Crypt key system for secure electronic transactions |
JP3627384B2 (ja) * | 1996-01-17 | 2005-03-09 | 富士ゼロックス株式会社 | ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法 |
US5924094A (en) * | 1996-11-01 | 1999-07-13 | Current Network Technologies Corporation | Independent distributed database system |
US6169802B1 (en) * | 1996-12-17 | 2001-01-02 | Motorola, Inc. | Dynamic private key security system for personal messaging devices |
US5963642A (en) * | 1996-12-30 | 1999-10-05 | Goldstein; Benjamin D. | Method and apparatus for secure storage of data |
GB9712459D0 (en) * | 1997-06-14 | 1997-08-20 | Int Computers Ltd | Secure database system |
KR100389902B1 (ko) * | 1997-06-23 | 2003-09-22 | 삼성전자주식회사 | 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법 |
JP3292107B2 (ja) * | 1997-08-28 | 2002-06-17 | 日本電気株式会社 | 2重ベクトル加算装置、2重ベクトル2倍装置及び2重ベクトル整数倍装置 |
US6219421B1 (en) * | 1997-10-24 | 2001-04-17 | Shaul O. Backal | Virtual matrix encryption (VME) and virtual key cryptographic method and apparatus |
JPH11143780A (ja) * | 1997-11-05 | 1999-05-28 | Hitachi Ltd | データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置 |
KR100434558B1 (ko) * | 1997-12-09 | 2004-09-30 | 삼성전자주식회사 | 고속블록암호화방법및이를위한키스케쥴링방법 |
-
2000
- 2000-09-26 US US09/670,424 patent/US7093137B1/en not_active Expired - Lifetime
- 2000-09-28 EP EP00121136.6A patent/EP1089194B1/en not_active Expired - Lifetime
- 2000-09-29 KR KR10-2000-0057347A patent/KR100401225B1/ko active IP Right Grant
- 2000-09-30 CN CNB00134899XA patent/CN1327379C/zh not_active Expired - Fee Related
-
2001
- 2001-12-22 HK HK01109010A patent/HK1038806A1/xx not_active IP Right Cessation
-
2003
- 2003-05-27 KR KR10-2003-0033587A patent/KR100398319B1/ko active IP Right Grant
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761923B (zh) * | 2003-06-11 | 2010-05-26 | 甲骨文国际公司 | 加密数据库列的方法和设备 |
CN103532707B (zh) * | 2007-05-18 | 2018-01-26 | 美国唯美安视国际有限公司 | 用于确定在保护数据时应用的可编程处理步骤的系统和方法 |
CN103563325A (zh) * | 2011-01-27 | 2014-02-05 | 安全第一公司 | 用于保护数据的系统和方法 |
CN103563325B (zh) * | 2011-01-27 | 2017-04-26 | 安全第一公司 | 用于保护数据的系统和方法 |
CN103392178A (zh) * | 2011-11-11 | 2013-11-13 | 日本电气株式会社 | 数据库加密系统、方法和程序 |
US8812877B2 (en) | 2011-11-11 | 2014-08-19 | Nec Corporation | Database encryption system, method, and program |
CN103392178B (zh) * | 2011-11-11 | 2015-08-26 | 日本电气株式会社 | 数据库加密系统、方法和程序 |
US9349023B2 (en) | 2011-11-11 | 2016-05-24 | Nec Corporation | Database encryption system, method, and program |
CN106796764A (zh) * | 2014-10-08 | 2017-05-31 | 日本电信电话株式会社 | 部分字符串位置检测装置、部分字符串位置检测方法及程序 |
CN105787387A (zh) * | 2016-03-07 | 2016-07-20 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN105787387B (zh) * | 2016-03-07 | 2018-09-14 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN108009440A (zh) * | 2017-11-23 | 2018-05-08 | 重庆金融资产交易所有限责任公司 | 数据存储方法、查询方法、装置、存储介质和计算机设备 |
CN108009440B (zh) * | 2017-11-23 | 2020-05-22 | 重庆金融资产交易所有限责任公司 | 数据存储方法、查询方法、装置、存储介质和计算机设备 |
CN108831186A (zh) * | 2018-06-25 | 2018-11-16 | 深圳市嘉泊智慧城市运营管理有限公司 | 大型综合停车场信息管理平台 |
CN111766787A (zh) * | 2019-04-02 | 2020-10-13 | 上海观创智能科技有限公司 | 一种智能家居控制系统及方法 |
CN115440107A (zh) * | 2022-10-26 | 2022-12-06 | 北京千种幻影科技有限公司 | 一种基于vr虚拟现实的聋哑人智能驾驶训练系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US7093137B1 (en) | 2006-08-15 |
CN1327379C (zh) | 2007-07-18 |
KR100401225B1 (ko) | 2003-10-10 |
KR20010082528A (ko) | 2001-08-30 |
EP1089194A3 (en) | 2007-04-04 |
KR100398319B1 (ko) | 2003-09-19 |
HK1038806A1 (en) | 2002-03-28 |
EP1089194B1 (en) | 2013-05-08 |
EP1089194A2 (en) | 2001-04-04 |
KR20030058997A (ko) | 2003-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1303065A (zh) | 数据库管理装置和加密/解密系统 | |
CN1242587C (zh) | 高速、灵活的加密系统的方法及设备 | |
CN100338907C (zh) | 信息处理系统和方法、信息处理设备和方法 | |
CN1947372A (zh) | 个人信息管理装置、分散密钥存储装置、个人信息管理系统 | |
CN1222893C (zh) | 电子水印方法和系统 | |
CN1302408C (zh) | 认证系统、认证装置、终端装置以及认证方法 | |
CN1272929C (zh) | 加密/解密方法和使用多仿射密钥系统的验证方法及装置 | |
CN1668995A (zh) | 用于改善伪随机数发生器的输出的不可预测性的方法 | |
CN1535451A (zh) | 可证实的秘密洗牌及其对于电子表决的应用 | |
CN101080897A (zh) | 鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质 | |
CN1157020C (zh) | 提高了安全性的密码处理装置 | |
CN1855112A (zh) | 内容信息提供服务器、系统和方法及内容再现设备和方法 | |
CN1476580A (zh) | 内容使用权管理系统和管理方法 | |
CN1839581A (zh) | 装置认证信息安装系统 | |
CN1753356A (zh) | 信息处理方法、解密方法、信息处理装置和计算机程序 | |
CN1779689A (zh) | 数据处理设备和数据处理方法 | |
CN1914649A (zh) | 认证系统, 认证设备,以及记录介质 | |
CN1442978A (zh) | 数据通信系统、加密装置及解密装置 | |
CN1256459A (zh) | 数字作品保护系统 | |
CN1879138A (zh) | 密码处理装置、密码处理方法及其计算机程序 | |
CN1665185A (zh) | 内容提供系统、用户系统、跟踪系统、装置及方法 | |
CN1977250A (zh) | 进行加密或解密的计算机系统和计算机程序 | |
CN1504028A (zh) | 利用瞬时模数的密码验证 | |
CN1726669A (zh) | 数据分割方法和使用异或运算的装置 | |
CN1993684A (zh) | 存储卡、数据交换系统和数据交换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070718 Termination date: 20190930 |
|
CF01 | Termination of patent right due to non-payment of annual fee |