信息加密——古典密码学
前言
“密码”或“加密系统”用于“加密”数据。
对于原始的未加密的数据,我们称之为“明文”。
对于加密的结果,我们称之为“密文”。
通过称为“解密”的过程,我们把密文恢复成原始的明文。
-
古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。
古典密码学的加密如下:
一、替换(凯撒)密码
简单替换密码加密是通过将当前字母替换为在常规字母表中第n个位置之后的那个字母来完成的。较复杂的替换密码是为字母表建立映射关系,由此可以产生更大的密钥空间。
代码如下:
#include "stdio.h"
#include "conio.h"
int main()
{
int k,i=0;
char a[100],b[100]={
0},c[100]={
0};
/*
printf("请输入明文(小写字母):\n");
gets(a);
printf("请输入加密密钥(1-25):\n");
scanf("%d",&k);
do{
if((a[i]+k)>122)
b[i]=(char)(a[i]+k-26);
else
b[i]=(char)(a[i]+k);
i++;
}while(a[i]!='\0');
printf("密文为:\n");
puts(b);
*/
//下面是解密部分
//printf("\n");
//printf("请输入解密密钥(1-25):\n");
printf("请输入密文(小写字母):\n");
gets(a);
for(k=1;k<=25