一种多用户加密方法:基于一次性用户密钥模型和(1, n)阈值多项式秘密共享技术 作者:亚历山德罗·卡尼利亚(Alessandro Caniglia)、费利切·弗兰基尼(Felice Franchini)、斯特凡诺·加兰图奇(Stefano Galantucci)、朱塞佩·皮尔洛(Giuseppe Pirlo)及詹弗朗科·塞梅拉罗(Gianfranco Semeraro)

《Cryptography》:A Multiple User Cryptography Approach Using a One-Time User Key Model and a (1, n) Threshold Polynomial Secret Sharing Alessandro Caniglia, Felice Franchini, Stefano Galantucci, Giuseppe Pirlo and Gianfranco Semeraro

【字体: 大 中 小 】 时间:2026年04月22日 来源:Cryptography 2.1

编辑推荐:

  摘要:传统的密码学方法在应用于涉及两个以上用户的场景时存在若干局限性。一次性用户密钥(OTUK)元密码学模型通过实现灵活的多用户加密机制来解决这些局限性,该机制适用于任何密码算法,并且设计用于系统化部署而不牺牲系统安全性。每个用户都拥有一个单独的密钥,从这个密钥派生出一次性密钥;

  摘要:传统的密码学方法在应用于涉及两个以上用户的场景时存在若干局限性。一次性用户密钥(OTUK)元密码学模型通过实现灵活的多用户加密机制来解决这些局限性,该机制适用于任何密码算法,并且设计用于系统化部署而不牺牲系统安全性。每个用户都拥有一个单独的密钥,从这个密钥派生出一次性密钥;这些密钥输入到一个秘密共享函数(??)中,从而建立多用户加密通道。在本文中,我们提出了一个基于多项式的??函数实现,该实现基于(1,??)阈值模型。生成的多项式在其根点处对应于有效的用户密钥,并映射到实际的加密密钥。我们提供了一个正式的威胁模型、完整协议的伪代码以及在数值域、和上的详细计算分析。此外,我们还提供了实验基准测试,用于测量加密/解密速度、最多30个用户的可扩展性、参数敏感性,并与Shamir的秘密共享方案进行了比较评估。系统的安全性分析考察了部分信息攻击、导数根距离边际和暴力抵抗能力,证明在最多30个用户使用256位密钥的情况下,有效的安全边际仍高于245位。所提出的方法为物联网(IoT)、公共管理和电子健康等领域中的多用户加密通信提供了具体、高效且安全的基础。

1. 引言
当前的密码学模型难以扩展到两个以上的用户。在对称密码机制中,需要在多个用户之间共享一个密钥;而在非对称密码机制中,虽然每个用户都有两个密钥,但无法通过将其绑定到原始密钥来为一组用户定义一个密钥。创建一个使用标准密码算法操作的机制的一种解决方案是使用秘密共享机制。文献中提供了一些类型的秘密共享机制,这些机制可以将秘密分成n部分,从而通过拥有至少t部分来重建原始秘密。然而,这些机制通常是为抽象处理秘密而设计的,并没有紧密地与用户特定的密钥结合或集成到标准的加密通信协议中。目前缺乏系统化的解决方案,以在保持与个别用户身份和密钥兼容性的同时使用秘密共享模型。此外,大多数现有工作集中在通用模型上,并没有充分探讨(通常被认为不安全的)情况,或者如何将这种情况转化为具有更高安全性和实用性的模型。因此,本文提出的模型代表了一种类型的机制,因为它要求单个用户能够访问加密通道的密钥;然而,该机制获得的部分将与每个用户的密钥关联起来,从而使其可以系统地应用。重复应用以及整个过程永远不会脱离原始用户密钥的事实,使得阈值情况成为一个有效的情况(也是阈值秘密共享的一个非平凡情况),因为用户绝对不需要存储加密密钥。在[1]中首次提出了一个应用,其中用户密钥通过称为一次性用户密钥的单向函数与加密密钥绑定。这允许通过每个用户的临时密钥实现安全的数据共享。这些临时密钥是通过级联加盐和哈希机制生成的。该策略涉及使用一个公钥,该公钥是通过将实际密钥和用户生成的一次性用户密钥进行XOR运算得到的。这样,可以从单个密钥追溯到实际密钥。一次性用户密钥模型用于多用户加密,定义了不同的组件,包括一个函数,该函数允许在需要多用户之间使用加密通道的特定情况下实现阈值机制。Winarno和Sari在IoT领域提供了该模型应用的一个示例[2]。本文提供了一种可能的实现方法,通过使用多项式生成来执行用户密钥与为多用户加密通道选择的密钥之间的绑定。这种实现需要应用一次性用户密钥[1]模型来生成每个用户使用的单个通道的安全密钥。可以为用户组重新定义阈值(一次性用户密钥模型的扩展情况),其中每个组代表一个唯一的密钥部分,即该组被视为阈值的一个单独用户,因此需要整个组的结合来进行秘密重建。因此,本工作的主要贡献如下:
- 为一次性和用户密钥中的多用户加密模型的函数定义了一个新的基于多项式的实现。
- 为阈值多项式方案提供了一个正式的威胁模型和精确的安全假设。
- 对数值域、和进行了分析,并对基本转置函数及其属性进行了正式定义。
- 提供了密钥生成、多项式构建和解密算法的伪代码描述。
- 进行了实验评估,包括加密/解密基准测试、可扩展性分析、参数敏感性以及与Shamir的秘密共享方案的面对面比较。
- 对密钥组的扩展进行了评估并实现了这一扩展。
- 进行了系统的安全性分析,涵盖了部分信息攻击、导数根距离和暴力抵抗边界。

本文提出的元素可以用于欧盟[3]关于加密的目标,因为可以生成其中一个是政府实体的多用户加密通道,从而允许绕过加密,而不会引入安全漏洞。这种方法对于公共管理和电子健康等领域特别有益,在这些领域中,多个参与者之间需要安全的数据共享,这些参与者通常具有不同的访问权限和责任级别,并且保持与个别用户身份的兼容性至关重要。虽然这项工作侧重于多用户加密以实现安全数据共享,但值得注意的是,正如最近的研究[4]、[5]所示,医疗环境中的网络流量分析也是网络安全的一个关键领域。本文的结构如下:第2节提供了最有趣和相关的类似方法;第3节引用了在[1]中定义的多用户密码学模型;第4节包含了多项式方法的解释和实现细节,评估了数值域、和在特定应用中的优缺点,以及对密钥组的扩展和可能的部分攻击的安全性分析;第5节提供了该模型应用的完整示例;第6节包含了比较和结果讨论;第7节包含了本工作的结论。

2. 相关工作
最早的秘密共享机制是由Shamir[6]和Blakely[7]创建的,随后多年来出现了许多不同的表述[8,9,10]。Shamir的秘密共享机制[6]使用多项式,进行拉格朗日多项式插值。Phiri等人[11]提出了一种基于多项式的线性方案(PBLS),这是一种新的阈值线性秘密共享方案,它结合了Shamir[6]的机制和ElGamal密码系统[12]的一些元素,这是密码学领域的另一个里程碑。Phiri等人的机制[11]使用一个多项式,在秘密共享阶段,x是隐藏秘密的元素。然后通过拉格朗日多项式插值来重建秘密。与[6]不同的是,该方案具有抗欺骗能力,因为可以通过将r(计算中使用的随机值)的乘法逆与参数x相乘来识别它。这些方法与本文提出的方法有显著不同,因为它们使用多项式将秘密分成部分。相反,本文提出的方法不是物理上分割秘密,而是在多项式的纵轴上的单个点上复制秘密。Asmuth等人[13]提出的机制在密码学中变得基础,它使用中国剩余定理(CRT)通过计算模运算和使用同余系来进行秘密共享。Herzberg等人[14]提出了主动秘密共享(PSS)的概念,其中分布式密钥在时间间隔内更新,以限制攻击的可能性。Meng等人[15]继续了Ning等人[16]的工作,分析了为什么在PSS方案中使用整数环时,如果刷新率过高会导致机制失败。PSS机制也使用多项式插值;多项式的重建决定了秘密的重建,而本文提出的方法则将秘密安排在多项式取值之一处。Kormargodski等人[17,18]将类型的阈值概念扩展到无限数量的参与者,从而获得了类型的阈值;然后定义了事先未知的集合作为访问结构。在最有意义的实现中,Soleymani等人[19]提出了一个使用Shamir方案和Sperner家族的完美安全协议,以在基于图的系统中最大化秘密的数量。然而,这个系统涉及过多的内存开销。此外,只有当图是完全图时才能成功重建秘密。Okamura等人[20]则从类型单独秘密份额出发,通过将其应用于更复杂的正整数二进制码,然后将机制扩展到D-ary前缀码。D’Arco等人[21]随后基于中国剩余定理设计了一个无限序列的有限阈值方案,对于适当选择的参与者数量。Xing等人[22]提出了基于直接代数构造的新进化方案,使用从Shamir秘密共享和代数几何码派生的技术,例如具有接近最优大小的k阈值方案、具有可变阈值的方案以及依赖于t增长维度的亚线性份额的方案,以及常数维度的Ramp方案,这也是乘法的,适用于安全分布式计算。Tong等人[23]开发了一种针对自适应损坏的安全解密方案,具有阈值(t, n)。该方法发展和结合了几种密码技术,如用于分布式加密的阈值IBE、用于身份验证的强签名+OTS,以及用于实现完全安全性(IND-CCA和UF-CMA)的CHK+双系统技术。Boudgoust等人[24]最近提出了一种创新的方法,其中引入了FHE(完全同态加密)方案,具有t-out-of-n阈值解密,允许使用多项式模块,并使用Rényi散度作为分布之间接近度的度量。这种方法在理论上比统计距离更具灵活性,因为它引入了新的技术来协调密码效率、模块化和分布式安全性。在客户端-服务器通信领域,Iwamura等人[25]提出了一种基于秘密共享的新安全计算方案,在该方案中,超过了要求,并且所有必要的通信都限制在预处理阶段。即使在在线阶段存在乘法运算,也无需服务器之间的通信,这一属性与现有协议相比是一个重要的进步。这种方法不仅在延迟和可扩展性方面提高了效率,还允许更有效的并行执行。

3. 多用户密码学
应用多重加密的基础是一次性用户密钥模型[1]所提供的。本文提出的模型基于选择一个单一密钥,该密钥将用于实际加密,称为实际密钥,用表示。这样做的好处是可以将模型视为元密码学的,从而可以在科学界已经测试过的标准加密算法上使用该模型。每个用户将拥有一个唯一的密钥,称为用户密钥,这是用户独有的。因此,系统必须允许每个授权用户通过其用户密钥获得实际密钥。设K为某种加密/解密算法可能的密钥集合。K可以分为两个集合:一个是用于解密特定通道的有效密钥集合,另一个是无效密钥集合;I是系统中的用户集合,它又分为两个部分,一部分是特定通道的授权用户集合,另一部分是未授权用户集合。这种转换是通过一个函数完成的,该函数接收一个密钥(用户密钥)作为输入,并根据以下规则产生输出:(1) (2) (3) 所有能够在不因单一方法的应用而暴露缺陷的情况下同时保证这两个条件的方法都适用于该模型。该函数将针对用户之间的特定加密通道进行定制,函数管理特定通道所需的额外信息需要被序列化并存储在系统中。因此,该函数将具有通用操作性,但会根据能够在特定加密通道上操作的用户进行参数化。函数及其具体实现将是公开的,而 和真实密钥 的元素则是保密的。拥有秘密(即集合 中的某个密钥)的用户可以通过对其拥有的密钥应用公开函数 (2) 来生成 解密密钥。该模型提供了一个用于各方之间同步的协议,其中参与加密通道的一个用户或超级用户将接收密钥(通过一次性用户密钥方法适当混淆后),选择真实密钥 并根据其可支配的信息生成函数 。该模型还提供了通过多次加密哈希处理和盐值生成一次性密钥的方法。通过多次哈希生成一次性用户密钥和生成盐值的过程由个别用户完成,然后该用户根据之前提出的协议将获得的密钥和使用的盐值集合提供给生成通道的用户。此类协议的详细信息包含在原始文献 [1] 中。3.1. 威胁模型和安全假设为了支持严格的安全分析,我们定义了威胁模型和支撑所提出方案的前提假设。3.1.1. 系统模型系统由 n 个用户组成,其中 表示授权用户, 表示未授权用户。指定的通道创建者(授权用户之一或超级用户)生成加密通道。以下信息是公开的:多项式系数、每个用户的盐值集合、哈希函数 h(SHA-256)以及哈希轮数。以下信息是保密的:每个用户密钥、目标密钥 和真实密钥。3.1.2. 对手模型我们考虑一个计算能力有限的对手,其具有以下能力:1. 可以被动访问公开数据:可以观察到多项式系数和所有盐值集合。2. 无法访问用户密钥:不拥有任何用户密钥,也无法从有效用户密钥派生出任何一次性用户密钥。3. 多项式时间计算:仅限于概率多项式时间算法。4. 自适应查询:可以在任意点评估 并观察输出。3.1.3. 安全假设所提出方案的安全性依赖于以下假设:1. SHA-256 的原像抵抗性:给定 ,从 中恢复 是计算上不可行的。2. 一次性用户密钥生成的单向性:级联的盐值和哈希机制是一个单向函数;给定 ,恢复 是不可行的。3. SHA-256 输出的伪随机性:数值 在密钥空间上均匀分布,以确保多项式的根以极高的概率被良好分离。4. 较大的目标密钥空间:目标密钥 从一个大小为 的空间中选择(例如,2048 位),这比用户密钥空间 ()大得多,从而防止了第 4.5 节中描述的基于值大小的攻击。3.1.4. 安全目标该方案旨在满足以下标准:密钥保密性:没有任何多项式时间的对手能够从公开的多项式中以非微不足道的概率恢复 或 。用户密钥隐私性:不能在没有对一次性用户密钥空间进行暴力搜索的情况下从多项式系数中恢复 函数和真实密钥。阈值正确性:任何单个授权用户都可以重建;未经授权的用户无法做到这一点。4. 提出的方法提出的方法涉及为单一加密通道生成一个多项式,对于 输入值,在 中,它返回 作为值。4.1. 数字域和加密域因此,这种方法在两个不同的域上操作:加密密钥域,其中密钥被理解为一组位,加密函数应用于这些位;以及数字域,在该域中计算将值转换为其对应密钥的数学操作。必须明确指出这种区别,因为数学操作只能在数字域中实现,但加密操作(排队和哈希)只有在将数据视为位序列时才有意义。为了能够对相同的语义数据执行数学和加密操作,有必要正式提供将位序列转换为数字域的函数,以及将数字转换为相应位序列的函数。让我们定义基础转置函数,表示为 ,它将数据从密钥(加密)域转换为数字域 (例如, , ,)。为了简化文本中的讨论,我们假设“数字域”指的是由数学集 定义的环,在该环上定义了基础转置函数 和 。当需要将数学操作应用于以位序列形式表示的数据元素时,将使用基础转置函数 。相反,当需要将数据以数字形式表示并转换为位序列时,将使用其逆函数 。转置函数 将加密域中的值(例如解密密钥)转换为另一个域。因此, 的实现取决于所选的数字域。尽管该框架可以为任何数字域进行一般定义,但实际实现需要特定选择。数字域不仅影响操作的精度,还影响基础转置函数的单射性/满射性。我们考虑以下主要选项:域(无符号整数):在 中,位序列直接解释为使用二进制表示的正整数。因此,组成密钥的每个位序列将被解释为一个二进制正整数值,反之亦然(),其中每个正整数被解释为该值的二进制表示对应的位序列。设 N 为 K 中密钥的位数, 为密钥 K 从右开始的第 j 位的值(即,位 0 是最低有效位,位 是最高有效位),则 。逆函数 将是在 N 位上的 n 的二进制表示。函数 和 是单射且满射的,确保密钥和整数之间的一一对应关系。这使得适用于密钥大小固定且填充零不影响完整性的操作。域(有符号整数):对于 ,使用二进制补码。然后使用基础转置函数 。同样,由于二进制补码的独特表示,包括零,转置函数 是单射且满射的。主要区别在于零附近的对称范围以及需要提前知道位大小。和 都提供了仅支持整数表示的表示方法,避免了浮点问题。多项式系数(例如,函数 或 中的系数)因此是整数,这简化了实现并提高了数值稳定性。然而,由于负值范围的存在, 它将可用密钥空间减半。域(浮点实数):集合 对应于实数。该集合使用浮点表示法表示为位序列。八精度浮点格式 [26] 产生一个 256 位密钥:值使用 1 位存储符号,19 位存储指数,236 位存储尾数。因此,函数 不是满射的,因为有些数由于精度问题而无法完整存储;它不是单射的,因为有两个密钥可以表示相同的值(即,当浮点表示对应于“不是一个数”或 时)。由于上述冗余的存在,函数 不是单射的,但它是满射的。冗余的存在,包括阻止计算的数值(NaN, ),使得这种策略难以实现。在选择这种表示时,还建议对真实密钥进行测试计算,因为计算可能由于浮点算术的近似而产生略微不同的结果,从而导致无效密钥。这种表示允许我们直接处理第 4.5 节中描述的问题,因为问题更加容易管理。此外,在这种表示中可以选择验证方程 (19) 中的参数 a,特别是可以选择一个值 来减少第 4.5 节中问题的影响;然而,这种选择并不重要,因为它并不特别影响结果。在域中,如果函数 的结果与密钥的大小不兼容,将使用浮点算术的近似:如果值太大,将被近似为 ;如果问题在于小数部分,将进行四舍五入。最后,如果两个用户使用不同的精度架构,如果不使用相同的方案来处理数字和数学操作,结果可能会不同,导致系统无法正常工作。虽然该模型理论上可以适应任何数字域,但通常更倾向于选择 或 来获得确定性和稳定的行为以及完整的位覆盖。域虽然通用,但由于浮点近似、冗余和平台依赖性,引入了复杂性。和 的定义和实现不仅是数学上的问题,也是实际问题,显著影响互操作性、有效性和系统可靠性。这种 formulization 需要定义数字域中真实密钥的等效物。称这个数值为目标密钥,并用 表示: 数字目标密钥 将是数字域中真实密钥 的对应物。这是必要的,因为它允许在其上执行否则无法在加密密钥上执行的数学操作。然后定义密钥及其数字等效物的域:问题就变成了在数字域中找到 的实现,其工作方式如下:考虑 作为使用密钥 k 解密消息 m 的解密函数。函数 将使用解密函数 从用户密钥 k 开始解密消息 m,并根据数字域和加密域之间的步骤进行调整:满足方程 (14) 和 (15) 所表示条件的数学方法是有效的实现问题。最后考虑的一个因素是有意识地不采用有限域(如 或模运算)作为数字域。尽管这些工具在密码学中很常见,但由于通用性和处理数学操作的灵活性,避免使用它们。特别是,模运算会在函数 中引入不连续性,这会损害该模型所需的数字转换的连续性和渐进性。此外,在有限域中,每个元素都有循环行为,这使得定义如方程 (14) 和 (15) 中表达的有效性条件变得更加复杂,因为需要明确区分正确密钥和错误密钥。另一方面,所提出的模型基于通过经典数值集合(如…)对比特序列进行更直接、更易于解释的表示,从而保持了变换的线性和加密域与数值域之间的语义透明性。表1总结了这三个数值域之间的主要差异。表1. 所提出的数值域之间的比较表。4.2. 作为函数的多项式 所提出的方法包括生成一个多项式,该多项式是数值域中键的函数,对于输入返回值。然后只需要存储这样一个多项式的系数就可以保证多重加密系统的运行,因为这些系数代表了必须公开的实现。所有这种类型的公式都涉及多项式的生成:这保证了这些函数的类型为(17)。这样的函数的值域始终为,因为不能保证在某个k处评估的多项式返回的值与键的大小兼容;即,它属于。这个问题的解决取决于所选择的特定数值域,其考虑因素可以在第4.1节和第4.5节中找到。一种可能的方法是利用乘积消去律,通过生成一个在…处有零的多项式,然后通过…进行转换。定义函数,其操作如下:(18)(19)函数将是(20),其中参数i可以省略,因为它不会改变函数的结果;它将保留用于解密函数。的值是隐藏的,因为它被加到常数项中。这种实现确保了方程(14)和(15)表达的条件得到满足:方程(14)表达的条件得到满足,因为是多项式,并且在的元素中有零,所以函数将在的元素中返回;方程(15)表达的条件得到满足,因为多项式是从这些零生成的,所以它永远不会在非元素处取值。函数的实现是公开的(即多项式的系数),而秘密信息是用于生成多项式的键。4.3. 算法描述为了提高清晰度和可重复性,我们为所提出的方案的三个核心过程提供了伪代码。算法1详细描述了由通道创建者执行的通道生成阶段。算法1 通道生成(由通道创建者执行)需求:授权用户OTUK集合:;哈希函数h;哈希轮数r;目标键比特大小b确保:多项式系数;实际键1:? 选择目标键2:? 通过r次哈希计算实际键3:对于到n执行4:? 转换为数值域5:结束对于6:? 构建零多项式7:? 通过目标键进行转换8:? 提取系数9:返回算法2描述了每个用户在创建通道之前独立执行的一次性用户键生成过程。算法2 OTUK生成(由每个用户i执行)需求:用户键;盐集合;哈希函数h确保:一次性用户键1:2:对于到m执行3:? 级联盐和哈希4:结束对于5:6:返回最后,算法3介绍了任何授权用户执行解密过程以恢复实际键并解密消息。算法3 解密(由授权用户i执行)需求:用户键;盐集合;多项式系数C;哈希函数h;哈希轮数r;加密消息m;解密函数确保:解密消息1:? 算法22:3:? 贺勒方法4:? 恢复实际键5:? 用实际键解密6:返回4.4. 对于在特定加密通道中添加或移除用户的情况,设为启用用户的键集合,为添加或移除该用户后的相同集合。对集合的任何更改都不能仅通过重新计算多项式来解决。实际上,如果这样做会导致问题,因为可以推导出目标键和有效键:只需建立一个包含在上计算的多项式和在上计算的多项式的方程组(如图1所示)。图1. 一个简单的例子:,和。橙色是来自在上计算的多项式,蓝色是来自在上计算的多项式。多项式在y轴(绿色)上的重叠突出了目标键的值,在x轴(紫色)上突出了属于(来自蓝色多项式)的键和属于(来自橙色多项式)的键。无论如何,在移除用户的情况下,仍然需要更改加密键,因为用户不再被授权访问它,且可能已将键保存在内存中。同样,如[1]和第3节所述,需要为每个授权用户生成新的一次性用户键。4.5. 值大小问题到目前为止,由于输出值的大小问题,系统是可攻击的。这个问题主要影响数值域和,但在域中也有所体现。然后考虑在域中操作。可以用256位键表示的值是范围内的整数。这些是非常大的值,因为它们之间的中点是。多项式的系数是从大约70位的数字生成的,而函数被提升到幂次,因此多项式达到巨大的值。这意味着函数对于连续的输入值会取两个非常远的输出值;特别是,除非在某些罕见的情况下,我们看到如果:(21)(22)(23)函数只在对应于目标键的点上取与键大小兼容的值。这也是因为这些值只是整数,所以在两个整数值之间没有细微差别来限制问题;实际上,问题更多地存在于集合中,尽管仍然存在。在数值域中同样存在这个问题,因为值的范围是,尽管负值的存在和最大绝对值可以是而不是允许稍微减小。利用这个缺陷,就可以通过使用不等式(24)从开始找到目标键,即(25)其值可以通过计算相关方程的根来近似确定,即(26)然后可以通过应用于计算器的二分法[27]的变体来实现,其精度至少等于键的小数位数:1.设置2. 设置3.设置阈值(以搜索方程(21)的情况)4.循环:(4.1)计算(4.2)如果结束:m大约是一个有效的键(4.3)如果设置(4.4)如果设置(4.5)回到4.1使用这样的攻击对于由256位键组成的系统和256位的,识别出的键与目标键的最大差异仅为10:(27)这个问题不能通过将问题转移到标准解决方案(如有限域(例如,伽罗瓦域)或模代数)来解决,因为根据攻击的本质,只需对没有模代数元素的相同系统进行攻击就可以成功。将模运算添加到多项式中会缩小搜索空间,使情况变得更糟;这样的添加是愚蠢的,因为从模运算的非可逆性中获得的优势永远不会被使用。有一个解决方案可以修复这种攻击方案:通过取消方程(21)中表达的条件来重新制定系统,使用比用户键范围大得多的键作为目标,使得用任何都无法搜索;即使将为新的目标键设置等于新目标键大小的阈值,攻击也会导致与真实键相差太远的值或多项式取值低于此阈值的点(不对应于真实的点)。这种修改提出了与所使用的加密算法的密钥大小之间的兼容性问题。然后需要添加一个哈希函数h,其输出大小与所选加密算法的密钥大小兼容。目标键和实际键之间的关系变为(28),因此实际键不能自由选择,但目标键将被自由选择,后者的哈希将被视为实际键。解决这个问题导致了下一节中描述的最终方法的制定。4.6. 最终解决方案解密函数然后被重写为(29)应用于目标键的哈希次数可以大于1,从而减慢机制速度以对抗暴力攻击。如前一节所述,目标键是任意选择的,实际加密/解密键是通过对该值进行多次哈希计算得到的。图2显示了新公式下系统的完整操作:用户和D生成他们的一次性用户键,并选择一个目标键,其哈希构成实际键;然后从单个启用用户的OTUK开始生成多项式,其系数被存储;在解密阶段,用户C从上一阶段的相同盐开始生成其OTUK;并在其OTUK中评估函数并对结果进行哈希操作,从而获得实际键。图2. 在解决第4.5节中表达的问题后系统的完整操作。该图显示了用户和D的模型生成阶段以及用户C的解密阶段。应用[1]中描述的协议,在通道生成阶段,用户通过多次哈希使用盐从他们的用户键创建他们自己的一次性用户键,并将它们以及用于生成各个键的每组盐传输给属于授权用户集的用户或超级用户,后者将生成通道。生成通道的用户任意选择目标键;通过多次哈希计算实际键并使用实际键对通道进行加密;然后从接收到的有一次性用户键和选定的目标键生成多项式;最后存储并公开这个多项式的系数。谁想要访问通道,就从给定的盐和自己的用户键开始生成相应的一次性用户键,计算多项式在对应于基础转置的值的值,并最终对获得的结果进行多次哈希。如果用户被授权,他/她将获得实际键,否则,他/她将获得另一个无用的键。可能的攻击的安全性分析现在将评估从公开可用信息中可获得的部分信息的可能攻击。函数的常数项将始终暴露的第一个数字,因为这个值将非常显著,以至于多项式只会对最后几位产生影响:这不是问题,因为产生实际键的哈希函数h需要输入的精确值。要理解该方案的最小维度,只需考虑以下因素:多项式的度数为,因此输入值至少会被提升到;值最大的密钥对应的权重项为,所以它具有最大的权重;鉴于用户密钥的大小为,目标密钥的 size 至少应为比特。因此,可以得出结论,目标密钥的大小必须至少为比特。生成的多项式的度数等于,这意味着 y 轴上的值的数量级比密钥本身要大得多:因此,对多项式所假设的值进行暴力攻击比直接对加密算法进行暴力攻击更为复杂,毕竟还涉及到公开的第一位数字。这一点可以通过数学方式轻松证明:假设进行一次攻击,尝试从这些信息开始缩小搜索范围。以第5节中的例子为例,可以看到目标密钥的前387位十进制数字是公开的;因此,要成功发起攻击,需要找到剩余的229位十进制数字,但目前没有关于这些数字的进一步信息。因此,相应的搜索空间为,其中只有一个正确的解,即目标密钥。这个搜索空间比针对256位实际密钥的暴力攻击的搜索空间大得多。

然后,模型生成一个处理非常大数值的多项式;用户提交他们的密钥,该密钥被转换到数值域后作为多项式的输入。然后在纵坐标上对结果值进行多次哈希处理;这一过程的输出就是用于解密的密钥。多项式在横坐标上只有个有效的值,因此需要其中的一个点来推导出正确的密钥。确定这些点的范围可以缩小搜索空间;然而,必须精确地找到那个点(即使是非常接近的点也是不可接受的,因为它们会导致完全不同的结果);因此,模型的设计使得即使确定了范围,这些范围也与实际点足够远,使得通过这些途径进行攻击既无成效又不划算。一个例子如下:一种可能的部分攻击方法是计算函数的最大和最小值,通过求多项式的一阶导数的根来找到有效的密钥所在的区间。这种弱点是内在的,并且很大程度上取决于有效密钥之间的距离。这种距离无法预测,因为它取决于生成一次性用户密钥(OTUK)的哈希函数的输出以及所使用的盐值。然而,这种情况并不会极大地限制搜索范围。这里有一个实际例子:

该多项式的一阶导数为(不依赖于的值),其根可以通过numpy.roots计算得到。最小的距离是和之间的距离,等于3563467053037628647775215098639816931877179922998773621222336898599280409889。在这种情况下进行暴力攻击大致相当于对251位密钥进行暴力攻击,只不过每次攻击都需要计算多项式的值并进行多次哈希处理。虽然这种缩小搜索范围的方法看似危险,但可以通过增加密钥的大小来克服。由于对251位密钥进行暴力攻击比对256位密钥进行攻击需要更多的计算(包括大数的幂运算、乘法以及求和)以及多次哈希处理,这种额外的计算时间和复杂性被抵消了。任意增加将转换为所需的哈希次数或密钥的大小,都会使这种攻击比对实际密钥进行常规的暴力攻击更加不利。

另一种可行的实际解决方案是让每个用户生成多个一次性用户密钥,并根据系统管理员定义的任意阈值来选择在每次通信中使用哪个密钥。无论如何,仍然有可能从实际密钥或目标密钥中的一个有效密钥出发,推导出完整的密钥集合。然而,这样的攻击是没有用的,因为根据阈值方案的性质,和可以通过合法途径获得,而集合中的其他密钥只能用于推导出实际密钥或目标密钥,不能用于生成其他用户密钥(因为已经对它们应用了单向函数),而且它们也不能在其他加密通道中使用,因为它们是一次性密钥。由于阈值方案的设计原理,即使确定了密钥范围,也只能有一个授权用户能够获取秘密信息。

因此,可以得出结论:从公开可用的信息来看,无法发动任何会危及系统安全的攻击。

5. 实际示例
以下是一个系统应用的完整示例。盐值和密钥以十六进制字节表示法表示。用户密钥、实际密钥和一次性用户密钥的大小均为256比特,而目标密钥的大小为2048比特。四次哈希操作将目标密钥转换为实际密钥;每次用户密钥将使用三个10字节的盐值来生成一个一次性用户密钥。所使用的哈希函数是SHA-256。选择的数值域为b818b8539222560a342c788127e369d28fc4c1ced60a0caa190ee4b1606c9727 232ab2258cca40d05af19367aedbbb4adbf29cab1371fa5879e1a4344d21e050 3954abb21af6f02651f43c51e76a0eaa6f59229bda2b26cde4a666f3981121af0dea5423bafe6ae8a04b60c645e94aa427d537786a020555764deac666449a7b。

从用户密钥生成一次性用户密钥的过程如下:
首先,计算多项式的一阶导数和根,以确定有效的密钥搜索区间。
然后,使用四个盐值(每个盐值10字节)和四个哈希轮次生成一次性用户密钥。

6. 实验评估
为了验证所提出方案的实际可行性,我们进行了一系列实验,测量了计算性能、可扩展性、参数敏感性和相对效率。所有实验都在标准工作站上使用Python 3.12运行,密钥长度为256位,目标密钥长度为2048位,哈希函数为SHA-256,每个盐值长度为10字节,共进行四轮哈希处理(除非另有说明)。每次测量重复五次,并报告平均值±标准差。

6.1. 计算成本和可扩展性
表2报告了四个主要阶段的计算成本:一次性用户密钥(OTUK)生成、多项式构建、多项式评估和多次哈希处理。总成本随着用户数量n的增加而呈多项式增长,这与多项式构建过程中的顺序根乘法有关。图3显示了这些结果。对于较大的用户数量n,多项式构建阶段占主导地位,总密钥生成时间保持在1毫秒以下,使得该方案适用于实时应用。对于较小的用户数量,多项式构建阶段的成本较低,因为整数运算的规模较小。一次性用户密钥生成的成本随用户数量n线性增长,而多次哈希处理的成本相对恒定且可以忽略不计。

6.2. 与Shamir秘密共享方案的比较
表3和图4将所提出的方案与Shamir秘密共享方案在两种配置下进行了比较:一种是简单阈值(只需要一个份额),另一种是需要所有份额。Shamir方案是在上使用拉格朗日插值实现的。所提出的方案包括了一次性用户密钥的生成、多项式的构建/评估和多次哈希处理。

6.3. 参数敏感性
图5显示了两个关键参数对解密时间的影响:(左)哈希轮数和(右)用户密钥大小。将哈希轮数从1增加到32对总解密时间的影响很小(在毫秒范围内),因为SHA-256的计算已经高度优化。因此,可以自由调整这个参数以提高抵抗力,而不会对性能造成明显影响。

6.4. 安全裕度分析
我们实证评估了第4节描述的对导数-根距离攻击的影响。对于每种配置,我们生成了20个随机实例,并计算了导数根与最近的有效OTUK值之间的最小距离。表4和图6显示,对于所有测试配置,有效安全裕度始终保持在245比特以上,远高于现代加密应用通常要求的128比特安全水平。随着用户数量的增加,安全裕度逐渐减小,因为更多的根会压缩OTUK值之间的差距;然而,即使对于最大的用户数量,攻击者也只能获得不到11比特的优势,而这部分优势被多项式评估和每次尝试时的计算开销所抵消。

6.5. 应用场景
所提出的方案特别适用于以下应用领域:
- 物联网(IoT):在IoT环境中,资源有限的设备必须与中心网关或其他设备共享加密通道。亚毫秒级的密钥生成时间和缺乏交互式密钥交换协议使得该方案适用于计算能力有限的设备。每个设备只存储自己的用户密钥和公开的多项式系数;OTUK机制防止了密钥在不同通道之间的重复使用。
- 公共行政和电子政务:欧盟的监管框架要求政府实体能够在合法拦截权限下访问加密通信。所提出的阈值模型自然地容纳了这一点,将政府实体作为授权用户之一,而不会引入后门或削弱其他参与者的加密保障。
- 电子健康:在医疗数据共享中,多个参与者(医生、实验室、保险公司、患者)需要以不同的责任级别访问加密的医疗记录。OTUK模型的扩展允许定义访问策略,例如,咨询需要医生和患者共同构成一个“用户”,而医院系统则是另一个用户。
- 安全群组消息传递:现代消息平台需要高效的群组密钥管理。所提出的方案允许群组创建者生成一个基于多项式的通道,其中每个参与者都能根据其个人凭证来获取解密密钥,从而消除了成对密钥交换或集中式密钥分发服务器的需求。7. 结论在本文中,我们提出了一种基于多项式的实现方法,用于在一次性用户密钥(OTUK)模型下的多用户加密,实现了一种阈值秘密共享方案,在该方案中,秘密被复制到多项式纵轴上的特定点。本修订工作的主要贡献包括:(i)一个正式的威胁模型和精确的安全性假设作为分析的基础;(ii)通道生成、OTUK生成和解密算法的伪代码描述,以确保可重复性;(iii)一项全面的实验评估,证明该方案可以为多达30个用户实现亚毫秒级的密钥生成速度,并与Shamir的秘密共享方案进行了有利的比较,并进行了参数敏感性分析;(iv)一项定量安全性边际分析,表明对于256位密钥和多达30个用户的情况,通过导数根攻击获得的优势少于11位;(v)讨论了在物联网(IoT)、公共管理、电子健康和群组消息传递等具体应用场景中的应用。对数值域的分析证实,(二进制补码)在实现简单性和数值稳定性之间提供了最佳的平衡。通过选择远大于用户密钥空间的目标密钥,并应用多重哈希来派生实际密钥,解决了值大小问题。当前工作的局限性包括缺乏对整体构造在选定明文攻击(IND-CPA)下不可区分性的正式证明,以及依赖于假设的哈希输出均匀分布来保证安全性边际。未来的工作将通过基于归约的安全性证明来解决这些局限性,研究该方案的后量子-resistant性,并将实验评估扩展到代表IoT部署的嵌入式平台。这项工作通过在多用户加密通道的背景下正式化阈值秘密共享模型,填补了现有文献中的空白,在这种模型中,每个份额都与用户特定的加密材料紧密相关。所提出的机制为多用户通信系统提供了具体、高效和安全的基础。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号