第一篇:信息安全實(shí)驗(yàn)報(bào)告
《信息安全》實(shí)驗(yàn)報(bào)告
班級:
姓名:
學(xué)號:
1. 實(shí)驗(yàn)題目:置換密碼技術(shù)實(shí)現(xiàn)程序開發(fā) 2. 實(shí)驗(yàn)?zāi)康模和ㄟ^置換密碼算法的實(shí)現(xiàn),進(jìn)一步掌握置換密碼算法的原理,為今后的工程應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。
3. 實(shí)驗(yàn)原理:置換密碼亦稱為換位密碼。置換只不過是一個(gè)簡單的換位。每個(gè)置換都可以用一個(gè)置換矩陣Ek來表示。每個(gè)置換都有一個(gè)與之對應(yīng)的逆置換Dk。置換密碼的特點(diǎn)是僅有一個(gè)發(fā)送方和接收方知道的加密置換(用于加密)和對應(yīng)的逆置換(用于解密)。它是對明文L長字母組中的字母位置進(jìn)行重新排列,而每個(gè)字母本身并不改變。令明文為 m?m1m2?mL。令置換矩陣所決定的置換為?,則 加密置換 C?Ek?(c1c2?cL)?m?(1)m?(2)?m?(L)解密置換 d?Dk?(c??1(1)??1(2)c?c??1(L))
例,給定明文為tba simpodst yossibje trqnspbsition cipderk,將明文分成長為L=5的段,m1=tbasi, m2=mpods m3=tyoss m4=ibjet,m5=rqnsp, m6=bsiti m7=oncip m8=derkz
最后一段長不足5,加添一個(gè)字母z。將隔斷的字母序號按下述置換矩陣進(jìn)行換位:
Ek= 0 1 2 3 4 4 3 0 2
得到密文如下
STIAB DMSOP STSOY EITJB SRPNQ TBIIS IOPCN KDZRE
利用下述置換矩陣:
Dk=0 1 2 3 4 0 4 2 1
可將密文恢復(fù)為明文。
L=5時(shí)可能的置換矩陣總數(shù)為5!=120,一般為L!個(gè)。可以證明,在給定L下所有的置換矩陣構(gòu)成一個(gè)L!對稱群。4. 實(shí)驗(yàn)代碼
void Permutation()/*置換密碼*/ {
char c[100], *q;
int *key, len, m, i, j=0;
system(“cls”);
printf(“********Permutation Cipher(置換密碼)********nPlease input primal sentence(請輸入最初的明文): ”);
gets(c);
strcpy(c, strupr(c));
len = strlen(c);
for(i=0;i { if(c[i]<65||c[i]>90) { for(j=i;j c[j] = c[j+1]; len--; } } c[len] = '