CN113132110A - 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案 - Google Patents

抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案 Download PDF

Info

Publication number
CN113132110A
CN113132110A CN201911422873.0A CN201911422873A CN113132110A CN 113132110 A CN113132110 A CN 113132110A CN 201911422873 A CN201911422873 A CN 201911422873A CN 113132110 A CN113132110 A CN 113132110A
Authority
CN
China
Prior art keywords
signature
parameters
elliptic curve
polynomial
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911422873.0A
Other languages
English (en)
Other versions
CN113132110B (zh
Inventor
史扬
胡安妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhengkai Information Technology Co ltd
Original Assignee
Shanghai Zhengkai Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhengkai Information Technology Co ltd filed Critical Shanghai Zhengkai Information Technology Co ltd
Priority to CN201911422873.0A priority Critical patent/CN113132110B/zh
Publication of CN113132110A publication Critical patent/CN113132110A/zh
Application granted granted Critical
Publication of CN113132110B publication Critical patent/CN113132110B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明是一种抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案。该方案包含对消息进行签名和验证签名2个部分:(i)签名方采用签名参数对消息进行签名(ii)验证方采用验证参数对(i)中的签名进行验证并输出验证结果true/false。签名参数由椭圆曲线参数和查找表组成;验证参数由公钥和椭圆曲线参数组成。本发明能在白盒攻击环境下,保证签名私钥的安全性。同时本发明具有通用性,能在任何数字签名场景下被使用;特别地,在区块链中,其对交易的防篡改起到了至关重要的作用。

Description

抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案
技术领域
本发明涉及密码学领域,更具体的,涉及一种抵抗对区块链用户私钥白盒攻 击的椭圆曲线数字签名方案。
背景技术
近年来,区块链技术应用已延伸到数字金融、物联网、智能制造、供应链管 理、数字资产交易等多个领域。目前,全球主要国家都在加快布局区块链技术发 展。
区块链中应用广泛是公共链,其代表为比特币和以太坊。比特币和以太坊中 都采用椭圆曲线数字签名算法,起到在比特币和以太坊中防伪造/防篡改/身份认证。 数字签名算法的核心在于对其签名私钥的安全风险把控,一旦数字签名算法存在 任何安全漏洞,攻击者能通过这些安全漏洞,对签名私钥产生安全威胁,从而增 加私钥被窃取或破获的风险。
随着科技的发展,区块链越来越多的被部署在开放式的设备上,诸如物联网 设备,嵌入式设备等等。2002年Chow等人最早提出白盒攻击的概念,其中指出 在白盒攻击环境下,攻击者对设备终端具有完全的控制权,能读取设备内存,观 测程序运行过程,甚至控制程序运行步骤。因此,对于部署在开放式设备上的区 块链而言存在受到白盒攻击的风险。
发明内容
本发明构造出一种抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案,可以抵抗白盒攻击,降低签名私钥的安全风险,并将该方案应用到以太坊中。
本发明的技术方案如下:
1.抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案,存在签名方和验证方;签名方代表区块链中的签名方节点;验证方代表区块链网络中的验证方节 点,任何节点在需要时均可成为验证方节点;签名方采用签名参数对消息进行 签名,所述的签名参数由椭圆曲线参数和查找表组成;验证方采用验证参数对 签名进行验证并输出验证结果true/false,所述的验证参数由公钥和椭圆曲线 参数组成;所述的签名参数和所述的验证参数使用共同的椭圆曲线参数。
2.所述的签名参数的查找表和所述的验证参数的公钥通过算法1生成;算法1的
具体步骤如下所述:
算法1.FWhitebox-ECDSA-KeyGen
(1)输入椭圆曲线参数(Fq,M,N,p,G,Φ);q是一个素数,Fq是特征 为q的有限域;M,N是椭圆曲线方程y2=x3+Mx+N的参数且 M,N∈Fq;p是一个素数;Φ是循环子群;G是循环子群的生 成元,是椭圆曲线参数之一;
(2)p是一个素数,随机从模p的剩余类Zp中选取n2(n是一个正 整数)个随机数
Figure BDA0002352776030000021
去构建查找表Table-A,Table-A是 一个n行n列的表,它的第i行第j列存储
Figure BDA0002352776030000022
的值,其中i=1,2,...,n;j=1,2,...,n。对于任一确定的j而言,
Figure BDA0002352776030000023
(t表示安全参数,是一个正整数且
Figure BDA0002352776030000024
能够定义一个 确定的t阶多项式fj(x),其中
Figure BDA0002352776030000025
(
Figure BDA0002352776030000026
表示多 项式fj(x)在x=i时的取值);
(3)随机从Zp选取n个随机数ai(i=1,2,...,n)(ai∈Zp), ai(i=1,2,...,t)可以定义一个确定的t阶多项式fa(x),记fa(0)=a (表示多项式fa(x)在x=0时的取值);且ai=fa(i),i=t+1,...,n (ai表示多项式fa(x)在x=i时的取值);
(4)随机从Zp选取n2个随机数
Figure BDA0002352776030000027
其中 i=1,2,...,n;j=1,2,...,n;对于任一确定的j而言,
Figure BDA0002352776030000028
能够定义一个确定的2t阶多项式gj(x),其中gj(0)=0(表示多 项式gj(x)在x=0时的取值),且
Figure BDA0002352776030000029
(
Figure BDA00023527760300000210
表 示在多项式gj(x)在x=i时的取值);
(5)通过
Figure BDA0002352776030000031
去构建查找表Table-B, Table-B是一个n行n列的表,它的第i行第j列存储
Figure BDA0002352776030000032
的 值;
(6)随机从Zp选取n个随机数xi(i=1,2,...,n)(xi∈Zp),其中 xi(i=1,2,...,t)可以定义一个确定的t阶多项式fX(x),且 fX(0)=d(表示多项式fX(x)在x=0时的取值,d表示私钥); 且xi=fx(i),i=t+1,...,n(xi表示多项式fX(x)在x=i时的取值);
(7)随机从Zp选取n2个随机数
Figure BDA0002352776030000033
(其中 i=1,2,...,n;j=1,2,...,n;),对于任一确定的j而言,
Figure BDA0002352776030000034
能够定义一个确定的2t阶多项式hj(x),其中hj(0)=0(表示多项式hj(x)在x=0时的取值),且
Figure BDA0002352776030000035
(
Figure BDA0002352776030000036
表示多项式hj(x)在x=i时的取值);
(8)通过
Figure BDA0002352776030000037
去构建查找表Table-C, Table-C是一个n行n列的表,它的第i行第j列存储
Figure BDA0002352776030000038
的值;
(9)通过aiG,i=1,2,...,n(ai∈Zp,G是循环子群的生成元,是椭圆曲 线参数之一)去构建查找表Table-D,Table-D是一个n行1列的表, 的第i行存储aiG的值;
(10)计算公钥Q=(Interpolate(x1,...,xn))·G(Interpolate()表示拉格 朗日插值法);
(11)输出公钥Q,查找表Table-A,Table-B,Table-C,Table-D,算 法1执行完毕后,从内存中删除私钥d。
3.所述的椭圆曲线参数(Fq,M,N,p,G,Φ)和算法1的输出结果中的查找表Table-A, Table-B,Table-C,Table-D共同组成所述的签名参数。
4.将所述的签名参数和消息m作为算法2的输入,此后输出消息m的签名;算法 2的具体步骤如下所述:
算法2FWhitebox-ECDSA-Sign
(1)输入签名参数[Table-A,Table-B,Table-C,Table-D,(Fq,M,N,p,G,Φ)] 和消息m;
(2)随机从Zp中选取一个数tm(tm的下标m,表示由消息m唯一标识),计 算H(m||tm)(H是哈希函数,能将任意长度二进制序列哈希成一个n比 特的二进制序列,n是一个正整数);其中H(m||tm)是一个n比特的二 进制序列,且ε[l],l=1,2,...,n表示H(m||tm)的第l个比特;
(3)读取查找表Table-B,对于每一个确定的i(i是一个正整数且1≤i≤n),计 算中间变量
Figure BDA0002352776030000041
(j是一个正整数);
(4)读取查找表Table-D计算ξiaiG,i=1,2,...,n;(ξi表示拉格朗日系数);
(5)计算中间变量μ=Interpolate(v1,...,vn);
计算中间变量β=∑ξiaiG,i=1,2,...,n;
计算中间变量R=μ-1β=(rx,ry)(其中,ai∈Zp,G是循环子群的生成元, 是椭圆曲线参数之一;rx,ry表示点R的横坐标与纵坐标);
(6)计算签名的第一个分量r=rx mod p;
(7)读取查找表Table-A,对于每一个确定的i(1≤i≤n),计算
Figure BDA0002352776030000042
(ε[l],l=1,2,...,n表示H(m||tm)的第l个比特);
(8)读取查找表Table-C,对于每一个确定的i(1≤i≤n),计算中间结果
Figure BDA0002352776030000043
(ε[l],l=1,2,...,n表示 H(m||tm)的第l个比特);
(9)计算签名的第二个分量s=Interpolate(s1,...,sn)mod p;
(10)输出签名(r,s)。
5.所述的算法1中的输出的公钥Q和椭圆曲线参数(Fq,M,N,p,G,Φ)共同组成验证参数。此后采用验证参数对签名(r,s)进行验证。
6.将所述的验证参数作为算法3的输入,此后输出消息m的签名的验证结果 true/false;算法3的具体步骤如下所述:
算法3.FECDSA-Verify
(1)输入验证参数[公钥Q和椭圆曲线参数(Fq,M,N,p,G,Φ)];
(2)判断r,s(r表示签名的第一个分量,s表示签名的第二个分量)是否 在区间[1,p-1]中,如果是,则进行下一步;否则输出false;
(3)计算中间变量w=s-1mod p;
(4)计算中间变量μ1=mw mod p,μ2=rw mod p;
(5)计算中间变量R'=μ1G+μ2Q=(r'x,r'y)(其中r'x,r'y表示点R'的横坐标和纵坐标);
(6)判断R'是否是无穷远点或零点,如果是,则输出false。否则,计算中 间变量r'=r'xmod p;
(7)判断等式r=r'(r表示签名的第一个分量)是否成立,如果是,则输 出true;否则,输出false。
至此,整个方案的步骤结束。
与ECDSA标准实现方案相比,本发明的创新点如下所述:
(1)本发明结合了能够抵抗白盒攻击,在白盒攻击的环境下保护签名私 钥。
(2)考虑到部署在开放设备上的区块链会有遭受白盒攻击的风险,当设 备处于白盒攻击的环境下,攻击者能够观测程序的运行,以及读取 设备内存。上述行为都会对私钥的安全造成不可忽略的威胁,本发 明将私钥隐匿的分散于查找表中,攻击者在无法获取大于t行查找 表条目的情况下是无法对私钥进行破获。因此,本发明增强了了对 私钥的保护。
(3)本发明是一种抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签 名方案,因此在区块链中具有较好的应用价值。
附图说明
图1表示本发明的实施例1;
图2表示本发明的实施例2;
图3表示本发明的流程图;
图4表示本发明的签名参数和验证参数图;
图5表示本发明的查找表。
具体实施方式
所需要特别说明的是,实施例1与实施例2中选取的椭圆曲线为secp256k1, 原因在于该椭圆曲线常用于区块链中,选择其进行具体实施更具代表性。实施例1 表示本发明仅在两方(签名方和验证方)中的实施;实施例2表示本发明在区块 链网络中的实施。实施例1和实施例2的参数及对应参数值参见表1。
如图1所示,本发明实施例中由两方进行操作。这两方分别为签名方和验证 方。签名方执行算法1在本地生成所述的签名参数的查找表和所述的验证参数的 公钥,并将公钥发送给验证方;此后,签名方将签名参数(查找表和椭圆曲线 secp256k1参数)和消息作为算法2的输入,执行算法2生成消息的签名,并将签 名发送给验证方;验证方将椭圆曲线参数和签名方发送的公钥作为验证参数,执 行算法3,验证签名,输出验证结果true或false。
实施例1.具体步骤如下所述:
步骤1.签名方运行算法1,生成所述的签名参数的查找表Table-A,Table-B,Table-C,Table-D和所述的验证参数的公钥Q;
步骤2.签名方将消息m和签名参数(查找表Table-A,Table-B,Table-C,Table-D和椭圆曲线secp256k1参数(Fq,M,N,p,G,Φ)),输入算法2并执行。算法2执行 完毕后输出消息m的签名(r,s);
步骤3.签名方将签名(r,s)和公钥Q发送给验证方;
步骤4.验证方将验证参数(公钥Q和椭圆曲线secp256k1参数 (Fq,M,N,p,G,Φ))输入算法3并执行;最后输出消息m的签名的验证结果true/ false(本实施例结果为true);
实施例2.表示对部署在树莓派4上采用以太坊技术搭建的区块链进行签名测 试,具体步骤如下:
步骤1.采用geth[可以通过交互式控制台启动geth,该控制台提供了JavaScript运行时环境,该环境公开了JavaScript API以与以太坊中的节点进行交互]运行签名 方节点;生成一个账户A;签名方节点运行算法1,为账户A生成所述的签名参 数的查找表Table-A,Table-B,Table-C,Table-D和所述的验证参数的公钥Q;
步骤2.账户A将消息m作为输入,调用geth的JavaScript控制台提供的签名 方法personal.sign(m,A.name,A.password)[该方法中封装了算法2],采用签名参数 (查找表Table-A,Table-B,Table-C,Table-D和椭圆曲线secp256k1参数 (Fq,M,N,p,G,Φ))对消息m进行签名,并输出签名(r,s);
步骤3.签名方节点将公钥Q(可编码为地址)广播给区块链网络中的所有节 点(节点中包括验证方节点,且任何节点在需要时都可成为验证方节点),且将 签名(r,s)发送给验证方节点;
步骤4.验证方节点收到签名(r,s)及公钥Q后,将验证参数(公钥Q和椭圆曲 线secp256k1参数(Fq,M,N,p,G,Φ))输入算法3并执行;最后输出消息m的签名 的验证结果true/false(本实施例结果为true);
实施例1的性能测试结果说明参见表2,可以看出算法2的执行速度是较快的, 即使在价格低廉的嵌入式开发板(例如售价约300元的树莓派)上也可在1秒内 完成。
实施例2测试结果说明参见表3,可以看出在实际的区块链***中使用本方法 进行签名仅比使用标准ECDSA签名慢0.2秒左右,性能降低不超过10%,但是使用 本方法可以抵抗对区块链用户私钥的白盒攻击,比标准ECDSA签名在安全性方面 有显著提高。
表1.实施例1和实施例2参数-参数值
Figure BDA0002352776030000071
Figure BDA0002352776030000081
表2.实施例1测试结果说明
实施例测试时间指标 耗时(单位:秒)
F<sub>Whitebox-ECDSA-KeyGen</sub>执行时间 12.188
F<sub>Whitebox-ECDSA-Sign</sub>执行时间 0.44
表3.实施例2测试结果说明
Figure BDA0002352776030000091
表4.实施例测试环境
Figure BDA0002352776030000092
上述描述仅是对本申请较佳实施例的描述,并非是对本申请范围的任何限定。 任何熟悉该领域的普通技术人员根据上述揭示的技术内容做出的任何变更或修饰 均应当视为等同的有效实施例,均属于本申请技术方案保护的范围。

Claims (6)

1.抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案,其特征在于:存在签名方和验证方;签名方代表区块链中的签名方节点;验证方代表区块链网络中的验证方节点,任何节点在需要时均可成为验证方节点;签名方采用签名参数对消息进行签名,所述的签名参数由椭圆曲线参数和查找表组成;验证方采用验证参数对签名进行验证并输出验证结果true/false,所述的验证参数由公钥和椭圆曲线参数组成;所述的签名参数和所述的验证参数使用共同的椭圆曲线参数。
2.根据权利要求1中所述的数字签名方案,其特征在于:所述的签名参数的查找表和所述的验证参数的公钥通过算法1生成;算法1的具体步骤如下所述:
算法1.FWhitebox-ECDSA-KeyGen
(1)输入椭圆曲线参数(Fq,M,N,p,G,Φ);q是一个素数,Fq是特征为q的有限域;M,N是椭圆曲线方程y2=x3+Mx+N的参数且M,N∈Fq;p是一个素数;Φ是循环子群;G是循环子群的生成元,是椭圆曲线参数之一;
(2)p是一个素数,随机从模p的剩余类Zp中选取n2(n是一个正整数)个随机数
Figure FDA0002352776020000011
去构建查找表Table-A,Table-A是一个n行n列的表,它的第i行第j列存储
Figure FDA0002352776020000012
的值,其中i=1,2,...,n;j=1,2,...,n。对于任一确定的j而言,
Figure FDA0002352776020000013
(t表示安全参数,是一个正整数且
Figure FDA0002352776020000014
)能够定义一个确定的t阶多项式fj(x),其中
Figure FDA0002352776020000015
(
Figure FDA0002352776020000016
表示多项式fj(x)在x=i时的取值);
(3)随机从Zp选取n个随机数ai(i=1,2,...,n)(ai∈Zp),ai(i=1,2,...,t)可以定义一个确定的t阶多项式fa(x),记fa(0)=a(表示多项式fa(x)在x=0时的取值);且ai=fa(i),i=t+1,...,n(ai表示多项式fa(x)在x=i时的取值);
(4)随机从Zp选取n2个随机数
Figure FDA0002352776020000017
其中i=1,2,...,n;j=1,2,...,n;对于任一确定的j而言,
Figure FDA0002352776020000021
能够定义一个确定的2t阶多项式gj(x),其中gj(0)=0(表示多项式gj(x)在x=0时的取值),且
Figure FDA0002352776020000022
(
Figure FDA0002352776020000023
表示在多项式gj(x)在x=i时的取值);
(5)通过
Figure FDA0002352776020000024
ai,
Figure FDA0002352776020000025
去构建查找表Table-B,Table-B是一个n行n列的表,它的第i行第j列存储
Figure FDA0002352776020000026
的值;
(6)随机从Zp选取n个随机数xi(i=1,2,...,n)(xi∈Zp),其中xi(i=1,2,...,t)可以定义一个确定的t阶多项式fX(x),且fX(0)=d(表示多项式fX(x)在x=0时的取值,d表示私钥);且xi=fx(i),i=t+1,...,n(xi表示多项式fX(x)在x=i时的取值);
(7)随机从Zp选取n2个随机数
Figure FDA0002352776020000027
(其中i=1,2,...,n;j=1,2,...,n;),对于任一确定的j而言,
Figure FDA0002352776020000028
能够定义一个确定的2t阶多项式hj(x),其中hj(0)=0(表示多项式hj(x)在x=0时的取值),且
Figure FDA0002352776020000029
(
Figure FDA00023527760200000210
表示多项式hj(x)在x=i时的取值);
(8)通过
Figure FDA00023527760200000211
xi,
Figure FDA00023527760200000212
去构建查找表Table-C,Table-C是一个n行n列的表,它的第i行第j列存储
Figure FDA00023527760200000213
的值;
(9)通过aiG,i=1,2,...,n(ai∈Zp,G是循环子群的生成元,是椭圆曲线参数之一)去构建查找表Table-D,Table-D是一个n行1列的表,的第i行存储aiG的值;
(10)计算公钥Q=(Interpolate(x1,...,xn))·G(Interpolate()表示拉格朗日插值法);
(11)输出公钥Q,查找表Table-A,Table-B,Table-C,Table-D,算法1执行完毕后,从内存中删除私钥d。
3.根据权利要求2中所述的数字签名方案,其特征在于:所述的椭圆曲线参数(Fq,M,N,p,G,Φ)和算法1的输出结果中的查找表Table-A,Table-B,Table-C,Table-D共同组成所述的签名参数。
4.根据权利要求3所述的数字签名方案,其特征在于:将所述的签名参数和消息m作为算法2的输入,此后输出消息m的签名;算法2的具体步骤如下所述:
算法2FWhitebox-ECDSA-Sign
(1)输入签名参数[Table-A,Table-B,Table-C,Table-D,(Fq,M,N,p,G,Φ)]和消息m;
(2)随机从Zp中选取一个数tm(tm的下标m,表示由消息m唯一标识),计算H(m||tm)(H是哈希函数,能将任意长度二进制序列哈希成一个n比特的二进制序列,n是一个正整数);其中H(m||tm)是一个n比特的二进制序列,且ε[l],l=1,2,...,n表示H(m||tm)的第l个比特;
(3)读取查找表Table-B,对于每一个确定的i(i是一个正整数且1≤i≤n),计算中间变量
Figure FDA0002352776020000031
(j是一个正整数);
(4)读取查找表Table-D计算ξiaiG,i=1,2,...,n;(ξi表示拉格朗日系数);
(5)计算中间变量μ=Interpolate(v1,...,vn);
计算中间变量β=∑ξiaiG,i=1,2,...,n;
计算中间变量R=μ-1β=(rx,ry)(其中,ai∈Zp,G是循环子群的生成元,是椭圆曲线参数之一;rx,ry表示点R的横坐标与纵坐标);
(6)计算签名的第一个分量r=rx mod p;
(7)读取查找表Table-A,对于每一个确定的i(1≤i≤n),计算
Figure FDA0002352776020000032
(ε[l],l=1,2,...,n表示H(m||tm)的第l个比特);
(8)读取查找表Table-C,对于每一个确定的i(1≤i≤n),计算中间结果
Figure FDA0002352776020000033
(ε[l],l=1,2,...,n表示H(m||tm)的第l个比特);
(9)计算签名的第二个分量s=Interpolate(s1,...,sn)mod p;
(10)输出签名(r,s)。
5.根据权利要求4所述的数字签名方案,其特征在于:所述的算法1中的输出的公钥Q和椭圆曲线参数(Fq,M,N,p,G,Φ)共同组成验证参数。此后采用验证参数对签名(r,s)进行验证。
6.根据权利要求5所述的数字签名方案,其特征在于:将所述的验证参数作为算法3的输入,此后输出消息m的签名的验证结果true/false;算法3的具体步骤如下所述:
算法3.FECDSA-Verify
(1)输入验证参数[公钥Q和椭圆曲线参数(Fq,M,N,p,G,Φ)];
(2)判断r,s(r表示签名的第一个分量,s表示签名的第二个分量)是否在区间[1,p-1]中,如果是,则进行下一步;否则输出false;
(3)计算中间变量w=s-1 mod p;
(4)计算中间变量μ1=mw mod p,μ2=rw mod p;
(5)计算中间变量R'=μ1G+μ2Q=(r'x,r'y)(其中r'x,r'y表示点R'的横坐标和纵坐标);
(6)判断R'是否是无穷远点或零点,如果是,则输出false。否则,计算中间变量r'=r'xmod p;
(7)判断等式r=r'(r表示签名的第一个分量)是否成立,如果是,则输出true;否则,输出false。
CN201911422873.0A 2019-12-31 2019-12-31 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案 Active CN113132110B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911422873.0A CN113132110B (zh) 2019-12-31 2019-12-31 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911422873.0A CN113132110B (zh) 2019-12-31 2019-12-31 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案

Publications (2)

Publication Number Publication Date
CN113132110A true CN113132110A (zh) 2021-07-16
CN113132110B CN113132110B (zh) 2022-11-15

Family

ID=76769746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911422873.0A Active CN113132110B (zh) 2019-12-31 2019-12-31 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案

Country Status (1)

Country Link
CN (1) CN113132110B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115001709A (zh) * 2022-05-31 2022-09-02 赵瑞 适用于数字医疗数据的可信采集与隐私保护方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2587716A1 (fr) * 2011-10-28 2013-05-01 Logiways France Procédé de signature cryptographique de messages, procédé de vérification de signature et dispositifs de signature et de vérification correspondants
CN106612182A (zh) * 2016-12-22 2017-05-03 中国电子科技集团公司第三十研究所 一种基于余数***的sm2白盒数字签名实现方法
CN108259506A (zh) * 2018-02-08 2018-07-06 上海交通大学 Sm2白盒密码实现方法
CN109768866A (zh) * 2019-03-05 2019-05-17 同济大学 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法
CN110213048A (zh) * 2019-05-31 2019-09-06 武汉大学 一种轻量级sm2盲签名生成方法及***
CN110233733A (zh) * 2019-06-05 2019-09-13 同济大学 面向区块链智能合约的不可拆分数字签名通用构造方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2587716A1 (fr) * 2011-10-28 2013-05-01 Logiways France Procédé de signature cryptographique de messages, procédé de vérification de signature et dispositifs de signature et de vérification correspondants
CN106612182A (zh) * 2016-12-22 2017-05-03 中国电子科技集团公司第三十研究所 一种基于余数***的sm2白盒数字签名实现方法
CN108259506A (zh) * 2018-02-08 2018-07-06 上海交通大学 Sm2白盒密码实现方法
CN109768866A (zh) * 2019-03-05 2019-05-17 同济大学 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法
CN110213048A (zh) * 2019-05-31 2019-09-06 武汉大学 一种轻量级sm2盲签名生成方法及***
CN110233733A (zh) * 2019-06-05 2019-09-13 同济大学 面向区块链智能合约的不可拆分数字签名通用构造方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汪朝晖,张振峰: "SM2椭圆曲线公钥密码算法综述", 《信息安全研究》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115001709A (zh) * 2022-05-31 2022-09-02 赵瑞 适用于数字医疗数据的可信采集与隐私保护方法
CN115001709B (zh) * 2022-05-31 2024-03-12 赵瑞 适用于数字医疗数据的可信采集与隐私保护方法

Also Published As

Publication number Publication date
CN113132110B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
US10015019B2 (en) Production of cryptographic signatures
US10333718B2 (en) Method for the generation of a digital signature of a message, corresponding generation unit, electronic apparatus and computer program product
Yu et al. LRCoin: Leakage-resilient cryptocurrency based on bitcoin for data trading in IoT
US8667283B2 (en) Soft message signing
CN109639426B (zh) 一种基于标识密码的双向自认证方法
CN110932865B (zh) 一种基于sm2数字签名算法的可链接环签名生成方法
CN105978695A (zh) 一种用于云存储数据的批量自审计方法
CN104320259B (zh) 基于Schnorr签名算法的无证书签名方法
CN112532394B (zh) 一种区块链抗签名可追踪的无证书盲签名生成方法
Soewito et al. IoT security system with modified Zero Knowledge Proof algorithm for authentication
CN111262704A (zh) Sm9数字签名生成方法、装置、计算机设备和存储介质
JP5109976B2 (ja) 電子署名システムおよび電子署名検証方法
Dharminder et al. Security analysis and application of Chebyshev Chaotic map in the authentication protocols
CN110034936B (zh) 一种可刺穿的数字签名方法
CN113132110B (zh) 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案
CN110233733A (zh) 面向区块链智能合约的不可拆分数字签名通用构造方法
Boudgoust et al. Overfull: Too large aggregate signatures based on lattices
Xiong et al. A secure and efficient certificateless batch verification scheme with invalid signature identification for the internet of things
CN111245615B (zh) 一种基于身份的数字签名密码逆向防火墙方法
Zhou et al. White‐Box Implementation of ECDSA Based on the Cloud Plus Side Mode
Farash et al. A provably secure and efficient two‐party password‐based explicit authenticated key exchange protocol resistance to password guessing attacks
CN113507366B (zh) 一种基于格的可搜索日志盲签名方案
Yang et al. Strongly Unforgeable Certificateless Signature Resisting Attacks from Malicious‐But‐Passive KGC
KR20210061194A (ko) 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치
Krzywiecki et al. Deniable key establishment resistance against eKCI attacks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant