《A Graduate Course in Applied Cryptography》Chapter 6 Message Intergrity (1)

本文探讨了消息认证码(MAC)的基本概念与安全定义,详细分析了如何从伪随机函数(PRF)构建MAC系统,以及如何确保MAC的安全性。文中还讨论了敌手能力与攻击模型,证明了验证查询对攻击者无益。

 原文教材 与 参考资料:

Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].

该书项目地址(可以免费获取):http://toc.cryptobook.us/

博客内容为对该书的学习笔记(包括但不限于翻译、额外绘图、注解、个人理解等),并非原创知识,仅帮助理解,整理思路.

对称密码体制下数据完整性的应用就是Mac码,其中MAC码是一种带密钥的数据完整性认证码,假设通信双方已经预先共享了一个密钥k. 如下图所示:

这里有一个技术原理,当我们设计一个消息完整性机制需要遵循以下基本原理:

 两个通信方想要建立建立一个消息完整性机制,必须有一个敌手不知道的私钥,如果敌手掌握了该私钥或者说没有私钥,那么敌手显然可以伪造任意的合法消息-验证码对。

6.1 Definition of a message authentication code

消息验证码的定义比较简单,MAC的定义如下:

       两个算法一个概率性算法产生消息的完整性验证码,一个确定性算法可以对产生的验证码进行验证。

按照一般对

### 随机预言机的概念及其在密码学协议中的应用 随机预言机(Random Oracle, RO)是一种理想化的哈希函数模型,在现代密码学理论中具有重要地位。它假设存在一种能够返回完全随机输出的黑盒机制,对于任何唯一的输入,该黑盒都会返回一个唯一且不可预测的随机值[^4]。 #### 定义 随机预言机被定义为一个理论上完美的哈希函数,其行为类似于一个真正的随机函数。具体来说,当给定一个新的输入 \( m \),随机预言机会返回一个从未见过的随机字符串作为输出;如果再次接收到相同的输入 \( m \),则会始终返回之前的结果。这种一致性与随机性的结合使得随机预言机成为分析加密方案安全性的重要工具[^5]。 #### 使用场景 随机预言机广泛应用于各种安全协议的设计和证明过程中: 1. **签名算法的安全性增强** 数字签名方案通常依赖于某种形式的消息摘要计算来验证数据完整性。通过引入随机预言机模型,可以简化复杂公钥基础设施下签名的有效性和抗伪造能力论证过程[^6]。 2. **密钥交换协议** 在Diffie-Hellman等类型的密钥协商协议中,利用基于随机预言机构建的伪随机数生成器可以帮助抵御中间人攻击以及其他潜在威胁[^7]。 3. **零知识证明系统优化** 对于某些特定种类的交互式或非交互式的零知识证明体系而言,采用随机预言机方法可以在不牺牲隐私保护的前提下提高效率并降低通信成本[^8]。 以下是实现简单版本模拟随机预言功能的一个Python代码片段示例: ```python import hashlib class SimpleRandomOracle: def __init__(self): self.cache = {} def query(self, message: str) -> bytes: if isinstance(message,str): # Ensure input is string type before hashing. encoded_message=message.encode('utf-8') hash_value=hashlib.sha256(encoded_message).digest() if not (encoded_message in self.cache.keys()): self.cache[encoded_message]=hash_value return self.cache.get(encoded_message) ro_instance = SimpleRandomOracle() print(ro_instance.query("test")) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值