1:什么是对称密码算法
对称密码算法又称为传统密码算法、秘密密钥算法或单密钥算法。
对称密码算法的加密密钥与解密密钥存在一定的关系,加密密钥可以从解密密钥中推出。
大多数对称算法中,加密解密密钥是相同的。
2:对称密码算法可分为 序列算法 和 分组算法
序列算法:一次只对明文中的单个位进行运算
分组算法:一次对明文的一组位进行运算
3:对称密钥常见的数学运算
移位和循环移位
置换
扩展
压缩
异或
迭代 多次重复相同的运算
DES算法学习
1:DES算法是一种 迭代算法,对明文中的每个分组的加密过程都包含16轮,每一轮的操作完全相同,且
每轮都使用不同的密钥进行加密。
2:初始置换和逆初始置换
初始置换
逆初始置换
3:等分密钥 (64去掉8位奇偶校验变成56位 56进行分组 每组28位)
4:16个子密钥的诞生(每组28位进行规定的循环移位操作 移位后将两组密钥合并成56位)
5: 子密钥从58位变成48位之谜(进行置换)
6:f函数的秀操作
首先 将32位明文扩展至48位
扩展函数
其次 将扩展后的明文和子密钥进行 XOR 操作
而后 将XOR操作后的48位进行分组 共分为8组 每组6位
再 将 8组进行压缩操作 将6位压缩成 4位 (利用8个S盒进行置换操作)
最后 将 8组进行整合 输出一轮加密后的密文
7:将f函数操作后的32位密钥与 原文置换后分组密钥中为被f函数操作的那组 进行 XOR操作
将XOR操作后的密钥和被f函数操作那组密钥进行整合
可以根据 C0=C16 D0=D16 将C16 和 D16 密钥推导出来 然后进行相应的右移操作可以依次获得所有密钥
8: DES解密(逆加密算法)
注意第一次变换使用 第16个密钥解密 以此类推
并且 对加密过程最后一步未加密的部分进行加密操作 及 对 L进行操作
问 核心思想