对称密钥加密体系 — DES

对称密钥加密机制即对称密码体系,也称单玥密码体系和传统密码体系。对称密码体系通常分为两大类:分组密码(如DES、AES算法),另一类为序列密码(如RC4算法)。

对称密码体系加密和解密时所用的密钥是相通的或者是类似的,即由加密密钥很容易推导出解密密钥,反之亦然。对称密钥加密,最大的优势是加/解密速度快,适合对大数据量进行加密,但密钥管理困难。

对于普通的对称密码学,加密运算与解密运算使用同样的密钥。通常使用的对称密钥加密算法比较简单高效,密钥剪短,破译极其困难,由于系统的保密性主要取决于密钥的安全性,,所以在公开的计算机网络上安全的传送和保护密钥时一个严峻的问题。而且由于对称密码学中双方使用相同的密钥,因此无法实现数据签名和不可否认性等功能。

DES加密流程

对于任意长的铭文,DES首先对其进行分组,使得每一组的长度为64位,然后分别对每个64位的铭文分组进行加密。对于每个64位长度的明文分组的加密过程如下:

1、初始置换:输入分组按照初始置换表重排次序,进行初始置换。

2、16轮循环:DES对经过初始置换的64位铭文进行16轮类似的子加密过程。每一轮的子加密过程要经过DES的f函数,其过程如下:

  • 将64位明文在中间分开,划为2部分,每部分32位,左半部分记为L,右半部分记为R,以下的操作都是对有半部分数据进行。
  • 扩展置换:扩展置换将32位的输入数据根据扩展置换表扩展称为48位输出数据。
  • 异或运算:将48位的明文数据与48位的子密钥进行异或运算。
  • S盒置换:S盒置换是非线性的,48位输入数据根据S盒置换表置换成为32位输出数据。
  • 直接置换:S盒置换后的32位输出数据根据直接置换表进行直接置换。
  • 经过直接置换的32位输出数据与本轮的L部分进行异或运算,结果作为下一轮子加密过程中的R部分。本轮的R部分直接作为下一轮子加密过程中的L部分。然后进行下一轮子加密过程,直到16轮全部完成。

3、终结置换:按照终结置换表进行终结置换,64位输出就是密文。

DES加密流程详解

DES的分组过程

DES是一种分组加密算法,所谓分组加密算法就是对一定大小的明文后密文来做加密或解密动作。在DES加密系统中,每次加密或解密的分组大小均为64位,所以DES没有密文扩充的问题。对大于64位的明文只要按每64位的一组进行切割,而对于小于64位的明文只要在后面补“0”即可。

DES所用的加密或解密密钥也是64位大小,但因其中有8个位时奇偶校验位,所有64位中真正起密钥作用的只有56位,密钥过短也是DES最大的缺点。

初始置换

经过分组后的64位明文分组将按照初始置换表重新排列次序,进行初始置换,置换方法如下:初始置换表从左到右,从上到下读取,如第一行第一列为58,意味着将原文分组中的第58位置换到第一位,初始置换表下一个数位50,意味着将原明文分组的第50位置置换到第2位,依次类推,将原明文分组的64位全部置换完成。

表1.1初始化置换表

58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

扩展置换

32位的有半部分明文数据首先要进行扩展置换,扩展置换将32位输入数据扩展成为48位的输出数据,他有三个目的:第一,它产生了与子密钥同长度的数据以进行异或运算;第二,它提供劳务更长的结果,使得在以后的子加密过程中能进行压缩;第三,它产生雪崩效应,这也是扩展置换最主要的目的,使得输入的一位将影响两个替换,所以输出对输入的依懒性将传播的更快(雪崩效应)。其实我只明白第一和第三点。。。

扩展置换的置换方法与初始置换相同,只是置换表不同,扩展置换表如下所示:

表1.2 扩展置换表

32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1

异或运算

扩展置换的48位输出数据与相应的子密钥进行按位异或运算。异或以后的48位结果将继续进行S盒置换。

S盒置换

S盒置换是DES算法中最重要的部分,也是最关键的步骤,因为其他运算都是线性的,只有S盒置换是非线性的,它比DES中任何一步都提供了更好的安全性。

经过异或运算得到的48位输出数据要经过S盒置换,置换由8个盒完成,记为S盒,每个S盒都有6位输入,4位输出。这8个S盒是不同的,每个S盒置换方法如下图所示。使用方法如下:48位的输入分成8组,每组6位分别进入8个S盒。将每组的6位输入记为B0、B1、B2、B3、B4、B5,那么表中的行号由B0B5决定,而列号由B1B2B3B4决定。例如第一个分组位111000要进入第一个S盒S1,那么行号位B0B5,即10,化为十进制即2,即第二行;列号位1100(B1B2B3B4),即为第12列,第2行第12列在下表中的S1中查找位数据3,所有这个S和的4位输出就是3,化为二进制即0011.

表1.3 盒置换表

直接置换

S盒置换后的32位输出数据将进行直接置换,该置换把每个输入位映射到输出位,任意一位不能映射两次,不能略去。

终结置换

终结置换与初始置换相对应,都不影响DES的安全性,主要目的是为了更容易的将明文和密文数据以字节大小放入des的f算法或者DES芯片中。

总结

刚刚看计算机网络安全相关知识,这一部分不太明白,所以查了一下,自己顺便记录一下,有什么不对的,大家纠正。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容