基于ipsec协议的隧道模式esp硬件封装装置的制造方法_3

文档序号:9238012阅读:来源:国知局
、初始化向量IV。根据解释域字段判断使用的加密模块,并从相应加密模块中读出加密后的数据部分,其中加密数据包括:有效载荷、ESP尾(填充字段11填充项长度11下一个头),将读取的加密数据发送到认证模块。
[0030]认证模块,用于对数据进行身份验证和消息认证,通过接收数据组装模块的解释域认证算法字段,判断使用的认证算法为MD5或者SHAl算法,接收相关认证算法的密钥并存储。如果通过MD5算法认证,通过各数据段长度计算,计算出认证部分(ESP头+加密部分数据)的长度,给认证部分填充数据,使其位长度与448在模512下同余,即使填充后的认证部分长度比512位的整数倍少64位。然后将填充前认证部分长度以64bit形式放在填充后的认证部分后面。将填充后的认证部分、密钥进行MD5验证算法,最后得到128位消息认证字段。如果通过SHAl算法,通过各数据段长度计算,计算出认证部分(ESP头+加密部分数据)的长度,给认证部分填充数据,使其位长度与448在模512下同余,即使填充后的认证部分长度比512位的整数倍少64位,然后将填充前认证部分长度以64bit形式放在填充后的认证部分后面,与MD5不同的是填充64位的未填充认证部分长度的高32位在前。将填充好的认证部分与密钥进行SHAl验证算法,生成160位消息认证字段。将生成的消息认证字段放于ESP尾后,计算整个IPSEC包长度,修改IP头的总长度字段,将修改好的IP头发送到IP首部校验和模块(如果是IPV4头)。
[0031]IP首部校验和模块,用于计算外部新IP头的首部校验和,并修改外部新IP头的首部校验和字段,修改好后将IP头送回认证模块。
[0032]认证模块最后按照标准IPSEC协议格式(新IP头I IUDP (若采用NAT) | |加密部分Iesp hmac)将封装好的数据包发送到下层分片。
[0033]图2显示了本发明隧道模式ESP硬件封装装置中数据解析模块的一种具体结构。如图2所示,该数据解析模块包括:字段解析判断模块、关键字段存储模块、数据缓存模块1、数据缓存模块2、数据缓存模块3。
[0034]字段解析判断模块,用于解析同步字段、数据总长度字段、解释域字段、PMTU字段、将解析的各字段代表的数据长度保存在关键字段存储模块中,例如如果解析到解释域字段里面的加密算法表示128位的AES加密模式,则将相关的密钥的长度“4*32bit” (这里存入密钥的长度,而并非密钥本身)存入关键字段存储模块中;并通过关键字段判断,将后续内容分别存储在数据缓存模块1、数据缓存模块2、数据缓存模块3,例如将解释域字、目的地址、安全索引(SPI)、序列号(SN)、UDP源/目的端口(若采用NAT穿越)、IP数据报文中IP头帧写入数据缓存模块2,若判断采用AES加密,则将起始位、数据包长度、初始化向量IV、密钥、IP数据报文、结束位、长度验证写入数据缓存模块I中。
[0035]关键字段存储模块用于存储字段解析判断模块解析出的各数据帧的长度。
[0036]数据缓存模块I用于缓存AES加密所需要数据包括:起始位、数据包长度、初始化向量IV、密钥、IP数据报文、结束位、长度验证。
[0037]数据缓存模块2用于缓存解释域字、目的地址、安全索引(SPI)、序列号(SN)、UDP源/目的端口(若采用NAT)、IP数据报文中IP头帧。
[0038]数据缓存模块3用于缓存DES或3DES加密所需数据,包括:起始位、数据包长度、初始化向量IV、密钥、IP数据报文、结束位、长度验证。
[0039]对数据解析处理完后,数据解析模块将相应数据分别发送到AES加密模块、数据暂存模块或DES&3DES加密模块。
[0040]图3显示了数据解析模块从SA安全联盟所接收的数据格式。如图3所示,数据解析模块从SA安全联盟接收的数据格式包括:同步数据位、解释域字、PMTU位、目的IP地址、ESP-SA安全参数索引(SPI)、ESP-SA序列号(SN)、ESP-SA初始化向量(IV)、ESP-SA加密算法密钥、ESP-SA认证算法密钥、新UDP头(若采用NAT)、IP数据报文(V4或者V6)、结束数据位。其中,同步数据位包括:同步字段和数据包总长度字段;同步字段用于标识新的SA数据包发送过来,数据包总长度字段用于标识该SA数据包所有数据总长度。解释域字包括:封装模式位、NAT位、协议类型位、技术类型位、传输协议位、加密算法编号位、认证算法编号位、IV标识位。结束数据位包括:结束字段和长度验证字段。结束字段用于标识该SA数据包已经传输完毕,数据长度验证字段用于验证该数据包在长度上是否正确接收。
[0041]图4显示了从数据解析模块发送到AES加密模块或DES&3DES加密模块的数据格式,即加密模块接收数据格式。如图4所示,加密模块接收数据格式中包括:起始位、初始化向量IV位、ESP加密算法密钥位、IP数据报文位、两个填充位、以及结束位。其中,起始位包括:起始位字段、加/解密字段、加密类型字段、加密模式字段、数据包总长度字段;起始位字段用于标识是否新的一个包开始传送到加密模块;加/解密字段用于表征处理加密还是解密(本发明只涉及加密);加密类型字段,用于标识加密的方式,包括:①AES128位加密②AES192位加密③AES256位加密④DES加密⑤3DES加密;加密模式字段用于表征两种模式:①ECB加密模式②CBC加密模式;数据包总长度字段用于表征加密模块读到的该包数据的总长度。填充位包括:填充字段、填充长度字段、下一个头字段;填充字段用于填充IP数据报文使其符合相应加密方式要求的格式长度;填充长度字段用于表征填充字段的长度,这里用字节作为单位;下一个头字段,在隧道模式下其值为4。结束位包括:结束位字段和长度验证字段;结束位字段用于表征该数据包已经发送完成;长度验证字段用于验证这个数据包是否正确发送相应长度数据,若正确,该报保留,若不正确,该包丢弃。
[0042]图5显示了从数据解析模块发送到数据暂存模块的数据格式,即数据暂存模块接收数据格式。如图5所示,数据暂存模块接收数据格式中包括:起始位、解释域字位、目的地址位、安全参数索引(SPI)、序列号(SN)位、初始化向量(IV)位、认证算法密钥位、新UDP头位、原始IP头、结束位。其中,起始位包括:起始位字段和数据包总长度字段;起始位字段为协商构建,表征新一个数据包开始传送;数据包总长度字段用于表征此数据包总长度。解释域字位包括:封装模式位、NAT位、协议类型位、技术类型位、传输协议位、加密算法编号位、认证算法编号位、IV标识位。结束位包括:结束位字段和长度验证字段。
[0043]图6显示了本发明隧道模式ESP硬件封装装置中数据组装模块的一种具体结构。如图6所示,该数据组装模块包括:排序重组模块、数据存储模块、缓存模块。排序重组模块用于接收数据,并将次序错误的数据帧保存到数据存储模块中,最后将数据组装成标准格式(外部IP新头11新UDP头(如果使用NAT) 11认证算法密钥IIESP首部11原始ip头
ITCP首部11TCP数据部分11ESP尾部)写入缓存模块中。例如:由数据暂存模块发送的数据帧将以:安全参数索引(SPi) 11序列号(SN) 11初始化向量(IV) 11认证算法密钥I新UDP头11外部新IP头的先后顺序进入排序重组模块,通过排序重组模块将数据次序变为外部新IP头11新UDP头11认证算法密钥I I安全参数索引(SPi) 11序列号(SN) 11初始化向量(IV)的顺序输出到缓存模块中,然后读出AES加密模块(若本次加密为AES加密)或DES&3DES加密模块(若本次加密为DES或3DES加密)加密的数据(原始IP头| | TCP首部Itcp数据
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1