对SSH-CTR明文依赖解密的形式化安全处理
1. SSH-CTR解密算法概述
SSH-CTR的解密算法D-SSH-CTR具有明文依赖的特性。它通过LF(长度字段)的返回值来确定need的值,need表示在判定整个密文(包括MAC标签)到达之前还需要的额外密文字节数。在D-SSH-CTR的第三阶段,会处理在第一阶段缓冲在cbuff中的密文字节。若接收方收到的数据比预期多,这些额外数据(记为B)会被视为下一个密文消息的起始部分,并在第三阶段结束时用其重新初始化cbuff。
当缓冲区包含足够的数据(由变量need确定)时,解密算法使用计数器模式获取编码后的明文me和需要由MAC算法验证的消息mt(mt由me加上序列号组成)。接着检查MAC标签,如果验证成功,编码后的明文me会被传递给dec算法。在这个阶段可能会出现三种错误:
- MAC验证失败,输出⊥A;
- 解码过程中解析失败,输出⊥P;
- 解码过程中序列号SNd回绕,输出⊥。
当出现任何一种错误时,解密算法的状态std会被设置为⊥。每次预言机查询开始时都会检查该状态,如果等于⊥,则返回错误消息⊥,这模拟了OpenSSH中的连接拆除操作。
2. 安全模型
2.1 选择明文安全性
为了处理有状态加密和长度信息泄漏的问题,对传统的左 - 右(LOR)不可区分性游戏进行扩展,得到新的模型LOR-LLSF-CPA(长度泄漏有状态选择明文攻击)。在这个模型中,攻击者可以访问左 - 右加密预言机EK(LR(·, ·, b))和长度揭示预言机L(·)。
- 对于EK(LR(·, ·, b))的所有查询(m0, m1),要求|enc(m0
超级会员免费看
订阅专栏 解锁全文
11

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



