论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

房产证信息数字签名的实现(论文+程序)

3 房产证公文数字签名系统总体设计

3.1系统功能图

copyright paper51.com

房产证公文数字签名系统总共分为两大功能模块:房产证公文处理模块和信息安全处理模块,而信息安全处理模块主要由密钥管理模块,数字签名生成模块和签名验证模块构成,(如图4所示)

内容来自www.paper51.com

copyright paper51.com

图 4 系统功能图 http://www.paper51.com

下面分别介绍各个模块的功能

http://www.paper51.com

3.2 房产证公文处理模块

copyright paper51.com

在不同的房产证中相应的证件的输入信息不相同,公文处理模块采用证件输入界面,将信息存储为一种统一的数据格式公文文件就可以进行相同的安全处理,在验证时在将统一格式的数据公文进行信息还原就可以实现。因此系统可以方便的进行信息输入,其证件信息输入界面如图5所示。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

图5 房产证信息输入界面

http://www.paper51.com

在公文处理模块中,监管中心需要把用户房屋产权者的相关内容输入这个数字文件中;

内容来自www.paper51.com

例如 :   

内容来自论文无忧网 www.paper51.com

证书持有人姓名;         张XXX

paper51.com

房屋产证编号;           0000354

http://www.paper51.com

房屋的类型;             商品房 copyright paper51.com

房屋使用年限;           50年

copyright paper51.com

房屋所在地址;           XXX路XX街XXXX号

copyright paper51.com

开发商名称;             XXX房地产开发公司 http://www.paper51.com

物管单位;                XXX物业管理公司 http://www.paper51.com

户主联系电话             02883961853

http://www.paper51.com

私密问题;                     XXXXXX

内容来自论文无忧网 www.paper51.com

问题答案;                     XXXXXXX paper51.com

当用户把这些都输入到相应的对话框中通过保存按钮就可以把这个证件保存在一个相应的文件中。这个只是房产证件原件对应的数字公文文件。

http://www.paper51.com

为了真正能对户主的利益安全考虑,在本设计中还加入了一个户主的秘密问题,以及秘密问题的答案这两项。通过这两项再结合数字签名就更能更好的辨别这个证件的真伪了,假如户主提问;我高中最喜欢的一个老师是某某某? 内容来自论文无忧网 www.paper51.com

户主自己回答的答案是ABC,如果遇到有人想假冒户主并私自使用户主的房产证的时候,在鉴别房产证的真伪的时候。他如果在秘密问题这个选项提问和原来的不一样或者回答的答案不一样在经过相同的方法处理后就和户主本身持都的房产证公文文件有很大的差别,由此断定这个数字证书是假冒的。 copyright paper51.com

对输入信息的保存实现代码

内容来自www.paper51.com

voidGenfczDlg::OnSave() copyright paper51.com

{ 内容来自论文无忧网 www.paper51.com

  UpdateData(); 内容来自www.paper51.com

  CFileDialog save_uk_dlg(FALSE,"uk",NULL,OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT,"Public fcz files (*.txt)|*.txt"); 内容来自论文无忧网 www.paper51.com

  if(save_uk_dlg.DoModal()==IDOK){ copyright paper51.com

      CStringfile_path=save_uk_dlg.GetPathName();

http://www.paper51.com

      CFilefuk(file_path,CFile::modeCreate|CFile::modeWrite); paper51.com

      char endline[1]={';'}; http://www.paper51.com

       fuk.Write((LPCTSTR)m_name,m_num.GetLength()); copyright paper51.com

      fuk.Write(endline,1); paper51.com

      fuk.Write((LPCTSTR)m_num,m_num.GetLength()); copyright paper51.com

      fuk.Write(endline,1);

内容来自www.paper51.com

      fuk.Write((LPCTSTR)m_addr,m_addr.GetLength()); 内容来自www.paper51.com

      fuk.Write(endline,1); copyright paper51.com

      fuk.Write((LPCTSTR)m_type,m_type.GetLength()); paper51.com

      fuk.Write(endline,1);

paper51.com

      fuk.Write((LPCTSTR)m_year,m_year.GetLength()); copyright paper51.com

      fuk.Write(endline,1); 内容来自论文无忧网 www.paper51.com

      fuk.Write((LPCTSTR)m_phone,m_phone.GetLength());

内容来自www.paper51.com

      fuk.Write(endline,1); 内容来自www.paper51.com

      fuk.Write((LPCTSTR)m_phone,m_simi.GetLength()); paper51.com

      fuk.Write(endline,1);

内容来自www.paper51.com

fuk.Write((LPCTSTR)m_phone,m_daan.GetLength()); 内容来自论文无忧网 www.paper51.com

      fuk.Write(endline,1);

http://www.paper51.com

      fuk.Close(); copyright paper51.com

  }

内容来自论文无忧网 www.paper51.com

UpdateData(FALSE); http://www.paper51.com

}

内容来自www.paper51.com

3.3 信息安全处理模块

copyright paper51.com

3.3.1 RSA 密钥管理模块 内容来自www.paper51.com

在这个密钥生成模块中,该模块通过程序中的相关加密算法来随机生成发放给用户的私钥和房产管理中心留存和私钥成对的公钥文件,管理中心可以通过这个模块的生成密钥按钮,让计算机自动生存公钥和私钥,生成相应的密钥以后公钥由管理中心统一管理,私钥文件会发放给相应的户主。以便户主在下一个模块中通过自己的私钥来对自己的数字房产证进行相应的签名,达到不可抵赖的作用通过对房密钥生成模块的测试,通过该子系统中RSA加密算法能够得出签名需要用到的签名私钥和管理中心用来验证签名后的证件的真伪的公钥。

copyright paper51.com

copyright paper51.com

   图6  密钥管理模块图 paper51.com

RSA密码系统的安全性依赖于大数分解的难度,一般建议用户选择的素数p和q至少为100位,则n=pq是至少为200位的十进制数。因此实现RSA算法有必要定义大数的数据结构如图6所示。 内容来自www.paper51.com

密钥生成,加密和解密涉及到一些大数的基本运算。定义大数的基本运算库,包括加、减、乘、除、取模运算等,其中最重要的模乘运算和模幂运算。 内容来自论文无忧网 www.paper51.com

模幂算法是加密解密的核心算法。计算模幂的一种有效算法是“平方-乘”方法,通过对指数的二进制化来实现。大数数据的加,减,乘,除,模,模幂等由CBigInt这个类来完成,其定义如下: copyright paper51.com

1.CBigInt类的定义

copyright paper51.com

class CBigInt 内容来自www.paper51.com

{

内容来自论文无忧网 www.paper51.com

public:  //大数在0x100000000进制下的长度    paper51.com

    unsigned m_nLength; //用数组记录大数在0x100000000进制下每一位的值 内容来自论文无忧网 www.paper51.com

    unsigned longm_ulValue[BI_MAXLEN]; 内容来自论文无忧网 www.paper51.com

    CBigInt(); http://www.paper51.com

    ~CBigInt();

http://www.paper51.com

/***************************************************************** paper51.com

------分隔线----------------------------
联系方式