16、服务器辅助计算协议攻击及相关公钥密码系统分析

服务器辅助计算协议攻击及相关公钥密码系统分析

一、RSA 签名协议的被动攻击
  1. RSA - S1 的被动攻击
    • 候选向量确定 :对于相同向量 F,当找到匹配,即 $y_{F1} = y_{F2}$ ,且 $F_1$ 和 $F_2$ 不相交(即它们在相同位置没有 1)时,向量 $F_1 + F_2$ 是真正秘密向量 F 的候选。若此过程不能唯一确定 F,可使用第二条消息 $x’$ 测试剩余候选。
    • 复杂度分析 :$y_F$ 值的数量为 $N := \sum_{i = 0}^{L} \binom{M}{i}$ ,平均每次计算所需乘法少于一次(若存储中间结果)。排序和搜索大约需要 $N \log(N)$ 次操作,远小于公式(2)中的数量(比平方根稍大)。
  2. RSA - S2 的被动攻击
    • 攻击步骤
      • 对于已知签名 $y$ 的消息 $x$,先计算所有 $z_i = p_i$ 的值。
      • 计算权重 $w(F) \leq \frac{L}{2}$ 的向量 F 的所有乘积 $y_F := \prod_{i = 1}^{M} z_i^{f_i} \bmod n$ 。
      • 计算 $v_F := \gcd(y_F - y, n)$ ,若其中一个既不是 1 也不是 n,则已分解模数。
      • 否则,至少有一个 $v_F$(通常不多)为 n,真正的 F 或 G 必定在相应向量中,通常此时 $F = G$ 。
    • 原理分析 :对于真正的 F,$y_F = y_p = y \bmod p$ ;对于真正的 G,$y_G = y_q = y \bmod q$ ,所以并非所有 $v_F$ 都为 1。除 $F = G$ 情况外,$y_F$ 通常不同余于 $y \bmod q$ ,反之亦然,此时可按步骤(3)分解模数。
    • 复杂度分析 :$y_F$ 值的数量与上述类似,平均每次计算所需乘法稍多于一次。由于计算最大公约数耗时更多,应先计算多个差值 $(y_F - y)$ 的乘积的最大公约数。复杂度比公式(3)描述的复杂度的平方根大不了多少。
  3. 其他变体的被动攻击 :上述攻击方法可轻松推广到 RSA - S1 和 RSA - S2 的非二进制变体。除了 [QuSo - 91] 中可证明安全的协议外,已知的所有变体都易受攻击。
二、RSA 签名协议的主动攻击
  1. 攻击描述
    • RSA - S1 的攻击
      • 雅可比符号攻击 :服务器发送错误向量 $Z’ = (z_1’, \cdots, z_M’)$ ,智能卡输出 $y’ := \prod_{i = 1}^{M} z_i’^{f_i} \bmod n$ 。服务器计算 $y’$ 关于 n 的雅可比符号 $(-1)^c$ ,设 $I$ 是 $z_i’$ 的雅可比符号为 - 1 的索引子集,可得 $c = \sum_{i = 1}^{M} f_i \bmod 2$ 。服务器每次攻击可获得关于 F 在 $GF(2)$ 上的一个线性方程。通过选择合适的向量 $Z’$ ,经过 M 轮攻击可得到 F 进而得到 d。若 $L$ 远小于 M,服务器选择向量使得到的线性方程构成能纠正最多 L 个错误的代码的奇偶校验矩阵时,所需轮数少于 M。若服务器不太可能经常遇到同一张智能卡,还可利用主动攻击获得的信息加速被动攻击。
      • 新攻击方法 :服务器发送一组小素数(或其盲化版本),对智能卡输出的乘积(若 M 不太大则小于 n)进行试除分解,从而得到 F。但这种优雅的攻击易被先前为其他协议变体提出的对策阻止。
    • RSA - S2 的攻击 :服务器改变一个 $z_i$ 的符号,若 $f_i \neq g_i$ ,则得到的 $y’$ 和真正的签名 $y$ 是同一值的显著不同平方根。由于公共指数 e 为奇数,$y’$ 和 $y^e = M$ 也有相同性质,服务器可通过计算 $\gcd(y’ - y^e, n)$ 分解模数。
  2. 对策讨论
    • 不能忽视主动攻击的原因 :[MaKI - 90] 中假设服务器会避免主动攻击,但对于不可信的服务器,这种假设不合理,除非攻击会带来严重风险。然而,所有描述的攻击都有服务器能输出正确签名的变体,因此智能卡本身需要采取对策。
    • 签名检查的作用 :智能卡测试生成的签名,仅在正确时输出,这将协议限制为具有小公共指数的 RSA,且会增加额外计算,但与所需的 L 次乘法相比可能较小。此措施可有效排除所有一轮攻击,但多轮攻击仍可能。
    • 其他对策
      • 检查服务器发送的值可排除所有主动攻击,但不可行。
      • 智能卡检测到攻击后永久停止是理论上的次优解决方案,但有实际缺点。
      • 让智能卡继续并通过下一个通信的服务器发出警告很危险。
      • 在特定协议中,每次签名时更改向量 D 和 F(除检查结果外)是一种措施,但智能卡需能快速生成随机数,且分解 d 的过程必须在智能卡上实现。不过,尚不清楚拥有多个向量 D 是否会引发新的被动攻击,且 [QuSo - 91] 协议似乎无法采用此措施。
三、相关协议的攻击
  1. 矩阵乘法协议 :在该协议中,服务器接收行列置换后的矩阵版本,但行列式等大量信息未被隐藏,因此该协议在密码学意义上不提供保密性。
  2. 求解模方程协议 :智能卡有秘密整数 $u_0, \cdots, u_{m - 1}$ 和整数 k,为求解方程 $u_0 + u_1 x + \cdots + u_{m - 1} x^{m - 1} + x^m \equiv 0 \bmod k$ ,选择随机数 r 计算 $b_i := u_i r^i$ ,并将 k 和元组 $B = (b_0, b_1, \cdots, b_{m - 1})$ 发送给服务器。服务器计算系数为 B 的方程的解 y,智能卡通过 $x = y r^{-1} \bmod k$ 计算 x。但服务器可计算原多项式零点的某些函数,从而获取秘密信息。
  3. RSA 解密协议 :该协议假设服务器不知道模数 n,若服务器接收解密消息,则易受主动攻击。智能卡选择两个额外素数 $r_1, r_2$ ,计算 $n_1 := p r_1$ 和 $n_2 := q r_2$ ,并对秘密指数进行盲化。服务器若在两次不同协议执行中返回相同值 $M_1$ ,并收到两个结果 M 和 $M’$ ,则 $M - M’$ 是 p 的倍数,大概率可通过 $\gcd(n_1, M - M’)$ 分解 p。
四、公钥密码系统中极小密钥的探讨
  1. 小公钥的需求场景
    • 在一些应用中,公钥密码系统的用户希望密钥尽可能小,特别是公钥部分。例如,在小型网络中进行安全电子邮件交换或传真消息安全传输时,通过语音识别进行公钥交换,若符号集由 32 个字母数字字符表示为 5 位向量,100 位左右的密钥可表示为长度小于大多数当前国际电话号码两倍的字母数字字符串,方便用于名片、信头等。
    • 软件公司将各种程序放在一个分发介质上,购买者只能访问已付费的程序,若用户后续有需求,小公钥可便于相关操作。
  2. 现有公钥密码系统公钥大小问题
    • RSA 系统中,公钥由整数 e 和 n 组成,虽 e 可选择较小,但 n 长度至少为 512 位,难以灵活控制。
    • Diffie - Hellman 和 ElGamal 方案基于有限域中的离散指数运算,私钥 k 可限制,但公钥 $\alpha^k$ ($\alpha$ 为域的生成元)大小与域相同,至少为 2500 位。
    • Chor - Rivest 背包方案中,公钥为 $(a_0, a_1, \cdots, a_{m - 1})$ ,$0 \leq a_i \leq p^m - 2$ (如 [6] 中建议 $p = 197, m = 24$ )。

综上所述,服务器辅助计算协议存在多种攻击方式,虽这些攻击并非灾难性的,可通过增加参数或进行额外测试使其无效,但会消耗时间,可能抵消服务器辅助方法的优势。同时,对于公钥密码系统,小公钥在某些场景有需求,但现有方案在公钥大小控制上存在不足,椭圆曲线密码系统具有小密钥尺寸(约 100 位)的特点,值得进一步研究其安全性和实用性。

以下是 RSA - S2 被动攻击步骤的流程图:

graph TD
    A[已知消息 x 签名 y] --> B[计算 z_i = p_i]
    B --> C[计算 y_F = ∏z_i^f_i mod n, w(F) ≤ L/2]
    C --> D[计算 v_F = gcd(y_F - y, n)]
    D --> E{v_F 是否既非 1 也非 n}
    E -- 是 --> F[分解模数]
    E -- 否 --> G{是否有 v_F = n}
    G -- 是 --> H[真正 F 或 G 在相应向量中]
    G -- 否 --> I[继续寻找]

以下是不同公钥密码系统公钥大小对比表格:
| 公钥密码系统 | 公钥组成 | 公钥大小问题 |
| — | — | — |
| RSA | e 和 n | n 至少 512 位,难灵活控制 |
| Diffie - Hellman 和 ElGamal | $\alpha^k$ | 与域大小相同,至少 2500 位 |
| Chor - Rivest 背包 | $(a_0, a_1, \cdots, a_{m - 1})$ | $0 \leq a_i \leq p^m - 2$,有特定取值限制 |

服务器辅助计算协议攻击及相关公钥密码系统分析(续)

五、椭圆曲线密码系统小密钥的安全性与实用性
  1. 椭圆曲线密码系统概述
    椭圆曲线密码系统(ECC)是一种公钥密码系统,在某些应用场景下,其小密钥尺寸的特性具有显著优势。与传统的公钥密码系统如 RSA、Diffie - Hellman 和 ElGamal 相比,ECC 可以在较小的密钥长度下提供相当的安全性。例如,大约 100 位的 ECC 密钥在某些情况下能满足安全需求,而 RSA 通常需要 512 位以上的密钥。
  2. 安全性分析
    • 离散对数问题 :椭圆曲线密码系统的安全性基于椭圆曲线上的离散对数问题(ECDLP)。与有限域上的离散对数问题(DLP)不同,ECDLP 目前没有已知的亚指数时间算法来求解。这意味着攻击者在破解 ECC 密钥时面临更大的困难,即使密钥长度相对较小。
    • 与其他系统对比 :在相同的安全级别下,ECC 所需的密钥长度比 RSA 等系统短得多。例如,160 位的 ECC 密钥提供的安全性大致相当于 1024 位的 RSA 密钥。这使得 ECC 在对密钥大小有严格限制的场景中具有明显优势。
  3. 实用性分析
    • 小网络应用 :在小型网络中进行安全通信时,如安全电子邮件交换或传真消息传输,小密钥的 ECC 可以方便地通过语音识别进行公钥交换。如前文所述,100 位左右的密钥可以表示为较短的字母数字字符串,便于在实际应用中使用。
    • 软件授权应用 :对于软件公司的程序分发和授权系统,小密钥的 ECC 可以更方便地集成到硬件中,实现对用户访问权限的控制。用户可以更轻松地管理和使用密钥,提高系统的实用性。
六、综合评估与未来展望
  1. 服务器辅助计算协议的评估
    • 攻击的影响 :服务器辅助计算协议虽然存在多种攻击方式,但这些攻击并非不可防御。通过增加参数或进行额外测试,可以在一定程度上降低攻击的风险。然而,这些防御措施会增加计算时间和资源消耗,可能抵消服务器辅助方法带来的优势。
    • 协议的改进方向 :未来的研究可以集中在设计更安全的服务器辅助计算协议,减少对服务器的依赖,或者增强智能卡的安全性和自主性。例如,探索新的加密算法和协议,提高协议对主动攻击和被动攻击的抵抗力。
  2. 公钥密码系统的发展趋势
    • 小密钥的需求增长 :随着物联网、移动设备等领域的发展,对小密钥公钥密码系统的需求将不断增加。这些设备通常具有有限的计算资源和存储空间,小密钥的 ECC 等系统将更适合这些应用场景。
    • 安全性与性能的平衡 :在追求小密钥的同时,必须确保密码系统的安全性。未来的研究需要在安全性和性能之间找到更好的平衡,开发出既安全又高效的公钥密码系统。

以下是椭圆曲线密码系统与其他公钥密码系统的对比表格:
| 公钥密码系统 | 密钥长度 | 安全性基于 | 相同安全级别下密钥长度对比 |
| — | — | — | — |
| RSA | 至少 512 位 | 大整数分解问题 | 1024 位 RSA 约等于 160 位 ECC |
| Diffie - Hellman 和 ElGamal | 至少 2500 位 | 有限域上的离散对数问题 | 远长于 ECC |
| 椭圆曲线密码系统 | 约 100 - 160 位 | 椭圆曲线上的离散对数问题 | 相对较短 |

以下是服务器辅助计算协议改进方向的流程图:

graph TD
    A[现有服务器辅助计算协议] --> B[分析攻击方式]
    B --> C[增加参数或额外测试]
    C --> D{是否满足安全需求}
    D -- 是 --> E[继续使用并优化]
    D -- 否 --> F[设计新的加密算法和协议]
    F --> G[增强智能卡安全性和自主性]
    G --> H[减少对服务器依赖]
    H --> E

综上所述,服务器辅助计算协议和公钥密码系统在当前的应用中面临着各种挑战和机遇。通过深入研究攻击方式和防御措施,以及不断探索新的密码系统和协议,可以提高系统的安全性和实用性,满足不同应用场景的需求。特别是椭圆曲线密码系统,其小密钥尺寸的特性在未来的发展中具有广阔的前景,但仍需要进一步研究和验证其安全性和实用性。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值