#include<stdioh>
#include<mathh>
int main()
{
int k;
int i;
char a[100];
printf("输入k:");
scanf("%d", &k);
printf("输入一段英文:");
getchar();
gets(a);
for (i = 0; a[i]; i++)
{
if (a[i] <= 'Z'&&a[i] >= 'A')
a[i] = (a[i] + k - 'A') % 26 + 'A';
else if (a[i] <= 'z'&&a[i] >= 'a')
a[i] = (a[i] + k - 'a') % 26 + 'a';
}
printf("加密后:");
puts(a);
return 0;
}
信息理论之父:克劳德 香农
论文《通信的数学理论》
如果没有信息加密,信息直接被中间人拦截查看、修改。
明文Plain text
密文Cipher text
加密Encryption/Encrypherment:将明文转化为密文
解密Decrytion/Decipherment:讲密文还原为明文
加密钥匙EK Encryption Key:加密时配合加密算法的数据
解密钥匙EK Encryption Key:解密时配合解密算法的数据
各个字符按照顺序进行n个字符错位的加密方法。
(凯撒是古罗马军事家政治家)
多次使用恺撒密码来加密并不能获得更大的安全性,因为使用偏移量A加密得到的结果再用偏移量B加密,等同于使用A+B的偏移量进行加密的结果。
凯撒密码最多只有25个密匙 +1到+25 安全强度几乎为0
(密钥为0或26时,明文在加密前后内容不变)
暴力枚举
根据密文,暴力列出25个密匙解密后的结果。
凯撒密码的例子是所有 单字母替代式密码 的典范,它只使用一个密码字母集。
我们也可以使用多字母替代式密码,使用的是多个密码字母集。
加密由两组或多组 密码字母集 组成,加密者可自由的选择然后用交替的密码字母集加密讯息。
(增加了解码的困难度,因为密码破解者必须找出这两组密码字母集)
另一个多字母替代式密码的例子“维吉尼亚密码”,将更难解密
(法语:Vigenère cypher),
它有26组不同用来加密的密码字母集。
每个密码字母集就是多移了一位的凯撒密码。
维吉尼亚方格(替换对照表):
维吉尼亚密码引入了密匙概念。
同一明文在密文中的每个对应,可能都不一样。
移位式密码,明文中出现的字母依然出现在密文中,只有字母顺序是依照一个定义明确的计划改变。
许多移位式密码是基于几何而设计的。一个简单的加密(也易被破解),可以将字母向右移1位。
例如,明文"Hello my name is Alice"
将变成"olleH ym eman si ecilA"
密码棒(英语:scytale)也是一种运用移位方法工具。
如
明文分组,按字符长度来分,每5个字母分一组。
并将各组内的字符的顺序进行替换。
具体例子
纵栏式移项密码
先选择一个关键字,把原来的讯息由左而右、由上而下依照关键字长度转写成长方形。接着把关键字的字母依照字母集顺序编号,例如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。
另一种移位式密码是中国式密码(英语:Chinese cipher),移位的方法是将讯息的字母加密成由右而左、上下交替便成不规则的字母。范例,如果明文是:THE DOG RAN FAR,则中国式密码看起来像这样:
R R G T
A A O H
F N D E
密码文将写成:RRGT AAOH FNDE
绝大多数的移位式密码与这两个范例相类似,通常会重新排列字母的行或列,然后有系统的移动字母。其它一些例子包括Vertical Parallel和双移位式(英语:Double Transposition)密码。
更复杂的算法可以混合替代和移位成为积密码(product cipher);现代资料区段密码像是DES反复位移和替代的几个步骤。
行数=栏数
明文,分为N栏(N行) 按照明文本来的顺序,竖着从上往下填。
实例1
明文123456
栏数2(行数2)
密文135246
135
246
拆成2行(2栏),竖着看密文——得到明文
实例2明文123456789abcdefghi 栏数9 (行数)--->密文1a2b3c4d5e6f7g8h9i
拆成9行竖着看密文
1a
2b
3c
4d
5e
6f
7g
8h
9i
古典密码栅栏密码安全度极低组成栅栏的字母一般一两句话,30个字母。不会太多! 加解密都麻烦
是指研究字母或者字母组合在文本中出现的频率。应用频率分析可以破解古典密码。
工具
在线词频分析 >
古典密码学的特点是手工加密和解密。
密码学(Cryptography),是一门将信息进行加密处理与传递,以及分析加密信息的学科。根据以 RSA 为代表的公钥加密体系的出现,可以将密码学的发展过程分为古典密码学与现代密码学两部分。
古典密码学以「置换法」与「替换法」为基础,多应用于军事与情报领域;现代密码学则建立在数学、计算机与通信科学的基础上,除了加密信息之外,数字签名、数据完整性、身份认证等也是现代密码学的研究课题。
古典密码学(Classic cryptography)和现代密码学(Modern cryptography)的主要差别在于计算机的使用,一般来说,古典密码学是基于字符的,而现代密码学是基于二进制位的。
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
古典密码学的特点是加解密过程复杂是错的。
古典密码学的特点:
计算强度小;出现在 DES(数字加密标准,被广泛应用的私钥系统)之前;数据的安全基于算法保密;以字母表为主要加密对象;使用置换和替换技术;密码分析方法基于字母与字母组合的频率特性以及明文的可读性。
古典密码有以下这些类型:
凯撒密码:将明文中的字符移动一定的位数(k)来实现加密和解密,也就是明文中的所有字符都在字符表上进行 k 偏移,形成密文。
乘法密码:使用采样的方式进行加密,将明文字符串的每个字符,每隔 k 位算出字符并排列起来形成密文。
仿射密码:明文中所有字符按照(ax+b)mod26 进行计算,得到密文。
维吉尼亚密码:使用字符串作为密钥,并把密钥与明文进行对应,依次重复密钥,直至与明文的长度相同。
密码学(Cryptology)是一种用来混淆的技术,它希望将正常的、可识别的信息转变为无法识别的信息。
目前密码学的研究,一种是偏应用,把现有的,别人研究出来的密码学算法,放在一个合适的地方,使这些算法能够发挥出更大的作用。
另一种是偏理论的,研究新的密码学算法,或者研究现有密码学算法的安全性,对现有密码学算法进行安全性、效率等改进,比如众所周知的密码学两大分支密密码编码学和密码分析学。
密码编码学是指为了达到隐藏消息含义目的,按约定的规则将表示明文信息的消息变换为秘密信息的科学,其有三个分支:对称密码学,非对称密码学和密码协议。
密码分析学指的是研究密码、密文或密码系统,着眼于找到其弱点,在不知道密匙和算法的情况下,从密文中得到原文的学科。如图所示,密码分析的方法有很多,包括数学分析法,穷举法、差分分析法等等,其中最有效的攻击手段是社会工程学。
作为古典密码学时代加密法发展的巅峰,恩尼格玛机的出现,意味着从此开始,密码学不再依赖纸和笔的运算,使用机械和电子加密的时代正式到来。
第一台恩尼格玛机,是一战刚刚结束的时候由德国发明家雪毕伍斯(Arthur Scherbius)和里特(Richard Ritter)制造出的。
它主要由三部分组成,分别是键盘、编码器和显示板。
1键盘
这相当于恩尼格玛机的“输入设备”,它与普通打字机相似,用来输入信息的原文。但出于安全考虑,键盘只有26个字母,而没有标点符号。
2显示板
这相当于恩尼格玛机的“输出设备”,板上显示26个字母,每个字母下面有一个小灯泡,用来显示加密或解密后的字母。
3编码器
这是恩尼格玛机的核心部分,由一堆可以手工设置的机械部件组成,主要包括了转子、反射器和接线板,通过线路与键盘和显示板相连接,任何地方的调整都会改变加密的结果。
转子一般有3套齿轮,类似于时钟的时针、分针、秒针,位于最右侧的齿轮每转动一圈,中间的齿轮转动一个刻度,每个齿轮有26个刻度,代表26个字母;
反射器固定不动,它与转子的3套齿轮位于同一个轴上,可以使解码过程完全重现编码过程;
接线板一般有6根连接线,将26个字母中的12个两两相连,比如字母A和B相连,那么输入字母A时,显示的就是B。
输入的字母每经过编码器中的一个装置,就会完成一次替换。
通过恩尼格玛机的组成可以看出,它基于的原理仍然是第二代加密法——替代法,只不过由于经过了多套替换,对应的原文与密文之间存在数以亿计种可能,同时也使频率分析法无用武之地。
使用恩尼格玛机完成一次加密,大概要经过9个步骤:
1设置好三个转子的初始值,并用6根插头电线连好接线板上的6对插口;
2在键盘上打明文,每打一个字母,该字母信号就会通过相应的电线传到接线板;
3在接线板上,如果该字母恰好属于6对连接起来的插口中的一对,则字母互换,否则字母不变,通过接线圆环把字母信号传到右面第一个齿轮上;
4该齿轮通过内部电线的连接方式,对输入的字母进行替换,然后传到中间的转轮,同时自己转运一个刻度;
5中间的齿轮再对字母进行替换,然后传到左边第一个齿轮;如果这时右边的齿轮恰好从25刻度转到0刻度,则中间齿轮转动一个刻度,否则不转;
6左边的齿轮再对字母进行替换,然后传给最左边的反射器;如果这时中间的齿轮恰好从25刻度转到0刻度,则左边齿轮转动一个刻度,否则不转;
7反射器对字母进行替换,然后传回给左边齿轮;
8字母信号再从左边齿轮、中间齿轮、右边齿轮和接线板依次转回,每经过一次都会进行一次字母替换;
9最后,信号传到字母板上,使相应字母下面的小灯泡点亮,显示出加密后的字母。
那么,这个加密过程,其安全性能达到什么程度呢?
我们可以看到,在整个加密过程中,一个字母要经过7-9次的替换:被3套齿轮各替换两次,被反射器替换一次,共7次;如果还经过接线板,则再加两次,一共9次。
再来计算一下有多少种替换的可能:
a3个齿轮的排列位置可以是任意的,所以共有 种排列方式;
b3个齿轮的排列位置确定后,一共可以有 种初始转动位置;
c接线板上,从26个字母中任意选取6对字母互换的方式可以有
种
所以,替换的可能数有:
共有1亿亿余种可能。
更为关键的是,如此复杂的替换过程完成由机械完成,加密人员只需要设定好转子的初始位置,连接好接线板,然后像打字员一样正常输入字母就可以,密文随之自动生成。
这也就是恩尼格玛机为何如此受青睐的原因,它达到了安全和效率的完美平衡。
这样强大的加密杀器,究竟能不能被破解呢?
往期文章:
密码那些事儿|(十三)尴尬的维吉尼亚30
密码那些事儿|(十二)短命的维吉尼亚20
密码那些事儿|(十一)南北战争时的维吉尼亚密码大战
密码那些事儿|(十)“钥匙”打开维吉尼亚的锁
密码那些事儿|(九)维吉尼亚登场
密码那些事儿|(八)玛丽女王被密码改变的人生
密码那些事儿|(七)以频率之矛,攻移位之盾
密码那些事儿|(六)中外古时候的移位加密
密码那些事儿|(五)换个位置,面目全非
密码那些事儿|(四)隐藏的消息
密码那些事儿|(三)“风语者”——从未被破解的密码
本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!
《钻奖励调整公告》
以上就是关于有种古典加密方法就是按照字母表顺序,把每个字母循环右移k位,从而转换为加密的另一个字母。全部的内容,包括:有种古典加密方法就是按照字母表顺序,把每个字母循环右移k位,从而转换为加密的另一个字母。、密码学 - 古典加密、古典密码学的特点是加解密过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)