学习目标:
- 《Introduction to Security Reducion》
- 学习数字签名、公钥加密和基于身份加密的基础知识
一、数字签名
1.1 签名方案
数字签名是密码学中的基础工具,广泛应用于身份认证和不可否认性验证。以身份认证为例:假设参与者Alice需要向其他各方证明某条消息确实由她发布。为此:
- Alice首先生成公私钥对
,并将公钥
公开分发给所有验证者
- 随后,她使用私钥
对消息
进行数字签名,生成签名
。
- 当接收方获取到消息签名对
时,任何持有公钥
的验证者均可验证该签名,从而确认消息的真实来源。
数字签名方案由以下四部分组成:
- 安全性:在不知道私钥
的情况下,任何概率多项式时间(PPT)攻击者都难以伪造出能通过签名验证的消息
的有效签名
。
1.2 安全模型
在数字签名的安全模型中,安全性通过挑战者与攻击者之间的交互游戏来建模。在该游戏中,挑战者生成签名方案,而攻击者则试图破解该方案。具体流程如下:
- 初始化阶段:挑战者生成密钥对
,将公钥
发送给攻击者,秘密保存私钥
- 查询阶段:攻击者可自适应地选择任意消息进行签名查询,挑战者对每个查询消息返回有效签名
- 伪造阶段:攻击者输出一个未被查询过的新消息及其伪造签名
该安全概念被称为"存在性不可伪造性"(Existential Unforgeability),其核心特征是:
- √ 攻击者无法伪造任何未查询消息的有效签名
- √ 即使获得多个消息的合法签名,也无法推导出私钥
- √ 安全强度通过攻击者的成功概率来衡量
针对选择消息攻击的存在性不可伪造安全模型(EU-CMA)可形式化描述如下:
初始化阶段(Setup):
给定系统参数,挑战者执行以下操作:
- 运行密钥生成算法生成密钥对
- 将公钥
发送给攻击者
- 秘密存储私钥
用于响应签名查询
查询阶段(Query):
- 攻击者可以自适应选择任意消息
发起签名查询,对于每个查询:
- 挑战者运行签名算法生成签名
- 将签名
返回给攻击者
伪造阶段(Forgery):
攻击者输出伪造结果,当且仅当满足以下条件时获胜:
- 验证等式成立:
- 消息
未在查询阶段被请求过签名
优势定义:攻击者获胜的优势定义为成功输出有效伪造签名的概率
- 定义 2.1.0.1(EU-CMA):若不存在任何攻击者能在时间
内,经过
次签名查询后,以优势
赢得上述游戏,则称该签名方案在 EU-CMA(选择消息攻击下的存在性不可伪造)安全模型中具有
-安全性。
仅要求攻击者无法伪造未查询过消息的有效签名。
适用于大多数标准签名方案(如ECDSA、RSA-PSS)。
- 定义 2.1.0.2(SU-CMA):若不存在任何攻击者能在时间
内,经过
次签名查询后,以优势
赢得上述游戏,且允许伪造的签名针对任意消息(只要该签名不同于所有已查询的签名),则称该签名方案在 SU-CMA(选择消息攻击下的强不可伪造性)安全模型中具有
-安全性。
- 进一步要求攻击者无法对已查询消息生成新签名(即同一消息的不同有效签名)。
- 适用于需要防止签名重放或变体的场景(如区块链交易)。
在(标准)数字签名的定义中,私钥sk在签名生成过程中无需更新,此类签名我们称为无状态签名(stateless signature)。与之相对,若每次生成签名前都需要更新私钥sk,则称为有状态签名(stateful signature)。
二、公钥加密
2.1 加密流程
公钥加密是公钥密码学中的另一核心工具,其应用场景涵盖数据保密传输、密钥交换、茫然传输等重要领域。以数据保密性为例,假设通信双方Bob需要向Alice发送敏感消息,而双方并未预先共享任何密钥。其典型工作流程如下:
- 密钥生成阶段:Alice生成公私钥对
,将公钥
通过可信渠道公开;
- 加密传输阶段:Bob使用Alice的公钥
加密消息:
,通过公开信道发送密文
给Alice;
- 解密恢复阶段:Alice使用私钥
解密密文:
;
公钥加密方案由以下四种算法组成:
- 安全性:对于任何概率多项式时间(PPT)攻击者而言,在未知私钥
的情况下,从给定密文
中提取原始消息
在计算上是不可行的。
2.2 安全模型
不可区分性安全(Indistinguishability Security) 是公钥加密方案的核心安全定义,用于衡量加密系统在面对主动攻击时的保密强度。其核心思想是:攻击者即使能够选择明文并获取对应密文,也无法区分不同明文的加密结果。
公钥加密的不可区分性安全通过挑战者与攻击者之间的交互游戏来建模,其形式化描述如下:
- 初始化阶段:挑战者生成密钥对
,将公钥
发送给攻击者,秘密保存私钥
- 挑战阶段:攻击者A提交两个等长消息
(消息空间),挑战者随机选取
,生成挑战密文
- 查询阶段(CCA安全模型):A可自适应发起解密查询
,挑战者响应
,禁止对
的直接解密查询
- 猜测阶段:A输出猜测结果
针对选择密文攻击的不可篡改性(IND-CCA)的安全模型可以描述如下:
1. 初始化阶段(Setup)
-
给定公共参数 SP(例如:椭圆曲线参数、哈希函数等)。
-
挑战者运行密钥生成算法,生成公私钥对
,并将公钥
发送给攻击者。挑战者保密存储私钥
,用于后续解密查询响应。
2. 查询阶段 1(Phase 1)
-
攻击者可任意选择密文
向挑战者发起解密查询
-
挑战者运行解密算法,返回明文
。
-
攻击者可多次查询,但后续挑战阶段禁止对目标密文
的解密。
3. 挑战阶段(Challenge)
-
攻击者提交挑战消息:攻击者选择两个等长明文
-
挑战者加密:挑战者随机选取
,计算挑战密文:
-
返回挑战密文:挑战者将
发送给攻击者。
4. 查询阶段 2(Phase 2)
-
继续解密查询:攻击者可继续发起解密查询,但禁止查询
(否则游戏无意义)
-
挑战者响应:与 Phase 1 相同,返回
5. 猜测阶段(Guess)
-
攻击者输出猜测:攻击者输出
,猜测
对应的是
还是
-
胜利条件:若
,攻击者获胜。
6. 攻击优势(Advantage)
攻击者的优势 ϵ 定义为:
- 定义 2.2.0.1(IND-CCA 安全性)若不存在任何攻击者能在时间
内,经过最多
次解密查询后,以优势
赢得上述安全游戏,则称该公钥加密方案在 IND-CCA(选择密文攻击下的不可区分性) 安全模型中具有
-安全性。
- 定义 2.2.0.2(IND-CPA 安全性)若公钥加密方案在 IND-CPA(选择明文攻击下的不可区分性) 安全模型中满足
-安全性,则意味着该方案在不允许任何解密查询(即
)的 IND-CCA 模型中同样安全。此安全性质亦称为语义安全(Semantic Security)。
随机硬币(Random Coin)
在安全模型中,挑战者通过随机选择 (或
,若
已用于困难假设)决定加密哪条挑战消息
。此随机性确保攻击者无法通过概率偏差破解方案。
三、基于身份的加密
3.1 加密流程
传统公钥加密(PKE)存在证书依赖性问题:
- 公钥表现为随机字符串(如RSA-2048密钥),必须依赖PKI证书体系验证身份绑定
- 证书管理带来高昂部署成本(CA机构、吊销列表等)
IBE通过身份即公钥的创新设计解决该问题。
IBE核心组件包括主密钥生成中心,主公钥
,主私钥
,身份
,私钥
由
签发的用户解密密钥(基于
和
计算生成)
假设一方(比如Bob)想要向另一方(比如Alice)发送一条敏感消息,Bob只需使用主公钥和Alice的身份
(比如Alice的电子邮件地址)对消息进行加密,Alice则使用私钥
解密密文;
IBE技术优势在于无证书依赖,发送方(Bob)仅需验证真实性,无需维护接收方公钥证书库,由于身份标识(如邮箱/手机号)天然具备可读性,降低部署成本。
基于身份的加密方案由以下四种算法组成:
- 安全性:若攻击者未持有与身份标识
对应的私钥
,则对于任何概率多项式时间(PPT)攻击者而言,从给定密文
中还原明文
在计算上是不可行的。
3. 2 安全模型
该模型通过挑战者(Challenger)与攻击者(Adversary)的交互游戏形式化IBE的安全性,具体流程如下:
- 初始化阶段(Setup):挑战者生成主密钥对
,将主公钥
发送给攻击者,主私钥
保密存储;
- 查询阶段(Query Phase):攻击者可进行以下自适应查询(Adaptive Queries),
- 私钥查询(Private-Key Query)提交任意身份
,获取对应私钥
- 解密查询(Decryption Query): 提交任意密文
和身份
,获取解密结果
-
挑战阶段(Challenge Phase):
-
攻击者提交两个等长明文
和挑战身份
(此前未查询其私钥),挑战者随机选择
,生成挑战密文
,将
发送给攻击者
-
猜测阶段(Guess Phase):攻击者输出猜测
。
针对选择密文攻击(INDID-CCA)的不可篡改性安全模型可以描述如下:
1. 初始化阶段(Setup)
- 挑战者(Challenger)运行系统初始化算法,生成主密钥对
;
- 将主公钥
发送给攻击者(Adversary),主私钥
保密存储,用于后续查询响应。
2. 查询阶段 1(Phase 1)
攻击者可自适应发起以下两类查询:
- 私钥查询(Private-Key Query): 提交任意身份
,挑战者返回对应私钥
- 解密查询(Decryption Query): 提交任意密文
和身份
,挑战者返回解密结果
3. 挑战阶段(Challenge)
-
攻击者提交:
-
两个等长明文
-
挑战身份
(此前未查询其私钥)
-
-
挑战者随机选择
,生成挑战密文:
-
将
发送给攻击者。
4. 查询阶段 2(Phase 2)
攻击者可继续发起查询,但受以下限制:
-
禁止查询
的私钥(即使密文不同)。
-
禁止解密
(即使身份不同)。
5. 猜测阶段(Guess)
-
攻击者输出猜测
。
-
攻击优势定义为:
- 定义 2.3.0.1(IND-ID-CCA 安全性):若不存在任何攻击者能在时间
内,在发起最多
次私钥查询和
次解密查询后,以优势
赢得上述安全游戏,则称该基于身份的加密(IBE)方案在 IND-ID-CCA(适应性选择密文攻击下的不可区分性) 安全模型中具有
-安全性。
- 定义 2.3.0.2(IND-sID-CCA 安全性):若IBE方案在 IND-sID-CCA(选择性身份安全模型) 下满足
-安全性,则其安全性要求与IND-ID-CCA相同,但攻击者必须在系统初始化阶段之前预先选定挑战身份
。
- 定义 2.3.0.3(IND-ID-CPA 安全性):若基于身份的加密(IBE)方案在 IND-ID-CPA(选择明文攻击下的不可区分性) 安全模型中满足
-安全性,则意味着该方案在 不允许任何解密查询(即
)的 IND-ID-CCA 模型中同样安全。
在IND-ID-CCA安全模型的Phase 1和Phase 2阶段,攻击者可交替发起以下两类查询
- 私钥查询(Private-key Query)
- 累计次数限制:
- 解密查询(Decryption Query)
- 累计次数限制:
end...