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

正文內(nèi)容

基于rsa的數(shù)字簽名的設(shè)計與實現(xiàn)42650-在線瀏覽

2025-08-05 16:39本頁面
  

【正文】 絡(luò)安全問題已引起了人類的高度重視。故此,網(wǎng)絡(luò)的安全措施應(yīng)是能全方位地針對各種不同的威脅和脆弱性,這樣才能確保網(wǎng)絡(luò)信息的保密性、完整性和可用性。現(xiàn)代密碼學(xué)已成為信息安全技術(shù)的核心,密碼學(xué)是以研究通信安全保密的學(xué)科,即研究對傳輸信息采用何種秘密的變換以防止第三者對信息的竊取。密碼編碼學(xué)主要研究對信息進(jìn)行交換,以保護(hù)信息在信道的傳遞過程中不被他人竊取、解密和利用的方法,而密碼分析學(xué)則與密碼編碼學(xué)相反,它主要研究如何分析和破譯密碼。密碼體制的分類有很多,其中一種是根據(jù)加密算法和解密算法所使用的密鑰是否相同,可以將密碼體制分為對稱密鑰密碼體制(單鑰密碼體制)和非對稱密鑰密碼體制(公鑰密碼體制),這兩種密碼體制各有自己的長處和短處,因此現(xiàn)在采用了兩種的混合體,如PGP。B收到密文信息后,用自己私鑰解密恢復(fù)出明文。RSA公鑰密碼體制到目前為止還是一種被認(rèn)可為安全的體制。它易于理解和操作,也十分流行。雖然自1978年提出以來,RSA的安全性一直未能得到理論上的證明,但它經(jīng)歷了各種攻擊,至今(2006年)未被完全攻破。VISA、MasterCard、IBM、Microsoft等公司協(xié)力制定的安全電子交易標(biāo)準(zhǔn)(Secure Electronic Transactions,SET)就采用了標(biāo)準(zhǔn)RSA算法,這使得RSA在我們的生活中幾乎無處不在。 本課題的研究意義隨著電子商務(wù)的發(fā)展,網(wǎng)絡(luò)上資金的電子交換日益頻繁,如何防止信息的偽造和欺騙成為非常重要的問題。為保護(hù)信息的安全,數(shù)字簽名應(yīng)運而生,它是現(xiàn)代密碼學(xué)主要研究的內(nèi)容之一。在公鑰密碼體制中,解密和加密密鑰不同,解密和加密可分離,通信雙方無須事先交換密鑰就可建立起保密通信,因此它較好地解決了傳統(tǒng)密碼體制在網(wǎng)絡(luò)通信中出現(xiàn)的問題。數(shù)字簽名可以提供數(shù)據(jù)完整性、真實性和不可否認(rèn)性。數(shù)字簽名技術(shù)在身份識別和認(rèn)證、數(shù)據(jù)完整性、抵賴等方面具有其它技術(shù)無法替代的作用,它在軍事、電子商務(wù)和電子政務(wù)等領(lǐng)域有著極廣泛的應(yīng)用。因此,基于RSA的數(shù)字簽名具有較強(qiáng)的研究性和實際應(yīng)用意義。RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價。RSA的缺點主要有:A)產(chǎn)生密鑰很麻煩,受到素數(shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。RSA算法的時間復(fù)雜性取決于它所設(shè)計的幾個基本運算的時間復(fù)雜性。生成隨機(jī)素數(shù)的時間在于完成對隨機(jī)大數(shù)的Fermat測試的時間,F(xiàn)ermat測試的時間復(fù)雜度為O((log2n)3),n所測試的整數(shù)。 RSA加密解密計算的時間主要是模冪運算的時間,即形式為xc mod n的函數(shù)的運算時間。[log2n]+1,所以模冪運算能在時間O((log2n)3)內(nèi)完成。RSA公開密鑰加密算法自20世紀(jì)70年代提出以來,已經(jīng)得到了廣泛認(rèn)可和應(yīng)用。RSA作為最重要的公開密鑰算法,在各領(lǐng)域的應(yīng)用數(shù)不勝數(shù)。RSA在軟件方面的應(yīng)用,主要集中在Internet上、加密連接、數(shù)字簽名和數(shù)字證書的核心算法廣泛使用RSA。2) 計算出p和q的乘積n 。4) 從公式ed ≡ 1 mod Φ(n)中求出解密密鑰d 。6) 公開公鑰,但不公開私鑰。8) 將密文C解密為明文P,計算方法為:P=C^d mod n。因此,任何人都可對明文進(jìn)行加密,但只有授權(quán)用戶(知道d)才可對密文解密。ISO/IEC 9796和ANSI 以及美國聯(lián)邦信息處理標(biāo)準(zhǔn)FIPS 1862已經(jīng)將RSA作為推薦的數(shù)字簽名標(biāo)準(zhǔn)算法之一。它是利用的RSA算法的加密和解密算法的原理進(jìn)行的一種數(shù)字簽名,實際上是通過一個哈希函數(shù)來實現(xiàn)的(本設(shè)計是通過的MD5算法)產(chǎn)生消息摘要MD來實現(xiàn)的所需加密的對象。安全的數(shù)字簽名使接收方可以得到保證:消息確實來自發(fā)送方。數(shù)字簽名通過認(rèn)證技術(shù)來辨認(rèn)真?zhèn)?。?shù)字簽名認(rèn)證機(jī)制提供了一種對數(shù)字簽名進(jìn)行鑒別的方法;身份認(rèn)證機(jī)制提供了辨別和確認(rèn)通信雙方真實身份的方法;公開密鑰證明機(jī)制則對密鑰進(jìn)行驗證。數(shù)據(jù)的安全性和真實性已成為網(wǎng)絡(luò)安全中至關(guān)重要的一部分。為了實現(xiàn)數(shù)字簽名的以上性質(zhì),它就應(yīng)滿足下列要求:1)簽名是可信的:任何人都可以驗證簽名的有效性;2)簽名是不可偽造的:除了合法的簽名者外,任何人偽造其簽名是困難的;3)簽名是不可復(fù)制的:對一個消息的簽名不能通過復(fù)制變?yōu)榱硪粋€消息的簽名??梢杂傻谌交蛑俨梅絹泶_認(rèn)雙方的信息,以做出仲裁。數(shù)字簽名的原理是:(發(fā)送方和接收方根據(jù)要求各自產(chǎn)生自己的一對公鑰和私鑰)1)被發(fā)送文件采用某種算法對原始消息進(jìn)行運算,得到一個固定長度的數(shù)字串,稱為消息摘要(MD),不同的消息得到的消息摘要各異,但是對相同的消息它的消息摘要卻是唯一的;2)發(fā)送方生成消息的消息摘要,用自己的私鑰對摘要進(jìn)行加密來形成發(fā)送方的數(shù)字簽名;3)這個數(shù)字簽名將作為消息的附件和消息一同用接收方的公鑰進(jìn)行加密,將加密后的密文一起發(fā)送給接收方;4)接收方首先把接收到的密文用自己的私鑰解密,得到原始消息和數(shù)字簽名,再用發(fā)送方的公鑰解密數(shù)字簽名,隨后用同樣的算法計算出消息摘要;5)如果計算出來的消息摘要和發(fā)送方發(fā)送給他的消息摘要(通過解密數(shù)字簽名得到的)是相同的,這樣接收方就能確認(rèn)數(shù)字簽名確實是發(fā)送方的,否則就認(rèn)為收到的消息是偽造的或是中途被篡改的。應(yīng)用MD5的單向性(即給定散列值,計算消息很難)和抗碰撞性(即給定消息M,要找到另一消息M’并滿足兩者的散列值很難),可以實現(xiàn)信息的完整性檢驗。(2)對MD作RSA加密算法:采用簽名者的私鑰加密消息摘要,得到加密后的字符串即數(shù)字簽名;2)驗證簽名算法 (RSA解密、對消息摘要計算和比較)驗證簽名算法包括兩步:RSA解密得簽名者的消息摘要,驗證者對原消息計算摘要,比較兩個消息摘要。(1)RSA解密: 簽名實際是加密的消息摘要,用以上所述的RSA解密方法采用簽名者的公鑰對這個加密的消息摘要解密,解密的結(jié)果應(yīng)為128位的消息摘要。驗證者比較解密得到的消息摘要和自己的消息摘要,如果兩者相同,則驗證成功,可以確認(rèn)消息的完整性及簽名確實為簽名者的;否則,驗證失敗,確認(rèn)簽名被冒充或是被篡改。MD5算法的典型應(yīng)用是對一段信息(message)產(chǎn)生信息摘要(MD),以防止被篡改。md5將整個文件當(dāng)作一個大文本信息,通過其不可逆的字符串變換算法,產(chǎn)生了這個唯一的md5信息摘要。如果再有一個第三方的認(rèn)證機(jī)構(gòu),用md5還可以防止文件作者的抵賴,這就是所謂的數(shù)字簽名應(yīng)用。比如在unix系統(tǒng)中用戶的密碼就是以md5(或其它類似的算法)經(jīng)加密后存儲在文件系統(tǒng)中。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。 MD5算法以任意長度的消息作為輸入,產(chǎn)生一個128比特消息散列值(或稱消息摘要)作為輸出。步驟2:附加消息長度值,將用64比特表示的初始消息(填充前)的長度(比特數(shù))附加在步驟1的結(jié)果后。緩存可以看成是4個32比特的寄存器(A,B,C,D)。3 RSA數(shù)字簽名的設(shè)計與實現(xiàn) RSA數(shù)字簽名的總體設(shè)計 RSA數(shù)字簽名所需實現(xiàn)的功能在本軟件中需要實現(xiàn)的功能有以下幾個:(1)生成RSA密鑰:公鑰ke=(e,n),私鑰kd=(d,n);(2)利用MD5算法計算出消息摘要MD;(3)數(shù)字簽名的實現(xiàn):用私鑰d對消息摘要進(jìn)行加密計算(RSA算法中的加密方法);(4)驗證數(shù)字簽名:用公鑰e對數(shù)字簽名進(jìn)行解密計算(RSA算法中的解密方法),得到的解密結(jié)果與(2)步計算出的消息摘要比較,如果兩個消息摘要一樣則簽名成功。本軟件的總體設(shè)計都是基于C++的開發(fā)環(huán)境,采用的是Microsoft Visual c++ 。對隨機(jī)數(shù)作素性檢測,若通過則為素數(shù);否則增加一個步長后再做素性檢測,直到找出素數(shù)。這個算法的理論依據(jù)是費爾馬小定理:如果m是一個素數(shù),且a不是m的倍數(shù),那么根據(jù)費爾馬小定理有:a m1=1 ( mod m)。 a m = a ( mod m) 219。選取a=2,則a一定不會是任何素數(shù)的倍數(shù)。密鑰的理論產(chǎn)生模塊流程圖如圖31所示:產(chǎn)生任意素數(shù)p和q計算n=p*q計算ou_la=(p1)(q1)選擇e作為公鑰計算d作為私鑰圖31 密鑰產(chǎn)生密鑰產(chǎn)生的部分代碼實現(xiàn): CString str。 //第二步 計算 n=p*q m_n = m_Prime1 * m_Prime2。 //第四步 選擇39。 SelectE()。 //顯示公鑰和私鑰 //(1) 公鑰 KU={e,n} ({%d, %d},m_e,m_n)。 //(2) 私鑰KU={d,n} ({%d, %d},m_d,m_n)。 // 選擇一個 39。 使 39。與 m_Undef互素//選擇e的函數(shù)的實現(xiàn)SelectE(){ CString str。i100000。 return。//輸入: X,Y if(XY)//如果X較小則交換兩個值 { X=X+Y。 X=XY。) { if(Y==0) break。 X=Y。 }if(X != 1) return false。//互素}// 計算D的函數(shù)的實現(xiàn)CalculateD(){ float d。 CString str。k100000。 d_dash = (long)((m_Undef*k+1)/m_e)。 return。 UpdateData(TRUE)。//
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1