- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CPU序列号的电子文档加密方法.doc
基于CPU序列号的电子文档加密方法
【摘要】
研究提供计算机的CPU序列号,用户输入的加密密码,通过CPU序列号和用户密码来对电子文档进行二次加密保存。打开文档时,电子文档获取本地计算机的CPU序列号和用户密码,利用同样的方式对文档进行检测,限制了电子文档只能在本地计算机上使用,有效的防止了电子文档的非法访问。
【关键词】
CPU序列号;电子文档;加密;非法访问
1引言
电子文档的普及和应用大大提高了企业单位的工作效率,但是在这同时,也产生了许多电子数据,由于电子数据的可复制性、和密码的不安全性,给一些不法分子带来的可乘之机,这个问题也是企事业单位一直以来遇到的最棘手的难题。现阶段电子文档的安全性保存方法大多都是依靠对文档的加密技术来完成的,而其中加密算法的难易程度决定了其文档的安全程度。比如说微软公司的word文档和winrar压缩文件加密,都仅仅是利用加密技术来对文档进行安全性控制,没有其他的安全保障。不管是多复杂的密码算法也都可以被破解,当密码一旦被非法人员破解或是盗用后,其资料就很容易被窃取盗用。
本文研究和提供了一种有效的保护电子文档的加密方法,通过获取计算机CPU的序列号来生成加密密码,对电子文档进行加密保护。加密后的电子文档只能在该文档创建的机器上通过输入用户密码来访问文档,有效的防止了电子文档的非法访问
2算法的实现
2.1算法原理
CPU序列号是CPU出厂时厂家为了区别其他产品自带的、全世界唯一的、只读的一串CPU编码。它由96位数字组成。高32位是CPU ID,用来识别CPU类型。低64位每个处理器都不同,唯一地代表了该处理器。CPU序列号是在制造CPU的时候,由厂家置入到CPU内部的。由于CPU外在的所有标记,都是可以人为改动的,而CPUID却是终身不变的,我们只能用软件读出ID号,却无法改变ID号。
利用CPU加密技术,通常是利用CPU序列号的唯一性和只读性的特征。利用DOS命令“wmic cpu get name,processorID”可以显示出当前使用计算机的CPU序列号和处理器型号出来如图1。该序列号是随机产生的,且具有唯一性。也就是因为这个原因许多软件的测试版本利用该项技术,使测试版在规定期限内才能使用,一旦过了限定期限就不能再使用,即使将该软件重新安装也无济于事。另外,有些共享软件的注册码也是通过这个序列号来生成的。同样的方法我们也可以运用到软件的防拷贝技术。
图1
2.2 算法实现步骤
为了把电子文档的安全级别提高,我们采用CPU序列号和软件加密算法结合的方式对文档进行加密。首先需要获取到CPU的序列号,其次,为了安全起见我们还需选择一种加密算法,这里我们使用DES加密算法。在保存文档时将文档通过用户设定的密码再加上CPU序列号利用DES加密算法对文档进加密存放,当用户需要打开读取文档时,用户输入自己设定的密码以及系统获取当前CPU上的系列号,进行解密。若加密时使用的CPU序列号和打开文档时机器的CPU序列号不一致时,说明文档密码非法,不能打开文件。这一步当然是由应用程序秘密运行,用户根本不知道,从而达到软件的二次加密目的,同时也隐藏了文档的合法性识别过程,使破译者无从下手。
利用这种方法,我们就可以利用获取到的计算机的CPU序列号,根据不同需求对电子文档进行加密保存。由于计算机CPU列号的唯一性,用非法途径得到电子文档的黑客,就算知道了用户设定的密码,在其他设备上也是打开不了文档的。
2.3算法实现
本案例实现是利用内嵌汇编语言的Visual C++程序代码进行编程,当然在其他编程软件中只需稍加修改便可使用。具体实现方法如下:
(1)获取厂商的ID信息(Vendor信息),具体代码如下:
__asm{
xor eax,eax
cpuid
mov dword ptr vendor_id,ebx
mov dword ptr vendor_id[+4],edx
mov dword ptr vendor_id[+8],ecx
}
VendorID.Format(%s,vendor_id);
其中xor eax,eax 命令使得eax置0,取Vendor信息,cpuid是取cpu id指令,可在Ring3级使用,获取的Vendor信息保留在CString类型的VendorID变量中。
(2)获取CPU序列号
__asm{
mov eax,01h
xor edx,edx
cupid
mov s1,edx
mov s2,eax
}
CPUID1.Format(%08X%08X,s1
文档评论(0)