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

正文內(nèi)容

編程實(shí)現(xiàn)aes算法及加密解密過(guò)程-閱讀頁(yè)

2024-09-11 13:54本頁(yè)面
  

【正文】 3][i]) ^ mul(0x03, temp[0][i]) ^ temp[2][i] ^ temp[1][i]。 for(i = 0。 i++) { a[i] = S_box[a[i]]。 int i。 for(i = 1。 i++) { temp[i1] = temp[i]。}//密鑰擴(kuò)展void KeyExpansion(byte key[4][Nk],byte w[Nr+1][Nk][4]){ byte k[Nb * (Nr + 1)][4]。 byte b [4][4]。 //存儲(chǔ)初始密鑰 for(i = 0。 i++) { for(j = 0。 j++) { k[i][j] = key[i][j]。 i Nb * (Nr + 1)。 j 4。 } if(i%Nk == 0) { RotWord(temp)。 for(j = 0。 j++) { temp[j] = temp[j]^Rcon[i/Nk1][j]。 j 4。 printf(%x , k[i][j])。 } for (i = 0。 i++) { for (j = 0。 j++) { for (l = 0。 l++) { w[i][j][l] = k[4 * i + j][l]。 j Nk。 l 4。 } } for (j = 0。 j++) { for (l = 0。 l++) { w[i][j][l] = b[j][l]。 int i, j, k。 byte w[Nr+1][Nk][4]。 FILE *fp。 //從文件中讀取初始密鑰和明文 KeyExpansion(key,w)。 i 4。 j Nb。 } } //將初始明文和初始密鑰存于文件中并在程序中輸出 if ((fp = fopen(, w)) == NULL) { AfxMessageBox(打開(kāi)文件錯(cuò)誤!)。 } fprintf(fp,初始明文:\n)。 i 4。 for(j = 0。 j++) { fprintf(fp,%0x ,state[i][j])。 for(i = 0。 i++) { fprintf(fp,\n)。 j Nb。 } } AddRoundKey(state,w[round])。 round Nr。 ShiftRows(state)。 AddRoundKey(state, w[round])。 for (j = 0。 j++) { fprintf(fp, \nw[%d]= , (round+1)*4+j)。 k 4。 } } fprintf(fp, \n\n明文加密到第九輪:\n)。 j 4。 for (k = 0。 k++) { fprintf(fp, %x , state[j][k])。 ShiftRows(state)。 fprintf(fp, \n\n第十輪輪密鑰:\n)。 j 4。 for (k = 0。 k++) { fprintf(fp, %x , w[round][k][j])。 for (j = 0。 j++) { fprintf(fp, \n)。 k 4。 } } fclose(fp)。 exit(0)。 i 4。 j Nb。 } } for(i = 0。 i++) { for(j = 0。 j++) { fprintf(fp, %c, out[i][j])。}//逆行移位void InvShiftRows(byte state[4][Nb]) //void memcpy(void *destin,void *source,unsigned n) 操作為從source復(fù)制一個(gè)n個(gè)字節(jié)的塊到destin{ byte temp[4]。 //向左循環(huán)移位的位數(shù)(向右移一位同向左移三位)position用于記錄所移的是第幾行 for(time = 3, position = 1。 time, position++) { memcpy(temp, state[position], time)。 memcpy(state[position]+4time, temp, time)。 for(i = 0。 i++) { for(j = 0。 j++) { state[i][j] = InvS_box[state[i][j]]。 int i, j。 i 4。 j Nb。 } } for(i = 0。 i++) { state[0][i] = mul(0x0e, temp[0][i]) ^ mul(0x0b, temp[1][i]) ^ mul(0x0d, temp[2][i]) ^ mul(0x09, temp[3][i])。 state[2][i] = mul(0x0e, temp[2][i]) ^ mul(0x0b, temp[3][i]) ^ mul(0x09, temp[1][i]) ^ mul(0x0d, temp[0][i])。 }}//解密模塊void InvCipher(char file1[64], char file2[64]){ byte state[4][Nb]。 byte out[4][Nb]。 FILE *fp。 OpenFile(file1, file2)。 for(i = 0。 i++) { for(j = 0。 j++) { state[j][i] = in[i][j]。 exit(0)。 for(i = 0。 i++) { fprintf(fp,\n)。 j Nb。 } } fprintf(fp, \n\n初始密鑰:\n)。 i 4。 for(j = 0。 j++) { fprintf(fp,%0x ,w[0][j][i])。 for(round = Nr 1。 round) { printf(第%d輪\n, round)。 InvSubBytes(state)。 InvMixColumns(state)。 for (j = 0。 j++) { fprintf(fp, \nw[%d]= , (round1)*4+j)。 k 4。//列優(yōu)先輸出 } } fprintf(fp, \n\n密文解密到第九輪輸出:\n)。 j 4。 for (k = 0。 k++) { fprintf(fp, %x , state[j][k])。 InvSubBytes(state)。 fprintf(fp, \n\n最后一輪輪密鑰:\n)。 j 4。 for (k = 0。 k++) { fprintf(fp, %x , w[round][k][j])。 for (j = 0。 j++) { fprintf(fp, \n)。 k 4。 } } fclose(fp)。 exit(0)。 i 4。 j Nb。 } } for(i = 0。 i++) { for(j = 0。 j++) { out[i][j] = state[j][i]。 } } fclose(fp)。 int i, j。 } for (i = 0。 i++) { for (j = 0。 j++) { fscanf(fp, %c, amp。 } } fclose(fp)。 } for (i = 0。 i++) { for (j = 0。 j++) { fscanf(fp, %c, amp。 } } fclose(fp)。但是最終在不斷堅(jiān)持下,最終完成了實(shí)驗(yàn)。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1