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

正文內(nèi)容

畢業(yè)設(shè)計-基于rsa的數(shù)字簽名的設(shè)計與實現(xiàn)(參考版)

2024-12-06 15:50本頁面
  

【正文】 } //顯示結(jié)果 (message)。d39。 d=fmod(data*d,n)。139。 d=fmod(d*d,n)。i=0。d=1。中 data=result[j]。j++) { //從 result 中讀取字符放入 39。 for(int j=0。 GetOnlyProperBits(bits)。 //用于存儲解密信息 char message[200]。 long i,k。 double data。 char bits[100]。 驗證數(shù)字簽名 主要 實現(xiàn) 過程的代碼 如下: int NO_BITS。 } 驗證數(shù)字簽名的設(shè)計與實現(xiàn) 圖 34 驗證數(shù)字簽名流程 驗證數(shù)字簽名的正確與成功性,主要是比較得到的兩 次 消息摘要是否一樣,得到數(shù)字簽名 用公鑰 e 解密數(shù)字簽名 得到消息摘要(解密信息) 開始 結(jié)束 第 16 頁 共 23 頁 如果驗證方用簽名方的公鑰解密得到消息摘要(即是本設(shè)計中得到的解密信息)和他自己計算得到的消息摘要(在本系統(tǒng)中為第一次計算得到 的消息摘要)是一樣的,則證明簽名是正確的,沒有被篡改或是冒充, 驗證簽名的原理則是根 據(jù) RSA的解密算法,具體的理論流程圖如圖 34所示:(在本設(shè)計中簽名和驗證簽名都在同一界面實現(xiàn),不進行文件的雙方傳輸) 驗證數(shù)字簽名的過程時應(yīng)用的解密算法是 RSA的解密原理,而 RSA的解密過程也應(yīng)用了求一個整數(shù)的整數(shù)次冪,再取模的運算。 strrev(str)。 } str[i]=39。 i++。 break。 case 15 : str[i]=39。E39。 break。 case 13 : str[i]=39。C39。 break。 case 11 : str[i]=39。A39。 break。 第 15 頁 共 23 頁 case 9 : str[i]=39。839。 break。 case 7 : str[i]=39。639。 break。 case 5 : str[i]=39。439。 break。 case 3 : str[i]=39。239。 break。 case 1 : str[i]=39。039。 b=tt%16。 long tt=x。 //商 int a。 } //字符串變?yōu)?16進制數(shù)的 函數(shù)的實現(xiàn) longtohex(long x) { char str[8]。 //把字符串變?yōu)槭M制數(shù)后連接字符串 strcat(showstr,longtohex(d))。d39。 d=fmod(data*d,n)。139。 d=fmod(d*d,n)。i=0。d=1。 data =(double)ch。data39。iilen。 k=NO_BITS = strlen(bits)1。 //將 十進制數(shù)私鑰 d轉(zhuǎn)換為二進制 D_to_B(m_d,32,bits)。 long i,k=NO_BITS。 double data。 double n=(double)m_n。 double c=0,d=1。 char showstr[1000]=。 //從文本框中得到消息摘要 (message,200)。得到的結(jié)果 d 才為該步的最終結(jié)果。 4)若二進制數(shù)是 1,則在上面的運算后繼續(xù)以下運算: c=c+1。它的運算過程為( 假如要算 a^m mod n) : 1) 將 m表示為二進制的形式 ; 2) 初始化 c=0, d=1, c 在這里表示指數(shù)的部分結(jié)果,它的終值即為指數(shù) m,d是中間結(jié)果,它的終值即為所求結(jié)果; 3) 從二進制數(shù)的最高位到最低位開始 對每一位都用公式 1 進行 運算, 得到的 d 為該步的結(jié)果, 公式 1: c=2*c。如果按其含義直接計算,則中間結(jié)果非常大,有可能超出計算機所允許的整數(shù)取值范圍。數(shù)字簽名中的加密算法就是應(yīng)用的 RSA加密原理,而它的驗證算法則是應(yīng)用的 RSA解密原理。 數(shù)字簽名的設(shè)計實現(xiàn) 數(shù)字簽名的理論實現(xiàn)流程圖如圖 33所示 , 數(shù)字簽名,就是通過在數(shù)據(jù)單元上附加數(shù)據(jù) ,或?qū)?shù)據(jù)單元進行加密變換,從而使接收者可以確認數(shù)據(jù)來源和完整性。 //將 64字節(jié)位轉(zhuǎn)換為 16個字節(jié) Transform(x)。i++) { x[++Index]=WriteMessage[i]。 //循環(huán) , 將原始信息以 64字節(jié)為一組拆分進行處理 for( i=0,Index=1。i++) WriteMessage+=m_MsgLen[i]。 } //將原始信息長度附加在補位后 的數(shù)據(jù)后面 for( i=0。i++) { if(i==0) WriteMessage+=(unsigned char)0x80。 //對原始信息進行補位 for( i=0。 //初始化 MD5所需常量 Init()。 } 產(chǎn)生消息摘要的設(shè)計實現(xiàn) 計算消息摘要的理論實現(xiàn)流程圖如圖 32所示: 圖 32 消息摘要計算流程 在以上流程圖中其中循環(huán)處理塊是 最重要的一步,也是 MD5的核心算法,在這一步中包括了: ( 1)把四個連接變量復(fù)制到了四個變量 a,b,c,d中,使 a=A, b =B, c =C,d=D;其中 a,b,c,d組合成 128位的寄存器,且在實際算法運算中保存中間結(jié)果和最終結(jié)果; ( 2)將當(dāng)前的 512位塊分解為 16個子塊,每個子塊為 32位; ( 3)要循環(huán)四輪,每一輪處理一個塊中的 16個子塊,四輪的第一步進行不同的處理,其他的相同:每一輪有 16個輸入子塊 M[0], M[1], ???? ..M[15],或表示為 M[i],其中 i為 015; t是常量數(shù)組,包含 64個 元素,每個元素為 32位,數(shù)組 t表示為 t[1], t[2], ??? t[64],或 t[k], k為 164; MD5的循環(huán)四輪操作過程用下式表示: a=b+((a+proccessP(b,c,d)+M[i]+T[k])s) 初始化 MD5 所需的常量 計算所需的追加長度 對原始信息進行補位 將輸入分成 512 位的塊 循環(huán)處理塊 得到消息摘要 第 11 頁 共 23 頁 (s表示循環(huán)左移 s位 ) 產(chǎn)生消息摘要的主要代碼如下: int i。 m_Prime1=47。 //通過以下兩個函數(shù)可獲得兩個大素數(shù) , 但增加了計算復(fù)雜性 , 為了方便 ,直接給定素數(shù) // m_Prime1 = FindPrime(1)。 } } } //產(chǎn)生素數(shù)的函數(shù)的實現(xiàn) GeneratePrimeNumbers() { CString str。 if(d == d_dash) { m_d=d。k++) { d=(m_Undef*k+1)/m_e。 for(float k=1。 long d_dash。i++) { return true。 for(float i=2。e39。e39。 (str)。 (str)。 //第五步 計算 D CalculateD()。e39。 //第三步 0=(p1)(q1) m_Undef = (m_Prime11) * (m_Prime21)。 //第一步 產(chǎn)生任意素數(shù) GeneratePrimeNumbers()。根據(jù)所選的素數(shù)的不同產(chǎn)生不同的密鑰。 實際應(yīng)用時: a m1 = 1 ( mod m)? a m = a ( mod m) ?a= a m ( mod m), 因此對于整數(shù) m,只需計算 a m ( mod m),再將結(jié)果與 a比較,如果兩者相同,則 m為素數(shù)。素性檢測采用 Fermat測試。 本軟件的總體設(shè)計都是基于 C++的開發(fā)環(huán)境,采用的是 Microsoft Visual c++ 。 第 7 頁 共 23 頁 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對消息摘要進行加密計算( RSA算法中的加密方法); ( 4) 驗證數(shù)字簽名:用公鑰 e對數(shù)字簽名進行解密計 算( RSA算法中的解密方法) ,得到的解密結(jié)果 與 (2)步計算出的消息摘要 比較 ,如果兩個消息摘要一樣則簽名成功。緩存可以看成是 4 個 32 比特的寄存器( A, B
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1