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

正文內容

aes課程設計報告(128bit加密解密)-wenkub

2023-04-26 22:17:24 本頁面
 

【正文】 )類似,每一列都通過與一個固定的多項式d(x)相乘進行交換。 for(i = 0。i ++) { temp = B[2][i]。i ) B[1][i] = B[1][i 1]。主要代碼如下:void InvShiftRow(unsigned char B[][4]){ int i,temp。i ++) for(j = 0。 } } }} 逆字節(jié)替換 與字節(jié)代替類似,逆字節(jié)代替基于逆S盒實現(xiàn)。 else keys[j][i] = S_BOX[past[j] / 16][past[j] % 16] ^ keys[j][i 4]。j ++) //把前一個密鑰移位賦值給數(shù)組 past[j 1] = keys[j % 4][i 1]。 for(i = 4。i ++) for(j = 0。 register int i,j。首先將輸入的4個字節(jié)直接復制到擴展密鑰數(shù)組的前4個字中,得到W[0],W[1],W[2],W[3]。j = 3。i++) output[i][j] = Xtime(input[i%4][j]) //0x02乘法 ^ ( input[ ( i + 1 ) % 4][j] ^ Xtime( input[ ( i + 1 ) % 4][j] ) )//0x03乘法 ^ input[ ( i + 2 ) % 4][j] //0x01乘法 ^ input[ ( i + 3 ) % 4][j]。 for(j = 0。 B[3][0] = temp。 } temp = B[3][3]。i = 1。i = 2。} 行移位ShiftRow()完成基于行的循環(huán)移位操作,變換方法是第0行不動,第一行循環(huán)左移一個字節(jié),第二位循環(huán)左移兩個字節(jié),第三行循環(huán)左移三個字節(jié)。i = 3。7. 逆列混淆InvMixColumn()程序流程圖如下:3. 系統(tǒng)功能程序設計 字節(jié)替換SubByte()變換是一個基于S盒的非線性置換,它用于將輸入或中間態(tài)的每一個字節(jié)通過一個簡單的查表操作,將其映射為另一個字節(jié)。2.完成一個明文分組的加解密,明文和密鑰是十六進制,長度都為128比特,輸入明文和密鑰,輸出密文,進行加密后,能夠進行正確的解密。(Rijdael的發(fā)音近于 Rhine doll。經過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標準。從這幾個方面可以說明AES具有良好的安全性能。目前,IEEE ,成功解決了無限局域網標準中的諸多安全問題。在這種情形下,AES算法的安全性及其快速實現(xiàn)問題顯得格外突出。另外,我們根據(jù)算法的安全性、代價以及算法與實現(xiàn)特性的原則實現(xiàn)了AES簡單常用的加密解密算法。2006年,高級加密標準已然成為對稱密鑰加密中最流行的算法之一。)AES在軟體及硬件上都能快速地加解密,相對來說較易于實作,且只需要很少的記憶體。 系統(tǒng)運行環(huán)境本軟件適用VC語言編寫,編譯成功后的EXE文件可以在裝有windows系統(tǒng)的任何計算機上使用。映射方法是把輸入字節(jié)的高四位作為S盒的行值,低四位作為列值,然后取出S盒中對應的行和列的元素作為輸出。i ++) for(j = 0。主要代碼如下:void ShiftRow(unsigned char B[][4]){ int i,temp。i ++) B[1][i] = B[1][i + 1]。i ++) { temp = B[2][i]。 for(i = 3。} 列混合MixColumn()實現(xiàn)逐列混合,方法是s’(x)=c(x)*s(x)mod(x^4+1)。j = 3。 //0x01乘法 for(i = 0。j ++) input[i][j] = output[i][j]。然后每次用4個字填充擴展密鑰數(shù)余下的部分。 printf(Please enter key:\n)。j = 3。i = 43。 for(j = 0。 } } else{ for(j = 0。主要代碼如下:void InvSubByte(unsigned char N_S_BOX[][16],unsigned char B[][4]){ register int i,j。j = 3。 temp = B[1][3]。 B[1][0] = temp。 B[2][i] = B[2][i + 2]。i = 2。主要代碼如下:void InvMixColumn(unsigned char input[][4]){ int i, j。 j++) for(i=0。i = 3。} 加密AES 加密過程基本如下:1)獲取輸入的明文和密鑰 2)通過密鑰擴展過程獲取各輪密鑰 3) 輪密鑰加變換過程 4)行移位 5)字節(jié)替代 6)輪密鑰加變換 7)列混淆4—7步共9次循環(huán),最后一輪實現(xiàn)4—6步,完成加密過程。 printf(Please input of the written to encrypt information:\n)。j = 3。 } getchar()。i ++) for(j = 0。level = 9。 for(i = 0。j ++) B[i][j] ^= keys[i][level * 4 + j]。i = 3。 printf(Encrypted information for the ciphertext:\n)。j = 3。)。 unsigned char keys[4][44]。i = 3。temp)。i = 3。 for(level = 1。 for(i = 0。j ++) B[i][j] ^= keys[i][40 level * 4 + j]。 for(i = 0。j ++) B[i][j] ^= keys[i][j]。i ++) for(j = 0。\n39。 程序運行界面: 程序運行結果截圖如下:(加密) 程序運行結果截圖如下:(解密) 可以發(fā)現(xiàn),我所選取的加密解密信息是課本P119頁中所給的例子,我所編寫的AES加密解密算法的執(zhí)行結果與課本完全一致;并且,我所選取的加密解密信息正好互逆,經查看程序運行結果發(fā)現(xiàn),而這完全吻合;因此,從這兩方面都可以驗證我所編寫的程序的正確性。6. 參考文獻[1] 胡向東 魏琴芳 胡蓉 應用密碼學(第2版) 電子工業(yè)出版社 2011[2] 楊波  現(xiàn)代密碼學 清華大學出版社 2003[3] 附錄:程序源代碼:include include unsigned char Xtime (unsigned char input)。void MixColumn(unsigned char input[][4])。int Encrypt(unsigned char S_BOX[][16])。 register int i,j。i ++) for(j = 0。 for(i = 4。j ++) //把前一個密鑰移位賦值給數(shù)組 past[j 1] = keys[j % 4][i 1]。 else keys[j][i] = S_BOX[past[j] / 16][past[j] % 16] ^ keys[j][i 4]。 } } }}//列混合運算用到的乘2函數(shù)unsigned char Xtime (unsigned char input){ int temp。 return temp。j = 3。 //0x01乘法 for(i = 0。j ++) input[i][j] = output[i][j]。i = 2。i = 1。 } temp = B[3][3]。 B[3][0] = temp。i ++) for(j = 0。 temp = B[1][3]。 B[1][0] = temp。 B[2][i] = B[2][i + 2]。i = 2。 unsigned char output[4][4]。 i4。i ++) for(j = 0。 for(i = 0。j ++)
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1