论文部分内容阅读
软件加密是保护软件开发者利益的必要手段,是软件开发过程的重要组成部分。如何保护软件开发者的利益,一直是软件加密领域的焦点问题。传统的软件加密方法主要依赖于加密算法的强度,隐蔽性差、可靠性低、算法设计漏洞颇多。本文以实现对计算机软件进行加密保护为目标,结合信息隐藏技术、密码学技术、反跟踪技术等思想来解决软件加密中的一些关键问题。研究涉及到了软件安全、信息隐藏、密码学、算法设计、Windows程序设计等多个领域的知识。
本文首先研究了现有的各种软件加密技术,且对软件破解技术也进行了研究。在此基础上,分析了现有软件加密算法出现漏洞的原因及破解者是如何利用已知信息来进行软件破解。针对出现的各种问题,提出了一种基于BMP图像信息隐藏、非对称密码体制、反跟踪等技术的软件加密方案。在该方案中,软件首先读取一个能确定计算机身份的字符串,其次将该字符串与用户信息(如USERNAME、E-MAIL 等)使用复杂的密码学算法进行必要的加密变换。再次将变换后所得到的加密字符串采用自己设计的加密算法分散写入BMP图像文件中,实现关键信息的隐藏。且对BMP授权图像进行必要的数字签名、完整性检验等。系统还对软件破解者常用的破解方法如静态分析、动态分析、反调试、反字符串等技术进行了分析与对抗,实现了其反跟踪技术,使得软件的加密能力更强。与传统的方法相比,该方法具有加密强度高、成本低、安全可靠等特点。