CN101206815B - 加密装置和加密方法 - Google Patents
加密装置和加密方法 Download PDFInfo
- Publication number
- CN101206815B CN101206815B CN200710182363.1A CN200710182363A CN101206815B CN 101206815 B CN101206815 B CN 101206815B CN 200710182363 A CN200710182363 A CN 200710182363A CN 101206815 B CN101206815 B CN 101206815B
- Authority
- CN
- China
- Prior art keywords
- character
- conversion table
- bit sequence
- districts
- ciphertext
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及加密处理、加密装置和存储加密程序的计算机可读介质,提供了一种用于加密的处理、装置以及存储程序的计算机可读介质。提供了一种具有多个区的转换表,每一个区都存储有与索引值相关联的2i个字符代码,其中i是对于各个区预定的自然数,该2i个字符代码以预定的字符编码方案定义,并且所述索引值具有用于唯一地标识各个区内的2i个字符代码的最小必需位长。参照该转换表的各个对应的区,将构成明文的第一字符代码转换成索引值。接着,在不改变位长的情况下对索引值进行加密,并且参照该转换表的各个对应的区,将加密值转换成与和加密值一致的索引值相关联的第二字符代码,输出所述第二字符代码的序列作为加密文本。
Description
技术领域
本发明涉及用于逐个字符地对字符数据进行加密的加密处理和加密装置,以及存储有用于逐个字符地对字符数据进行加密的加密程序的计算机可读介质。
背景技术
目前,加密技术已经广泛地用于保持发送信息或存储数据的机密性。加密方法包括两种类型,公钥加密和私钥加密。公钥加密使用一对密钥;分别用于加密和解密的公钥和私钥。公钥加密在保持加密强度的容易性方面有利。在私钥加密(对称密钥加密)中,公用密钥被加密器和解密器共享,并且用于加密和解密。与公钥加密相比,私钥加密的有利之处在于需要更少的处理量。当必需发送大量数据时,通常使用私钥加密(需要更少的处理量)。用于私钥加密的公知加密算法包括DES(数据加密标准)和AES(高级加密标准)。例如,参见日本未审专利公报No.8-227269。
顺便提及,在使用计算机进行加密的许多情况下,通过根据特定字符编码方案对字符进行编码所产生的字符数据需要被加密。然而,在一些情况中,通过根据常规加密算法进行加密所产生的数据不能由被设计成仅处理字符数据(由分配给字符的字符代码表示的数据)的软件正确地处理,其原因如下。
大多数的字符编码方案具有未分配给任何字符的字符代码范围。例如,在诸如shift_JIS(日本工业标准JIS X 0208,附录1)的日语字符编码方案中,每一个字符都由16位表示,并且216(=65536)个字符代码中的一部分没有被分配给字符。因此,根据是否检测到未使用的字符代码中的一个的位序列,软件可以确定每一个字符代码是否表示一字符。然而,通过根据常规加密算法对所输入的字符数据(分配给字符的字符 代码)进行加密所产生的加密数据遍及可以由具有与所输入的字符代码相同长度的可能位序列表示的所有字符代码。因此,被设计成仅处理字符数据(分配给字符的字符代码)的软件不能正确地识别上述加密数据。
即使在上述情况下,也存在对通过软件来处理加密数据的需求。因此,目前正在研究用于产生仅由分配给字符的字符代码表示的加密数据的技术。例如,已知用于使用Base64编码方案将(根据加密算法产生的)加密数据转换成字符代码的技术。在Base64编码中,首先,将原始数据分成多个24位部分,并且将每一个24位部分转换成分别表示半角(en-width)字符(ASCII码)的四个字符代码。根据这种技术,可以产生仅由ASCII码表示的加密数据,以使得更大量的软件程序能够处理加密数据。
然而,根据使用Base64编码方案产生加密数据的技术,加密数据的位长变得大于原始字符数据的位长。因为每一个24位(3字节)部分都被转换成四个ASCII码(分别具有4字节的长度),所以Base64编码使位长增大了大约1.3倍。因为在许多情况下存储在数据库中的数据的大小被限制在特定范围,所以当将加密数据存储在数据库中时,位长的增加尤其成问题。
另外,加密之前或之后的位长转换可以被视为用于限制加密数据可以具有的值的范围的另一技术。具体来说,将每一个字符的原始字符代码转换成具有比加密之前的原始字符代码短的位长的位序列。接着,对经转换的位序列进行加密,并且将加密位序列逆向转换成字符代码。例如,所有1级和2级日本汉字(kanji)字符(根据JIS X 0208)都可以由13位表示。因此,在将16位字符代码转换成13位序列之后执行对1级和2级日本汉字字符的加密。因此,可以限制加密数据可以具有的值的范围,同时最终获得的加密数据由16位字符代码表示(即,最终获得的加密数据的位长可以与原始字符数据的位长相等)。
然而,在字符编码方案中定义的字符代码的数量不等于2n(其中,n为自然数)并且仅使用上述用于限制值的范围的技术的情况下,不能产生仅由字符代码表示的加密数据。这是因为加密可能产生不能逆向转换 的位序列。例如,尽管根据JIS X 0208的1级和2级日本汉字字符的数量为6879,但是13位序列可以表示8192个字符。因此,存在即使在位长被减小为13位时,加密也可能产生没有分配给字符的位序列。然而,当位长被减小为12位时,不能表示所有1级和2级日本汉字字符。
发明内容
鉴于上述问题而提出本发明,并且本发明的第一目的是提供一种逐个字符地对字符数据进行加密的加密处理和加密装置,并且可以容易地产生加密数据,以使该加密数据仅由分配给以字符编码方案定义的字符的字符代码表示,而与分配给以字符编码方案定义的字符的字符代码的数量无关。
另外,本发明的第二目的是提供一种存储有用于在计算机中实现上述加密装置的加密程序的计算机可读介质。
为了实现第一目的,根据本发明的第一方面,提供了一种加密处理。该加密处理的特征在于包括以下步骤:(a)在转换表存储单元中预先存储具有多个区的转换表,每一个区都存储有与索引值相关联的2i个字符代码,其中,i是对于所述多个区中的每一个区预定的自然数,所述2i个字符代码以预定的字符编码方案定义,并且所述索引值具有用于唯一地标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;(b)获取输入到计算机中的明文,并且参照存储在所述转换表存储单元中的转换表的所述多个区中的存储有构成所述明文的第一字符代码的多个区,将所述第一字符代码分别转换成与所述第一字符代码相关联的索引值,其中,所述第一字符代码以所述预定的字符编码方案定义;(c)连续地获取所述索引值,并将所述索引值加密成分别具有与所述索引值相同位长的加密值;以及(d)连续地获取所述加密值,参照所述转换表的所述多个区中的上述多个区,将所述加密值转换成分别与和所述加密值一致的索引值关联的第二字符代码,产生所述第二字符代码的序列作为与所述明文相对应的加密文本,并且输出所述加密文本。
另外,为了实现第一目的,根据本发明的第二方面,还提供了一种 加密装置。该加密装置的特征在于包括:转换表存储单元,该转换表存储单元存储具有多个区的转换表,每一个区都存储有与索引值相关联的2i个字符代码,其中,i是对于所述多个区中的每一个区预定的自然数,所述2i个字符代码以预定的字符编码方案定义,并且所述索引值具有用于唯一地标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;明文转换单元,该明文转换单元获取输入到计算机中的明文,并且参照存储在所述转换表存储单元中的转换表的所述多个区中的存储有构成所述明文的第一字符代码的多个区,将所述第一字符代码分别转换成与所述第一字符代码相关联的索引值,其中,所述第一字符代码以所述预定的字符编码方案定义;加密单元,该加密单元连续地获取所述索引值,并将所述索引值加密成分别具有与所述索引值相同的位长的加密值;以及加密文本输出单元,该加密文本输出单元连续获取所述加密值,参照所述转换表的所述多个区中的上述多个区,将所述加密值转换成分别与和所述加密值一致的索引值相关联的第二字符代码,产生所述第二字符代码的序列作为与所述明文相对应的加密文本,并且输出所述加密文本。
为了实现第二目的,提供了一种存储有在计算机中实现根据本发明第二方面的上述加密装置的加密程序的计算机可读介质。
结合附图,根据以下的说明,本发明的上述和其它目的、特征以及优点将变清楚,附图通过实施例的方式例示了本发明的优选实施方式。
附图说明
图1是例示本发明的概要的图。
图2是例示其中实现了本发明的实施方式的系统的构造的实施例的图。
图3是例示服务器的硬件构造的图。
图4是例示根据本发明的第一实施方式的服务器的功能的框图。
图5是例示转换表的数据结构的实施例的图。
图6是例示根据第一实施方式的数据库系统中的加密单元的功能的 实施例的框图。
图7是例示根据第一实施方式的用于加密的操作序列的实施例的图。
图8是例示根据第一实施方式的数据库系统中的解密单元的功能的实施例的框图。
图9是例示根据第一实施方式的用于解密的操作序列的实施例的图。
图10是例示根据第二实施方式的数据库系统中的加密单元的功能的实施例的框图。
图11是根据第二实施方式的数据库系统中的解密单元的功能的实施例的框图。
图12是例示根据本发明的第三实施方式的服务器的功能的框图。
图13是例示根据第三实施方式的数据库系统中的加密单元的功能的实施例的框图。
图14是例示顺序转换处理的概要的图。
图15是例示根据第三实施方式的用于加密的操作序列的实施例的图。
图16是例示根据第三实施方式的数据库系统中的解密单元的功能的实施例的框图。
图17是例示根据第三实施方式的用于解密的操作序列的实施例的图。
具体实施方式
下面,参照附图对本发明的实施方式进行说明,其中贯穿全文相同的标号表示相同的组件。
1、本发明的概要
图1是例示本发明的概要的图。如图1所示,加密装置1对明文3进行加密并输出加密文本4。另一方面,解密装置对由加密装置1生成的加密文本5进行解密,并且输出明文6。
加密装置1包括转换表存储单元1a、明文转换单元1b、加密单元1c,以及加密文本输出单元1d。
转换表存储单元1a存储有转换表,在该转换表中,以预定的字符编码方案定义的字符代码与索引值相关联。将该转换表分成多个区,以使得可以在所述多个区中的每一个区中存储2i个字符代码,其中,i为自然数。每一个索引值都是唯一地标识所述多个区中的每一个区中的字符代码的位序列。每一个索引值都具有用于标识字符代码的最小必需长度。
例如,考虑其中定义了6个字符“A”到“F”的字符编码方案。尽管数字“6”不等于2n,但数字“6”是22和21的和。因此,将转换表分成用于存储4(22)个字符代码的第一区和用于存储2(21)个字符代码的第二区。将两位索引值附加给第一区中的每一个字符代码,并且将一位索引值附加给第二区中的每一个字符代码。
明文转换单元1b获取输入到加密装置1中的明文3,并且参照存储在转换表存储单元1a中的转换表,将构成所获取的明文3的每一个字符代码转换成索引值。例如,当明文3包含字符“A”的字符代码时,明文转换单元1b将字符代码转换成索引值“00”。
加密单元1c连续地获取由明文转换单元1b产生的索引值,并且将所获取的每一个索引值加密成具有与所获取的索引值相同的长度的加密值。例如,加密单元1c将索引值“00”加密成加密值“10”。
加密文本输出单元1d连续地获取由加密单元1c通过加密产生的加密值,并且参照存储在转换表存储单元1a中的转换表,将所获取的每一个加密值转换成字符代码。例如,加密文本输出单元1d将加密值“10”转换成字符代码“C”。此后,加密文本输出单元1d输出如上获得的字符代码的序列,作为与明文3相对应的加密文本4。
解密装置2包括转换表存储单元2a、加密文本转换单元2b、解密单元2c,以及明文输出单元2d。存储在转换表存储单元2a中的转换表与存储在转换表存储单元1a中的转换表相同。
加密文本转换单元2b获取输入到解密装置2中的加密文本5,并且参照存储在转换表存储单元2a中的转换表,将构成所获取的加密文本5 的每一个字符代码转换成索引值。例如,当加密文本5包含字符“C”的字符代码时,加密文本转换单元2b将该字符代码转换成索引值“10”。
解密单元2c连续地获取由加密文本转换单元2b产生的索引值,并且将所获取的每一个索引值解密成具有与所获取的索引值相同的长度的解密值。例如,解密单元2c将索引值“10”解密成解密值“00”。
明文输出单元2d连续地获取由解密单元2c产生的解密值,并且参照存储在转换表存储单元2a中的转换表,将获取的每一个解密值转换成字符代码。例如,明文输出单元2d将解密值“00”转换成字符代码“A”。此后,明文输出单元2d输出如上获得的字符代码的序列,作为与加密文本5相对应的明文6。
另选的是,可以在可以由加密装置1和解密装置2两者共同参照的存储单元中存储转换表,而不是在加密装置1和解密装置2中的每一个中存储转换表。
当将明文3输入到具有上述构造的加密装置1中时,明文转换单元1b基于转换表(具有多个区,每一个区都存储有2i个字符代码,其中i为自然数)中的信息,将构成明文3的每一个字符代码转换成具有与存储该字符代码的区相对应的位长的索引值。接着,加密单元1c将每一个索引值加密成加密值,而不改变位长。最后,加密文本输出单元1d参照转换表将加密值转换成字符代码,并且输出字符代码的序列,作为加密文本4。
另外,当将加密文本5输入到具有上述构造的解密装置2中时,加密文本转换单元2b基于转换表(具有多个区,每一个区都存储有2i个字符代码,其中i为自然数)中的信息,将构成加密文本5的每一个字符代码转换成具有与存储该字符代码的区相对应的位长的索引值。接着,解密单元2c将每一个索引值解密成解密值,而不改变位长。最后,明文输出单元2d参照转换表将解密值转换成字符代码,并且将字符代码的序列输出为明文6。
因此,可以确保防止通过加密而生成转换表中没有列出的位序列,使得可以容易地产生由以预定的字符编码方案定义的字符代码表示的加 密文本,而不需要进行复杂的处理。
例如可以使用加密装置1和解密装置2对要存储在数据库中的数据进行加密或对从数据库中读出的数据进行解密。具体来说,考虑对要存储在数据库中的数据进行加密,以便防止由于对用于构成该数据库的存储装置的非授权访问或盗窃该存储装置而导致的信息泄漏。因此,在下面对本发明的实施方式的说明中,以对要存储在数据库中的字符数据的加密作为实施例。
2、第一实施方式
在下文中,参照图2到9对本发明的第一实施方式进行说明。
2.1系统构造
图2是例示其中实现了本发明的第一实施方式的数据库系统的构造的实施例的图。在根据第一实施方式的数据库系统中,对要存储在数据库中的字符数据进行加密。图2的数据库系统包括服务器100、数据库110、客户端21,以及网络10。
客户端21是用户使用的计算机,并且通过网络10连接至服务器100。服务器100是具有用于管理数据库110的功能的计算机,并且连接至数据库110。在数据库110中存储加密字符数据。
当客户端21对存储在数据库110中的数据进行处理时,客户端21通过网络10向服务器100发送用于处理数据的请求。响应于来自客户端21的请求,服务器100执行对存储在数据库110中的数据的处理。当所请求的处理是更新数据时,服务器100对字符数据进行加密并将加密数据存储在数据库110中。当所请求的处理是搜索数据时,服务器100从数据库110获取加密文本,对加密的字符文本进行解密,并且对客户端21进行响应。
如上所述,服务器100执行用于对字符数据进行加密和解密的处理,并且在客户端21与数据库110之间中继数据。而且,还可以在服务器100与客户端21之间的通信中使用诸如DES(数据加密标准)或AES(高级加密标准)的加密技术。
2.2硬件构造
图3是例示服务器100的硬件构造的图。整个服务器100由CPU(中央处理单元)101控制,RAM(随机存取存储器)102、HDD(硬盘驱动器)103、图形处理装置104、输入接口105、通信接口106,以及存储装置接口107通过总线108连接至CPU101。RAM102临时存储由CPU101执行的OS(操作系统)程序和应用程序中的至少一部分,以及CPU101进行处理所需的各种类型的数据。HDD103存储OS程序和应用程序。监视器11连接至图形处理装置104,该图形处理装置104根据来自CPU101的指令使监视器11在屏幕上显示图像。键盘12和鼠标13连接至输入接口105,该输入接口105通过总线108将从键盘12和鼠标13发送的信号传送给CPU101。通信接口106连接至网络10,并且通过网络10与其它计算机交换数据。存储装置接口107是用于将数据输入到数据库110和从数据库110输出数据的通信接口。
通过利用上述硬件构造,可以实现根据第一实施方式的服务器100的功能。另外,还可以利用类似的硬件构造实现客户端21。
2.3服务器100的功能
在下文中,对服务器100的功能进行说明。
图4是例示根据本发明第一实施方式的服务器100的功能的框图。服务器100包括数据库管理单元120、初始值存储单元131、私钥存储单元132、转换表存储单元133、加密单元140,以及解密单元150。
数据库管理单元120执行用于将数据输入到数据库110和从数据库110输出数据的处理。当需要将字符数据输入到数据库110中时,数据库管理单元120通过加密单元140将字符数据写入到数据库110中。当需要从数据库110获取字符数据并且输出到客户端21时,数据库管理单元120通过解密单元150从数据库110获取字符数据。
初始值存储单元131存储有在加密单元140和解密单元150中执行加密和解密时使用的初始向量。该初始向量是在加密或解密前导(leading)字符时使用的位序列。私钥存储单元132存储有在加密单元140和解密单元150中执行加密和解密时使用的私钥。转换表存储单元133存储有转换表,在该转换表中定义了字符代码与标识字符代码的索引 之间的对应关系。
加密单元140参照初始值存储单元131、私钥存储单元132以及转换表存储单元133,对从数据库管理单元120接收到的字符数据进行加密,并将加密的字符数据存储在数据库110中。
解密单元150响应于来自数据库管理单元120的请求,从数据库110获取加密字符数据,并且参照初始值存储单元131、私钥存储单元132以及转换表存储单元133,对所获取的加密字符数据进行解密。接着,解密单元150将解密的字符数据传送至数据库管理单元120。
图5是例示转换表的数据结构的实施例的图。图5的转换表133a存储在转换表存储单元133中。转换表133a具有字段“索引”、“字符代码”、以及“有效位数”。在转换表133a中,每一行上所列的信息项彼此关联。
索引是用于唯一地标识各个字符代码的数值。具体来说,将从“0”开始的数字连续地分配给字符代码。在图5中,用二进制数来表示索引。
字符代码是以预定的字符编码方案定义的用来标识字符的数值。在字符代码与索引之间存在一一对应就足够了,不需要按照索引的顺序排列字符代码。在图5中,字符代码由十六进制数表示。
有效位数是表示各个索引的多个位中的经过加密或解密的一个或更多个位的数量。例如,当有效位数是4时,要对索引的四个最低有效位进行加密或解密。表示各个索引的多个位中的经过加密或解密的一个或更多个位的序列对应于前面在发明内容中和“1、本发明的概要”部分中说明的索引值。
有效位数和与这些有效位相关联的字符代码数是通过将要存储在转换表133a中的字符代码的总数分解为分量2i(其中,i为自然数)的和来确定的。例如,当存储在转换表133a中的字符代码的总数为26时,可以将数量26分解为
26=24(16)+23(8)+21(2)
因此,将存储在转换表133a中的字符代码分成分别与4个有效位相关联的16个字符代码、分别与3个有效位相关联的8个字符代码,以及分别与1个有效位相关联的2个字符代码。
在下面对第一实施方式的说明中,为简单起见,如图5所示,以其中定义了仅与26个字母字符相对应的字符代码的字符编码方案作为实施例。在这个实施例中,向在明文中更频繁出现的字母字符分配更大数量的有效位。这是因为通过在与相同的有效位数相关联的字符代码组内进行转换来实现对字符的加密。例如,当对字符“E”进行加密时,将字符“E”转换成16个字符中的一个。当对字符“Q”进行加密时,将字符“Q”转换成字符“Q”和“Z”中的一个。因此,从安全的角度来看,将具有很少转换模式的较小有效位数分配给在明文中更频繁出现的字符不是优选的。
接着,下面参照图6和7对加密单元140的功能进行说明。在下面的说明中,假定加密算法是根据DES的算法,而加密模式是CFB(密码反馈)模式。
图6是例示根据第一实施方式的数据库系统中的加密单元140的功能的实施例的框图。加密单元140包括明文转换单元141、移位寄存器142、加密处理单元143、加密数据存储单元144、EOR计算单元145,以及加密文本输出单元146。
当从数据库管理单元120将明文31输入到加密单元140时,明文转换单元141参照转换表存储单元133中的转换表133a,将构成明文31的各个字符代码转换成要加密的位序列。要加密的位序列是构成在转换表133a中被表示为与各个字符代码相关联的索引的多个位中的一个或多个有效位的序列。即,明文转换单元141从转换表133a中表示的索引中截取(cut out)该索引中的数量等于有效位数的一个或更多个最低有效位。然后,明文转换单元141将要加密的位序列连续地提供给EOR计算单元145。
移位寄存器142可以保持具有预定位长的位序列,并且向左对该位序列进行移位。当从EOR计算单元145输出计算的结果时,将存储在移位寄存器142中的位序列向左移位该计算结果的位数,并且将该计算结果设置在移位寄存器142中的经移位的位序列的右侧。当开始加密处理时,将存储在初始值存储单元131中的初始向量设置在移位寄存器142中。
加密处理单元143使用存储在私钥存储单元132中的私钥,根据DES算法对保持在移位寄存器142中的值进行加密。接着,加密处理单元143将加密值存储在加密数据存储单元144中。
EOR计算单元145从明文转换单元141获取要加密的位序列,并且从存储在加密数据存储单元144中的多个位中截取该多个位的从前导位开始的并且具有与要加密的位序列相同的长度的一部分。接着,EOR计算单元145计算从加密数据存储单元144截取的位与要加密的位序列的异或,并将计算结果的位序列输出至加密文本输出单元146和移位寄存器142。
加密文本输出单元146从EOR计算单元145获取计算结果的位序列,并且参照转换表133a将所获取的位序列转换成字符代码。基于转换表133a中表示的索引和有效位数来确定字符代码。另外,加密文本输出单元146与明文31相对应地组合从计算结果的位序列转换出的字符代码,并且输出组合的字符代码作为与明文31相对应的加密文本32。将加密文本32存储在数据库110中。
图7是例示根据第一实施方式的用于加密的操作序列的实施例的图。在图7的实施例中,对表示明文“JAZZ”的字符代码的序列进行加密。
在第一步骤ST11中,执行用于对第一字符“J”进行加密的处理。这时,在移位寄存器142中设置初始向量。当开始加密时,首先,加密处理单元143对移位寄存器142中的值进行加密,并且将加密值存储在加密数据存储单元144中。接着,EOR计算单元145提取保持在加密数据存储单元144中的前三位,并且计算对应于字符“J”的位序列“111”与从加密数据存储单元144中提取的前三位的异或。例如,获得位序列“001”作为计算结果,并且加密文本输出单元146将位序列“001”转换成与字符“G”相对应的字符代码。
在第二步骤ST12中,执行用于对第二字符“A”进行加密的处理。这时,将保持在移位寄存器142中的位序列向左移位三位,并将前述计算结果(前面的步骤ST11中的计算结果)设置在移位寄存器142的经移位的位序列的右侧。接着,加密处理单元143对保持在移位寄存器142中 的值进行加密,并将加密值存储在加密数据存储单元144中。接下来,EOR计算单元145提取保持在加密数据存储单元144中的前四位,并且计算对应于字符“A”的位序列“0011”与从加密数据存储单元144中提取的前四位的异或。例如,获得位序列“1111”作为计算结果,并且加密文本输出单元146将位序列“1111”转换成与字符“W”相对应的字符代码。
在第三步骤ST13和第四步骤ST14中,以类似的方式连续执行用于对第三字符“Z”进行加密的处理和用于对第四字符“Z”进行加密的处理,从而在步骤ST13中获得位序列“0”,而在步骤ST14中获得位序列“1”。因为在CFB模式下加密的结果取决于前一加密的结果,所以在步骤ST13和ST14中获得的位序列不同。
因此,加密文本输出单元146输出字符串“GWQZ”,作为加密文本32。
接着,下面参照图8和9对解密单元150的功能进行说明。在下面的说明中,还假定加密算法是根据DES的算法,而加密模式为CFB模式。
图8是例示根据第一实施方式的数据库系统中的解密单元150的功能的实施例的框图。解密单元150包括加密文本转换单元151、移位寄存器152、加密处理单元153、加密处理存储单元154、EOR计算单元155,以及明文输出单元156。
加密文本转换单元151响应于来自数据库管理单元120的请求,从数据库110获取加密文本33,并且参照转换表存储单元133中的转换表133a,将构成加密文本33的每一个字符代码转换成要解密的位序列。要解密的位序列是构成在转换表133a中被表示为与的各个字符代码相关联的索引的多个位中的一个有效位或多个有效位的序列。即,加密文本转换单元151从转换表133a中表示的索引中截取该索引的一个或更多个最低有效位,该一个或更多个最低有效位的数量等于有效位数。接着,加密文本转换单元151将要解密的位序列连续地提供给EOR计算单元155。
移位寄存器152可以保持具有预定位长的位序列,并且向左对该位序列进行移位。当EOR计算单元155执行计算时,将存储在移位寄存器152中的位序列向左移位要解密的位序列的位数,并将要解密的位序列设 置在移位寄存器152中的经移位的位序列的右侧。当开始解密处理时,将存储在初始值存储单元131中的初始向量设置在移位寄存器152中。
加密处理单元153通过使用存储在私钥存储单元132中的私钥,根据DES算法对保持在移位寄存器152中的值进行加密。接着,加密处理单元153将加密值存储在加密数据存储单元154中。
EOR计算单元155从加密文本转换单元151中获取要解密的位序列,并且从存储在加密数据存储单元154中的多个位中截取该多个位中的从前导位开始的并且具有与要解密的位序列相同的长度的一部分。接着,EOR计算单元155计算从加密数据存储单元154截取的位与要解密的位序列的异或,并且将计算结果的位序列输出至明文输出单元156。这时,还将要解密的位序列输入到移位寄存器152中。
明文输出单元156从EOR计算单元155获取计算结果的位序列,并且参照转换表133a,将所获取的位序列转换成字符代码。该字符代码是基于转换表133a中表示的索引和有效位数来确定的。另外,明文输出单元156与加密文本33相对应地组合从计算结果的位序列转换出的字符代码,并将组合的字符代码输出至数据库管理单元120,作为与加密文本33相对应的明文34。
图9是例示根据第一实施方式的用于解密的操作序列的实施例的图。在图9的实施例中,对表示加密文本“GWQZ”的加密数据进行解密。
在第一步骤ST21中,执行用于对第一字符“G”进行解密的处理。这时,在移位寄存器152中设置初始向量。当开始解密时,首先,加密处理单元153对移位寄存器152中的值进行加密,并将加密值存储在加密数据存储单元154中。接着,EOR计算单元155提取保持在加密数据存储单元154中的前三位,并且计算对应于字符“Q”的位序列“001”与从加密数据存储单元154中提取的前三位的异或。例如,获得位序列“111”作为计算结果,并且明文输出单元156将位序列“111”转换成与字符“J”相对应的字符代码。
在第二步骤ST22中,执行用于对第二字符“W”进行解密的处理。这时,将保持在移位寄存器152中的位序列向左移位三位,并将前述计算 结果“001”(在前述步骤ST21中解密的位序列)设置在移位寄存器152中的经移位的位序列的右侧。接着,加密处理单元153对保持在移位寄存器152中的值进行加密,并将加密值存储在加密数据存储单元154中。接下来,EOR计算单元155提取保持在加密数据存储单元154中的值的前四位,并且计算对应于字符“W”的位序列“1111”与从加密数据存储单元154中提取的前四位的异或。例如,获得位序列“0010”作为计算结果,并且明文输出单元156将位序列“0010”转换成与字符“A”相对应的字符代码。
在第三步骤ST23和第四步骤ST24中,以类似的方式连续执行用于对第三符号“Q”进行解密的处理和用于对第四符号“Z”进行解密的处理,从而在步骤ST23中获得位序列“1”,而在步骤ST24中获得位序列“1”。
因此,明文输出单元156输出如上生成的字符串“JAZZ”作为明文34。
当使用根据第一实施方式的执行上述用于加密和解密的处理的服务器100时,可以容易地产生具有与原始字符数据相同的长度并且仅由一个字符代码形成的加密数据,并且解密这种加密数据。因此,即使在被设置成仅处理字符数据的数据库中,服务器100也可以正常地存储加密数据,并且由此,可以防止对存储在数据库中的数据的非授权访问。
3、第二实施方式
在下文中,参照图10和11,对本发明的第二实施方式进行说明。根据第二实施方式的数据库系统被设置成能够并行地执行用于对多个字符进行加密和解密的处理,尽管每一个字符的加密和解密都类似于第一实施方式。第二实施方式和第一实施方式的不同之处基本上在于服务器中的加密单元和解密单元的功能,尽管第二实施方式的系统构造与第一实施方式的系统构造相似。下面的说明集中于与第一实施方式的差异。即,下面对加密单元140a(其代替加密单元140)和解密单元150a(其代替解密单元150)的功能。
首先,下面参照图10对根据第二实施方式的加密单元的功能进行说明,图10是例示根据第二实施方式的数据库系统中的加密单元140a的功能的实施例的框图。加密单元140a包括明文转换单元141a、移位寄存 器142a、加密处理单元143、加密数据存储单元144a、多个EOR计算单元145a、145b、145c、...、145h,以及加密文本输出单元146a。
当将明文输入到加密单元140a中时,明文转换单元141a将构成该明文的每一个字符代码转换成要加密的位序列。这时,明文转换单元141a可以并行地执行对预定数量的字符代码的转换。在图10所示的实施例中,该预定数量为8。明文转换单元141a并行地将8个位序列(这些位序列是通过上述转换而产生地并且要进行加密)分别输出给EOR计算单元145a、145b、145c、...、145h。
移位寄存器142a可以保持具有预定位长的位序列,并且向左对该位序列进行移位。当从EOR计算单元145a输出计算的结果时,将存储在移位寄存器142a中的位序列向左移位该计算的结果的位数,并将该计算的结果设置在移位寄存器142a中的经移位的位序列的右侧。
加密处理单元143对保持在移位寄存器142a中的值进行加密,并将加密值存储在加密数据存储单元144a中。这时,将构成存储在加密数据存储单元144a中的加密值的位分成多个部分位序列。部分位序列的数量与并行处理的字符代码的数量相等。在图10所示的实施例中,部分位序列的数量为8。
EOR计算单元145a从明文转换单元141a获取要加密的位序列中的对应的一个位序列,从加密数据存储单元144a获取第一部分位序列,并且截取第一部分位序列的从该第一部分位序列的前导位开始的并且具有与要加密的位序列相同的长度的一部分。接着,EOR计算单元145a计算第一部分位序列的所述部分与要加密的位序列的异或。类似地,EOR计算单元145b、145c、...、145h中的每一个都从明文转换单元141a获取要加密的位序列中的对应的一个位序列,从加密数据存储单元144a获取对应的部分位序列,并且计算要加密的位序列中的对应的一个位序列与对应的部分位序列的一部分的异或。
加密文本输出单元146a从EOR计算单元145a、145b、145c、...、145h获取计算结果的位序列,并将所获取的位序列分别转换成字符代码。这些字符代码是基于转换表133a中表示的索引和有效位数来确定的。另 外,加密文本输出单元146a与明文相对应地组合从计算结果的位序列转换出的字符代码,并且输出组合的字符代码,作为与明文对应的加密文本。
可以通过加密单元140a并行地处理的字符代码的最大数量是基于存储在加密数据存储单元144a中的位的位长和转换表133a中表示的最大有效位数来确定的。例如,在存储在加密数据存储单元144a中的位的位长为32并且在转换表133a中表示的最大有效位数为4的情况下,可以并行地处理的字符代码的最大数量为8。
接着,下面参照图11对根据第二实施方式的解密单元的功能进行说明,图11是例示根据第二实施方式的数据库系统中的解密单元150a的功能的实施例的框图。解密单元150a包括加密文本转换单元151a、移位寄存器152a、加密处理单元153、加密数据存储单元154a、多个EOR计算单元155a、155b、155c、...、155h,以及明文输出单元156a。
当加密文本转换单元151a获取加密文本时,加密文本转换单元151a将构成该加密文本的每一个字符代码转换成要解密的位序列。这时,加密文本转换单元151a可以并行地执行对预定数量的字符代码的转换。在图11所示实施例中,该预定数量为8。加密文本转换单元151a分别向EOR计算单元155a、155b、155c、...、155h并行地输出位序列(这些位序列是通过上述转换而产生的并且要进行解密)。
移位寄存器152a可以保持具有预定位长的位序列,并且向左对该位序列进行移位。当EOR计算单元155a执行计算时,将存储在移位寄存器152a中的位序列向左移位要解密的位序列的位数,并将要解密的位序列设置在移位寄存器152a中的经移位的位序列的右侧。
加密处理单元153对保持在移位寄存器152a中的值进行加密,并将加密值存储在加密数据存储单元154a中。这时,将构成存储在加密数据存储单元154a中的加密值的多个位分成多个部分位序列。这些部分位序列的数量与并行地处理的字符代码的数量相等。在图10所示的实施例中,部分位序列的数量为8。
EOR计算单元155a从明文转换单元151a获取要解密的位序列中的 对应的一个位序列,从加密数据存储单元154a获取第一部分位序列,并且截取该第一部分位序列的从该第一部分位序列的前导位开始的并且具有与要解密的位序列相同的长度的一部分。接着,EOR计算单元155a计算第一部分位序列的所述部分与要解密的位序列的异或。类似地,EOR计算单元155b、155c、...、155h中的每一个都从明文转换单元151a获取要解密的位序列中的对应的一个位序列,从加密数据存储单元154a获取对应的部分位序列,并且计算要解密的位序列中的对应的一个位序列与对应的部分位序列的一部分的异或。
明文输出单元156a从EOR计算单元155a、155b、155c、...、155h获取计算结果的位序列,并将所获取的位序列分别转换成字符代码。这些字符代码是基于转换表133a中表示的索引和有效位数来确定的。另外,明文输出单元156a与明文对应地组合从计算结果的位序列转换出的字符代码,并且输出组合的字符代码,作为与加密文本相对应的明文。
与加密单元140a相似,可以通过解密单元150a并行地处理的字符代码的最大数量是基于存储在加密数据存储单元154a中的位的位长和转换表133a中表示的最大有效位数来确定的。
当使用根据第二实施方式的执行上述用于加密和解密的处理的服务器时,可以实现与第一实施方式类似的优点。另外,当使用根据第二实施方式的服务器时,可以极大地增加加密和解密的处理速度。
4、第三实施方式
在下文中,参照图12到17对本发明的第三实施方式进行说明。根据第三实施方式的数据库系统的能力被增强为超过第一实施方式,以加强加密安全性。下面的说明集中于与第一实施方式的差异。
在实现诸如CFB模式的块链接功能的加密模式方面,通过利用在前述步骤中获得的加密值对各个字符进行加密。因此,在出现与相同字符串不同的字符之前和之后,将该相同字符串加密成不同的加密值。然而,当按照普通加密模式对分别可能具有相同前导部分的大量明文进行加密时,加密强度可能降低。例如,诸如“Tokyo,Japan”的相同字符串可能频繁地出现在表示居住地址的明文的前导部分中。因此,当对表示居住地 址的大量明文进行加密时,即使在按照实现块链接功能的加密模式来执行加密的情况下,也可能产生包含相同前导部分的大量加密文本。具体来说,在数据库中存储很可能包含相同前导部分的居住地址、电话号码等的大量字符数据的情况下,可能产生包含相同前导部分的大量加密文本,从而提供了破解加密的线索。
因此,将根据第三实施方式的数据库系统设置成即使在对包含相同前导部分的明文进行加密时,加密文本也不包含相同前导部分。
图12是例示根据本发明第三实施方式的服务器的功能的框图。服务器100b包括数据库管理单元120、初始值存储单元131、私钥存储单元132、转换表存储单元133、虚设(dummy)位置存储单元134、加密单元140b,以及解密单元150b。数据库管理单元120、初始值存储单元131、私钥存储单元132以及转换表存储单元133分别具有与根据第一实施方式的服务器100中的对应单元相同的构造和功能。
虚设位置存储单元134存储有表示由加密单元140b选择为虚设字符的字符代码的位置和由解密单元150b选择为虚设代码的字符代码的位置的位置信息。后面对虚设字符和虚设代码进行说明。
加密单元140b从数据库管理单元120接收字符数据,参照初始值存储单元131、私钥存储单元132、转换表存储单元133以及虚设位置存储单元134对字符数据进行加密,并将加密的字符数据存储在数据库110中。
解密单元150b响应于来自数据库管理单元120的请求从数据库110获取加密的字符数据,并且参照初始值存储单元131、私钥存储单元132、转换表存储单元133以及虚设位置存储单元134对所获取的加密字符数据进行解密。接着,解密单元150b将解密的字符数据传送至数据库管理单元120。
接着,下面对解密单元140b的处理功能进行详细说明。在下面的说明中,假定加密算法是根据DES的算法,而加密模式是CFB模式。
图13是例示根据第三实施方式的数据库系统中的加密单元140b的功能的实施例的框图。加密单元140b包括明文转换单元141、移位寄存 器142、加密处理单元143、加密数据存储单元144、EOR计算单元145、加密文本输出单元146b、顺序转换单元147,以及虚设字符选择单元148。明文转换单元141、移位寄存器142、加密处理单元143、加密数据存储单元144、EOR计算单元145分别具有与根据第一实施方式的服务器100中的对应单元相同的构造和功能。
当从数据库管理单元120将明文35输入到顺序转换单元147中时,顺序转换单元147转换构成明文35的字符的顺序,以产生新的明文。具体来说,顺序转换单元147将明文35视为其中链接了明文35的前导字符和末端字符的字符环,并且根据也被指定的预定方式来指定字符环中的前导字符和其中跟踪该环中的字符的方向。因此,可以产生经顺序转换的字符串。顺序转换单元147将经顺序转换的字符串输出至虚设字符选择单元148。
虚设字符选择单元148从顺序转换单元147获取经顺序转换的字符串,参照存储在虚设位置存储单元134中的位置信息,并且选择通过位置信息指定的字符作为虚设字符。接着,虚设字符选择单元148通过在加密文本37的前导字符前面的位置插入所选择的虚设字符来产生新的明文,并将该新的明文输出至明文转换单元141。
加密文本输出单元146b从EOR计算单元145连续获取计算结果的位序列。加密文本输出单元146b丢弃与通过虚设字符选择单元148插入的虚设字符相对应的前导位序列,并将剩余的位序列转换成字符代码,组合这些字符代码,以产生加密文本36,并且输出加密文本36。
图14是例示顺序转换处理的概要的图。顺序转换单元147将明文35视为如图14所示的字符环。即,在明文35由n(其中,n为自然数)个字符构成的情况下,将末端字符Ln视为要链接至明文35的前导字符L1。在图14所示的实施例中,顺序转换单元147根据指定的预定方式来指定该环中的字符Lk作为新的前导字符(其中,k为满足1≤k≤n的自然数)。
另外,顺序转换单元147指定跟踪该环中的新的前导字符Lk之后的字符的方向(向前或向后)。例如,在指定从字符Lk开始的向后方向的 情况下,获得字符串Lk、Lk-1、...、L1、Ln、...、Lk+1。因此,上述对字符的顺序转换可以减少出现具有相同前导部分的字符串的频率。另外,因为顺序转换是利用沿字符环的旋转来执行的,所以使得用于再现顺序的处理便利。
图15是例示根据第三实施方式的用于加密的操作序列的实施例。在图15的实施例中,对位序列D0、D1、D2以及D3进行加密,其中位序列D0对应于虚设字符。
在第一步骤ST31中,按照基本上与第一实施方式类似的方式执行用于对第一位序列D0进行加密的处理,并且获得位序列C0作为对第一位序列D0进行加密的计算结果。接着,通过加密文本输出单元146b丢弃位序列C0。
在第二步骤ST32中,执行用于对第二位序列D1进行加密的处理。这时,将保持在移位寄存器142中的位序列向左移位构成位序列C0的位的数量,并将位序列C0设置在移位寄存器142中的经移位的位序列的右侧。接着,获得位序列C1作为对第二位序列D1进行加密的计算结果。通过加密文本输出单元146b对位序列C1进行处理,作为与第一字符代码相对应的位序列。
此后,在第三步骤ST33和第四步骤ST34中,按照类似的方式连续执行用于对第三位序列D2进行加密的处理和用于对第四位序列D3进行加密的处理,以分别在步骤ST33和步骤ST34中获得位序列C2和C3。通过加密文本输出单元146b对位序列C2和C3进行处理,作为分别与第二字符代码和第三字符代码相对应的位序列。
因为对虚设字符的加密先于对如上所述的要加密的字符的加密,所以可以使对这些字符的加密取决于对虚设字符的加密结果。
接下来,下面参照图16和17对解密单元150b的功能进行说明。在下面的说明中,也假定加密算法是根据DES的算法,而加密模式是CFB模式。
图16是例示根据第三实施方式的数据库系统中的解密单元的功能的实施例的框图。解密单元150b包括加密文本转换单元151、移位寄存 器152、加密处理单元153、加密数据存储单元154、EOR计算单元155、明文输出单元156b、虚设代码选择单元157,以及顺序再现单元158。加密文本转换单元151、移位寄存器152、加密处理单元153、加密数据存储单元154、EOR计算单元155分别具有与根据第一实施方式的服务器100中的对应单元相同的构造和功能。
当将加密文本37输入到虚设代码选择单元157中时,虚设代码选择单元157参照存储在虚设位置存储单元134中的位置信息,并且选择由该位置信息指定的加密字符作为虚设代码。接着,虚设代码选择单元157通过将所选择的虚设代码插入到加密文本37的前导字符前面的位置中来产生新的加密文本,并将该新的加密文本输出至加密文本转换单元151。
明文输出单元156b从EOR计算单元155连续获取计算结果的位序列,并且丢弃与通过虚设代码选择单元157插入的虚设代码相对应的前导位序列。接着,明文输出单元156b将剩余的位序列转换成字符代码,组合这些字符代码,以产生字符串,并将所产生的字符串输出至顺序再现单元158。
顺序再现单元158从明文输出单元156b获取字符串,逆向地转换字符的顺序(该字符的顺序已经在加密单元140b通过顺序转换单元147进行了转换),以再现明文38。即,顺序再现单元158将所获取的字符串视为其中链接了前导字符和末端字符的字符环,并且执行与通过顺序转换单元147执行的操作相反的操作。此后,顺序再现单元158输出所再现的明文38。
图17是例示根据第三实施方式的用于解密的操作序列的实施例的图。在图17的实施例中,对位序列C0、C1、C2以及C3进行解密,其中位序列C0对应于虚设代码。
在第一步骤ST41中,按照基本上与第一实施方式类似的方式执行用于对第一位序列C0进行解密的处理,并且获得位序列D0作为对第一位序列C0进行解密的计算结果。接着,通过明文输出单元156b丢弃位序列D0。
在第二步骤ST42中,执行用于对第二位序列C1进行解密的处理。 这时,将保持在移位寄存器152中的位序列向左移位构成位序列C0的位的数量,并且将位序列C0设置在移位寄存器152中的经移位的位序列的右侧。接着,获得位序列D1作为对第二位序列C1进行解密的计算结果。通过明文输出单元156b对位序列D1进行处理,作为与第一字符代码相对应的位序列。
此后,在第三步骤ST43和第四步骤ST44中,按照类似的方式连续执行用于对第三位序列C2进行解密的处理和用于对第四位序列C3进行解密的处理,以分别在步骤ST43和ST44中获得位序列D2和D3。通过明文输出单元156b对位序列D2和D3进行处理,作为分别与第二字符代码和第三字符代码相对应的位序列。
因为对虚设代码的解密先于对如上所述的要解密的字符的解密,所以可以对通过加密单元140b产生的加密文本进行解密。
当使用根据第三实施方式的执行上述用于进行加密和解密处理的服务器100b时,可以实现与第一实施方式的类似的优点。另外,在使用服务器100b的情况下,即使对可能包含相同前导部分的大量字符数据进行加密,对字符顺序的转换也可以减小加密文本的前导部分变得相同的可能性。而且,因为通过对虚设字符的加密来更新初始向量,所以即使其中对字符的顺序进行了转换的字符串的前导部分变得相同,对应加密文本的前导部分也变得不同。由此,难以根据存储在数据库中的大量加密文本来推断原始字符串,并且可以有效地防止降低加密安全性。
5、变型例
第一到第三实施方式可以修改如下。
(1)尽管在第一到第三实施方式中加密算法是根据DES的算法,但另选的是,可以使用任何其它的加密算法。另外,尽管在第一到第三实施方式中加密模式是CFB模式,但加密模式可以是诸如CBC(密码块链接)模式和OFB(输出反馈)模式的任何其它模式。特别的是,在第一和第二实施方式中,可以使用没有块链接功能的加密模式。
(2)尽管在第一到第三实施方式中,将尽可能多的字符代码存储在与大量有效位对应的区中,但可以设置与相同数量的有效位相对应的两 个或更多个区。例如,当存储在转换表133a中的字符代码的总数为26时,可以将数字26分解为
26=23(8)+23(8)+23(8)+21(2)。
在上述情况下,当将字符代码转换成要加密或解密的位序列时,将其中表示了字符代码与索引之间的对应关系的用于表示区的信息赋予后续段(subsequent stage),以使得可以容易地执行逆向转换。
(3)尽管在第一到第三实施方式中,在转换表中表示了有效位数,但是可以通过多种其它方式中的任何方式来确定有效位数。例如,可以在执行加密或解密时基于转换表中的相对位置自动地确定有效位数。
6、存储程序的记录介质
上述根据第一到第三实施方式中的每一个实施方式的服务器的处理功能可以通过计算机来实现。在这种情况下,提供了描述用于实现每一个服务器都应当具有的功能的处理的细节的程序。当计算机执行该程序时,可以在该计算机上实现服务器的处理功能。
可以将描述该处理的细节的程序存储在可以由计算机读取的记录介质中。该记录介质可以是磁记录装置、光盘、光磁记录介质、半导体存储器等。磁记录介质可以是硬盘驱动器(HDD)、软盘(FD)、磁带(MT)等。光盘可以是DVD(数字通用盘)、DVD-RAM(随机存取存储器)、CD-ROM(光盘只读存储器)、CD-R(可记录)/RW(可重写)等。光磁记录介质可以是MO(磁光盘)等。
为了将该程序投放到市场,例如,可以出售其中记录有该程序的诸如DVD或CD-ROM的便携式记录介质。另选的是,可以在属于服务器计算机的存储装置中存储该程序,并且通过网络向另一计算机传送该程序。
执行该程序的计算机在属于该计算机的存储装置中存储该程序,其中,将该程序原始地记录在例如便携式记录介质中,或从服务器计算机初始地传送。计算机从存储装置读取该程序,并且根据该程序执行处理。另选的是,计算机可以从便携式记录介质直接读取该程序,以根据该程序执行处理。此外另选的是,计算机可以在每次从服务器计算机传送该 程序的各个部分时依次根据该程序的各个部分执行处理。
7、优点
如上所述,根据本发明,在利用具有分别存储有2i个字符代码的多个区的转换表进行加密之前和之后执行字符代码与索引之间的转换,其中,i是自然数。因此,可以确保防止通过加密而产生转换表中没有列出的位序列,并由此容易地产生由以预定的字符编码方案定义的字符代码表示的加密文本,而不需要复杂的处理。
8、附加内容
前述内容被认为仅是本发明的原理的例示。而且,因为对于本领域技术人员来说,可以容易的进行许多修改和改变,所以不希望将本发明限制为所示和所述的确切构造和应用,因此,所有合适的修改和等同物可以被视为落入所附权利要求及其等同物中的本发明的范围内。
特别地,可以利用前述本发明的第一到第三实施方式的两个或更多个特征的任意组合来实现数据库系统。
Claims (6)
1.一种加密装置,该加密装置包括:
转换表存储单元,该转换表存储单元存储具有多个区的转换表,每一个区都存储有与多个索引值相关联的2i个字符代码,其中,i是对于所述多个区中的每一个区预定的自然数,所述2i个字符代码以预定的字符编码方案定义,并且所述多个索引值具有用于唯一地标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;
明文转换单元,该明文转换单元获取输入到所述加密装置中的第一明文,并且参照存储在所述转换表存储单元中的所述转换表的所述多个区中的存储有构成所述第一明文的多个第一字符代码的多个第一区,将所述多个第一字符代码分别转换成与所述多个第一字符代码相关联的多个第一索引值,其中,所述多个第一字符代码以所述预定的字符编码方案定义;
加密单元,该加密单元连续地获取所述多个第一索引值,并将所述多个第一索引值加密成分别具有与所述多个第一索引值相等的位长的多个加密值;以及
加密文本输出单元,该加密文本输出单元连续地获取所述多个加密值,参照所述转换表的所述多个区中的所述多个第一区,将所述多个加密值转换成分别与和所述多个加密值一致的多个索引值关联的多个第二字符代码,产生所述多个第二字符代码的序列,作为与所述第一明文相对应的第一加密文本,并且输出所述第一加密文本。
2.根据权利要求1所述的加密装置,其中,所述加密单元通过对保持在寄存器中的值进行加密以生成位序列、截取所述位序列的具有与对应于所述各个加密值的所述多个第一索引值中的一个索引值相等的位长的一部分、并且基于所述多个第一索引值中的所述一个索引值和所述位序列的所述部分执行预定的计算,来生成所述多个加密值中的每一个加密值,其中,在所述寄存器中预先存储有初始值。
3.根据权利要求2所述的加密装置,其中,所述加密单元通过在生成所述位序列之后截取所述位序列的分别具有与所述多个第一索引值中的多个第一索引值相等的位长的多个部分,来并行地生成所述多个加密值中的与所述多个第一索引值中的上述多个第一索引值相对应的多个加密值。
4.根据权利要求1所述的加密装置,其中,如果所述多个区可以存储不同数量的字符代码,则将更频繁出现在明文中的字符的字符代码优先地存储在所述多个区中的可以存储更多字符代码的一个区或更多个区中。
5.根据权利要求1所述的加密装置,还包括:
加密文本转换单元,该加密文本转换单元获取输入到所述加密装置中的第二加密文本,并且参照存储在所述转换表存储单元中的所述转换表的所述多个区中的存储有构成所述第二加密文本的多个第三字符代码的多个第二区,将所述多个第三字符代码分别转换成与所述多个第三字符代码相关联的多个第二索引值,其中,所述多个第三字符代码以所述预定的字符编码方案定义;
解密单元,该解密单元连续地获取所述多个第二索引值,并将所述多个第二索引值解密成分别具有与所述多个第二索引值相等的位长的多个解密值;以及
明文输出单元,该明文输出单元连续地获取所述多个解密值,参照所述转换表的所述多个区中的所述多个第二区,将所述多个解密值转换成与和所述多个解密值一致的多个索引值相关联的多个第四字符代码,产生所述多个第四字符代码的序列,作为与所述第二加密文本相对应的第二明文,并且输出所述第二明文。
6.一种加密方法,该加密方法包括以下步骤:
(a)在转换表存储单元中预先存储具有多个区的转换表,每一个区都存储有与多个索引值相关联的2i个字符代码,其中,i是对于所述多个区中的每一个区预定的自然数,所述2i个字符代码以预定的字符编码方案定义,并且所述多个索引值具有用于唯一地标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;
(b)获取输入到计算机中的明文,并且参照存储在所述转换表存储单元中的所述转换表的所述多个区中的存储有构成所述明文的多个第一字符代码的多个第一区,将所述多个第一字符代码分别转换成与所述多个第一字符代码相关联的多个索引值,其中,所述多个第一字符代码以所述预定的字符编码方案定义;
(c)连续地获取所述多个索引值,并将所述多个索引值加密成分别具有与所述多个索引值相等的位长的多个加密值;以及
(d)连续地获取所述多个加密值,参照所述转换表的所述多个区中的上述多个第一区,将所述多个加密值转换成分别与和所述多个加密值一致的多个索引值相关联的多个第二字符代码,产生所述多个第二字符代码的序列,作为与所述明文相对应的加密文本,并且输出所述加密文本。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006340627A JP5060119B2 (ja) | 2006-12-19 | 2006-12-19 | 暗号処理プログラム、暗号処理方法および暗号処理装置 |
JP2006-340627 | 2006-12-19 | ||
JP2006340627 | 2006-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101206815A CN101206815A (zh) | 2008-06-25 |
CN101206815B true CN101206815B (zh) | 2011-06-15 |
Family
ID=39527222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710182363.1A Expired - Fee Related CN101206815B (zh) | 2006-12-19 | 2007-10-18 | 加密装置和加密方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7961871B2 (zh) |
JP (1) | JP5060119B2 (zh) |
CN (1) | CN101206815B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101926121A (zh) * | 2008-02-01 | 2010-12-22 | 拉姆伯斯公司 | 具有增强的时钟和数据恢复的接收器 |
JP4962335B2 (ja) * | 2008-02-04 | 2012-06-27 | 富士通株式会社 | 埋込みデータを復元するための方法 |
US8050404B2 (en) * | 2008-12-29 | 2011-11-01 | Nortel Networks Limited | Bandwidth efficient method and system for obscuring the existence of encryption in a communications channel |
KR100910303B1 (ko) * | 2009-01-09 | 2009-08-03 | 이순구 | 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법 |
JP4733793B2 (ja) * | 2009-04-10 | 2011-07-27 | 裕之 渡辺 | 暗号化・復号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法、およびプログラム |
JP5539024B2 (ja) * | 2010-05-27 | 2014-07-02 | キヤノン株式会社 | データ暗号化装置およびその制御方法 |
CN101937464B (zh) * | 2010-09-13 | 2012-01-25 | 武汉达梦数据库有限公司 | 基于逐字索引的密文检索方法 |
CN102469345A (zh) * | 2010-11-19 | 2012-05-23 | 康佳集团股份有限公司 | 多媒体媒体数据加解密方法 |
WO2012150637A1 (ja) * | 2011-05-02 | 2012-11-08 | 富士通株式会社 | 抽出方法、情報処理方法、抽出プログラム、情報処理プログラム、抽出装置、および情報処理装置 |
CN102739403A (zh) * | 2012-06-19 | 2012-10-17 | 深圳市文鼎创数据科技有限公司 | 动态令牌的身份认证方法及装置 |
CN103580857A (zh) * | 2012-08-06 | 2014-02-12 | 重庆电子工程职业学院 | 一种基于背包加密的汉字报文数据压缩方法 |
JP2014192612A (ja) * | 2013-03-26 | 2014-10-06 | Toshiba Corp | 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム |
CN104283859A (zh) * | 2013-07-10 | 2015-01-14 | 上海信颐信息技术有限公司 | 广告机文件的加密解密方法 |
CN103825723B (zh) * | 2014-01-24 | 2019-05-03 | 深圳市太和物联信息技术有限公司 | 一种加密方法和装置 |
KR101428650B1 (ko) * | 2014-03-07 | 2014-08-13 | (주)케이사인 | 암호화 방법 및 복호화 방법 |
CN104348609B (zh) * | 2014-09-18 | 2017-06-06 | 成都西山居互动娱乐科技有限公司 | 一种非存储的密码管理算法 |
EP3483867B1 (en) * | 2016-07-06 | 2022-04-20 | Nippon Telegraph and Telephone Corporation | System, device, method, and program for indexing a secret-shared array with secure multiparty computations |
CN107634827A (zh) * | 2017-10-15 | 2018-01-26 | 天津飞眼无人机科技有限公司 | 无人机保密通信系统 |
CN109711119A (zh) * | 2018-12-29 | 2019-05-03 | 360企业安全技术(珠海)有限公司 | 加密代码的运行方法及装置、存储介质、终端 |
CN113810174B (zh) * | 2021-09-16 | 2024-09-03 | 金蝶软件(中国)有限公司 | 一种数据处理方法以及相关设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941691B (zh) * | 2001-07-17 | 2012-07-18 | 夏普株式会社 | 生成用于检测在处理期间加密数据的虚假改造的数据的设备及方法 |
JP2005141282A (ja) * | 2003-11-04 | 2005-06-02 | Fujitsu Ltd | 文字データの暗号化プログラム |
WO2005103908A1 (ja) * | 2004-04-26 | 2005-11-03 | Matsushita Electric Industrial Co., Ltd. | 暗号又は復号を行うコンピュータシステム及びコンピュータプログラム |
JP4989055B2 (ja) * | 2005-08-31 | 2012-08-01 | 株式会社富士通ビー・エス・シー | 文字コード暗号処理プログラム、および文字コード暗号処理方法 |
JP5060079B2 (ja) * | 2006-08-01 | 2012-10-31 | 株式会社富士通ビー・エス・シー | 暗号処理プログラム |
-
2006
- 2006-12-19 JP JP2006340627A patent/JP5060119B2/ja active Active
-
2007
- 2007-10-10 US US11/907,287 patent/US7961871B2/en active Active
- 2007-10-18 CN CN200710182363.1A patent/CN101206815B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5060119B2 (ja) | 2012-10-31 |
US20080144809A1 (en) | 2008-06-19 |
US7961871B2 (en) | 2011-06-14 |
JP2008152059A (ja) | 2008-07-03 |
CN101206815A (zh) | 2008-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101206815B (zh) | 加密装置和加密方法 | |
JP3229148B2 (ja) | 暗号化方法およびシステム | |
US6021203A (en) | Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security | |
US8254570B2 (en) | Method and system for encryption of data | |
CN100379194C (zh) | 存储器加密 | |
RU2257677C2 (ru) | Способ шифрования, устройство шифрования, способ дешифрирования и устройство дешифрирования | |
JP4989055B2 (ja) | 文字コード暗号処理プログラム、および文字コード暗号処理方法 | |
CN100416519C (zh) | 进行加密或解密的计算机系统和方法 | |
US7801307B2 (en) | Method of symmetric key data encryption | |
CN103778590B (zh) | 利用数字图像存储和传输信息的方法和装置 | |
US20060165233A1 (en) | Methods and apparatuses for distributing system secret parameter group and encrypted intermediate key group for generating content encryption and decryption deys | |
US8467526B2 (en) | Key evolution method and system of block ciphering | |
CN1941691B (zh) | 生成用于检测在处理期间加密数据的虚假改造的数据的设备及方法 | |
RU2369024C2 (ru) | Система защиты информационного содержания, устройство генерации данных ключей и устройство воспроизведения | |
JP5060079B2 (ja) | 暗号処理プログラム | |
CN112235101B (zh) | 基于混合编码机制的编码方法和装置、解码方法和装置 | |
CN1332338C (zh) | 转换器以及转换方法 | |
US7436966B2 (en) | Secure approach to send data from one system to another | |
US20230049768A1 (en) | A method for symmetric asynchronous generative encryption | |
Fadlan | Three Layer Encryption Protocol: an Approach of Super Encryption Algorithm | |
Al-Sabaawi | Cryptanalysis of Block Cipher: Method Implementation | |
Sudersan et al. | Enhanced DNA cryptosystem for secure cloud data storage | |
EP3406050B1 (en) | Method for safeguarding the confidentiality of the sender's identification of messages transmitted through promiscuous channels | |
Chandu et al. | Implementation of AES Algorithm using Dynamic S-box on FPGA | |
CN116029723A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110615 Termination date: 20191018 |