[发明专利]一种可抵御计时攻击的数据安全实现方法及设备有效
申请号: | 201310324179.1 | 申请日: | 2013-07-29 |
公开(公告)号: | CN103428204A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 孙鲁东 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 郑红娟;宋志强 |
地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 抵御 计时 攻击 数据 安全 实现 方法 设备 | ||
技术领域
本发明涉及现代密码技术,特别是一种可抵御计时攻击的数据安全实现方法和设备。
背景技术
现代密码技术可以为数据提供机密性保护和完整性保护。机密性保护可以保证数据的内容不会被未经授权的人员知道。完整性保护可以保证数据的读者读到的内容与数据的写者写入的内容完全一致(即未经篡改)。采用现代密码技术的安全协议通常会使用加密算法(例如高级加密标准AES,三重数据加密算法3DES等)来完成机密性保护,使用消息认证码(MAC,Message Authentication Code)算法(例如密钥相关的哈希运算消息认证码-消息摘要算法第五版HMAC-MD5,密钥相关的哈希运算消息认证码-安全哈希算法HMAC-SHA1等)来完成完整性保护。安全传输层协议(TLS,Transport Layer Security)是一种常见的安全协议,TLS中定义的算法套件大多是先做MAC、再做加密的MEE(MAC-Encode-Encrypt)类型的,即封装时,先对原始消息计算MAC值,然后把原始消息和MAC值串接在一起,加密,得到密文形式的TLS报文;解封装时,先对密文解密,得到原始消息和MAC值,然后重新计算MAC值,并与解密后得到的MAC值比较,如果这两个MAC值一致,则认为完整性验证通过,否则认为验证不通过。
密码块链接(CBC,Cipher Block Chaining)是分组加密算法的一种工作模式,工作于这种模式下时,输入加密算法的待加密数据的长度必须是该加密算法分组长度的整数倍,例如DES/3DES的分组长度为8字节,AES的分组长度为16字节。待加密的有效数据的长度是随机的,可能不满足分组长度整数倍这个条件,这种情况下需要给有效数据增加填充部分,使其总长度达到分组长度的整数倍。
TLS中定义的算法套件大部分是MEE类型的,更进一步说,大部分是MEE-CBC类型的。这里的CBC,表示加密算法工作在CBC模式。
TLS协议对数据加密的处理如图1所示:
先对原始消息计算MAC,然后把MAC值串接于原始消息后面,把原始消息+MAC值作为加密算法的有效输入数据,如果采用的是CBC模式的对称加密算法,则根据该加密算法的分组长度,计算所需的填充长度。举例来说,如果原始消息长度为100字节,MAC算法为HMAC-SHA(输出的MAC值长度为20字节),加密算法为CBC模式的AES(分组长度为16字节),则加密算法的有效输入数据长度为120字节,最接近加密算法分组长度整数倍的值是128字节,因此填充部分长度是8个字节,TLS协议中定义填充后的数据的最后一个字节叫padding_length,其记录的值为填充部分长度减1,且其它填充字节的值也记为与padding_length相同的值,因此,上述情况下,图1中填充数据部分的总长度是8个字节,每个字节都取值为7。
现有技术中采用MEE-CBC类型的算法套件会招致计时攻击。由于加密报文中填充部分未受到MAC保护,攻击者可以修改不受MAC保护的部分的填充数据,因此解封装者对加密报文进行解密验证时就会发现报文错误,从而向加封装者返回相应的信息,攻击者通过观察解封装者对被修改过的加密报文的反应及反应时间,从而降低对加密报文实施攻击的时间复杂度,这就称为计时攻击。
发明内容
有鉴于此,本发明提出了一种可抵御计时攻击的数据安全实现方法及设备,当使用MEE-CBC类型的算法套件时,本发明将填充数据串接于原始信息之后,使填充数据全部作为有效输入数据,计算原始消息与填充数据的MAC值,并将MAC值串接于填充数据之后,这样原始消息与填充数据全部受到完整性保护,攻击者无法对加密报文进行修改,从而确保解封装者对加密报文的处理总消耗相同的时间,有效抵御计时攻击。本发明提出的技术方案是:
一种可抵御计时攻击的数据安全实现方法,该方法适用于对原始消息先计算消息认证码MAC值再做加密,且加密算法采用密码分组链接模式的MEE-CBC类型的算法套件,包括以下步骤:
加封装者根据使用的MAC算法与对称加密算法计算原始消息的填充数据长度,所述原始消息、填充数据与MAC值三者的长度之和为对称加密算法分组长度的整数倍;
对原始消息进行数据填充,填充数据串接于原始消息后面,其长度为计算得到的填充长度;
把原始消息与填充数据共同作为有效输入数据,计算有效输入数据的MAC值,并将MAC值串接于填充数据后面;
加封装者对原始消息、填充数据与MAC值进行加密,并将其发送给解封装者。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310324179.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置