Security Reduction学习笔记(2):预备知识(群环域,双线性配对,哈希函数)
省略部分可参考密码协议学习笔记(1.4):密码学的一些数学基础 - Isakovsky - 博客园 (cnblogs.com)
有限域:
若
其零元,单位元分别记为
记
素数域 :
由
有限域 :
该域上的元素形式为
容易看出其阶为
记
循环群:
定义:Abel群(交换群):
- 封闭性
- 结合律
- 存在恒等元
- 对于每个元素
均存在逆元 - 交换律
设
定义:循环Abel群:
Abel群
存在(至少一个)生成元,记为
定义:素数阶的循环Abel群(循环群):
若生成元
为质数 为 的因数
则称
素数阶的循环Abel群简称循环群(Cyclic Group)
循环群
是最小子群(其子群只有自身)- 除
以外,元素均为生成元 - 可以容易地计算出逆元
要构造一个循环群,首先需要确定
- 元素空间
- 生成元
- 阶
可以用
循环群上的计算复杂性问题:
密码系统的构建,需要依赖一些容易求解的问题和难求解的问题的配合.
首先规定,在之后的讨论中,
循环群
但对于离散对数问题,求解并不是那么容易.
定义:循环群 上的离散对数问题
记
若
给定任意
对于任意循环群
(博主注:因为这样,
(博主注:离散对数的求解方法:BSGS算法,见求解离散对数的方法:BSGS - Isakovsky - 博客园 (cnblogs.com))
(博主注:但并非所有循环群上的离散对数问题都是难解的,例如在模素数
可能不那么直观,不妨举个例子,在循环群
双线性配对:
见密码协议学习笔记(2):密钥交换协议 - Isakovsky - 博客园 (cnblogs.com) 基于身份的密钥协商部分
哈希函数:
基于安全的分类:
- 抗逆向哈希函数
- 抗碰撞哈希函数
基于输出值的分类
- 输出定长字符串
- 输出整数
- 输出域上的元素
伪随机数发生器:
略.
不安全的密码系统的示例:
例1:
该系统中,私钥
明文
问题:已知
参考答案
计算例2:
该系统中,私钥
明文
问题:已知
参考答案
计算例3:
该系统中,私钥
明文
问题:已知
参考答案:
计算
私钥已求出,直接伪造即可.
例4:
该系统中,私钥
明文
问题:已知
参考答案
计算
随机生成
然后将
例5:
该系统中,私钥
明文
问题:已知
参考答案
参考:万剑振铜臭的动态-哔哩哔哩 (bilibili.com)
首先需要明确该密码方案的验证方法,验证中需要用到双线性映射
接收方收到消息
然后计算
比较两者是否相等即可.
而对于已知消息消息
计算
计算
以此法得出的
这也意味着
将已知的签名前半部分进行重放攻击,得到伪造签名
例6:
该系统中,私钥
明文
问题:已知
参考答案
计算
然后计算
得到伪造签名.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!