论文部分内容阅读
随着信息数字化的快速发展以及计算机的广泛应用,人们越来越重视网络传输信息的安全问题。黑客利用主机系统的漏洞进入系统有多种目的,无论是获得系统控制权限、实施攻击活动,还是隐藏行踪、开辟后门等,改变目标主机上的文件是最便捷也是最有效的方法,如:放置自己的监听程序、替代某些关键文件、修改编辑可信文件等。文件完整性检查是保护目标主机上的文件安全的最有效方法之一。文件完整性检查最常用的方法是比较利用哈希算法计算出的哈希值,判断出文件的内容或属性是否被改动。目前采用的哈希算法主要有MD5、SHA-1等。但随着MD5、SHA-1等算法相继被破解,迫切需要寻找一种新的更为安全的算法来进行文件完整性检查。椭圆曲线数字签名算法常用于身份认证,但可以利用其进行文件完整性的检查。该算法中用于计算消息哈希值的是SHA-1算法,但是SHA-1算法已经被破解,其安全强度已受到质疑。密钥哈希算法HMAC相对于SHA-1算法增加了密钥,由于篡改者无法知道密钥,所以一定程度上HMAC算法较SHA-1算法要安全。本文用HMAC算法替代SHA-1算法,作为椭圆曲线数字签名算法中的计算消息哈希值的算法,并将改进后的算法称为密钥哈希消息认证码椭圆曲线数字签名算法(HMAC-ECDSA),然后将其应用到文件的完整性检查中。主要完成了以下几个工作:1)对椭圆曲线密码体制的研究现状及发展趋势进行了研究和分析。在对椭圆曲线密码体制和椭圆曲线离散对数问题的安全性分析基础上,重点研究了椭圆曲线数字签名算法的安全性。2)提出了HMAC-ECDSA算法,并对该算法的实现流程进行了详细阐述。然后,本文利用有较强数学功能、可设计友好界面且有很好兼容性的VC++6.0作为该算法的开发工具,设计密钥对的生成、签名文件、验证文件签名和计算HMAC等功能模块,来实现一个对文件签名并验证签名的软件。该软件不仅可以通过验证文件的签名来验证文件的完整性,而且还可以通过HMAC算法来验证文件的完整性。3)分别从密码学理论、程序设计和对攻击高抵抗性的分析证明三个方面,验证了HMAC-ECDSA算法比椭圆曲线数字签名算法的安全强度更高。从密码学理论分析,HMAC可以使用密钥且HMAC算法的验证只在当时有效;在程序设计中实现HMAC时,可以将嵌入的哈希算法作为一个独立的模块,根据安全强度的需求替换哈希算法模块;在对攻击高抵抗性的证明中,利用模运算对HMAC-ECDSA算法的安全强度进行了验证。总之,本文采用的HMAC-ECDSA算法具有更高的安全性,可以抵抗否认、伪造和生日攻击等。本文设计的功能模块的实现采用了VC++6.0,这使得功能模块有很好的可扩展性、可重用性、独立性等特点。所设计的基于HMC-ECDSA算法的文件签名和验证软件具有安全性高、操作简单等特点。