`
maikkk
  • 浏览: 15428 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

DES算法

阅读更多

 DES(Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。一般密码长度为8个字节,其中56位加密密钥,每个第8位都用作奇偶校验。 

 

   DES的几种工作方式 

 

第一种电子密本方式(ECB) 

   将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。 

 

  第二种密文分组链接方式(CBC) 

   在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密前与一组密文有关,因此前一组密文的错误会传播到下一组。 

 

  第三种密文反馈方式(CFB),可用于序列密码 

   明文X=(x0,x1,……,xn-1),其中xi由t个比特组成0   第四种输出反馈方式(OFB),可用于序列密码 

   与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点 

 

   DES的几种填补方式 

   DES是对64位数据的加密算法,如数据位数不足64位的倍数,需要填充,补充到64位的倍数。 

 

   NoPadding 

   API或算法本身不对数据进行处理,加密数据由加密双方约定填补算法。例如若对字符串数据进行加解密,可以补充\0或者空格,然后trim 

 

   PKCS5Padding 

   加密前:数据字节长度对8取余,余数为m,若m>0,则补足8-m个字节,字节数值为8-m,即差几个字节就补几个字节,字节数值即为补充的字节数,若为0则补充8个字节的8 

   解密后:取最后一个字节,值为m,则从数据尾部删除m个字节,剩余数据即为加密前的原文 

 

   SSL3Padding 

   SSL3.0协议定义的填补算法 

 

 

   java默认的DES算法实现方式为DES/ECB/PKCS5Padding。若c++或其他语言与java进行加解密互通,若java采用默认实现,另一方工作方式和填补算法必须都是用ECB和PKCS5Padding。

分享到:
评论

相关推荐

    DES算法 加密算法解密算法

    DES 算法加密算法解密算法 DES 算法概述 DES(Data Encryption Standard)是一种对称密钥块加密算法,由美国 IBM 公司的 W. Tuchman 和 C. Meyer 于 1971-1972 年研制成功。1973 年,美国国家标准局(NBS)公开...

    【老生谈算法】运用Matlab实现DES算法.docx

    在这篇文章中,我们将讨论如何使用 Matlab 实现 DES 加密算法。DES 算法是美国数据加密标准,是一种对称密码体制加密算法。其密钥长度为 56 位,明文按 64 位进行分组,将分组后的明文组和 56 位的密钥按位替代或...

    des算法实验报告

    ### DES算法实验报告知识点 #### 实验目的 本次实验旨在通过编写DES算法代码,深入了解分组密码算法的设计理念及其工作模式。DES(Data Encryption Standard,数据加密标准)是一种广泛使用的对称加密算法,由IBM...

    DES算法具体过程及伪代码

    基于给定文件的信息,我们将详细阐述DES算法的背景、设计理念、应用场景以及它在解决特定问题方面的优势。同时,我们将基于已有的描述,尝试复原文章中可能提到的DES算法的具体过程,并给出相关的伪代码描述。 ### ...

    信息安全DES算法带界面实现

    在本项目中,"信息安全DES算法带界面实现"是一个实验性质的程序,它提供了用户友好的图形界面,使得用户可以直观地进行DES算法的操作,并进行不同进制之间的转换。 DES算法由IBM公司于1970年代初期设计,1977年被...

    DES算法和3DES算法.txt

    本文档描述了DES算法和3DES算法加、解密流程和补位数据规则,供理解学习DES算法和3DES算法。供密码开发相关人员了解最简单的密码算法入门学习使用。

    C++实现3Des算法.zip_3DES算法 C++_3des_C++_visual c_加密算法

    DES是一种对称加密算法,使用56位的密钥对数据进行加密,而3DES是通过三次应用DES算法来提高其安全性,从而提供更强大的加密强度,其密钥长度达到了168位。 在C++中实现3DES算法通常涉及以下几个关键步骤: 1. **...

    基于java实现的des算法

    基于Java实现的DES算法 作为一个IT行业大师,我将从给定的文件中生成相关知识点。 标题:基于Java实现的DES算法 在这个标题中,我们可以看到这个Java程序的主要功能是实现DES(Data Encryption Standard)算法。...

    DES算法演示DES算法演示

    DES算法演示DES算法演示DES算法演示DES算法演示DES算法演示DES算法演示DES算法演示DES算法演示DES算法演示

    RSA算法与DES算法的实现

    RSA 算法与 DES 算法的实现 RSA 算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对 RSA 密钥,其中之一是保密密钥,由用户保存;...

    DES算法matlab实现

    ### DES算法在MATLAB中的实现 #### 一、概述 数据加密标准(Data Encryption Standard,简称DES)是一种对称密钥算法,用于保护敏感数据的安全传输。它最初由IBM开发,并于1977年被美国国家标准局采纳为官方标准。...

    DES算法C++实现

    本文将详细介绍DES算法的原理以及如何使用C++进行实现,并结合提供的"TestForm"测试类来探讨其实用性。 DES算法基于Feistel结构,由IBM在1970年代初期开发,后来被美国国家标准局(NIST)采纳为数据加密标准。它...

    信息安全des算法实现

    DES算法基于块密码的设计原理,采用64位的数据块和56位的密钥进行操作,通过一系列复杂的数学运算,将明文转换为密文,以保护数据的安全。 描述中的"只有300行的代码"表明这是一个简化的DES算法实现,对于初学者来...

    C语言实现DES算法DES加密算法实验报告.doc

    C语言实现DES算法DES加密算法实验报告.doc

    DES算法原理与实现

    DES算法原理与实现,DES算法原理与实现DES算法原理与实现DES算法原理与c实现

    DES算法DES算法

    DES算法的核心是Feistel结构,它采用64位的明文输入和64位的密文输出,但实际有效数据只有56位,因为其中8位用于奇偶校验,不参与加密过程。 DES加密过程分为16轮迭代,每轮包含以下四个步骤: 1. **初始置换**:...

    DES算法的汇编语言程序

    DES算法的主要流程包括初始置换(IP)、16轮迭代运算和逆初始置换(IP-1)。 初始置换(IP)的作用是将64位的明文按照特定规则重新排列,分为L0和R0两部分,每部分32位。IP置换规则是将原始64位数据重新排序,例如...

    des算法的c语言实现(c源代码)

    在C语言中实现DES算法,主要涉及以下几个核心知识点: 1. **密钥扩展**:DES的56位密钥在实际使用中会被扩展成64位,并通过一系列置换和循环移位操作,形成16个子密钥,每个子密钥48位。这个过程称为密钥扩展,包含...

    基于C++的DES算法实现.doc

    基于 C++ 的 DES 算法实现 摘要:本文主要研究了基于 C++ 的 DES 算法实现,旨在解决当前网络环境中的数据加密问题。通过对 DES 算法的原理、优缺点的分析,并编写了 C++ 源代码,实现了数据的加密。研究结果表明,...

    基于C语言的DES算法加密与解密

    在C语言中实现DES算法,可以帮助理解其工作原理,并且为实际项目开发提供基础。 DES算法的核心是Feistel结构,它将原始数据分为左右两半,通过迭代16轮的加密过程,每轮都包含一系列的置换和异或操作。这些操作包括...

Global site tag (gtag.js) - Google Analytics