凯撒加密原理(凯撒加密原理实验)

2023-03-01 19:26:31 密语知识 思思

密码学基础一

一、 恺撒密码

1.简单介绍

凯撒密码是古时候欧洲常用的一种加密方式:英文一共26个字母,它的加密方式是将这26个字母分别平移固定的位数,

假设位数=3,那么A=D,B=E,如下图:

如果想加密一个单词HELLO,根据上面的唯一对比,加密后的结果应该是LHOOR。颠倒字母后的顺序,使得常人无法读懂这些语句或者单词。如何解密呢,也很简单,只需要将收到的单词向前平移3个位置,就可以恢复到加密前的单词HELLO了。

2.破解

破解凯撒密码的方法很多,有一种暴力破解的方式,就是“遍历”。根据凯撒密码的加密方式,平移固定的位数,26个英文字母总共可以平移的方式是26种,假如位数n=26,其实相当于没有平移,A=A,循环了一次。

进行暴力破解:

n=1:LHOOR=KGNNQ

n=2:LHOOR=JFMMP

n=3:LHOOR=HELLO

这样就破解了,可以推算发位数n=3,其实就是秘钥=3,

最多尝试25次即可推算出加密的n值等于多少(当然这里只是讨论原理,不排除真实情况,可能凑巧某一个错误的n值解密出来的也是一个完整的单词或一段话的情况)。

二、 替换密码

1.简单介绍

替换密码和恺撒密码原理有些类似,个人感觉相当于恺撒密码的变种,替换密码增加了字母替换的随机性.

举个简单的例子,A=G,B=X,C=K

这里ABC..等26个字母都随机指向了“密码”本上的另一个随机的字母,这下就比较难反向推算出“秘钥”是多少了,数量级完全不一样。

简单的算一下可能存在的情况:

A=有25种表示方式BCD…

B=有除A以外24种方式表示CDE..

那么秘钥的存在情况是:

N=25!种方式,远远大于恺撒密码的26。

2.破解

面对25!数量级的加密方式,使用暴力破解的方式不再实用了,但是可以使用另一种方法,统计学

通过大量扫描英文书籍,可以得出如下结果(,这里只探究原理,并不追究这个统计的准确性):

26个字母在日常用语中的使用频率并不一样,比如字母E的使用频率遥遥领先,字母Z使用频率最低,这个相当于语言所残留在文字中的指纹,很难察觉但是真实存在。

根据这个原理,扫描“随机密码”文本,统计出各个字母的使用频率分布,找出使用频率最高的那个字母,极可能就是加密后的字母E。

3.随机加密还有很多变种,双重加密,擦掉“指纹”使得加密方式更进一步加固,不得不感叹古人的智慧,数学之美真奇妙。

凯撒加密原理(凯撒加密原理实验) 第1张

古典加密算法有哪些 古典加密算法

世界上最早的一种密码产生于公元前两世纪。是由一位希腊人提出的,人们称之为

棋盘密码,原因为该密码将26个字母放在5×5的方格里,i,j放在一个格子里,具体情

况如下表所示

1 2 3 4 5

1 a b c 搜索d e

2 f g h i,j k

3 l m n o p

4 q r s t u

5 v w x y z

这样,每个字母就对应了由两个数构成的字符αβ,α是该字母所在行的标号,β是列

标号。如c对应13,s对应43等。如果接收到密文为

43 15 13 45 42 15 32 15 43 43 11 22 15

则对应的明文即为secure message。

另一种具有代表性的密码是凯撒密码。它是将英文字母向前推移k位。如k=5,则密

文字母与明文与如下对应关系

a b c d e f g h i j k l m n o p q r s t u v w x y z

F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

于是对应于明文secure message,可得密文为XJHZWJRJXXFLJ。此时,k就是密钥。为了

传送方便,可以将26个字母一一对应于从0到25的26个整数。如a对1,b对2,……,y对

25,z对0。这样凯撒加密变换实际就是一个同余式

c≡m+k mod 26

其中m是明文字母对应的数,c是与明文对应的密文的数。

随后,为了提高凯撒密码的安全性,人们对凯撒密码进行了改进。选取k,b作为两

个参数,其中要求k与26互素,明文与密文的对应规则为

c≡km+b mod 26

可以看出,k=1就是前面提到的凯撒密码。于是这种加密变换是凯撒野加密变换的

推广,并且其保密程度也比凯撒密码高。

以上介绍的密码体制都属于单表置换。意思是一个明文字母对应的密文字母是确定

的。根据这个特点,利用频率分析可以对这样的密码体制进行有效的攻击。方法是在大

量的书籍、报刊和文章中,统计各个字母出现的频率。例如,e出现的次数最多,其次

是t,a,o,I等等。破译者通过对密文中各字母出现频率的分析,结合自然语言的字母频

率特征,就可以将该密码体制破译。

鉴于单表置换密码体制具有这样的攻击弱点,人们自然就会想办法对其进行改进,

来弥补这个弱点,增加抗攻击能力。法国密码学家维吉尼亚于1586年提出一个种多表式

密码,即一个明文字母可以表示成多个密文字母。其原理是这样的:给出密钥

K=k[1]k[2]…k[n],若明文为M=m[1]m[2]…m[n],则对应的密文为C=c[1]c[2]…c[n]。

其中C[i]=(m[i]+k[i]) mod 26。例如,若明文M为data security,密钥k=best,将明

文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为

C=EELT TIUN SMLR

从中可以看出,当K为一个字母时,就是凯撒密码。而且容易看出,K越长,保密程

度就越高。显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加

密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码可用所谓

的维吉尼亚方阵来进行,从而在操作上简单易行。该密码曾被认为是三百年内破译不了

的密码,因而这种密码在今天仍被使用着。

古典密码的发展已有悠久的历史了。尽管这些密码大都比较简单,但它在今天仍有

其参考价值。世界上最早的一种密码产生于公元前两世纪。是由一位希腊人提出的,人们称之为

棋盘密码,原因为该密码将26个字母放在5×5的方格里,i,j放在一个格子里,具体情

况如下表所示

1 2 3 4 5

1 a b c 搜索d e

2 f g h i,j k

3 l m n o p

4 q r s t u

5 v w x y z

这样,每个字母就对应了由两个数构成的字符αβ,α是该字母所在行的标号,β是列

标号。如c对应13,s对应43等。如果接收到密文为

43 15 13 45 42 15 32 15 43 43 11 22 15

则对应的明文即为secure message。

另一种具有代表性的密码是凯撒密码。它是将英文字母向前推移k位。如k=5,则密

文字母与明文与如下对应关系

a b c d e f g h i j k l m n o p q r s t u v w x y z

F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

于是对应于明文secure message,可得密文为XJHZWJRJXXFLJ。此时,k就是密钥。为了

传送方便,可以将26个字母一一对应于从0到25的26个整数。如a对1,b对2,……,y对

25,z对0。这样凯撒加密变换实际就是一个同余式

c≡m+k mod 26

其中m是明文字母对应的数,c是与明文对应的密文的数。

随后,为了提高凯撒密码的安全性,人们对凯撒密码进行了改进。选取k,b作为两

个参数,其中要求k与26互素,明文与密文的对应规则为

c≡km+b mod 26

可以看出,k=1就是前面提到的凯撒密码。于是这种加密变换是凯撒野加密变换的

推广,并且其保密程度也比凯撒密码高。

以上介绍的密码体制都属于单表置换。意思是一个明文字母对应的密文字母是确定

的。根据这个特点,利用频率分析可以对这样的密码体制进行有效的攻击。方法是在大

量的书籍、报刊和文章中,统计各个字母出现的频率。例如,e出现的次数最多,其次

是t,a,o,I等等。破译者通过对密文中各字母出现频率的分析,结合自然语言的字母频

率特征,就可以将该密码体制破译。

鉴于单表置换密码体制具有这样的攻击弱点,人们自然就会想办法对其进行改进,

来弥补这个弱点,增加抗攻击能力。法国密码学家维吉尼亚于1586年提出一个种多表式

密码,即一个明文字母可以表示成多个密文字母。其原理是这样的:给出密钥

K=k[1]k[2]…k[n],若明文为M=m[1]m[2]…m[n],则对应的密文为C=c[1]c[2]…c[n]。

其中C[i]=(m[i]+k[i]) mod 26。例如,若明文M为data security,密钥k=best,将明

文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为

C=EELT TIUN SMLR

从中可以看出,当K为一个字母时,就是凯撒密码。而且容易看出,K越长,保密程

度就越高。显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加

密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码可用所谓

的维吉尼亚方阵来进行,从而在操作上简单易行。该密码曾被认为是三百年内破译不了

的密码,因而这种密码在今天仍被使用着。

古典密码的发展已有悠久的历史了。尽管这些密码大都比较简单,但它在今天仍有

其参考价值。

凯撒密码的算法c语言的怎么实现啊?

凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。

#include stdio.h

main()

{

char M[100];

char C[100];

int K=3,i;

printf("请输入明文M(注意不要输入空白串)\n");

gets(M);

for(i=0;M[i]!='\0';i++)

C[i]=(M[i]-'a'+K)%26+'a';

C[i]='\0';

printf("结果是:\n%s\n",C);

}

凯撒大帝密码原理

古罗马古埃及时代(以凯撒大帝命名的密码)

原理: abcedfghijklmnopqrstuvwxyz

defghijklmnopqrstuvwxyzabc

例子:明文:Hello, every one !

密文:Khoor, hyhub rqh !

经典密码的原理

经典密码大致上分为替代式密码和移位式密码,具体原理看下面加粗字体

凯撒密码是广为人知的替代式密码。为了用凯撒密码法加密讯息,每个密码字母集中的字母将会被其位置的后3个字母替代。因此字母A将会被字母D替代、字母B将会被字母E替代、字母C将会被字母F替代等,最后,X、Y和Z将分别的被替代成A、B和C。

例如,"WIKIPEDIA"将被加密成"ZLNLSHGLD"。凯撒把字母向后移"3"位,但其他数字也可照著作。

另一种替代式密码是使用关键字,你可以选择一个单字或是短词组并去除所有的空格和重复的字母,接着把它当作密码字母集的开头。最后记得去除掉关键字的字母把其它字母接续排序。

移位式密码,它们字母本身不变,但它们在讯息中顺序是依照一个定义明确的计划改变。许多移位式密码是基于几何而设计的。一个简单的加密(也易被破解),可以将字母向右移1位。

例如,明文"Hello my name is Alice."将变成"olleH ym eman si ecilA."。密码棒(scytale)也是一种运用移位方法工具。

一个移位式密码的具体例子columnar cipher.先选择一个关键字,把原来的讯息由左而右、由上而下依照关键字长度转写成长方形。接着把关键字的字母依照字母集顺序编号,例如A就是1、B就是2、C就是3等。例如,关键字是CAT,明文是THE SKY IS BLUE,则讯息应该转换成这样:

C A T 3 1 20 T H E S K Y I S B L U E最后把讯息以行为单位,依照编号大小调换位置。呈现的应该是A行为第一行、C行为第二行、T行为第三行。然后就可以把讯息"The sky is blue"转写成HKSUTSILEYBE。

经典密码的破译

经典密码由于规律性很强,通常很容易被破解。许多经典密码可单单经由密文而破解,所以它们容易受到唯密文攻击法攻击(ciphertext-only attack)。

有些经典密码(像是凯撒密码)的金钥个数有限,所以这类密码可以使用暴力破解尝试所有的金钥。替代式密码有比较大的金钥数,但是容易被频率分析,因为每个密码字母各代表了一个明文字母。

另一方面,现代密码的设计可以承受更强大的ciphertext-only attacks。一个优秀的现代密码必须保证广泛潜在的攻击,包括known-plaintext attack和chosen-plaintext attack以及chosen-ciphertext attack。

对于密码破解者来说,应不能够找到关键,即使他知道明文和对应的密码文、即是他可以选择明文或密码文。经典密码再也不能满足这些强大的标准,因此,有兴趣者再也不拿它来做安全应用了。

以上内容参考 百度百科-经典密码

说明:凯撒密码中的英文字母的移位以及25位循环的原理,初学密码学有些不明白为什么4段单词可推出6段的密文

凯撒密码不是需要数字密匙吗?你可以把维纳热尔方阵列出来看看,有第26行的 。

例如:phhw ph diwhu wkh wrjd sduwb 得出:meet me after the toga party

这个密文是倒数3位字母