資源描述:
《現(xiàn)代密碼學(xué)課程設(shè)計實驗報告 -》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、西安科技大學(xué)《現(xiàn)代密碼學(xué)》課程設(shè)計報告題目:密碼學(xué)計算器學(xué)??院:計算機(jī)科學(xué)與技術(shù)學(xué)院班??級:姓名:學(xué)?號:日期:2015.1.8一.課程設(shè)計題目密碼學(xué)計算器的研究與實現(xiàn)二.分工對稱密碼程序?qū)崿F(xiàn)Des算法組長:古典密碼程序設(shè)計(置換)SHA算法ECC算法三.軟件運(yùn)行環(huán)境Windows7操作系統(tǒng)visualC++四.算法設(shè)計思想1.古典密碼置換算法置換密碼算法的原理是不改變明文字符,只將字符在明文中的排列順序改變,從而實現(xiàn)明文信息的加密。置換密碼又稱為換位密碼。矩陣換位法是實現(xiàn)置換密碼的一種常用方法。它
2、將明文中的字母按照給定的順序安排在一個矩陣中,然后又根據(jù)密鑰提供的順序重新組合矩陣中的字母,從而形成密文。例如,明文為attackbeginsatfive,密鑰為cipher,將明文按照每行6個字母的形式排在矩陣中,形成如下形式:attackbeginsatfive根據(jù)密鑰cipher中各字母在字母表中出現(xiàn)的先后順序,得到給定的一個置換:f=145326因此有:密鑰:145326明文:attackbeginsatfive根據(jù)上面的置換,將原有矩陣中的字母按照第1列、第4列、第5列、第3列、第2列、第6列
3、的順序排列、則有下面的形式:aacttkbingesaivfte從而得到密文:abatgftetcnvaiikse其解密過程是根據(jù)密鑰的字母數(shù)作為列數(shù),將密文按照列、行的順序?qū)懗?,再根?jù)由密鑰給出的矩陣置換產(chǎn)生新的矩陣,從而恢復(fù)明文。2.ECC算法?ECC(EllipticCurvesCryptography)加密算法是一種公鑰加密算法,與主流的RSA算法相比,ECC算法可以使用較短的密鑰達(dá)到相同的安全程度。近年來,人們對ECC的認(rèn)識已經(jīng)不再處于研究階段,開始逐步進(jìn)入實際應(yīng)用,如國家密碼管理局頒布的SM
4、2算法就是基于ECC算法的?在引入橢圓曲線之前,不得不提到一種新的坐標(biāo)系-------射影平面坐標(biāo)系,它是對笛卡爾直角坐標(biāo)系的擴(kuò)展,增加了無窮遠(yuǎn)點的概念。在此坐標(biāo)系下,兩條平行的直線是有交點的,而交點就是無窮遠(yuǎn)點。兩者的變換關(guān)系為:笛卡爾坐標(biāo)系中的點a(x,y),令x=X/Z,y=Y/Z,則射影平面坐標(biāo)系下的點a的坐標(biāo)為(X,Y,Z),如點(2,3)就轉(zhuǎn)換為(2Z,3Z,Z)。加法法則運(yùn)算法則:任意取橢圓曲線上兩點P、Q(若P、Q兩點重合,則做P點的切線)做直線交于橢圓曲線的另一點R’,過R’做y軸的平
5、行線交于R。我們規(guī)定P+Q=R。(如圖)?下面,我們利用P、Q點的坐標(biāo)(x1,y1),(x2,y2),求出R=P+Q的坐標(biāo)(x4,y4)。P,Q,R'共線,設(shè)為y=kx+b,若P≠Q(mào),k=(y1-y2)/(x1-x2)若P=Q,k=(3x2+2a2x+a4?-a1y)/(2y+a1x+a3)?解方程組得到:?x4=k2+ka1-a2-x1-x2;??y4=k(x1-x4)-y1-a1x4-a3;3.對稱密碼DES算法DES是一個16輪的Feistel型結(jié)構(gòu)密碼,它的分組長度為64比特,用一個56比特的密
6、鑰來加密一個64比特的明文串,輸出一個64比特的密文串。其中,使用密鑰為64比特,實用56比特,另8位用作奇偶校驗。加密的過程是先對64位明文分組進(jìn)行初始置換,然后分左、右兩部分分別經(jīng)過16輪迭代,然后再進(jìn)行循環(huán)移位與變換,最后進(jìn)行逆變換得出密文。加密與解密使用相同的密鑰,因而它屬于對稱密碼體制。圖4-3給出了DES過程框圖。假設(shè)輸入的明文數(shù)據(jù)是64比特。首先經(jīng)過初始置換IP后把其左半部分32比特記為L0,右半部分32比特記為R0,即成了置換后的輸入;然后把R0與密鑰產(chǎn)生器產(chǎn)生的子密鑰k1進(jìn)行運(yùn)算,其結(jié)
7、果計為f(R0,k1);再與L0進(jìn)行摸2加得到L0f(R0,k1),把R0記為L1放在左邊,而把L0f(R0,k1)記為R1放在右邊,從而完成了第一輪迭代運(yùn)算。在此基礎(chǔ)上,重復(fù)上述的迭代過程,一直迭代至第16輪。所得的第16輪迭代結(jié)果左右不交換,即L15f(R15,k16)記為R16,放在左邊,而R15記為L16放在右邊,成為預(yù)輸出,最后經(jīng)過初始置換的逆置換IP-1運(yùn)算后得到密文。圖4-3DES框圖DES的解密過程與加密過程共用了同樣的計算過程。兩者的不同之處僅在于解密時子密鑰ki的使用順序與加密時相反
8、。如果加密的子密鑰k1,k2,…,k16,那么,解密時子密鑰的使用順序為與k16,k15,…,k1。即:用DES解密時,將以64位密文作為輸入,第一輪迭代使用子密鑰k16;第二輪迭代使用子密鑰k15,…,第16輪迭代使用子密鑰k1,其他運(yùn)算與加密時一樣,最后輸出的便是64位明文。4.SHA算法散列是信息的提煉,通常其長度要比信息小得多,且為一個固定長度。加密性強(qiáng)的散列一定是不可逆的,這就意味著通過散列結(jié)果,無法推出任何部分的原始信息。任何輸