分组密码算法简述

本文主要内容如下:

分组密码概述

分组密码加密一个明文分组,通常得到的是和明文等长的密文分组。典型的明文分组大小是64位或128位(或是64位的倍数,为什么是64位的倍数呢?因为老计算机数据总线宽度是32位,分组密码加密时通常会将明文分组等分为左右两半,如果时分组大小是64位,那正好左右两半各为32位)。

提到分组加密,不能不提香农信息论中提到的密码系统中两个重要构件:混淆和扩散,分组密码算法跟这两个构件密不可分。

分组密码的工作模式

  • 电码本模式ECB(Electric Code Book)用相同的密钥分别对明文分组单独加密。缺点是要求数据的长度是密码分组长度的整数倍,否则最后一个数据库将是短块,需要特殊处理。另外容易暴漏明文的数据模式。

  • 密文分组链接模式CBC(Ciphertext Block Chaining) 加密算法的输入是上一个密文分组和下一个明文分组的异或。缺点是要求数据的长度是密码分组长度的整数倍,否则最后一个数据库将是短块,需要特殊处理。

  • X CBC模式(Extended Cipher Block Chain ingEncryption) 主要解决了CBC要求明文数据的长度是密码分组长度的整数倍的限制,可以处理任意长度的数据

  • 密文反馈模式CFB(Cipher Feedback)一次处理输入的s位,上一个密文分组作为加密算法的输入,产生的伪随机数输出与明文异或后作为下一个单元的密文。

  • 输出反馈模式OFB(Output Feedback) 与CFB类似,只是加密算法的输入是上一次加密的输出,并且使用整个分组。

  • 计数器 CTR(Counter Mode Encryption) 每个明文分组都与一个经过加密的计数器异或。对每个后续的分组,计数器增1

Feistel密码

Feistel建议使用乘积密码的概念来逼近理想分组密码。所谓乘积密码是指依次使用两个或以上的基本密码,所得结果的密码强度强于所有单个密码的强度。

Feistel结构的具体实现依赖于以下参数和特征:

  • 分组长度 在其他数据不变的情况下,分组越长意味着越安全

  • 密钥长度 密钥较长同样意味着安全性较高(更好的抗穷尽攻击能力和更好的混淆性),但会降低解密速度。

  • 迭代轮数 Feistel密码的本质是单轮加密不能提供足够的安全性。迭代轮数的典型值是16.,(但也不是轮数越多越好)。

  • 子密钥生成算法 子密钥生成越复杂,密码分析就越困难。

  • 轮函数F 轮函数越复杂,抗攻击的能力就越强

  • 快速软件加解密 在许多情况下,加密算法被嵌入应用程序,以避免硬件实现的麻烦

  • 简化分析难度 简化分析难度,就可以容易分析其脆弱性,从而可以开发出更强的算法。

DES数据加密标准

DES设计目标是用于加密保护静态存储和传输信道中的数据,安全使用10~15年(实际使用年限不止了)。它综合运用了置换、代替、代数等多种密码技术。DES的设计充分体现了香农所阐述的设计密码的思想。它是一种分组密码,明文、密文和密钥的分组长度都是64位。密钥长度实际是56位(将64位密钥分成8个字节,每个字节的前7位是真正密钥位,第8位是奇偶校验位或任意)。DES的雪崩效应非常好,S盒的抗差分攻击能力很强。

DES的加解密方法略,个人认为最好的参考资料就是武汉大学出版社出版的《密码学引论》。

IDEA算法

IDEA即国际数据加密算法,分组密码,明文和密文分组长度为64位,密钥长度128位,是对合运算,加解密公用同一算法。易于实现,无论软硬件实现都很方便,而且加解密速度很快。

AES算法

AES 高级数据加密标准,美国颁布的AES规定数据快长度为128位,密钥长度可选择128位、192位或256位。轮函数结构采用的是SP结构,非Feistel结构。

SM4算法

SM4密码算法是我国国家密码管理局2006年公布的无线局域网产品使用的一个分组算法,数据分组长度位128比特,密钥长度为128比特。加密算法与密钥扩展算法都擦用32轮迭代结构。SM4密码算法以字节(8位)和字(32位)位单位进行数据处理(所以具体算法中定义数据类型时需要考虑数据类型在x86和x64操作系统上所占字节数,否则容易出错)。SM4密码算法时对合运算。

KASUMI算法

KASUMI算法时3GPP在日本三菱公司的MISY1密码算法基础上改进形成的分组密码算法。明文和密文的分组长度都是64位,密钥的长度为128位。采用Feistel结构,对基本轮函数进行8轮迭代运算

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值