矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名

本文转载自微信公众号 :矩阵元

原创 :胡震恺 等

矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名


前言


隐私计算笔谈系列是矩阵元联合知名密码学学者共同推出的密码学科普系列文章,旨在普及密码学与隐私计算,让密码学触手可及。


ECDSA多方签名


本期我们将介绍一种多方的椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA),在介绍ECDSA之前,我们先简要介绍一下需要用到的背景知识:椭圆曲线密码体制(Elliptic Curve Cryptography, ECC),数字签名算法(Digital Signature Algorithm, DSA),以及将ECC和DSA结合起来的ECDSA。

| 椭圆曲线

首先简要介绍一下椭圆曲线,椭圆曲线一般是形如y2+axy+by=x3+cx2+dx+e𝑒的方程,定义中包含一个无穷远点,记为𝑂。一般普遍采用的是有限域𝐺𝐹(𝑝)上的椭圆曲线,较为常用的定义方程为y2=x3+ax+b,用Ep(𝑎, 𝑏)来代表这条曲线。因为有限域中点是离散的,因此有限域上的椭圆曲线的坐标分布也是离散的。定义椭圆曲线上任意一点𝑃,𝑃+𝑂=𝑂+𝑃=𝑃。假设曲线上有两个点P1=(x1,y1),P2=(x2,y2),x1,y1x2,y2分别表示点的坐标,椭圆曲线上的加法P3=(x3,y3)=P1+P2定义为:,和,分别表示点的坐标,椭圆曲线上的加法P3=(X3,Y3)=P1+P3定义为:

矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名

其中:

矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名

可以验证椭圆曲线上的每个点加法的结果都落在椭圆曲线上,定义椭圆曲线上的倍点运算,如2𝑃=𝑃+𝑃。 

使用椭圆曲线构造的密码体制基于的是离散对数困难假设:对于曲线Ep(𝑎, 𝑏)上的一点𝑄=𝑘𝑃,知道𝑘的值和𝑃的坐标后计算𝑄的坐标很简单,但是由𝑃, 𝑄求𝑘是困难的。

| 数字签名算法 

DSA签名算法是在ElGamal和Schnorr两个签名方案基础上设计的,其安全性也是基于求离散对数的困难性。首先DSA算法有三个全局公开的参数,分别是𝑝,𝑞,𝑔,𝑝是大素数,𝑞是𝑝−1的素因子,矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名,其中ℎ是满足一定条件的任意整数。还是以Alice和Bob为例,Alice作为签名方,Bob作为验证方,假设Alice要签名的消息为M。 

首先Alice秘密产生一个随机数𝑥∈[1,𝑞−1] ,并公开自己的公钥𝑦≡gx𝑚𝑜𝑑 𝑝,𝑥是Alice的私钥。接着Alice为自己要签名的消息𝑀产生一个随机数𝑘∈[1,𝑞−1],计算𝑟≡(gk𝑚𝑜𝑑 𝑝)𝑚𝑜𝑑 𝑞,𝑠≡(k-1(𝐻(𝑀)+𝑥𝑟))𝑚𝑜𝑑 𝑞,其中𝐻(∗)是一个哈希函数。Alice将(𝑟, 𝑠)作为自己对消息的签名,将(𝑀,(𝑟, 𝑠))发送给Bob。 

假设Bob收到的为(𝑟′, 𝑠′),Bob可以利用Alice的公钥和公开参数计算:𝑤≡(s’)-1𝑚𝑜𝑑 𝑞,u1≡(𝐻(𝑀′)𝑤) 𝑚𝑜𝑑 𝑞,u2≡𝑟′𝑤 𝑚𝑜𝑑 𝑞,𝑣≡((gu1yu2) 𝑚𝑜𝑑 𝑝)𝑚𝑜𝑑 𝑞。Bob验证若𝑣=𝑟′,则验证通过。

因为𝑣≡((gu1yu2)𝑚𝑜𝑑 𝑝)𝑚𝑜𝑑 𝑞≡(g(H(M’)+xr)s-1𝑚𝑜𝑑 𝑝)𝑚𝑜𝑑 𝑞,又因为(𝐻(𝑀′)+𝑥𝑟)≡(𝐻(𝑀)s-1+𝑥𝑟)⋅(k-1(𝐻(𝑀)+𝑥𝑟))-1≡𝑘 𝑚𝑜𝑑 𝑝,当𝐻(𝑀)≡𝐻(𝑀′)时,𝑣≡(gk𝑚𝑜𝑑 𝑝)𝑚𝑜𝑑 𝑞≡𝑟。若收到的(𝑀′,(𝑟′,𝑠′))和(𝑀, (𝑟, 𝑠))中有任意元素不相同,验证就会不通过。 

矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名
图1:DSA签名算法

| ECDSA

上面我们介绍了DSA和ECC,回忆一下,域上的椭圆曲线Ep(𝑎,𝑏)有三个参数𝑎,𝑏,𝑝,曲线方程为y2=x3+𝑎𝑥+𝑏,在ECDSA签名算法中,椭圆曲线的参数𝑎,𝑏,𝑝都是公开的,同时该曲线上的初始点𝐺和曲线上总点数𝑁也是公开的,因此公开的参数有(𝑝,𝑎,𝑏,𝑁,𝐺)。

Alice对消息𝑀的签名步骤为:首先Alice产生一个自己的私钥𝑥,并公开自己的公钥𝑦=𝑥𝐺。接着Alice产生一个随机数𝑘,计算𝑃=𝑘𝐺=(xp,yp)和𝑠=(𝐻(𝑀)+𝑥⋅),其中xp,yp是点𝑃的坐标。令𝑟=xp,Alice将(𝑀,(𝑟, 𝑠))发送给Bob。 

假设Bob收到的是(𝑀′,(𝑟′, 𝑠′)),Bob可以验证:s‘-1⋅ 𝐻(𝑀′)⋅𝐺+s‘-1⋅𝑟′⋅𝑦≡(k-1(𝐻(𝑀)+𝑥⋅sp))-1(𝐻(𝑀′)+xp⋅𝑥)⋅𝐺≡𝑘⋅𝐺≡𝑃,Bob将自己计算出来的𝑃的𝑥坐标和收到的𝑟′=xp相同,则验证通过。 

矩阵元 |【隐私计算笔谈】MPC系列专题(二十八):ECDSA多方签名
图2:ECDSA签名算法

本文转载自https://mp.weixin.qq.com/s/RHsUtodLK-4_1kFGR0Z0CQ

(0)
矩阵元的头像矩阵元编辑
上一篇 13 5 月, 2021 14:54
下一篇 15 5 月, 2021 12:38

相关推荐

发表回复

登录后才能评论