置换密码 古典加密算法 信息安全

 

置换密码

置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。

矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:


根据密钥cipher中各个字母在字母表中出现的先后顺序,给定一个置换:


根据上面的置换,将原有居住中的字母按照第1列、第4裂、第5裂、第3裂、第2列、第6列的顺序排列,则有下面的形式:


从而得到密文:abatgftetcnvaiikse

其解密过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由    密钥给出的矩阵置换产生新的矩阵,从而恢复明文。

#include 
#include 
using namespace std;
void jiami()
{
     char str[100];
     char str1[100];
     char a[100];
    cout<<"请输入您的密钥:"<=len)
        {
            t=0;
            j++;
        }
        j1=j;
        t1=t;
    }
    else{};
    }
    strcpy(str1,str);
    for(int i=0;istr1[j+1])
            {
                char ch=str1[j];
                str1[j]=str1[j+1];
                str1[j+1]=ch;
            }
        }
    }
    for(int i=0;i=le)
        {
            j=0;
            t++;
        }
    }
    else{};
    }
    strcpy(str1,str);
    for(int i=0;istr1[j+1])
            {
                char ch=str1[j];
                str1[j]=str1[j+1];
                str1[j+1]=ch;
            }
        }
    }
    for(int i=0;i>choice;
    switch (choice)
    {
        case 1:
            jiami();
            break;
        case 2:
            jiemi();
            break;
        default:
            break;
    }
       // cout << searchnum(s)<< endl;
    return 0;
}


执行结果为:

 置换密码 古典加密算法 信息安全_第1张图片

置换密码 古典加密算法 信息安全_第2张图片

你可能感兴趣的:(c++,c,算法,加密,解密,c)