freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

房產(chǎn)證信息數(shù)字簽名的實(shí)現(xiàn)—免費(fèi)計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-01-04 10:12 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 了在 對(duì)證件防偽系統(tǒng)中對(duì) 持有證書人真實(shí) 身 份的鑒別 。 MED S39。()ASKEDH a s hS H A 1D ’ 圖 1 RSA私鑰加密 :哈希和簽名 APKD S ( ( ) )AAP K S KD E MD ’E 圖 2 RSA公鑰解密 MH a s hS H A 1D ” 圖 3 哈希過程 `` 3 房產(chǎn)證 公文數(shù)字簽名 系統(tǒng)總體設(shè)計(jì) 房產(chǎn)證 公文數(shù)字簽名 系統(tǒng)總共分為兩大功能模塊:房產(chǎn)證 公文 處理模塊和信息安全處理模塊,而信息安全處理模塊主要由密鑰管理模塊,數(shù)字簽名生成模塊和簽名驗(yàn)證模塊構(gòu)成,(如圖 4所示) 房 產(chǎn) 證 處理 模 塊信 息 安 全 處 理 模 塊R S A 密 鑰 管 理 模 塊數(shù) 字 簽 名生 成 模 塊簽 名 驗(yàn)證 模 塊 圖 4 系統(tǒng)功能圖 下面分別介紹各個(gè)模塊的功能 房產(chǎn)證 公文 處理模塊 在不同的房產(chǎn)證中相應(yīng)的 證件的輸入信息不相同, 公文處理模塊 采用證件輸入界面,將信息存儲(chǔ)為一種統(tǒng)一的數(shù)據(jù)格式 公文文件 就可以進(jìn)行相同的安全處理,在驗(yàn)證時(shí)在將統(tǒng)一格式的數(shù)據(jù) 公文 進(jìn)行信息還原就可以實(shí)現(xiàn)。因此系統(tǒng)可以方便的進(jìn)行信息輸入,其證件信息輸入界面如圖 5 所示。 圖 5 房產(chǎn)證 信息 輸入界面 在 公文處理 模塊中,監(jiān)管中心需要把用戶房屋產(chǎn)權(quán) 者 的相關(guān)內(nèi)容輸入這個(gè)數(shù)字文件中; 例如 : 證書持有人 姓名; 張 XXX 房屋產(chǎn)證 編號(hào); 0000354 房屋的類型; 商品房 房屋使用年限; 50 年 房屋所在地址; XXX 路 XX街 XXXX 號(hào) 開發(fā)商名稱; XXX 房地產(chǎn)開發(fā)公司 `` 物管單位; XXX 物業(yè)管理公司 戶主聯(lián)系電話 02883961853 私密問題; XXXXXX 問題答案; XXXXXXX 當(dāng) 用戶把這些都輸入到相應(yīng)的對(duì)話框中通過保存按鈕 就可以把這個(gè)證件保存在一個(gè)相應(yīng)的文件中。這個(gè)只是房產(chǎn)證件 原件 對(duì)應(yīng)的數(shù)字公文文件 。 為了真正能對(duì)戶主的利益安全考慮,在本設(shè)計(jì)中還加入了一個(gè)戶主的秘密問題,以及秘密問題的答案這兩項(xiàng)。通過這兩項(xiàng)再結(jié)合數(shù)字簽名就更能更好的辨別這個(gè)證件的真?zhèn)瘟?,假如戶主提問? 我高中最喜歡的一個(gè)老師是某某某? 戶主自己回答的答案是 ABC,如果遇到有人想假冒戶主并私自使用戶主的房產(chǎn)證的時(shí)候,在鑒別房產(chǎn)證的真?zhèn)蔚臅r(shí)候。他如果在秘密問題這個(gè)選項(xiàng)提問和原來的不一樣或者回答的 答案不一樣在經(jīng)過相同的方法處理后就和戶主本身持都的房產(chǎn)證 公文文件 有很大的差別,由此斷定這個(gè)數(shù)字證書是假冒的。 對(duì)輸入信息的保存實(shí)現(xiàn)代碼 void GenfczDlg::OnSave() { UpdateData()。 CFileDialog save_uk_dlg(FALSE,uk,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,Public fcz files (*.txt)|*.txt)。 if(()==IDOK){ CString file_path=()。 CFile fuk(file_path,CFile::modeCreate|CFile::modeWrite)。 char endline[1]={39。39。}。 ((LPCTSTR)m_name,())。 (endline,1)。 ((LPCTSTR)m_num,())。 (endline,1)。 ((LPCTSTR)m_addr,())。 (endline,1)。 ((LPCTSTR)m_type,())。 (endline,1)。 ((LPCTSTR)m_year,())。 (endline,1)。 `` ((LPCTSTR)m_phone,())。 (endline,1)。 ((LPCTSTR)m_phone,())。 (endline,1)。 ((LPCTSTR)m_phone,())。 (endline,1)。 ()。 } UpdateData(FALSE)。 } 信息安全處理模塊 RSA 密鑰管理模塊 在這個(gè)密鑰生成模塊中,該模塊通過 程序中的相關(guān)加密算法來 隨機(jī)生成發(fā)放給用戶的私鑰和房產(chǎn)管理中心留存和私鑰成對(duì)的 公 鑰 文件 ,管理中心可以通過這個(gè)模塊的生成密鑰按鈕,讓計(jì)算機(jī)自動(dòng)生存公鑰和私鑰,生成相應(yīng)的密鑰以后 公鑰由管理中心統(tǒng)一管理,私鑰文件會(huì)發(fā)放給相應(yīng)的戶主。以便戶主在下一個(gè)模塊中通過自己的私鑰來對(duì)自己的數(shù)字房產(chǎn)證進(jìn)行相應(yīng)的簽名,達(dá)到不可抵賴的作用通過對(duì)房密鑰生成模塊的測(cè)試,通過該子系統(tǒng)中 RSA 加密算法能夠得出簽名需要用到的簽名私鑰和管理中心用來驗(yàn)證簽名后 的證件的真?zhèn)蔚墓€。 圖 6 密鑰管理模塊圖 RSA 密碼系統(tǒng)的安全性依賴于大數(shù)分解的難度,一般建議用戶選擇的素?cái)?shù) p和 q 至少為 100 位,則 n=pq 是至少為 200 位的十進(jìn)制數(shù)。因此實(shí)現(xiàn) RSA 算法有必要定義大數(shù)的數(shù)據(jù)結(jié)構(gòu)如圖 6 所示。 密鑰生成,加密和解密涉及到一些大數(shù)的基本運(yùn)算。定義大數(shù)的基本運(yùn)算庫,包括加、減、乘、除、取模運(yùn)算等,其中最重要的模乘運(yùn)算和模冪運(yùn)算。 模冪算法是加密解密的核心算法。計(jì)算模冪的一種有效算法是“平方 乘”方法,通過對(duì)指數(shù)的二進(jìn)制化來實(shí)現(xiàn)。大數(shù)數(shù)據(jù)的加,減,乘,除,模,模冪等由 CBigInt 這個(gè)類來完成,其定義如下: `` 1. CBigInt 類的定義 class CBigInt { public: //大數(shù)在 0x100000000 進(jìn)制下的長(zhǎng)度 unsigned m_nLength。 //用數(shù)組記錄大數(shù)在 0x100000000 進(jìn)制下每一位的值 unsigned long m_ulValue[BI_MAXLEN]。 CBigInt()。 ~CBigInt()。 /***************************************************************** 基本操作與運(yùn)算 Mov,賦值運(yùn)算,可賦值為大數(shù)或普通整數(shù),可重載為運(yùn)算符 “=” Cmp,比較運(yùn)算,可重載為運(yùn)算符 “==” 、 “!=” 、 “=” 、 “=” 等 Add,加,求大數(shù)與大數(shù)或大數(shù)與普通整數(shù)的和,可重載為運(yùn)算符 “+” Sub,減,求大數(shù)與大數(shù)或大數(shù)與普通整數(shù)的差,可重載為運(yùn)算符 “ ” Mul,乘,求大數(shù)與大數(shù)或大數(shù)與普通整數(shù)的積,可重載為運(yùn)算符 “*” Div,除,求大數(shù)與大數(shù)或大數(shù)與普通整數(shù)的商,可重載為運(yùn)算符 “/” Mod,模,求大數(shù)與大數(shù)或大數(shù)與普通整數(shù) 的模,可重載為運(yùn)算符 “%” *****************************************************************/ void Mov(unsigned __int64 A)。 void Mov(CBigIntamp。 A)。 CBigInt Add(CBigIntamp。 A)。 CBigInt Sub(CBigIntamp。 A)。 CBigInt Mul(CBigIntamp。 A)。 CBigInt Div(CBigIntamp。 A)。 CBigInt Mod(CBigIntamp。 A)。 CBigInt Add(unsigned long A)。 CBigInt Sub(unsigned long A)。 CBigInt Mul(unsigned long A)。 CBigInt Div(unsigned long A)。 unsigned long Mod(unsigned long A)。 int Cmp(CBigIntamp。 A)。 /***************************************************************** 輸入輸出 Get,從字符串按 10 進(jìn)制或 16 進(jìn)制格式輸入到大數(shù) Put,將大數(shù)按 10 進(jìn)制或 16 進(jìn)制格式輸出到字符串 *****************************************************************/ void Get(CStringamp。 str, unsigned int system=HEX)。 void Put(CStringamp。 str, unsigned int system=HEX)。 int Rab()。//米勒 羅賓算法 CBigInt Euc(CBigIntamp。 A)。 //歐幾里德算法求解同余方程 CBigInt RsaTrans(CBigIntamp。 A, CBigIntamp。 B)。 //反復(fù)平方算法進(jìn)行冪模運(yùn)算 void GetPrime(int bits)。 //產(chǎn)生指定長(zhǎng)度的隨機(jī)大素?cái)?shù) CBigInt Gcd(CBigIntamp。 A)。 }。 `` 2. RSA 相關(guān) 算法實(shí)現(xiàn) RSA 算法實(shí)現(xiàn)比較重要的是素性檢測(cè),大隨機(jī)數(shù)的產(chǎn)生,求逆運(yùn)算等,分別由下面幾個(gè)函數(shù)來完成 ,下面給出 拉賓米勒算法 。 int CBigInt::Rab() { unsigned i,j,pass。 for(i=0。i550。i++){if(Mod(PrimeTable[i])==0)return 0。} CBigInt S,A,I,K。 (*this)。 [0]。 for(i=0。i5。i++) { pass=0。 (rand()*rand())。 (K)。 while(([0]amp。1)==0) { for(j=0。j。j++) { [j]=[j]1。 if([j+1]amp。1)[j]=[j]|0x80000000。 } if([]==0)。 ((S,*this))。 if((K)==0){pass=1。break。} } if((==1)amp。amp。([0]==1))pass=1。 if(pass==0)return 0。 } return 1。 } 簽名生成模塊 在 簽名產(chǎn)生 模塊中,戶主通過管理中心發(fā)放給他的私鑰,以及他剛剛通過數(shù)字證書生成模塊得到的房產(chǎn)證文件,然后將這兩個(gè)文件分別導(dǎo) 入 模塊中,通過生成簽名按鈕及可以得到生成后的數(shù)字簽名。這個(gè)簽名由戶主自己保存。密 鑰生成過程時(shí)間主要是生成隨機(jī)素?cái)?shù)的時(shí)間及計(jì)算公鑰和私鑰的模乘法的時(shí)間。如圖 7所示 `` 圖 7 簽名生成模塊圖 在數(shù)字簽名過程中要對(duì)文件進(jìn)行簽名首先得用對(duì)要簽名的文件進(jìn)行數(shù)字摘要處理。在常見的生成數(shù)字摘要的方法有 MD5 和 SHA1,在本設(shè)計(jì)中對(duì)文件的消息摘要我們是通過 SHA1安全哈希算法來實(shí)現(xiàn)的。下面簡(jiǎn)要的介紹安全哈希算法的具體實(shí)現(xiàn)方法和代碼 : SHA1安全哈希算法的實(shí)現(xiàn) typedef struct { /*SHA結(jié)構(gòu)體定義 */ unsigned long state[5]。 unsigned long count[2]。 unsigned char buffer[64]。 } SHA1_CTX。 void SHA1Transform(unsigned long state[5], unsigned char buffer[64])。/*傳輸函數(shù),用于數(shù)據(jù)的轉(zhuǎn)換和傳、送 */ void SHA1Init(SHA1_CTX* context)。 /*初始化,對(duì)初始條件進(jìn)行定義和說明 */ void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len)。 /* 中間轉(zhuǎn)換函數(shù) */ void SHA1Final(unsigned char digest[20], SHA1_CTX* context)。 /* 得到最后的哈希表 */ define rol(value, bits) (((value) (bits)) | ((value) (32 (bits)))) /* blk0() and blk() perform the initial expand. */ /* I got the idea of expanding during the round function fro
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1