`
zhaosong
  • 浏览: 36659 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

加密对称算法

阅读更多
   所谓对称算法就是指加密和解密过程均采用同一把密钥。如DES,3DES,AES等算法都属于对称算法。下面会对这几种有代表性的算法一一做介绍。

DES算法
DES(Data Encryption Standard)是一种经典的对称算法。其数据分组长度为64位,使用的密钥为64位,有效密钥长度为56位(有8位用于奇偶校验)。它由IBM公司在70年代开发,经过政府的加密标准筛选后,于1976年11月被美国政府采用,随后被美国国家标准局和美国国家标准协会(American National Standard Institute, ANSI) 承认。

该技术算法公开,在各行业有着广泛的应用。DES算法从公布到现在已有20多年的历史,随着计算机能力的飞速发展,DES的56位密钥长度显得有些短了。现在,已经有可能通过穷举的方法来对其进行攻击。但是除此以外,还没有发现穷举以外的能有效破译DES的方法。


三重DES
DES算法现在已经不能提供足够的安全性,因为其有效密钥只有56位。因此,后来又提出了三重DES(或称3DES),该方法的强度大约和112比特的密钥强度相当。

这种方法用两个密钥对明文进行三次运算。设两个密钥是K1和K2,其算法的步骤:
1. 用密钥K1进行DES加密。

2. 用K2对步骤1的结果进行DES解密。

3. 用步骤2的结果使用密钥K1进行DES加密。

13. AES算法
1997年1月美国国家标准和技术研究所(NIST)宣布征集新的加密算法。2000年10月2日,由比利时设计者Joan Daemen和Vincent Rijmen设计的Rijndael算法以其优秀的性能和抗攻击能力,最终赢得了胜利,成为新一代的加密标准AES(Advanced Encryption Standard)。

Rijndael加密:

Rijndael是一个密钥迭代分组密码,包含了轮变换对状态的重复作用。轮数Nr 的值取决于分组和密钥的长度。对于AES,当密钥长度为128比特时,Nr =10;当密钥长度为192比特时,Nr =12;当密钥长度为256比特时,Nr =14。

Rijndael算法的加密过程如图1所示。它包括一个初始密钥加法,记作AddRoundKey,接着进行Nr-1次轮变换(Round),最后再使用一个轮变换(FinalRound)。


轮变换由4个步骤组成:SubBytes,ShiftRows,MixColumns和AddRoundKey。最后一轮与前Nr -1次轮变换稍有不同,省掉了其中的MixColumns步骤。

步骤SubBytes是Rijndael算法中唯一的非线性变换。

步骤ShiftRows是一个字节换位,它将状态中的行按照不同的偏移量进行循环移位。使第i 行第j 位的字节移动到位置(j -Ci)mod Nb,移动偏移量Ci 的值依赖于Nb 的取值。其中Nb =分组长度/32,对于AES,Nb 取固定长度4。

步骤MixColumns是作用在状态各列的置换算法。

密钥加法AddRoundKey将状态与一个轮密钥进行异或。轮密钥是由密码密钥通过密钥编排方案[1]导出。轮密钥的长度等于分组的长度。

Rijndael解密:

Rijndael解密算法有2种形式。一种是直接解密算法,即直接利用步骤InsubBytes,InvShiftRows,InvMixColumns和AddRoundKey的逆并倒置其次序对数据进行解密。

另一种是等价解密算法。等价解密算法有利于有效实现良好的运算次序。
分享到:
评论

相关推荐

    密码学实验_对称加密算法DES_非对称加密算法RSA.pdf

    本实验报告主要涉及两种加密算法:对称加密算法DES(Data Encryption Standard)和非对称加密算法RSA。实验旨在帮助学生深入理解这两种算法的基本原理,并通过Python编程实现加密和解密过程。 ### **对称加密算法...

    RSA非对称加密算法

    RSA 非对称加密算法 RSA 非对称加密算法是一种经典的非对称加密算法,由罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人于 1977 年共同提出的。该算法的主要思想是基于大素数的乘积和因式分解之间的关系,通过...

    常见加密算法方式(对称加密和非对称加密)

    在实际操作中,经常采用混合加密模式:利用非对称加密算法交换对称加密算法的密钥,再利用对称加密算法加密实际数据,从而结合两种加密算法的优点。 总之,加密算法是信息安全领域的基石,合理选择和使用加密算法...

    常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES.pdf

    例如,使用RSA等非对称算法来加密对称算法的密钥,使得在非安全通道中传输密钥成为可能。 对称加密算法的Java实现依赖于JCE框架,通过遵循一定的步骤和方法,可以有效地使用DES、3DES和AES算法来保护数据安全。需要...

    java加密算法:Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法

    java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...

    非对称加密算法 数字签名算法

    非对称加密算法和数字签名是信息技术中两个关键的安全概念,尤其在网络安全和数据保护方面起着至关重要的作用。在Java编程环境中,这些技术被广泛应用于实现安全通信、身份验证和数据完整性保护。 非对称加密算法,...

    非对称加密算法流程图

    非对称加密算法流程图,使用visio绘制。

    ECC非对称加密算法

    ECC非对称加密算法, 最快,最安全的加密算法

    C#开发的对称加密算法

    在IT领域,对称加密算法是一种广泛用于数据保护的技术,特别是在C#编程环境中。这种算法基于一个密钥,用于加密和解密数据,因此被称为“对称”,因为用于加密和解密的密钥是相同的。下面我们将深入探讨C#中的对称...

    易语言自创对称加密算法

    易语言自创对称加密算法

    对称加密AES算法,前后端实现

    **对称加密AES算法** 对称加密是一种广泛使用的加密技术,它的特点是加密和解密使用同一个密钥。AES(Advanced Encryption Standard),即高级加密标准,是目前最常用的对称加密算法之一,它在数据安全领域扮演着至...

    对称加密算法概述

    对称加密算法是一种广泛应用于信息安全领域的技术,它的主要特点是加密和解密使用相同的密钥。在OpenSSL库中,对称加密算法的实现主要通过EVP(Encrypt, Verify, and Parse)接口,尤其是EVP_Encrypt*...*和EVP_...

    OpenSSL对称加密算法中如何添加新算法

    OpenSSL 是一个开源的加密算法库,它提供了对称加密算法、非对称加密算法、哈希算法等多种加密算法。OpenSSL 的对称加密算法中可以添加新算法,以满足不同的加密需求。下面我们将介绍如何在 OpenSSL 对称加密算法中...

    非对称加密算法

    ### 非对称加密算法的关键知识点 #### 1. 非对称加密算法概述 非对称加密算法是一种重要的加密技术,它基于一对密钥(公钥和私钥)来进行加密和解密操作。这种加密方式的核心优势在于提高了数据的安全性,因为它...

    自定义对称加密解密算法

    自定义对称加密解密算法,正如标题所提及,是指设计和实现一种特定的加密机制,以提高加密速度并增强安全性,使其难以被破解。 对称加密的历史可以追溯到古罗马时期,但现代对称加密算法的设计更为复杂且高效。常见...

    对称算法工具

    在信息技术领域,对称算法是数据加密的一种基本方法,它在信息安全中扮演着至关重要的角色。对称算法工具则是用于实现这些算法的软件或硬件,它们使得用户能够对数据进行加密和解密,以保护隐私和确保数据的安全传输...

    SM4对称加密算法源码

    SM4对称加密算法源码 SM4对称加密算法是一种block Cipher 加密算法,用于保护数据的安全性和完整性。SM4算法是中国国家商用密码算法,广泛应用于 Wireless networks、Cloud Computing、Big Data 等领域。 SM4算法...

    .NET对称加密算法工具

    .NET框架(.NET FCL,即.NET Framework Class Library)提供了丰富的加密功能,其中包括对称加密算法。对称加密是一种常见的加密方法,它依赖于相同的密钥进行数据加密和解密,因此效率较高,适合大量数据的加解密...

    PBE是一种基于口令的加密算法,使用口令代替其他对称加密算法中的密钥,其特点在于口令由用户自己掌管,不借助任何物理媒体;

    PBE算法是对称加密算法的综合算法,常见算法PBEWithMD5AndDES,使用MD5和DES算法构建了PBE算法。将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 ...

Global site tag (gtag.js) - Google Analytics