分组密码笔记(DES,AES,SM4,IDEA

目录

基础概念:

DES:

AES:

SM4

IDEA:

工作模式:


基础概念:

1扩散:使得明文和密文的每一位都影响密文中多位的值

2混淆: 使明文和密文之间关系变得复杂(s盒)

3代替-置换网络:

查看源图像

 s盒起到非线性代替的作用(混肴,p是置换(扩散

4Feistel密码结构:

查看源图像

输入是分组长为2w的明文和一个密钥K。将每组明文分成左右两半L_0R_0,在进行完n轮迭代后,左右两半再合并到一起以产生密文分组。第 i 轮迭代的输入为前一轮输出的函数:

其中K_i是第i轮用的子密钥,由加密密钥K得到。一般地,各轮子密钥彼此不同而且与K也不同。

F表示论函数。每一轮的子密钥,一般都是由主密钥生成的一个子密钥集。

多轮迭代,将明文拆分,再与密钥运算,再组合。每一轮之间息息相关。

加解密算法相同,只是子密钥使用顺序不同。

DES:

查看源图像

 主要问题:密钥长度太短,(有效密钥长度为56bit,有8位是奇偶校验)。

ip初始置换:(第一bit被我换为第58bit

查看源图像

轮函数 :左右分成两个32位。右半部分E盒扩展成48位,再与子密钥运算,分成8组再与s盒压缩成32位再与p盒置换。

S盒:接受6bit输入,s盒第一个bit和最后一个bit构成2位二进制数为s盒行号,中间四位为列号,查找转换为二进制。

查看源图像

扩展:

二重DES:采用两个互不相同的密钥k1,k2进行连续加密

三重DES:DES-EEE3使用三个互不相同的密钥,有效密钥长度为168bit,三次连续加密。

DES-EDE3使用三个互不相同的密钥,用第一个密钥加密,第二个密钥解密,再给第三个密钥加密。

DES-EEE2使用两个密钥第一个密钥进行第一次和第三次加密,中间再用第二个密钥加密一次。

DES-EDE2使用两个密钥第一个进行第一和第三次加密,中间再用第二个密钥解密一次。

AES:

 AES算法是在GF(2^8)上的加与乘运算,选择不可约多项式

p(X)= x^8+x^4+x^3+x+1 余式次数最多为7次

例子:0x57 二进制:0101 0111     0x83 二进制:10000011

在GF(2^8)上的多项式为 x^6+x^4+x^2+x+1. 和 x^7+x+1

两数相加结果为 x^7+x^6+x^4+x^2 可以类似看成异或运算

0101 0111异或上100000011=1101 0100

在GF(2^8)的乘法,先将两个多项式相乘

而且x^8=x^4+x^3+x+1,最后置换出来的就是结果。

AES算法 的图像结果

AES将128bit分为16字节组成4*4的矩阵,前四个字节放第一列,依次类推。

S盒:输入字节前四bit作为行值,后四bit作为列值。

查看源图像

 注:加密与解密过程不同

待补充。。。。

SM4

基本运算 异或^和循环左移<<<

将明文分成四个部分

查看源图像

查看源图像

查看源图像

r为4个并行的S盒代替构成。代替规则与aes类似,前四位组成行,后四位组成列。

 查看源图像

 反序列变换,把四个部分按照不同顺序摆放。

IDEA:

基于16bit子块上

查看源图像

 一组64bit明文 划分为4个子块x0,x1,x2,x3,

红色:16bit整数的摸2^16+1的乘法算法

绿色:16bit整数的模2^16的加法运算

蓝色:16bit逐位异或

迭代8次

工作模式:

ECB模式:每个分组用同一个密钥加密,同样的明文分组得到相同的密文。各组的加密独立于其他分组。

CBC模式:环环相扣,第一次使用的密钥影响后面的加密,第一次与明文运算后给第二次(变化,类推。

CFB模式: DES-CFB与DES一个重要不同:DES没有直接作用于明文分组,DES仅用来产生密钥了,DES-CFB的明文直接与密钥做异或,实际上是一种自同步序列密码。

OFB模式将加密算法的输出反馈到移位寄存器。与CFB类似,将分组密码算法作为一个密钥流生成器。

CTR模式:加密和解密使用同样的方案,都使用加密函数而非解密函数,就是一种通过逐次累加的计数器进行加密来产生密钥流的序列密码

补充:

差分分析:适用于有固定S盒的密码算法,确定最后一轮的子密钥和其中一部分是可行的,不同的S盒的查分分布不均匀,这是差分分析的基础

小结:分组密码一般都有S盒,在做CTF中看到一大段数据,可能是S盒,再结合具体特征,来确定加密算法,可能不是很全面,顺带期末复习一下密码学

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值