精华内容
下载资源
问答
  • 主要介绍了python实现的DES加密算法和3DES加密算法,以实例形式较为详细的分析了DES加密算法和3DES加密算法的原理与实现技巧,需要的朋友可以参考下
  • DES,DES加密算法,DES算法源码。用C写的DES加密算法。 DES,DES加密算法,DES算法源码。 DES加密算法(c语言实现) (本程序可以直接使用)
  • DES加密算法C++实现

    2018-06-05 09:39:46
    DES加密算法C++实现支持多个key输入、支持ECB、CBC填充模式 3、不是.exe程序,是代码段;
  • (信息安全概论作业)DES是分组长度为64比特的分组加密算法,密钥长度也是64比特,其中每8比特有一位奇偶校验位,因此有效密钥长度位56比特。DES算法是公开的,其安全性依赖于密钥的保密程度。
  • 而我们本篇文章讨论的是DES加密算法。希望大家能够将这两个名词区别开来,很多时候我们说的DES都是在指DES算法,而不是DES数据加密标准。DES算法是一种典型的分组密码,即将固定长度的明文通过一系列复杂的操作...
  • 为了克服传统DES加密算法流水线的FPGA实现的子密钥需先后串级计算,密钥不能动态刷新的缺点,提出一种新的加密算法,提高DES FPGA实现系统的处理速度,增加系统的密钥动态刷新功能,提高系统的可重用性。
  • DES加密算法实验报告

    2018-12-27 09:06:21
    自己写的DES加密算法实验报告,里面附有代码!附有代码!附有代码!
  • DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码中,一个48位的密钥值由56位的“种子”密钥得出来。 DES算法把64位的明文输入快变成64位的密文输出块,整个算法的变换过程如图。
  • DES加密算法应用

    2019-04-26 01:07:21
    NULL 博文链接:https://arlenye.iteye.com/blog/2353169
  • des加密算法

    2014-10-16 10:57:08
    des加密算法,des加密算法,好用的东西。
  • //DES算法 unsigned char DES_Encrypt(unsigned char *plainBuffer, unsigned char *keyBuffer, unsigned char *cipherBuffer);//加密数据 unsigned char DES_Decrypt(unsigned char *cipherBuffer, unsigned char ...
  • 用vs2012写的,可以直接运行想要代码的话,都在一个cpp文件中
  • 采用C语言实现的DES加密算法,支持文件的加解密,其中包含源代码及可执行程序。
  • 主要介绍了java实现的DES加密算法,结合实例形式详细分析了java实现DES加密操作的原理、实现技巧与相关注意事项,需要的朋友可以参考下
  • des算法加密任意文件,实现对文件的加解密,使用java代码实现的
  • 内容索引:VC/C++源码,加密解密,DES,加密,解密 DES(Data Encrypt Standard)加密算法,经常用的一种vc++加密算法,使用简单,这是DES加密算法的核心程序代码,仅供参考。
  • 3DES加密算法源码

    2015-01-21 18:38:23
    它相当于是对每个数据块应用三次DES加密算法。 最早的定义了该算法的标准(ANS X9.52,1998年发布)将其描述为“三重数据加密算法(TDEA)”— 即为ANSI X3.92中定义的数据加密算法(DEA)的三次重复操作— 而完全...
  • 中北大学软件学院 信息安全技术 实验报告 课程名称 实验名称 指导教师 学生姓名 信息安全原理与实践 DES 加密算法 组 号 实验日期 实验地点 实验成绩 20160415 软件学院 实验报告书 一实验目的 通过用 DES 算法对...
  • des加密算法java实现

    2016-04-17 10:12:41
    DES加解密算法,java实现,可运行!
  • DES加密算法Demo

    2018-11-21 21:06:18
    这是一个简单的DES加密算法的Demo,使用Swing做了一个简单的界面,可以根据明文和秘钥得到密文,也可以根据密文和密钥得到明文
  • DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力,24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密...
  • 3des加密算法源码

    2019-03-14 09:32:07
    3des加密算法源码,里面包含3des加密算法 和 解密算法。
  • des加密算法 加密与解密过程 包括算法的迭代过程 可以选择加密与解密
  • DES加密算法实验

    2018-09-27 21:29:03
    对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推导出另一个,更形象的说就是用同一把钥匙开锁和解锁。在对称密码算法的发展历史中曾出现过多种优秀的算法,包括DES、3...
  • DES加密算法

    千次阅读 多人点赞 2020-03-10 19:48:15
    数据加密标准(DES:Data Encryption Standard) – 对称分组密码算法; – 1979年,美国银行协会批准使用; – 1980年,美国国家标准局(ANSI)同意DES作为私人使用的标准,称之为DEA (ANSI X.392) ; – 1983年,...

    1 相关概念

    数据加密标准(DES:Data Encryption Standard)
    – 对称分组密码算法;
    – 1979年,美国银行协会批准使用;
    – 1980年,美国国家标准局(ANSI)同意DES作为私人使用的标准,称之为DEA (ANSI X.392) ;
    – 1983年,国际化标准组织ISO同意DES作为国际标准,称之为DEA-1;
    – 该标准规定每五年审查一次,计划十年后采用新标准;
    – 最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准。
    (1) 明文
      明文是指没有经过加密的数据。一般而言,明文都是等待传输的数据。由于没有经过加密,明文很容易被识别与破解,因此在传输明文之前必须进行加密处理。

    (2) 密文
      密文只是明文经过某种加密算法而得到的数据,通常密文的形式复杂难以识别及理解。

    (3) 密钥
    密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。

    (4) 对称加密
      通信双方同时掌握一个密钥,加密解密都是由一个密钥完成的(即加密密钥等于解密密钥,加解密密钥可以相互推倒出来)。双方通信前共同拟定一个密钥,不对第三方公开。

    (5) 分组密码
      分组密码是将明文分成固定长度的组,每一组都采用同一密钥和算法进行加密,输出也是固定长度的密文。

    2 DES加密算法

    (1) 分组长度
      DES属于分组密码,明文和密文为 64 位分组。密钥的长度为 64 位,但是密钥的每个第八位设置为奇偶校验位,因此密钥的实际长度为56位。

    (2) 算法流程
      算法流程如下:
    DES算法流程
      使用初始置换表对明文进行置换,这里的置换只是将数据的位置进行变化,得到一个新的数据。初始逆置换表和初始置换表是相互可逆的,就是将原来的数据的位置进行还原。

    (3) 初始置换
      通过明文M和密钥K得到M’,即由明文M初始IP置换得到。

    • IP置换表
    58,  50,  42,  34,  26,  18,  10,  02,
    60,  52,  44,  36,  28,  20,  12,  04,
    62,  54,  46,  38,  30,  22,  14,  06,
    64,  56,  48,  40,  32,  24,  16,  08,
    57,  49,  41,  33,  25,  17,  09,  01,
    59,  51,  43,  35,  27,  19,  11,  03,
    61,  53,  45,  37,  29,  21,  13,  05,
    63,  55,  47,  39,  31,  23,  15,  07,
    

      假设我们的输入明文M为:0110001101101111011011010111000001110101011101000110010101110010
      所选取的密钥K为:0001001100110100010101110111100110011011101111001101111111110001
      我们对其进行初始置换,最终得到的M’为:1111111110111000011101100101011100000000111111110000011010000011
      注:IP置换表中的数据指的是位置,如58指将M第58位放置第1位,50指的是将第50位放置第2位。
      取M’的前32位作为L0,则有L0(32位):11111111101110000111011001010111
      取M’的后32位作为R0,则有R0(32位):00000000111111110000011010000011

    DES加密算法流程
      可以从图中看出,左边的32位L0经过变换成为下一轮右边的输入,右边的32位R0直接成为下一轮左边的输入。

    3 DES算法子密钥生成

      DES算法子密钥输入长度为64位,但是只有48位是有效的,所以需要对密钥K进行变换得到每一轮所需的子密钥。16轮迭代就需要16个48位的子密钥来进行加密。
      DES算法子密钥生产比较简单,64位密钥经过置换选择,只选择其中的56位,对56位密钥同样分为左右28位,按照子密钥计算的逻辑表,每一轮进行循环左移运算分别得到新的56位,这56位再经过第二次置换选择就得到了本轮的子密钥。
    在这里插入图片描述
      根据置换表来选择有效的位数。

    • 例如:

      密钥K=0001001100110100010101110111100110011011101111001101111111110001
    经过PC-1表置换,即执行置换选择1过程。PC-1表为8行7列的表,密钥K经PC-1后变为56位数据K’。最终得出K'=11110000110011001010101011110101010101100110011110001111
      取K’的前28位作为C0,则有C0(28位):1111000011001100101010101111
      取K’的后28位作为D0,则有D0(28位):0101010101100110011110001111
      获得C0,D0后进行左移操作需要查询移动位数表,每轮移动移动位数表如下:

    轮数 1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16
    位数 1	1	2	2	2	2	2	2	1	2	2	2	2	2	2	1
    

      进行第一轮移位,轮数为1,查表得左移位数为1。
      C0左移1位为C1:C1(28位):1110000110011001010101011111
      D0左移1位为D1:D1(28位):1010101011001100111100011110
      将C1和D1合并后,经过PC-2表置换得到子密钥K1,PC-2表中去除了第9,18,22,25,35,38,43,54位。
      由于PC-2表为6X8的表,经PC-2置换后的数据为48位,置换后得到密钥K1,K1(48位) 000110110000001011101111111111000111000001110010

    4 DES算法一轮的运算过程

      这里讲述本轮右边的输入是如何从上一轮左边32位进行复杂的迭代得到的。
    在这里插入图片描述
      此处的R0先进行扩充置换变成了48位,因为在DES算法中有效密钥的长度是48位所以要对其进行扩充置换,将32位的输入扩充为48位,以便于与48位的密钥进行运算。
      扩充之后与48位的密钥进行异或运算,又得到了一个临时的48位数据。因为下一轮的输入只需要32位,所以这48位数据需要转换为32位的数据。接下来将这32位数据与上一轮的L0进行异或运算得到了R1的输入。

    • 扩充置换表
    32,	01,	02,	03,	04,	05,
    04,	05,	06,	07,	08,	09,
    08,	09,	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,	01
    
    • 例如:

      L0(32位)数据:11111111101110000111011001010111
      R0(32位)数据:00000000111111110000011010000011
      扩充之后的数据为48位R0:100000000001011111111110100000001101010000000110
      R0^K1得到: 100110110001010100010001011111001010010001110100
      这一步之后得到48位数据经过代换/选择变为32位,这需要用到S盒。

    5 S盒

      48位数据如何经过代换/选择变为32位是整个DES算法的核心,简称S盒。整个变换中的非线性的运算过程也是在S盒中完成的,接下来讲述S盒的原理。
    在这里插入图片描述
      输入是48比特,输出是32个比特。在算法执行的过程中,将48比特划分为8个S盒,每个S盒的输入是6比特,输出是4比特,通过6选4的变换过程,最终就得到了一个32位的内容输出。
    在这里插入图片描述
      S盒的设计原理是将0~15这16个整数划分成4行16列的数据集合,每一行每一列定位一个整数。
    在这里插入图片描述
      对每个盒,6比特输入中的第1和第6比特组成的二进制数确定的行,中间4位二进制数用来确定的列,相应行、列位置的十进制数的4位二进制数表示作为输出。
      例如的输入为101001,则行数和列数的二进制表示分别是11和0100,即第3行和第4列,第3行和第4列的十进制数为3,用4位二进制数表示为0011,所以的输出为0011。

    6 逆置换

      将初始置换进行16次的迭代,即进行16层的加密变换,得到L16和R16,将此作为输入块,进行逆置换得到最终的密文输出块。逆置换是初始置换的逆运算。从初始置换规则中可以看到,原始数据的第1位置换到了第40位,第2位置换到了第8位。则逆置换就是将第40位置换到第1位,第8位置换到第2位。以此类推,逆置换规则表如下:

    40,	08,	48,	16,	56,	24,	64,	32,
    39,	07,	47,	15,	55,	23,	63,	31,
    38,	06,	46,	14,	54,	22,	62,	30,
    37,	05,	45,	13,	53,	21,	61,	29,
    36,	04,	44,	12,	52,	20,	60,	28,
    35,	03,	43,	11,	51,	19,	59,	27,
    34,	02,	42,	10,	50,	18,	58,	26,
    33,	01,	41,	09,	49,	17,	57,	25,
    

    在这里插入图片描述
      将L16与R16构成64位数据,经过逆置换表输出密文为:0101100000001000001100000000101111001101110101100001100001101000

    7 总结

      经过上面的描述,我们知道DES算法的总体过程为:明文64位->初始置换IP->16轮加密变换->逆初始置换IP-1->密文。在每一轮的迭代中,我们通过查询每一轮移动的位数来得到每一轮中的48位子秘钥,通过置换移位进行复杂的迭代,最终得到密文。

    展开全文
  • python之des加密算法

    2011-09-11 11:27:34
    这里面是python的使用编程小例子,有图形编程的,有des加密算法的。有md5加密算法的
  • 在 AES 出现之前,最常用的对称密钥算法是 DES 加密算法,它在 1977 年被公布成为美国政府的商用加密标准。DES 的主要问题是密钥长度较短,渐渐不适合于分布式开放网络对数据加密安全性的要求。因此,1998年美国...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,930
精华内容 20,372
关键字:

des加密算法