一种具有无限密钥空间的对称加密方法

文档序号:7684431阅读:180来源:国知局
专利名称:一种具有无限密钥空间的对称加密方法
技术领域
本发明属于信息安全的技术领域,涉及一种使用对称密钥技术进行加密和解密 的方法。
背景技术
当前的密码技术可以分成两类对称加密和非对称加密。对称加密在加密和解密 的过程中使用相同的密钥;非对称加密将密钥分为公钥和私钥,加密的时候使用公钥, 解密的时候使用私钥。非对称加密的这种特性很好地解决了长期以来困扰密码使用的 一个关键问题——密钥分发问题。目前在网络上进行保密信息传输的时候, 一般首先 使用非对称加密方法传递本次通信使用的密钥,然后采用对称加密的方法进行保密通 信。这是因为在相同的计算能力下,对称加解密方法的效率大约是非对称加解密方法 效率的一千倍。除了分发密钥以外,非对称加密还可以用于数字签名,即签名的时候 使用私钥,对签名进行验证的时候使用公钥。目前对称加密的典型方法有DES和AES 等,非对称加密的典型方法有RSA和EIGamal等。对称加密和非对称加密各有自己的 应用领域,无法相互取代。在密码学中, 一个公认的原则是密码的安全性取决于密钥而非加密的方法。所以目前被普遍采用的密码方法,其加密和解密的过程都是公开的。如DES使用长度为64 位的密钥与经过初始置换后的明文二进制编码一起进行多达16轮的迭代,再经过逆初 始变换后得到密文,这个机制是公开的。加密技术面临的安全威胁分析(1)暴力破解在加密方法公开的前提下,破解密码的最有效手段就是通过穷举的方式猜测密钥 进行暴力破解。近年来,随着计算机硬件性能的不断提高,尤其是高性能计算机,分布式计算,网格计算的兴起,人类拥有的计算能力空前膨胀,通过暴力方法猜测密钥所需的时 间大大縮短。本世纪初,国外就曾组织利用互联网上的计算机协作通过穷举的方式 猜测密钥破解密码,结果获得了成功。在这种形式的逼迫下,密钥的长度不断增加, 从64位到128位,256位,512位甚至更长,以此增加暴力破解的难度。在理论上,只要密钥的长度空间有限且拥有的计算能力足够强大,那么在一定 的时间里,通过穷举的方式猜测密钥去破解密码的方法就是可行的。(2)已知明文攻击目前多数的加密方法,若密钥K和明文P是确定的,那么密文M也是唯一确 定的。所以若知道某段明文P对应的密文M,那么根据加密方法提供的置换规则研 究明文与密文之间的对应关系,就有可能以较小的计算代价找到密钥K,从而达到 破解其它密文的目的,这就是已知明文攻击。从已知明文攻击的机制分析可以知道,若明文和密文之间的对应关系不是一一 映射,而是一对多的代数关系,那么将极大增加已知明文分析攻击的难度。目前,消除"穷举猜测密钥"、"已知明文分析"等密码攻击技术的威胁是本领 域需要解决的重要问题。发明内容本发明提出一种加密方法,该方法使密钥具有无限的空间长度,使得攻击者无 论拥有多么强大的计算能力都不可能通过穷举的方式猜测出密钥,保护被加密信息 的安全。本发明的技术方案是 一种具有无限密钥空间的对称加密方法,包括加密步骤 和解密步骤;所述加密步骤包含下列步骤步骤(1)使用一组公开的计算机文件作为密钥,其表现形式为这些文件名称 的序列(File—1, File—2,…,File—N},其中File_i表示第i个文件的文件名,其中i EN, N是自然数;步骤(2)将待加密文件的明文在其存储的物理层以定长m个Bit为基本单位 (其中m》l, mEN, N是自然数),顺序将明文分解成若干个明文片段,若文件 最后一个明文片段的剩余长度小于m,则在后面补"0",使其长度为m;步骤(3)将密钥的每一个文件在其存储的物理层,以相同的定长m个Bit为基本单位,顺序将密文分解成若干个密钥片段,并以"文件名/地址偏移量"的形式给出每个密钥片段的地址编码,若文件最后一个密钥片段的剩余长度小于m,则在后面补"0",使其长度为m;步骤(4)将明文片段用密钥文件中任意一个相同的密钥片段的地址加以表示; 步骤(5)将明文中的所有明文片段按序使用相同的密钥片段的地址进行编码表示,得到密文;所述解密步骤包含下列步骤步骤(6)根据密钥(FileJ, File—2, ..., File—N)的描述,首先获取相应的公开 文件;步骤(7)在密文中读取每一个密钥片段的地址编码,即"文件名/地址偏移量", 依据文件名的描述找到具体的文件,然后根据地址偏移量找到对应的密钥片段并加 以记录;步骤(8)将每一个密钥片段地址编码对应的密钥片段按序装配,还原出明文。 作为本发明的改进,上述加密步骤进一步包含下列步骤-步骤(A)将待加密文件的明文分解成Byte的序列(Bo, Bp ..., BM},其中M 是自然数;步骤(B)在密钥(File—1, File—2, ..., File—N)的文件中,以一个Byte为长度 单位对每个文件进行划分,每个Byte对应一个File/Address编码地址,其中File代 表密钥中的一个具体文件,Address代表被选中的Byte在该文件中的地址偏移量;步骤(C)对(Bo, B。…,BM)中的每一个Byte,在密钥(File—1, File—2,..., File—N)所提供的文件中,随机选取一个相同的Byte,并记录其编码地址;步骤(D)将从Bo到Bm的所有File/Address编码按序组成一个二进制文件, 得到密文;上述解密步骤进一步包含下列步骤步骤(E)根据密钥(FileJ, File_2, ..., Fil^N〉的描述,首先获取相应的公 开文件;步骤(F)在密文中读取每一个File/Address编码,依据File的描述找到具体的 文件,然后根据Address提供的地址找到对应的Byte并加以记录;步骤(G)将每一个File/Address编码对应的Byte按序装配,还原出明文。 作为本发明的进一步改进,所述步骤(B)中进一步包括下列步骤对密钥中的每一个文件,统计其中的每一个Byte的值并记录其地址偏移量, 建立一张配置表文件Config.ini,它包含了编号为0至255的256个数据区,每一个 数据区按其编号分别存储与其编号相同的密钥Byte值的地址编码,即分别存储其 值为从0到255的密钥文件中的Byte地址编码。所述地址编码的存储方法为从任一个数据区的起始位开始,每五个连续的 Byte的含义是第一个Byte表示加密使用的文件,其后四个Byte表示32位的地 址偏移量。作为本发明的进一步改进,所述步骤(C)中进一步包括下列步骤 对(Bo, Bp ..., BM)中的每一个Byte,采用顺序或随机的方式进行遍历,在此 过程中逐个字节加密。方法是若Bi对应的Byte值是X,则必有0《X《255,那 么在配置表文件Config.ini中找到编号为X的数据区,从起始位开始,以长度5为 单位,任意选取5个连续的字节作为Bi的编码。 本发明方案可以按以下说明进行理解一篇用英文写作的文本,可以拆分成26个字母和若干个标点符号组成的集合。 这些字母和标点符号是公开,本身不含有任何保密内容。它们只有按一定的拼写顺 序和语法规则进行组装,才能承载有价值的信息。因此在加密的过程中,以China 这个单词为例,考虑采用如下方法(1) 在一本公开且易于获取的英文书中,如Bible (《圣经》),任意选取其中含 有的一个大写字母C,并采用如下的编码规则记录下这个字母的位置 Book/Page/Row/Column,其中Book表示书名,Page表示页码,Row表示在某一行, Column表示在某一列。(2) 在相同的书,也可以是另一本公开且易于获取的英文书中,任意选取其中 含有的一个小写字母h,采用与(l)相同的编码规则记录。重复以上步骤,直至对所有的字母都采用Book/Page/Row/Column的方式完成 编码。那么China的密文表现为(Book 1/Page 1/Row 1/Column 1) (Book2/Page2/ Row2/Column2).. .(Book5/Page5/Row5/Column5)。在解密的过程中,只需知道Bookl, Book2, ..., Book5分别对应于哪些书, 即可通过査找的方式提取出明文。因此使用这种方法,加密和解密的密钥是相同的, 这个密钥就是由{Bookl, Book2, ..., Book5)组成的序列,其中Bookl, Book2,…, Book5可以是一本书,也可以是最多五本互不相同的书。在底层看计算机中的文件,与英文文本非常相似,无论是哪一种格式的文件, 都是由Byte组成的,每一个Byte又由8个bit组成,所以Byte只有从0到255的 256种不同表现形式。因此,对于待加密的文件,可以先将其拆分成若干个Byte, 然后选择一些公开且易于获取的计算机文件,将这些Byte采用上面提到的编码方 式以映射表的形式做加密处理。不同于在一本英文书中, 一个字母的位置使用 Page/Row/Column的形式定位,在计算机文件中, 一个Byte的位置需要使用它在该 文件中的32位地址偏移量加以确定,所以对一个Byte的编码采用File/Address的 形式,其中File表示文件名,Address是32位的地址偏移量。将所有的File/Address 编码按序装配成一个二进制文件,可以得到密文。在解密的过程中,首先在密文中读取File/Address,根据File的指示找到加密 使用的公开文件,然后打开该文件并根据Address提供的32位地址偏移量找到对应 的Byte并加以记录。将密文中所有对应的Byte找到并按序装配,即可还原出明文。有益效果本发明克服了密钥与明文数据流混合移位变换的传统加密方式可以被穷举猜 测密钥的缺陷,通过在物理层将明文划分成若干个基本单位,然后将每一个基本单 位映射到某个可公开获取的文件之中,密文记录的只是这种映射关系。解密过程则 是通过密文记录的映射关系在相应的公开文件中査找数据块,并将其按序组装,得 到明文。本发明方法使密钥具有无限空间长度,通过使用本发明可以有效防止通过 穷举猜测密钥的方式和已知明文攻击等密码破解手段对现有加密体系的威胁,有效 的达到保护敏感信息安全的目的,而且该方法比已知常用的对称加密方法具有更高 的加密和解密效率。下面给出具体的说明。1.抗穷举猜测密钥的攻击方式在本发明方法中,密钥由一组可公开获取的文件及其使用顺序确定,密钥的表 现形式为一组文件名(File—1, File—2, ..., File—N}, N是自然数,其自身长度是有 限的。但在加密和解密的过程中,它所代表的密钥空间长度却是无限的,通过穷举 所有公开文件的方法进行解密在实践上不可行。传统的加密方法,密钥空间都是有 限的,如DES使用64位或128位的密钥,只要拥有足够强大的计算能力,那么有 限长度的密钥空间都可能被穷举破解。高性能计算机,并行计算,网格计算,以及 未来的量子计算机所拥有的计算能力已经对现有的加密体系构成了威胁,所以密钥的空间长度被迫越来越长。而使用本发明的方法,密钥的空间长度是无限的,可以 彻底解决通过穷举猜测密钥的方式攻击密文。2. 抗已知明文的攻击方式若明文和密文之间存在一一对应的关系,那么已知一段密文及其对应的明文, 就有可能从公开的加密机制中推测出密钥。在本发明方法中,对明文一个Byte数 据的加密,是在密钥指称的公开文件中随机选取得的,若作为密钥的公开文件合计 大小为2M,那么平均对每个待加密Byte的变换都有近8000种选择。所以使用本 发明方法,对相同的明文加密每次得到的结果几乎都不同,因此可以有效地抵抗已 知明文攻击。3. 抗其它攻击方式还有一些其它的攻击方式,假设密文是明文和密钥中的数据经过某种方式的数 学变换后得到,因此希望通过单纯分析密文的规律得到明文。使用本发明方法,密 文中完全不包含明文,包含的只是一些Byte的地址信息,所以通过这类分析手段 不可能从密文中获取明文。4. 具有较高的加密和解密效率在本发明方法中,加密和解密的主要工作均是在一些公开的文件中査找对应的 Byte,所以其计算的时间复杂度远比DES和AES这样需要反复迭代变换的加密方 式要小,效率也相对较高。因此本发明方法特别适合于在计算能力和电源均受限的 环境中进行加密和解密,如Adhoc网和传感器网等。


图1是本发明实施例1加密方法的流程图 图2是本发明实施例2解密方法的流程图 图3是本发明实施例1配置表文件Config.ini的结构图。
具体实施方式
下面根据附图对本发明作更详细的描述。一、加密的实施方式如图1所示,本发明的操作步骤如下(1)选取N (N》1, N是自然数)个可以公开取得的计算机文件,使用序列{File—1, File—2, ..., File—N〉作为密钥,其中Filej表示第i个文件的文件名。(2) 对密钥中的每一个文件,采用程序自动化的方式统计其中的每一个Byte的 值并记录其地址偏移量。然后建立一张配置表文件Config.ini,它包含了编号为0 至255的256个数据区,每一个数据区按其编号分别存储值为从0到255的256种 不同的Byte。从任一个数据区的起始位开始,每五个连续的Byte的含义是第一 个Byte表示加密使用的文件,其后四个Byte表示32位的地址偏移量。见图3。(3) 将待加密文件的明文分解成Byte的序列(Bo, Bp ..., BM},其中M是自 然数。(4) 对(Bo,..., BM)中的每一个Byte,采用顺序或随机的方式进行遍历, 在此过程中逐个字节加密。方法是若Bi对应的Byte值是X,则必有0《X《255, 那么在配置表文件Config.ini中找到编号为X的数据区,从起始位开始,以长度5 为单位,任意选取5个连续的字节作为Bj的编码。(5) 将从Bo到BM的编码顺序存放组成一个二进制文件,得到密文。 二、解密的实施方式如图2所示,操作步骤如下(1) 根据密钥(File—1, File_2,…,File—N》中提供的文件名,找到对应的公开 文件。(2) 按Byte的方式对密文进行读取,从起始位开始每五个Byte为一个处理单位。(3) 其中根据第一个Byte的内容确定加密使用的文件,后四个Byte的内容作为 32位的地址偏移量。打开加密使用的文件,根据地址偏移量找到对应的Byte并加 以记录。(4) 将根据密文査找得出的所有Byte按序装配,还原出明文。
权利要求
1、一种具有无限密钥空间的对称加密方法,包括加密步骤和解密步骤,其特征在于,所述加密步骤包含下列步骤步骤(1)使用一组公开的计算机文件作为密钥,其表现形式为这些文件名称的序列{File_1,File_2,...,File_N},其中File_i表示第i个文件的文件名,其中i∈N,N是自然数;步骤(2)将待加密文件的明文在其存储的物理层以定长m个Bit为基本单位(其中m≥1,m∈N,N是自然数),顺序将明文分解成若干个明文片段,若文件最后一个明文片段的剩余长度小于m,则在后面补“0”,使其长度为m;步骤(3)将密钥的每一个文件在其存储的物理层,以相同的定长m个Bit为基本单位,顺序将密文分解成若干个密钥片段,并以“文件名/地址偏移量”的形式给出每个密钥片段的地址编码,若文件最后一个密钥片段的剩余长度小于m,则在后面补“0”,使其长度为m;步骤(4)将明文片段用密钥文件中任意一个相同的密钥片段的地址加以表示;步骤(5)将明文中的所有明文片段按序使用相同的密钥片段的地址进行编码表示,得到密文;所述解密步骤包含下列步骤步骤(6)根据密钥{File_1,File_2,...,File_N}的描述,首先获取相应的公开文件;步骤(7)在密文中读取每一个密钥片段的地址编码,即“文件名/地址偏移量”,依据文件名的描述找到具体的文件,然后根据地址偏移量找到对应的密钥片段并加以记录;步骤(8)将每一个密钥片段地址编码对应的密钥片段按序装配,还原出明文。
2、 根据权利要求1所述的加密方法,其特征是,上述加密步骤进一步具体为 下列步骤步骤(A)将待加密文件的明文分解成Byte的序列(Bo, B。 ..., BM},其中M 是自然数;步骤(B)在密钥(File—1, File—2,…,File—N》的文件中,以一个Byte为长度 单位对每个文件进行划分,每个Byte对应一个File/Address编码地址,其中File代表密钥中的一个具体文件,Address代表当前的Byte在该文件中的地址偏移量; 步骤(C)对(Bo, B!,…,BM)中的每一个Byte,在密钥(FileJ, File—2,…,File—N)所提供的文件中,随机选取一个相同的Byte,并记录其编码地址;步骤(D)将从Bo到Bm的所有File/Address编码按序组成一个二进制文件,得到密文;上述解密步骤进一步具体为下列步骤步骤(E)根据密钥(File—1, File—2, ..., File—N)的描述,首先获取相应的公 开文件;步骤(F)在密文中读取每一个File/Address编码,依据File的描述找到具体的 文件,然后根据Address提供的地址找到对应的Byte并加以记录;步骤(G)将每一个File/Address编码对应的Byte按序装配,还原出明文。
3、 根据权利要求2所述的加密方法,其特征是,所述步骤(B)中进一步包括 下列步骤对密钥中的每一个文件,统计其中的每一个Byte的值并记录其地址偏 移量,据此建立一张配置表文件Config.ini,它包含了编号为0至255的256个数据 区,每一个数据区按其编号分别存储与其编号相同的密钥Byte值的地址编码,即 分别存储其值为从0到255的密钥文件中的Byte地址编码。
4、 根据权利要求2所述的加密方法,其特征是,所述步骤(B)中地址编码的 存储方法为从任一个数据区的起始位开始,每五个连续的Byte的含义是第一 个Byte表示加密使用的文件,其后四个Byte表示32位的地址偏移量。
5、 根据权利要求2所述的加密方法,其特征是,所述步骤(C)中进一步包括 下列步骤对(Bo, Bp ..., BM)中的每一个Byte,采用顺序或随机的方式进行遍历, 在此过程中逐个字节加密,方法是若Bi对应的Byte值是X,则必有0《X《255, 那么在配置表文件Config.ini中找到编号为X的数据区,从起始位开始,以长度5 为单位,任意选取5个连续的字节作为Bi的编码。
6、 根据权利要求2所述的加密方法,其特征是,所述步骤(F)进一步包括下 列步骤(1)按Byte的方式对密文进行读取,从起始位开始每五个Byte为一个处 理单位;(2)其中根据第一个Byte的内容确定加密使用的文件,后四个Byte的内容 作为32位的地址偏移量。打开加密使用的文件,根据地址偏移量找到对应的Byte 并加以记录。
全文摘要
本发明涉及一种具有无限密钥空间的对称加密方法,使用一组公开的计算机文件序列作为密钥;将待加密文件的明文在其存储的物理层以定长m个Bit为基本单位,顺序将明文分解成若干个明文片段,最后剩余长度小于m,则在后面补“0”,使其长度为m;将密钥的每一个文件在其存储的物理层,以相同的定长m个Bit为基本单位,顺序将密文分解成若干个密钥片段,并以“文件名/地址偏移量”的形式给出每个密钥片段的地址编码,若文件最后一个密钥片段的剩余长度小于m,则在后面补“0”,使其长度为m;将明文片段用密钥文件中任意一个相同的密钥片段的地址加以表示;将明文中的所有明文片段按序使用相同的密钥片段的地址进行编码表示,得到密文。
文档编号H04L9/30GK101335616SQ20081002270
公开日2008年12月31日 申请日期2008年7月24日 优先权日2008年7月24日
发明者夏蔚萍, 王昌达 申请人:江苏大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1