`
cakin24
  • 浏览: 1386805 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

对称算法的四种运行模式

阅读更多

对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同。解密时,使用的密钥与加密密钥相同。

对称算法主要有四种加密模式:

一 电子密码本模式 Electronic Code Book(ECB)

这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。

其缺点是:电子密码本模式用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复,因此,电子密码本模式适于加密小消息。


 

二 加密块链模式 Cipher Block Chaining(CBC)

CBC模式的加密首先也是将明文分成固定长度的块,然后将前面一个加密块输出的密文与下一个要加密的明文块进行异或操作,将计算结果再用密钥进行加密得到密文。第一明文块加密的时候,因为前面没有加密的密文,所以需要一个初始化向量。跟ECB方式不一样,通过连接关系,使得密文跟明文不再是一一对应的关系,破解起来更困难,而且克服了只要简单调换密文块可能达到目的的攻击。


 

三 加密反馈模式 Cipher Feedback Mode(CFB)

面向字符的应用程序的加密要使用流加密法,可以使用加密反馈模式。在此模式下,数据用更小的单元加密,如可以是8位,这个长度小于定义的块长(通常是64位)。其加密步骤是:

1、使用length位的初始化向量。初始化向量放在移位寄存器中,在第一步加密,产生相应的length位初始化密文K;

2、初始化密文K高n位与明文前n位进行异或运算,产生密文第一部分c(密文块0),然后将c传输到接收方;

3、向量的位(即初始化向量所在的移位寄存器内容)左移n位,使移位寄存器最右边的n位为不可预测的数据,在其中填入c的内容;

4、重复第1-3步,直到加密所有的明文单元。

解密过程相反

四 输出反馈模式 Output Feedback Mode(OFB)

输出反馈模式与CFB相似,惟一差别是,CFB中密文填入加密过程下一阶段,而在OFB中,初始化向量加密过程的输出K的高n位填入加密过程下一阶段。


 

  • 大小: 156.4 KB
  • 大小: 73.5 KB
  • 大小: 113.6 KB
  • 大小: 149.3 KB
2
0
分享到:
评论

相关推荐

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

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

    国密对称算法SMS4源码

    标题中的“国密对称算法SMS4源码”是指中国的国家商用密码标准——SMS4算法的源代码实现。SMS4,全称为“Simplified Message Encryption Algorithm 4”,是中国设计的一种分组密码算法,广泛应用于我国的无线通信、...

    SymmetryAxes-master (1).zip——基于卷积计算的图像对称轴检测算法

    这个压缩包的使用者可以通过运行代码,加载示例图像或者自己的数据,来检测图像的对称轴,并通过调整参数或训练模型以适应不同的应用场景。不过,要完全理解和复现这个算法,还需要对图像处理、卷积神经网络以及深度...

    AES分组加密算法 ECB模式1(代替原来的“AES分组加密算法 ECB模式”,“AES分组加密算法 ECB模式”文件已损坏,下载后不能解压)

    AES(Advanced Encryption Standard)是目前广泛使用的对称加密算法,其设计目的是为了替代之前的DES算法。AES具有高效、安全的特点,适用于大量数据的加密。在本项目中,开发者使用了C语言在Visual Studio 2008环境...

    Java 3des加密算法ECB模式

    Java 3des加密算法ECB模式,亲测完美通过。目前网上的大部分算法都通不过或者加进Base64之类的,还要不下载其它jar包。而代码使用时直接下载运行,无须配置和下载额外的jar包 ,只需换上自己的密钥和待加密的数据...

    基于四邻域的二值图像细化算法

    - **高效性**:算法运行速度快,易于实现。 #### 五、实验验证 - **实验对象**:包括数字、字母和汉字等多种类型图像。 - **结果分析**: - **对称性**:细化后的图像骨架表现出良好的对称性。 - **连续性**:...

    DES算法 CBC模式 C语言实现

    DES(Data Encryption Standard)是一种经典的对称加密算法,由IBM在1970年代初开发,后被美国国家标准局(NIST)采纳为标准。它使用64位的数据块进行加密,但其中8位用于奇偶校验,实际用于加密的有效数据只有56位...

    idea算法加密解密的CBC模式的实现

    IDEA是一种强大的对称密钥加密算法,而CBC模式是块加密算法的一种工作模式,常用于提高安全性。 **IDEA算法:** IDEA(International Data Encryption Algorithm,国际数据加密算法)是由瑞士卢塞恩大学的Xuejia ...

    对称密码学及其应用-03第六三章 序列密码概述%2B分组密码运行模式.pdf

    根据给定文件的信息,我们可以详细探讨“对称密码学及其应用”中关于序列密码和分组密码运行模式的相关知识点。 ### 对称密码学及其应用 #### 第六章:序列密码概述 **一、序列密码的基本概念** 序列密码,也...

    极点对称模态分解(ESMD)

    极点对称模态分解(ESMD,Extreme Symmetric Mode Decomposition)是一种现代信号处理技术,由国内学者在2014年创新性地提出。它主要针对非线性、非平稳信号的分析,旨在从复杂的数据中提取出有意义的动态特征。与...

    AES加密算法的C#实现

    AES(Advanced Encryption Standard)是一种对称加密算法,使用同一个密钥进行加密和解密。AES 算法的原理可以分为三部分:加密、解密和密钥扩展。 1.1 AES 加密 AES 加密算法使用 SubBytes、ShiftRows、...

    网络游戏-XDSL网络中自动选择运行模式的实现方法及装置.zip

    本技术主题涉及一种网络游戏在XDSL网络中自动选择运行模式的实现方法及装置,旨在优化网络性能,提高游戏体验。以下是该技术的详细解析: 1. **XDSL网络基础**:XDSL是数字用户线(DSL)技术的一种扩展,包括ADSL(非...

    RSA、AES、RC4、ECC等加密算法性能分析

    本文将深入探讨RSA、AES、RC4和ECC这四种常见的加密算法,并基于C#实现的加密解密方法进行性能分析。 首先,RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,它的核心在于两个密钥:公钥和私钥。公钥可以公开,...

    国际数据加密算法

    国际数据加密算法(International Data Encryption Algorithm,简称IDEA),是由瑞士联邦理工学院的Xuejia Lai和James Massey于1990年提出的一种高效、安全的对称加密算法。IDEA以其出色的加密强度和相对较低的计算...

    改进的蚂蚁聚类算法 曲建华

    此外,虽然文献中提到的原始对称点距离计算可能会影响算法的运行速度,但曲建华的改进版可能已经解决了这个问题,提升了算法的效率。 总的来说,这篇论文为聚类算法提供了一个新的视角,特别是在处理对称性数据集时...

    java版国密SM4算法

    Java版的国密SM4算法是针对我国自主设计的对称加密标准——SM4的一种实现。SM4算法全称为国家商用密码算法——分组密码算法,它是一种128位的块密码,使用相同的128位密钥进行加密和解密操作。在Java环境中实现SM4...

    基于Java的源码-Blowfish对称密钥加密算法类和实例.zip

    Blowfish是一种对称密钥加密算法,由Bruce Schneier在1993年设计,因其高效性和安全性而广受欢迎。本压缩包文件“基于Java的源码-Blowfish对称密钥加密算法类和实例.zip”包含了一些实现Blowfish算法的Java源代码,...

    AES加密算法程序

    AES加密算法程序是一种广泛应用的对称加密技术,全称为Advanced Encryption Standard,中文名为高级加密标准。AES在信息安全领域中占有重要地位,它以其高效、安全的特性被广泛应用于数据保护、网络安全、存储加密等...

    AES GCM,ECB,KeyWrap算法调试工具

    AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,提供了多种工作模式,如GCM(Galois/Counter Mode)、ECB(Electronic Codebook)和KeyWrap。这些模式各有特点,适用于不同的场景。以下将详细...

    RSA加密解密算法 java版 源码 可运行

    它基于大整数因子分解的困难性,为数据提供了一种非对称加密方式。在Java中实现RSA算法,可以用于保护敏感信息,如用户密码、信用卡号等,确保在网络传输中的安全性。 首先,RSA的核心原理是:选择两个大素数p和q,...

Global site tag (gtag.js) - Google Analytics