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

正文內(nèi)容

編程實(shí)現(xiàn)aes算法及加密解密過程(文件)

2025-09-10 13:54 上一頁面

下一頁面
 

【正文】 ]){ int i, j。 j Nb。 for(i = 0。 j++) { temp[i][j] = state[i][j]。 state[1][i] = mul(0x0e, temp[1][i]) ^ mul(0x0b, temp[2][i]) ^ mul(0x09, temp[0][i]) ^ mul(0x0d, temp[3][i])。 byte w[Nr+1][Nk][4]。 int round = 10。 i 4。 } }//將初始密文和初始密鑰存入文件中并在程序中輸出 if ((fp = fopen(, w)) == NULL) { AfxMessageBox(打開文件錯誤!)。 i 4。 j++) { fprintf(fp,%0x ,state[i][j])。 i++) { fprintf(fp,\n)。 } } AddRoundKey(state,w[round])。 InvShiftRows(state)。 if (round == 2) { fprintf(fp, \n\n第九輪輪密鑰:\n)。 for (k = 0。 for (j = 0。 k 4。 AddRoundKey(state,w[round])。 j++) { fprintf(fp, \nw[%d]= ,round*4+j)。 } } fprintf(fp, \n\n解密完成后輸出:\n)。 for (k = 0。 if ((fp = fopen(, w)) == NULL) { AfxMessageBox(打開文件錯誤!)。 i++) { for(j = 0。 i 4。 fprintf(fp, %c, out[i][j])。 if ((fp = fopen(file1, r)) == NULL)//打開密鑰 { exit(0)。 j 4。 if ((fp = fopen(file2, r)) == NULL)//打開消息 { exit(0)。 j 4。}6. 測試報告 加密下面是我的程序運(yùn)行界面:下面的是我的程序運(yùn)行結(jié)果:“”: 解密下面是我的程序運(yùn)行界面:下面的是我的程序運(yùn)行結(jié)果: “”:7 實(shí)驗(yàn)總結(jié)本次課程設(shè)計對我來說是一個不小的挑戰(zhàn),在工作過程之中也遇到過種種問題與困難。通過完成本次實(shí)驗(yàn),不僅使我對AES加密解密的原理、實(shí)現(xiàn)過程等諸多細(xì)節(jié)有了完整、透徹的理解,對算法、密碼保密性和安全性有了新的認(rèn)識,而且在具體實(shí)現(xiàn)中學(xué)習(xí)到了很多的知識與能力,認(rèn)識到了自身存在的許多不足,對今后的學(xué)習(xí)工作起到了極大的幫助。然而,程序中仍存在諸多問題需要在今后更深入的學(xué)習(xí)和實(shí)踐后改進(jìn),完成例如使用面向?qū)ο蟮乃枷肱c語言進(jìn)行編程,設(shè)計更加良好的人機(jī)交互界面等高級要求。in[i][j])。 i 4。key[i][j])。 i 4。}void OpenFile(char file1[64], char file2[64]){ FILE *fp。 j Nb。 j++) { out[i][j] = state[i][j]。 } for(i = 0。 k++) { fprintf(fp, %x , state[j][k])。 j 4。 k 4。 for (j = 0。 } } } } InvShiftRows(state)。 j++) { fprintf(fp, \n)。 k++) { fprintf(fp, %x , w[round1][k][j])。 j 4。 AddRoundKey(state, w[round])。 round 0。 j Nb。 for(i = 0。 for(j = 0。 } fprintf(fp,初始密文:\n)。 j Nb。 KeyExpansion(key,w)。 int i, j, k。 state[3][i] = mul(0x0e, temp[3][i]) ^ mul(0x0b, temp[0][i]) ^ mul(0x09, temp[2][i]) ^ mul(0x0d, temp[1][i])。 i 4。 i++) { for(j = 0。 } }}//逆列混合void InvMixColumns(byte state[4][Nb]){ byte temp[4][Nb]。 i 4。 memcpy(state[position], state[position]+time, 4time)。 int time,position。 j Nb。 j++) { out[j][i] = state[i][j]。 } for(i = 0。 k++) { fprintf(fp, %x , state[j][k])。 j 4。 k 4。 for (j = 0。 } } } } SubBytes(state)。 j++) { fprintf(fp, \n)。 k++) { fprintf(fp, %x , w[round+1][k][j])。 j 4。 MixColumns(state)。 //初始輪密鑰加 //開始循環(huán)Nr輪 for(round = 1。 for(j = 0。 } } fprintf(fp, \n\n初始密鑰:\n)。 i++) { fprintf(fp,\n)。 exit(0)。 i++) { for(j = 0。 OpenFile(file1, file2)。 int round = 0。 l 4。 l++) { b[j][l] = w[i][l][j]。 } } for (j = 0。 j Nk。 } printf(\n)。 } } for(j = 0。 SubWords(temp)。 i++) { for(j = 0。 j Nk。 int i,j,l。 } temp[Nb1] = temp1。 temp1 = temp[0]。 i Nk。 state[2][i] = mul(0x02, temp[2][i]) ^ mul(0x03, temp[3][i]) ^ temp[1][i] ^ temp[0][i]。 } } //按列做調(diào)用mul函數(shù)做列混合,以狀態(tài)的每一列作為輸入與混合每一列的數(shù)據(jù)得到新的列 for(i = 0。 i 4。//參考代碼,不太懂 } else return 0。//將余下的塊左移 memcpy(state[time]+4time, temp, time)。 //向左循環(huán)移位的位數(shù) for(time = 1。 j Nb。//狀態(tài)數(shù)組與每一輪子密鑰異或 } }}//字節(jié)替換void SubBytes(byte state[4][Nb]){ int i, j。 i 4。使用的生成元為x+1byte log[256] = {0x00,0x00,0x19,0x01,0x32,0x02,0x1a,0xc6,0x4b,0xc7,0x1b,0x68,0x33,0xee,0xdf,0x03,\0x64,0x04,0xe0,0x0e,0x34,0x8d,0x81,0xef,0x4c,0x71,0x08,0xc8,0xf8,0x69,0x1c,0xc1,\0x7d,0xc2,0x1d,0xb5,0xf9,0xb9,0x27,0x6a,0x4d,0xe4,0xa6,0x72,0x9a,0xc9,0x09,0x78,\0x65,0x2f,0x8a,0x05,0x21,0x0f,0xe1,0x24,0x12,0xf0,0x82,0x45,0x35,0x93,0xda,0x8e,\0x96,0x8f,0xdb,0xbd,0x36,0xd0,0xce,0x94,0
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1