当前位置: 首页 > news >正文

密码学h面试大法---h(自用版)更新中~(^v^)

分组密码体系

分组密码是什么,有什么原则?

分组密码:将明文进行分组,每组的长度相同,然后分别对明文进行加密

分组密码系统{明文空间,密文空间,密钥空间,加密算法,解密算法}

基本原则(1)分组足够长,低于明文穷举攻击(2)密钥量足够大且尽可能削减密钥使用(3)密钥变换足够复杂(4)加解密运算简单便于软硬件高速实现

什么是feistel网络?有什么优点?

明文分左右两部分,每轮只对一半进行变换(Li=Ri-1,Ri=Li-1异或F(Ri-1,ki)),典型代表:DES

优势:解密流程与加密流程几乎相同,且轮函数不需要可逆

什么是SP结构(代替置换网络)

替代-置换网络,通过S盒(提供非线性混淆)和P盒(提供线性扩散)交替迭代。轮函数必须可逆,否则无法解密;典型代表:AES

  • 混淆是为了掩盖明文与密文、密钥与密文之间的关系(常用 S 盒实现);
  • 扩散是为了让明文/密钥的每一位影响密文的很多位(常用移位、列混合实现)。

分组密码的工作模式***

1.电子码本(ECB):每个分组使用同一个密钥进行加密

最不安全。相同的明文加密后生成相同的密文,无法隐藏明文模式,不能抵抗替换攻击

2.密码分组链接(CBC):第一组是明文分组与初始矢量进行异或,其余加密的输入是当前明文分组与前一次密文的异或。

(1)优点:能够隐蔽明文数据的格式规律和统计特性,一定程度识别攻击者是否在密文传输中对密文进行了篡改

(2)缺点:具有错误传播;

  • 明文中有单比特出错,之后的组都会受影响,解密后除了原来有错的那一组,其他的都正确恢复
  • 密文中由比特出错,导致两组无法解密,其余正常,错误传播长度为2

3.密码反馈模式(CFB):分组密码算法来提供复杂的非线性逻辑的密钥流生成器的作用

(1)与CBC区别:反馈密文长度为j而且不是直接与明文相加而是反馈至密钥流生成器

(2)具有错误传播

4.输出反馈模式(OFB):将加密算法的输出反馈至密钥流生成器

(1)优点:比特错误不会被传播

(2)缺点:容易收到对消息流的篡改攻击,无法实现完整性检测

5.计数器模式(CTR):将分组密码变成流密码。加密一个不断递增的计数器,再与明文异或。

AES算法(面向字节)***

AES算法的基础

(1)AES 的分组长度固定是128 位(16 字节)。而密钥长度是可变的,有三种:128 位、192 位、256 位。

(2)AES-128、AES-192、AES-256 的主要区别是什么?密钥长度不同、加密轮数不同、密钥扩展算法的轮数不同。分别对应:10轮、12轮、14轮

(3)AES采用S-P(代替-置换网络)结构

AES算法步骤

除了第一轮的初始密钥加和最后一轮没有列混合外,AES 的标准轮包含:

  • 字节代换:利用 S 盒 进行非线性字节映射。作用:提供混淆。
  • 行移位:将矩阵的每一行循环左移不同的字节。作用:提供扩散。
  • 列混合:在有限域GF(2^8)上进行矩阵乘法,让一列中的每个字节影响输出的四个字节。作用:提供扩散。
  • 轮密钥加:将矩阵与当前轮密钥进行异或。作用:引入密钥,保证安全性。

非对称密码体制

非对称密码体制的核心机制,公钥和私钥的作用

公钥加密,私钥解密(用于保证机密性);或者私钥签名,公钥验签(用于身份认证和防篡改)

非对称密码体制的缺点

性能差异巨大。非对称加密基于复杂的数论问题(如大整数素因子分解、离散对数),其计算速度比对称加密(如 AES)慢100 到 1000 倍

RSA算法

(1)核心:基于大素数分解困难问题

(2)RSA的密钥生成和加解密公式

  • 求私钥d用欧几里得算法
  • 计算加解密用模平方算法

ELGamal算法

(1)核心:基于有限域上的离散对数问题

(2)ElGama

缺点:密文膨胀,因为每一次加密都会产生一对密文(C1,C2),所以密文长度是明文的两倍

http://www.gsyq.cn/news/1605104.html

相关文章:

  • (InputStream的源码、FilterInputStream源码、BufferedInputStream的源码解读前言)AtomicReferenceFieldUpdater.class和Sys
  • ingress-nginx
  • FanControl终极指南:如何在Windows上实现智能风扇控制,告别噪音烦恼
  • 在线教程丨32K上下文一次解析数十页文档,百度开源Unlimited OCR,重构长文档复杂场景
  • LPDDR5 ZQ校准实战:从背景校准到命令模式的深度解析
  • 从DCB到OSB:北斗多频多系统硬件延迟改正的演进与实践
  • 更新int count变量,fill()函数中getInIfOpen().read(buffer, pos, buffer.length - pos)这行代码的返回值为8192,
  • D3KeyHelper终极指南:暗黑3智能游戏自动化与按键管理解决方案
  • 量子LDPC码波束搜索解码器:原理、优化与应用
  • BGP路由反射器实战:从反射簇设计到防环机制的部署与验证
  • 考验AI的“自我“-AI对《红楼梦》后40回的改写(29)
  • OV SSL证书一年费用多少?单域名、多域名和通配符价格怎么选
  • 信号链路——从采样电阻到电流数值
  • 从调试失败到上线交付:一位资深架构师的ChatGPT API Python集成手记(含企业级重试/降级/监控完整链路)
  • 口碑好的抗衰项目直销厂商
  • MSPM0 H-Series I2C模块深度解析:从控制器/目标模式到低功耗与DMA优化
  • 无法强制安装 pyinstaller-hooks-contrib
  • TAS5711数字音频放大器:从I2S到PWM的完整开发指南
  • Agent编排的核心挑战指令与内容分离剪贴板法则的实践与思考
  • 实战ModSecurity WAF:从DVWA靶场到自定义SQL注入防御规则
  • go 数字人Coze智能体
  • 卡梅德生物技术快报|羊驼纳米抗体文库筛选实操全流程:天然 / 合成文库构建与淘选参数汇总
  • AI数字人平台热门十三问|必火AI数字人全维度专业解答
  • 如何高效优化电子书阅读体验:Kindle Comic Converter的完整漫画转换方案
  • 从 0 开始学 Python:装好环境,写一下demo实例
  • GPU硬件故障排查终极指南:5分钟完成显卡内存稳定性检测
  • 收藏!小白程序员必看:如何将大模型Agent从Demo成功落地工程实践?
  • Lean 4实战指南:5个步骤掌握下一代定理证明编程语言
  • Vibe Coding:说人话就能做软件,超简单开发流程全讲明白
  • XSS防御实战:从同源策略到CSP的纵深安全体系构建