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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-分組密碼算法des的加密和解密的實(shí)現(xiàn)-文庫(kù)吧資料

2024-12-09 19:50本頁(yè)面
  

【正文】 printf(\n)。 puts(*****************DES***********************)。m39。a39。r39。g39。o39。r39。p39。 ( 6) bittobyte() 此函數(shù)的功能是將位組轉(zhuǎn)換字節(jié)組。 ( 3) memcpy() 此函數(shù)是庫(kù)函數(shù),主要作用是進(jìn)行內(nèi)存單元的復(fù)制。 } 這個(gè)函數(shù)用到以下函數(shù): ( 1) bytetobit() 此函數(shù)的功能是將輸入的字節(jié)組轉(zhuǎn)換為位組。 } } transform(m,m,ipr_table,64)。 xor(li,ri,32)。i){ memcpy(tmp,li,32)。 } }else{ for(int i=15。 xor(ri,li,32)。i++){ 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 17 memcpy(tmp,ri,32)。 if(type==encrypt){ for(int i=0。 bytetobit(m,in,64)。m[0], *ri=amp。這個(gè)函數(shù)用于加密還是解密取決于 type 的類型,如果 type 為 encrypt,則進(jìn)行加密;如果 type 的類型為decrypt,則進(jìn)行解密。i++) out[i/8]|=in[i](i%8)。 for(int i=0。 } 與此相關(guān)的還有函數(shù) ttobyte() 此函數(shù)的功能是將位組轉(zhuǎn)換字節(jié)組。i++) out[i]=(in[i/8](i%8)) amp。 void bytetobit(bool *out,const char *in,int bits) { for(int i=0。i++) ina[i]^=inb[i]。 void xor(bool *ina,const bool *inb,int len) { 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 16 for(int i=0。 const static char p_table[32]={16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25}。s_box[i][j][k],4)。 k=(in[1]3)+(in[2]2)+(in[3]1)+in[4]。i8。 ( 3) s_box S盒。將輸出的 32比特的數(shù)據(jù)經(jīng) P置換,最后得到 32比特的數(shù)據(jù)。 } ( 2) e_table() E置換表,作用是將 32 比特的輸入擴(kuò)展為 48 比特。i++) tmp[i]=in[table[i]1]。 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 15 for(int i=0。在 f 函數(shù)中,先用于 E 置換,然后進(jìn)行 P 置換。//循環(huán)左移 f 函數(shù)和 S 函數(shù) f_func()和 s_func() 此函數(shù)的功能是 DES 算法的關(guān)鍵, f 是將 32比特的輸入轉(zhuǎn)化為 32 比特的輸出。 static void xor(bool *ina, const bool *inb, int len)。//f 函數(shù) static void s_func(bool out[32],const bool in[48])。 void des_setkey(const char key[8])。將 C0, D0 進(jìn)行 LS1 運(yùn)算, LS1是循環(huán)左移運(yùn)算。 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 14 第 3 章 DES 算法用 C++語(yǔ)言實(shí)現(xiàn) 設(shè)置密鑰函數(shù) des_setkey() 此函數(shù)的功能是由 64比特的密鑰產(chǎn)生 16 個(gè)子密鑰 ki。 表 密鑰置換 PC2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 其中 LS1( 1≤ i≤ 16)表示一個(gè)或兩個(gè)位置的循環(huán)左移,當(dāng) i=1, 2, 9,16 時(shí),移一個(gè)位置,當(dāng) i=3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15時(shí),移兩個(gè)位置。 表 密鑰置換 PC1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 初始密鑰 K( 64bit) PC1 C0( 28bit) D0( 28bit) LS1 LS1 C1 D1 LS2 LS2 LS16 LS16 C16 D16 PC2 PC2 K16 K1 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 13 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 然后將此 56 位分為 C0, D0 兩部分,各 28 比特, C0, D0 如下: C0=k57k49?? k44k36 D0=k63k55?? k12k4 然后分別進(jìn)行一個(gè)循環(huán)左移函數(shù) LS1,得到 C1, D1,將 C1( 28位) ,D1( 28 位)連成 56 比特?cái)?shù)據(jù),再經(jīng)過(guò)密鑰置換 PC2(表 )做重排動(dòng)作,從而便得 到了密鑰 K1( 48 位)。 P置換的順序如表 : 表 置換 P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 12 子密鑰的生成 圖 DES子密鑰生成流程圖 圖 給出了子密鑰產(chǎn)生的流程圖。 8個(gè) S盒的代換方式都是一樣的。 例 S2 的輸入為 101011, b1 =1, b6=1, b1 b6=(11)2=3 (b2 b3 b4 b5)2=(0101)2=5 查 S2 表可知第 3 行第 5列的輸出是 15, 15的二進(jìn)制表示為 1111。 S盒如下表: 表 S盒函數(shù) S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 5 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 11 S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 S盒的置換規(guī)則為: 取 {0, 1,?, 15}上的 4個(gè)置換,即它的 4個(gè)排列排成 4行,得一 4*16矩陣。 S盒是 DES算法中唯一的非線性部件,當(dāng)然也就是整個(gè)算法的安全性所在。每個(gè) S盒有 6個(gè)輸入, 4個(gè)輸出,將 B 依次分為 8組,每組 6 位,記 B= B1B2B3B4B5B6B7B8 其中 Bj 作為第 j個(gè) S盒的輸入,其輸出為 Cj, C= C1C2C3C4C5C6C7C8 就是代換 S的輸出,所以代換 S是一個(gè) 48位輸入, 32 位輸出的選擇壓縮運(yùn)算,將結(jié)果 C再實(shí)行一個(gè)置換 P(表 4),即得 F(R,K)。 河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 10 圖 F函數(shù)計(jì)算過(guò)程圖 將 R 經(jīng)過(guò)一個(gè)擴(kuò)展運(yùn)算 E變?yōu)?48 位,記為 E( R)。 表 擴(kuò)展 E 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 ki是由 64比特的初始密鑰(亦稱種子密鑰)導(dǎo)出的第 i 輪子密鑰, ki 是48 比特 DES 算法的關(guān)鍵是 f(Ri1,ki)的功能,其中的重點(diǎn)又在 S盒( Substitution
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1