密码学h面试大法---h(自用版)更新中~(^v^)
分组密码体系分组密码是什么有什么原则分组密码将明文进行分组每组的长度相同然后分别对明文进行加密分组密码系统{明文空间密文空间密钥空间加密算法解密算法}基本原则1分组足够长低于明文穷举攻击2密钥量足够大且尽可能削减密钥使用3密钥变换足够复杂4加解密运算简单便于软硬件高速实现什么是feistel网络有什么优点明文分左右两部分每轮只对一半进行变换LiRi-1,RiLi-1异或F(Ri-1,ki),典型代表DES优势解密流程与加密流程几乎相同且轮函数不需要可逆什么是SP结构代替置换网络替代-置换网络通过S盒提供非线性混淆和P盒提供线性扩散交替迭代。轮函数必须可逆否则无法解密典型代表AES混淆是为了掩盖明文与密文、密钥与密文之间的关系常用 S 盒实现扩散是为了让明文/密钥的每一位影响密文的很多位常用移位、列混合实现。分组密码的工作模式***1.电子码本ECB每个分组使用同一个密钥进行加密最不安全。相同的明文加密后生成相同的密文无法隐藏明文模式不能抵抗替换攻击2.密码分组链接CBC第一组是明文分组与初始矢量进行异或其余加密的输入是当前明文分组与前一次密文的异或。1优点能够隐蔽明文数据的格式规律和统计特性一定程度识别攻击者是否在密文传输中对密文进行了篡改2缺点具有错误传播明文中有单比特出错之后的组都会受影响解密后除了原来有错的那一组其他的都正确恢复密文中由比特出错导致两组无法解密其余正常错误传播长度为23.密码反馈模式CFB分组密码算法来提供复杂的非线性逻辑的密钥流生成器的作用1与CBC区别反馈密文长度为j而且不是直接与明文相加而是反馈至密钥流生成器2具有错误传播4.输出反馈模式OFB将加密算法的输出反馈至密钥流生成器1优点比特错误不会被传播2缺点容易收到对消息流的篡改攻击无法实现完整性检测5.计数器模式CTR将分组密码变成流密码。加密一个不断递增的计数器再与明文异或。AES算法面向字节***AES算法的基础1AES 的分组长度固定是128 位16 字节。而密钥长度是可变的有三种128 位、192 位、256 位。2AES-128、AES-192、AES-256 的主要区别是什么密钥长度不同、加密轮数不同、密钥扩展算法的轮数不同。分别对应10轮、12轮、14轮3AES采用S-P代替-置换网络结构AES算法步骤除了第一轮的初始密钥加和最后一轮没有列混合外AES 的标准轮包含字节代换利用 S 盒 进行非线性字节映射。作用提供混淆。行移位将矩阵的每一行循环左移不同的字节。作用提供扩散。列混合在有限域GF(2^8)上进行矩阵乘法让一列中的每个字节影响输出的四个字节。作用提供扩散。轮密钥加将矩阵与当前轮密钥进行异或。作用引入密钥保证安全性。非对称密码体制非对称密码体制的核心机制公钥和私钥的作用公钥加密私钥解密用于保证机密性或者私钥签名公钥验签用于身份认证和防篡改非对称密码体制的缺点算性能差异巨大。非对称加密基于复杂的数论问题如大整数素因子分解、离散对数其计算速度比对称加密如 AES慢100 到 1000 倍。RSA算法1核心基于大素数分解困难问题2RSA的密钥生成和加解密公式求私钥d用欧几里得算法计算加解密用模平方算法ELGamal算法1核心基于有限域上的离散对数问题2ElGama缺点密文膨胀因为每一次加密都会产生一对密文C1,C2所以密文长度是明文的两倍