【正文】
t liquid any more . He was stone. So it goes. Billy didn39。s boxcar door, and the door was opened. Billy Pilgrim was lying at an angle on the cornerbrace, selfcrucified, holding himself there with a blue and ivory claw hooked over the sill of the ventilator. Billy coughed when the door was opened, and when he coughed he shit thin gruel. This was in accordance with the Third Law of Motion according to Sir Isaac Newton. This law tells us that for every action there is a reaction which is equal and opposite in direction. This can be useful in rocketry. The train had arrived on a siding by a prison which was originally constructed as an extermination camp for Russian prisoners of war. The guards peeked inside Billy39。Who killed me? he would ask. And everybody knew the answer., which was this: Billy Pilgrim.39。s two children, children no more. They were gone forever. Billy was guided by dread and the lack of dread. Dread told him when to stop. Lack of it told him when to move again. He stopped. He went into his daughter39。t have ovaries or a uterus any more. They had been removed by a surgeonby one of Billy39。s backyard. The stripes were orange and bla ck. Billy and his wife, Valencia, nestled like spoons in their big double bed. They were jiggled by Magic Fingers. Valencia didn39。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。 ( 4)學(xué)校可允許學(xué)位論文被查閱或借閱。 ( 2)學(xué)校可以采用影印、縮印或其他復(fù)制方式保存學(xué)位論文。除非另有說明,本文的工作 是原始性工作。在此向他表示我最衷心的感謝! 在論文完成過程中,本人還得到了張仕斌老師和陳偉同學(xué)的熱心幫助,本人向他們表示深深的謝意! 最后向在百忙之中評(píng)審本文的各位專家、老師表示衷心的感謝! 作者簡介: 姓 名: 官麗梅 性別: 女 出生年月: 1985 年 3 月 18 日 民族:漢 Email: 聲 明 本論文的工作是 2020 年 2 月至 2020 年 6 月在成都信息工程學(xué)院 系完成的。 [11] 王 勇 .RSA公開密鑰密碼體制的密鑰生成研究 [J] .計(jì)算機(jī)應(yīng)用研究, 1998,( 3): 2124。 [9] Mao W著,王繼林等譯 .現(xiàn)代密碼學(xué)理論與實(shí)踐 [M].北京:電子工業(yè)出版社, 2020。 [7] 張 周 .我國企業(yè)開始重視網(wǎng)絡(luò)安全 [J].計(jì)算機(jī)世界 A9版 ,2020,( 3): 2528。 [5] 賴 溪松 .計(jì)算機(jī)密碼學(xué)及其應(yīng)用 [M].北京 :國防工業(yè)出版社 , 2020。 [3] 蔡樂才,張仕斌 .應(yīng)用密碼學(xué) [M]. 北京: 中國電力出版社, 2020。 參考文獻(xiàn) [1] 盧開澄 .計(jì)算機(jī)密碼學(xué) [M].北京: 清華大學(xué)出版社, 1998。 RSA數(shù)字簽名 提供了一個(gè)安全的確認(rèn)發(fā)送方身份的方法,即數(shù)字簽名的 真實(shí)性得到了保證,防止了第三方的冒充和篡改,肯定了數(shù)字簽名的真實(shí)性。 RSA算法是一種安全技術(shù),但是 RSA算法的安全性只是一種計(jì)算安全性,絕不是無條件的安全性,這是由它的理論基礎(chǔ)決定的。但是運(yùn)用越來越廣泛的網(wǎng)絡(luò)安全技術(shù)數(shù)字簽名,今后也很可能導(dǎo)致毫無私密可言。 和數(shù)字簽名有關(guān)的復(fù)雜認(rèn)證能力就像現(xiàn)在操作、應(yīng)用環(huán)境中的口令保護(hù)一樣直接做進(jìn)操作系統(tǒng)環(huán)境、應(yīng)用、遠(yuǎn)程訪問產(chǎn)品、信息系統(tǒng)等中,像 Microsoft支持 的 Inter 客戶機(jī)軟件及支持對(duì)象簽名檢查的 JAVA虛擬機(jī)等。 RSA 數(shù)字簽名的前景展望 基于 RSA 算法的數(shù)字簽名在 2020 年的第六屆國際密碼學(xué)會(huì)議上被推薦為公鑰密碼系統(tǒng)的加密算法中的一種,則 RSA 數(shù)字簽名有較好的發(fā)展空間。 總之,對(duì)一個(gè)數(shù)字簽名系統(tǒng)而言,重要的是從整體上研究,而不應(yīng)局限于系統(tǒng)的一部分。因?yàn)槿?d達(dá)到 n 的 1/4 大小,且 e 比 n 小,則有方法可以恢復(fù) d; 2)在使用 RSA 的通信網(wǎng)絡(luò)協(xié) 議中,不應(yīng)該使用公共模 n ,這是因?yàn)橐呀?jīng)知道了對(duì)于一個(gè)加密 /解密密鑰指數(shù)對(duì),攻擊者就能分解這個(gè)模,也就可以不分解n 來計(jì)算出別的加密 /解密對(duì); 3)不要讓攻擊者得到原始的解密結(jié)果; 4)相關(guān)的消息不要用相同的密鑰加密; 5)在實(shí)際運(yùn)用中不要對(duì)一個(gè)陌生人提交的隨機(jī)消息解密,不對(duì)自己一無所知的信息簽名,要先利用一個(gè)單向散列函數(shù)對(duì)消息進(jìn)行散列 hash( MD5)處理,盡管 Hash( MD5) 算法是公開的,但是根據(jù) hash( MD5)值計(jì)算出明文在統(tǒng)計(jì)學(xué)上是不可能的。因?yàn)?RSA的安全性則是依賴于分解大素?cái)?shù)的難度。 性能分析與改進(jìn)優(yōu)化 經(jīng)過一系列的測試,本軟件存在較多的需要改進(jìn)和優(yōu)化的地方: ( 1)在素?cái)?shù)的任意產(chǎn)生時(shí)沒有做到任意,本軟件只產(chǎn)生了兩個(gè)固定的素?cái)?shù)即 47 和 71,所以在密鑰的產(chǎn)生時(shí)也就只有一對(duì)公鑰和一對(duì)私鑰,應(yīng)該進(jìn)行的改進(jìn)是在素?cái)?shù)的產(chǎn) 生中 增加相應(yīng)的函數(shù)來實(shí)現(xiàn)素?cái)?shù)的任意產(chǎn)生,以便生成不同的密鑰; ( 2)在產(chǎn)生消息摘要時(shí)針對(duì)的僅是一系列的字符串,即只能對(duì)字符串產(chǎn)生消息摘要而不能對(duì)文件產(chǎn)生消息摘要, 進(jìn)行的改進(jìn)是能同時(shí)對(duì)字符串和文件都能計(jì)算出所對(duì)應(yīng)的消息摘要; ( 3)與( 2)相關(guān)的是數(shù)字簽名中的加密和解密的也僅是字符串,而不能選擇所加密和解密的消息的類型(字符串和文件),為了使此類軟件能在實(shí)際應(yīng)用中發(fā)揮更好的作用所需要改進(jìn)的一個(gè)核心就是能把文件的部分也加入該軟件,使該軟件能同時(shí)對(duì)字符串和文件發(fā)揮作用; ( 4)該軟件的簽名和驗(yàn)證都是在同一界面實(shí)現(xiàn)的,而數(shù)字簽名應(yīng)該在兩個(gè)不同的界面下完成即有發(fā)送方和接收方,則相應(yīng)的改進(jìn)是能實(shí)現(xiàn)文件的傳送。產(chǎn)生的消息摘要和解密得到的消息摘要(在此處是解密信息)是完全一樣的,則證明了數(shù)字簽名的真實(shí)性。如果兩個(gè)消息摘要是一樣的則證明 RSA數(shù)字簽名者的身份的真實(shí)性,從而實(shí)現(xiàn)了 RSA數(shù)字簽名。 } //顯示結(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)。 //用于存儲(chǔ)解密信息 char message[200]。 long i,k。 double data。 char bits[100]。 驗(yàn)證數(shù)字簽名 主要實(shí)現(xiàn)過程的代碼 如下: int NO_BITS。 } 驗(yàn)證數(shù)字簽名的設(shè)計(jì)與實(shí)現(xiàn) 圖 34 驗(yàn)證數(shù)字簽名流程 驗(yàn)證數(shù)字簽名的正確與成功性,主要是比較得到的兩 次 消息摘要是否一樣,如果驗(yàn)證方用簽名方的公鑰解密得到消息摘要(即是本設(shè)計(jì)中得到的解密信息)和他自己計(jì)算得到的消息摘要(在本系統(tǒng)中為第一次計(jì)算得到 的消息摘要)是一樣的,則證明簽名是正確的,沒有被篡改或是冒充,驗(yàn)證簽名的原理則是根 據(jù) RSA的解密算法,具體的理論流程圖如圖 34所示:(在本設(shè)計(jì)中簽名和驗(yàn)證簽名都得到數(shù)字簽名 用公鑰 e 解密數(shù)字簽名 得到消息摘要(解密 信息) 開始 結(jié)束 在同一界面實(shí)現(xiàn),不進(jìn)行文件的雙方傳輸) 驗(yàn)證 數(shù)字簽名的過程時(shí)應(yīng)用的解密算法是 RSA的解密原理,而 RSA的解密過程也應(yīng)用了求一個(gè)整數(shù)的整數(shù)次冪,再取模的運(yùn)算。 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。 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進(jìn)制數(shù)的函數(shù)的 實(shí)現(xiàn) longtohex(long x) { char str[8]。 //把字符串變?yōu)槭M(jìn)制數(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。 //將十進(jìn)制數(shù)私鑰 d轉(zhuǎn)換為二進(jì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。 開始 得到數(shù)字簽名 得到消息摘要 MD 用私鑰 d 加密 MD 結(jié)束 char showstr[1000]=。 //從文本框中得到消息摘要 (message,200)。得到的結(jié)果 d 才為該步的最終結(jié)果。 4)若二進(jìn)制數(shù)是 1,則在上面的運(yùn)算后繼續(xù)以下運(yùn)算: c=c+1。它的運(yùn)算過程為(假如要算 a^m mod n): 1)將 m表示為二進(jìn)制的形式; 2)初始化 c=0, d=1, c 在這里表示指數(shù)的部分結(jié)果,它的終值即為指數(shù) m,d是中間結(jié)果,它 的終值即為所求結(jié)果; 3)從二進(jìn)制數(shù)的最高位到最低位開始對(duì)每一位都用公式 1 進(jìn)行運(yùn)算,得到的 d 為該步的結(jié)果,公式 1: c=2*c。如果按其含義直接計(jì)算,則中間結(jié)果非常大,有可能超出計(jì)算機(jī)所允許的整數(shù)取值范圍。數(shù)字簽名中的加密算法就是應(yīng)用的 RSA加密原理,而它的驗(yàn)證算法 則是應(yīng)用的 RSA解密原理。 數(shù)字簽名的設(shè)計(jì)實(shí)現(xiàn) 數(shù)字簽名的理論實(shí)現(xiàn)流程圖如圖 33所示 , 數(shù)字簽名,就是通過在數(shù)據(jù)單元上附加數(shù)據(jù),或?qū)?shù)據(jù)單元進(jìn)行加密變換,從而使接收者可以確認(rèn)數(shù)據(jù)來源和完整性。 //將 64字節(jié)位轉(zhuǎn)換為 16個(gè)字節(jié) Transform(x)。i++) { x[++Index]=WriteMessage[i]。 //循環(huán) , 將原始信息以 64字節(jié)為一組拆分進(jìn)行處理 for( i=0,Index=1。i++) WriteMessage+=m_MsgLen[i]。 } //將原始信息長度附加在補(bǔ)位后 的數(shù)據(jù)后面 for( i=0。i++) { if(i==0) WriteMessage+=(unsigned char)0x80。 //對(duì)原始信息進(jìn)行補(bǔ)位 for( i=0。 //初始化 MD5所需常量 Init()。 } 產(chǎn)生消息摘要的設(shè)計(jì)實(shí)現(xiàn) 計(jì)算消息摘要的理論實(shí)現(xiàn)流程圖如圖 32所示: 圖 32 消息摘要計(jì)算流程 在以上流程圖中其中循環(huán)處理塊是最重要的一步,也是 MD5的核心算法,在這一步中包括了: ( 1)把四個(gè)連接變量復(fù)制