密码学07——密码协议

Diffie-Hellman 密钥交换

Diffie-Hellman密钥交换协议

  • 密钥交换是实现安全通信的基础
    • 商用加密算法AES和DES需要在安全通信之前, 实现通信双方的密钥共享。
  • 密钥交换的方法:
    • 基于RSA的密钥交换;
    • 基于KDC技术 (Key Distributed Center,密钥分发中心);
    • Diffie-Hellman密钥交换(简称: DH算法);
    • 基于物理层的密钥交换。

DH算法是不安全信道下实现安全密钥共享的一种方法, 由 W. Diffie 和 M. Hellman 在1976年提出的第一个公开的公钥密码算法。

DH算法

![[DH算法.png]]

DH协议的例子

  • 假设素数 \(p=97\),其基本元 \(g=5\)
  • 若用户A 和用户B 选取的随机数分别为:\(x=36;y=58\)
    • 用户A 计算:\(Y_{A}=5^{36}\mod{97}=50\mod{97}\)
    • 用户B 计算:\(Y_{B}=5^{58}\mod{97}=44\mod{97}\)
    • 用户A 计算密钥:\(K=44^{36}\mod{97}=75\mod{97}\)
    • 用户B 计算密钥:\(K=50^{58}\mod{97}=75 \mod{97}\)

Diffie-Hellman密钥交换中的安全问题

安全性分析

  • 攻击者可利用的信息包括 素数\(p\)、本原元\(g\)、中间值 \(Y_{A}\)\(Y_{B}\)

  • 若攻击者想获取密钥 \(K\) ,就必须通过 \(Y_{A}=g^{x}\mod{p}\)\(Y_{B}=g^{y}\mod{p}\) 计算 \(x\)\(y\),这是一个离散对数求解问题

  • 因此,算法的安全性基于球离散对数的困难性

  • [?] 除了破获密钥外,攻击者还有其他的攻击方式吗?

DH算法存在的安全问题

  • 容易遭受阻塞攻击:因为幂运算是计算密集性的,当敌手发起大量的密钥请求,受攻击者将花费较大计算资源来做幂运算;
  • 容易遭受中间人攻击:敌手可分别冒充用户A和B中的一方,与另一方交换密钥(敌手就可以监听和传递A和B的秘密信息而不被发现)。

中间人攻

![[中间人攻击.png]]

课后调研

了解一下奥克利(Oakley)协议是什么?

奥克利协议(Oakley Protocol) 是一种用于 密钥交换 的加密协议,旨在为计算机网络中的通信双方提供安全的会话密钥交换。它由 Thomas M. (Todd) Oakley 在 1991 年提出,是 Diffie-Hellman 密钥交换协议 的一种改进方案,解决了基于 Diffie-Hellman 协议的某些安全性问题。

1. 背景

在早期的 Diffie-Hellman 密钥交换协议中,虽然协议能够实现两方安全地生成共享密钥,但它并未解决身份认证的问题,即协议本身并没有机制来验证参与方的身份,因此容易受到中间人攻击(Man-in-the-Middle Attack)。

为了解决这一问题,奥克利协议引入了一些改进,增强了安全性并且确保了通信双方的身份验证。奥克利协议的设计目标是确保密钥交换过程中的机密性、完整性和身份验证。

2. 奥克利协议的主要特点

奥克利协议的核心目标是为 Diffie-Hellman 密钥交换增加身份验证,从而抵御中间人攻击。它通过以下几个机制来实现:

2.1 身份验证

奥克利协议为密钥交换过程提供了身份验证机制。通过结合公钥加密和数字签名,确保通信双方能够验证对方的身份。这通常通过 数字证书公钥基础设施(PKI) 来实现。

2.2 防止中间人攻击

传统的 Diffie-Hellman 协议没有提供对通信方身份的验证,这就为中间人攻击留下了漏洞。奥克利协议通过引入身份认证,确保在密钥交换过程中双方都是经过验证的,从而防止中间人攻击。

2.3 使用多轮密钥交换

奥克利协议通过多轮交换过程增加了安全性,每轮交换都涉及到不同的密钥生成步骤。这样,即使某一轮密钥交换被破解,其他轮次的密钥交换仍然可以提供额外的安全保障。

2.4 保护机密性

奥克利协议使用了 加密算法哈希函数 来保护消息的机密性,确保通信双方交换的内容不会被第三方窃听或篡改。

3. 奥克利协议的工作原理

奥克利协议通常包含多个阶段,以下是一个大致的工作流程:

  1. 初始密钥交换(Diffie-Hellman)

    • 双方通过 Diffie-Hellman 协议交换公钥部分,生成共享的会话密钥。由于没有身份验证,仍然有可能受到中间人攻击。
  2. 身份验证

    • 通过使用公钥基础设施(PKI)和数字签名进行身份验证。每一方会向对方提供数字证书或公钥,使用这些信息验证对方的身份,确保密钥交换的合法性。
  3. 加密和哈希

    • 在交换密钥的过程中,消息内容被加密或哈希处理,以防止数据被窃取或篡改。
  4. 共享密钥生成

    • 双方通过 Diffie-Hellman 协议得到的共享密钥被用于加密后续的通信内容。
  5. 完成密钥交换

    • 一旦双方都完成身份验证并成功生成共享密钥,通信就可以开始了,使用该密钥加密后续的通信内容。

4. 奥克利协议与其他协议的比较

  • 与 Diffie-Hellman 协议的比较

    • Diffie-Hellman 协议的主要缺点是缺乏身份验证机制,因此容易受到中间人攻击。奥克利协议解决了这一问题,通过结合身份验证和多轮交换来加强安全性。
  • 与 SSL/TLS 协议的比较

    • SSL/TLS 协议使用类似的密钥交换方法,但在奥克利协议的基础上引入了更多的加密算法、身份验证和消息完整性检查。因此,SSL/TLS 协议在实际应用中更加复杂和完善,且在互联网通信中得到广泛应用。

5. 应用场景

奥克利协议作为密钥交换协议的核心之一,在很多安全协议中都有应用,尤其是 SSL/TLSIPsec 等协议。通过在密钥交换过程中增强身份验证,奥克利协议使得这些协议能够提供更加安全的通信通道。

6. 奥克利协议的总结

  • 奥克利协议为传统的 Diffie-Hellman 密钥交换 提供了改进,解决了身份验证和中间人攻击的问题。
  • 它通过结合 公钥加密数字签名多轮密钥交换 等机制,增强了安全性。
  • 奥克利协议在许多安全协议(如 SSL/TLS 和 IPsec)中得到了广泛应用,成为现代网络安全中不可或缺的一部分。

7. 奥克利协议与现代加密技术

今天的加密协议如 SSL/TLSIPsec 都在某种程度上借鉴了奥克利协议的理念,尤其是在密钥交换和身份验证方面。尽管奥克利协议本身并不是广泛应用的协议,但它为后来的许多加密通信协议奠定了基础,特别是在保障通信双方安全、身份验证和抵御中间人攻击等方面。

Shamir秘密共享

秘密共享的概念

  • 问题1:
    • 保险柜中存放有10个人的共有财产,要从保险柜中取出物品,必须有半数以上的人在场才可取出,半数以下则不行。如何构造锁的设计方案?
  • 问题2:
    • 导弹的发射控制、重要安保场所的通行检验,通常需要多人同时参与才能生效。因此,需要将秘密分给多人掌管,并且由一定掌管秘密的人数同时到场才能恢复秘密。方案如何设计?

秘密分割门限方案的定义

  • 秘密 \(s\)(通过某种方案)被分为 \(n\) 个部分,每个部分称为份额(share)影子(shadow),由一个参与者持有,使得
    • \(k\) 个或多于 \(k\) 个参与者所持有的部分信息可重构 \(s\)
    • 由少于k个参与者所持有的部分信息则无法重构s,称该方案为 \((k,n)\) 秘密分割门限方案,\(k\) 称为门限值。少于 \(k\) 个参与者所持有的部分信息得不到s的任何信息称该门限方案是完善的。
  • ![[秘密分割门限方案.png]]

Shamir秘密共享方案

Shamir门限方案的构造思路

![[Shamir门限方案的构造思路.png]]

一般的,设 \(\{(x_{1},y_{1}),\dots,(x_{k},y_{k})\}\) 是平面上 \(k\) 个不同的点构成的点集,那么在平面上存在唯一的 \(k-1\) 次多项式 \(f(x)=a_{0}+a_{1}x,+\dots,a_{k-1}x^{k-1}\) 通过这 \(k\) 个点.

若把秘密 \(s\) 取做 \(f(0)\)\(n\) 个份额取做 \({\color{red} f(i) }(i=1,\dots,n)\),那么利用其中任意 \(k\) 个份额可以重构 \(f(x)\),从而可以得到秘密 \(s\).

  • [i] \(\frac{GF(q)}{\left\{ 0 \right\}}\)表示的是 有限域 \(GF(q)\) 除去零元后的集合,通常称为 非零元素集合

Shamir门限方案

  • \(GF(q)\)为大素数 \(q\) 生成的有限域,其中 \(q≥n+1\)
  • 秘密 \(s\)\(\frac{GF(q)}{\left\{ 0 \right\}}\) 上均匀选取的随机数,即 \(s\in\frac{GF(q)}{\left\{ 0 \right\}}\).
  • \(GF(q)\) 上构造一个\(k-1\) 次多项式 \(f(x)=a_{0}+a_{1}x,+\dots,a_{k-1}x^{k-1}\),其中:\({\color{red} a_{0}=s },a_{i}\in_{R} \frac{GF(q)}{\left\{ 0 \right\}}\)
  • \(n\) 个参与者 \(P_{1},\dots,P_{n}\),其中,\(P\) 的份额为 \(f(i)\)。任意 \(k\) 个参与者要得到秘密 \(s\),可使用

\[\begin{cases} a_{0}+a_{1}(i_{1})+\dots+a_{k-1}(i_{1})^{k-1} & =f(i_{1}) \\ & \vdots\\ a_{0}+a_{1}(i_{k})+\dots+a_{k-1}(i_{1})^{k-1} & =f(i_{k}) \\ \end{cases} \]

由Lagrange插值公式:

\[\begin{align} f(x) & =\sum_{j=1}^{k}f(i_{j})\prod^{k}_{ \begin{array}{l}l=1 \\ l\neq j \end{array}}\frac{x-i_{l}}{i_{j}-i_{l}}\pmod{q} \\ 故:s & =(-1)^{k-1}\sum^{k}_{j=1}f(i_j)\prod^{k}_{ \begin{array}{l}l=1 \\ l\neq j \end{array}} \frac{i_{l}}{i_{j}-i_{l}}\pmod{q} \end{align} \]

Shamir门限方案的完善性

  • 如果 \(k-1\) 个参与者想获得s,可构造\(k-1\)个方程,有 \(k\) 个未知量。
  • 对任意 \(s_{0}\),设 \(f(0)=s_{0}\). 这样可以得到第 \(k\) 个方程,得到 \(f(x)\)
  • 对每个 \(s\) 都有唯一的多项式满足,所有由 \(k-1\) 个份额得不到任何 \(s\)的信息。
  • 因此,该方案是完善的

例子:(3,5) 门限方案

\(k=3,n=5,q=19,s=11\) 随机选择系数 \(a_{1}=2,a_{2}=7\)

\(f(x)=7x^{2}+2x+11\mod{19}\)

计算可知:\(f(1)=1,f(2)=5,f(3)=4,f(4)=17,f(5)=6\)

若已知 \(f(2),f(3),f(5)\),由拉格朗日插值公式可知:

\[\begin{align} f(x) & =5 \frac{(x-3)(x-5)}{(2-3)(2-5)}+4 \frac{(x-2)(x-5)}{(3-2)(3-5)}+6 \frac{(x-2)(x-3)}{(5-2)(5-3)} \\ & =7 x^{2}+2 x+11 \end{align} \]

故,\(s=f(0)=11\)

或者,\(\mathrm{s}=(-1)^{3-1}\left[5 \frac{3 \times 5}{(2-3)(2-5)}+4 \frac{2 \times 5}{(3-2)(3-5)}+6 \frac{2 \times 3}{(5-2)(5-3)}\right]=11\)

posted @ 2025-02-25 11:40  seveN1foR  阅读(111)  评论(0)    收藏  举报