熵密杯专题|公钥密码之协同签名技术规范(理论篇)

admin 2026-06-20 05:09:33 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解析熵密杯CTF竞赛中公钥密码赛道的协同签名技术,重点介绍基于SM2算法的两方协同签名专利方案。文章涵盖技术定义、密钥分片机制、交互流程、安全特性,并系统分析竞赛中常见的四类漏洞(随机数复用、分片泄露、中间点篡改、公式简化)及对应攻击手法。最后提供专项备赛路线,包括ECC基础巩固、交互协议记忆、方程组求解训练和真题复盘。 综合评分: 85 文章分类: CTF,WEB安全,漏洞分析,技术标准,安全工具


cover_image

熵密杯专题|公钥密码之协同签名技术规范(理论篇)

利刃信安

2026年6月18日 23:30 中国香港

在小说阅读器读本章

去阅读

编者荐语:

熵密杯专题|公钥密码之协同签名技术规范(理论篇)

以下文章来源于密安学社 ,作者密安学社

密安学社 .

密安学社——专注密码安全领域,致力于打造集理论学习与实操训练于一体的专业培训平台。

【摘要】

在熵密杯公钥密码赛道,基础 ECDSA/SM2 常规签名属于基础送分题,而协同签名(多方签名)是每年决赛必考、拉开分数的高阶题型。

协同签名脱胎于椭圆曲线密码体系,依托专利化 SM2 两方协同签名方案实现密钥分片、多方参与、无中心签名,适配多种业务场景。但在竞赛场景中,出题人往往利用参数复用、随机数泄露、分片漏洞、交互缺陷构造高分赛题。

本文沿用 ECC 底层理论,完整拆解协同签名技术溯源、专利 SM2 两方协同签名完整流程、熵密杯漏洞、攻击手法、备赛方案,帮你打通普通签名 → 多方协同签名的进阶壁垒,拿下熵密杯最高阶公钥题型。


一、为什么熵密杯必考「协同签名」?

绝大多数 CTF 比赛只考单钥签名:一套私钥、一次签名、单一逻辑,漏洞固定、套路成熟。

但熵密杯主打国产商用密码落地场景,真实金融、政务、云计算场景中,核心密钥绝不会由单人持有,而是采用密钥分片、多方共管、协同签名机制,以此防止单点密钥泄露、单点作恶。

这也是熵密杯差异化出题的核心逻辑:

✅ 普通签名:考 基础 ECC 原理、k 复用、弱曲线

✅ 协同签名:考 协议逻辑、交互流程、分片漏洞、自定义协议缺陷

简单来说:会 ECC 基础只是入门,会协同签名才是熵密杯高分选手。

1.1 协同签名核心定义

协同签名:将用户原始私钥拆分为多份子私钥,由多方参与者分别持有,任意一方无法单独完成签名,必须多方交互、联合计算,最终合成合法 SM2/ECDSA 标准签名。

特点:无中心、密钥分片、分布式、可审计、防单点泄露


二、技术溯源:从单钥签名到多方协同签名

我们在前一篇《椭圆曲线理论》中讲过:标准 SM2/ECDSA 签名核心公式为: s = k⁻¹ × (z + d × r) mod n

  • d:私钥
  • k:签名随机数
  • z:消息哈希摘要
  • r:基点横坐标

单钥签名安全依赖两点:私钥 d 绝对保密、随机数 k 每次新鲜唯一。

但产业与竞赛场景中存在两大致命问题:

  1. 私钥 d 一旦泄露,签名体系彻底沦陷;
  2. 单一生成的 k 极易出现伪随机、复用、预测漏洞(熵密杯高频考点)。

为解决上述问题,基于椭圆曲线群运算线性特性,衍生出分片私钥、分片随机数、多方协同的协同签名体系。云计算场景下诞生专利型两方 SM2 协同签名方案(本文附图方案 ),也是熵密杯近年高频命题蓝本。


三、标准:云计算场景两方 SM2 协同签名方案

熵密杯近年协同签名压轴赛题,大量取材于《适用于云计算的基于 SM2 算法的签名及解密》发明专利两方协同方案,全文交互逻辑、分片参数、公私钥推导、签名计算公式完全匹配附图。本节分为三大模块:参与方参数、密钥生成阶段、签名计算与验签。

3.1 方案参与方与本地私有参数

方案分为两方参与:本地端(第一方)、云服务端(第二方),双方私有参数全程不对外传输:

  1. 第一方(本地)私有参数:d₁、k₁
  2. 第二方(云端)私有参数:d₂、k₂、k₃

d₁、d₂ 为私钥分片;k₁、k₂、k₃ 为两方独立生成的随机数;交互过程仅传递椭圆公点点坐标,私有分片全程保密。

3.2 第一阶段:分布协同密钥生成(附图上半部分)

分步交互流程:

  1. 第一方计算:P₁ = (d₁ 逆元) × G,将点 P₁ 发送至云端第二方;
  2. 第二方计算:P₂ = (d₂ 逆元) × G;再结合 P₁ 计算聚合公钥 Pₐ: Pₐ = (d₂ 逆元) × P₁ − G = (d₁ 逆元 × d₂ 逆元 − 1) × G 云端将 P₂、聚合公钥 Pₐ 回传给本地;Pₐ 对外公开,作为验签公钥;
  3. 本地生成随机基点 Q = k₁ × G,把 Q 发送云端;
  4. 云端使用本地随机数 k₂、k₃ 对点 Q 线性运算: k₃ × Q + k₂ × G = (k₁ × k₃ + k₂) × G 运算输出坐标 (x,y),作为签名计算基础数据。

核心特性:聚合公钥 Pₐ 由两方分片共同生成,任意单独一方,无法独立计算完整公钥,满足云计算密钥隔离托管需求。

3.3 第二阶段:协同签名计算(附图下半部分)

对消息 M、用户标识 Zₐ 做哈希:H (Zₐ || M),云端先完成分片签名计算,再把 r、s₂、s₃ 传回本地合成完整签名:

  1. 云端分片计算:

    r = x + H (Zₐ || M)

    s₂ = d₂ × k₃

    s₃ = (r + k₂) × d₂

  2. 云端传输 r、s₂、s₃ 至本地,本地结合私有 d₁、k₁ 算出完整签名 s:

    s = d₁ × k₁ × s₂ − r + d₁ × s₃

    代入 s₂、s₃ 展开化简:

    s = d₁ × k₁ × d₂ × k₃ − r + d₁ × (r + k₂) × d₂

    因式分解得到适配公钥 Pₐ 验签的标准形式:

    s = [ 1 + (d₁ 逆元 × d₂ 逆元 − 1) ]逆元 × [ (k₁k₃ + k₂) − r × (d₁ 逆元 × d₂ 逆元 − 1) ]

3.4 验签逻辑

第三方仅持有公开聚合公钥 Pₐ,不需要掌握任何分片私钥 d₁/d₂、随机数 k₁/k₂/k₃,仅凭签名 (r,s) 即可完成标准 SM2 验签;

对外表现和普通单钥 SM2 签名无任何区别。

3.5 熵密杯竞赛命题切入点

本专利方案是协同签名压轴题原型,出题人改造漏洞集中 4 类:

  1. 随机数 k₁/k₂/k₃ 复用、弱伪随机可预测;
  2. 交互点 P₁/P₂/Q 明文泄露,联立方程求解分片私钥;
  3. 关闭椭圆点合法性校验,注入非法点篡改聚合公钥 Pₐ,实现无密钥伪造签名;
  4. 简化运算公式,通过多组签名 (r,s) 联立方程,直接解出 d₁、d₂。

四、通俗理解:协同签名为什么安全?

普通单钥签名:一人完整持有私钥 d 与随机数 k,单点泄露直接崩盘。 专利两方协同签名安全设计:

  1. 完整私钥不存储在任意一端,拆分 d₁、d₂ 分别存本地、云端;
  2. 签名随机数拆分为 k₁、k₂、k₃,由两方独立生成,单方无法控制随机空间;
  3. 本地、云端任意一方,无法独立完成完整签名,必须双向交互交换中间点与分片签名值;
  4. 外部验签方仅能获取聚合公钥 Pₐ,无法反向推导两方私有分片参数。

竞赛核心本质:出题人通过破坏分片独立性、复用随机数、泄露分片参数、简化聚合逻辑,让安全协议产生可破解漏洞。


五、熵密杯核心:协同签名高频漏洞与攻击手段(部分考点)

协同签名是熵密杯变形最多、区分度最高的题型,所有赛题均为「标准专利协议弱化改造」,整理全部高频考点:

5.1 基础送分考点:多方随机数复用漏洞

竞赛中常出现:两次签名复用同一组 k₁/k₂/k₃、固定某一方随机数不变。 利用本章线性联立公式,直接消元求解分片私钥 d₁、d₂,是赛场最常见基础变形题。

5.2 进阶考点:分片私钥泄露攻击

题目泄露任意一方分片(d₁ 或 d₂),结合交互传输的 P₁、P₂、Q 等公开点,反向推导剩余分片,还原完整密钥空间。

5.3 高阶考点:中间传输点劫持与篡改

标准协议强制校验 P₁、P₂、Q 为合法椭圆曲线点;熵密杯部分赛题删除校验逻辑,选手可注入非法椭圆点,篡改聚合公钥 Pₐ,实现无私钥伪造合法签名。

5.4 决赛难点:公式简化退化攻击

出题人删减随机变量、固定部分参数,简化 s 的长计算公式,将椭圆签名问题退化为简单线性方程组,使用高斯消元一次性解出全部分片密钥。

5.5 国密特色考点:伪随机数预测漏洞

k₁/k₂/k₃ 采用弱伪随机算法生成,可根据输出结果反向预测随机分片,直接构造伪造签名,是熵密杯差异化特色考点。


六、普通 SM2 签名 VS 云计算两方协同签名(竞赛对比表)

| 对比维度 | 普通 SM2 单签名 | 专利两方 SM2 协同签名 | | — | — | — | | 密钥结构 | 单一完整私钥 d | 两方分片私钥 d₁、d₂ | | 随机数来源 | 单个随机数 k | 三组独立随机数 k₁、k₂、k₃ | | 签名流程 | 本地一次性计算,无交互 | 两轮双向交互,分片计算后合并完整签名 | | 安全风险 | k 复用、完整私钥泄露 | 随机分片复用、中间点篡改、分片泄露 | | 熵密杯考查定位 | 基础中档题 | 压轴高分、决赛综合交互题 |


七、备赛指南:协同签名专项学习路线

承接上篇 ECC 椭圆曲线知识体系,针对本专利协同签名定制备赛路径:

  1. 夯实 ECC 线性群运算基础吃透标量乘法线性叠加特性,看懂本章 Pₐ、s 的代数化简推导,这是整套专利方案的数学根基。
  2. 熟记完整交互链路拆分两大阶段:分布式密钥生成 → 分片签名联立计算;牢记 P₁/P₂/Q 传输顺序与每一步倍点运算,快速识别题目删减、篡改协议步骤。
  3. 训练分片方程组消元思维竞赛协同题核心是联立线性方程,熟练使用多组签名 (r,s) 结合 s 的完整公式,求解未知分片 d₁、d₂、随机数 k。
  4. 分类编写专属攻击脚本覆盖四大场景:分片泄露攻击、随机数复用消元、非法点注入伪造签名、弱随机预测,适配本专利方案各类变形赛题。
  5. 复盘历年熵密杯协同签名真题总结出题固定套路:简化交互步骤、固定随机分片、泄露中间传输点、关闭椭圆点合法性校验。

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:利刃信安 《熵密杯专题|公钥密码之协同签名技术规范(理论篇)》

评论:0   参与:  0