分组密码及五种工作模式、DES和AES

本文深入探讨了流密码和分组密码,重点介绍了分组密码中的Feistel结构和DES、AES加密标准。内容涵盖流密码的一次一密原则,分组密码的Feistel密码结构,DES的加密过程,AES的密钥扩展和加密解密机制,以及各种分组密码工作模式如ECB、CBC、CFB、OFB和CTR。
摘要由CSDN通过智能技术生成

一、流密码(Stream Cipher)

每次加密数据流的一位或一个字节
古典流密码的例子有:密钥自动产生的Vigenère密码和Vernam密码。
理想情况下,可以使用一次一密版本的Vernam密码,其中密钥流和明文位流一样长。如果密钥流是随机的,除非是获得了密钥流,否则这个密码是不可破的。然而,密钥流必须提前以某种独立、安全的信道提供给双方。
实际上,位流必须以算法程序的方式实现,从而双方都可以生产具有密码学意义的位流。两个用户只需要共享生成密钥,则可以生产密钥流。

二、分组密码(Block Cipher)

将一个明文分组作为整体加密,并且通常得到的是与明文等长的密文分组
典型的分组大小是64位或128位
与流密码一样,两个用户要共享一个对称加密密钥
分组密码作用在n位明文分组上,产生n位密文分组,共有2n个不同的明文分组。由于加密是可逆的(即可以解密),每一个明文分组将唯一对应一个密文分组,这样的变换称为可逆变换或非奇异变换。
对于n位的代替分组密码,密钥的规模是nX2n位。
一般来说,分组密码的应用范围比流密码广泛。绝大多数基于网络的对称密码应用使用的是分组密码。
在这里插入图片描述

三、Feistel分组密码

现在使用的大多数对称分组加密算法都是基于Feistel分组密码结构的。
Feistel密码:交替使用代替(换成别的)和置换(只是顺序变了)
基于1945年Shannon理论的Feistel密码结构,仍是当前使用的大多数重要对称密码的基本结构
Shannon引进混淆扩散这两个术语来刻画任何密码系统的两个基本构件,为了对付基于统计分析方法的密码分析

  • 扩散:使明文的统计特征消散在密文中,可以通过让每个明文数字尽可能地影响多个密文数字获得,等价于说每个密文数字被许多明文数字影响。(尽可能地使明文和密文间的统计关系变得复杂)
  • 混淆:尽可能地使密文和加密密钥间的统计关系变得复杂,即使攻击者拥有一些密文的统计特征信息,利用密钥产生密文的方法的复杂性使得推导密钥极其困难。

Feidtel加密和解密(16轮):
在这里插入图片描述
Feistel结构的具体实现依赖于以下参数和特征
分组长度:分组长度越长意味着安全性越高,但会降低加、解密的速度,这种安全性的增加来自更好的扩散性(传统上,64位的长度比较合理,在分组密码设计里比较常见,高级加密标准中采用128位的分组长度)
密钥长度:密钥长度越长意味着安全性越高,但会降低加、解密的速度,这种安全性的增加来自更好的抗穷举攻击能力和更好的混淆性(64位的密钥不太够,一般使用的密钥长度是128位)
迭代轮数:Feistel密码的本质在于单轮不能提供足够的安全性而多轮加密可以取得很高的安全性,迭代轮数的典型值是16
子密钥产生算法:子密钥产生越复杂,密码分析就越困难
轮函数F:轮函数越复杂,抗攻击的能力就越强
快速软件加解密:很多情况下,加密算法被嵌入到应用程序中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值