一种基于模板的加密解密系统与方法

文档序号:7694834阅读:235来源:国知局
专利名称:一种基于模板的加密解密系统与方法
技术领域
本发明属于信息安全技术领域,具体涉及一种基于模板的加密解密系 统与方法。
背景技术
加密解密现有很多的成熟的加密算法和方法,但由于语言表达中词汇 使用的词频特性以及使用加密算法本身的规律性,其实质是通过变换算法、 密钥来达到混淆特征性的目的。多重混合加密方法也是当前简单提高解密破解难度的方法,数据加密在国内外有很多的研究,混合加密如申请号为02152606. 0的中国专利申请 (公开号CN1503503A ,
公开日2004. 06. 09 )公开了 一种"数据加密、解密 方法与装置",该方法提出使用者预先定义指定多个加密算法的模块组合, 配合数据属性对应及动态选取机制,选取一组加密算法模块组合对数据作 加密处理。该方法仅仅提出一种加密模块算法组合的方式,加密与解密双 方都需要预先确定加密算法模块组合机制,对于双方同步组合信息增加了 难度。实际应用中需要频繁的更换密钥以保证加密方法的安全性,而更换密 钥的代价是需要同步更新发送方与接受方的密钥,特别是对于多重混合加 密的应用,密钥更换频繁将导致密钥被截获或者破解的几率增大,其安全 性的降低,并且带来急剧膨胀的繁杂的密钥需要管理。现有的文献或专利中提到的文字加密方法,目前还没有发现基于模板 的加密组合方式的方法。发明内容针对现有技术中存在的问题,本发明的目的是提供一种基于模板的加 密解密系统与方法,该系统与方法能够通过数据变换算子集的模板,混合 使用现有加密技术,以混淆加密数据的特征,从而大大提升多重混合加密 效果,降低密钥系列的管理难度,易于管理和使用,并且通过模板的结构 化特征,能够实现对密钥动态组合,有效分散了密钥的安全压力。为实现上述发明目的,本发明采用的技术方案是 一种基于模板的加密解密系统,包括密文容器、模板管理器和算子管理器,其中所述的密文 容器用于保存密文和原文并执行加密、解密处理,模板管理器用于管理和 提供密文容器加密解密的数据变换需要使用到的结构化模板,算子管理器 用于管理与保存加密解密过程中需要使用的加密算法的算子集合及相关密 钥,所述的密文容器、模板管理器和算子管理器依次相连,算子管理器与 密文容器相连。进一步,密文容器对于原文的加密或者对密文的解密处理是由模板中 定义的序列处理组成,即按照结构化模板中定义的算子先后顺序,逐个进 行数据变换处理,加密处理是由结构化模板定义的对原文进行的 一 系列算 子的数据变换处理组成,解密处理则是由对密文进行的对应的反向序列的 数据变换处理组成。进一步,所述模板管理器中的结构化模板用于定义加密、解密规则集, 是一种支持嵌套的由结点组成的结构化数据,结构化模板包括加密模板和 解密模板。更进一步,所述结构化模板中每个结点定义一次对原文或者密文的数据变换操作,包括数据变换算子、数据变换对象、数据验证算子、输出 编码定义以及加密或者解密需要使用到的密钥,其中所述的数据变换算子 是指数据加密算法或其它数据转换规则,数据变换对象是指需要变换的数 据区域,数据验证算子是用于验证数据合法性或者有效性的方法,输出编 码定义是指加密后输出的数据以何种编码方式保存。更进一步,所述的加密模板是通过其结点的结构化关系定义了数据变 换的处理次序,所述的解密模板与加密模板中定义的处理次序正好相反。进一步,所述的算子管理器中设有用于针对原文或者密文进行加密或 解密处理的的加密算法模块和用于一般数据格式变换的数据变换模块,其 中数据变换模块处理过程中需要使用到的密钥,由系统配置的密钥容器、 模板中记录的密钥信息或者直接由用户输入提供。一种基于模板的加密解密方法,该方法包括以下步骤1 )发送方密文容器接受需要加密的原文数据,向模板管理器请求加密 模板;2)发送方密文容器依据加密模板中设置,向算子管理器请求算子对指定的数据区域进行数据加密处理;3) 发送方完成上述加密之后,依据加密模板设置在密文中嵌入模板标 识信息,完成数据加密后向接受方发送密文;4) 接受方密文容器接受需要解密的密文数据之后,检查其使用的模板 标识信息,向模板管理器请求对应的解密模板;5) 接受方密文容器依据解密模板中设置,向算子管理器请求算子对指 定的数据区域进行数据解密处理;6) 接受方密文容器依据解密模板设置完成上述解密处理之后,将密文 还原为原文进行输出。进一步,步骤l)中,密文容器首先依据系统配置的加密模板或者用 户输入,向模板管理器请求加密模板,然后依据加密模板中定义的处理次 序和加密方式,对原文进^f于加密处理。进一步,步骤2)中,是通过加密模板中的每个结点来设置算子处理 数据的指定数据区域,所述的指定数据区域是原文或者处理过程中数据的 局部的、不连续的区域,上述处理过程中的数据是指原文与经过加密处理 之后混排的数据区域,模板中每个结点设置的数据区域允许存在重叠。进一步,步骤3)中,所附加的模板标识信息用于接受方识别并查找 定位到需要使用的解密模板,模板标识信息为包括模板标识名称以及移除 模板结构定义相关信息后涉及解密需要用到数据信息的流式数据。模板结 构定义相关信息是指模板数据未改变前的定义结构。进一步,步骤4)中,上述加密模板和解密模板也能够作为原文并加 密传输,并且由于模板支持嵌套的结构化特点,具体应用时只请求被嵌套 的子模板,或者是依据接受方权限分发的模板局部,即接受方通过该模板 仅能实现对局部或者部分密文的解密。进一步,步骤5)中,接受方依据接受密文嵌入的模板信息,查找并 还原匹配的解密模板。进一步,步骤6)中,接受方依据解密模板,对密文进行解密,其数 据变换的处理次序在解密模板中定义,其解密处理次序正好与加密处理次 序正好相反。进一步,在步骤2)和/或步骤5)中,如加密处理和/或解密处理需要 输入密码或者密钥,由系统配置的密钥容器、加密模板中密钥信息或者用 户输入提供。本发明的效果在于采用本发明所述的方法和系统,通过模板定义密 钥之间的组合关系,大大提升了多重混合加密处理中加密效果,并提升了 密钥的安全性,最重要的是这种模板的管理方式,极大的降低了密钥系列 的管理的难度,易于管理和使用,并且通过模板的结构化特征,可以实现 对密钥动态组合,有效分散了密钥的安全压力。并且,由于中国汉字类别 文字在计算机中采用双字节表示,与单字节的英文、数字不同,并且汉字 字数相对英文字母多很多,其文字编码的变化变换方式更多,其混淆后消 除词频的特性更好,可以说这是汉字文字加密一个方面的优势。


图1是本发明实施例中基于模板的加密解密系统结构图; 图2是本发明实施例中基于模板的加密方法流程图; 图3是本发明实施例中基于模板的解密方法流程图。
具体实施方式
下面结合说明书附图和具体实施方式
对本发明作进一步的描述。如图1所示, 一种基于模板的加密解密系统,主要包含密文容器ll、 模板管理器12和算子管理器13,其中密文容器11用于保存密文和原文并 执行加密、解密处理;模板管理器12用于管理和提供密文容器加密解密的 数据变换需要使用到的结构化模板,该模板包括加密模板和解密模板;算 子管理器13用于管理与保存加密解密过程中需要使用的加密算法、加密方 法的算子集合及相关密钥。所述的密文容器ll、模板管理器12和算子管 理器13依次相连,算子管理器与密文容器11相连。本实施例中,密文容器11对于原文的加密或者对密文的解密过程,是 由结构化模板中定义的处理序列组成,如加密处理是由结构化模板中定义 的对原文的一个系列的数据变换处理组成,解密处理则是由对密文进行的 对应的反向序列的数据变换处理组成。本实施例中,上述模板管理器12使用到的结构化模板用于定义对加 密、解密规则集,是一种支持嵌套的由结点组成的结构化数据,结构化模 板中每个结点定义一次对原文或者密文的数据变换操作,该定义包括数 据变换算子、数据变换对象、数据验证算子、输出编码定义以及加密或者解密需要使用到的密钥,其中数据变换算子是指数据加密算法或其它数据转换规则,典型如DES加密算法等,其中数据变换对象是指需要变换的数 据区域,数据验证算子是用于验证数据合法性或者有效性的现有方法,如 MD5散列算法,其中输出编码定义是指加密后输出的数据以何种编码方式 保存,典型如BASE64编码等。本实施例中,上述模板管理器12使用到的结构化模板用其结点的结构 化关系定义了处理数据变换的次序关系,解密模板与加密模板中定义的处 理次序正好相反。本实施例中,所述的算子管理器中设有用于针对原文或者密文进行加 密或解密处理的加密算法模块和用于一般数据格式变换的数据变换模块, 其中数据变换模块处理过程中需要使用到的密钥,由系统配置的密钥容器、 模板中记录的密钥信息或者直接由用户输入提供。如图2和图3所示, 一种基于模板的加密解密方法,包括以下步骤1)发送方密文容器接受需要加密的原文21,向模板管理器请求加密 模板22;本实施例中,发送方准备加密的原文为"2008好运北京",其计算机 16进制的编码为"0032 0030 0030 0038 5317 4EAC 5965 8FD0"。本实施例中,密文容器向模板管理器请求的加密模板定义(以下简称 XmlT-l)如下,其中密码由系统配置< xml version="1.0" encoding="utf-8" ><template id="B3EB8AB7-6163-4873-B37F-2C9FE0263143" name^言双对测试" type="EncDes"><items rule="Package"><item id="08-23" name="DES算子"functor="DES"><vector type="password"><![CDATA[123]]></vector><regions><section No=T begin="0" end="3"/></regions><input><validate method="7></input>
<output encoding="Base64',/> </item>
<item id="07-05" name="3DES算子"functor="TripleDES"> <vector type="password"〉<![CDATA[321]]></vector> <rcgions>
<section No="l" begin=T end="end"/〉 </regions>
〈output encoding="UTF87> </item〉 </items> </template>
2)发送方密文容器依据加密模板中设置(即加密模板中每个结点所定 义的具体内容),向算子管理器查找并请求加密算子23,对指定的数据区 域进行数据加密处理24,在此过程中,如加密变换需要输入密码或者密钥, 由系统配置的密钥容器(一般操作系统中均包含密钥容器,本发明装置通 过接口调用操作系统的密钥容器)、加密模板中密钥信息或者用户输入提 供;
本实施例中,加密模板由两个数据变换定义结点组成,其中第一个id 等于"08-23"、名称为"DES算子"的算子,查找算子管理器中实际为"DES,, 的加密算子,该算子对输入的数据索引为0到3字节的数据进行加密,其 中加密密码为"123",其加密后输出的数据以Base64形式编码输出;第 二个id等于"07-05"名称为"3DES算子"的算子,查找算子管理器中实际为 "TripleDES"的加密算子,该算子对输入的数据索引为10到数据末尾的 数据进行加密,其中加密密码为"321",其加密后输出的数据以UTF8形 式编码输出;
加密过程为
1)id等于"08-23"的算子,查找数据索引为0到3字节的数据为"2008", 对应编码"0032 0030 0030 0038" , 4丸行加密后生成的数据为"BF47 EBABB82E 5AEA",输出按照Base64进行编码,则新生成的数据编码为"0052 0037 002B 0072 0036 0079 0036 0034 0036 006C 006F 003D",则与未加密 的"好运北京"对应编码"5317 4EAC 5965 8FD0"组合为新的数据"0052 0037 002B 0072 0036 0079 0036 0034 0036 006C 006F 003D 5317 4EAC 5965 8FD0,,。执行后模板(以下简称XmlT-2)变化为 < xml version="1.0" encoding="utf-8" >
〈template id="B3EB8AB7-6163-4873-B37F-2C9FE0263143" name^'双对测试" type="EncDes">
<items rule="Package">
<item id="08-23" name=',DES算子"functor="DES" serial=,T,〉
<vector type="password"〉<![CDATA[123]]></vector>
<regions〉
<sectionNo="l" begin="0" end="ll"/>
</regions>
<input〉
<validate method=""/>
</input〉
〈output encoding="Base64"/> </item〉
<item id="07-05" name="3DES算子"functor="TripleDES"> <vector type="password"〉<![CDATA[321]]〉</vector> <regions〉
〈section No=T begin="8" end="end7> </regions>
<output encoding="UTF8"/〉 </item> </items〉 </template〉从上述模板可以看出,经过处理后算子的section记录发生变化,记录 了 end位置为加密后数据的长度,并且该算子记录了当前处理的次序serial
为l;
2)id等于"07-05"的算子,在上述加密结果数据中查找数据索引为8字 节到结尾数据对应编码"0036 006C 006F 003D 5317 4EAC 5965 8FD0", 执行加密后生成的lt据为"83CF 1ACB F362 CFF4 9701 0978 272A 1A3E 2AEB 90D4 6685 664D",输出按照UTF8进行编码,则新生成的数据编 码为"8FE8 E18F 8BAB 8DEF ECA2 B4BF 9CE9 E081 B8A5 9CE2 E1AA BEA8 ABE2 E9AB 9483 9AE6 E685 8D99"
与当前算子未加密编码"0052 0037 002B 0072 0036 0079 0036 0034" 组合为新的数据"0052 0037 002B 0072 0036 0079 0036 0034 8FE8 E18F 8BAB 8DEF ECA2 B4BF 9CE9 E081 B8A5 9CE2 E1AA BEA8 ABE2 E9AB 9483 9AE6 E685 8D99"。执行后模板(以下简称XmlT-3)变化为 < xml version="1.0" encoding="utf-8" >
〈template id="B3EB8AB7-6163-4873-B37F-2C9FE0263143" name^'双对测试" type="EncDes">
<items rule="Package">
<item id="08-23" name="DES算子"functor="DES" serial=,,l">
<vector type="password"><![CDATA[123]]></vector>
<rcgions>
〈sectionNo="l" begin="0" end="117>
</regions>
<input>
<validate method-" 7>
</input>
〈output encoding="Base64"/> </item>
<item id="07-05" name="3DES算子"functor="TripleDES" serial=,,2,,> <vector type="password"><![CDATA[321]]></vector> <regions><section No="l" begin="8" end="end'V> </rcgions>
<output encoding="UTF87> </item> </items> </template>
从上述模板可以看出,经过"07-05"的算子处理后,section记录发生变 化,记录了 end标记为到数据结束位置的实际长度已经发生的变化,并且 该算子记录了当前处理的次序serial为2;
本实施例中,加密模板中指定数据区域是原文数据中的不连续的局部 数据,其数据区域范围是在模板中指定的,该指定数据区域还可以是原文 与经过加密处理之后混杂的数据区域,模板中加密设置项的数据范围物理 上允许存在重叠,但处理次序上不允许存在重叠,其处理次序由模板的结 构决定。
3) 发送方完成上述加密之后,密文依据加密模板设置,嵌入模板信息, 完成数据加密后向接受方发送密文25;
本实施例中原文通过密文容器加密后得到的密文为"0052 0037 002B 0072 0036 0079 0036 0034 8FE8 E18F犯AB 8DEF ECA2 B4BF 9CE9 E081 B8A5 9CE2E1AABEA8ABE2E9AB 9483 9AE6E685 8D99"。步骤(3 ) 中,发送方完成加密之后,必须在加密文件头附加模板标识信息,其附加 的模板信息是指移除模板结构定义,解密需要用到信息的流式数据。最终 本实施例子中,向接受方发送的密文头中嵌入模板信息为"templatex5E B3EB8AB7-6163-4873-B37F-2C9FE0263143 EncDes "Package" l:id"08-23" 123 0 11 2:id"07-05" 321 8 $.".上述template表示固定定义的数据头,后 面紧接的是该模板标识信息的数据长度,即有94字节,随后定义的是该模 板的全局唯一标识GUID为B3EB8AB7-6163-4873-B37F-2C9FE0263143。
4) 接受方密文容器接受需要解密的数据流即密文31,检查其使用的 模板信息,向模板管理器请求对应的解密模板32。
本实施例中,接受方接受密文嵌入的模板信息,从密文中寻找附加模板标识信息中,提取该模板的全局唯一标识GUID为 B3EB8AB7-6163-4873-B37F-2C9FE0263143,由该GUID到模板管理器中 查找到对应的模板,依据模板格式,如XmlT-l所示的数据,与上述附加 模板标识信息合成,重新恢复生成XmlT-3所示的数据。
如不存在对应模板或者生成XmlT-3所示的数据发生异常,则解密过 程均失败。
5) 接受方密文容器依据解密模板中设置(即解密模板中每个结点所定 义的具体内容),依据定义的次序,向算子管理器请求解密算子33,并对 指定的数据区域进行数据解密处理34。其过程与加密过程正好相反。
本实施例中,由于加密处理均采用的是对称加密算法,接受方和发送 方使用相同的模板,依据解密模板,对密文进行解密,其应用解密处理的 次序与加密过程正好相反,解密过程中需要提供密钥的处理与现有技术相 同。
6) 接受方密文容器依据解密模板设置逆向完成上述解密处理之后,将 密文还原为原文进行输出35。
本发明的应用取得如下的实施效果
1. 基于模板的加密组合,达到数据加密过程的数据区域交叉加密,加 密后的数据特征更加弱化,增加了破解难度;
2. 模板支持嵌套和其结构化特点,能够支持模板的局部分发,即可以 实现l)模板的部分更新;2)基于授权的模板局部分发;3)模板本身可 以作为加密对象;4)模板具备签名验证能力;5)模板必须与普通密钥配 合使用,缺少任何一方均会造成解密失败。6)可以实现针对密文的局部解 密,可应用于特定和权限分级的加密应用场合等;
3. 经过验证,本发明的方法特别适合英文数字与汉字类型的文字混排 的原文的加密。
术人员根据本发明的技术方案得出其^的实2方式,同S属于本发明^技 术创新范围。
权利要求
1. 一种基于模板的加密解密系统,包括密文容器、模板管理器和算子管理器,其中所述的密文容器用于保存密文和原文并执行加密、解密处理,所述的模板管理器用于管理和提供密文容器加密解密的数据变换需要使用到的结构化模板,所述的算子管理器用于管理与保存加密解密过程中需要使用的加密算法的算子集合及相关密钥,所述的密文容器、模板管理器和算子管理器依次相连,算子管理器与密文容器相连。
2. 如权利要求1所述的一种基于模板的加密解密系统,其特征在于 所述的密文容器对于原文的加密或者对密文的解密处理是由结构化模板中 定义的算子序列处理组成,即按照结构化模板中定义的算子先后顺序,逐 个进行数据变换处理,加密处理是由结构化模板定义的对原文进行的一系 列算子的数据变换处理组成,解密处理则是由对密文进行的对应的反向序 列的数据变换处理组成。
3. 如权利要求1或2所述的一种基于模板的加密解密系统,其特征在 于所述模板管理器中的结构化模板用于定义加密、解密规则集,是一种 支持嵌套的由结点组成的结构化数据,结构化模板包括加密模板和解密模 板。
4. 如权利要求3所述的一种基于模板的加密解密系统,其特征在于 所述结构化模板中每个结点定义一次对原文或者密文的数据变换操作,该 定义包括数据变换算子、数据变换对象、数据验证算子、输出编码定义 以及加密或者解密需要使用到的密钥,其中所述的数据变换算子是指数据 加密算法或其它数据转换规则,数据变换对象是指需要变换的数据区域, 数据验证算子是用于验证数据合法性或者有效性的方法,输出编码定义是 指加密后输出的数据以何种编码方式保存。
5. 如权利要求4所述的一种基于模板的加密解密系统,其特征在于 所述的加密模板是通过其结点的结构化关系定义了数据变换的处理次序, 所述的解密模板与加密模板中定义的处理次序正好相反。
6. 如权利要求5所述的一种基于模板的加密解密系统,其特征在于 所述的算子管理器中设有用于针对原文或者密文进行加密或解密处理的加 密算法模块和用于一般数据格式变换的数据变换模块,其中数据变换模块 处理过程中需要使用到的密钥,由系统配置的密钥容器、模板中记录的密 钥信息或者直接由用户输入提供。
7. —种基于模板的加密解密方法,该方法包括以下步骤1 )发送方密文容器接受需要加密的原文数据,向模板管理器请求加密模板;2)发送方密文容器依据加密模板中设置,向算子管理器请求算子对指 定的数据区域进行数据加密处理;3 )发送方完成上述加密之后,依据加密模板设置在密文中嵌入模板标 识信息,完成数据加密后向接受方发送密文;4) 接受方密文容器接受需要解密的密文数据之后,检查其使用的模板 标识信息,向模板管理器请求对应的解密模板;5) 接受方密文容器依据解密模板中设置,向算子管理器请求算子对指 定的数据区域进行数据解密处理;6) 接受方密文容器依据解密模板设置完成上述解密处理之后,将密文 还原为原文进行输出。
8. 如权利要求7所述的一种基于模板的加密解密方法,其特征在于 步骤1)中,密文容器首先依据系统配置的加密模板或者用户输入,向模 板管理器请求加密模板,然后依据加密模板中定义的处理次序和加密方式, 对原文进行系列的加密处理。
9. 如权利要求7所述的一种基于模板的加密解密方法,其特征在于 步骤2)中,是通过加密模板中的每个结点来设置算子处理数据的指定数 据区域。
10. 如权利要求9所述的一种基于模板的加密解密方法,其特征在于 所述的指定数据区域是原文或者处理过程中数据的局部的、不连续的区域, 上述处理过程中的数据是指原文与经过加密处理之后混排的数据区域,模 板中每个结点设置的数据区域允许存在重叠。
11. 如权利要求7至IO之一所述的一种基于模板的加密解密方法,其 特征在于步骤3)中,所嵌入的模板标识信息用于接受方识别并查找定 位到需要使用的解密模板,模板标识信息为包括模板标识名称以及移除模 板结构定义相关信息后涉及解密需要用到数据信息的流式数据,所述的模 板结构定义相关信息是指模板数据未改变前的定义结构。
12. 如权利要求7至IO之一所述的一种基于模板的加密解密方法,其 特征在于步骤4)中,上述加密模板和解密模板也作为原文并加密传输, 并且由于模板支持嵌套的结构化特点,具体应用时只请求被嵌套的子模板,或者是依据接受方权限分发的模板局部,即接受方通过该模板仅能实现对 局部或者部分密文的解密。
13. 如权利要求7至IO之一所述的一种基于模板的加密解密方法,其 特征在于步骤5)中,接受方依据接受密文嵌入的模板信息,查找并还 原匹配的解密模板。
14. 如权利要求7至IO之一所述的一种基于模板的加密解密方法,其 特征在于步骤6)中,接受方依据解密模板,对密文进行解密,其数据 变换的处理次序在解密模板中定义,其解密处理次序与加密处理次序正好 相反。
15. 如权利要求7至IO之一所述的一种基于模板的加密解密方法,其 特征在于在步骤2)和/或步骤5)中,如加密处理和/或解密处理需要输 入密码或者密钥,由系统配置的密钥容器、加密模板中密钥信息或者用户 输入提供。
全文摘要
本发明涉及一种基于模板的加密解密系统与方法,属于信息安全技术领域。现有技术中对数据的加密是通过一组密钥对原文进行加密,本发明通过引入一种数据变换算子集的结构化模板,使用现有加密技术对原文进行混合和交叉加密。采用本发明所述的方法,加密后的数据特征更加弱化,解密必须通过密钥与结构化模板的配合完成,还可以实现密文的局部解密适合英文、数字与汉字类型的文字混排的加密解密。
文档编号H04L29/06GK101282212SQ20081011200
公开日2008年10月8日 申请日期2008年5月20日 优先权日2008年5月20日
发明者李平立, 健 龚 申请人:北京方正国际软件系统有限公司;北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1