对称加解密算法

对称加解密算法分为:分组加密算法、流加密算法;
目前国际上使用的对称加密算法主要有:
另外,还有我国自主研发的已经公布的SM4算法;

名称英文
DES(Data Encryption Standard)
3DES(Triple DES)
AES(Advanced Encryption Standard)

1. DES

    DES算法全称为Data Encryption Standard,即数据加密算法,DES加密算法是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据。
    对称加密算法,明文按照64位进行分组,密钥长64位,但是实际上只用56位参与DES运算,第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有一个奇数位。分组后的明文和56位的密钥按位替代或交换的方法形成密文。

2. 3DES

3DES(Triple DES)是三重数据加密算法(TDEA)密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

3. AES

AES:又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。用来替代原先的DES。目前已然成为对称密钥加密中的算法之一。

4. RC2

RC2是由密码学家Ron Rivest设计的一种传统对称分组加密算法,它可作为DES算法的建议替代算法。它的输入和输出都是64比特。密钥的长度是从1字节到128字节可变。

5. RC4

RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ronald Rivest在1987年设计的密钥长度可变的流加密算法簇。由于RC4核心部分的S-box长度可为任意,该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。

6. RC5

RC5分组密码算法是1994由麻萨诸塞技术研究所的Ronald L. Rivest教授发明的,并由RSA实验室分析。它是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥大小和加密轮数。在RC5算法中使用了三种运算:异或、加和循环。

7. SM4

SM4为对称算法,密钥长度和分组长度均为128位。

SMS4的标准描述:加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,

解密轮密钥是加密轮密钥的逆序。



对称加密算法还有应用模式,如下:

应用模式
加密模式(英文名称及简写)中文名称
Electronic Code Book(ECB)电子密码本模式
Cipher Block Chaining(CBC)密码分组链接模式
Cipher Feedback Mode(CFB)加密反馈模式
Output Feedback Mode(OFB)输出反馈模式
ECB:最基本的加密模式,也就是通常理解的加密,相同的明文将永远加密成相同的密文,无初始向量,容易受到密码本重放攻击,一般情况下很少用。
CBC:明文被加密前要与前面的密文进行异或运算后再加密,因此只要选择不同的初始向量,相同的密文加密后会形成不同的密文,这是目前应用最广泛的模式。CBC加密后的密文是上下文相关的,但明文的错误不会传递到后续分组,但如果一个分组丢失,后面的分组将全部作废(同步错误)。
CFB:类似于自同步序列密码,分组加密后,按8位分组将密文和明文进行移位异或后得到输出同时反馈回移位寄存器,优点最小可以按字节进行加解密,也可以是n位的,CFB也是上下文相关的,CFB模式下,明文的一个错误会影响后面的密文(错误扩散)。
OFB:将分组密码作为同步序列密码运行,和CFB相似,不过OFB用的是前一个n位密文输出分组反馈回移位寄存器,OFB没有错误扩散问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了多种对称加密算法来进行加密解密操作。常见的对称加密算法有AES、DES和3DES等。你可以通过安装第三方库PyCrypto来使用这些算法对称加密算法使用同样的密钥进行加密解密,密钥是控制加密解密过程的指令。算法则是一组规则,规定了加密解密的具体过程。 要使用对称加密算法,首先需要安装PyCrypto库。然后,你可以选择适合你需求的对称加密算法,并根据其对应的API进行加密解密操作。 总结起来,Python对称加密解密算法的步骤如下: 1. 安装PyCrypto库。 2. 选择合适的对称加密算法,如AES、DES或3DES。 3. 根据算法的API,使用相应的密钥和明文进行加密操作。 4. 使用相同的密钥和密文进行解密操作。 需要注意的是,对称加密算法使用相同的密钥进行加密解密,因此需要保证密钥的安全性。另外,加密解密的过程需要对应的密钥,确保能够正确地进行解密操作。 希望以上信息能够帮助到你。如果有任何疑问,请随时追问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python - 密码加密解密](https://blog.csdn.net/weixin_44462773/article/details/128854517)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值