消息认证码与伪随机函数的深度解析
1. 从伪随机性到不可预测性
在一些安全场景中,伪随机性的强安全要求并非总是必要的。例如,当Alice和Bob交换共享密钥后,希望能确保消息的来源和完整性。此时,伪随机函数就能满足消息认证的需求。
1.1 消息认证流程
- 发送方(Bob) :当Bob要向Alice发送消息m时,他使用伪随机函数PRF和共享密钥k计算标签τ ← PRF.Eval(k, m),然后将消息和标签对(m, τ)发送给Alice。
- 接收方(Alice) :Alice收到消息后,重新计算标签τ ′ ← PRF.Eval(k, m),并检查τ是否等于τ ′。如果相等,则认为消息来自Bob且未被篡改;否则,丢弃该消息。
由于伪随机函数的安全性,标签τ与均匀随机字符串难以区分。若攻击者篡改消息,标签会显示异常,且攻击者猜出正确标签的概率可忽略不计。
2. 消息认证码的形式化定义
消息认证码MAC := (MAC.KGen, MAC.Eval)是一对高效算法,其中MAC.KGen是高效概率密钥生成算法,MAC.Eval是确定性标签生成算法,输入为密钥和消息,输出短标签τ。
2.1 安全定义
消息认证码的最强且最常见的安全概念是自适应选择消息攻击下的不可伪造性(UF - CMA)。通过安全实验Expuf - cma_MAC,A(λ)定义攻击者A对消息认证方案MAC的优势Advuf - cma_MAC,A(λ)。
实验中,为攻击者A提
消息认证码与伪随机函数深度解析
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



