一篇CCS的关于密钥派生的论文分析

Threshold Password-Hardened Encryption Services:门限密码强化加密服务

前述

坐标2021.1.22
人生最幸福的事是什么,是 ddl 突然的推后^ ^

关于paper

门限密码:密码学协议 门限
简单来说,就是把消息分成n份发送出去,保证只有m个及以上的接收方都收到才能正确计算出消息。这样即使存在一些恶意接收方,只要不到m个,都不能获得消息。
论文研究对象是 密码强化加密,(PHE)由Lai等人在USENIX 2018年提出。

Russell W. F. Lai, Christoph Egger, Manuel Reinert, Sherman S. M. Chow, Matteo Maffei, and Dominique Schröder. 2018. Simple password-hardened encryption services. In USENIX Security 2018. William Enck and Adrienne Porter Felt, editors. USENIX Association, (August 2018), 1405–1421.

通用密码技术,攻击者不仅可以使用离线暴力攻击破解单个用户的密码,还可以直接学习主密钥,从而获取所有用户数据。在PHE中,除了用于密钥派生的服务器之外,还涉及一个称为速率限制器的外部方。要恢复数据密钥,损坏的一方必须与另一方通信,后者的速率限制解密尝试。并且,PHE支持服务器和速率限制器的密钥轮换。

问题:单点故障——速率限制器出现故障或密钥丢失,用户将无法使用数据,因为服务器无法单独提供解密服务。
解决:通过将单个速率限制器的责任扩展到m个独立的速率限制器来消除单点故障。阈值t:((t,m)-PHE)的安全性保证,只要攻击者不同时控制服务器和至少t个速率限制器,(t,m)-PHE方案提供与PHE方案相同的安全保证。
Keyword:Security and privacy → Cryptography

一些定义

设t,m∈N,其中t ≤ m。设PW和M分别为密码空间和消息空间。设S和Ri分别指i∈[m]的服务器和第i个速率限制器。
((t,m)-PHE)方案:由(Setup、Enc、Dec、Rotate、Udt)组成。

  • Setup:输入安全参数λ、速率限制器数m和阈值t。它输出公共参考字符串crs、用于服务器的密钥sk0和用于第i个速率限制器的密钥ski,用于所有i∈[m]。
  • Enc:在服务器和m个速率限制器(可能是子集)之间运行。服务器输入其密钥、密码pw∈PW和消息M∈M。速率限制器输入各自的密钥。服务器输出一个随机值nonce n和一个密文C,而每个速率限制器输出一个空字符串ε。
  • Dec:解密协议在服务器和m个速率限制器(可能是子集)之间运行。服务器输入其密钥、候选密码pw∈PW、随机值nonce n0和密文C。速率限制器输入各自的密钥。服务器输出消息M。每个速率限制器输出一个随机值nonce ni,可以在Ri的视图中将其解释为密文C的标识符。
  • Rotate:在服务器和所有m个速率限制器之间运行轮换协议。每一方输入其密钥并输出一个轮换密钥。服务器还输出更新令牌τ。
  • Udt:更新算法输入更新令牌τ、随机值nonce n和密文C。它输出一个新的密文C′。

安全性:隐藏 Hiding、稳健性 Soundness。

正文

架构

就是上一部分算法的各个阶段的实现细节,结合伪代码看更好。。。
设置、加密、解密。。。
首先,双方共同计算公钥下的加密,其中相应的密钥在参与者之间秘密共享。这需要2轮通信。在第二阶段,双方共同计算了分别用于随机数r和r ′ 的加密Zr和。与第一阶段类似,这需要另外2轮通信。在最后一个阶段,双方共同帮助服务器解密密文,以便后者可以检查Zr=I(因此Z=I),如果是,则获得H1(n)s0。这需要一轮通信。与服务器发送随机值nonce n的第一轮协议一起,我们得到了一个6轮协议。
此时,解密功能已经实现,协议已经可以终止。然而,速率限制器不知道解密是否成功,即Z=I,因此只能执行“粗粒度”速率限制。也就是说,速率限制器将计算成功和失败的解密尝试,因为它们无法区分这两者。这在应用程序中通常是足够的,因为用户通常不会太频繁地(成功地)登录。为了支持“细粒度”速率限制,服务器将向速率限制器发送一条额外的消息,以允许它们解密Zr的加密。这需要额外的一轮通信,并产生一个7轮协议。
密钥轮换和密文更新。。。
对于隐藏的大段证明。。。
对于稳健性的大段证明。。。

实现

使用Charm框架在Python中实现。对于交互,使用falcon REST框架(用于速率限制器)、Python请求(用于服务器)和HTTP保持活动。用SHA-256实例化哈希函数,用NIST P-256实例化群。
加解密延迟、吞吐量、可扩展性、与 Memory-Hard 函数比较。。。

心得

门限用来解决单点故障的想法很好啊,学习。。。另搞密码真需要一颗强大的数学心脏QAQ
特此声明,该博文所写均为本人自己理解,如有争议以论文原作者为准,(鞠躬

已标记关键词 清除标记
相关推荐
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹?   那么C++就是你个人能力提升,职业之路进阶的不二之选。 【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署; 2.吊打一切关于C++的笔试面试题; 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块 基础篇 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 进阶篇 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 提升篇: 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页