# ECDSA_threshold_code **Repository Path**: cse-crypto/ECDSA_threshold_code ## Basic Information - **Project Name**: ECDSA_threshold_code - **Description**: the code of Multi-party threshold ECDSA signature protocol - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2023-02-21 - **Last Updated**: 2025-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Multi-party threshold ECDSA signature protocol #### 介绍 多方协同数字签名目前已经成为面向移动互联网的成熟密码解决方案。无论是 在区块链还是传统金融机构等应用层面,门限签名方案都可以带来多种场景下的安 全性和隐私性提升。现有的多方门限ECDSA签名都需要采用同态加密、不经意传输, beaver乘法三元组等密码源语构建一种将乘法份额转化为加法份额(MtA)的多方计 算协议,造成协同签名过程中计算开销过高、通信开销过高、存储开销过高的问题, 从而难以广泛应用于实际系统。因此,如何在保证多方门限协同签名安全性的前提 下,降低运行的计算开销、通信开销和存储开销,是当前多方门限ECDSA签名协议 亟需解决的关键技术之一。 本题目的目标是设计多方(三方及以上)参与的,且无需构造基于复杂密码原 语的MtA协议的多方门限ECDSA算法,并在基于数字签名的多方协同决策系统中进 行实例化,具有较强的现实意义。为了保证在恶意敌手模型下的安全性,我们引入 了离散对数零知识证明和可验证秘密共享(如Feldman VSS协议或Pedersen VSS协议) 技术保证所有参与方在协同签名过程中的可靠性。作品的主要贡献如下: (1)设计了一种新型安全高效的多方门限ECDSA协同签名方案,仅采用简单的 加法线性秘密共享和Shamir秘密共享,即可实现多个参与方在不泄露各自私钥份额 的情况下完成签名计算,满足多方协同签名的正确性以及高效性需求。 (2)基于离散对数零知识证明以及可验证秘密共享技术,实现了恶意敌手模型 下的安全性,并且从理论分析和实验验证两方面验证了所提方案在计算开销和通信 开销上的优势。 (3)使用高效多方门限ECDSA协同签名算法,通过网络连接实现了不同主机数 据交互,进行基于协同签名与验证的决策系统的实现。 #### 软件架构 该程序分为三个部分: 1.通讯部分 负责不同用户之间参数的交互。 2.签名计算部分 根据接受到的用户参数计算出相应的签名份额以及私钥份额。 3.签名验证部分 根据用户的签名份额以及私钥份额进行签名验证。 #### 使用说明 本项目是对高效ECDSA协同签名算法进行的示例化程序,是一个(3,4)门限的签名算法程序即再生成密钥时需要四个参与方,签名时只需要三个参与方即可完成签名。其中app、app1、app2、app3分别为四个参与方主机上运行的程序,这里为了演示方便则将这四个程序放在了一台主机上运行,并将网络传输的目的主机IP都设置为了127.0.0.1。需要手动打开这四个文件夹下的app.exe程序,这里为了方便则写了两个批处理程序,利用半诚实模型程序打开.bat则可一次性打开所有app.exe。而恶意敌手模型程序是为了展示本算法对于恶意敌手模型的攻击,也就是在代码中对用户1,4上传的私钥份额和用户2,3上传的签名份额进行了恶意修改,在程序运行结果中,每个用户都可以检测出其他用户的恶意行为。使用恶意敌手模型程序打开.bat可以直接打开所有的app.exe。打开所有的app.exe后,每个用户程序都需要点击两次下一步,以进行公私钥计算,计算完成后继续点击下一步则可完成后续签名以及验证。