发明名称 椭圆曲线签名和验证签名方法和装置
摘要 本发明是一种椭圆曲线签名方法。其中发送方公开系统参数及其公钥Y<SUB>A</SUB>,然后生成随机数k,将k与曲线的基点G进行椭圆曲线点乘运算,得到曲线上的点kG,使用函数d将得到的点kG和明文m进行运算,得到r=d(m,kG);函数f<SUB>0</SUB>,f<SUB>1</SUB>,g<SUB>0</SUB>,g<SUB>1</SUB>皆为r的函数,使用函数f<SUB>0</SUB>,f<SUB>1</SUB>,g<SUB>0</SUB>,g<SUB>1</SUB>和随机数以及私钥x<SUB>A</SUB>求解方程f<SUB>0</SUB>(r)+f<SUB>1</SUB>(r)s=k-x<SUB>A</SUB>(g<SUB>0</SUB>(r)+g<SUB>1</SUB>(r)s)解得s=(k-x<SUB>A</SUB>g<SUB>0</SUB>(r)-f<SUB>0</SUB>(r))(f<SUB>1</SUB>(r)+x<SUB>A</SUB>g<SUB>1</SUB>(r))<SUP>-1</SUP>;接收方接收使用发送方的公钥Y<SUB>A</SUB>、椭圆曲线基点G以及函数f<SUB>0</SUB>,f<SUB>1</SUB>,g<SUB>0</SUB>,g<SUB>1</SUB>计算得到P=(f<SUB>0</SUB>(r)+f<SUB>1</SUB>(r)s)G+(g<SUB>0</SUB>(r)+g<SUB>1</SUB>(r)s)Y<SUB>A</SUB>,使用函数d’计算m’=d’(r,P);将计算得到的m’和接收到的m进行比较;其中上述的函数d和函数d’必须具有以下性质:设函数d形为D=d(x,y),从函断d可以推得y=d’(x,D)。本发明可以缩短具有相同安全强度的签名的长度,加快签名速度。
申请公布号 CN100440776C 申请公布日期 2008.12.03
申请号 CN02154716.5 申请日期 2002.11.29
申请人 北京华大信安科技有限公司 发明人 陈建华;汪朝晖;李莉;涂航;崔竞松;彭蓉
分类号 H04L9/30(2006.01);H04L9/00(2006.01);H04K1/00(2006.01) 主分类号 H04L9/30(2006.01)
代理机构 北京市金杜律师事务所 代理人 吴立明
主权项 1.一种椭圆曲线签名和验证签名方法,其中发送方拥有自己的密钥对:私钥xA和公钥YA,并公布系统参数和公钥YA,发送方使用自己的私钥xA对明文m实现数字签名,并将明文m和签名发送给接收方,接收方使用发送方的公钥YA来验证发送方对明文m的签名是否合法,包含以下步骤:发送方公开系统参数及其公钥YA,然后生成随机数k,使得k落在区间[1,N-1]上,其中N为椭圆曲线的点群的阶,将k与曲线的基点G进行椭圆曲线点乘运算,得到曲线上的点kG;使用函数d将得到的点kG和明文m进行运算,其中保证无法从d中获取k的值,得到r=d(m,kG);函数f0,f1,g0,g1皆为r的函数,使用函数f0,f1,g0,g1和随机数以及私钥xA求解方程f0(r)+f1(r)s=k-xA(g0(r)+g1(r)s)解得s=(k-xAg0(r)-f0(r))(f1(r)+xAg1(r))-1,这样得到的(r,s)即为发送方对明文m的签名;发送方将明文m和其签名(r,s)发送给接收方;接收方接收到明文m和发送方对m的签名(r,s),首先使用发送方的公钥YA、椭圆曲线基点G以及函数f0,f1,g0,g1计算得到P=(f0(r)+f1(r)s)G+(g0(r)+g1(r)s)YA,使用函数d’计算m’=d’(r,P);将计算得到的m’和接收到的m进行比较,如果相同则签名合法,同时m’是从签名结果中恢复得到的明文,如果不同则签名非法;其中上述的函数d和函数d’必须具有以下性质:设函数d形为D=d(x,y),从函数d推得y=d’(x,D)。
地址 100015北京市朝阳区高家园1号二层