“许瑞”用凯撒密码算法表示

【密码教程】各种加密方式详解,个人收集的算是比较全的加密方式_摩斯密码吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:13,802贴子:
【密码教程】各种加密方式详解,个人收集的算是比较全的加密方式收藏
一楼喂熊防抽(虽然我不知道喂熊防抽是什么意思)在帖子未发完之前请不要加楼层,不然别怪我删楼层,可以楼中楼,但是问题尽量在下面提出我会用分割线表示帖子已经发完,不喜勿喷!这些加密方式是我个人从各处搜集而来加以编辑,欢迎各位楼下补充我个人QQ:,欢迎加QQ交流,加时请备注贴吧来的。===============================偶是直直的分割线====================================
摩斯密码的历史我就不再讲了,各位可以自行百度,下面从最简单的开始:  时间控制和表示方法有两种“符号”用来表示字元:划(—)和点(·),或分别叫嗒(Dah)和滴(Dit)或长和短。用摩斯密码表示字母,这个也算作是一层密码的:
用摩斯密码表示数字:
用摩斯密码表示标点符号:目前最常用的就是这些摩斯密码表示,其余的可以暂时忽略
最容易讲的栅栏密码:
手机键盘加密方式,是每个数字键上有3-4个字母,用两位数字来表示字母,例如:ru用手机键盘表示就是:7382,那么这里就可以知道了,手机键盘加密方式不可能用1开头,第二位数字不可能超过4,解密的时候参考此关于手机键盘加密还有另一种方式,就是拼音的方式,具体参照手机键盘来打,例如:“数字”表示出来就是:748 94。在手机键盘上面按下这几个数,就会出现:“数字”的拼音
电脑键盘棋盘加密,利用了电脑的棋盘方阵,但是个人不喜这种加密方式,因需要一个一个对照加密
当铺密码比较简单,用来表示只是数字的密码,利用汉字来表示数字:
电脑键盘坐标加密,如图,只是利用键盘上面的字母行和数字行来加密,下面有注释:例:bye用电脑键盘XY表示就是:351613
ADFGX加密法,这种加密法事实上也是坐标加密法,只是是用字母来表示的坐标:例如:bye用此加密法表示就是:aa xx xf 值得注意的是:其中I与J是同一坐标都是gd,类似于下面一层楼的方法:
这种加密方法和上面的加密方法是相同的,但是是用数字来表示坐标的,其中IJ是在同一坐标上,与上层楼中的一样,就不举例了:
字母表顺序加密法,反字母表加密法和小键盘加密法:前两种不解释了,图中有,第三种就是小键盘原本的顺序是,加密后就是,也就是说7=1,8=2,以此类推,比较简单
说来说去差点把他忘掉了,电脑键盘QWE加密法,就是用字母表替换键盘上面的排列顺序:
凯撒密码加密就是把原字母按照字母表顺序向后移1-26位,例如:ABCDEF集体向后移三位结果就是defghi,移位规律表如下,再例如:byebye后移5位就是gdjgdj
维吉尼亚密码,我认为维吉尼亚尼玛世界上是凯撒密码的另一种说法,因为其表示出来的结果是一样的,维吉尼亚密码的意思是:原字母用随意一位字母(密钥)表示开头,向后顺延,例如:ABCDEF,用D作为密钥,那么结果是:defghi,和凯撒的向后移3位的结果是一样的,再例如:byebye用F作为密钥,结果是:gdjgdj,那么就和上面的凯撒密码是相同的,只是表达方式不一样,图表见下:
培根密码,见下图,就是用字母AB来表示26个英文字母的二进制表示法,使用起来极为麻烦,但是如果使用的好,将完全看不出加密,也是不错的一种加密方式:
倒叙加密:这个估计大家都能明白什么意思,就是:ABCDE
加密后就变为 EDCBA,这里需要注意的是,倒叙加密方式除了全部倒叙外,还有单词倒叙,也就是说:ni
hao 加密后可变为 in
oah 也可变为oah in,这点解密时需要注意。
接下来说一下进制加密法,我个人学历水平不高,仅仅是知道此加密法,很少用及,在此略微说一下:二进制的1101转化成十进制1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始相反 用十进制的数除以2 每除一下将余数就记在旁边最后按余数从下向上排列就可得到1101 十进制转二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒序写 就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余118/2 = 9 余09/2 = 4 余14/2 = 2 余02/2 = 1 余01/2 = 0 余1故二进制为
二进制转十进制从最后一位开始算,依次列为第0、1、2...位第n位的数(0或1)乘以2的n次方得到的结果相加就是答案例如:.转十进制:第0位:1乘2的0次方=11乘2的1次方=20乘2的2次方=01乘2的3次方=80乘2的4次方=01乘2的5次方=321乘2的6次方=640乘2的7次方=0然后:1+2+0+8+0+32+64+0=107.二进制=十进制107.由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
二进制转十进制本人有个更直接的方法,例如二进制数1000110转成十进制数可以看作这样:数字中共有三个1 即第二位一个,第三位一个,第七位一个,然后十进制数即2的2-1次方+2的3-1次方+2的7-1次方即2+4+64=70 次方数即1的位数减一。如此计算只需要牢记2的前十次方即可在此本人为大家陈述一下:2的0次方是12的1次方是22的2次方是42的3次方是82的4次方是162的5次方是322的6次方是642的7次方是1282的8次方是2562的9次方是5122的10次方是10242的11次方是20482的12次方是40962的13次方是81922的14次方是163842的15次方是327682的16次方是65536在这里仅为您提供前16次方,若需要更多请自己查
十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。· 十进制转二进制110011· 1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。十进制整数转二进制如:255=()B255/2=127=====余1127/2=63======余163/2=31=======余131/2=15=======余115/2=7========余17/2=3=========余13/2=1=========余11/2=0=========余1789=789/2=394.5 =1 第10位394/2=197 =0 第9位197/2=98.5 =1 第8位98/2=49 =0 第7位49/2=24.5 =1 第6位24/2=12 =0 第5位12/2=6 =0 第4位6/2=3 =0 第3位3/2=1.5 =1 第2位1/2=0.5 =1 第1位
2.十进制小数转换为二进制小数十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时0或1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。十进制小数转二进制如:0.625=(0.101)B0.625*2=1.25======取出整数部分10.25*2=0.5========取出整数部分00.5*2=1==========取出整数部分1再如:0.7=(0.1 ...)B0.7*2=1.4========取出整数部分10.4*2=0.8========取出整数部分00.8*2=1.6========取出整数部分10.6*2=1.2========取出整数部分10.2*2=0.4========取出整数部分00.4*2=0.8========取出整数部分00.8*2=1.6========取出整数部分10.6*2=1.2========取出整数部分10.2*2=0.4========取出整数部分0
八进制转换十进制八进制就是逢8进1。八进制数采用 0~7这八数来表达一个数。八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……所以,设有一个八进制数:1507,转换为十进制为:839,具体方法如下:可以用横式直接计算:7 * 8^0 + 0 * 8^1 + 5 * 8^2+ 1 * 8^3 = 839也可以用竖式表示第0位 7 * 8^0 = 7第1位 0 * 8^1 = 0第2位 5 * 8^2 = 320第3位 1 * 8^3 = 512
十六进制转换十进制16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5直接计算就是:5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997也可以用竖式表示:第0位: 5 * 16^0 = 5第1位: F * 16^1 = 240第2位: A * 16^2 = 2560第3位: 2 * 16^3 = 8192-------------------------------------10997现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。假设有人问你,十进数 1234 为什么是 一千二百三十四?
你尽可以给他这么一个算式:1234 = 1 * 10^3 + 2 * 10^2+ 3 * 10^1 + 4 * 10^0
十六进制互相转换首先我们来看一个二进制数:1111,它是多少呢?你可能还要这样计算:1* 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为2^3 = 8,然后依次是 2^2 = 4,2^1=2, 2^0 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)仅4位的2进制数 快速计算方法 十进制值 十六进值1111 = 8 + 4 + 2 + 1 = 15 F1110 = 8 + 4 + 2 + 0 = 14 E1101 = 8 + 4 + 0 + 1 = 13 D1100 = 8 + 4 + 0 + 0 = 12 C1011 = 8 + 0 + 2 + 1 = 11 B1010 = 8 + 0 + 2 + 0 = 10 A1001 = 8 + 0 + 0 + 1 =9 9....0001 = 0 + 0 + 0 + 1 = 1 10000 = 0 + 0 + 0 + 0 = 0 0二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
如(上行为二制数,下面为对应的十六进制): , , F D , A 5 , 9 B反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?先转换F:看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。接着转换D看到D,知道它是13,13如何用8421凑呢?应该是:8+ 4 + 1,即:1101。
所以,FD转换为二进制数,为:由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:被除数 计算过程 商 余数 77 2 13 (D)4 4/16 0 4结果16进制为:0x4D2然后我们可直接写出0x4D2的二进制形式:10。
其中对映关系为:0100 -- 41101 -- D0010 -- 2同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。下面举例一个int类型的二进制数:11 我们按四位一组转换为16进制:6D E5 AF 1B
采余数定理分解,例如将487710转成十六进制: =30481....15(E)35....1....1119÷16=7....77÷16=0....7这样就计到1E
不喜欢进制加密方法的可以自行跳过,例如我本人就不怎么喜欢进制加密法,所以自动忽略无视。单表替换加密法。也是用字母表示加密后的字母,详情见下图,类似反字母表顺序加密法,不过这种加密法用到的人比较少,例如:nihao加密后就是:cq
以上便是各种还比较常见的加密方法,另外还有base64、五笔加密、MD5加密、ASC码转换加密等各种加密方法,因我不是特别了解,所以暂时就不发布了,对于MD5加密法我颇有微词,这是一种不可逆解的加密法,也就是说除了加密人别人基本解不出来,就算解出来也不是原来的意思,确实不知道为什么会有此种加密法,可能我见识浅薄....所有的都已经发出来,此处完结。有不懂的欢迎楼下询问或加我本人QQ号码交流。以上,谢谢!=============================偶是直直的分割线===================================
@请让往事都随风 不知道@的对不对啊,能召唤出来嘛?!你看下吧,发完了,好累...足足用了一个多小时.......
最近人真的好少,我敢不敢说其实我还有所保留?!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求二战时期谜团密码编方式。_百度知道
求二战时期谜团密码编方式。
我想初步了解一下迷团(Enigma)密码。
3 4互射.反射机制其实就是为了解密能够更容易的进行, 传言而已~) . 我认为对于一个含26个字母的转子而言.
从某种角度来看. 这样当每一个信号到达反射板时!: 键盘. 对于轮转机而言:] 为了在文章中能更清晰的展示Enigma的结构, 但是始终找不到Enigma的全面的转子及连接板的布线格局 , 每个转轮是字母的任意组合, 它有一个键盘和一系列的转轮: 本文原创于看雪技术论坛(一)Enigma密码机简介. 由于在这里我们是从密码学的角度来看待问题的, 即可得到密文.因为我查了一些文献.2. 当输入一个明文字符时.
说明. 你只要把它当成是一个不会转的转子就OK , 有26个接线端.
2, 在后面我还会提到反射器, 后面会讲到).(二)Enigma的构造, 对应 5 2 4 3 1 0出.转子的初始状态使用0:Enigma看起来就像是一个盒子一样, 信号会沿路回去的? 很多文章都把它说的很神, 另外, 日本的Red和Purple等:
比如我使用6字母的转子为例, 转子怎么传送信号以及显示器怎么显示这些问题上钻牛角尖, 同时每个转轮的输出端连接到其下一个相邻转轮的输入端:(: 转子可自由拆卸换上新转子.Enigma密码机说白了就是几个机械零件组合而成的, 对.
一些人认为3个转子可以自由拆卸代表转子的排列方式变丰富了, Enigma的秘匙有很多因素.(附带源码也是使用的Z6字母表. 包括很多人的博客中很热的关于Enigma的文章 (我的那些图片就是从别人一些文章中截图过来的, 代表的就是0 5互射.转子的布线与帖子中截图的转子的布线相同. 转子可自由拆卸, 其他的接线方式还有更多种;的体制, 依次经过各个相邻的转轮, 转载请注明作者并保持文章的完整: 使用&quot.一下分别列出. 其主要的三个部件为. 当然.
谈到这, 其过程中转子是不会转的, 所以加密后的字母不会和原字母相同的, 谢谢, 连接板布线的方式有多少种: 其他, 这样一直到达最后一个转轮, 就没什么价值可言了. 简单来说, 显示器 ;26种, 连接板可以看成是单个字母替换, 都是二战时期的产物. 貌似ebay上面在拍卖德军二战时期的Enigma密码机:A26^26&#47, 转子本身的种类就有了很多种.[重要. 当然, 所有的一切都是映射而已.来张图看的清楚些(这张图比前面的那张要多了些东西!
日 AM 11, 使用排列组合的知识知我们有了3*2*1中排列方式, 在隐藏了字频的同时无数倍的增加了穷举破解的难度, 该转轮会转动一个位置, 这个是有原因的, 仅仅ABCDEF6个字母, 反射板也是布线的, 键盘用来输入明文字符串, 其下一个转轮会转动一个位置: 使用反射器机制.6).(上面有讲解).)具体讲解? 这根转子的布线方式是一样的多~~ , 1 2互射, 不过由于有了后面的3个转子的工作. 所以如果使用26个字母做字母表的话, 因为信号在来的时候转子已经转过了, 然后反射回来,3, 用来完成一种简单的替换: 我在附带源码中. 关于转子可以拆卸的用途的误解, 满周期后.所以: 3个转子的起始位置. 实际上.连线板是个什么东西, 可以确保明文的加密方式为多表替换. 因此我使用了6字母的字母表, 如果只使用一个转子的话. 所以为了谨慎起见, 相应的信号从第一个轮转的输入端进入.4),当每经过一个转轮的时候, 我在源码中使用的是Z6字母表(即A-F):1),1, 连接板的布线类型, 不要被它的外表所吓到: 使用了连线板. 但聪明的德国人是通过一系列的手段使得Enigma在德国军方中使用这么久的.
(PS, 就是使用的这幅图中的状态作为初始状态的.--------------------------------------------------------------------------------【版权声明】, 大家不要觉得这个东西看起来很复杂一样. 所以还请大家不要在键盘怎么发送信号: 信号被反射回去到显示器上的时侯. 使用转动的传递性机制, 如何通过转动转子来达到每次替换的字母都是不一样的.如默认的转子1的初始转台为. 关于连接板布线的方式的个数, 当该转轮装动了一个周期之后, 我在此以6个字符的键盘转子显示器作为演示道具.4, 带动下一个转子转动一个位置&quot.先来几张图片让大家看看Enigma长什么样, 由于原作者也不知道是谁, 我就得说下Enigma的秘匙了: 使用多个转子!, 它很简单, 其实相反. 只不过Enigma密码机的映射比较特殊. 使用3个转子,连接板和反射器的布线也是按照这个来的: 0 1 2 3 4 5进, 不过它的确也起了很大的作用.3;加密一个字母后, 那么Enigma密码机就成了以前讲过的凯撒密码了. 其原因就在与刚才的反射板了: 1.5).
[思考] 这种方式会造成一个什么问题.(一般为3个, 转子:
反射器.(四) 纠正一些关于Enigma的文献的部分理解错误:03, 我建议大家看看源码:
可以看到上面就是一种转子:(这几个图片不知源头来自哪儿, 因此无法注明作者信息)我们再来看下.
所以我想当初设计Enigma密码机的人之所以要让转子可以随意拆卸的目的肯定不是增加一个6.3), 没有信号再被反射后是沿原路返回的, 密文不会暴露字频信息的,5的序列表示, 请注意看), 其转子的布线格局这个我不得而知, 那样会对Enigma有很全面的认识:(三)Enigma能够实际使用的原理大家想, 转动前一个字母一个位置, 使得加密周期由26变为了26*26*26. 在此系列(六)中直接拿Enigma出来讲是因为Enigma比较具有代表性(当然也是最有名气的, 注意, 使得加解密为统一过程. 那就是任意一个字母加密后都不会是它本身,4.5. 所以也增大了复杂性, 3个转子的布线种类:1, 另外转子, 为以下.(五) 附带源码说明, 这里的作用曾被很多人误解 ,2, 我认为并非如此, 明文请输入A-F这6个字母组成的字节序列:
0-5 1-2 3-4, 故无法注明图片信息), 反射板被放在最后一和转子之后. 其他的一些轮转机有美国的Sigaba, 它们主要是布线方式, 可以很轻易的写出转子总数为, 它采用的也是多表替换的思想. 比如如下.
我发现某些文章在计算可能出现情况的问题上也有问题,在软件的使用中, 他们分别是ABCDEF 6个字母?
聪明的你肯定已经想到了. 我们运用排列组合的知识.见上:524310其意思即为, 而是为了使用各种不同的转子, 而且是一个长周期的多表替换密码机, 德军后期使用的转子甚至达到了4个)2), Enigma出自二战时期的德国军方):Enigma密码机属于轮转机的一种, 比如
其他类似问题
为您推荐:
二战时期的相关知识
其他1条回答
//hi.html" target="_blank">http://hi./%B6%E0%D3%C3%B6%E0%D1%A7/blog//%B6%E0%D3%C3%B6%E0%D1%A7/blog/item/ff5cb219a8fdEnigma密码机主要是转子和连线板的不同组合方式实现的加密过程这个网上有详细的原理<a href="http
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁庞贝贝-信管112-实验报告一-凯撒密码_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
庞贝贝-信管112-实验报告一-凯撒密码
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
你可能喜欢密文是什么 具体给我讲解一下_百度知道
密文是什么 具体给我讲解一下
密文是相对于明文说的,明文其实就是你要传达的消息,而明文通过加密之后就成了密文,密文其实是信息安全的一个词汇。帮你介绍一下。信息安全的发展历史通信保密科学的诞生古罗马帝国时期的Caesar密码:能够将明文信息变换为人们看不懂的字符串,(密文),当密文传到伙伴手中时,又可方便的还原为原来的明文形式。 Caesar密码由明文字母循环移3位得到。1568年,L.Battista发明了多表代替密码,并在美国南北战争期间有联军使用。例:Vigenere密码和Beaufort密码1854年,Playfair发明了多字母代替密码,英国在第一次世界大战中使用了此密码。例:Hill密码,多表、多字母代替密码成为古典密码学的主流。密码破译技术(密码分析)的发展:例:以1918年W.Friedman使用重合指数破译多表代替密码技术为里程碑。
1949年C.Shannon的《保密系统的通信理论》文章发表在贝尔系统技术杂志上。这两个成果为密码学的科学研究奠定了基础。从艺术变为科学。实际上,这就是通信保密科学的诞生,其中密码是核心技术。公钥密码学革命25年之后,20世纪70年代,IBM公司的DES(美国数据加密标准)和1976年Diffie-Hellman,提出了公开密钥密码思想,1977年公钥密码算法RSA的提出为密码学的发展注入了新的活力。公钥密码掀起了一场革命,对信息安全有三方面的贡献:首次从计算复杂性上刻画了密码算法的强度,突破了Shannon仅关心理论强度的局限性;他将传统密码算法中两个密钥管理中的保密性要求,转换为保护其中一格的保密性及另一格的完整性的要求;它将传统密码算法中密钥归属从通信两方变为一个单独的用户,从而使密钥的管理复杂度有了较大下降。公钥密码的提出,注意:一是密码学的研究逐步超越了数据的通信保密范围,开展了对数据的完整性、数字签名等技术的研究;二是随着计算机和网络的发展,密码学一逐步成为计算机安全、网络安全的重要支柱,使得数据安全成为信息安全的全新内容,超越了以往物理安全占据计算机安全的主导地位状态。访问控制技术与可信计算机评估准则 1969年,B.Lampson提出了访问控制模型。1973年,D.Bell 和L.Lapadula,创立了一种模拟军事安全策略的计算机操作模型,这是最早也是最常用的一种计算机多级安全模型。1985年,美国国防部在Bell-Lapadula模型的基础上提出了可信计算机评估准则(通常称为橘皮书)。按照计算机系统的安全防护能力,分成8个等级。1987年,Clark-Wilson模型针对完整性保护和商业应用提出的。信息保障
1998年10月,美国国家安全局(NSA)颁布了信息保障技术框架1.1版,日,美国国防部(DOD)颁布了信息保障实施命令8500.2,从而信息保障成为美国国防组织实施信息化作战的既定指导思想。信息保障(IA:information assurance):通过确保信息的可用性、完整性、可识别性、保密性和抵赖性来保护信息系统,同时引入保护、检测及响应能力,为信息系统提供恢复功能。这就是信息保障模型PDRR。protect保护、detect检测、react响应、restore 恢复美国信息保障技术框架的推进使人们意识到对信息安全的认识不要停留在保护的框架之下,同时还需要注意信息系统的检测和响应能力。2003年,中国发布了《国家信息领导小组关于信息安全保障工作的意见》,这是国家将信息安全提到战略高度的指导性文件信息保密技术的研究成果:发展各种密码算法及其应用: DES(数据加密标准)、RSA(公开密钥体制)、ECC(椭圆曲线离散对数密码体制)等。计算机信息系统安全模型和安全评价准则: 访问监视器模型、多级安全模型等;TCSEC(可信计算机系统评价准则)、ITSEC(信息技术安全评价准则)等。加密(Encryption)
加密是通过对信息的重新组合,使得只有收发双方才能解码并还原信息的一种手段。
传统的加密系统是以密钥为基础的,这是一种对称加密,也就是说,用户使用同一个密钥加密和解密。
目前,随着技术的进步,加密正逐步被集成到系统和网络中,如IETF正在发展的下一代网际协议IPv6。硬件方面,Intel公司也在研制用于PC机和服务器主板的加密协处理器。身份认证(Authentication)
防火墙是系统的第一道防线,用以防止非法数据的侵入,而安全检查的作用则是阻止非法用户。有多种方法来鉴别一个用户的合法性,密码是最常用的,但由于有许多用户采用了很容易被猜到的单词或短语作为密码,使得该方法经常失效。其它方法包括对人体生理特征(如指纹)的识别,智能IC卡和USB盘。数字签名(Digital Signature)
数字签名可以用来证明消息确实是由发送者签发的,而且,当数字签名用于存储的数据或程序时,可以用来验证数据或程序的完整性。
美国政府采用的数字签名标准(Digital Signature Standard,DSS)使用了安全哈希运算法则。用该算法对被处理信息进行计算,可得到一个160位(bit)的数字串,把这个数字串与信息的密钥以某种方式组合起来,从而得到数字签名。内容检查(Content Inspection)
即使有了防火墙、身份认证和加密,人们仍担心遭到病毒的攻击。有些病毒通过E-mail或用户下载的ActiveX和Java小程序(Applet)进行传播,带病毒的Applet被激活后,又可能会自动下载别的Applet。现有的反病毒软件可以清除E-mail病毒,对付新型Java和ActiveX病毒也有一些办法,如完善防火墙,使之能监控Applet的运行,或者给Applet加上标签,让用户知道他们的来源。 介绍一些加密的知识密钥加&#47;解密系统模型
在1976年,Diffie及Hellman发表其论文“New Directions in Cryptography”[9]之前,所谓的密码学就是指对称密钥密码系统。因为加&#47;解密用的是同一把密钥,所以也称为单一密钥密码系统。
这类算法可谓历史悠久,从最早的凯撒密码到目前使用最多的DES密码算法,都属于单一密钥密码系统。通常,一个密钥加密系统包括以下几个部分:① 消息空间M(Message)② 密文空间C(Ciphertext)③ 密钥空间K(Key)④ 加密算法E(Encryption Algorithm)⑤ 解密算法D(Decryption Algorithm)消息空间中的消息M(称之为明文)通过由加密密钥K1控制的加密算法加密后得到密文C。密文C通过解密密钥K2控制的解密算法又可恢复出原始明文M。即:
DK2(EK1(M))=M概念:
当算法的加密密钥能够从解密密钥中推算出来,或反之,解密密钥可以从加密密钥中推算出来时,称此算法为对称算法,也称秘密密钥算法或单密钥算法;
当加密密钥和解密密钥不同并且其中一个密钥不能通过另一个密钥推算出来时,称此算法为公开密钥算法。1.凯撒密码变换更一般化的移位替代密码变换为加密:E(m)=(m+k) mod 26解密:D(c)=(c-k) mod 262.置换密码
在置换密码中,明文和密文的字母保持相同,但顺序被打乱了。在简单的纵行置换密码中,明文以固定的宽度水平地写在一张图表纸上,密文按垂直方向读出;解密就是将密文按相同的宽度垂直地写在图表纸上,然后水平地读出明文。例如:明文:encryption is the transformation of data into some unreadable form
密文:eiffob nsodml ctraee rhmtuf yeaano pttirr trinem iaota onnod nsosa20世纪40年代,Shannon提出了一个常用的评估概念。特认为一个好的加密算法应具有模糊性和扩散性。模糊性:加密算法应隐藏所有的局部模式,即,语言的任何识别字符都应变得模糊,加密法应将可能导致破解密钥的提示性语言特征进行隐藏;扩散性:要求加密法将密文的不同部分进行混合,是任何字符都不在其原来的位置。
加密算法易破解的原因是未能满足这两个Shannon条件。数据加密标准(DES) DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,经过16次迭代运算后。得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置的逆运算.具体方法 需要图 我放不上去对不起了可以将DES算法归结如下:子密钥生成:
C[0]D[0] = PC–1(K)
for 1 &= i &= 16
{C[i] = LS[i](C[i&#8722;1])
D[i] = LS[i](D[i&#8722;1])
K[i] = PC–2(C[i]D[i])}加密过程:L[0]R[0] = IP(x)for 1 &= i &= 16{L[i] = R[i&#8722;1]R[i] = L[i&#8722;1] XOR f&#8197;(R[i&#8722;1], K[i])}c= IP&#8722;1(R[16]L[16])v解密过程:R[16]L[16] = IP(c)for 1 &= i &= 16{R[i&#8722;1] = L[i]L[i&#8722;1] = R[i] XOR f&#8197;(L[i], K[i])}x= IP&#8722;1(L[0]R[0])DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来。DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,但幸运的是当时大多数黑客并没有足够的设备制造出这种硬件设备。 在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。所以,当时DES被认为是一种十分强壮的加密方法。 但是,当今的计算机速度越来越快了,制造一台这样特殊的机器的花费已经降到了十万美元左右,所以用它来保护十亿美元的银行间线缆时,就会仔细考虑了。另一个方面,如果只用它来保护一台服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。由于现在已经能用二十万美圆制造一台破译DES的特殊的计算机,所以现在再对要求“强壮”加密的场合已经不再适用了 DES算法的应用误区DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。
由上述DES算法介绍我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8、16、24、......64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,......64位外的其余56位的组合变化256才得以保证的。因此,在实际应用中,我们应避开使用第8,16,24,......64位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,把密钥Key的8,16,24,..... .64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。A5
法 序列密码简介
序列密码又称流密码,它将明文划分成字符(如单个字母)或其编码的基本单元(如0、1),然后将其与密钥流作用以加密,解密时以同步产生的相同密钥流实现。序列密码强度完全依赖于密钥流产生器所产生的序列的随机性和不可预测性,其核心问题是密钥流生成器的设计。而保持收发两端密钥流的精确同步是实现可靠解密的关键技术。A5算法
A5算法是一种序列密码,它是欧洲GSM标准中规定的加密算法,用于数字蜂窝移动电话的加密,加密从用户设备到基站之间的链路。A5算法包括很多种,主要为A5&#47;1和A5&#47;2。其中,A5&#47;1为强加密算法,适用于欧洲地区;A5&#47;2为弱加密算法,适用于欧洲以外的地区。这里将详细讨论A5&#47;1算法。A5&#47;1算法的主要组成部分是三个长度不同的线性反馈移位寄存器(LFSR)R1、R2和R3,其长度分别为19、22和23。三个移位寄存器在时钟的控制下进行左移,每次左移后,寄存器最低位由寄存器中的某些位异或后的位填充。各寄存器的反馈多项式为: R1:x18+x17+x16+x13R2:x21+x20R3:x22+x21+x20+x7A5算法的输入是64位的会话密钥Kc和22位的随机数(帧号)。
IDEA即国际数据加密算法,它的原型是PES(Proposed Encryption Standard)。对PES改进后的新算法称为IPES,并于1992年改名为IDEA(International Data Encryption Algorithm)。IDEA是一个分组长度为64位的分组密码算法,密钥长度为128位,同一个算法即可用于加密,也可用于解密。
IDEA的加密过程包括两部分:
(1) 输入的64位明文组分成四个16位子分组:X1、X2、X3和X4。四个子分组作为算法第一轮的输入,总共进行八轮的迭代运算,产生64位的密文输出。
(2) 输入的128位会话密钥产生八轮迭代所需的52个子密钥(八轮运算中每轮需要六个,还有四个用于输出变换)子密钥产生:输入的128位密钥分成八个16位子密钥(作为第一轮运算的六个和第二轮运算的前两个密钥);将128位密钥循环左移25位后再得八个子密钥(前面四个用于第二轮,后面四个用于第三轮)。这一过程一直重复,直至产生所有密钥。
IDEA的解密过程和加密过程相同,只是对子密钥的要求不同。下表给出了加密子密钥和相应的解密子密钥。密钥间满足:Zi(r) ⊙ Zi(r) &# mod (216+1)&#8722;Zi(r) &#8197;+&#8197; Zi(r) =0 mod (216+1)Blowfish算法
Blowfish是Bruce Schneier设计的,可以免费使用。
Blowfish是一个16轮的分组密码,明文分组长度为64位,使用变长密钥(从32位到448位)。Blowfish算法由两部分组成:密钥扩展和数据加密。 1. 数据加密
数据加密总共进行16轮的迭代,如图所示。具体描述为(将明文x分成32位的两部分:xL, xR)for i = 1 to 16{xL = xL XOR PixR = F(xL) XOR xRif {交换xL和xR}}xR = xR XOR P17xL = xL XOR P18合并xL 和xR其中,P阵为18个32位子密钥P1,P2,…,P18。解密过程和加密过程完全一样,只是密钥P1,P2,…,P18以逆序使用。2. 函数F
把xL分成四个8位子分组:a, b, c 和d,分别送入四个S盒,每个S盒为8位输入,32位输出。四个S盒的输出经过一定的运算组合出32位输出,运算为
F(xL) =((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232
其中,Si,x表示子分组x(x=a、b、c或d)经过Si (i=1、2、3或4)盒的输出。没有太多地方写了,不把整个过程列上面了,就简单介绍一下好了。GOST算法
GOST是前苏联设计的分组密码算法,为前苏联国家标准局所采用,标准号为:2]。
GOST的消息分组为64位,密钥长度为256位,此外还有一些附加密钥,采用32轮迭代。RC5算法
RC5是一种分组长度、密钥长度和加密迭代轮数都可变的分组密码体制。RC5算法包括三部分:密钥扩展、加密算法和解密算法。PKZIP算法
PKZIP加密算法是一个一次加密一个字节的、密钥长度可变的序列密码算法,它被嵌入在PKZIP数据压缩程序中。
该算法使用了三个32位变量key0、key1、key2和一个从key2派生出来的8位变量key3。由密钥初始化key0、key1和key2并在加密过程中由明文更新这三个变量。PKZIP序列密码的主函数为updata_keys()。该函数根据输入字节(一般为明文),更新三个32位的变量并获得key3。重点:单向散列函数 MD5 算 法md5的全称是message-&digest&algorithm&5(信息-摘要算法),在90年代初由mit&laboratory&for&computer&science和rsa&data&security&inc的ronald&l.&rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被&压缩&成一种保密的格式(就是把一&个任意长度的字节串变换成一定长的大整数)。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些&算法的结构或多或少有些相似,但md2的设计与md4和md5完全不同,那是因为md2是为8位机器做过设计优化的,而md4和md5却是面向32位的电&脑。 rivest在1989年开发出md2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到&信息末尾。并且根据这个新产生的信息计算出散列值。后来,rogier和chauvaud发现如果忽略了检验和将产生md2冲突。md2算法的加密后结果&是唯一的--既没有重复。&
为了加强算法的安全性,rivest在1990年又开发出md4算法。md4算法同样需要填补信息以确&保信息的字节长度加上448后能被512整除(信息字节长度mod&512&=&448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd&#47;merkle迭代结构的区块,而且每个区块要&通过三个不同步骤的处理。den&boer和bosselaers以及其他人很快的发现了攻击md4版本中第一步和第三步的漏洞。dobbertin向大家演示了如何利用一部普通的个人电&脑在几分钟内找到md4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,md4就此&被淘汰掉了。&
尽管md4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了md5以外,其中比较有名的还有sha-1、ripe-md以及haval等。& 一年以后,即1991年,rivest开发出技术上更为趋近成熟的md5算法。它在md4的基础上增加了&安全-带子&(safety-belts)的&概念。虽然md5比md4稍微慢一些,但却更为安全。这个算法很明显的由四个和md4设计有少许不同的步骤组成。在md5算法中,信息-摘要的大小和填充&的必要条件与md4完全相同。den&boer和bosselaers曾发现md5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。& & van&oorschot和wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force&hash&function),而且他们猜测一个被设计专门用来搜索md5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一&个冲突。但单从1991年到2001年这10年间,竟没有出现替代md5算法的md6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有&太多的影响md5的安全性。上面所有这些都不足以成为md5的在实际应用中的问题。并且,由于md5算法的使用不需要支付任何版权费用的,所以在一般的情&况下(非绝密应用领域。但即便是应用在绝密领域内,md5也不失为一种非常优秀的中间技术),md5怎么都应该算得上是非常安全的了。 算法
MD表示消息摘要(Message Digest)。MD5是MD4的改进版,该算法对输入的任意长度消息产生128位散列值(或消息摘要。MD5算法可用图4-2表示。
对md5算法简要的叙述可以为:md5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。& 1) 附加填充位
首先填充消息,使其长度为一个比512的倍数小64位的数。填充方法:在消息后面填充一位1,然后填充所需数量的0。填充位的位数从1~512。
2) 附加长度
将原消息长度的64位表示附加在填充后的消息后面。当原消息长度大于264时,用消息长度mod 264填充。这时,消息长度恰好是512的整数倍。令M[0 1…N&#8722;1]为填充后消息的各个字(每字为32位),N是16的倍数。3) 初始化MD缓冲区
初始化用于计算消息摘要的128位缓冲区。这个缓冲区由四个32位寄存器A、B、C、D表示。寄存器的初始化值为(按低位字节在前的顺序存放):
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 104) 按512位的分组处理输入消息
这一步为MD5的主循环,包括四轮,如图4-3所示。每个循环都以当前的正在处理的512比特分组Yq和128比特缓冲值ABCD为输入,然后更新缓冲内容。 四轮操作的不同之处在于每轮使用的非线性函数不同,在第一轮操作之前,首先把A、B、C、D复制到另外的变量a、b、c、d中。这四个非线性函数分别为(其输入&#47;输出均为32位字):F(X,Y,Z) = (XY)((~X) Z)G(X,Y,Z) = (XZ)(Y(~Z))H(X,Y,Z) = XYZI(X,Y,Z) = Y(X(~Z))
其中,表示按位与;表示按位或;~表示按位反;表示按位异或。此外,由图4-4可知,这一步中还用到了一个有64个元素的表T[1..64],T[i]=232×abs(sin(i)),i的单位为弧度。根据以上描述,将这一步骤的处理过程归纳如下:for i = 0 to N&#47;16&#8722;1 do
&#47;* 每次循环处理16个字,即512字节的消息分组*&#47;
&#47;*把第i个字块(512位)分成16个32位子分组拷贝到X中*&#47;
for j = 0 to 15 do
Set X[j] to M[i*16+j]
&#47;*j 循环*&#47;&#47;*把A存为AA,B存为BB,C存为CC,D存为DD*&#47;AA = A BB = B CC = C DD = D&&#47;* 第一轮*&#47;&#47;* 令[abcd k s i]表示操作a = b + ((a + F(b,c,d) + X[k] + T[i]) &&& s)其中,Y&&&s表示Y循环左移s位*&#47;&#47;* 完成下列16个操作*&#47;[ABCD
1 &#8197;] [DABC
2 &#8197;] [CDAB
3 &#8197;] [BCDA
4 &#8197;][ABCD
5 &#8197;] [DABC
6 &#8197;] [CDAB
7 &#8197;] [BCDA
8 &#8197;][ABCD
9 &#8197;] [DABC
16]&#47;* 第二轮*&#47;&#47;*令[abcd k s i]表示操作a = b + ((a + G(b,c,d) + X[k] + T[i]) &&& s)*&#47;&#47;*完成下列16个操作*&#47;[ABCD
32]&#47;*第三轮*&#47;&#47;*令[abcd k s t]表示操作a = b + ((a + H(b,c,d) + X[k] + T[i]) &&& s)*&#47;&#47;*完成以下16个操作*&#47;[ABCD
48] &#47;*第四轮*&#47;&#47;*令[abcd k s t]表示操作a = b + ((a + I(b,c,d) + X[k] + T[i]) &&& s) *&#47;&#47;*完成以下16个操作*&#47;[ABCD
A = A + AA
B = B + BB
C = C + CC
D = D + DD
&#47;*i循环*&#47;5) 输出
由A、B、C、D四个寄存器的输出按低位字节在前的顺序(即以A的低字节开始、D的高字节结束)得到128位的消息摘要。
以上就是对MD5算法的描述。MD5算法的运算均为基本运算,比较容易实现且速度很快。安全散列函数(SHA) 算法
SHA是美国NIST和NSA共同设计的安全散列算法(Secure Hash Algorithm),用于数字签名标准DSS(Digital Signature Standard)。SHA的修改版SHA–1于1995年作为美国联邦信息处理标准公告(FIPS PUB 180–1)发布[2]。
其他类似问题
为您推荐:
密文就是经过加密后显示的信息
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 凯撒密码在线解密工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信