首页 > 编程 > Python > 正文

DES加密解密算法之python实现版(图文并茂)

2020-02-15 23:58:35
字体:
来源:转载
供稿:网友

一、DSE算法背景介绍

1. DES的采用
1979年,美国银行协会批准使用
1980年,美国国家标准局(ANSI)赞同DES作为私人使用的标准,称之为DEA(ANSI X.392)
1983年,国际化标准组织ISO赞同DES作为国际标准,称之为DEA-1
该标准规定每五年审查一次,计划十年后采用新标准
最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准。

2.DES算法特点

1) 分组加密算法:

以64位为分组。64位一组的明文从算法一端输入,64位密文从另一端输出。

2) 对称算法:

加密和解密用同一密钥。

3) 有效密钥长度为56位。

密钥通常表示为64位数,但每个第8位用作奇偶校验,可以忽略。输入的64bit秘钥只有56bit作为有效位

二、DES算法描述

1、DES算法加密流程的文字描述

DES对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起,经过一个末置换(初始置换的逆置换),这样该算法就完成了。

二、DES算法加密流程的图形描述


                              图一

图二

三、具体参数解释

1、IP置换和IP逆置换

IP置换作用于进行16轮f函数作用之前,IP逆置换作用于16轮f函数作用之后。IP置换和IP逆置换表如下图所示:

图三

该表的含义解释:例如IP置换表中的第一行第一列的数值为58,就代表将明文的第58位替换到第一位,例如明文初始的第58位是1,第1位是0,第39位是0,根据上表替换后的64位待加密文本为:第一位是1,第58位是0。之后提到的置换表也是这个意思。

2、f函数

经过初始置换后,进行16轮完全相同的运算。这些运算被称为f,在运算过程中数据与密钥结合。f函数作用于每轮的key值和每轮的待加密文本的右半部分,即Ki,Ri

f函数作用于每轮的key值和每轮的待加密文本的右半部分,即Ki,Ri


                                                             图四

函数¦的输出经过一个异或运算,和左半部分结合,其结果成为新的右半部分,原来的右半部分成为新的左半部分。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表