RSA的数字认证的实现流程
其详细过程如下:
(1) 证书持有人A将公文数字证书原文信息用安全哈希算法SHA-1进行哈希运算,得一哈希值即数字摘要D’;(如图1所示)
(2) 证书持有人A用自己的私钥,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;(如图1所示)
(3) 鉴别中心B接受到数字签名DS后的文件,首先用接证书管理中心的鉴别公钥进行解密,取出得到消息摘要D’;(如图2所示) (4)将原文信息同样的安全哈希算法进行哈希,得到一个消息摘要D”;(如图3所示)
(5)将两个消息摘要D’和D”进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改。
这样就做到了敏感信息在数字签名的传输中不被篡改,说明这个签名的证书确实是证书持有人的,起了在对证件防伪系统中对持有证书人真实身份的鉴别。
图1 RSA私钥加密 :哈希和签名
图2 RSA公钥解密
图3 哈希过程
3 房产证公文数字签名系统总体设计
3.1系统功能图
房产证公文数字签名系统总共分为两大功能模块:房产证公文处理模块和信息安全处理模块,而信息安全处理模块主要由密钥管理模块,数字签名生成模块和签名验证模块构成,(如图4所示)
图 4 系统功能图
下面分别介绍各个模块的功能
3.2 房产证公文处理模块
在不同的房产证中相应的证件的输入信息不相同,公文处理模块采用证件输入界面,将信息存储为一种统一的数据格式公文文件就可以进行相同的安全处理,在验证时在将统一格式的数据公文进行信息还原就可以实现。因此系统可以方便的进行信息输入,其证件信息输入界面如图5所示。
图5 房产证信息输入界面
在公文处理模块中,监管中心需要把用户房屋产权者的相关内容输入这个数字文件中;
例如 :
证书持有人姓名; 张XXX
房屋产证编号; 0000354
房屋的类型; 商品房
房屋使用年限; 50年
房屋所在地址; XXX路XX街XXXX号
开发商名称; XXX房地产开发公司
物管单位; XXX物业管理公司
户主联系电话 02883961853
私密问题; XXXXXX
问题答案; XXXXXXX
当用户把这些都输入到相应的对话框中通过保存按钮就可以把这个证件保存在一个相应的文件中。这个只是房产证件原件对应的数字公文文件。
为了真正能对户主的利益安全考虑,在本设计中还加入了一个户主的秘密问题,以及秘密问题的答案这两项。通过这两项再结合数字签名就更能更好的辨别这个证件的真伪了,假如户主提问; 我高中最喜欢的一个老师是某某某?
户主自己回答的答案是ABC,如果遇到有人想假冒户主并私自使用户主的房产证的时候,在鉴别房产证的真伪的时候。他如果在秘密问题这个选项提问和原来的不一样或者回答的答案不一样在经过相同的方法处理后就和户主本身持都的房产证公文文件有很大的差别,由此断定这个数字证书是假冒的。
对输入信息的保存实现代码
void GenfczDlg::OnSave()
{
UpdateData();
CFileDialog save_uk_dlg(FALSE,"uk",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Public fcz files (*.txt)|*.txt");
if(save_uk_dlg.DoModal()==IDOK){
CString file_path=save_uk_dlg.GetPathName();
CFile fuk(file_path,CFile::modeCreate|CFile::modeWrite);
char endline[1]={';'};
fuk.Write((LPCTSTR)m_name,m_num.GetLength());
fuk.Write(endline,1);
fuk.Write((LPCTSTR)m_num,m_num.GetLength());
fuk.Write(endline,1);
fuk.Write((LPCTSTR)m_addr,m_addr.GetLength());
 
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/9/9
免费房产证信息数字签名的实现(四)由毕业论文网(www.huoyuandh.com)会员上传。