目录
基础概念:
1扩散:使得明文和密文的每一位都影响密文中多位的值
2混淆: 使明文和密文之间关系变得复杂(s盒)
3代替-置换网络:
s盒起到非线性代替的作用(混肴,p是置换(扩散
4Feistel密码结构:
输入是分组长为2w的明文和一个密钥K。将每组明文分成左右两半和,在进行完n轮迭代后,左右两半再合并到一起以产生密文分组。第 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将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盒,再结合具体特征,来确定加密算法,可能不是很全面,顺带期末复习一下密码学