学习目标
- 《Introduction to Security Reducion》
- Foundations of Group-Based Cryptography
群论密码学是现代密码学的核心分支,其安全性基于抽象代数中群结构的计算困难性问题。以下是其核心内容体系:
核心困难性问题:
本章介绍群密码学(Group-Based Cryptography)的数学基础,包括有限域、群结构、双线性配对三类代数工具,以及哈希函数。
一、哈希函数
根据安全性定义,哈希函数可以分为以下两种主要类型:
散列函数根据输出空间可以分为以下三种重要类型,其中输入可以是任意字符串:
二、如何伪造新消息的签名
(针对不安全的签名方案)
2.1 方案1进行伪造
对于任意新消息 m',可以构造:
2.2 方案2进行伪造
对于任意新消息 m':
2.3 方案3进行伪造
已知:
- σ₁ = α + m₁β mod p
- σ₂ = α + m₂β mod p
σ₁ - σ₂ = β(m₁ - m₂) mod p
解得:
- β = (σ₁ - σ₂) × (m₁ - m₂)⁻¹ mod p
- α = σ₁ - m₁β mod p
2.4 方案4进行伪造
提取关键信息
- 从签名
中,可以计算:
构造伪造签名:
- 任选
- 计算
- 计算
- 伪造的签名为
2.5 方案5进行伪造
令,则:
伪造签名:
2.6 方案6进行伪造
目标是计算
可以通过对 进行指数调整来实现:
这样,我们成功利用 和
的信息伪造了
的签名。
三、对不安全签名方案的安全加固建议
- 是否所有消息都经过哈希处理?
- 是否包含不可预测的随机数?
- 签名方程是否非线性?
- 是否通过形式化安全证明?
- 是否使用标准密码学库实现?
3.1 引入密码学哈希函数
所有消息必须经过哈希处理:σₘ = f(α, H(m))
示例:σₘ = g^(α+H(m)) mod p
作用:打破消息与签名的线性关系
3.2 必须添加随机性
每个签名需包含唯一随机数:σₘ = (r, f(α,m,r))
示例:Schnorr签名 σₘ = (gʳ, α·H(m||gʳ)+r)
作用:防止代数关系攻击
end...