ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

分组密码DES

2019-08-08 10:43:24  阅读:304  来源: 互联网

标签:32bit ip 置换 DES 密码 分组 64


分组密码的原理

DES是分组密码,分组密码将消息进行等长分组,使用同一密钥对每个分组进行加密。

DES算法

  • DES是一个迭代分组密码,使用64位长的密钥加密64位长的明文,获得64位长的密文,使用轮函数是Feistel,迭代16轮。
  • 加密流程:明文(64位)->初始置换ip->16轮Feistel->逆初始置换ip->密文(64位)

流程

1.给定一个明文m,首先通过一个固定的初始置换ip得到m0,然后将m0分为左右两部分,即m0=L0+R0,分别为m0的左右两部分,均为32位。ip置换的作用是使打乱原来的顺序。

初始ip置换表:

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,

2.使用密钥对R0和L0进行16轮迭代运算,运算规则:

 

16246589-9c98b29d9f4c3411.jpg

adaf2edda3cc7cd9ca7533aa3901213fb80e916c.jpg

3.DES的核心是非线性函数f,函数的输入有两个变量,一个是32bit的Ri-1,另一个是48bit的ki-1,输出的结果为32bit。

 

4.首先利用扩展置换E,将Ri-1扩展成一个48bit的串,然后将扩展后的结果和ki进行异或运算,将所得到得结果48bit分成8个6bit的串

16246589-b30220c472b9a433.jpg

IMG_20190510_154656.jpg

5.将上步得到的8个6bit的串,分别作为S盒的输入,每个S盒都将6bit的消息映射成一个4bit的消息,X1X6转换成十进制,对应表中的行号,X2X3X4X5转换成十进制,对应于表中的列号,通过对比S盒返回一个数字,将数字转换为四个二进制表示的数。

16246589-d8fb5d9e20639e40.jpg

IMG_20190510_154714.jpg

6.运行完8个S盒后,返回32bit的串,再将这32bit使用P置换,即可得到f函数的输出。
7.最后一轮迭代,左右两个32bit并不叫唤,再对R16L16进行ip逆置换,即可得到密文c。

 

16246589-4d437c36c1897db7.jpg

IMG_20190510_154726.jpg

标签:32bit,ip,置换,DES,密码,分组,64
来源: https://blog.csdn.net/qq_40148538/article/details/98848862

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有