当前位置:首页 » 密码管理 » 移位替换加密

移位替换加密

发布时间: 2023-04-01 09:22:37

‘壹’ 计算机密码学中有哪些加密算法

、信息加密概述

密码学是一门古老而深奥的学科,它对一般人来说是莫生的,因为长期以来,它只在很少的范围内,如军事、外交、情报等部门使用。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交义学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。

密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。

任何一个加密系统至少包括下面四个组成部分:

( 1)、未加密的报文,也称明文。

( 2)、加密后的报文,也称密文。

( 3)、加密解密设备或算法。

( 4)、加密解密的密钥。

发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。

二、密码的分类

从不同的角度根据不同的标准,可以把密码分成若干类。

(一)按应用技术或历史发展阶段划分:

1、手工密码。以手工完成加密作业,或者以简单器具辅助操作的密码,叫作手工密码。第一次世界大战前主要是这种作业形式。

2、机械密码。以机械密码机或电动密码机来完成加解密作业的密码,叫作机械密码。这种密码从第一次世界大战出现到第二次世界大战中得到普遍应用。3、电子机内乱密码。通过电子电路,以严格的程序进行逻辑运算,以少量制乱元素生产大量的加密乱数,因为其制乱是在加解密过程中完成的而不需预先制作,所以称为电子机内乱密码。从五十年代末期出现到七十年代广泛应用。

4、计算机密码,是以计算机软件编程进行算法加密为特点,适用于计算机数据保护和网络通讯等广泛用途的密码。

(二)按保密程度划分:

1、理论上保密的密码。不管获取多少密文和有多大的计算能力,对明文始终不能得到唯一解的密码,叫作理论上保密的密码。也叫理论不可破的密码。如客观随机一次一密的密码就属于这种。

2、实际上保密的密码。在理论上可破,但在现有客观条件下,无法通过计算来确定唯一解的密码,叫作实际上保密的密码。

3、不保密的密码。在获取一定数量的密文后可以得到唯一解的密码,叫作不保密密码。如早期单表代替密码,后来的多表代替密码,以及明文加少量密钥等密码,现在都成为不保密的密码。

(三)、按密钥方式划分:

1、对称式密码。收发双方使用相同密钥的密码,叫作对称式密码。传统的密码都属此类。

2、非对称式密码。收发双方使用不同密钥的密码,叫作非对称式密码。如现代密码中的公共密钥密码就属此类。

(四)按明文形态:

1、模拟型密码。用以加密模拟信息。如对动态范围之内,连续变化的语音信号加密的密码,叫作模拟式密码。

2、数字型密码。用于加密数字信息。对两个离散电平构成0、1二进制关系的电报信息加密的密码叫作数字型密码。

(五)按编制原理划分:

可分为移位、代替和置换三种以及它们的组合形式。古今中外的密码,不论其形态多么繁杂,变化多么巧妙,都是按照这三种基本原理编制出来的。移位、代替和置换这三种原理在密码编制和使用中相互结合,灵活应用。

‘贰’ 密码那些事儿|(五)换个位置,面目全非

移位法和替代法大约5000年前出现,但直到9世纪才被阿拉伯人发明的频率分析法破解,中间隔了足足有4000年。在另一边的欧洲,实际上直到16世纪,都还没掌握这种破解方法。从这里我们也能感受到,阿拉伯文明曾经的辉煌。

移位法很简单。我举个例子,比如你的答乎电话号码13911095871,把每个数字都在数列中往后加1,那么1变2,2变3,加密后就变成了24022106982。

13911095871叫做明文,24022106982则是它对应的密文。

字母的移位也是同样的道理,因为字母是遵循着abcdef……xyz的顺序排列,一共26个,看起来会比单纯的数字移位复杂一些,但本质上仍是一样的。

比如要对iron man加密,加密规则选择每个字母都向后移动3位, “iron man”就变成了“lurq pdq”。

没有经验的人乍看一下,完全就是乱码,实际上它只不过做了基础加密而已。这就是最基础的移位法。

大约在公元前700年左右,出现了用一种叫做Scytale的圆木棍来进行保密通信的方式。这种Scytale圆木棍也许是人类最早使用的文字加密解密工具,据说主要是古希腊城邦中的斯巴达人(Sparta)在使用它,所以又被叫做“斯巴达棒”。

相传雅典和斯巴达之间的伯罗奔尼撒战争中,斯巴达军队截获了一条写满杂乱无章的希腊字母的腰带,斯巴达将军在百思不得其解之际,胡乱将腰带缠到自己的宝剑上,从而误打误撞发清竖悉现了其中隐藏的军机。这就是斯巴达密纤缓码棒的由来。

“斯巴达棒”的加密原理就是,把长带子状羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。

比如像上图那样,在缠好的布带上写上“ YOU ARE IN DANGER”,然后再拆下来,布带上的文字顺序就变成了“YIONUDAARNEGER”,完全看不出任何头绪,这样就起到了加密的作用。

2100年前,古罗马的执政官和军队统帅恺撒(Julius Caesar,公元前100—前44)发明了一种把所有的字母按字母表顺序循环移位的文字加密方法。例如,当规定按字母表顺移3位的话,那么a就写成d,b写成e,c写成f,…,x写成a,y写成b,z写成c。单词Hello就写成了Khoor。如果不知道加密方法,谁也不会知道这个词的意思。解密时,只需把所有的字母逆移3位,就能读到正确的文本了。

上图就是根据恺撒加密法的原理而制作的字母循环移位盘。可以根据需要设定加密时移位的位数,以供加密或解密时快速查询。据说恺撒当年就是使用这种加密方法与手下的将军们通信的。

从密码学的角度来看,虽然恺撒加密法的规则很简单,然而,恺撒加密的思想对于西方古典密码学的发展有着很大影响。

事实上,直到第二次世界大战结束,西方所使用的加密方法原理大多与恺撒加密法类似,只是规则越来越复杂而已。

尽管移位法加密在西方得到了很普遍的应用,但在中国的史书上却很少记载,各位朋友可以想一想是为什么?

感兴趣的朋友们不妨在评论区一起聊一聊。

下一次,我们继续了解移位法和替代法的故事。

往期文章:

密码那些事儿|(四)隐藏的消息

密码那些事儿|(三)“风语者”——从未被破解的密码

密码那些事儿|(二)密码学发展的七个阶段

密码那些事儿|(一)无所不在的密码

本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!

《钻奖励调整公告》

‘叁’ C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文

#include<iostream>
#include<string>

usingnamespacestd;

intmain()
{
stringcode;//储存初始字符串
stringd_code;//加密后的字符串
inti;
intn;//移位的个数
cout<<"Enterthestring"<<endl;
cin>>code;
cout<<"howmanystepdoyouwanttomove?"<<endl;
cin>>n;
for(i=0;i<code.size();++i)
{
if(int(code[i])>97)
{
if(int(code[i])+n>122)
d_code[i]=int(code[i])+n-26;
else
d_code[i]=int(code[i])+n;
}
elseif(int(code[i])+n>90)
d_code[i]=char(int(code[i])+n-26);
else
d_code[i]=char(int(code[i]+n));
}
for(i=0;i<code.size();++i)
{
cout<<d_code[i];
}
cout<<endl;
cout<<"Code="<<code<<endl;
return0;
}

‘肆’ 密码学(二)之代换密码

上一讲中,我们讲移位密码其实是将字母表中的字母一一对应到各数字,然后通过饥滚数字平移来进行加密,古典密码学中还有一种比较有名的加密方法,就是将明文中的字母表对应到一套密文的字母表,这种加密方法我们叫 代换密码(substiution cipher) 或叫 替换密码 ,下图就是一个简单的代换密码对应表

上面所说,代换密码其实就是将明文里的字母按照字母表替换成密文里的字母,还是举一个例子,假设现在有一个字符“welcome to china”,根据上面的密码替换表,将明文里面的每个字母依次换成对应的密文,如下:

这样就可以得到密文CXGHBEXQBHTJNW

代换密码的解密非常简单,只要将加密的替换表进行反向操作,这里不再操作

这里可以发现,代换密码主要是要建立起一套明文与密文之间的加密对应的替换关系,只要有这套密码替换表,加、解密就变得很容易

上一讲我们知道,移位密码其实是很好破解的,因为密钥总量一共就26位,只要我们试26次,就一定能试出一个正解的,那么代换密码是也可以通过穷举的方式来破解呢?

我们知道代换密码是把明文的26个字母随机对应密文的26个字母上,也就意味着明文中第一个字母a可以对应到密文中A,B,C,D…Z 26个字母中的任一个,以此类推,我们就可以计算出代换密码的隐陆密钥总数为:

像这种一种密码能够使用的所有密钥的集合,叫做 密钥空间(keyspace)

上面的密钥的量非常大,用穷举法来破译几乎是不可能的。

使用穷举法不能破译,但并不能说明就是安全的,我们可以使用 频率分析 来破译代换密码,频率分析就是利用明文中的字母出现频率与密文中的字母的出现频率一致这一特性,

下面是【密码学原理与实践】书中的一个例子,可以参考一下

现假设有一段密文如下,现需将其解密出明文

这种密文的频率分析如下图:

根据 英文字母出现的频率 排序统计,一般的排序是这样的e,t,a,o,I,n,s,h,r,d,l,u,c,m,f,w,y,p,v,b,g,k,j,q,x,z 而且一般英语文章中出现频率最高的的字母是e,这一点基本不会错的。

根据上图所示,字母Z出现的次数是20,远远高于其它密文字母,所以我们可以假设Z->e。其它出现至少10余次的官方字母是C,D,F,J,M,R,Y,我们希望这些字母对应的是

e t a o l n s h r中的一个子集,

我们现在烂携余假设了Z->e,现注意一下形如-Z, Z-的两字母组,我们发现出现这种类型的最一般的两字母组是DZ和ZW,各都出现了4次;NZ和ZU出现3次,RZ HZ XZ FZ ZR ZV ZC ZD ZJ各出现2次;又因ZW出现4次,而WZ一次也未出现,同时W比许多其它字母出现的次娄少,所以我们可以假设W->d,又因为DZ出现4次而ZD出现2次,故可猜测D是{r,s,t}中的任一个,具体是哪个还不清楚。

如上面猜测, Z->, D->d,再看看密文并注意到ZRW出现在密文的开始部分,RW后面也出现过,因为R在密文频繁地出现,而nd是一个常见的两字母组,所以我们可以假设R->n作为可能的情况,这样我们便有了如下的形式

接下来我们可以试试N->h,因为NZ是一个常见的两字组而ZN不是一个常见的两字母组,如果这个猜测是正确的,则明文ne-ndhe很可能说明C->a,结合这些收市,我们又进一步有:

现在考虑出现次数高的密文字母M,由前面分析,密文段RNM密钥成nh-,这说明h-是一个词的开头,所以M很可能是一个元音,因为已经使用了a和e,所以猜测M->{i或o},因为ai是一个比ao出现次数更高的明文组,所以首先猜测M->I,这样就有:

下面需要确定明文o对应的密文,因为为是一个经常出现的字母,所以我们猜测相应的密文字母是D F J Y 中的一个,Y似乎最有可能,否则将得到长元音,即从CFM或CJM中得到aoi,因此假设Y->o。

剩下密文字母中三个最高频率的字母是D F J,我们猜测他们以某种次序解密成r s t, 三字母NMD两次出现说明很可能D->s,对应的明文三字母组为his,HNCMF可能是chair的加密,说明F->r,H->c,同时排除J->t,于是我们有了:

有了上面的提示,就很容易确定出明文,解密明文如下

【密码学原理与实践(第三版)】

【图解密码技术】

‘伍’ 古典加密算法有哪些 古典加密算法

世界上最早的一种密码产生于公元前两世纪。是由一位希腊人提出的,人们称之为
棋盘密码,原因为该密码将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越长,保密程
度就越高。显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加
密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码可用所谓
的维吉尼亚方阵来进行,从而在操作上简单易行。该密码曾被认为是三百年内破译不了
的密码,因而这种密码在今天仍被使用着。
古典密码的发展已有悠久的历史了。尽管这些密码大都比较简单,但它在今天仍有
其参考价值。

‘陆’ 第三代加密法--维吉尼亚加密法

        加密法的需求在军事上及政治上的显现极为旺盛,也迫使它快速地向前发展。传统的移位及替代法虽然使用方便,但可以采用统计的方式进行破解,安全性还有待加强。

        所以后期就发展出一种新的加密方法,即维吉尼亚加密法。这种方法的出发点是,对于相同的字母或数字,加密后的密文可能不同,这就没法从统计的角度解密。

        基本的加密方法,可以参考下图。

        这张图中, 第一行代表原文的数字或字符,每一列代表加密采用第几套替代方案,每一横行的字符对应该列的字母加密后的密文 。是不是够复杂哈,如果采用这样的方式手工加密解密,写一封邮件估计要崩溃死了。。。。

        而且这套加密方法使用中还存在一些问题,就是需要把 整个加密图传给解密方 ,没有该图做指导,解密的人也是一脸懵逼。。。。

        但方法是死的,人是活的,人最可贵的一点就是遇到问题会想各种解决方法。所以这个问题如何解呢?关键在于一个密钥(key),比如以“yes”为密钥,加密时第一个字母采用"y"(即第25套替代方案)加密,将原文字母向后移动25位;第二个字母采用“e”(即第5套方案)加密,将原文字母向后移动5位;第三个字母采用"s"(即第19套方案)加密,将原文字母向后移动19位;依次循环加密。

        比如加密“hello”,加密结果就如下,加密后的密文为“FIDJS”,两个字母“l”分别对应D和J,就没法用统计法找出破绽了。    

        但该方法加密解密超费劲,人工处理很容易出错,所以发明了200年还未被广泛使用,直到能够采用机器进行处理之后,才被人翻出来使用。

       

‘柒’ 密码体制中,加密算法一般分为哪几种

古典加密算法分为替代算法和置换移位法。

1、替代算法

替代算法用明文的字母由其他字母或数字或符号所代替。最着名的替代算法是恺撒密码。凯撒密码的原理很简单,其实就是单字母替换。

例子:

明文:abcdefghijklmnopq

密文:defghijklmnopqrst

2、置换移位法

使用置换移位法的最着名的一种密码称为维吉尼亚密码。它以置换移位为基础的周期替换密码。

在维吉尼亚密码中,加密密钥是一个可被任意指定的字符串。加密密钥字符依次逐个作用于明文信息字符。明文信息长度往往会大于密钥字符串长度,而明文的每一个字符都需要有一个对应的密钥字符,因此密钥就需要不断循环,直至明文每一个字符都对应一个密钥字符。

其他常见的加密算法

1、DES算法是密码体制中的对称密码体制,把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。

2、3DES是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。

3、RC2和RC4是对称算法,用变长密钥对大量数据进行加密,比DES快。

4、IDEA算法是在DES算法的基础上发展出来的,是作为迭代的分组密码实现的,使用128位的密钥和8个循环。

5、RSA是由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法。

6、DSA,即数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法。

7、AES是高级加密标准对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael算法。

‘捌’ 换位密码的加密方法

加密换位密码通过密钥只需要对明文进行加密,并且重新排列里面的字母位置即可。具体方法如下

1、基于二维数组移位的加密算法

给定一个二维数组的列数,即该二维数组每行可以保存的字符个数。再将明文字符串按行依次排列到该二维数组中。最后按列读出该二维数组中的字符,这样便可得到密文。

2、换位解密算法(基于二维数组移位的解密算法)

先给定一个二维数组的列数,即该二维数组每行可以保存的字符个数,并且这个数应该和加密算法中的一致。接下来将密文字符串按列一次性排列到该二维数组中。最后按行读出该二维数组中的字符即可。

3、换位加密算法

首先按照密钥排列顺序:将想要加密的明文加密,然后列出表格,找出对应的字母,就是密钥。然后对他们进行换位加密,就是将表格的第二行依据密钥排列顺序进行排序以便得到加密后的密文。

(8)移位替换加密扩展阅读

数据加密技术的分类

1、专用密钥

又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。

2、对称密钥

对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而如今仍广泛被采用。它将数据分成长度为64位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。首先将原文进行置换,得到64位的杂乱无章的数据组,然后将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。

3、公开密钥

又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。公开密钥的加密机制虽提供了良好的保密性,但难以鉴别发送者,即任何得到公开密钥的人都可以生成和发送报文。

4、非对称加密技术

数字签名一般采用非对称加密技术(如RSA),通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开密钥对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。数字签名不同于手写签字,数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而手写签字是附加在文本之后的,与文本信息是分离的。

‘玖’ 替代密码的替代密码的分类

根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码。
单表替代密码的密码算法加解密时使用一个固定的替换表。单表替代密码又可分为一般单表替代密码、移位密码、仿射密码、密钥短语密码。
多表替代密码的密码算法加解密时使用多个替换表。 多表替代密码有弗吉尼亚密码、希尔(Hill)密码、一次一密钥密码、Playfair密码。 单表替代密码对明文中的所有字母都使用一个固定的映射(明文字母表到密文字母表)。设A={a0, a1,…, an-1}为包含了n个字母的明文字母表;
B={b0, b1,…, bn-1} 为包含n个字母的密文字母表,单表替代密码使用了A到B的映射关系:f:A→B, f ( ai )= bj
一般情况下,f 是一一映射,以保证加密的可逆性。加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。经常密文字母表与明文字母表的字符集是相同的,这时的密钥就是映射f。下面给出几种典型的单表替代密码。
⒈一般单表替代密码
一般单表替代密码的原理是以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变换。可描述为:明文空间M和密文空间C都是26个英文字母的集合,密钥空间K={π:Z26→Z26|π是置换},是所有可能置换的集合。
对任意π∈K,定义:
加密变换:eπ(m)=π(m)=c
解密变换:dπ(c) = π-1(c)=m, π-1是π的逆置换。
例:设置换π的对应关系如下:
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
q w e r t y u i o p a s d f g h j k l z x c v b n m
试用单表替代密码以π为密钥对明文消息message加密,然后写出逆置换 ,并对密文解密。
解:以π为密钥用单表替代密码对明文消息message加密,所得
密文消息为: π(m) π(e) π(s) π(s) π(a) π(g) π(e)=dtllqut
一般单表替代密码算法特点:
▲密钥空间K很大,|K|=26!=4×10^26 ,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013 年。
▲移位密码体制是替换密码体制的一个特例,它仅含26个置换做为密钥空间。
密钥π不便记忆。
▲针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。
⒉移位密码
明文空间M、密文空间C都是和密钥空间K满足,即把26个英文字母与整数0,1,2,…,25一一对应。
加密变换,E={E:Z26→Z26, Ek (m) = m + k (mod26)| m∈M, k∈K }
解密变换,D={D:Z26→Z26, Dk (c) = c-k (mod26)| c∈C, k∈K }
解密后再把Z26中的元素转换英文字母。
显然,移位密码是前面一般单表替代密码的一个特例。当移位密码的 密钥k=3时,就是历史上着名的凯撒密码(Caesar)。根据其加密函数特 点,移位密码也称为加法密码。
⒊仿射密码
仿射密码也是一般单表替代密码的一个特例,是一种线性变换。仿射密码的明文空间和密文空间与移位密码相同,但密钥空间为 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
对任意m∈M,c∈C,k = (k1,k2)∈K,定义加密变换为 c = Ek (m) = k1 m +k2 (mod 26)
相应解密变换为: m = Dk (c) = k1 (c-k2) (mod 26)
其中,K1 k1=1mod26 。很明显,k1=1时即为移位密码,而k2=1则称为乘法密码。
⒋密钥短语密码
选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。当选择上面的密钥进行加密时,若明文为“china”,则密文为“yfgmk”。显然,不同的密钥可以得到不同的替换表,对于明文为英文单词或短语的情况时,密钥短语密码最多可能有26!=4×1026个不同的替换表。 单表替代密码表现出明文中单字母出现的频率分布与密文中相同, 多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现 的频率分布,每个映射是简单替代密码中的一对一映射多表替代密码将 明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进 行替代,同一个字母有不同的密文,改变了单表替代密码中密文的唯一 性,使密码分析更加困难。
多表替代密码的特点是使用了两个或两个以上的替代表。着名的维吉尼亚密码和Hill密码等均是多表替代密码。
⒈维吉尼亚密码
维吉尼亚密码是最古老而且最着名的多表替代密码体制之一,与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的。
该密码体制有一个参数n。在加解密时,同样把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合,因此可表示
加密变换定义如下:
设密钥 k=(k1,k2,…,kn), 明文m=(m1,m2,…,mn), 加密变换为:
Ek(m)=(c1,c2,…,cn),
其中ci(mi + ki)(mod26),i =1,2,…,n
对密文 c=(c1,c2,…,cn), 解密变换为:
Dk(c)=(m1,m2,…,mn), 其中 mi=(ci -ki)(mod26),i =1,2,…,n
⒉希尔(Hill)密码
Hill密码算法的基本思想是将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。
⒊一次一密密码(One Time Pad)
若替代码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。该密码体制是美国电话电报公司的Joseph Mauborgne在1917年为电报通信设计的一种密码,所以又称为Vernam密码。Vernam密码在对明文加密,前首先将明文编码为(0,1)序列,然后再进行加密变换。
设m=(m1 m2 m3 … mi …)为明文,k=(k1 k2 k3 … ki …)为密钥,其中mi,ki ∈(0,1), i≥1, 则加密变换为: c=(c1 c2 c3 … ci …) ,其中ci = mi &Aring; ki , i≥1,
这里为模2加法(或异或运算)
解密变换为:
m=(m1 m2 m3 … mi …) ,其中mi = ci &Aring; ki , i≥1,
在应用Vernam密码时,如果对不同的明文使用不同的随机密钥,这时Vernam密码为一次一密密码。由于每一密钥序列都是等概率随机产生的,敌手没有任何信息用来对密文进行密码分析。香农(Claude Shannon)从信息论的角度证明了这种密码体制在理论上是不可破译的。但如果重复使用同一个密钥加密不同的明文,则这时的Vernam密码就较为容易破译。
若敌手获得了一个密文c=(c1 c2 c3 … ci …) 和对应明文m=(m1 m2 m3 … mi …) 时,就很容易得出密钥 k=(k1 k2 k3 … ki …) ,其中ki = ci&Aring; mi,i≥1。 故若重复使用密钥,该密码体制就很不安全。
实际上Vernam密码属于序列密码,加密解密方法都使用模2加,这使软
硬件实现都非常简单。但是,这种密码体制虽然理论上是不可破译的,然而
在实际应用中,真正的一次一密系统却受到很大的限制,其主要原因在于该
密码体制要求:
① 密钥是真正的随机序列;
② 密钥长度大于等于明文长度;
③ 每个密钥只用一次(一次一密)。
这样,分发和存储这样的随机密钥序列,并确保密钥的安全都是很因难
的;另外,如何生成真正的随机序列也是一个现实问题。因此,人们转而寻
求实际上不对攻破的密码系统。
⒋Playfair密码
Playfair密码是一种着名的双字母单表替代密码,实际上Playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似,即选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母I,j占同一个位置。

‘拾’ 采用移位加密方法将明文dog变换得到的密文是多少 密钥k为6

3)是对的。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来宏银备决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列搏银代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,蔽毁依此类推,得出对应关系如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

热点内容
搭建一个流媒体服务器 发布:2024-05-05 20:40:59 浏览:665
2017中超数据库 发布:2024-05-05 20:37:25 浏览:377
编程包游戏 发布:2024-05-05 20:25:00 浏览:607
系统锁屏忘记密码如何设置 发布:2024-05-05 20:18:07 浏览:759
xp怎样访问win7 发布:2024-05-05 20:17:07 浏览:870
c语言访问http 发布:2024-05-05 20:04:14 浏览:874
什么可以配置波尔多叶 发布:2024-05-05 20:00:32 浏览:964
cgxrar解压密码 发布:2024-05-05 19:47:24 浏览:634
ubuntu编译linux内核 发布:2024-05-05 19:46:05 浏览:8
php静态方法调用对象 发布:2024-05-05 19:24:30 浏览:367