专利名称:加密处理、加密装置和存储加密程序的计算机可读介质的制作方法
技术领域:
本发明涉及用于逐个字符地对字符数据进行加密的加密处理和加密 装置,以及存储有用于逐个字符地对字符数据进行加密的加密程序的计 算机可读介质。
背景技术:
目前,加密技术己经广泛地用于保持发送信息或存储数据的机密性。 加密方法包括两种类型,公钥加密和私钥加密。公钥加密使用一对密钥; 分别用于加密和解密的公钥和私钥。公钥加密在保持加密强度的容易性 方面有利。在私钥加密(对称密钥加密)中,公用密钥被加密器和解密 器共享,并且用于加密和解密。与公钥加密相比,私钥加密的有利之处 在于需要更少的处理量。当必需发送大量数据时,通常使用私钥加密(需 要更少的处理量)。用于私钥加密的公知加密算法包括DES (数据加密标 准)和AES(高级加密标准)。例如,参见日本未审专利公报No. 8-227269。 顺便提及,在使用计算机进行加密的许多情况下,通过根据特定字 符编码方案对字符进行编码所产生的字符数据需要被加密。然而,在一 些情况中,通过根据常规加密算法进行加密所产生的数据不能由被设计 成仅处理字符数据(由分配给字符的字符代码表示的数据)的软件正确 地处理,其原因如下。
大多数的字符编码方案具有未分配给任何字符的字符代码范围。例 如,在诸如shift—JIS (日本工业标准JISX0208,附录l)的日语字符编 码方案中,每一个字符都由16位表示,并且216 (= 65536)个字符代码 中的一部分没有被分配给字符。因此,根据是否检测到未使用的字符代 码中的一个的位序列,软件可以确定每一个字符代码是否表示一字符。 然而,通过根据常规加密算法对所输入的字符数据(分配给字符的字符 代码)进行加密所产生的加密数据遍及可以由具有与所输入的字符代码 相同长度的可能位序列表示的所有字符代码。因此,被设计成仅处理字 符数据(分配给字符的字符代码)的软件不能正确地识别上述加密数据。 即使在上述情况下,也存在对通过软件来处理加密数据的需求。因 此,目前正在研究用于产生仅由分配给字符的字符代码表示的加密数据
的技术。例如,已知用于使用Base64编码方案将(根据加密算法产生的) 加密数据转换成字符代码的技术。在Base64编码中,首先,将原始数据 分成多个24位部分,并且将每一个24位部分转换成分别表示半角 (en-width)字符(ASCII码)的四个字符代码。根据这种技术,可以产 生仅由ASCII码表示的加密数据,以使得更大量的软件程序能够处理加 密数据。
然而,根据使用Base64编码方案产生加密数据的技术,加密数据的 位长变得大于原始字符数据的位长。因为每一个24位(3字节)部分都 被转换成四个ASCII码(分别具有4字节的长度),所以Base64编码使 位长增大了大约1.3倍。因为在许多情况下存储在数据库中的数据的大小 被限制在特定范围,所以当将加密数据存储在数据库中时,位长的增加 尤其成问题。
另外,加密之前或之后的位长转换可以被视为用于限制加密数据可 以具有的值的范围的另一技术。具体来说,将每一个字符的原始字符代 码转换成具有比加密之前的原始字符代码短的位长的位序列。接着,对 经转换的位序列进行加密,并且将加密位序列逆向转换成字符代码。例 如,所有1级和2级日本汉字(kanji)字符(根据JISX0208)都可以由 13位表示。因此,在将16位字符代码转换成13位序列之后执行对1级 和2级日本汉字字符的加密。因此,可以限制加密数据可以具有的值的 范围,同时最终获得的加密数据由16位字符代码表示(即,最终获得的 加密数据的位长可以与原始字符数据的位长相等)。
然而,在字符编码方案中定义的字符代码的数量不等于"(其中,n
为自然数)并且仅使用上述用于限制值的范围的技术的情况下,不能产 生仅由字符代码表示的加密数据。这是因为加密可能产生不能逆向转换
的位序列。例如,尽管根据JIS X 0208的1级和2级日本汉字字符的数 量为6879,但是13位序列可以表示8192个字符。因此,存在即使在位 长被减小为13位时,加密也可能产生没有分配给字符的位序列。然而, 当位长被减小为12位时,不能表示所有1级和2级日本汉字字符。
发明内容
鉴于上述问题而提出本发明,并且本发明的第一目的是提供一种逐 个字符地对字符数据进行加密的加密处理和加密装置,并且可以容易地 产生加密数据,以使该加密数据仅由分配给以字符编码方案定义的字符 的字符代码表示,而与分配给以字符编码方案定义的字符的字符代码的 数量无关。
另外,本发明的第二目的是提供一种存储有用于在计算机中实现上 述加密装置的加密程序的计算机可读介质。
为了实现第一目的,根据本发明的第一方面,提供了一种加密处理。 该加密处理的特征在于包括以下步骤(a)在转换表存储单元中预先存 储具有多个区的转换表,每一个区都存储有与索引值相关联的2'个字符 代码,其中,i是对于所述多个区中的每一个区预定的自然数,所述2;个
字符代码以预定的字符编码方案定义,并且所述索引值具有用于唯一地 标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;(b) 获取输入到计算机中的明文,并且参照存储在所述转换表存储单元中的 转换表的所述多个区中的存储有构成所述明文的第一字符代码的多个 区,将所述第一字符代码分别转换成与所述第一字符代码相关联的索引 值,其中,所述第一字符代码以所述预定的字符编码方案定义;(c)连 续地获取所述索引值,并将所述索引值加密成分别具有与所述索引值相 同位长的加密值;以及(d)连续地获取所述加密值,参照所述转换表的 所述多个区中的上述多个区,将所述加密值转换成分别与和所述加密值 一致的索引值关联的第二字符代码,产生所述第二字符代码的序列作为 与所述明文相对应的加密文本,并且输出所述加密文本。
另外,为了实现第一目的,根据本发明的第二方面,还提供了一种
加密装置。该加密装置的特征在于包括转换表存储单元,该转换表存 储单元存储具有多个区的转换表,每一个区都存储有与索引值相关联的 2i个字符代码,其中,i是对于所述多个区中的每一个区预定的自然数, 所述2i个字符代码以预定的字符编码方案定义,并且所述索引值具有用 于唯一地标识所述多个区中的每一个区内的2'个字符代码的最小必需位 长;明文转换单元,该明文转换单元获取输入到计算机中的明文,并且 参照存储在所述转换表存储单元中的转换表的所述多个区中的存储有构 成所述明文的第一字符代码的多个区,将所述第一字符代码分别转换成 与所述第一字符代码相关联的索引值,其中,所述第一字符代码以所述 预定的字符编码方案定义;加密单元,该加密单元连续地获取所述索引 值,并将所述索引值加密成分别具有与所述索引值相同的位长的加密值; 以及加密文本输出单元,该加密文本输出单元连续获取所述加密值,参 照所述转换表的所述多个区中的上述多个区,将所述加密值转换成分别 与和所述加密值一致的索引值相关联的第二字符代码,产生所述第二字 符代码的序列作为与所述明文相对应的加密文本,并且输出所述加密文 本。
为了实现第二目的,提供了一种存储有在计算机中实现根据本发明 第二方面的上述加密装置的加密程序的计算机可读介质。
结合附图,根据以下的说明,本发明的上述和其它目的、特征以及 优点将变清楚,附图通过实施例的方式例示了本发明的优选实施方式。
图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包括转换表存储单元la、明文转换单元lb、加密单元lc,
以及加密文本输出单元ld。
转换表存储单元la存储有转换表,在该转换表中,以预定的字符编 码方案定义的字符代码与索引值相关联。将该转换表分成多个区,以使 得可以在所述多个区中的每一个区中存储2i个字符代码,其中,i为自然
数。每一个索弓I值都是唯一地标识所述多个区中的每一个区中的字符代 码的位序列。每一个索引值都具有用于标识字符代码的最小必需长度。
例如,考虑其中定义了 6个字符"A"到"F"的字符编码方案。尽管数 字"6"不等于211,但数字"6"是f和2'的和。因此,将转换表分成用于存 储4 (22)个字符代码的第一区和用于存储2 (21)个字符代码的第二区。 将两位索引值附加给第一区中的每一个字符代码,并且将一位索引值附 加给第二区中的每一个字符代码。
明文转换单元lb获取输入到加密装置1中的明文3,并且参照存储 在转换表存储单元la中的转换表,将构成所获取的明文3的每一个字符 代码转换成索引值。例如,当明文3包含字符"A"的字符代码时,明文转 换单元lb将字符代码转换成索引值"00"。
加密单元lc连续地获取由明文转换单元lb产生的索引值,并且将 所获取的每一个索引值加密成具有与所获取的索引值相同的长度的加密 值。例如,加密单元lc将索引值"00"加密成加密值"10"。
加密文本输出单元ld连续地获取由加密单元lc通过加密产生的加 密值,并且参照存储在转换表存储单元la中的转换表,将所获取的每一 个加密值转换成字符代码。例如,加密文本输出单元ld将加密值"10"转 换成字符代码"C"。此后,加密文本输出单元ld输出如上获得的字符代 码的序列,作为与明文3相对应的加密文本4。
解密装置2包括转换表存储单元2a、加密文本转换单元2b、解密单 元2c,以及明文输出单元2d。存储在转换表存储单元2a中的转换表与 存储在转换表存储单元la中的转换表相同。
加密文本转换单元2b获取输入到解密装置2中的加密文本5,并且 参照存储在转换表存储单元2a中的转换表,将构成所获取的加密文本5
的每一个字符代码转换成索引值。例如,当加密文本5包含字符"C"的字 符代码时,加密文本转换单元2b将该字符代码转换成索引值"10"。
解密单元2c连续地获取由加密文本转换单元2b产生的索引值,并 且将所获取的每一个索引值解密成具有与所获取的索引值相同的长度的 解密值。例如,解密单元2c将索引值"10"解密成解密值"00"。
明文输出单元2d连续地获取由解密单元2c产生的解密值,并且参 照存储在转换表存储单元2a中的转换表,将获取的每一个解密值转换成 字符代码。例如,明文输出单元2d将解密值"OO"转换成字符代码"A"。 此后,明文输出单元2d输出如上获得的字符代码的序列,作为与加密文 本5相对应的明文6。
另选的是,可以在可以由加密装置1和解密装置2两者共同参照的 存储单元中存储转换表,而不是在加密装置1和解密装置2中的每一个 中存储转换表。
当将明文3输入到具有上述构造的加密装置1中时,明文转换单元 lb基于转换表(具有多个区,每一个区都存储有2i个字符代码,其中i 为自然数)中的信息,将构成明文3的每一个字符代码转换成具有与存 储该字符代码的区相对应的位长的索引值。接着,加密单元lc将每一个 索引值加密成加密值,而不改变位长。最后,加密文本输出单元ld参照 转换表将加密值转换成字符代码,并且输出字符代码的序列,作为加密 文本4。
另外,当将加密文本5输入到具有上述构造的解密装置2中时,加 密文本转换单元2b基于转换表(具有多个区,每一个区都存储有2i个字 符代码,其中i为自然数)中的信息,将构成加密文本5的每一个字符代 码转换成具有与存储该字符代码的区相对应的位长的索引值。接着,解 密单元2c将每一个索引值解密成解密值,而不改变位长。最后,明文输 出单元2d参照转换表将解密值转换成字符代码,并且将字符代码的序列 输出为明文6。
因此,可以确保防止通过加密而生成转换表中没有列出的位序列, 使得可以容易地产生由以预定的字符编码方案定义的字符代码表示的加密文本,而不需要进行复杂的处理。
例如可以使用加密装置1和解密装置2对要存储在数据库中的数据 进行加密或对从数据库中读出的数据进行解密。具体来说,考虑对要存 储在数据库中的数据进行加密,以便防止由于对用于构成该数据库的存 储装置的非授权访问或盗窃该存储装置而导致的信息泄漏。因此,在下 面对本发明的实施方式的说明中,以对要存储在数据库中的字符数据的 加密作为实施例。
2、第一实施方式
在下文中,参照图2到9对本发明的第一实施方式进行说明。 2.1系统构造
图2是例示其中实现了本发明的第一实施方式的数据库系统的构造 的实施例的图。在根据第一实施方式的数据库系统中,对要存储在数据 库中的字符数据进行加密。图2的数据库系统包括服务器100、数据库 110、客户端21,以及网络IO。
客户端21是用户使用的计算机,并且通过网络IO连接至服务器100。 服务器100是具有用于管理数据库110的功能的计算机,并且连接至数 据库IIO。在数据库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连接至CPU 101。RAM 102临时存储由CPU 101 执行的OS (操作系统)程序和应用程序中的至少一部分,以及CPU 101 进行处理所需的各种类型的数据。HDD 103存储OS程序和应用程序。 监视器11连接至图形处理装置104,该图形处理装置104根据来自CPU 101的指令使监视器11在屏幕上显示图像。键盘12和鼠标13连接至输 入接口 105,该输入接口 105通过总线108将从键盘12和鼠标13发送的 信号传送给CPUIOI。通信接口 106连接至网络10,并且通过网络10与 其它计算机交换数据。存储装置接口 107是用于将数据输入到数据库110 和从数据库IIO输出数据的通信接口。
通过利用上述硬件构造,可以实现根据第一实施方式的服务器100 的功能。另外,还可以利用类似的硬件构造实现客户端21。
2.3服务器100的功能
在下文中,对服务器100的功能进行说明。
图4是例示根据本发明第一实施方式的服务器100的功能的框图。 服务器100包括数据库管理单元120、初始值存储单元131、私钥存储单 元132、转换表存储单元133、加密单元140,以及解密单元150。
数据库管理单元120执行用于将数据输入到数据库110和从数据库 IIO输出数据的处理。当需要将字符数据输入到数据库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中,每一行上所列的信息项彼此关联。
索引是用于唯一地标识各个字符代码的数值。具体来说,将从"O"开 始的数字连续地分配给字符代码。在图5中,用二进制数来表示索引。
字符代码是以预定的字符编码方案定义的用来标识字符的数值。在 字符代码与索引之间存在一一对应就足够了,不需要按照索引的顺序排 列字符代码。在图5中,字符代码由十六进制数表示。
有效位数是表示各个索引的多个位中的经过加密或解密的一个或更 多个位的数量。例如,当有效位数是4时,要对索引的四个最低有效位 进行加密或解密。表示各个索引的多个位中的经过加密或解密的一个或 更多个位的序列对应于前面在发明内容中和"l、本发明的概要"部分中说 明的索引值。
有效位数和与这些有效位相关联的字符代码数是通过将要存储在转 换表133a中的字符代码的总数分解为分量2j (其中,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中表示的索引中截 取(cutout)该索引中的数量等于有效位数的一个或更多个最低有效位。 然后,明文转换单元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"的字符代码的序列进行加密。
在第一步骤STll中,执行用于对第一字符"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中提取的 前四位的异或。例如,获得位序列"llll"作为计算结果,并且加密文本输
出单元146将位序列"mi"转换成与字符"w"相对应的字符代码。
在第三步骤ST13和第四步骤ST14中,以类似的方式连续执行用于 对第三字符"Z"进行加密的处理和用于对第四字符"Z"进行加密的处理, 从而在步骤ST13中获得位序列"0",而在步骤ST14中获得位序列"r。 因为在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中提取的前三位的异或。例如,获得位序列"in"作 为计算结果,并且明文输出单元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中获得位序列"r,而在步骤ST24中获得位序列"l"。
因此,明文输出单元156输出如上生成的字符串"JAZZ"作为明文34。
当使用根据第一实施方式的执行上述用于加密和解密的处理的服务 器100时,可以容易地产生具有与原始字符数据相同的长度并且仅由一 个字符代码形成的加密数据,并且解密这种加密数据。因此,即使在被 设置成仅处理字符数据的数据库中,服务器100也可以正常地存储加密 数据,并且由此,可以防止对存储在数据库中的数据的非授权访问。
3、第二实施方式
在下文中,参照图10和11,对本发明的第二实施方式进行说明。根 据第二实施方式的数据库系统被设置成能够并行地执行用于对多个字符 进行加密和解密的处理,尽管每一个字符的加密和解密都类似于第一实 施方式。第二实施方式和第一实施方式的不同之处基本上在于服务器中 的加密单元和解密单元的功能,尽管第二实施方式的系统构造与第一实 施方式的系统构造相似。下面的说明集中于与第一实施方式的差异。艮P, 下面对加密单元140a (其代替加密单元140)和解密单元150a (其代替 解密单元150)的功能。
首先,下面参照图IO对根据第二实施方式的加密单元的功能进行说 明,图10是例示根据第二实施方式的数据库系统中的加密单元140a的 功能的实施例的框图。加密单元140a包括明文转换单元141a、移位寄存
器142a、加密处理单元143、加密数据存储单元144a、多个EOR计算单 元145a、 145b、 145c、 ...、 145h,以及加密文本输出单元146a。
当将明文输入到加密单元M0a中时,明文转换单元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中的位的位长和转 换表B3a中表示的最大有效位数来确定的。
当使用根据第二实施方式的执行上述用于加密和解密的处理的服务 器时,可以实现与第一实施方式类似的优点。另外,当使用根据第二实 施方式的服务器时,可以极大地增加加密和解密的处理速度。
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的前导字符 Ll。在图14所示的实施例中,顺序转换单元147根据指定的预定方式来 指定该环中的字符Lk作为新的前导字符(其中,k为满足l^k^n的自 然数)。
另外,顺序转换单元147指定跟踪该环中的新的前导字符Lk之后的 字符的方向(向前或向后)。例如,在指定从字符Lk开始的向后方向的
情况下,获得字符串Lk、 Lk-l、…、Ll、 Ln、…、Lk+1。因此,上述对 字符的顺序转换可以减少出现具有相同前导部分的字符串的频率。另外, 因为顺序转换是利用沿字符环的旋转来执行的,所以使得用于再现顺序 的处理便利。
图15是例示根据第三实施方式的用于加密的操作序列的实施例。在 图15的实施例中,对位序列D0、 Dl、 D2以及D3进行加密,其中位序 列DO对应于虚设字符。
在第一步骤ST31中,按照基本上与第一实施方式类似的方式执行用 于对第一位序列D0进行加密的处理,并且获得位序列CO作为对第一位 序列DO进行加密的计算结果。接着,通过加密文本输出单元146b丢弃 位序列C0。
在第二步骤ST32中,执行用于对第二位序列Dl进行加密的处理。 这时,将保持在移位寄存器142中的位序列向左移位构成位序列CO的位 的数量,并将位序列CO设置在移位寄存器142中的经移位的位序列的右 侧。接着,获得位序列C1作为对第二位序列D1进行加密的计算结果。 通过加密文本输出单元146b对位序列CI进行处理,作为与第一字符代 码相对应的位序列。
此后,在第三步骤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的实施例中,对位序列CO、 Cl、 C2以及C3进行解密,其 中位序列CO对应于虚设代码。
在第一步骤ST41中,按照基本上与第一实施方式类似的方式执行用 于对第一位序列CO进行解密的处理,并且获得位序列DO作为对第一位 序列CO进行解密的计算结果。接着,通过明文输出单元156b丢弃位序 歹ij D0。
在第二步骤ST42中,执行用于对第二位序列Cl进行解密的处理。
这时,将保持在移位寄存器152中的位序列向左移位构成位序列CO的位 的数量,并且将位序列CO设置在移位寄存器152中的经移位的位序列的 右侧。接着,获得位序列Dl作为对第二位序列Cl进行解密的计算结果。 通过明文输出单元156b对位序列Dl进行处理,作为与第一字符代码相 对应的位序列。
此后,在第三步骤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、 附加内容
前述内容被认为仅是本发明的原理的例示。而且,因为对于本领域 技术人员来说,可以容易的进行许多修改和改变,所以不希望将本发明 限制为所示和所述的确切构造和应用,因此,所有合适的修改和等同物 可以被视为落入所附权利要求及其等同物中的本发明的范围内。
特别地,可以利用前述本发明的第一到第三实施方式的两个或更多 个特征的任意组合来实现数据库系统。
权利要求
1、一种存储加密程序的计算机可读介质,该加密程序使计算机作为以下单元进行操作转换表存储单元,该转换表存储单元存储具有多个区的转换表,每一个区都存储有与多个索引值相关联的2i个字符代码,其中,i是对于所述多个区中的每一个区预定的自然数,所述2i个字符代码以预定的字符编码方案定义,并且所述多个索引值具有用于唯一地标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;明文转换单元,该明文转换单元获取输入到所述计算机中的第一明文,并且参照存储在所述转换表存储单元中的所述转换表的所述多个区中的存储有构成所述第一明文的多个第一字符代码的多个第一区,将所述多个第一字符代码分别转换成与所述多个第一字符代码相关联的多个第一索引值,其中,所述多个第一字符代码以所述预定的字符编码方案定义;加密单元,该加密单元连续地获取所述多个第一索引值,并将所述多个第一索引值加密成分别具有与所述多个第一索引值相等的位长的多个加密值;以及加密文本输出单元,该加密文本输出单元连续地获取所述多个加密值,参照所述转换表的所述多个区中的所述多个第一区,将所述多个加密值转换成分别与和所述多个加密值一致的多个索引值关联的多个第二字符代码,产生所述多个第二字符代码的序列,作为与所述第一明文相对应的第一加密文本,并且输出所述第一加密文本。
2、 根据权利要求1所述的计算机可读介质,其中,所述加密单元通过对保持在寄存器中的值进行加密以生成位序列、截取所述位序列的具 有与对应于所述各个加密值的所述多个第一索引值中的一个索引值相等 的位长的一部分、并且基于所述多个第一索引值中的所述一个索引值和 所述位序列的所述部分执行预定的计算,来生成所述多个加密值中的每 一个加密值,其中,在所述寄存器中预先存储有初始值。
3、 根据权利要求2所述的计算机可读介质,其中,所述加密单元通 过在生成所述位序列之后截取所述位序列的分别具有与所述多个第一索 引值中的多个第一索引值相等的位长的多个部分,来并行地生成所述多 个加密值中的与所述多个第一索引值中的上述多个第一索引值相对应的 多个加密值。
4、 根据权利要求1所述的计算机可读介质,其中,如果所述多个区 可以存储不同数量的字符代码,则将更频繁出现在明文中的字符的字符 代码优先地存储在所述多个区中的可以存储更多字符代码的一个区或更 多个区中。
5、 根据权利要求1所述的计算机可读介质,所述加密程序使所述计算机还作为以下单元进行操作加密文本转换单元,该加密文本转换单元获取输入到所述计算机中 的第二加密文本,并且参照存储在所述转换表存储单元中的所述转换表 的所述多个区中的存储有构成所述第二加密文本的多个第三字符代码的 多个第二区,将所述多个第三字符代码分别转换成与所述多个第三字符 代码相关联的多个第二索引值,其中,所述多个第三字符代码以所述预定的字符编码方案定义;解密单元,该解密单元连续地获取所述多个第二索引值,并将所述 多个第二索引值解密成分别具有与所述多个第二索引值相等的位长的多 个解密值;以及明文输出单元,该明文输出单元连续地获取所述多个解密值,参照 所述转换表的所述多个区中的所述多个第二区,将所述多个解密值转换 成与和所述多个解密值一致的多个索引值相关联的多个第四字符代码, 产生所述多个第四字符代码的序列,作为与所述第二加密文本相对应的 第二明文,并且输出所述第二明文。
6、 一种加密处理,该加密处理包括以下步骤(a)在转换表存储单元中预先存储具有多个区的转换表,每一个区 都存储有与多个索引值相关联的2i个字符代码,其中,i是对于所述多个 区中的每一个区预定的自然数,所述2i个字符代码以预定的字符编码方案定义,并且所述多个索引值具有用于唯一地标识所述多个区中的每一个区内的2j个字符代码的最小必需位长;(b) 获取输入到计算机中的明文,并且参照存储在所述转换表存储 单元中的所述转换表的所述多个区中的存储有构成所述明文的多个第一 字符代码的多个区,将所述多个第一字符代码分别转换成与所述多个第 一字符代码相关联的多个索引值,其中,所述多个第一字符代码以所述 预定的字符编码方案定义;(c) 连续地获取所述多个索引值,并将所述多个索引值加密成分别 具有与所述多个索引值相等的位长的多个加密值;以及(d) 连续地获取所述多个加密值,参照所述转换表的所述多个区中 的上述多个区,将所述多个加密值转换成分别与和所述多个加密值一致 的多个索引值相关联的多个第二字符代码,产生所述多个第二字符代码 的序列,作为与所述明文相对应的加密文本,并且输出所述加密文本。
7、 一种加密装置,该加密装置包括转换表存储单元,该转换表存储单元存储具有多个区的转换表,每 一个区都存储有与多个索引值相关联的2i个字符代码,其中,i是对于所 述多个区中的每一个区预定的自然数,所述21个字符代码以预定的字符 编码方案定义,并且所述多个索引值具有用于唯一地标识所述多个区中的每一个区内的2i个字符代码的最小必需位长;明文转换单元,该明文转换单元获取输入到计算机中的明文,并且 参照存储在所述转换表存储单元中的所述转换表的所述多个区中的存储 有构成所述明文的多个第一字符代码的多个区,将所述多个第一字符代 码分别转换成与所述多个第一字符代码相关联的多个索引值,其中,所述多个第一字符代码以所述预定的字符编码方案定义;加密单元,该加密单元连续地获取所述多个索引值,并将所述多个 索引值加密成分别具有与所述多个索引值相等的位长的多个加密值;以 及加密文本输出单元,该加密文本输出单元连续地获取所述多个加密 值,参照所述转换表的所述多个区中的上述多个区,将所述多个加密值转换成分别与和所述多个加密值一致的多个索引值关联的多个第二字符 代码,产生所述多个第二字符代码的序列,作为与所述明文相对应的加 密文本,并且输出所述加密文本。
全文摘要
本发明涉及加密处理、加密装置和存储加密程序的计算机可读介质,提供了一种用于加密的处理、装置以及存储程序的计算机可读介质。提供了一种具有多个区的转换表,每一个区都存储有与索引值相关联的2<sup>i</sup>个字符代码,其中i是对于各个区预定的自然数,该2<sup>i</sup>个字符代码以预定的字符编码方案定义,并且所述索引值具有用于唯一地标识各个区内的2<sup>i</sup>个字符代码的最小必需位长。参照该转换表的各个对应的区,将构成明文的第一字符代码转换成索引值。接着,在不改变位长的情况下对索引值进行加密,并且参照该转换表的各个对应的区,将加密值转换成与和加密值一致的索引值相关联的第二字符代码,输出所述第二字符代码的序列作为加密文本。
文档编号G09C1/00GK101206815SQ20071018236
公开日2008年6月25日 申请日期2007年10月18日 优先权日2006年12月19日
发明者大久保重行, 秋山良太 申请人:株式会社富士通Bsc