加密与解密方法转让专利

申请号 : CN200710184824.9

文献号 : CN100591007C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈瑞华

申请人 : 威盛电子股份有限公司

摘要 :

一种加密方法。首先,于组成数据的多个数据区块中选择多个尖兵区块。由剩余的数据区块中选择多个数据区块。之后,依据尖兵区块中的至少一者对于选定的数据区块中的第一数据区块进行加密,从而得到第一密文,且依据尖兵区块中的至少一者对于选定的数据区块中的第二数据区块进行加密,从而得到第二密文。产生的密文可以在后续数据区块的加密程序中作为尖兵区块。

权利要求 :

1.一种加密方法,包括下列步骤:

分割数据以产生多个数据区块;

由所述多个数据区块中选择多个第一数据区块;

由剩余的所述多个数据区块中选择第二数据区块;

由所述多个第一数据区块中选择至少一者;以及依据选定的该第一数据区块对于该第二数据区块进行加密,从而得到第 一密文,在加密程序中第一数据区块的选定及其顺序、数据区块选定的顺序以及 相关信息将会被记录,以提供数据解密参用。

2.根据权利要求1所述的加密方法,还包括下列步骤:由剩余的所述多个数据区块中选择第三数据区块;以及依据该第一密文对于该第三数据区块进行加密,从而得到第二密文。

3.根据权利要求1所述的加密方法,还包括在该第二数据区块加密之前, 对于该第一数据区块进行逻辑运算。

4.根据权利要求1所述的加密方法,还包括在该第二数据区块加密之前, 对于该第一数据区块依据加/解密算法加密该第一数据区块。

5.根据权利要求1所述的加密方法,其中依据该第一数据区块对于该第 二数据区块进行加密是对于该第二数据区块进行逻辑运算。

6.根据权利要求1所述的加密方法,其中依据该第一数据区块对于该第 二数据区块进行加密是依据加/解密算法加密该第二数据区块。

7.一种与权利要求1的加密方法对应的解密方法,包括下列步骤:于组成数据的多个数据区块中选择第一数据区块;

由剩余的所述多个数据区块中选择第二数据区块;以及依据该第一数据区块对于该第二数据区块进行解密,从而得到第一平文。

8.根据权利要求7所述的解密方法,还包括下列步骤:由剩余的所述多个数据区块中选择第三数据区块;以及依据该第一平文对于该第三数据区块进行解密,从而得到第二平文。

9.根据权利要求7所述的解密方法,还包括在该第二数据区块解密之前, 对于该第一数据区块进行逻辑运算。

10.根据权利要求7所述的解密方法,还包括在该第二数据区块解密之 前,对于该第一数据区块依据加/解密算法解密该第一数据区块。

说明书 :

技术领域

本发明是有关于一种加密与解密方法,且特别有关于一种利用数据自身 内容进行加密与解密的方法。

背景技术

在密码学中,大部分都是采用对称(Symmetric)或非对称(Asymmetric) 加/解密的机制。举例来说,对称加/解密算法包括RC4、DES与AES算法。在 对称加/解密算法中,加密数据与解密数据时是使用同一个金钥(Key)。非对 称加/解密算法包括RSA算法。在非对称加/解密算法中,加密数据与解密数 据时是使用不同的金钥(公钥与私钥)。对于对称与非对称加/解密算法而言, 如何传递金钥将形成安全上的重要考虑。非对称加/解密算法虽然可以比对称 加/解密算法拥有较佳的安全性,然而,其相对的复杂度也提升。
在一些加/解密算法,如替换(Substitution)加/解密算法中,加密数据 与解密数据时可以不使用金钥。图1显示一替换加/解密算法的示意图。如图 1所示,在依据加/解密算法产生的密文中,一个字母将会被另外一个字母替 换。举例来说,A被V替换、B被G替换、C被S替换、D被Q替换等等。对 于替换加/解密算法而言,密文非常容易通过频繁地分析而破解,其具有较低 的安全性。

发明内容

有鉴于此,本发明提供加密与解密方法。
本发明实施例的加密方法。首先,分割数据以产生多个数据区块。于组 成数据的多个数据区块中选择多个第一数据区块。由剩余的数据区块中选择 第二数据区块。之后,由第一数据区块中选择至少一者。依据选定的第一数 据区块对于第二数据区块进行加密,从而得到第一密文。
本发明实施例的解密方法。首先,于组成数据的多个数据区块中选择第 一数据区块。由剩余的数据区块中选择第二数据区块。之后,依据第一数据 区块对于第二数据区块进行解密,从而得到第一平文。
在一些实施例中,产生的密文可以在后续数据区块的加密程序中作为尖 兵区块。
本发明上述方法可以通过程序码方式收录于物理媒体中。当程序码被机 器加载且执行时,机器变成用以实行本发明的装置。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例, 并配合所附图示,详细说明如下。

附图说明

图1为一示意图是显示一替换加/解密算法。
图2为一流程图是显示依据本发明实施例的加密方法。
图3为一流程图是显示依据本发明实施例的解密方法。
图4A显示当尖兵区块的数目为1且数据区块的加密是对于数据区块进行 XOR运算的加密例子。
图4B显示图4A中尖兵区块的数目为1且数据区块的加密是对于数据区 块进行XOR运算的密文的解密例子。
图5A显示当尖兵区块的数目为2且数据区块的加密是对于数据区块进行 XOR运算的加密例子。
图5B显示图5A中尖兵区块的数目为2且数据区块的加密是对于数据区 块进行XOR运算的密文的解密例子。
[主要元件标号说明]
S210、S220、...、S280~操作步骤;
S310、S320、...、S380~操作步骤。

具体实施方式

图2显示依据本发明实施例的加密方法。在此实施例中,数据可以依据 自身内容进行加密。
如步骤S210,将数据分割为多个数据区块。值得注意的是,每一数据区 块可以具有相同的长度,如1位(Bit)、1字节(Byte)、或其它尺寸。在一些 实施例中,每一数据区块亦可以具有不相同的长度。如步骤S220,由数据区 块中选择一个或是多个数据区块,以作为尖兵(Sentry)区块。注意的是,尖 兵区块是用以当作其它数据区块进行加密时的金钥。在一些实施例中,尖兵 区块可以与原始的数据区块相同,或是将原始的数据区块事先进行处理。举 例来说,对于数据区块进行逻辑运算,如XOR、AND、OR、及NOT等,或是依 据加/解密算法,如替换加/解密算法、对称加/解密算法、或非对称加/解密 算法加密数据区块。
如步骤S230,由剩余的数据区块中选择至少一数据区块。如步骤S240, 由尖兵区块中选择至少一者,且如步骤S250,依据选定的尖兵区块对于选定 的数据区块进行加密,从而得到密文。值得注意的是,将数据区块进行加密 可以依据尖兵区块对于数据区块进行逻辑运算,或是依据加/解密算法,如替 换加/解密算法、对称加/解密算法、或非对称加/解密算法加密数据区块。
如步骤S260,判断相应数据的加密作业是否结束。必须注意的是,在一 些实施例中,当所有数据的数据区块都被选择过之后,则相应数据的加密作 业结束。在一些实施例中,当数据中既定数目的数据区块被选择过之后,则 相应数据的加密作业结束。若相应数据的加密作业结束(步骤S260的是),结 束流程。若相应数据的加密作业尚未结束(步骤S260的否),如步骤S270, 判断是否须将步骤S250产生的密文设为尖兵区块。必须说明的是,密文可以 选择是否要在后续数据区块的加密程序中作为尖兵区块,以增加加密程序的 型态与复杂度。若产生的密文不需设为尖兵区块(步骤S270的否),流程回到 步骤S230,重新由尚未选择过的剩余数据区块中选择至少一数据区块,以进 行加密程序。若产生的密文需要设为尖兵区块(步骤S270的是),如步骤S280, 将密文设为尖兵区块,且流程回到步骤S230,重新由尚未选择过的剩余数据 区块中选择至少一数据区块,以进行加密程序。
必须提醒的是,在加密程序中尖兵区块的选定及其顺序、数据区块选定 的顺序以及相关信息将会被记录,以提供数据解密参用。
图3显示依据本发明实施例的解密方法。在此实施例中,数据可以依据 自身内容进行解密。
如步骤S310,将数据分割为多个数据区块。值得注意的是,每一数据区 块可以具有相同的长度,如1位、1字节、或其它尺寸。在一些实施例中, 每一数据区块亦可以具有不相同的长度。如步骤S320,由数据区块中选择一 个或是多个数据区块,以作为尖兵区块。注意的是,尖兵区块是用以当作其 它数据区块进行解密时的金钥。在一些实施例中,尖兵区块可以与原始的数 据区块相同,或是将原始的数据区块事先进行处理。举例来说,对于数据区 块进行逻辑运算,如XOR、AND、OR、及NOT等,或是依据加/解密算法,如 替换加/解密算法、对称加/解密算法、或非对称加/解密算法加密数据区块。
如步骤S330,由剩余的数据区块中选择至少一数据区块。如步骤S340, 由尖兵区块中选择至少一者,且如步骤S350,依据选定的尖兵区块对于选定 的数据区块进行解密,从而得到一平文。值得注意的是,将数据区块进行解 密可以依据尖兵区块对于数据区块进行逻辑运算,或是依据加/解密算法,如 替换加/解密算法、对称加/解密算法、或非对称加/解密算法解密数据区块。
如步骤S360,判断相应数据的解密作业是否结束。必须注意的是,在一 些实施例中,当所有数据的数据区块都被选择过之后,则相应数据的解密作 业结束。在一些实施例中,当数据中既定数目的数据区块被选择过之后,则 相应数据的解密作业结束。若相应数据的解密作业结束(步骤S360的是),结 束流程。若相应数据的解密作业尚未结束(步骤S360的否),如步骤S370, 判断是否须将步骤S350产生的平文设为尖兵区块。若产生的平文不需设为尖 兵区块(步骤S370的否),流程回到步骤S330,重新由尚未选择过的剩余数 据区块中选择至少一数据区块,以进行解密程序。若产生的平文需要设为尖 兵区块(步骤S370的是),如步骤S380,将平文设为尖兵区块,且流程回到 步骤S330,重新由尚未选择过的剩余数据区块中选择至少一数据区块,以进 行解密程序。
接下来,提出例子进行说明。
图4A显示当尖兵区块的数目为1且数据区块的加密是对于数据区块进行 XOR运算的加密例子。如图4A所示,其中平文的数据区块为X1、X2、X3、...、 Xn,密文的数据区块为Y1、Y2、Y3、...、Yn。在此例子中,X1被选定为尖兵 区块,且尖兵区块与原始数据区块的内容相同,因此Y1=X1。接着,数据区 块X2被选择,且依据尖兵区块Y1加密为密文密文Y2被设 为尖兵区块。之后,数据区块X3被选择,且依据尖兵区块Y2加密为密文 密文Y3被设为尖兵区块。上述程序重复,直至数据区块Xn 被选择,且依据尖兵区块Yn-1加密为密文图4B显示图 4A中尖兵区块的数目为1且数据区块的加密是对于数据区块进行XOR运算的 密文的解密例子。如图4B所示,其中密文的数据区块为Y1、Y2、Y3、...、 Yn,平文的数据区块为X1、X2、X3、...、Xn。在此例子中,Y1被选定为尖兵 区块,且尖兵区块与原始数据区块的内容相同,因此X1=Y1。接着,数据区 块Y2被选择,且依据尖兵区块X1解密为平文平文X2被设 为尖兵区块。之后,数据区块Y3被选择,且依据尖兵区块X2解密为平文 平文X3被设为尖兵区块。上述程序重复,直至数据区块Yn 被选择,且依据尖兵区块Xn-1解密为平文
图5A显示当尖兵区块的数目为2且数据区块的加密是对于数据区块进行 XOR运算的加密例子。如图5A所示,其中平文的数据区块为X1、X2、X3、...、 Xn,密文的数据区块为Y1、Y2、Y3、...、Yn。在此例子中,X1与Xn同时被 选为定为尖兵区块,且尖兵区块与原始数据区块的内容相同,因此Y1=X1且 Yn=Xn。值得注意的是,相应数据的加密作业可以分别由两端展开。数据区块 X2被选择,且依据尖兵区块Y1加密为密文密文Y2被设为 尖兵区块。另一方面,数据区块Xn-1被选择,且依据尖兵区块Yn加密为密 文密文Yn-1被设为尖兵区块。上述程序重复,直至 所有平文数据区块被选择且加密。图5B显示图5A中尖兵区块的数目为2且 数据区块的加密是对于数据区块进行XOR运算的密文的解密例子。如图5B所 示,其中密文的数据区块为Y1、Y2、Y3、...、Yn,平文的数据区块为X1、X2、 X3、...、Xn。在此例子中,Y1与Yn同时被选为定为尖兵区块,且尖兵区块 与原始数据区块的内容相同,因此X1=Y1且Xn=Yn。类似地,相应数据的解 密作业可以分别由两端展开。数据区块Y2被选择,且依据尖兵区块X1解密 为平文平文X2被设为尖兵区块。另一方面,数据区块Yn-1 被选择,且依据尖兵区块Xn解密为平文平文Xn-1 被设为尖兵区块。上述程序重复,直至所有密文数据区块被选择且解密。
本发明的方法,或特定型态或其部分,可以以程序码的型态包含于物理 媒体,如软盘、光盘片、硬盘、或是任何其它机器可读取(如计算机可读取) 储存媒体,其中,当程序码被机器,如计算机加载且执行时,此机器变成用 以实现本发明的装置。本发明的方法与装置也可以以程序码型态通过一些传 送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序 码被机器,如计算机接收、加载且执行时,此机器变成用以实现本发明的装 置。当在一般用途处理器实作时,程序码结合处理器提供一操作类似于应用 特定逻辑电路的独特装置。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何 本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰, 因此本发明的保护范围当视所附的权利要求范围所界定者为准。