-mac消息认证ip核硬件装置的制造方法
【技术领域】
[0001] 本发明涉及网络数据安全领域,尤其涉及一种基于总线的h2-mac(哈希运算消息 认证码)消息认证IP(intellectual property,知识产权)核硬件装置。
【背景技术】
[0002] 随着互联网的发展与普及,人们的生活变得越来越方便,我们可以通过互联网一 键购买实体产品,与社会其他人通讯,在线转账等基本可以覆盖我们的日常生活,但是随之 而来的信息安全问题也不容小觑,每时每刻都会产生信息安全问题,导致个人、公司、国家 财产安全受到威胁,重要信息被截取篡改。网络安全的威胁主要来自两方面:一方面是被动 攻击,攻击者通过截取或者监听方式获取信息;另一方面是主动攻击,攻击者通过冒充、篡 改,重放等手段来改变信息,应对被动攻击,主要采用消息加密的方式,而对于主动攻击,我 们常用的方式是利用消息认证来验证消息的有效性和合法性。消息认证提供一种证实消息 来自可信源并且未被篡改的过程,在信息安全领域,应用广泛。
[0003]为了实现消息认证,最普遍的方法是利用哈希函数(如MD5、SHA-1等)的单向性,即 给定长度的消息,返回一个固定长度的独一无二的哈希值,作为"数字签名"。给定消息,产 生哈希值很容易,而给定哈希值,要得到消息却很难。
[0004] 哈希函数中,MD5(Message_Digest Algorithm 5,即信息-摘要算法5),可用于确 保信息传输完整一致。而SHA-l(Secure Hash Algorithm,即安全散列算法)会从2~64位元 的讯息中产生一串160位元的摘要,然后以MD5等讯息摘要算法为基础来加密。
[0005] 现有的HMAC(Hash_based Message Authentication Code,基于哈希算法的消息 认证码)可以实现这一过程,产生相应的认证摘要。Yasuda于2009年在ISC上参照HMAC提出 了一种新的MAC构造法一 H2-MAC。H2-MAC可以将HMAC中查询认证密钥(key)的次数从两次减 少到只查询一次,从而降低了密钥的管理成本,提高了认证速度。然而目前市面上H 2-MAC认 证装置大多采用HMAC-MD5或是HMAC-SHA-1这些单一的硬件装置来实现消息认证,不能灵 活地选择认证方式,同时认证速度比较慢。因此有必要提出一种基于总线的H 2-MAC消息认 证IP核硬件装置,装置内利用新的H2-MAC构造法,同时设置MD5运算模块和SHA-1运算模块, 实现可选择的H 2-MAC-MD5或H2-MAC-SHA-1认证,同时将其设计成能挂在总线上的IP核,提 高认证速度,减小密钥管理成本。
【发明内容】
[0006] 本发明所需要解决的技术问题是克服现有技术的不足,提供一种基于总线的H2-MAC消息认证IP核硬件装置,减少认证密钥的管理成本,实现消息的高速认证。
[0007] 所述基于总线的H2 - M A C消息认证IP核硬件装置,包括解析模块、M D 5密钥模块、 padding模块、SHA-1密钥模块、初始摘要寄存器、中间摘要寄存器、H2-MAC控制模块、MD5运 算模块、SHA-1运算模块和后封装模块;
[0008] 解析模块的输入端即整个装置的输入端,解析模块的输入端接收来自总线的数 据,解析模块的输出端同时连接padding(填充)模块、MD5密钥模块和SHA-1密钥模块的输入 端;padding模块和MD5密钥模块的输出端连接MD5运算模块的输入端,padding模块和SHA-1 密钥模块的输出端连接SHA-1运算模块的输入端;MD5运算模块接受H 2-MAC控制模块的控制 进行MD5运算;在第一轮运算中H2-MAC控制模块首先读取初始摘要寄存器的信息传递给MD5 运算模块,并将第一轮MD5运算模块的结果存入中间摘要寄存器,在随后的第二轮运算中由 H2-MAC控制模块读取中间摘要寄存器的信息传递给MD5运算模块,最后将MD5认证运算得到 的最终认证摘要传输至后封装模块;SHA-1运算模块接受H 2-MAC控制模块的控制进行SHA-1 运算,在第一轮运算中H2-MAC控制模块首先读取初始摘要寄存器的信息传递给SHA-1运算 模块,并将第一轮SHA-1运算模块的结果存入中间摘要寄存器,在随后的第二轮运算中由 H2-MAC控制模块读取中间摘要寄存器的信息传递给SHA-1运算模块,最后将SHA-1认证运算 得到的最终认证摘要传输至后封装模块;中间摘要寄存器的输入端同时连接MD5运算模块 和SHA-1运算模块,输出端连接H 2-MAC控制模块;H2-MAC控制模块的输入端同时连接初始摘 要寄存器和中间摘要寄存器,输出端同时连接MD5运算模块和SHA-1运算模块;后封装模块 的输入端同时连接MD5运算模块和SHA-1运算模块的输出端,后封装模块的输出端将含最终 认证摘要的数据包要发送至总线;各模块之间通过硬件数据线连接。
[0009] 所述解析模块包括顺序连接的总线入口模块、字段解析判断模块和三个缓存模 块;首先,解析模块通过总线入口模块接收总线数据,总线入口模块通过判断所接收总线数 据中的Control控制信息和Addr地址信息是否对应本IP核来判断本IP核是否被选中,若本 IP核没被选中则不进行处理;若本IP核被选中,则首先通过总线接入模块接收总线数据中 的Data数据,并解析Data数据中的经过上层加密模块的同步数据包,将解析得到的MD5认证 秘钥存入第一缓存模块,将解析得到的SHA-1认证密钥存入第三缓存模块;随后,由字段解 析判断模块接收总线入口模块处理过的同步数据包并进一步解析同步数据包中的解释域 字段,将解析得到的解释域字段存入第二缓存模块;最后,当同步数据包接收完毕后通过判 断所接收数据包的长度是否与数据长度帧的数值相对应来确认解析得到的数据报文是否 完整;若完整,则本次操作有效;若不完整,则本次操作无效,字段解析判断模块将清空缓存 并发出无效信号。
[0010] 本发明中从总线读取的同步数据包包括:起始字段;数据长度字(帧),解释域字 段,认证密钥字段,IPdnternet Protocol,因特网互联协议)数据报文字段,结束字段和数 据长度验证字段;其中解释域字段进一步包括:封装模式位、NAT位、协议类型位、技术类型 位、传输协议位、加密算法编号位、认证算法位、IV标识位。
[0011] 解析模块中的总线入口模块,用于提供与总线相匹配的接口。总线入口模块通过 Control总线接收相关经总线仲裁器(总线协议内的模块,用于选择总线挂接的IP核)与地 址译码器(总线协议内的模块)产生的控制信号,Addr地址总线接受总线主机发送的地址, Data数据总线接收总线传来的Data数据,控制整个H2-MAC消息认证IP核开始认证消息。
[0012] 解析模块中的字段解析判断模块,用于解析传入的同步数据包的解释域字段。具 体而言,字段解析判断模块首先通过总线接入模块接收总线数据中的Data数据,并解析 Data数据中的经过上层加密模块的同步数据包,将解析得到的MD5认证秘钥存入第一缓存 模块,将解析得到的SHA-1认证密钥存入第三缓存模块;随后解析同步数据包的起始字段、 数据长度字段、解释域字段、数据报文、结束字段、数据长度验证字段,将解析后的信息存入 第二缓存模块;最后,当同步数据包接收完毕后通过判断所接收数据包的长度是否与数据 长度帧的数值相对应来确认解析得到的数据报文是否完整,并将完整的数据报文发送至后 续的模块进行处理。
[0013] 所述MD5密钥模块,用于在采用MD5认证方式时接收解析模块缓存的MD5认证密钥, 在接收的MD5认证密钥后填充"0",直至填充后的MD5认证密钥长度为512bit,存储长度为 512b it的MD5认证密钥。
[0014] 所述padding模块,第一步先判断解析模块传递过来的数据报文的长度,若数据报 文的长度对512取模后余数为448则不对数据报文进行处理,否则先在数据报文后补一个 "1";第二步,判断补位后的数据报文长度对512取模后余数是否为448,若是则不继续对数 据报文进行处理,否则在第一步补入的"1"后继续补"〇",直至补位后的数据报文的长度对 512取模后余数为448;第三步,补长度字段,将原先的消息长度值增加512bit;第四步,将处 理后的数据报文按照所采用的认证方式送入相应的认证运算模块。
[0015]所述SHA-1密钥模块,用于在采用SHA-1认证方式时接收解析模块解析出的SHA-1 认证密钥,在接收的S H A -1认证密钥后填充" 0 ",直至填充后的S H A -1认证密钥长度为 512bit,存储长度为512bit的SHA-1认证密钥。
[0016]所述初始摘要寄存器,用于存储MD5运算模块和SHA-1运算的链接变量。
[0017]所述中间摘要寄存器,用于接收H2-MAC算法中第一轮MD5运算或者SHA-1运算所产 生的链接变量。
[0018] 所述H2_MAC控制模块,首先判断米用的是MD5运算还是SHA-1运算;若米用MD5运算 则首先判断MD5运算模块运算的轮数,若是第一轮MD5运算则查询初始摘要寄存器,读出链 接变量传送至MD5运算模块,在MD5运算模块完成第一轮MD5运算结束后改变MD5运算轮数为 第二轮,并控制MD5运算模块将第一轮输出的中间摘要进行512bit填充,即在得到的非 51213^(1281^125613^、3841^〇中间摘要后面添加"0",使其长度变为51213^ ;若是第二轮 MD5运算则先传输MD5运算的链接变量以及中间摘要寄存器中的中间摘要至MD5运算模