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

正文內(nèi)容

編程實(shí)現(xiàn)aes算法及加密解密過(guò)程(存儲(chǔ)版)

  

【正文】 ,0xce,0xf0,0xb4,0xe6,0x73,\0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85,0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e,\0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89,0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b,\0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20,0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4,\0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31,0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f,\0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d,0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef,\0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0,0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,\0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d}。 i 4。 j Nb。//將余下的塊左移 memcpy(state[time]+4time, temp, time)。 i 4。 state[2][i] = mul(0x02, temp[2][i]) ^ mul(0x03, temp[3][i]) ^ temp[1][i] ^ temp[0][i]。 temp1 = temp[0]。 int i,j,l。 i++) { for(j = 0。 } } for(j = 0。 j Nk。 l++) { b[j][l] = w[i][l][j]。 int round = 0。 i++) { for(j = 0。 i++) { fprintf(fp,\n)。 for(j = 0。 MixColumns(state)。 k++) { fprintf(fp, %x , w[round+1][k][j])。 } } } } SubBytes(state)。 k 4。 k++) { fprintf(fp, %x , state[j][k])。 j++) { out[j][i] = state[i][j]。 int time,position。 i 4。 i++) { for(j = 0。 state[3][i] = mul(0x0e, temp[3][i]) ^ mul(0x0b, temp[0][i]) ^ mul(0x09, temp[2][i]) ^ mul(0x0d, temp[1][i])。 KeyExpansion(key,w)。 } fprintf(fp,初始密文:\n)。 for(i = 0。 round 0。 j 4。 j++) { fprintf(fp, \n)。 for (j = 0。 j 4。 } for(i = 0。 j Nb。 i 4。 i 4。然而,程序中仍存在諸多問(wèn)題需要在今后更深入的學(xué)習(xí)和實(shí)踐后改進(jìn),完成例如使用面向?qū)ο蟮乃枷肱c語(yǔ)言進(jìn)行編程,設(shè)計(jì)更加良好的人機(jī)交互界面等高級(jí)要求。}6. 測(cè)試報(bào)告 加密下面是我的程序運(yùn)行界面:下面的是我的程序運(yùn)行結(jié)果:“”: 解密下面是我的程序運(yùn)行界面:下面的是我的程序運(yùn)行結(jié)果: “”:7 實(shí)驗(yàn)總結(jié)本次課程設(shè)計(jì)對(duì)我來(lái)說(shuō)是一個(gè)不小的挑戰(zhàn),在工作過(guò)程之中也遇到過(guò)種種問(wèn)題與困難。 if ((fp = fopen(file2, r)) == NULL)//打開(kāi)消息 { exit(0)。 if ((fp = fopen(file1, r)) == NULL)//打開(kāi)密鑰 { exit(0)。 i 4。 if ((fp = fopen(, w)) == NULL) { AfxMessageBox(打開(kāi)文件錯(cuò)誤!)。 } } fprintf(fp, \n\n解密完成后輸出:\n)。 AddRoundKey(state,w[round])。 for (j = 0。 if (round == 2) { fprintf(fp, \n\n第九輪輪密鑰:\n)。 } } AddRoundKey(state,w[round])。 j++) { fprintf(fp,%0x ,state[i][j])。 } }//將初始密文和初始密鑰存入文件中并在程序中輸出 if ((fp = fopen(, w)) == NULL) { AfxMessageBox(打開(kāi)文件錯(cuò)誤!)。 int round = 10。 state[1][i] = mul(0x0e, temp[1][i]) ^ mul(0x0b, temp[2][i]) ^ mul(0x09, temp[0][i]) ^ mul(0x0d, temp[3][i])。 for(i = 0。 }}//逆字節(jié)替代void InvSubBytes(byte state[4][Nb]){ int i, j。 //此處的密文輸出是以列優(yōu)先 } } fclose(fp)。 i++) { for(j = 0。 for (k = 0。 j++) { fprintf(fp, \nw[%d]= ,round*4+j)。 k 4。 for (k = 0。 round++) { SubBytes(state)。 i 4。 for(i = 0。 //調(diào)用密鑰擴(kuò)展函數(shù)將所有的擴(kuò)展密鑰存于w[][][]數(shù)組中 //將讀入的明文進(jìn)行轉(zhuǎn)秩 for(i = 0。 } } }}//加密模塊void Cipher(char file1[64], char file2[64]){ byte state[4][Nb]。 j++) { for (l = 0。 i Nr + 1。 j 4 。 } } //計(jì)算擴(kuò)展密鑰 for(i = Nk。 //計(jì)算是用二維數(shù)組(便于計(jì)算),最后存于三維數(shù)組w中 byte temp[Nk]。 }}//左循環(huán)移位(只移一位) 密鑰擴(kuò)展中使用void RotWord(byte temp[Nb]){ byte temp1。 i++) { state[0][i] = mul(0x02, temp[0][i]) ^ mul(0x03, temp[1][i]) ^ temp[2][i] ^ temp[3][i]。 int i, j。 time++) { memcpy(temp, state[time], time)。 i 4。//輪密鑰加void AddRoundKey(byte state[4][Nb],byte p[4][Nb]){ int i, j。 //key數(shù)組用于讀入初始密鑰 byte w[Nr+1][Nk][4]。(1) 逆S盒變換與S盒變換類似,逆S盒變換是基于逆S盒實(shí)現(xiàn)的。AES算法的加密解密過(guò)程如圖1所示:圖1 AES加密解密流程(1) S盒變換S盒變換是一個(gè)基于S盒的非線性置換,它用于輸入或中間態(tài)的每一個(gè)字節(jié)通過(guò)一個(gè)簡(jiǎn)單的查表操作,將其映射為另一個(gè)字節(jié)。一個(gè)狀態(tài)由四行組成,每一行包括Nb個(gè)字節(jié),Nb等于分組長(zhǎng)度除以32,AES分組長(zhǎng)度為128位,因此,Nb=4,該值反應(yīng)了狀態(tài)中32bit字的個(gè)數(shù)(列數(shù));密鑰長(zhǎng)度12192和256位可分別表示為Nk=6或8,反應(yīng)了密鑰中32bit字的個(gè)數(shù)(列數(shù))。該算法為比利時(shí)密碼學(xué)家Joan Daemen和Vincent Rijmen所設(shè)計(jì),結(jié)合兩位作者的名字,以Rijndael之命名之,投稿高級(jí)加密標(biāo)準(zhǔn)的甄選流程。2000年
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1