CN112131616B - 一种sm2算法的掩码运算方法及装置 - Google Patents

一种sm2算法的掩码运算方法及装置 Download PDF

Info

Publication number
CN112131616B
CN112131616B CN202010968059.5A CN202010968059A CN112131616B CN 112131616 B CN112131616 B CN 112131616B CN 202010968059 A CN202010968059 A CN 202010968059A CN 112131616 B CN112131616 B CN 112131616B
Authority
CN
China
Prior art keywords
point
random number
module
generating
verification
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.)
Active
Application number
CN202010968059.5A
Other languages
English (en)
Other versions
CN112131616A (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.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean 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 Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202010968059.5A priority Critical patent/CN112131616B/zh
Publication of CN112131616A publication Critical patent/CN112131616A/zh
Application granted granted Critical
Publication of CN112131616B publication Critical patent/CN112131616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于SM2密码算法技术领域,具体涉及一种SM2算法的掩码运算方法及装置,掩码运算方法是通过预置点和随机数的方式将进行[k]G运算中的随机数k进行掩盖,SM2算法运算过程中[k]G计算具体包括:在芯片内部预置点P0=[n‑r]G和第一随机数r;P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;在芯片内部生成第二随机数d,计算生成点P1=[d]G;通过第一随机数r和第二随机数d计算生成第三随机数k=d‑r;计算生成点P2=[k]G=[d‑r]G=[d]G‑[r]G=[d]G+[n‑r]G=P0+P1,本发明掩码运算装置包括预置模块、随机数生成模块、随机数运算模块和点乘运算模块、点加运算模块;能增强真实参数信息k和功耗分析获取信息的破解难度,有效应对功耗分析攻击。

Description

一种SM2算法的掩码运算方法及装置
技术领域
本发明属于SM2密码算法技术领域,具体涉及一种安全性高、计算量小、处理速度快的SM2算法的掩码运算方法及装置。
背景技术
随着密码技术和计算技术的不断发展,目前常用的1024位公钥密码算法RSA面临严重威胁,由于SM2算法安全性高、计算量小、处理速度快等优势,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线密码算法替换RSA算法。相对于RSA算法,在达到相同的安全强度前提下,SM2算法所需要的密钥长度更短,硬件实现更为简单。
SM2密码算法在理论上是十分安全的,但是在实现过程中要考虑到近些年新兴起的密码分析手段,在众多攻击方法中,利用时间、功耗等旁路信息获取密码设备的相关密钥信息的旁路攻击方式对密码芯片的安全造成了严重的威胁,其中功耗分析攻击最具威胁性和最有效的攻击方式,特别是对于安全芯片等硬件加密设备中加密算法的实现,因为功耗在密码设备加密过程中是主要的旁路泄露信息。对于不同的操作,密码设备会出现不同的能量消耗,从而攻击者可以从中判断出其中以什么样的顺序进行了什么样的操作。DPA是一种对密码芯片泄露的功耗信息进行统计分析从而恢复出密钥的攻击方法。因此如何设计一种SM2算法的掩码运算方法,能够将SM2算法过程中的真实参数信息进行掩码,增强真实参数信息和功耗分析获取信息的破解难度,有效应对功耗分析攻击是目前急需解决的问题。
发明内容
本发明的目的在于克服现有技术中存在的不足而提供一种采用预置点和随机数的方式能够将SM2算法过程中的真实参数信息进行掩码,增强真实参数信息和功耗分析获取信息的破解难度,有效应对功耗分析攻击的SM2算法的掩码运算方法及装置。
本发明第一方面提出一种SM2算法的掩码运算方法,所述掩码运算方法是通过预置点和随机数的方式将进行[k]G运算中的随机数k进行掩盖,SM2算法运算过程中[k]G计算具体包括:
在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
在芯片内部生成第二随机数d,计算生成点P1=[d]G;
通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
计算生成点P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
进一步的,在计算生成点P2之后还包括坐标系的转换,具体包括:
将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2),再将点P2转换至仿射坐标系下P2=(x,y)。
进一步的,在计算生成点P2之后还包括点P2的验证和输出,具体包括:
验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功,输出点P2=[k]G=(x,y);否则验证失败,输出错误标识。
进一步的,在验证点P2之后还包括预置点P0和第一随机数r的更新,具体包括:
获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
进一步的,在获取到计算生成的点P2=[k]G=(x,y)和第三随机数k之后,获取SM2算法的签名值过程具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
本发明第二方面还提出一种SM2算法的掩码运算装置,所述掩码运算装置包括:预置模块、随机数生成模块、随机数运算模块和点乘运算模块、点加运算模块;
所述预置模块,用于在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
所述随机数生成模块,用于在芯片内部生成第二随机数d;
所述点乘运算模块,用于计算生成点P1=[d]G;
所述随机数运算模块,用于通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
所述点加运算模块,用于计算生成点
P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
进一步的,所述掩码运算装置还包括坐标转换模块;
所述坐标转换模块,用于将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
所述点加运算模块,还用于计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2);
所述坐标转换模块,还用于将点P2转换至仿射坐标系下P2=(x,y)。
进一步的,所述掩码运算装置还包括点验证模块和输出模块;
所述点验证模块,用于验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功;否则验证失败;
所述输出模块,用于在所述点验证模块验证成功时,输出点P2=[k]G=(x,y);在验证失败时,输出错误标识。
进一步的,所述掩码运算装置还包括更新模块;
所述更新模块,用于获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
进一步的,所述掩码运算装置还包括签名生成模块;
所述签名生成模块,用于调用预置模块、随机数生成模块、随机数运算模块、点乘运算模块、点加运算模块、坐标转换模块、点验证模块和输出模块,获取到计算生成的点P2=[k]G=(x,y)和第三随机数k后,再通过所述点P2和第三随机数k进行签名值的生成;
所述签名值的生成具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
本发明具有突出的实质性特点和显著的进步,具体的说:在椭圆曲线密码体系中,SM2算法涉及的加密、签名等过程均是以椭圆曲线上的点乘运算P=[k]G为基础来实现的,因此k的安全性至关重要;本发明通过在芯片内部预置点P0=[n-r]G和第一随机数r;在芯片内部生成第二随机数d,计算生成点P1=[d]G;通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;计算生成点P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1;使得[k]G的运算由预置点P0和计算生成的点P2共同计算生成,即使第二随机数d被破解,但是第一随机数r是预置的,所以r不会被破解,增加了k的破解难度,破坏了真实k信息和功耗曲线之间的相关性,给功耗分析获取信息增加了相应的难度,达到抵御功耗分析的目的,从而起到很好的抗功耗攻击作用;此外,通过对预置点P0和第一随机数r的更新机制,使得点P0和第一随机数r的信息是动态变化的,从而增强k的破解难度,有效抵御功耗分析攻击。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种SM2算法的掩码运算方法流程图。
图2示出本发明一种SM2算法的掩码运算装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
如图1所示,本发明第一方面提出一种SM2算法的掩码运算方法,所述掩码运算方法是通过预置点和随机数的方式将进行[k]G运算中的随机数k进行掩盖,SM2算法运算过程中[k]G计算具体包括:
在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
在芯片内部生成第二随机数d,计算生成点P1=[d]G;
通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
计算生成点P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
具体的,在计算生成点P2之后还包括坐标系的转换,具体包括:
将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2),再将点P2转换至仿射坐标系下P2=(x,y)。
具体的,在计算生成点P2之后还包括点P2的验证和输出,具体包括:
验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功,输出点P2=[k]G=(x,y);否则验证失败,输出错误标识。
具体的,在验证点P2之后还包括预置点P0和第一随机数r的更新,具体包括:
获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
需要说明的是,预置点P0和第一随机数r在进行SM2算法的运算过程中是动态更新的,不会预置一次就不变化,能够有效增强预置点P0和第一随机数r的破解难度。
具体的,在获取到计算生成的点P2=[k]G=(x,y)和第三随机数k之后,获取SM2算法的签名值过程具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
需要说明的是,椭圆曲线密码体系中,加解密、签名和验签等操作均是以点乘运算[k]G为基础实现的,以签名过程为例,通常SM2签名的具体实现过程为:
M为待签名消息,数字签名结果为(r,s),用户密钥对(d,P)。
实现步骤:
步骤1)、e=hash(M)//获取消息散列值;
步骤2)、产生随机数k//以便即使是同一个消息,每次签名出来的结果不同;
步骤3)、使用随机数,计算椭圆曲线点(x,y)=[k]G;
步骤4)、r=(e+x)mod n//判断:r=0或者r+k=n,继续步骤2);
步骤5)、s=((1+dA)-1*(k-r*dA))mod n,若s=0,继续步骤2);
步骤6)、r,s为签名信息。
本发明签名过程中涉及的第三随机数k的值为d-r,[k]G=[d-r]G,因此k和[k]G的值是随机变化的,由于r是预置的,很难被破解,所以增强了k和[k]G的破解难度,从而也有效提升了签名过程的安全性,防止功耗攻击。
如图2所示,本发明第二方面还提出一种SM2算法的掩码运算装置,所述掩码运算装置包括:预置模块、随机数生成模块、随机数运算模块和点乘运算模块、点加运算模块;
所述预置模块,用于在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
所述随机数生成模块,用于在芯片内部生成第二随机数d;
所述点乘运算模块,用于计算生成点P1=[d]G;
所述随机数运算模块,用于通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
所述点加运算模块,用于计算生成点
P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
具体的,所述掩码运算装置还包括坐标转换模块;
所述坐标转换模块,用于将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
所述点加运算模块,还用于计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2);
所述坐标转换模块,还用于将点P2转换至仿射坐标系下P2=(x,y)。
具体的,所述掩码运算装置还包括点验证模块和输出模块;
所述点验证模块,用于验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功;否则验证失败。
所述输出模块,用于在所述点验证模块验证成功时,输出点P2=[k]G=(x,y);在验证失败时,输出错误标识。
具体的,所述掩码运算装置还包括更新模块;
所述更新模块,用于获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
具体的,所述掩码运算装置还包括签名生成模块;
所述签名生成模块,用于调用预置模块、随机数生成模块、随机数运算模块、点乘运算模块、点加运算模块、坐标转换模块、点验证模块和输出模块,获取到计算生成的点P2=[k]G=(x,y)和第三随机数k后,再通过所述点P2和第三随机数k进行签名值的生成;
所述签名值的生成具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
在椭圆曲线密码体系中,SM2算法涉及的加密、签名等过程均是以椭圆曲线上的点乘运算P=[k]G为基础来实现的,因此k的安全性至关重要;本发明通过在芯片内部预置点P0=[n-r]G和第一随机数r;在芯片内部生成第二随机数d,计算生成点P1=[d]G;通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;计算生成点P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1;使得[k]G的运算由预置点P0和计算生成的点P2共同计算生成,即使第二随机数d被破解,但是第一随机数r是预置的,所以r不会被破解,增加了k的破解难度,破坏了真实k信息和功耗曲线之间的相关性,给功耗分析获取信息增加了相应的难度,达到抵御功耗分析的目的,从而起到很好的抗功耗攻击作用;此外,通过对预置点P0和第一随机数r的更新机制,使得点P0和第一随机数r的信息是动态变化的,从而增强k的破解难度,有效抵御功耗分析攻击。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种SM2算法的掩码运算方法,其特征在于,所述掩码运算方法是通过预置点和随机数的方式将进行[k]G运算中的随机数k进行掩盖,SM2算法运算过程中[k]G计算具体包括:
在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
在芯片内部生成第二随机数d,计算生成点P1=[d]G;
通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
计算生成点P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
2.根据权利要求1所述的掩码运算方法,其特征在于,在计算生成点P2之后还包括坐标系的转换,具体包括:
将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2),再将点P2转换至仿射坐标系下P2=(x,y)。
3.根据权利要求2所述的掩码运算方法,其特征在于,在计算生成点P2之后还包括点P2的验证和输出,具体包括:
验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功,输出点P2=[k]G=(x,y);否则验证失败,输出错误标识。
4.根据权利要求3所述的掩码运算方法,其特征在于,在验证点P2之后还包括预置点P0和第一随机数r的更新,具体包括:
获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
5.根据权利要求4所述的掩码运算方法,其特征在于,在获取到计算生成的点P2=[k]G=(x,y)和随机数k之后,获取SM2算法的签名值过程具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和生成点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
6.一种SM2算法的掩码运算装置,其特征在于,所述掩码运算装置包括:预置模块、随机数生成模块、随机数运算模块和点乘运算模块、点加运算模块;
所述预置模块,用于在芯片内部预置点P0=[n-r]G和第一随机数r;其中,P0为有限域椭圆曲线上的点,n为椭圆曲线的阶数,G为椭圆曲线上的基点;
所述随机数生成模块,用于在芯片内部生成第二随机数d;
所述点乘运算模块,用于计算生成点P1=[d]G;
所述随机数运算模块,用于通过第一随机数r和第二随机数d计算生成第三随机数k=d-r;
所述点加运算模块,用于计算生成点
P2=[k]G=[d-r]G=[d]G-[r]G=[d]G+[n-r]G=P0+P1。
7.根据权利要求6所述的掩码运算装置,其特征在于,所述掩码运算装置还包括坐标转换模块;
所述坐标转换模块,用于将点P0和P1从仿射坐标系转换为雅可比坐标系下,P0=(x0,y0,z0),P1=(x1,y1,z1);
所述点加运算模块,还用于计算点P2=P0+P1=(x0,y0,z0)+(x1,y1,z1)=(x2,y2,z2);
所述坐标转换模块,还用于将点P2转换至仿射坐标系下P2=(x,y)。
8.根据权利要求6所述的掩码运算装置,其特征在于,所述掩码运算装置还包括点验证模块和输出模块;
所述点验证模块,用于验证点P2是否在椭圆曲线上:若y2=x3+ax+b,则验证成功;否则验证失败;
所述输出模块,用于在所述点验证模块验证成功时,输出点P2=[k]G=(x,y);在验证失败时,输出错误标识。
9.根据权利要求6所述的掩码运算装置,其特征在于,所述掩码运算装置还包括更新模块;
所述更新模块,用于获取1比特第四随机数b,更新第一随机数r=(-1)b·2r,点P0=[n-r]G=(-1)b·2·[n-r]G。
10.根据权利要求6-9之一所述的掩码运算装置,其特征在于,所述掩码运算装置还包括签名生成模块;
所述签名生成模块,用于调用预置模块、随机数生成模块、随机数运算模块、点乘运算模块、点加运算模块、坐标转换模块、点验证模块和输出模块,获取到计算生成的点P2=[k]G=(x,y)和第三随机数k后,再通过所述点P2和第三随机数k进行签名值的生成;
所述签名值的生成具体包括:
将x的数据类型转换成整数,计算r’=(e+x)modn,若r’=0或r’+k=n,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
计算s’=(1+dA)-1·(k-r·dA)modn,若s’=0,则输出错误标识,并返回重新计算生成第三随机数k和点P2;
将获得的r’、s’的数据类型转换为字符串,消息的签名值为(r’,s’);
其中,e为消息经过哈希计算后的值,dA为私钥。
CN202010968059.5A 2020-09-15 2020-09-15 一种sm2算法的掩码运算方法及装置 Active CN112131616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010968059.5A CN112131616B (zh) 2020-09-15 2020-09-15 一种sm2算法的掩码运算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010968059.5A CN112131616B (zh) 2020-09-15 2020-09-15 一种sm2算法的掩码运算方法及装置

Publications (2)

Publication Number Publication Date
CN112131616A CN112131616A (zh) 2020-12-25
CN112131616B true CN112131616B (zh) 2022-02-18

Family

ID=73846165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010968059.5A Active CN112131616B (zh) 2020-09-15 2020-09-15 一种sm2算法的掩码运算方法及装置

Country Status (1)

Country Link
CN (1) CN112131616B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103944714A (zh) * 2014-04-26 2014-07-23 胡建国 基于ecc实现抗dpa攻击的标量乘算法的方法及装置
CN104917608A (zh) * 2015-05-19 2015-09-16 清华大学 一种密钥抗功耗攻击的方法
CN105610583A (zh) * 2014-11-04 2016-05-25 上海华虹集成电路有限责任公司 用于抵御错误曲线攻击的ecdsa方法
CN106100844A (zh) * 2016-05-24 2016-11-09 天津大学 基于点盲化方法的优化自动双线性对加密方法及装置
US9584320B1 (en) * 2014-12-23 2017-02-28 EMC IP Holding Company LLC Blinding function in elliptic curve cryptography
CN107204856A (zh) * 2017-08-01 2017-09-26 北京智慧云测科技有限公司 一种检测椭圆曲线算法漏洞的方法及装置
CN108039947A (zh) * 2017-12-05 2018-05-15 飞天诚信科技股份有限公司 一种利用协处理器抗攻击的sm2签名方法
CN109582284A (zh) * 2018-11-16 2019-04-05 大唐微电子技术有限公司 一种芯片中的标量乘实现方法及装置、计算机可读存储介质
CN110611559A (zh) * 2019-08-21 2019-12-24 广东工业大学 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103944714A (zh) * 2014-04-26 2014-07-23 胡建国 基于ecc实现抗dpa攻击的标量乘算法的方法及装置
CN105610583A (zh) * 2014-11-04 2016-05-25 上海华虹集成电路有限责任公司 用于抵御错误曲线攻击的ecdsa方法
US9584320B1 (en) * 2014-12-23 2017-02-28 EMC IP Holding Company LLC Blinding function in elliptic curve cryptography
CN104917608A (zh) * 2015-05-19 2015-09-16 清华大学 一种密钥抗功耗攻击的方法
CN106100844A (zh) * 2016-05-24 2016-11-09 天津大学 基于点盲化方法的优化自动双线性对加密方法及装置
CN107204856A (zh) * 2017-08-01 2017-09-26 北京智慧云测科技有限公司 一种检测椭圆曲线算法漏洞的方法及装置
CN108039947A (zh) * 2017-12-05 2018-05-15 飞天诚信科技股份有限公司 一种利用协处理器抗攻击的sm2签名方法
CN109582284A (zh) * 2018-11-16 2019-04-05 大唐微电子技术有限公司 一种芯片中的标量乘实现方法及装置、计算机可读存储介质
CN110611559A (zh) * 2019-08-21 2019-12-24 广东工业大学 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《椭圆曲线密码中抗功耗分析攻击的标量乘改进方案》;张友桥 等;《计算机工程与科学》;20140430;第36卷(第4期);第644-648页 *
A 521-bit dual-field elliptic curve cryptographic processor with power analysis resistance;Jen-Wei Lee 等;《2010 Proceedings of ESSCIRC》;20101104;第206-209页 *

Also Published As

Publication number Publication date
CN112131616A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
Mironov Hash functions: Theory, attacks, and applications
CN107147488A (zh) 一种基于sm2加解密算法的签名验签系统和方法
CN108667623B (zh) 一种sm2椭圆曲线签名验证算法
EP1050133B2 (en) Leak-resistant cryptographic method and apparatus
CA2838675C (en) Implicitly certified digital signatures
JP7123959B2 (ja) 楕円曲線点乗算デバイス及び方法
US20160352525A1 (en) Signature protocol
CN108259506B (zh) Sm2白盒密码实现方法
CN112422288B (zh) 一种抗能量分析攻击的基于sm2算法的两方协同签名方法
CN107911217B (zh) 基于ecdsa算法协同生成签名的方法、装置和数据处理系统
EP1714420A4 (en) ONE-SIDED AUTHENTICATION
CN110601822A (zh) 一种基于量子保密通信技术的加密盲签名方法
JP5174826B2 (ja) 圧縮されたecdsa署名
CN111447065A (zh) 一种主动安全的sm2数字签名两方生成方法
CN114448641A (zh) 一种隐私加密方法、电子设备、存储介质以及芯片
CN110990814A (zh) 一种可信数字身份认证方法、系统、设备及介质
CN112131616B (zh) 一种sm2算法的掩码运算方法及装置
CN112131613B (zh) 一种针对sm2算法的掩码运算方法及装置
CN113784342B (zh) 一种基于物联网终端的加密通讯方法及系统
CN112511310B (zh) 一种加密身份盲签名的混淆方法
Ahirwal et al. Signcryption scheme that utilizes elliptic curve for both encryption and signature generation
WO2021206727A1 (en) Neural networks
CN111723405A (zh) 一种去中心化的多重数字签名/电子签章方法
JP2000509521A (ja) 暗号システムのセキュリティを検証するために過渡的な障害を使用する方法
CN115134120B (zh) 一种ecc结合opt的加密方法

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