导航:首页 > 文档加密 > 加密替换方法

加密替换方法

发布时间:2023-05-31 03:06:53

㈠ 替换式密码的多表替换加密

在1467年,多表替换密码由莱昂·巴蒂斯塔·阿尔伯蒂以圆碟的形式首次描述。约翰尼斯·特里特米乌斯所着的《隐写术》(古希腊文:Steganographia)中介绍了一种表格(古希腊文:tableau)(见下;15世纪已完成但很久以后才出版)。1563年,乔瓦尼·巴蒂斯塔·德拉波尔塔(英语:Giovanni_Battista_della_Porta)在《书写中的隐蔽字符》(古希腊文:De FurtivisLiterarum Notis)描述了一个更复杂的混合字母版本。
在一个多表替换密码中,会使用多个字母作为密码。为了加快加密或解密速度,所有的字母通常写在一张表格上,密码学上称作tableau。这种表格通常是26×26,因为这样才能放下全部26个英文字母。填充表格及选择下次使用的字母的方法,就是不同多字母替换密码之间的定义。多字母替换密码比单字母更难打破,因为其替换可能性多,密文要较长才可。
其中最着名的一种为吉奥万·巴蒂斯塔·贝拉索于1585年推出的维吉尼亚密码。它于1863年之前一直未被破解。法国人称它作“不能破译的密码”(法语:le chiffre indéchiffrable)。(此密码曾被误以为由布莱斯·德·维吉尼亚所创,所以才叫作维吉尼亚密码。)
维吉尼亚密码中,表格的第一行只需直接填上26个字母,然后以握帆空下每一行的字母都是向左偏移一格。(这叫作表格横移,数学上每一列同余26。)要用这种密码需要使用一个关键字来作为密钥。关键字每次用完就再次重复。假设关键字是“CAT”,明文的第一个字由“C”加密,第二个字由“A”加密,第三个则由“T”加密,然后再回到C加密,一直重复。然后按照右边的密码表加密,例如BALL用CAT作关键字时会加密至DAEN,可见即使是同一个“L”亦会加密至另一个字母。现实中,维吉尼亚密码的关键字非常长。
1863年,弗里德里希·卡西斯基(英语:FriedrichKasiski)少校发明了一种方法(在克里米亚战争前已由查尔斯·巴贝奇秘密并独立地发明),使得可以计算维吉尼亚密码中关键字的长度。这种方法需要较长的密文,因为其运作依靠找出常见的字(如THE)使用相同关键字(如ABC)的数量,因此段瞎,极短的密文难以用此办法找出。
因此,即使在轿兆今天,如果在表格中使用混合表加密,或关键字是随机的,维吉尼亚密码理论上亦难以破解。但由于实际上很难用到这些方法,维吉尼亚密码的使用越来越少。
其他着名的多字母替换加密包括:
格兰示菲特密码 - 与维吉尼亚密码相似,但由于整个密码只使用10个单元,因此关键字长度有限,很容易被破解。博福特密码 - 这实际上就是维吉尼亚密码,除“tabula”改为向后偏移一格,数学上是等式为:密文=键-明文。博福特密码属于对等加密,即加密算法与解密算法相同。自动密钥密码 - 它的密钥开头是一个关键词,之后则是明文的重复,以避免周期函数。运动密钥密码,关键词从某些文章或名句中取出,因此可以非常长。
现代的流密码中可以看出,现代的多表替换加密都努力改进流密钥,使其尽可能的长及不可预知。

㈡ 凯撒加密法

凯撒加密法的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
凯撒加密法的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替,A=0,B=1,...,Z=25。此时偏移量为n的加密方法即为:
En(x)=(x+n)mod26{\displaystyle E_{n}(x)=(x+n)\mod 26}
解密就是:
Dn(x)=(x−n)mod26{\displaystyle D_{n}(x)=(x-n)\mod 26}

㈢ 古典密码两种加密方式

古典加密算法:置换密码
置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码有时又称为换位密码。
矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。例如,明文为attack
begins
at
five,密钥为cipher,将明文按照每行6列的形式排在矩阵中,形成如下形式:
a
t
t
a
c
k
b
e
g
i
n
s
a
t
f
i
v
e
根据密钥cipher中各字母在字母表中出现的先后顺序,给定一个置换:
1
2
3
4
5
6
f
=
1
4
5
3
2
6
根据上面的置换,将原有矩阵中的字母按照第1列,第4列,第5列,第3列,第2列,第6列的顺序排列,则有下面形式:
a
a
c
t
t
k
b
i
n
g
e
s
a
i
v
f
t
e
从而得到密文:aacttkbingesaivfte

㈣ 数据加密的方法有哪些如题

1. 数据加密标准 传统加密方法有两种,替换和置换.上面的例子采用的就是替换的方法:使用密钥将明文中的每一个字符转换为密 文中的一个字符.而置换仅将明文的字符按不同的顺序重新排列.单独使用这两种方法的任意一种都是不够安全的,但 是将这两种方法结合起来就能提供相当高的安全程度.数据加密标准(Data Encryption Standard,简称DES)就采用了 这种结合算法,它由IBM制定,并在1977年成为美国官方加密标准. DES的工作原理为:将明文分割成许多64位大小的块,每个块用64位密钥进行加密,实际上,密钥由56位数据位和8 位奇偶校验位组成,因此只有256个可能的密码而不是264个.每块先用初始置换方法进行加密,再连续进行16次复杂的 替换,最后再对其施用初始置换的逆.第i步的替换并不是直接利用原始的密钥K,而是由K与i计算出的密钥Ki. DES具有这样的特性,其解密算法与加密算法相同,除了密钥Ki的施加顺序相反以外. 2. 公开密钥加密 多年来,许多人都认为DES并不是真的很安全.事实上,即使不采用智能的方法,随着快速、高度并行的处理器的出 现,强制破解DES也是可能的.公开密钥加密方法使得DES以及类似的传统加密技术过时了.公开密钥加密方法中,加密 算法和加密密钥都是公开的,任何人都可将明文转换成密文.但是相应的解密密钥是保密的(公开密钥方法包括两个密钥, 分别用于加密和解密),而且无法从加密密钥推导出,因此,即使是加密者若未被授权也无法执行相应的解密. 公开密钥加密思想最初是由Diffie和Hellman提出的,最着名的是Rivest、Shamir以及Adleman提出的,现在通常称为 RSA(以三个发明者的首位字母命名)的方法,该方法基于下面的两个事实: 1) 已有确定一个数是不是质数的快速算法; 2) 尚未找到确定一个合数的质因子的快速算法. RSA方法的工作原理如下: 1) 任意选取两个不同的大质数p和q,计算乘积r=p*q; 2) 任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥.注意:e的选取是很容易的,例如,所有大 于p和q的质数都可用. 3) 确定解密密钥d: d * e = 1 molo(p - 1)*(q - 1) 根据e、p和q可以容易地计算出d. 4) 公开整数r和e,但是不公开d; 5) 将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为: C = Pe molo r 6) 将密文C解密为明文P,计算方法为: P = Cd molo r 然而只根据r和e(不是p和q)要计算出d是不可能的.因此,任何人都可对明文进行加密,但只有授权用户(知道d) 才可对密文解密.

㈤ 用C++编程实现 替换加密法

#include <iostream.h>

void main()
{
char Code[5]="LOVE";
char *p =new char [4];
int i = 0;
while(Code[i] != '\0')
{
p[i] = Code[i]+3;
cout<<p[i];
i++;
}
cout<<endl;
}

输出为:ORYH
Press any key to continue

㈥ 替换式密码的谐音替换法

早期的加密中,为增加替换式密码应付频率分析攻击的强度,有时会采用“谐音”来改变明文字母频率。在这种加密算法中,明文字母可以映射到多个密文符号。通常情况下,频率最高的明文符号(如E)会比低使用频率的字母(如X)有更多的谐音符号,使频率分布更为平坦,让分析更困难。
但亦因此,只是字母之间互相替换就会造成不够分配,从而有了好几种不同的解决方法。其中最简单的方式可以算是用1-0共10个数字作为某些字母的替换。另一种方法则是将现有的字母分开成原字母配以简单的变化、大写、小写、上下倒转的字母、镜像文字(左右倒转)等。虽然更为艺术化,却不代表一定更安全,其中一些谐音替换法全部使用新发明的奇特符号来代表字母。
一种有趣的变化名为命名密码法(英语:nomenclator)。此加密法有许多不同的版本,之间的区别来自其前缀。而该前缀来自宣读来访贵宾称号的公职人员名字。这种密码结合一个小型密码本(英语:Codebook)组成一个大型的谐音替换表。在此密码中,常用单词会按密码本加密,余下字母则按另一本密码本加密,两者符号最后在密文中混起来,以减低简易替换密码中被破解的风险。路易十四所使用的密码是罗西诺尔家族(英语:Rossignols)创立的伟大密码,该密码直至法国王室废止后百年才被破解。
15世纪早期至18世纪后期,命名密码是外交文件及间谍最常使用的加密,然而其中大多数仍然使用加密性能较差的命名密码。虽然由十六世纪中叶开始政府情报机构的密码分析员就破解部分命名密码法,但使用者通常的反应仅仅是加大谐音替换表。十八世纪后期,谐音替换系统开始消亡之时,一些命名密码已有高达5万个符号。
然而,并非所有命名密码法都已被破解。直到今天,仍然不时有新的命名密码被破解的新闻。
比尔密码是另一个谐音替换法的例子。这个故事指在1819年至1821年期间由一个加密文本来隐藏美国独立宣言中所述的宝藏。在这里,每个密文字符由一个数字替换。数字代表着独立宣言中第几个字的第一个字母。独立宣言中许多字的首字母都是一样的,而密文数字能是其中任何一个,例如正文中第二和第六个字都是“I”开头,即“I”既可以是2,又可以是6。而解读仅仅就是把密文中的数字(如代数X),放到独立宣言中查找(第X个字的首字母)。
斯塔尔则描述了另一个谐音替换密码,其密码是第一次尝试在电脑的数据库上加密。在斯塔尔的方法中,无论是明文还是密文都是以二进制字符串存储,因此谐音的数量可以非常大,使得频率分析比平常更为困难。
书本式加密(英语:Book cipher)与散列板都是谐音替换密码的一种。

㈦ 字符替换加密功能

简单讲就是对一篇文章中的字母进行调换,比如字母A的换成字母C,以此类推替换之后别人就认不出来了,而根据事先制定好的对应规则转换一下就又变回原来的文章了。当然这是最简单替换加密,而正常的加密应该是在编码层面上的。我们知道在计算机中的数据都是由0、1组成的信号序列,我们平时使用的字符其实在不同的编码规则下也都对应着相应的0、1字符串。比如在A规则下字母D对应着000111,而在B规则下字母D就可能是001100。总之,无论采用怎样的编码规则一篇文章在计算机中无非就是这些0、1字符串的组合,我们只要按照相应的规则译码就可以了。而加密就是把这些0、1序列按照一定的规则打乱顺序,这样一来如果直接译码肯定就得不到原有的内容了,只有按照一定的规则把序列先变回原来的顺序(解密)才能进行译码。而这一定的规则就是你所输入的密码,再举一个例子,如果你输入的密码是ABC,对应的二进制串是六位的110010,在加密时就可以采用对位变换的办法,即每六位对应一下,如果同一位 的数字相同就用1表示、不同就用0表示,例如110010(密码串)000010(原始数据)001111(加密数据)这样一来加密的内容其实反映的就是原始数据和密码间的相同程度,这种方法译码是很简单的,只要对位比较一下就可以了。字符替换大致就是这么个思路,至于在具体的加密过程中不同的软件可能有自己独立的算法。

㈧ 加密字符串加密成字母

#include
#include
void replace(char *src, int n)
{
char *s = src;
n = n % 26;
while(*s != 0)
{
*s = *s + n;
if(*s > 'Z') *s -= 26;
s++;
}
}
void disorder(char *s, char *key)
{
int len = 0 , i = 0;
char *tmp;
while(s[len++] != 0);
tmp = (char*)malloc(sizeof(char) * (len));
while(i < len) tmp[i] = s[i++];
for(i = 0; i < len - 1; i++)
{
s[i] = tmp[key[i] - '0' - 1];
}
free(tmp);
}
void main()
{
int n;
char str[100], key[100];
printf("input : ");
//请合法输入eg. AXZ 2 231
scanf("%s%d%s", str, &n, key);
replace(str, n);
printf("str = %s\n", str);
disorder(str, key);
printf("str = %s\n", str);
}

阅读全文

与加密替换方法相关的资料

热点内容
阿里云服务器安装管理 浏览:548
java手机开发教程 浏览:672
我的世界怎么删除服务器数据 浏览:669
linux内存子系统 浏览:970
加密思维币 浏览:689
魅族访客文件夹 浏览:50
添加的文件夹怎么找 浏览:615
程序员涉黄 浏览:698
maven编译resources下的js 浏览:519
ubuntu文件移动命令 浏览:227
安卓i怎么查找苹果手机 浏览:949
云服务器宕机概率 浏览:232
在线买药用什么app知乎 浏览:815
ubuntu解压xz文件 浏览:676
宏杰加密时电脑关机 浏览:390
自己写单片机编译器 浏览:600
单片机按键闪烁 浏览:382
为什么icloud总是显连接服务器失败 浏览:890
如何设置域控服务器 浏览:740
想在上海租房子什么app好 浏览:186