基于报文载荷分片、加密、重排序的安全通讯系统及其实现方法

文档序号:7718018阅读:256来源:国知局
专利名称:基于报文载荷分片、加密、重排序的安全通讯系统及其实现方法
技术领域
本发明涉及一种通讯方法,具体是指一种基于报文载荷分片、加密、重排序的安全通讯系统及其实现方法。
背景技术
目前,人们越来越依赖于信息技术带来的便利,但随之而来是网络的不安全,木马越来越猖狂,甚至有集团有组织地利用网络上安全漏洞犯罪的案件也时有发生,因此安全加密技术民用的需求也越来越强烈。迄今为止,安全加密多用于国家机密和公司机密,由于国家机密要求很高,因而配备先进的设备,例如超级计算机、特殊的算法等,而公司机密的安全加密则多用于文件及虚拟专用网(VPN)中,大多用对称加密算法来实现。由于对称加密技术生成的密文在传输过程中比较容易被破解。但是非对称加密技术的加密时间较长,而且能加密的数据量很小,进而导致想要得到一定的安全级别,不得不付出高昂的成本,所以不能满足人们的需求,大多数公司及人民的机密要求仍然得不到有效的保障。

发明内容
本发明所要解决的技术问题是提供一种能有效防止加密数据被破译的基于报文载荷分片、加密、重排的安全通讯系统及其实现方法。本发明的目的通过下述技术方案实现基于报文载荷分片、加密、重排序的安全通讯系统,主要由用于输出分片信息的分片信息生成模块,以及将输入的普通应用数据转换成安全载荷和将接收到的安全载荷还原成普通应用数据的安全载荷转换模块组成。进一步地,所述的分片信息生成模块包括用于生成分片信息的分片信息生成过程模块、用于在会话建立时为分片信息生成过程模块收集会话实时信息的会话信息交互模块、为分片信息生成过程模块提供随机算法库的随机算法库模块、为分片信息生成过程模块提供密钥算法库的密钥算法库模块、为分片信息生成过程模块提供当前应用及当前通讯对象的控制信息的控制信息数据库模块、负责更新随机算法库模块、密钥算法库模块、算法库更新过程模块I以及用于控制控制信息数据库模块生成和维护控制信息的控制信息认证过程模块组成。所述的安全载荷转换模块包括按照分片信息将普通应用数据转换成安全载荷的安全载荷生成模块,按照分片信息将安全载荷还原成普通应用数据的安全载荷还原模块, 为安全载荷生成模块及安全载荷还原模块提供数字签名及签名验证的数字签名过程模块, 为安全载荷生成模块提供加密算法及为安全载荷还原模块提供解密算法的加密解密算法库模块,以及负责更新数字签名过程模块和加密解密算法库模块的算法库更新过程模块 II。为了更好的实现本发明,所述的分片信息包括用于获取加密解密算法库模块的加密解密算法库版本的全局变量和以分片数量为组数的多组用于确定分片大小的分片长度, 用于获取加密和解密算法索引的算法标识,用于在加密和解密过程中使用的算法密钥以及在重排序和重排序还原过程中使用的重排序偏移。所述的会话实时信息包括用于生成初始种子的会话标识、通讯双方组合的随机串号、通讯双方组合的通讯时间戳及通讯双方组合的网络地址。所述的控制信息则包括用于索引的通讯对象标识,用于获取算法库的随机算法库版本、密钥算法库版本,用于影响密钥算法选择的密钥算法库掩码,以及用于生成初始种子的私有数据及残留种子。

基于报文载荷分片、加密、重排序的安全通讯系统的实现方法,主要包括以下步骤(a)分片信息生成模块根据会话实时信息和控制信息生成分片信息;(b)安全载荷转换模块根据分片信息将普通应用数据转换成安全载荷在网络上进行传输,或根据分片信息将从网络上获取的安全载荷还原成普通应用数据。进一步地,步骤(a)中所述的分片信息生成模块根据会话实时信息和控制信息生成分片信息,具体包括以下步骤(al)分片信息生成过程模块从控制信息数据库模块中获取当前应用和当前通讯对象的控制信息,从随机算法库模块中获取随机算法库版本能力,从密钥算法库模块中获取密钥算法库版本能力,并由会话信息交互模块生成具有会话标识、随机串号、网络地址及通讯时间戳的会话实时信息。(a2)判断分片信息生成过程模块是否成功获取控制信息?是,则设置交互成功, 执行步骤(a3);否,则再判断通讯双方的密钥算法库版本能力及随机算法库版本能力是否有交集?如果有交集,则按交集的最高版本重新设置控制信息并存入控制信息数据库模块中,同时设置交互成功,执行步骤(a3),否则设置交互失败,直接结束,并返回分片信息生成失败,通讯结束。(a3)根据控制信息中的随机算法库版本和密钥算法库版本来设置当前的算法库版本,并设置结束标记为假。(a4)以当前的会话实时信息的会话标识、随机串号、网络地址及通讯时间戳和控制信息中的私有数据、残留种子为输入,调用随机算法库模块当前版本中的随机种子混合算法来生成初始种子并存入种子变量,再以该初始种子及控制信息的残留种子为输入,调用随机算法库模块中的衰减残留种子算法来生成当前的残留种子并存入控制信息数据库模块中。(a5)以当前种子变量中的种子为输入,调用随机算法库模块中的随机长度算法来生成当前分片长度及新的种子并将新的种子存入种子变量,并判断当前所有已生成的分片长度总和SUM是否大于或等于最大载荷长度?是,则执行步骤(a6),否,则执行步骤(a7)。(a6)按照“分片长度=当前分片长度_(分片长度总和SUM-最大载荷长度),,重新设置当前的分片长度,并同时设置结束标记为真,并执行步骤(a7)。(a7)以种子变量中的种子和控制信息的密钥算法库掩码为输入,调用当前的随机算法库模块的密钥算法选择算法选择出密钥算法记录及新的种子并将新的种子存入种子变量,并从密钥算法记录中得到当前分片的算法标识。
(a8)以种子变量中的种子为输入,调用当前密钥算法记录中的密钥算法,生成当前分片的算法密钥及新的种子并将新的种子存入种子变量。(a9)判断结束标记是否为真?是,则执行步骤(alO),否,则跳回执行步骤(a5)。 (alO)以种子变量中的种子为输入,调用当前算法库中随机重排序算法,对各个分片包签名在内重新排序,然后按重排的顺序计算出每个分片在新的次序中的重排序偏移, 生成分片信息。步骤(b)中所述的安全载荷转换模块根据分片信息将普通应用数据转换成安全载荷在网络上进行传输,具体包括以下步骤步骤1 安全载荷生成模块根据分片信息的加密解密算法库版本设置当前使用的加密解密算法库模块的版本,并同时设置应用数据缓冲区偏移和分片索引为O ;步骤2 以分片索引从分片信息中读取当前分片的分片长度、算法标识、算法密钥、重排序偏移,并根据算法标识从加密解密算法库模块的当前版本中获取相应的加密算法;步骤3 以应用数据缓冲区偏移及当前分片的分片长度为输入,从应用数据缓冲区中读取当前分片的明文数据,以当前分片的算法密钥为输入,调用当前分片的加密算法对当前分片的明文数据进行加密,生成当前分片密文数据;步骤4 以当前分片密文数据和签名为输入,调用数字签名过程模块,生成新的签名,同时以重排序偏移及分片长度为输入,将当前分片密文数据存储到安全载荷缓冲区中;步骤5 重新计算新的应用数据缓冲区偏移,使分片索引增加1 ;步骤6 判断当前应用数据缓冲区偏移是否小于最大载荷长度?是,则表示应用数据分片处理没有结束,跳转到步骤2处理下一个分片,否,则直接执行步骤7 ;步骤7 按分片索引从分片信息中读出当前分片的重排序偏移,并根据重排序偏移及签名长度生成安全载荷,并将签名存储到安全载荷缓冲区中;相应地,步骤(b)中所述的安全载荷转换模块根据分片信息将从网络上获取的安全载荷还原成普通应用数据,具体步骤如下步骤1 安全载荷生成模块根据分片信息的加密解密算法库版本设置当前使用的加密解密算法库模块的版本,并同时设置应用数据缓冲区偏移和分片索引为O ;步骤2 以分片索引从分片信息中读取当前分片的分片长度、算法标识、算法密钥、重排序偏移,并根据算法标识从加密解密算法库模块的当前版本中获取相应的解密算法;步骤3 以当前分片重排序偏移及当前分片的分片长度为输入,从安全载荷缓冲区中读取当前分片密文数据;步骤4 以当前分片密文数据和签名为输入,调用数字签名过程模块,生成新的签名;以当前分片的算法密钥为输入,调用当前分片的解密算法对当前分片的密文数据进行解密,生成当前分片明文数据;以应用数据缓冲区偏移及分片长度为输入,将当前分片明文存储到应用数据缓冲区中;步骤5 重新计算新的应用数据缓冲区偏移,使分片索引增加1 ;步骤6 判断当前应用数据缓冲区偏移是否小于最大载荷长度?是,则表示应用数据分片处理没有结束,跳转到步骤2处理下一个分片,否,则直接进行步骤7 ;步骤7 按分片索引从分片信息中读取当前分片的重排序偏移,根据重排序偏移及签名长度从安全载荷缓冲区中读出签名并与步骤4中计算出的签名进行比对,如果相同,则表示已还原成普通应用数据,如果不相同,则表示发生传输错误。其中,上述步骤中所述的最大载荷长度=网络最大传输长度_头部长度_校验和长度-签名长度,且该最大载荷长度为最小加密长度的整数倍。本发明与现有技术相比,具有如下的优点和有益效果

(1)本发明采用的分片信息生成机制完全能保证通讯双方生成唯一的、不可自制的分片信息,分片信息产生过程完全受控于会话实时信息及控制信息。分片信息生成过程中,种子是动态的,在每一步骤都会刷新种子,而种子直接作用于分片信息的生成。这种机制可以保证只要会话实时信息与控制信息稍有不同,得到的分片信息相差就很大。就单独控制信息中的密钥算法库奄码来说,按照常规可能分成23分片,如果密钥算法库提供200 种密钥算法记录的话,就至少有5X1051种排列组合,不考虑其它信息的情况下,这已经是一个无法破解的数字。所以窃听都要想侦听破解,就必须获取正确的动态实时信息和控制信肩、ο(2)本发明的控制信息保护机制包括首先控制信息是按照应用及通讯对象而单独存在的,按照应用及通讯对象的不同,均可设置不同的随机算法库版本、密钥算法库版本、密钥算法库掩码、私有数据,避免采用组共享的方式,减小了窃听破解的机率;其次,提供控制信息认证机制,用户可手动或自动更新控制信息;再次采用残留种子机制将用户历史上多次的对每个应用的每个通讯对象的在会话分片信息产生时生成的初始种子做不同程度的衰减并合并生成的残留种子关存储到控制信息中,这种机制让窃听者在人为窃取到控制信息后,还必须从窃取后第一次会话起每一次都必须侦听,减小了窃听破解的机率;最后控制信息库可以设置成从物理上与系统隔离,只是在访问瞬间用户手动允许连接,访问完成后自动隔离,因此能够有效到防止窃听者的侦听。(3)在分片信息生成过程中,在通讯双方生成唯一的、不可自制的分片信息后,本发明对安全性进行了估算,按最有可能来设定安全性的环境参数,常用的网络是以太网,最大有效载荷长度为1500字节,常用的加密算法是AES算法,通常采用128位,所以分片长度的间位设为16字节。最大有效载荷长度我们去掉签名的开销,再保留一部分,我们按90个长度单位也就是90X16 = 1440字节来设定最大有效载荷长度。我们按一个分段最大是8个长度单元来设定,那么到少11个段可以自由选择长度,组合数量为811,在这些11个段的组合中有一半的组合总长度小于44个长度单元下,剩下46个长度单元可供5个段自由选择,以次类推,可按如下公式计算分片的组合数量X = 8"/2 X 85/2 X 82/2 X 8 72 = 1125899906842624 > IXlO15分片长度平均为4,平均分成23片加上签名,一个24个分片参与重排序模块的排列,产生的组合数量为Y = 24 ! = 620448401733239439360000 > 6X1023所以安全性增大倍数可以简单估算为X*Y*23 = IXlO15 X 23 X 6Χ1023 > IXlO40
相对于单钥加密,本发明采用的方法将安全性提高到至少104°倍,而且会话通讯过程中,分片信息在建立时产生的,属于一次消耗,而对于安全载荷转换来说,加密长度是一样的,只是增加了重排序及重排序还原的负担,增加消耗不到0. 1%。


图1为本发明系统结构示意图。图2为本发明的随机算法库模块结构示意图。图3为本发明的密钥算法库模块结构示意图。图4为本发明的加密解密算法库模块结构示意图。图5为本发明的控制信息数据库模块结构示意图。图6为本发明的认证过程流程图。图7为本发明的分片信息生成流程图。图8为本发明的安全载荷生成流程图。图9为本发明的安全载荷生成过程示意图。图10为本发明的安全载荷还原过程示意图。图11为本发明的安全载荷还原流程图。图12为本发明的分片信息结构示意图。其中,图中附图标记对应的零部件名称为1-分片信息生成模块,2-安全载荷转换模块,11-分片信息生成过程模块,12-算法库更新过程模块I,13-会话信息交互模块,14-随机算法库模块,15-密钥算法库模块, 16-控制信息认证模块,17-控制信息数据库模块,21-安全载荷生成模块,22-安全载荷还原模块,23-数字签名过程模块,24-加密解密算法库模块,25-算法库更新过程模块II, Mill-分片信息,M131-会话实时信息,M171-控制信息,M221-普通应用数据,M211-安全载荷。
具体实施例方式下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。实施例如图1所示,本发明包括两个大的应用模块,其一为分片信息生成模块1,主要用于输出分片信息Ml 11,其二为安全载荷转换模块2,主要用于将输入的普通应用数据M22转换成安全载荷M211和/或将接收到的安全载荷M211还原成普通应用数据M221。其中,分片信息生成模块1包括有用于生成分片信息Mill的分片信息生成过程模块11,在会话建立时为分片信息生成过程模块11收集会话实时信息M131的会话信息交互模块13,为分片信息生成过程模块11提供随机算法库的随机算法库模块14,为分片信息生成过程模块11提供密钥算法库的密钥算法库模块15,为分片信息生成过程模块11提供当前应用及当前通讯对象的控制信息M171的控制信息数据库模块17,用于负责更新随机算法库模块14、密钥算法库模块15的算法库更新过程模块I 12,以及用于控制信息数据库模块17生成和维护控制信息M171的控制信息认证过程模块16。如图12所示,所述的分片信息Mill由一个数据结构的数组和变量加密解密算法库版本组成,该数据结构包括分片长度、算法标识、算法密钥、重排序偏移。其中,分片长度就是当前分片的长度,通过分片长度可以计算出当前分片的位置偏移,对第i分片来说,其分片位置偏移就是从第一个分片到第i-ι的所有分片长度总和。在分片信息生成机制中,每次随机算法得到当前分片的分片长度时,计算出当前所有分片的长度总和,当总和小于最大载荷长度时,继续分片,当总和大于或等于最大载荷长度时,最后分片的分片长度为最大载荷长度-前面所有分片长度总各,使得所有分片的长度总和刚好与最大载荷长度相等。算法标识是当前分片 的加密/解密算法的标识符,通过此标识符可以从算法库中提取相应的加密/解密算法。算法密钥就是用于当前分片的加密/解密的密钥。重排序偏移及重排序分片长度实际表示的是当前分片被重排序位置,报文的顺序本来是{1,2,3,……,i-1,i,i+1,……,n,签名},经过分片信息生成机制中的混序模块后,要求重排的顺序有可能是{e,……,i,……,1,……,签名,……},分片1的实际位置有可能是k,那么将分片1的新位置偏移就是前面k-Ι个分片的长度总和计算出来赋值给重排序偏移W],因为分片信息是在一次会话中生成,并应用于整个加密通讯模块,所以不希望在每次发送接收时都来计算。综述所述,该分片信息Mill实质就是包括用于获取加密解密算法库模块24的加密解密算法库版本的全局变量和获取每个分片的索引,用于确定分片大小的分片长度,用于获取加密和解密算法索引的算法标识,用于在加密和解密过程中使用的算法密钥以及在重排序和重排序还原过程中使用的重排序偏移。而会话实时信息M131中则包括用于生成初始种子的会话标识、通讯双方组合的随机串号、通讯双方组合的通讯时间戳及通讯双方组合的网络地址。如图2所示,所述的随机算法库模块14中存储了一个变量随机算法库版本,它是一个位图,且一个位图代表一个特定的版本,当这个位置为1时,则表示数据库中有这个版本的随机算法组。随机算法库模块14中可存储多个版本的随机算法组,每组随机算法组均包括五个随机算法,分别是随机种子混合算法,其输入的是会话实时信息M131和控制信息M171 中的私有数据和残留种子,其输出的则是初始种子;衰减残留种子算法,其输入的是初始种子和控制信息M171中的残留种子,输出的是新的残留种子;随机长度算法,其输入是种子, 输出是分片长度及种子;密钥算法选择算法,其输入的是种子,输出的是密钥算法标识及种子;随机重排序算法,其输入的是集合排序,输出的也是重新排序后的集合排序。如图3所示,密钥算法库模块15中存储了一个变量密钥算法库版本,它是一个位图,且一个位图代表一个特定的版本,当这位置为1时表示数据库中有这个版本密钥算法组。密钥算法库模块15中可存储多个版本的密钥算法组,每个版本中存储多个密钥算法记录,如记录1、记录2、记录3……记录η等。而每个密钥算法记录中均包括一个变量算法标识和一个密钥算法。其中,变量算法标识用于从加密解密算法库模块24中提取加密解密算法,而密钥算法则用于生成密钥,其输入的是种子,输出的是密钥与种子。如图5所示,该控制信息数据库模块17中包括一个以上的记录,其中每个记录均包括有通讯对象标识、随机算法库版本、密钥算法库版本、私有数据、残留种子及密钥算法库掩码。其中,随机算法库版本、密钥算法库版本、私有数据及残留种子一起组成了控制信息 M171。如图1所示,安全载荷转换模块2则包括将普通应用数据M221转换成安全载荷 M211的安全载荷生成模块21,将安全载荷M211还原成普通应用数据M221的安全载荷还原模块22,用于验证传输错误的数字签名过程模块23,用于加密和解密的加密解密算法为模块24,以及负责更新数字签名过程模块23和加密解密算法库模块24的算法库更新过程模块 II 25。 其中,加密解密算法库模块24的结构如图4所示,即该加密解密算法库模块24具有多个变量加密解密算法库版本,而每个变量加密解密算法库版本均包含有多个加密解密算法记录,如加密解密算法记录1、加密解密算法记录2……加密解密算法记录η等等。该加密解密算法库模块24主要负责将明文、密文通过加密解密转换成密文、明文,它的输入是明文、密文和密钥,输出则是密文、明文。如上所述,控制信息认证过程模块16是控制信息数据库模块17生成和维护控制信息Μ171的认证过程,其具体步骤如图6所示,即包括以下具体过程步骤1是信息交互,即要将自己的版本能力及控制信息通过安全通讯方法发送给对方,同时通过安全通讯方法获取对方的版本信息及控制信息Μ171。一旦随机算法库版本能力或密钥算法库没有交集时,提示通讯双方并退出认证过程。步骤2 控制信息认证过程模块16判断是否手动输入版本信息?是,则进入版本信息手动协商,否,则进入版本信息自动协商。所述的版本信息自动协商过程中,通讯双方按版本能力交集的最高能力设置认证数据,并随机生成密钥算法库掩码通过安全通讯方法发送给对方;而在版本信息手动协商过程中,需要手动设置认证数据,同随机生成密钥算法库掩码通过安全通讯方法发送给对方,等待对方确认信息,同时通过安全通讯方法接收对方的手动设置的认证数据及密钥算法库掩码,如果确认则发确认信息,双方确认成功后手动协商过程完成。在此过程中,如果双方的版本信息手动协商控制均是真,则设置手动输入版本信息为真,否则为假。步骤3 控制信息认证模块16判断是否手动输入私有信息?是,则进行私有信息自动协商,否,则进入私有信息手动协商。如果双方的私有信息手动协商控制均是真,则设置手动输入私有信息为真,否则为假。其中,私有信息自动协商中,要将缺省的私有数据发送给对方,并收到对方的私有数据后并确认成功;在私有信息手动协商中,需要将手动输入的私有数据发送给对方,并收到对方手动输入的私有数据后成功。步骤4 将认证的数据存入控制数据库的相应记录,并完成认证过程。基于以上系统的相关信息,本发明的实现过程如下(a)分片信息生成模块1根据会话实时信息M131和控制信息M171生成分片信息 M111,其流程如图7所示,即具体包括以下步骤(al)分片信息生成过程模块11从控制信息数据库模块17中获取当前应用和当前通讯对象的控制信息M171,从随机算法库模块14中获取随机算法库版本能力,从密钥算法库模块15中获取密钥算法库版本能力,并由会话信息交互模块13生成具有会话标识、随机串号、网络地址及通讯时间戳的会话实时信息M131。其中,该控制信息M171包括有用于索引的通讯对象标识,用于获取算法库的随机算法库版本、密钥算法库版本,用于影响密钥算法选择的密钥算法库掩码,以及用于生成初始种子的私有数据及残留种子。(a2)判断分片信息生成过程模块11是否成功获取控制信息M171 ?是,则设置交互成功,执行步骤(a3);否,则再进一步判断通讯双方的密钥算法库版本能力及随机算法库版本能力是否有交集?如果有交集,则按交集的最高版本重新设置控制信息M171并存入控制信息数据库模块17中,同时设置交互成功,执行步骤(a3),否则设置交互失败,直接结束,并返回分片信息Mill生成失败,通讯结束。(a3)根据控制信息M171中的 随机算法库版本和密钥算法库版本来设置当前的算法库版本,并设置结束标记为假。(a4)以当前的会话实时信息M131的会话标识、随机串号、网络地址及通讯时间戳和控制信息M171中的私有数据、残留种子为输入,调用随机算法库模块14当前版本中的随机种子混合算法来生成初始种子并存入种子变量中,再以该初始种子及控制信息M171的残留种子为输入,调用随机算法库模块14中的衰减残留种子算法来生成当前的残留种子并存入控制信息数据库模块17中。(a5)以种子变量中的种子为输入,调用随机算法库模块14中的随机长度算法来生成当前分片长度及新的种子并将新的种子存入种子变量,并判断当前所有已生成的分片长度总和SUM是否大于或等于最大载荷长度?是,则执行步骤(a6),否,则执行步骤(a7)。其中,所述的最大载荷长度=网络最大传输长度MTU-头部长度_校验和长度_签名长度,且该最大载荷长度为最小加密长度的整数倍,也可以根据应用的实际情况由应用自定义。举例来说,如果所有算法采128位的AES算法的话,最小加密长度就为16字节,最大载荷长度必须是16字节的整倍数。由于本发明在运行过程中需要不停的更新种子变量中的数据、重复地调用以上各步骤,因此这里所述的种子就是指储存在种子变量中的相关数据。(a6)按照“分片长度=当前分片长度_(分片长度总和SUM-最大载荷长度),,重新设置当前的分片长度,并同时设置结束标记为真,并执行步骤(a7)。(a7)以种子变量中的种子和控制信息M171的密钥算法库掩码为输入,调用当前的随机算法库模块14的密钥算法选择算法选择出密钥算法记录及新的种子并将新的种子存入种子变量,并从密钥算法记录中得到当前分片的算法标识。(a8)以种子变量中的种子为输入,调用当前密钥算法记录中的密钥算法,生成当前分片的算法密钥及新的种子并将新的种子存入种子变量。(a9)判断结束标记是否为真?是,则执行步骤(alO),否,则跳回执行步骤(a5)。(alO)以种子变量中的种子为输入,调用当前算法库中随机重排序算法,对各个分片包签名在内重新排序,然后按重排的顺序计算出每个分片在新的次序的重排序偏移,生成分片信息Mill。即该步骤(alO)是生成分片信息的最后步骤,前面步骤已经生成每个分片的分片长度、算法密钥,算法标识。在这一步得到每个分片的重排序偏移。再从当前版本的密钥算法库中获取加密解密算法库版本并组合得到符合规定的当前会话的分片信息 Mill。(b)安全载荷转换模块2根据分片信息Mill将普通应用数据M221转换成安全载荷M211在网络上进行传输,或根据分片信息Mill将从网络上获取的安全载荷M211还原成普通应用数据M221。即该安全载荷转换模块2具有两重相对应的作用,第一个作用是将需要发送的普通应用数据M221转换成安全载荷211,并通过网络发送出去,以确保窃听者不能破译其内容;第二个作用是将接收到的安全载荷M211还原成普通应用数据M221,以确保应用可以理解其具体内容。 其中,将普通应用数据M221转换成安全载荷M211的步骤如图8、9所示,即其具体包括以下步骤步骤1 安全载荷生成模块21根据分片信息Mill的加密解密算法库版本设置当前使用的加密解密算法库模块24的版本,并同时设置应用数据缓冲区偏移和分片索引为 0,即指向第一个分片。步骤2 以分片索引从分片信息Mill中读取当前分片的分片长度、算法标识、算法密钥、重排序偏移,并根据算法标识从加密解密算法库模块24的当前版本中获取相应的加密算法。步骤3 以应用数据缓冲区偏移及当前分片的分片长度为输入,从应用数据缓冲区中读取当前分片的明文数据,以当前分片的算法密钥为输入,调用当前分片的加密算法对当前分片的明文数据进行加密,生成当前分片密文数据。步骤4:以当前分片密文数据和签名为输入,调用数字签名过程模块23,生成新的签名,同时以重排序偏移及分片长度为输入,将当前分片密文数据存储到安全载荷缓冲区中。步骤5 重新计算新的应用数据缓冲区偏移,使分片索引增加1,即指向下一个分片。步骤6 判断当前应用数据缓冲区偏移是否小于最大载荷长度?是,则表示应用数据分片处理没有结束,跳转到步骤2处理下一个分片,否,则直接执行步骤7。步骤7 按分片索引即指向签名,从分片信息Mill中读出当前分片的重排序偏移, 并根据重排序偏移及签名长度生成安全载荷M211,并将签名存储到安全载荷缓冲区中。与之相对应的将从网络上获取的安全载荷M211还原成普通应用数据M221的步骤如图10、11所示,即具体包括:步骤1 安全载荷生成模块21根据分片信息Mill的加密解密算法库版本设置当前使用的加密解密算法库模块24的版本,并同时设置应用数据缓冲区偏移和分片索引为 0,即指向第一个分片。步骤2 以分片索引从分片信息Mill中读取当前分片的分片长度、算法标识、算法密钥、重排序偏移,并根据算法标识从加密解密算法库模块24的当前版本中获取相应的解密算法。步骤3 以当前分片重排序偏移及当前分片的分片长度为输入,从安全载荷缓冲区中读取当前分片密文数据。步骤4:以当前分片密文数据和签名为输入,调用数字签名过程模块23,生成新的签名;以当前分片的算法密钥为输入,调用当前分片的解密算法对当前分片的密文数据进行解密,生成当前分片明文数据;以应用数据缓冲区偏移及分片长度为输入,将当前分片明文存储到应用数据缓冲区中。步骤5 重新计算新的应用数据缓冲区偏移,使分片索引增加1,即指向下一个分片。步骤6 判断当前应用数据缓冲区偏移是否小于最大载荷长度?是,则表示应用数据分片处理没有结束,跳转到步骤2处理下一个分片,否,则直接进行步骤7。步骤7 按分片索引即指向签名,从分片信息Mill中读取当前分片的重排序偏移, 根据重排序偏移及签名长度从安全载荷缓冲区中读出签名并与步骤4中计算出的签名进行比对,如果相同,则表示已还原成普通应用数据M221,如果不相同,则表示发生传输错误。如上所述,便可以很好的实现本发明。
权利要求
1.基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于主要由用于输出分片信息(Mill)的分片信息生成模块(1),以及将输入的普通应用数据(M221)转换成安全载荷(M211)和将接收到的安全载荷(M211)还原成普通应用数据(M221)的安全载荷转换模块⑵组成。
2.根据权利要求1所述的基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于所述的分片信息生成模块(1)包括用于生成分片信息(Mill)的分片信息生成过程模块(11),用于在会话建立时为分片信息生成过程模块(11)收集会话实时信息(M131)的会话信息交互模块(13),为分片信息生成过程模块(11)提供随机算法库的随机算法库模块 (14),为分片信息生成过程模块(11)提供密钥算法库的密钥算法库模块(15),为分片信息生成过程模块(11)提供当前应用及当前通讯对象的控制信息(M171)的控制信息数据库模块(17),负责更新随机算法库模块(14)和密钥算法库模块(15)的算法库更新过程模块 I (12),以及用于控制信息数据库模块(17)生成和维护控制信息(M171)的控制信息认证过程模块(16)。
3.根据权利要求1或2所述的基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于所述的安全载荷转换模块(2)包括按照分片信息(Mill)将普通应用数据(M221) 转换成安全载荷(M211)的安全载荷生成模块(21),按照分片信息(Mill)将安全载荷 (M211)还原成普通应用数据(M221)的安全载荷还原模块(22),为安全载荷生成模块(21) 及安全载荷还原模块(22)提供数字签名及签名验证的数字签名过程模块(23),为安全载荷生成模块(21)提供加密算法及为安全载荷还原模块(22)提供解密算法的加密解密算法库模块(24),以及负责更新数字签名过程模块(23)和加密解密算法库模块(24)的算法库更新过程模块II (25)。
4.根据权利要求3所述的基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于所述的分片信息(Mill)包括用于获取加密解密算法库模块(24)的加密解密算法库版本的全局变量和以分片数量为组数的多组用于确定分片大小的分片长度,用于获取加密和解密算法索引的算法标识,用于在加密和解密过程中使用的算法密钥以及在重排序和重排序还原过程中使用的重排序偏移。
5.根据权利要求3所述的基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于所述的会话实时信息(M131)包括用于生成初始种子的会话标识、通讯双方组合的随机串号、通讯双方组合的通讯时间戳及通讯双方组合的网络地址。
6.根据权利要求3所述的基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于所述的控制信息(M171)包括用于索引的通讯对象标识,用于获取算法库的随机算法库版本、密钥算法库版本,用于影响密钥算法选择的密钥算法库掩码,以及用于生成初始种子的私有数据及残留种子。
7.基于报文载荷分片、加密、重排序的安全通讯系统的实现方法,其特征在于,主要包括以下步骤(a)分片信息生成模块(1)根据会话实时信息(M131)和控制信息(M171)生成分片信息(Mill)(b)安全载荷转换模块(2)根据分片信息(Mill)将普通应用数据(M221)转换成安全载荷(M211)在网络上进行传输,或根据分片信息(Mill)将从网络上获取的安全载荷(M211)还原成普通应用数据(M221)。
8.根据权利要求7所述的基于报文载荷分片、加密、重排序的安全通讯系统的实现方法,其特征在于,步骤(a)具体包括以下步骤(al)分片信息生成过程模块(11)从控制信息数据库模块(17)中获取当前应用和当前通讯对象的控制信息(M171),从随机算法库模块(14)中获取随机算法库版本能力,从密钥算法库模块(15)中获取密钥算法库版本能力,并由会话信息交互模块(13)生成具有会话标识、随机串号、网络地址及通讯时间戳的会话实时信息(M131);(a2)判断分片信息生成过程模块(11)是否成功获取控制信息(M171) ?是,则设置交互成功,执行步骤(a3);否,则再判断通讯双方的密钥算法库版本能力及随机算法库版本能力是否有交集?如果有交集,则按交集的最高版本重新设置控制信息(M171)并存入控制信息数据库模块(17)中,同时设置交互成功,执行步骤(a3),否则设置交互失败,直接结束,并返回分片信息(Mill)生成失败,通讯结束;(a3)根据控制信息(M171)中的随机算法库版本和密钥算法库版本来设置当前的算法库版本,并设置结束标记为假;(a4)以当前的会话实时信息(M131)的会话标识、随机串号、网络地址及通讯时间戳和控制信息(M171)中的私有数据、残留种子为输入,调用随机算法库模块(14)当前版本中的随机种子混合算法来生成初始种子并存入种子变量中,再以该初始种子及控制信息(M171) 的残留种子为输入,调用随机算法库模块(14)中的衰减残留种子算法来生成当前的残留种子并存入控制信息数据库模块(17)中;(a5)以种子变量中的种子为输入,调用随机算法库模块(14)中的随机长度算法来生成当前分片长度及新的种子并将新的种子存入种子变量中,并判断当前所有已生成的分片长度总和SUM是否大于或等于最大载荷长度?是,则执行步骤(a6),否,则执行步骤(a7); (a6)按照“分片长度=当前分片长度_(分片长度总和SUM-最大载荷长度),,重新设置当前的分片长度,并同时设置结束标记为真,并执行步骤(a7);(a7)以种子变量中的种子和控制信息(M171)的密钥算法库掩码为输入,调用当前的随机算法库模块(14)的密钥算法选择算法选择出密钥算法记录及新的种子并将新的种子存入种子变量,并从密钥算法记录中得到当前分片的算法标识;(a8)以种子变量中的种子为输入,调用当前密钥算法记录中的密钥算法,生成当前分片的算法密钥及新的种子并将新的种子存入种子变量;(a9)判断结束标记是否为真?是,则执行步骤(alO),否,则跳回执行步骤(a5); (alO)以种子变量中的种子为输入,调用当前算法库中随机重排序算法,对各个分片包签名在内重新排序,然后按重排的顺序计算出每个分片在新的次序中的重排序偏移,生成分片信息(Mlll)0
9.根据权利要求7所述的基于报文载荷分片、加密、重排序的安全通讯系统的实现方法,其特征在于,步骤(b)中所述的安全载荷转换模块(2)根据分片信息(Mill)将普通应用数据(M221)转换成安全载荷(M211)在网络上进行传输,具体包括以下步骤步骤1 安全载荷生成模块(21)根据分片信息(Mill)的加密解密算法库版本设置当前使用的加密解密算法库模块(24)的版本,并同时设置应用数据缓冲区偏移和分片索引为0;步骤2 以分片索引从分片信息(Mill)中读取当前分片的分片长度、算法标识、算法密钥、重排序偏移,并根据算法标识从加密解密算法库模块(24)的当前版本中获取相应的加密算法; 步骤3 以应用数据缓冲区偏移及当前分片的分片长度为输入,从应用数据缓冲区中读取当前分片的明文数据,以当前分片的算法密钥为输入,调用当前分片的加密算法对当前分片的明文数据进行加密,生成当前分片密文数据;步骤4 以当前分片密文数据和签名为输入,调用数字签名过程模块(23),生成新的签名,同时以重排序偏移及分片长度为输入,将当前分片密文数据存储到安全载荷缓冲区中;步骤5 重新计算新的应用数据缓冲区偏移,使分片索引增加1 ; 步骤6 判断当前应用数据缓冲区偏移是否小于最大载荷长度?是,则表示应用数据分片处理没有结束,跳转到步骤2处理下一个分片,否,则直接执行步骤7 ;步骤7:按分片索引从分片信息(Mill)中读出当前分片的重排序偏移,并根据重排序偏移及签名长度生成安全载荷(M211),并将签名存储到安全载荷缓冲区中;步骤(b)中所述的安全载荷转换模块(2)根据分片信息(Mill)将从网络上获取的安全载荷(M211)还原成普通应用数据(M221),具体步骤如下步骤1 安全载荷生成模块(21)根据分片信息(Mill)的加密解密算法库版本设置当前使用的加密解密算法库模块(24)的版本,并同时设置应用数据缓冲区偏移和分片索引为0;步骤2 以分片索引从分片信息(Mill)中读取当前分片的分片长度、算法标识、算法密钥、重排序偏移,并根据算法标识从加密解密算法库模块(24)的当前版本中获取相应的解密算法;步骤3 以当前分片重排序偏移及当前分片的分片长度为输入,从安全载荷缓冲区中读取当前分片密文数据;步骤4 以当前分片密文数据和签名为输入,调用数字签名过程模块(23),生成新的签名;以当前分片的算法密钥为输入,调用当前分片的解密算法对当前分片的密文数据进行解密,生成当前分片明文数据;以应用数据缓冲区偏移及分片长度为输入,将当前分片明文存储到应用数据缓冲区中;步骤5 重新计算新的应用数据缓冲区偏移,使分片索引增加1 ; 步骤6 判断当前应用数据缓冲区偏移是否小于最大载荷长度?是,则表示应用数据分片处理没有结束,跳转到步骤2处理下一个分片,否,则直接进行步骤7 ;步骤7:按分片索引从分片信息(Mill)中读取当前分片的重排序偏移,根据重排序偏移及签名长度从安全载荷缓冲区中读出签名并与步骤4中计算出的签名进行比对,如果相同,则表示已还原成普通应用数据(M221),如果不相同,则表示发生传输错误。
10.根据权利要求8或9所述的基于报文载荷分片、加密、重排序的安全通讯系统的实现方法,其特征在于所述的最大载荷长度=网络最大传输长度_头部长度_校验和长度-签名长度,且该最大载荷长度为最小加密长度的整数倍。
全文摘要
本发明公开了一种基于报文载荷分片、加密、重排序的安全通讯系统,其特征在于主要由用于输出分片信息(M111)的分片信息生成模块(1),以及将输入的普通应用数据(M221)转换成安全载荷(M211)和将接收到的安全载荷(M211)还原成普通应用数据(M221)的安全载荷转换模块(2)组成。本发明同时还公开了一种基于报文载荷分片、加密、重排序的安全通讯系统的实现方法。本发明通过采用的分片信息生成机制能完全能保证通讯双方生成唯一的、不可自制的分片信息,因此能确保通讯的绝对安全。
文档编号H04L12/56GK102223309SQ20111018920
公开日2011年10月19日 申请日期2011年7月7日 优先权日2011年7月7日
发明者谢海春 申请人:谢海春
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1