认证加密原语的安全性与实现分析
在加密处理中,我们需要做出一些必要假设。长期密钥等长期机密信息应仅存储和处理于可信内存中,同时假设栈和计数器也完全包含在可信内存里。此外,可信执行环境(TEE)域内需要有良好的(伪)随机数据源。
1. 系统模型中的安全性分析
对于一些加密原语,所研究的系统模型不会导致安全性下降。例如,像AES - CBC - MAC这样的消息认证码的流水线变体,在所有输入数据处理完成并计算出结果之前,不会向TEE外部泄露任何信息。无论数据输入是采用流水线方式,还是在计算MAC之前将完整数据传输到TEE,从安全角度看,MAC的流水线操作与基线操作是等效的。大多数常见的加密/解密模式,如密码块链接或计数器模式,也有类似情况。通常,相邻加密块的少量输入和输出会影响给定块的输入或输出。所以,如果在操作前将完整数据传输到TEE时最终结果是安全的,那么在加密和解密过程中仅临时缓冲具有相互依赖关系的少量块的实现方式也必然是安全的。
在认证加密与关联数据(AEAD)中,MAC受完整数据输入的影响。在流水线设置中,TEE在接收到用于计算AEAD完整性标签的所有输入之前,就会揭示部分输出。这种机密性和完整性的结合使得问题范围变得相关,特别是在系统模型2中应用时。
2. 安全性证明
2.1 证明技术
采用标准归约技术来证明加密算法和协议的安全性。该方法与基线EAX变体的证明方法相同。安全证明通常包括两部分:
- 选择明文攻击(CPA)证明 :对手被允许使用算法原语对任何明文进行加密。具体过程如下:
1. 对手A对加密预言机(Oe)进行q次自适应查询,即向Oe发送任意选择的明文,
超级会员免费看
订阅专栏 解锁全文
50

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



