信息安全-块对称加密

AES

ECB模式

CBC模式

  1. 每次加密都会随机产生一个不同的比特序列来作为初始化向量;
  2. 无法直接对中间的明文分组进行加密,如要生成密文3,必须要凑齐明文分组1、2、3,一旦加密时中间有一个比特缺失了,也会导致明文分组的长度发生变化,这样缺失比特的位置之后的密文分组也将全部无法解密了;
  3. 解密过程中,只要密文分组的长度没有变化,中间有一个分组损坏了,解密时最多只有两个分组受到数据损坏的影响;

        分组密码还有一种模式叫CTS模式(Cipher Text Stealing Mode),在分组密码中,当明文长度不能被分组长度整除时,最后一个分组就需要进行填充。CTS模式使用最后一个分组的前一个密文分组数据进行填充,根据最后一个分组的发送顺序不同,CTS模式有几种不同的变体,CBC-CS1、CBC-CS2、CBC-CS3;下图演示为CBC-CS3。

CFB模式

  1. 明文分组没有通过密码算法直接进行加密。

OFB模式

  1. 密钥流是可以提前生成的,相对于CFB每次需要将密文分组作为下一个加密的输入,OFB模式更加快速,只要保证初始化向量一样,也不存在CFB的重放攻击问题;
  2. 如果对密钥流的一个分组进行加密后期结果恰巧和加密前是相同的,那么这一分组之后的密钥流就会变成同一值的不断反复;

CTR模式

  1. 加密和解密使用了完全相同的结构,在程序实现上比较容易;
  2. 可以以任意顺序对分组进行加密和解密,因此在加密和解密时需要用到的计数器的值可以由nonce和分组序号直接计算出来,即可以并行计算。
  3. 每次加密时都会生成一个不同的nonce值作为计数器的初始值,当分组长度为128bit时,计数器的初始值可能是像下面这样的形式:

前8字节为nonce,每次加密时都不一样,后8字节为分组序号,这部分是累加的。

GCM模式(基于CTR)和CCM(CBC Counter Mode)

        在CTR模式生成密文的同时生成用于认证的信息。GCM的缺点在于计算量大,导致性能和电量开销比较大,因此使用GCM最好使用硬件支持,基于硬件的GCM,性能还是明显优于chacha20。

 以默认的ECB模式为例:

AES/ECB为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同;AES的加密公式为C = E(K,P),在加密函数E中,会执行一个轮函数,并且执行10次这个轮函数,每轮的轮密钥也不一样,这个轮函数的前9次执行的操作是一样的,只有第10次有所不同。也就是说,一个明文分组会被加密10

加密过程:

SM4

SM4是中国无线局域网国家标准中使用的一种对称加密算法,128bit块加密;

  1. SM4有一个s-box,而AES有两个s-box,一个用于加密,一个用于解密,但s-box的设计是相似的,均使用inversion-based mapping
  2. AES-128SM4具有这些操作,常见的有XORS-box查找(AES128160个,SM4128)和循环移位。此外,与SM4相比,AES-128还具有modular multiplications
  3. SM4的加解密算法是一样的,但是AES128加解密算法是不一样的;

其他详细见《Performance Evaluation and Comparison of Standard Cryptographic Algorithms and Chinese Cryptographic Algorithms

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值