DES原理与实现

DES是对称密码的一种,它使用56位秘钥对64位长分组进行加密。

DES对每个分组的内容都会进行16轮迭代,每轮的操作相同但是对应不同的子秘钥。所有的子秘钥都是由主密钥推导而来。

64位明文加密过程如下:

1. 按位置换(IP)

2. 明文被分成L0和R0两部分。

3. L1=R0  R1=L0⊕f(R0,k1)

4. 重复步骤3 16次

5. 按位置换(IP^-1)

其中的重点在于:

1. 如何实现函数f

2. 如何生成子秘钥k

问题简单的解答如下:

1. 函数f 输入与输出的数据为32位。

E:

  将输入的数据分成8个4位的分组。这个过程在E盒中进行。E盒是一种特殊的置换。

  32位输入中有16位输入位在输出中出现了两次。分别为第1 4 5 8 9 12 ... 32位

  E盒的输入数据为32位,输出为48位,仅有置换操作。

S:

  将拓展得到的48位结果与密钥ki进行XOR操作,将8个6位长的分组送入8个不同的替换盒S中,将6位输出裁剪成4位。

  S盒的输入数据为48位,输出为32位,有和密钥的XOR操作,也有置换。

P:

  按位置换,以实现扩散。

  P盒的输入和输出均为32位,仅有置换操作。

2. 密钥生成函数GetKey的输入为64位密钥,输出为16个48位子密钥。

密钥的实际有效位数为56位,其余8位为奇校验位。PC-1处理得到的56位密钥分为C和D两部分。首先将C和D按照轮数移动一位或者两位。然后将C和D合起来,用PC-2将56位密钥置换成48位密钥。

PC-1:

  置换的意义是去掉校验位。

PC-2:

  意义是将56位置换成48位。

鉴于我还没开始写代码,先写一下我认为可能会出现的问题:

1. 最基本的,怎么实现置换

2. 密钥的格式是什么:字母或者是数字?多少位?

3. 函数过程中数据应该是以二进制流动的,二进制如何与字母数字转化?(啊这个问题好像不难)

时间: 2024-12-28 18:49:39

DES原理与实现的相关文章

数据加密标准DES原理

数据加密标准(DES)是在20世纪70年代中期由美国IBM公司发展出来的,并被美国国家标准局公布为数据加密标准的一种分组加密算法. DES算法的分组大小为64位,所使用的加密或解密密钥也是64位.因为其中有8个位是用来做奇偶校验,所以64位中真正起密钥作用的只有56位.DES加密与解密所用的算法除了子密钥的顺序不同之外,其他部分则是完全相同. 1)Feistel网络 DES密码结构基于一个称为Feistel网络的结构.Feistel网络是由Horst Feistel在设计Lucifer分组密码时

第三届四川省信息安全技术大赛小记

比赛过了好几天了,回来后休息了下后又有了其他的忙碌,总的来说还是轻松多了.不过后面剩下的就是各种蛋疼的考试,吭爹啊---本来想等着题目都整理好了再发的,虽然理论题我们自己有了备份,但是其他的题目出题方还没有公布过来,而很多参赛的锅锅们都做了总结了--//////////////////////////////// 时间:5月21日9:30 am – 3:30 pm地点:成都信息工程学院参赛人员: (Swust Team1) wuyuan zsens bird (Swust Team2) dllk

几种加密算法概述

这次面试被问到密码学,问到MD5原理,一脸懵逼,所以还是简单整理一下学过的几种加密类型比较妥··· DES 1. DES背景 DES(Data Encryption Standard)又叫数据加密标准,是NIST在联邦记录中公开征集密码体制时出现的.DES由IBM开发,主要用于非国家保密机关.在1999年AES(Advanced Encryption Standard)作为DES的替代品开始使用. 2. DES原理 DES加密算法使用64位(bit)的数据进行加密和解密,所用的密钥也是64位.密

网站安全系列文章(一)加密和签名

1. 加密概述 加密应用场景 1) 密码加密,常用于登录密码和支付密码等,此类加密的特点是希望密码加密之后不能被解密,因此可以比较安全的保存密码而不会泄漏明文,因此适合用不可逆加密算法,且不需要密钥,目前这类加密算法唯一的破解方法是暴力破解,即用密码字典等手段 不可逆的加密算法有md5 2) 网络传输报文加密 网络传输如果用明文,容易被截取,之后泄漏用户敏感信息,因此对于交易类等安全要求较高的报文传输,要对其进行加密,且要选择可逆的加密算法,服务端需要解密,可以选择的加密算法有rsa,3des等

DES加密算法原理

DES的每个分组是64位,既明文和密钥都是64位(密钥实际用56位,每字节第8位为校验).这个算法的核心是Feistel密码,由于其设计的巧妙,加密解密都用一个函数,具体原理请查阅其他资料.DES的流程基本是执行16轮下面的运算: 1 初始变换Initial Permutation 2 右边32位f函数 2.1 E置换 2.2 与轮密钥XOR 2.3 S盒替换 2.4 P置换 2.5 和左边32位XOR 3 左右交换,最终变换final permutation 需要特别注意的是,最后一轮是不需要

对称加密算法DES、3DES原理和实现方式

1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去.收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文.在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥. 1.2 优缺点 优点:算法公开.计算量小.加密速度快.加

对称加密算法DES、3DES和AES 原理总结(转载)

1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去.收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文.在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥. 1.2 优缺点 优点:算法公开.计算量小.加密速度快.加

DES加密算法详细原理以及Java代码实现

本周的密码学实验要求使用任意编程语言来实现des加密算法,于是我在查阅了相关资料后有了以下成果. 首先,DES算法作为经典的分块密码(block cipher),其主要的实现过程由两部分组成,分别是密钥的生成以及明文的处理. 加密的大致流程如图所示 作为分块密码,密钥的输入以及明文的输入均为64位2进制数. 下面首先来说密钥的生成过程. 密钥处理部分如图所示 密钥的输入为64位,例如00010011 00110100 01010111 01111001 10011011 10111100 110

加密、解密的原理及Openssl创建CA和ssh的基础应用

加密.解密的原理及Openssl创建CA和ssh的基础应用 随着互联网的不断发展和技术的不断成熟,在互联网上传输文件不在安全,在需要传送重要的数据时就必须加密处理. 密码算法分为三种:分别是对称加密,公钥加密,单向加密:以及需要对加密算法的认证,叫做认证协议.下面为大家概述对称加密,公钥加密,单向加密及认证协议 对称加密: 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性