1.2 课题的研究内容
在当今社会房子是每一个家庭都要拥有的财产,现在房价在近几年是处于疯长的状态,房子会是一个家庭的重要财产。而买房就必须涉及到房屋的产权证书,只有有了房产证,法律才会对房产证的持证人起到保护财产安全的作用。目前的证件防伪系统在房产证上的防伪也不安全,它使用证书的印刷防伪工艺加上钢印印章的技术来实现对证件的防伪的,而现在的造假技术也是和传统的印刷防伪技术一起成长的,而且越是价值高的东西伪造工艺也越高,伪造出来的证件用肉眼是很难区分开来的。在这种情况下传统的印刷证件防伪技术存在着极大地不安全性,所以我们将传统的证件防伪进行数字化改造,让现在的数字签名技术用于证件的防伪与鉴别,来提高证件信息的安全性。在此将用C++编程语言来设计一个仿真房产证信息数字签名系统,使用基于RSA安全加密算法的数字签名方式来对经过数字化处理的房产证文件进行数字签名,用该系统来给持证人和证件管理机构分发自己相应的密钥,通过房产管理机构的公钥进行鉴别,提高了鉴别的可信度和公平性。
2相关理论知识
2.1公钥密码体制简介
公钥密码体制的概念是美国密码专家Diffie与Hellman提出的,其有两个原则:一,在加密算法与公钥都公开的前提下,加密后的密文必须安全;二,要求加密的人和拥有私钥的解密的人,他们的处理计算都应该比较简单,而对于没有密钥的人来说破译是非常困难的。公钥密码体制和PKI、数字签名等技术相结合,来保证网上数据传输的完整性、机密性、不可否认性和有效性,在网络的安全和信息的安全方面起了重大作用[3]。
2.2 数字签名
在公钥密码学中,密钥是一个密钥对,由公开密钥与私有密钥组成,而数字签名就是利用私钥对信息进行加密生成密文,接收者再用用公开的密钥对密文进行解密。因为从公钥不能推导出私钥,则公钥不会危害私钥的安全,公钥也就可以公开出去无需保密,而私钥则必须保密。当某人用私钥对消息加密时,就能用他的公钥正确的解密密文,也就能确定该消息是被某人签名的,因为用别人的公钥不能正确解密该加密过的消息,别人也不可能拥有该人的私钥而生成这个加密消息,所以能确定该消息是被某人签名的[4]。一种数字签名方案主要是由两个算法组成的,即签名算法和签名验证算法。签名者能够用一个私密的签名算法签名一个消息,而验证者就可以通过签名者公开的签名验证算法验证该签名。能实现数字签名的算法有很多,最典型的算法是RSA公钥密码算法[11]。RSA公钥密码体制是一种分组密码体制,它是建立在大整数分解的困难上的,是以一种推广的欧拉定理作为基础的[5]。
2.3 SHA1 安全哈希算法
SHA1安全哈希算法主要适用于数字签名标准里定义的一些数字签名算法。对于一个长度小于264位的消息,SHA1哈希算法能产生一个160位的消息摘要。当消息节接收到后,此摘要便能用来对数据的完整性进行验证。在传输的过程中,数据可能会产生一些变化,这样就会生成不一样的消息摘要。SHA1有以下特性:从消息摘要中不能得出原来的信息;两个不一样的消息也不会生成相同的消息摘要[10]。
2.4 RSA数字签名算法的实现
RSA数字签名算法包括两个算法:签名算法和签名验证算法。1.签名算法。先用SHA1算法对要签名的消息做散列计算,生成一个消息摘要。再对摘要做RSA计算,通过加密算法,用持证人的私钥来加密消息摘要,得到加密后的密文。2.签名验证算法。验证时需要两步:用签名者公开的密钥解密密文得到一个消息摘要,验证者在对原文消息进行相同的SHA1哈希算法计算得到一个新的消息摘要,对比两个消息摘要。若相同,则验证成功,确认签名文件为签名者的,反之,则验证失败[8]。 房产证信息数字签名的实现+RSA公钥+SHA哈希算法(2):http://www.youerw.com/jisuanji/lunwen_1658.html