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

【软考】信安中级密码学专题

密码学的三大目标

‌Confidentiality     机密性(保密性):确保信息未经非授权的访问,避免信息泄露。

Integrity               完整性:防止信息非法的修改和毁坏,包括保证信息的不可抵赖性和真实性。

Availability           可用性:保证信息及时且可靠地访问和使用

 

Hash函数

Hash函数主要用于数据完整性、数字签名、消息认证等。

 

Hash函数的特性如下:

(1)单向性(Oneway):已知x,求x=h(m)的m在计算上是不可行的。

(2)抗弱碰撞性(Weakly Collision-free):对于任意给定的消息m,如果找到另一个不同消息n,使得h(m)=h(n)在计算上是不可行的。

(3)抗强碰撞性(Strongly Collision-free):对于任意一对不同的消息m和n,使得h(m)=h(n)在计算上是不可行的。

 

2016年真题

【说明】用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据的安全保密及其重要。以下过程给出了实现用户B对用户A身份的认证过程。

(1)A→B:A

(2)B→A:{B,Nb}pk(A)

(3)A→B:h(Nb)

此处A和B是认证的实体,Nb是一个随机值,pk(A)表示实体A的公钥;{B,Nb}pk(A)表示用 A的公钥对消息B进行加密处理, h(Nb)表示用哈希算法h对Nb计算哈希值。

【问题1】

认证与加密有哪些区别?

参考答案(这里从目标不同出发):加密用于确保数据的机密性,阻止信息泄露。认证用于确保报文发送者和接收者身份的真实性以及报文的完整性,阻止如冒充、篡改等攻击。

 

【问题2】

(1)包含在消息2中的“Nb”起什么作用?

参考答案:Nb是一个随机值,只有发送方B和A知道,起到抗重放攻击作用。

(2) “Nb”的选择应满足什么条件?

参考答案:应具备随机性(不可预测性),不易被猜测。

 

【问题3】

为什么消息3中的Nb要计算哈希值?

参考答案:哈希算法具有单向性,经过哈希值运算之后的随机数,即使被攻击者截获也无法对该随机数进行还原,获取该随机数Nb的产生信息。

 

【问题4】

上述协议存在什么安全缺陷?请给出相应的解决思路。

参考答案(1):存在重放攻击和中间人攻击缺陷。

解决方案:针对重放攻击加入时间戳、验证码等;针对中间人攻击加入针对身份的双向验证。

参考答案(2):存在中间人攻击的安全缺陷。

解决方案:在响应中包含能够证明自己身份和挑战来源的信息。可以在消息2和消息3中加入身份标识。

 

2019年真题

【说明】假设用户A和用户B为了互相验证对方的身份,设计了如下通信协议:

(1)A→B:RA

(2)B→A:f(PAB || RA)RB

(3)A→B:f(PAB ||   

其中:RA、RB是随机数,PAB是双方事先约定并共享的口令,“||”表示连接操作。f是哈希函数。

【问题1】

身份认证可以通过用户知道什么、用户拥有什么和用户的生理特征等方法来验证。请问上述通信协议是采用哪种方法实现的?

参考答案:通过用户知道什么来验证。

 

【问题2】

根据身份的互相验证需求,补充协议第3步的空白内容。

参考答案:RB

试题解析:协议的目标是互相验证

第1步:A向B发送随机数RA,作为对B的挑战。

第2步:B收到了RA,用共享口令PAB和RA计算出f(PAB || RA),这是对A挑战的响应。同时,B生成了自己的随机数RB发送给A,作为对A的挑战。

第3步:A收到了B的响应和挑战。A需要首先验证B的身份,通过自己计算f(PAB || RA)并与收到的值比对。验证通过后,A需要响应B的挑战RB。因此,A需要计算f(PAB || RB)并发送给B。

第4步:B收到了A的响应。B需要验证A的身份,通过自己计算f(PAB || RB)并与收到的值比对。

 

【问题3】

通常哈希函数 f 需要满足下列性质:单向性、抗弱碰撞性、抗强碰撞性。

如果某哈希函数具备:找到任何满足f(x)=f(y)的偶对(x,y)在计算上是不可行的,请说明其满足哪条性质。

参考答案:满足抗强碰撞性。

 

【问题4】

上述协议不能防止重放攻击,以下哪种改进方式能使其防止重放攻击?

(1)为发送消息加上时间参量。

(2)为发送消息加上随机数。

(3)为发送消息加密。

参考答案:(1)和(2)

 

【问题5】

如果将哈希函数替换成对称加密函数,是否可以提高该协议的安全性?为什么?

参考答案:不能。

参考原因(1):对称加密方式密钥不具备哈希函数的单向性。

参考原因(2):这个协议最主要的安全风险是暴力破解攻击。将哈希函数替换为对称加密函数并没有解决这个核心的安全风险,所以无法提高协议的安全性。

http://www.jsqmd.com/news/29267/

相关文章:

  • 算法 第二次作业
  • JavaScript异步编程:从回调地狱到优雅解决方案
  • 使用JavaScript和Node.js构建简单的RESTful API
  • JavaScript中的闭包:原理、应用与代码
  • 2025 年 11 月 PVC 地板厂家最新推荐,聚焦原料安全与功效稳定的专业产品解析
  • 2025 年 11 月 PVC 地板厂家最新推荐,聚焦原料合规与功效持久的专业产品解析
  • 2025 年 11 月 PVC 地板厂家最新推荐,聚焦成分安全与功效持续的优质产品解析
  • 2025 年 11 月 PVC 地板厂家最新推荐,聚焦原料品质与功效长效性的优质产品解析
  • React Hooks:提升前端开发效率的关键
  • 网络设备命令行
  • 基于BESO方法实现MBB梁一体化拓扑优化
  • 究极干货 —— 用最纯粹的语言,解析 DeepSeek OCR
  • 【图文详细】用HBuilder X写PHP并且能够在浏览器运行打开 - 昵
  • 可视化水表数据并实现用水量超标警报的技术方案
  • 11.2 —— (VP)2022icpc南京
  • 第二次软件工程作业
  • Edge---浏览器优化配置
  • 华为Matebook清灰之后扬声器没声音
  • string.replace替换null
  • 类和对象-多态project09
  • Pointnet++论文学习
  • C++的值类型(左值,右值,亡值,泛左值,纯右值)
  • CF1730D Prefixes and Suffixes
  • 工具---短视频下载神器
  • 使用iptables双重DNAT
  • ABC430
  • 团队作业1——团队展示选题-大学生健康生活管理与预警系统
  • 广告投放名词
  • 自定义Linux 备份命令 backup 【from claude.ai Haiku 4.5】
  • 打造你自己的 Linux 备份命令:快速、高效、易用 【from claude.ai Haiku 4.5】