CN109067554A - 抗注入攻击的签名方法、装置、移动终端及存储介质 - Google Patents
抗注入攻击的签名方法、装置、移动终端及存储介质 Download PDFInfo
- Publication number
- CN109067554A CN109067554A CN201811289633.3A CN201811289633A CN109067554A CN 109067554 A CN109067554 A CN 109067554A CN 201811289633 A CN201811289633 A CN 201811289633A CN 109067554 A CN109067554 A CN 109067554A
- Authority
- CN
- China
- Prior art keywords
- elliptic curve
- digital signature
- coordinate
- parameter
- indicates
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种抗注入攻击的签名方法,以解决数字签名过程中,随机数遭遇注入错误攻击,使得随机数的某一比特被修改掉,从而导致无法通过判断椭圆曲线点是否在椭圆曲线上的方法,进而确定数字签名过程中数字签名是否遭到注入错误攻击的问题。方法包括:根据第一参数计算待签名消息的数字签名值;根据所述数字签名值与所述第一参数构造临时变量;根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;根据椭圆曲线标量乘法运算以及椭圆曲线基点坐标,确定第二坐标点;若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。本发明还公开一种抗注入攻击的签名装置、移动终端及计算机可读存储介质。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种抗注入攻击的签名方法、装置、移动终端及计算机可读存储介质。
背景技术
数字签名是一种基本的信息安全技术,在身份认证、数据完整性、不可否认性以及匿名性等方面有重要的作用,特别是在网络安全通信中的密钥分配以及认证等方面有着重要影响。所谓数字签名是指在原有的数据单元上附加一些数据或者是对数据单元作密码变换。然而,现有技术中,在数字签名过程中,攻击者会在密码芯片设备中注入错误攻击,导致密码设备产生错误结果,从而通过错误结果进行分析得到密钥,破坏数据的安全性。
其中,注入错误攻击是指攻击者在密码芯片设备中引入错误,引入错误例如可以是通过扰乱外部电压或者外部时钟使设备失灵;可以是通过改变外部的温度扰乱密码设备的正常运行,也可以是通过激光照射、电磁攻击导致密码设备产生错误结果,或者将用于进行数字签名的椭圆曲线修改成一类弱椭圆曲线、将用于进行数字签名的随机数的某一比特修改掉,导致生成一个错误签名。由于攻击者可以通过分析错误签名得到密钥,从而会破坏数据的安全性。
当前,如何判断用于进行数字签名的随机数是否遭到攻击,进而避免攻击者通过分析错误签名得到密钥,是亟需解决的技术问题。
发明内容
本发明实施例提供一种抗注入攻击的签名方法,用于解决现有技术存在的如何判断用于进行数字签名的随机数是否遭到攻击的问题。
本发明实施例还提供一种抗注入攻击的签名装置,一种移动终端,以及一种计算机可读存储介质。
本发明实施例采用下述技术方案:
一种抗注入攻击的签名方法,包括:
根据第一参数计算待签名消息的数字签名值;
根据所述数字签名值与所述第一参数构造临时变量;
根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;
根据椭圆曲线标量乘法运算以及椭圆曲线基点坐标,确定第二坐标点;
若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
一种抗注入攻击的签名装置,包括第一模块、计算模块、构造模块、第二模块和判断模块,其中:
计算模块,用于根据第一参数计算待签名消息的数字签名值;
构造模块,用于根据所述数字签名值与所述第一参数构造临时变量;
第一模块,用于根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;
第二模块,用于根据椭圆曲线标量乘法运算对第一参数以及椭圆曲线基点坐标进行计算,确定第二坐标点;
判断模块,用于若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
一种移动终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的抗注入攻击的签名方法的步骤。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的抗注入攻击的签名方法的步骤。
本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:
由于第一坐标点与所述第二坐标点一致,表明数字签名过程中,用于进行数字签名的随机数没有遭遇注入错误攻击,因此即使数字签名过程中随机数遭遇注入错误攻击,导致随机数的某一比特被修改掉,采用本发明实施例提供的方法,也仍然可以确定数字签名过程中数字签名是否遭到注入错误,从而解决了现有技术在该情况下不能准确判断出数字签名是否遭遇注入错误攻击的问题。此外,采用本发明实施例提供的方法,由于只有确定数字签名没有遭受到注入错误攻击才会输出数字签名值,因此,还可以有效抵御注入错误攻击。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的一种抗注入攻击的签名方法的实现流程示意图;
图2为本发明实施例提供的根据第一参数计算待签名消息的数字签名值的实现流程示意图;
图3为本发明实施例提供的一种确定用于进行数字签名的第一参数的实现流程示意图;
图4为本发明实施例提供的一种确定第二坐标的方法实现流程示意图;
图5为本发明实施例提供一种抗注入攻击的签名装置的具体结构示意图;
图5a为本发明实施例提供一种抗注入攻击的签名装置的计算模块的具体结构示意图;
图5b为本发明实施例提供一种抗注入攻击的签名装置的第二模块的具体结构示意图;
图6为本发明实施例提供的一种移动终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明各实施例提供的技术方案。
为解决现有技术中由于数字签名过程中,随机数遭遇注入错误攻击,使得随机数的某一比特被修改掉,从而导致无法通过判断椭圆曲线点是否在椭圆曲线上的方法,进而确定数字签名过程中数字签名是否遭到注入错误攻击的问题,本发明实施例提供一种抗注入攻击的签名方法。
该方法的执行主体,可以是各种类型的计算设备,或者,可以是安装于计算设备上的应用程序或应用(Application,APP)。所述的计算设备,比如可以是手机、平板电脑、智能可穿戴设备等用户终端,也可以是服务器等。
为便于描述,本发明实施例以该方法的执行主体为具备视频播放功能的新闻客户端为例,对该方法进行介绍。本领域技术人员可以理解,本发明实施例以该新闻客户端为例对方法进行介绍,仅是一种示例性说明,并不对本方案对应的权利要求保护范围构成限制。
具体地,本发明实施例提供的该方法的实现流程如图1所示,包括如下步骤:
步骤11,根据第一参数计算待签名消息的数字签名值;
本发明提供的一个或多个实施例中,为了便于更好的理解本申请的技术特征、手段和效果,具体地,本发明实施例提供的根据第一参数计算待签名消息的数字签名值的实现流程,如下图2所示,包括如下步骤:
步骤21,根据以下公式[1]计算待签名消息的哈希值:
e=h(m) [1]
其中,m表示待签名消息,h(m)表示对待签名消息计算哈希值;
步骤22,根据以下公式[2]计算待签名消息的结果s’:
s’=rd+ke modn [2]
其中,d表示数字签名的私钥,r表示用于进行数字签名的中间参数,k表示用于进行所述数字签名的第一参数,n表示所述椭圆曲线的阶;
步骤23,当所述结果s’不为0时,将所述结果s’确定为数字签名值s。
需要说明的是,之所以优先选取结果不为0的s’作为数字签名值s,首先是为了避免构造的临时变量过于简单;其次,优先选取结果不为0的s’作为数字签名值s是为了使数字签名结果更安全,若直接将待签名消息结果为0的值确定为数字签名值,那么攻击者将会很轻易的获取到数字签名值。所以计算过程中一般选取结果非零的值作为数字签名结果。
本发明提供的一个或多个实施例中,根据第一参数,计算待签名消息的数字签名值之前,所述方法还包括确定用于进行数字签名的第一参数,确定第一参数的方法的实现流程如图3所示,具体可以包括如下步骤:
循环执行下述操作,直至判定r=0不成立时终止循环执行下述操作,将使得r=0不成立的随机数k0确定为所述第一参数:
步骤31,随机生成随机数k0;
其中,随机数k0的取值范围、生成方法以及数据长度均不做限定,比如,对于随机数k0的数据长度,可以根据具体的实际需求进行设定,例如,为了提高数据签名的安全性,可以优先选取数据长度较长的随机数k0,假设在三组数据长度分别为256比特、128比特、64比特的数据中,可以优先选取数据长度为256比特的数据作为随机数k0。再例如,为了降低计算过程中的复杂程度,可以优先选取数据长度相对短一些的数据,沿用上例,在以上三组数据中,则可以优先选取数据长度为64比特或者128比特的数据作为随机数k0。
步骤32,根据所述随机数k0计算椭圆曲线点的横坐标x1;
根据所述随机数k0按照以下公式[3]计算椭圆曲线点的横坐标x1:
(x1,y1)=[k0]G [3]
其中,G为椭圆曲线的基点坐标,x1为椭圆曲线点的横坐标,y1为椭圆曲线点的纵坐标,[k0]G表示k0与G相乘;椭圆曲线点可以是椭圆曲线上的任意一个随机有效点。
比如,若假设椭圆曲线基点G的坐标为(x2,y2),随机数为k0,则椭圆曲线点的坐标(x1,y1)=(k0x2,k0y2)。
步骤33,根据以下公式[4]计算用于数字签名的中间参数;
r=x1mod n [4]
其中,n表示椭圆曲线的阶,r表示用于进行数字签名的中间参数;
需要说明的是,r=x1mod n表示对椭圆曲线点的横坐标值x1进行取模运算,即获取x1除以n的余数的过程,计算得到的余数表示用于进行数字签名的中间参数。比如,设x1为11,n为3,则x1mod n=11mod 3=2。
步骤34,判断r=0是否成立。
执行完上述步骤后,将满足条件的随机数k0确定为用于进行数字签名的第一参数k。
其中,本发明实施例中用k表示用于进行数字签名的第一参数,且k∈[1,n-1],n表示椭圆曲线上的阶。需要说明的是,所述第一参数是根据随机数k0确定的,在本申请实施例中仅对第一参数k的取值范围进行限定,而对所述第一参数的生成方式不作限定,生成方式比如可以是直接由随机数机随机生成,也可以通过数学方法生成,其中用数学方法生成随机数的方法又可以分为多种,例如,混合同余法、均匀分布法、正态分布法、对数正态分布法等。
步骤12,根据所述数字签名值与所述第一参数构造临时变量;
具体地,根据所述数字签名值与所述第一参数按照以下公式[5]构造临时变量l:
l=(r+s)-1(k-s)mod n [5]
其中,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶,k表示所述第一参数,s表示所述数字签名值。
需要说明的是,本申请中关于临时变量l的构造方式不做限定,所述临时变量比如可以是关于第一参数的函数,还可以是关于数字签名值、中间参数的隐函数,因为数字签名值与中间参数都与第一参数有关。
现有技术中,判断数字签名过程是否遭到注入错误攻击,通常通过判断椭圆曲线点是否在椭圆曲线上的方法(即通过验证数字签名过程中通过第一参数与椭圆曲线基点计算得到的椭圆曲线点是否在椭圆曲线上),进而确定数字签名过程中数字签名是否遭到注入错误攻击,这种方法仅可以判断数字签名过程中的一般参数(除私钥、随机数以外的参数)是否遭遇注入错误攻击,然而,实际数字签名过程中,计算椭圆曲线点时,若随机数遭遇注入错误攻击,导致随机数的某一比特被修改掉,如此情况下,当第一参数遭遇注入错误攻击后,相当于生成了一个新的随机数,因此,按修改后的随机数计算出的椭圆曲线点仍然在椭圆曲线上。这种情况下,若通过现有技术中,判断椭圆曲线点是否在椭圆曲线上,进而确定数字签名过程中数字签名是否遭到注入错误攻击的方法,则不能准确判断出数字签名是否遭遇注入错误攻击。
然而,本发明中先构造一个临时变量,接着根据临时变量与椭圆曲线的基点得到一个新的坐标点,然后通过椭圆曲线标量乘法预先确定一个与第以参数无关的点,通过比较这两个坐标点是否一致,进而判断数字签名是否遭遇注入错误攻击,解决了现有技术中若随机数遭遇攻击则不能准确判断出数字签名是否遭遇注入错误攻击的问题。此外,由于第一坐标点与第二坐标点都与第一参数有关,所以第一坐标点与第二坐标点都是随机的,随机性比较大,不容易被攻击者获取,因此,提高了数字签名的准确性。
步骤13,根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;
根据所述临时变量与椭圆曲线基点坐标按照如下公式[6]确定第一坐标点:
(x,y)=[l]G [6]
其中,(x,y)表示所述第一坐标点,[l]G表示对所述临时变量l和所述椭圆曲线基点G作点乘。
本发明中根据椭圆曲线基点与临时变量确定一个坐标点(x,y),由于l是关于第一参数的函数,因此,即使第一参数遭到攻击,对于坐标点(x,y)也并不影响,且本发明中是用第一坐标点与一个确定的点进行比较,因为有一个确定点作为标尺,避免了现有技术中只用一个不确定的点进行判断的随机性以及不准确性。
步骤14,根据椭圆曲线标量乘法运算对第一参数以及椭圆曲线基点坐标进行计算,确定第二坐标点;
具体地,假设用字母Q表示所述第二坐标点,在本申请实施例中,通常可以采用椭圆曲线标量乘法来确定第二坐标点,其中,椭圆曲线标量乘法又可以分为二元法、非相邻表示型方法、窗口方法等多种方法。在本申请实施例中,以采用椭圆曲线标量乘法中的二元法为例,介绍具体如何确定该第二坐标点。
本发明提供的一个或多个实施例中,确定第二坐标的方法的实现流程如图4所示,具体可以包括如下步骤:
步骤41,根据无穷远点以及所述椭圆曲线基点坐标对预设点的坐标进行初始化赋值;
具体地,假设先从椭圆曲线上随机选取三个坐标点,分别记为Q0、Q1、Q2,然后对Q0、Q1、Q2进行初始化赋值,比如可以将Q0、Q1的坐标赋值为无穷远点的坐标,将Q2的坐标赋值为椭圆曲线基点的坐标;其中,用字母O表示无穷远点。
步骤42,对所述进行初始化赋值的预设点的坐标,循环执行n-1次点加、点倍操作,得到预设点的最终坐标;其中,n表示椭圆曲线的阶;
沿用上述步骤41中的实例,对所述进行初始化赋值的预设坐标点Q0、Q1、Q2以及椭圆曲线基点坐标G,按照如下公式[7]和[8]循环执行n-1次点加、点倍操作,得到预设点的最终坐标:
Qki=Qki+Q2 [7]
Q2=2Q2 [8]
其中,ki表示二进制形式下的第一参数从左往右数第i位上的数值;i的取值范围为[1,n-1]。例如,设第一参数为10,将所述第一参数转换为二进制形式1010,则k1表示从左往右数第一位上的数值,所以k1为1,以此类推,则k2为0,k3为1,k4为0。
例如,设椭圆曲线的阶5,第一参数为10,则对所述进行初始化赋值的预设点的坐标,循环执行n-1次点加、点倍操作,得到预设点的最终坐标的具体方法如下:
首先,根据椭圆曲线的阶可以确定点加、点倍的循环次数为4次;另外,第一参数的二进制表示为1010;
当i=1时,ki=1,则有Q1(1)=Q1(0)+Q2(0),Q2(1)=2Q2(0),即将Q1+Q2的值赋值给Q1,将2Q2的值赋值给Q2;
当i=2时,ki=0,则有Q0(2)=Q0(1)+Q2(1),Q2(2)=2Q2(1);
当i=3时,ki=1,则有Q1(3)=Q1(2)+Q2(2),Q2(3)=2Q2(2);
当i=4时,ki=0,则有Q0(4)=Q0(3)+Q2(3),Q2(4)=2Q2(3);
如上所述,当i=4时计算得到的Q0、Q2以及当i=3时计算得到的Q1(因为当i=4时没有涉及到Q1的计算,所以上一次即i=3时计算得到的Q1为预设点Q1的最终坐标)为所述预设点的最终坐标。
需要说明的是,Q0、Q1、Q2加下角标(1)、(2)、(3)、(4)的表示方式,仅仅是为了便于区别每次计算得到的Q0、Q1、Q2值,比如Q2(0)表示预设点Q2的初始值,Q2(1)表示i=1时计算得到的预设点Q2的坐标,以此类推Q0、Q1的表示方法也一样,此处不再赘述,且对于预设点最终坐标的表示方法并不做任何限定。
步骤43,对所述预设点的最终坐标执行点加操作,得到第一坐标点。
按照如下公式[9]对所述预设点的最终坐标执行点加操作,得到第一坐标点Q:
Q=Q0+Q1+G [9]
比如,沿用步骤42的实例,根据i=4时计算得到的预设点Q0、Q1的最终坐标Q0(4)、Q1(3)按照上述公式[9]计算可以得到Q=Q0(4)+Q1(3)+G,并将得到的Q确定为第一坐标点。
步骤15,若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
根据上述步骤13确定的第一坐标点以及步骤33确定的第二坐标点,判断两坐标点是否一致,即判断Q=[l]G是否成立,若成立,则说明数字签名过程中,用于进行数字签名的第一参数没有遭到攻击,输出数字签名;若不成立,则说明数字签名过程中第一参数遭到攻击,需要基于新的第一参数重新生成数字签名。
采用本发明实施例提供的方法,即使数字签名过程中随机数遭遇注入错误攻击,导致随机数的某一比特被修改掉,也仍然可以确定数字签名过程中数字签名是否遭到注入错误,从而解决了现有技术在该情况下不能准确判断出数字签名是否遭遇注入错误攻击的问题。此外,采用本发明实施例提供的方法,由于只有确定数字签名没有遭受到注入错误攻击才会输出数字签名值,因此,还可以有效抵御注入错误攻击。
为解决现有技术中,无法判断数字签名过程中第一参数(随机数)是否遭到攻击的问题,本发明实施例提供一种抗注入攻击的签名装置50,该装置的具体结构示意图如图5所示,包括计算模块51、构造模块52、第一模块53、第二模块54、判断模块55,其中:
计算模块51,用于根据第一参数计算待签名消息的数字签名值;
具体地,计算模块51中又包括哈希值计算单元510、计算单元511、数字签名确定单元512,其中:
哈希值计算单元510,用于根据以下公式计算待签名消息的哈希值:
e=h(m)
其中,h(m)表示对待签名消息m计算哈希值;
计算单元511,用于根据以下公式计算待签名消息的结果s’:
s’=rd+ke modn
其中,d表示数字签名的私钥,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶,e表示待签名消息的哈希值,k表示所述第一参数;
数字签名确定单元512,用于当所述结果s’不为0时,将所述结果s’确定为数字签名值s。
构造模块52,用于根据所述数字签名值与所述第一参数构造临时变量;
第一模块53,用于根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;
第二模块54,用于根据椭圆曲线标量乘法运算以及椭圆曲线基点坐标,确定第二坐标点;
需要说明的是,第二模块54通常可以包括多个单元,比如可以包括以下单元:
初始化单元541,用于根据无穷远点以及所述椭圆曲线基点坐标对预设点的坐标进行初始化赋值;
循环单元542,用于对经过初始化赋值的预设点的坐标,循环执行n-1次点加、点倍操作,得到预设点的最终坐标;
其中,n表示所述椭圆曲线的阶;
第二确定单元543,用于对所述预设点的最终坐标执行点加操作,得到第二坐标点
判断模块55,用于若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
采用本发明实施例提供的该装置,即使数字签名过程中随机数遭遇注入错误攻击,导致随机数的某一比特被修改掉,也仍然可以确定数字签名过程中数字签名是否遭到注入错误,从而解决了现有技术在该情况下不能准确判断出数字签名是否遭遇注入错误攻击的问题。此外,采用本发明实施例提供的方法,由于只有确定数字签名没有遭受到注入错误攻击才会输出数字签名值,因此,还可以有效抵御注入错误攻击。
优选地,图6为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、处理器610、以及电源611等部件。本领域技术人员可以理解,图5中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器610,耦合到所述存储器,用于根据椭圆曲线标量乘法运算以及椭圆曲线基点坐标,确定第一坐标点;根据第一参数计算待签名消息的数字签名值;根据所述数字签名值与所述第一参数构造临时变量;根据所述临时变量与椭圆曲线基点坐标确定第二坐标点;若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
存储器609,用于存储可在处理器610上运行的计算机程序,该计算机程序被处理器610执行时,实现处理器610所实现的上述功能。
应理解的是,本发明实施例中,射频单元601可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器610处理;另外,将上行的数据发送给基站。通常,射频单元601包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元601还可以通过无线通信系统与网络和其他设备通信。
移动终端通过网络模块602为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元603可以将射频单元601或网络模块602接收的或者在存储器609中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元603还可以提供与移动终端600执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元603包括扬声器、蜂鸣器以及受话器等。
输入单元604用于接收音频或视频信号。输入单元604可以包括图形处理器(Graphics Processing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元606上。经图形处理器6041处理后的图像帧可以存储在存储器609(或其它存储介质)中或者经由射频单元601或网络模块602进行发送。麦克风6042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元601发送到移动通信基站的格式输出。
移动终端600还包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板6061的亮度,接近传感器可在移动终端600移动到耳边时,关闭显示面板6061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器605还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元606用于显示由用户输入的信息或提供给用户的信息。显示单元606可包括显示面板6061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板6061。
用户输入单元607可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元607包括触控面板6071以及其他输入设备6072。触控面板6071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板6071上或在触控面板6071附近的操作)。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器610,接收处理器610发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6071。除了触控面板6071,用户输入单元607还可以包括其他输入设备6072。具体地,其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板6071可覆盖在显示面板6061上,当触控面板6071检测到在其上或附近的触摸操作后,传送给处理器610以确定触摸事件的类型,随后处理器610根据触摸事件的类型在显示面板6061上提供相应的视觉输出。虽然在图6中,触控面板6071与显示面板6061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板6071与显示面板6061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元608为外部装置与移动终端600连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元608可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端600内的一个或多个元件或者可以用于在移动终端600和外部装置之间传输数据。
存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器609可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器610是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器609内的软件程序和/或模块,以及调用存储在存储器609内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器610可包括一个或多个处理单元;优选的,处理器610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
移动终端600还可以包括给各个部件供电的电源611(比如电池),优选的,电源611可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,移动终端600包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供一种移动终端,包括处理器610,存储器609,存储在存储器609上并可在所述处理器610上运行的计算机程序,该计算机程序被处理器610执行时实现上述抗注入攻击的签名方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述抗注入攻击的签名方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (16)
1.一种抗注入攻击的签名方法,其特征在于,包括:
根据第一参数计算待签名消息的数字签名值;
根据所述数字签名值与所述第一参数构造临时变量;
根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;
根据椭圆曲线标量乘法运算对所述第一参数以及椭圆曲线基点坐标进行计算,以确定第二坐标点;
若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
2.如权利要求1所述的方法,其特征在于,根据第一参数,计算待签名消息的数字签名值之前,所述方法还包括:
循环执行下述操作,直至判定r=0不成立时终止循环执行下述操作,将使得r=0不成立的随机数k0确定为所述第一参数:
随机生成随机数k0;
根据所述随机数k0计算椭圆曲线点的横坐标x1;
根据以下公式计算用于进行数字签名的中间参数;
r=x1mod n
判断r=0是否成立;其中,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶。
3.如权利要求1所述的方法,其特征在于,根据第一参数计算待签名消息的数字签名值,具体包括:
根据以下公式计算待签名消息的哈希值:
e=h(m)
其中,h(m)表示对待签名消息m计算哈希值;
根据以下公式计算待签名消息的结果s’:
s’=rd+ke modn
其中,d表示数字签名的私钥,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶,e表示待签名消息的哈希值,k表示所述第一参数;
当所述结果s’不为0时,将所述结果s’确定为数字签名值s。
4.如权利要求1所述的方法,其特征在于,根据所述数字签名值与所述第一参数构造临时变量,具体包括:
根据所述数字签名值与所述第一参数按照以下公式构造临时变量l:
l=(r+s)-1(k-s)mod n
其中,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶,k表示所述第一参数,s表示所述数字签名值。
5.如权利要求1所述的方法,其特征在于,根据所述临时变量与椭圆曲线基点坐标确定第一坐标点,具体包括:
根据所述临时变量与椭圆曲线基点坐标按照以下公式确定第一坐标点(x,y):
(x,y)=[l]G
其中,(x,y)表示所述第一坐标点,[l]G表示对所述临时变量l和所述椭圆曲线基点G作点乘。
6.如权利要求1所述的方法,其特征在于,根据椭圆曲线标量乘法运算对所述第一参数以及椭圆曲线基点坐标进行计算,确定第二坐标点,具体包括:
根据无穷远点以及所述椭圆曲线基点坐标对预设点的坐标进行初始化赋值;
对经过初始化赋值的预设点的坐标,循环执行n-1次点加、点倍操作,得到预设点的最终坐标;
其中,n表示所述椭圆曲线的阶;
对所述预设点的最终坐标执行点加操作,得到第二坐标点。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一坐标点与所述第二坐标点值不一致,则判定用于进行数字签名的第一参数遭到攻击。
8.一种抗注入攻击的签名装置,其特征在于,包括:
计算模块,用于根据第一参数计算待签名消息的数字签名值;
构造模块,用于根据所述数字签名值与所述第一参数构造临时变量;
第一模块,用于根据所述临时变量与椭圆曲线基点坐标确定第一坐标点;
第二模块,用于根据椭圆曲线标量乘法运算对所述第一参数以及椭圆曲线基点坐标进行计算,确定第二坐标点;
判断模块,用于若判断所述第一坐标点与所述第二坐标点一致,则输出所述数字签名值。
9.如权利要求8所述的装置,其特征在于,根据第一参数,计算待签名消息的数字签名值之前,还包括:
循环执行单元,用于循环执行下述操作,直至判定r=0不成立时终止循环执行下述操作,将使得r=0不成立的随机数k0确定为所述第一参数:
随机生成单元,用于随机生成随机数k0;
横坐标确定单元,用于根据所述随机数k0计算椭圆曲线点的横坐标x1;
中间参数确定单元,根据以下公式计算用于数字签名的中间参数;
r=x1mod n
判断单元,用于判断r=0是否成立;其中,n表示椭圆曲线基点的阶数。
10.如权利要求8所述的装置,其特征在于,计算模块,具体包括:
哈希值计算单元,用于根据以下公式计算待签名消息的哈希值:
e=h(m)
其中,h(m)表示对待签名消息m计算哈希值;
计算单元,用于根据以下公式计算待签名消息的结果s’:
s’=rd+ke modn
其中,d表示数字签名的私钥,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶,e表示待签名消息的哈希值,k表示所述第一参数;
数字签名确定单元,用于当所述结果s’不为0时,将所述结果s’确定为数字签名值s。
11.如权利要求8所述的装置,其特征在于,构造模块,具体包括:
构造单元,用于根据所述数字签名值与所述第一参数按照以下公式构造临时变量l:
l=(r+s)-1(k-s)mod n
其中,r表示用于进行数字签名的中间参数,n表示椭圆曲线基点的阶,k表示所述第一参数,s表示所述数字签名值。
12.如权利要求8所述的装置,其特征在于,第一模块,具体包括:
第一坐标点确定单元,用于根据所述临时变量与椭圆曲线基点坐标按照以下公式确定第一坐标点:
(x,y)=[l]G
其中,(x,y)表示所述第一坐标点,[l]G表示对所述临时变量l和所述椭圆曲线基点G作点乘。
13.如权利要求8所述的装置,其特征在于,第二模块,具体包括:
初始化单元,用于根据无穷远点以及所述椭圆曲线基点坐标对预设点的坐标进行初始化赋值;
循环单元,用于对经过初始化赋值的预设点的坐标,循环执行n-1次点加、点倍操作,得到预设点的最终坐标;
其中,n表示所述椭圆曲线的阶;
第二确定单元,用于对所述预设点的最终坐标执行点加操作,得到第二坐标点。
14.如权利要求8所述的装置,其特征在于,所述装置还包括:
判定模块,用于若所述第一坐标点与所述第二坐标点值不一致,则判定用于进行数字签名的第一参数遭到攻击。
15.一种移动设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1~8中任一项所述的抗注入攻击的签名方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1~8中任一项所述的抗注入攻击的签名方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289633.3A CN109067554A (zh) | 2018-10-31 | 2018-10-31 | 抗注入攻击的签名方法、装置、移动终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289633.3A CN109067554A (zh) | 2018-10-31 | 2018-10-31 | 抗注入攻击的签名方法、装置、移动终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109067554A true CN109067554A (zh) | 2018-12-21 |
Family
ID=64789116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811289633.3A Pending CN109067554A (zh) | 2018-10-31 | 2018-10-31 | 抗注入攻击的签名方法、装置、移动终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109067554A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111222177A (zh) * | 2020-01-13 | 2020-06-02 | 湖南遥昇通信技术有限公司 | 一种数字指纹处理及签名处理方法 |
CN111695159A (zh) * | 2019-03-15 | 2020-09-22 | 阿里巴巴集团控股有限公司 | 数据的处理方法、装置及设备 |
WO2024036833A1 (zh) * | 2022-08-18 | 2024-02-22 | 深圳先进技术研究院 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717060A (zh) * | 2015-03-10 | 2015-06-17 | 大唐微电子技术有限公司 | 一种攻击椭圆曲线加密算法的方法和攻击设备 |
CN104836670A (zh) * | 2015-05-12 | 2015-08-12 | 中国科学院软件研究所 | 一种基于随机数未知的sm2签名算法安全性验证方法 |
CN105610583A (zh) * | 2014-11-04 | 2016-05-25 | 上海华虹集成电路有限责任公司 | 用于抵御错误曲线攻击的ecdsa方法 |
-
2018
- 2018-10-31 CN CN201811289633.3A patent/CN109067554A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105610583A (zh) * | 2014-11-04 | 2016-05-25 | 上海华虹集成电路有限责任公司 | 用于抵御错误曲线攻击的ecdsa方法 |
CN104717060A (zh) * | 2015-03-10 | 2015-06-17 | 大唐微电子技术有限公司 | 一种攻击椭圆曲线加密算法的方法和攻击设备 |
CN104836670A (zh) * | 2015-05-12 | 2015-08-12 | 中国科学院软件研究所 | 一种基于随机数未知的sm2签名算法安全性验证方法 |
Non-Patent Citations (1)
Title |
---|
张仕斌等: "《应用密码学》", 31 January 2017 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111695159A (zh) * | 2019-03-15 | 2020-09-22 | 阿里巴巴集团控股有限公司 | 数据的处理方法、装置及设备 |
CN111695159B (zh) * | 2019-03-15 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 数据的处理方法、装置及设备 |
CN111222177A (zh) * | 2020-01-13 | 2020-06-02 | 湖南遥昇通信技术有限公司 | 一种数字指纹处理及签名处理方法 |
WO2024036833A1 (zh) * | 2022-08-18 | 2024-02-22 | 深圳先进技术研究院 | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104468464B (zh) | 验证方法、装置和系统 | |
CN104836664B (zh) | 一种执行业务处理的方法、装置和系统 | |
CN103634294B (zh) | 信息验证方法和装置 | |
CN104618217B (zh) | 分享资源的方法、终端、服务器及系统 | |
CN105681032B (zh) | 密钥存储方法、密钥管理方法及装置 | |
CN104580167B (zh) | 一种传输数据的方法、装置和系统 | |
CN105491067B (zh) | 基于密钥的业务安全性验证方法及装置 | |
CN104767863B (zh) | 终端屏幕的解锁方法及终端 | |
CN107219976A (zh) | 应用显示方法及相关产品 | |
CN108769027A (zh) | 安全通信方法、装置、移动终端和存储介质 | |
CN104852885A (zh) | 一种进行验证码验证的方法、装置和系统 | |
CN103345602A (zh) | 一种客户端代码完整性检测方法、装置和系统 | |
CN109067554A (zh) | 抗注入攻击的签名方法、装置、移动终端及存储介质 | |
CN107766747A (zh) | 校验应用程序安装包完整性的方法、移动终端及服务器 | |
CN109257336A (zh) | 一种基于区块链的密码信息处理方法、终端设备 | |
CN110162254A (zh) | 一种显示方法和终端设备 | |
CN108234124A (zh) | 身份验证方法、装置与系统 | |
CN106685948A (zh) | 一种数据处理方法、终端、通信设备及数据处理系统 | |
CN110147186A (zh) | 一种应用的控制方法及终端设备 | |
CN107423598B (zh) | 一种解锁控制方法及移动终端 | |
CN116541865A (zh) | 基于数据安全的密码输入方法、装置、设备及存储介质 | |
CN108933670A (zh) | 一种数字签名方法、装置、移动设备及存储介质 | |
CN108229139A (zh) | 一种密码输入方法及移动终端 | |
CN109145644A (zh) | 私钥混淆及数字签名生成方法、装置、智能设备 | |
CN107948278A (zh) | 一种信息传输方法、终端设备及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181221 |