更新时间:07-29 (风)提供原创文章
摘要:为了保证用户能够放心的使用完整的合法软件,让软件制造商对软件的完整性承担责任,可以采用软件确认的技术解决。
本文首先对密码学及数字签名的一些基础知识进行了讨论,其中重点讨论了数字签名的实施以及数字签名的反病毒原理等。然后对RSA公开密钥密码体制及RSA数字签名的实现原理进行了分析。最后,在明确了软件确认的重要意义后,对它的实现进行了深入研究,给出系统实现的具体模块,包括素数生成模块、密钥生成模块、生成签名模块、鉴别签名模块和求Hash值模块,并对生成签名模块和鉴别签名模块进行编程实现。
关键词:数字签名 RSA算法 软件确认
研究意义、研究背景
计算机软件(程序)是计算机系统的核心,是贵重的系统资源,也是一种特殊的产品。它具有灵活易变的特性,即在开发或应用过程中可以随时修改使其增加新的功能,正是由于这种特性将给计算机系统安全带来严重的危害。特别自计算机病毒出现以来,软件成为病毒的攻击对象。病毒利用软件的特性,将自己寄生于系统或应用软件之上进行传染繁衍,严重地腐蚀了软件的完整性。因此,软件程序完整问题成为当前世人十分瞩目的热点。
软件完整性保护可分为两类:一是对软件供应商(或制造者)经由网络传送或磁盘人工分发的软件进行完整性保护,该保护称之为软件前期保护。在此期间软件发生的病毒感染,称为前期腐蚀。二是对已载入计算机系统的软件进行完整性保护,此保护称之为后期腐蚀。迄今为止,在保护策略上已对后期保护做了大量的研究工作,许多系统在设计和实现中已明确地提供了抗后期腐蚀的机制。但关于防御前期腐蚀的研究目前尚很欠缺,究其原因,主要是用户对购自供应商的软件或取自网络的共享软件过分地信赖。正是由于这种麻痹心理,将可能招致重大的损失。