CN106972924A - 加密、解密、电子签章、验证签章的方法及装置 - Google Patents
加密、解密、电子签章、验证签章的方法及装置 Download PDFInfo
- Publication number
- CN106972924A CN106972924A CN201710180780.6A CN201710180780A CN106972924A CN 106972924 A CN106972924 A CN 106972924A CN 201710180780 A CN201710180780 A CN 201710180780A CN 106972924 A CN106972924 A CN 106972924A
- Authority
- CN
- China
- Prior art keywords
- parameter
- public
- signature
- key
- elliptic curve
- 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
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- 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/3249—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 RSA or related signature schemes, e.g. Rabin scheme
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了一种加密方法、解密方法、电子签章方法、验证签章方法及对应的装置。所述加密方法利用解密者的公钥证明因子进行加密,其中解密者的公钥证明因子等于所述解密者的私钥与所述预设椭圆曲线的基点B的乘积。所述解密方法获取利用解密者的公钥证明因子加密过的数据,并利用解密者的私钥进行解密,同时验证公钥的有效性。所述验证签章方法生成签署者的公钥证明因子,并利用该签署者的公钥证明因子使得验证电子签章的真实性和公钥的有效性可以同时进行。
Description
技术领域
本公开总体上涉及计算机安全技术领域,尤其涉及一种加密、解密和电子签章、验证签章的方法以及相应的装置。
背景技术
目前的公开金钥密码算法主要有RSA公钥加密算法(简称RSA算法)和ECC椭圆曲线密码算法(简称ECC算法)。但是,现有的密码算法,无论是RSA算法还是ECC算法,在解密或者验证签章时都需要较多运算量的凭证基础公钥密码***,即需要给解密者或者验证签章者在发送文件的同时还要发送验证公钥有效性的凭证,这样增加了***运算量以及信息传输和维护风险。此外,ECC算法***160位密钥长度的安全性,同等于RSA算法***的1024位密钥长度,极大的降低了运算量,大大降低了***维护管理的成本。
发明内容
本公开的一个方面提供了一种加密方法,包括:利用第一随机整数对预设椭圆曲线上的基点B随机加密生成第一加密参数C1,利用公钥证明因子以及所述第一随机整数对明文数据M加密,生成第二加密参数C2,提供所述第一加密参数C1和第二加密参数C2给解密者。其中,所述公钥证明因子等于所述解密者的私钥与所述基点B的乘积,且能够通过如下公式计算得到:
Vi=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p)
其中,Pi为解密者的公钥,h()为单向哈希函数,IDi为解密者的用户标识,X(Pi)为Pi在所述椭圆曲线上的X坐标值,PSA为加密者的公钥,p为所述椭圆曲线的有限域特征。
可选地,所述加密方法中第一加密参数C1=z·B(mod p),第二加密参数C2=M+z·Vi(mod p);其中z为所述第一随机整数。
可选地,在对所述明文数据M进行加密之前,还包括:获取解密者的用户标识IDi以及基于椭圆曲线离散对数问题运算得出的所述用户标识IDi在所述预设椭圆曲线上对应的点Oi;计算所述解密者的公钥Pi以及公钥验证参数Wi:
Pi=Oi+(ki-h(IDi))·B(mod p)
Wi=ki+sSA·(X(Pi)+h(IDi))(mod q)
其中ki为第二随机整数,sSA为加密者私钥,q为p-1的最大质因子;提供所述解密者的公钥Pi以及公钥验证参数Wi给所述解密者,以使所述解密者根据所述公钥Pi以及公钥验证参数Wi计算得到解密者的私钥。
本公开的第二个方面提供了一种解密方法,包括:获取第一加密参数以及第二加密参数,所述第一加密参数为加密者利用第一随机整数对预设椭圆曲线上的基点B随机加密生成,所述第二加密参数为加密者利用公钥证明因子以及所述第一随机整数对明文数据M加密而得到的,所述公钥证明因子等于解密者的私钥与所述基点B的乘积;利用如下公式对所述第二加密参数进行解密得到明文数据M:
M=C2-si·C1(mod p)
其中,C2为第二加密参数,C1为第一加密参数,p为所述椭圆曲线的有限域特征,si为解密者私钥,如下计算:
si=Wi+h(.xi,IDi)(mod q)
其中,h()为单向哈希函数,IDi为解密者的用户标识,xi为第三随机整数,p为所述椭圆曲线的有限域特征,Wi从为加密者获取得到的公钥验证参数。
可选地,在解密所述明文数据M之前,还包括:利用第三随机整数xi、解密者的用户标识IDi,基于椭圆曲线离散对数问题运算得出的所述用户标识IDi在所述预设椭圆曲线上对应的点Oi;将所述Oi和用户标识IDi提供给加密者;接收加密者根据所述Oi和用户标识IDi计算得到的解密者的公钥Pi及公钥验证参数Wi;利用所述公钥验证参数Wi计算得到解密者的私钥si,并且利用所述解密者的私钥si验证所述解密者的公钥Pi的有效性,即验证下述公式是否成立:
si·B=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p)。
本公开的第三个方面提供了一种电子签章方法,包括:利用第四随机整数k和预设椭圆曲线的基点B生成第一签名参数r,利用所述第四随机整数k、签署者的私钥sa和第一签名参数r对签章数据N进行签章,生成第二签名参数t,提供所述第一签名参数r、第二签名参数t和签章数据N。其中,所述第二签名参数t利用如下公式生成:
t=k+sa·h(N,r)(mod q)
其中,h()为单向哈希函数,q为p-1的最大质因子,p为所述椭圆曲线的有限域特征。
可选地,所述电子签章方法中第一签名参数r=Xa(mod q),其中Xa为k·B(mod p)在所述椭圆曲线上的X坐标值;
本公开的第四个方面提供了一种验证数字签章的方法,包括:获取签署者的第一签名参数r、第二签名参数t以及签章数据N,所述第一签章参数r为所述签署者在签章时利用第四随机整数k和预设椭圆曲线的基点B生成的,所述第二签名参数t为所述签署者利用所述第四随机整数k和将第一签名参数r以及签章数据N,基于椭圆曲线离散对数问题运算得出的值后再利用签署者私钥sa签署得到的值生成的。利用签署者的身份信息IDa、签署者的公钥Pa、验章者的公钥PSA和所述椭圆曲线基点B,生成签署者的公钥证明因子Va,所述公钥证明因子与所述签署者私钥sa与所述椭圆曲线基点B的乘积相等,且能够通过如下公式计算得到:
Va=Pa+h(IDa)·B+(X(Pa)+h(IDa))·PSA(mod p)。
利用第二签名参数t和所述椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r。
可选地,所述验证签章的方法中利用第二签名参数t和所述椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r包括:计算t·B-Va·h(N,r)(mod p)=(x′a,y′a);验证等式r=x′a(mod q)是否成立,如果等式成立,则证明验证成功。
本公开第五个方面提供了一种加密装置,包括:参数生成模块,被配置为利用第一随机整数对预设椭圆曲线上的基点B随机加密生成第一加密参数C1。加密模块,被配置为利用公钥证明因子以及所述第一随机整数对明文数据M加密,生成第二加密参数C2。提供模块,被配置为提供所述第一加密参数C1和第二加密参数C2给解密者。其中,所述公钥证明因子等于所述解密者的私钥与所述基点B的乘积,且能够通过如下公式计算得到:
Vi=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p);
其中,Pi为解密者的公钥,h()为单向哈希函数,Ii为解密者的用户标识,X(Pi)为Pi在所述椭圆曲线上的X坐标值,PSA为加密者的公钥,p为所述椭圆曲线的有限域特征。
本公开的第六个方面提供了一种解密装置,包括数据获取模块,被配置为获取第一加密参数以及第二加密参数,所述第一加密参数为加密者利用第一随机整数对预设椭圆曲线上的基点B随机加密生成,所述第二加密参数为加密者利用公钥证明因子以及所述第一随机整数对明文数据M加密而得到的,所述公钥证明因子等于解密者的私钥与所述基点B的乘积。解密模块,被配置为利用如下公式对所述第二加密参数进行解密得到明文数据M:
M=C2-si·C1(mod p)
其中,C2为第二加密参数,C1为第一加密参数,p为所述椭圆曲线的有限域特征,si为解密者私钥,如下计算:
si=Wi+h(xi,IDi)(mod q)
其中,h()为单向哈希函数,IDi为解密者的用户标识,xi为第三随机整数,p为所述椭圆曲线的有限域特征,Wi从为加密者获取得到的公钥验证参数。
本公开的第七个方面提供了一种电子签章装置,包括:电子签章生成模块,被配置为利用第四随机整数k和预设椭圆曲线的基点B生成第一签名参数r,以及利用所述第四随机整数k、签署者的私钥sa和第一签名参数r对签章数据N进行签章,生成第二签名参数t。提供模块,被配置为提供所述第一签名参数r、第二签名参数t和签章数据N,其中,所述第二签名参数t利用如下公式生成:
t=k+sa·h(N,r)(mod q)
其中,h()为单向哈希函数,q为p-1的最大质因子,p为所述椭圆曲线的有限域特征。
本公开的第八个方面提供了一种验证数字签章的装置,包括:数据获取模块,被配置为获取签署者的第一签名参数r、第二签名参数t以及签章数据N,其中,所述第一签章参数r为所述签署者在签章时利用第四随机整数k和预设椭圆曲线的基点B生成的,所述第二签名参数t为所述签署者利用所述第四随机整数k和将第一签名参数r以及签章数据N基于椭圆曲线离散对数问题,运算得出后再利用签署者私钥sa签署得到的值生成的。验证模块,被配置为利用签署者的身份信息IDa、签署者的公钥Pa、验章者的公钥PSA和所述椭圆曲线基点B,生成签署者的公钥证明因子Va,以及利用第二签名参数t和所述椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r,其中所述公钥证明因子Va与所述签署者私钥sa与所述椭圆曲线基点B的乘积相等,且能够通过如下公式计算得到:
Va=Pa+h(IDa)·B+(X(Pa)+h(IDa))·PSA(mod p)。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开一实施例的加密方法的流程图;
图2示意性示出了根据本公开一实施例的加密方法中对明文数据加密之前的方法流程图;
图3示意性示出了根据本公开一实施例的解密方法的流程图;
图4示意性示出了根据本公开一实施例的解密方法中对明文数据解密之前的方法流程图;
图5示意性示出了根据本公开一实施例的电子签章方法的流程图;
图6示意性示出了根据本公开一实施例的验证签章的方法的流程图;
图7示意性示出了根据本公开一实施例的加密装置的框图;
图8示意性示出了根据本公开一实施例的解密装置的框图;
图9示意性示出了根据本公开一实施例的电子签章装置的框图;
图10示意性示出了根据本公开一实施例的验证签章的装置的框图;
图11示意性示出了根据本公开一实施例的密钥装置的框图。
具体实施方式
根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
公开金钥密码***的安全性基于一些数学问题的难解性,代表性的有三类:大整数的分解、有限域上的离散对数和椭圆曲线上的离散对数问题。当前比较著名的公开金钥密码算法——RSA算法和ECC算法中,ECC算法***160位长度密钥的安全性等同于RSA算法***的1024长度密钥,运算量能够显著降低。
在公开金钥密码***中,每个用户都拥有一对密钥——公钥和私钥。其中公钥可以对外公开,私钥为私人所保管。
在加密的过程中,加密者使用解密者的公钥对明文数据进行加密,待解密者获得被加密的明文数据后,使用自己的私钥进行解密,即可解密出明文数据。当然,解密者解密成功的前提是加密者在加密过程中所使用的公钥是正确有效的。因此,通常在将加密后的文件发给解密者的同时,还要发送验证公钥有效性的凭证。
在进行电子签章的过程中,签章者会对要发送的签章数据用自己的私钥进行签名,并将签名以及签章数据一同进行发送。收到签章数据的用户利用签章者的公钥验证签章是否正确,即验证签章是否被篡改过,从而确认签章数据是否被篡改过。同样的,验证签章成功的前提是必须确认验证签章过程中所使用的公钥是正确有效的。因此,通常验证签章的用户还需要获取验证签章者的公钥有效性的凭证。
根据本公开的各个实施例,提供了一种加密方法,在加密的过程中,对所使用的预设椭圆曲线的基点进行随机加密,生成第一加密参数,并利用公钥证明因子对明文数据进行加密生成第二加密参数,最后将第一加密参数和第二加密参数提供给解密者,可以使解密者在使用自己的私钥进行解密时,利用公钥证明因子等于私钥和所使用的预设椭圆曲线基点的乘积这一特性,在进行解密的同时验证公钥的有效性,即解密者想要解密出正确的明文数据的前提是必须要满足加密过程中使用的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点的乘积,从而使得加密者不再需要单独传送验证公钥有效性的凭证,避免了***信息传送和凭证维护的风险。
根据本公开的各个实施例,还提供了一种解密方法,利用解密者的私钥对收到的加密文件进行解密时,由于加密文件中包括了被公钥证明因子加密的明文数据以及被加密的椭圆曲线的基点,并且,公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点的乘积。因此,在进行解密时,利用解密者的私钥与椭圆曲线的基点的乘积与公钥证明因子相等这一特性,能够使用解密者的私钥从加密文件中解密出明文数据。换言之,解密成功的必要条件就是解密者的私钥与椭圆曲线的基点的乘积与公钥证明因子相等。通过这种方式,在解密的同时验证了加密过程所使用的公钥的有效性。从而,无需在解密明文数据之前先单独验证加密文件时所使用的公钥的有效性,减少了解密运算量。
根据本公开的各个实施例,还提供了一种电子签章方法,利用签署者的私钥和所使用的预设椭圆曲线的基点生成签名参数,并将签名参数与签章数据进行发送,并且不再需要单独发送公钥有效性证明的凭证。
根据本公开的各个实施例,还提供了一种验证签章的方法。该方法中收到包括签名参数的签名数据后,利用签署者的公钥生成公钥证明因子,并用公钥证明因子计算验证签名参数是否被篡改,从而确定求签名数据是否被篡改。其中,收到的签名参数是通过签署者的私钥和/或所使用的预设椭圆曲线的基点生成的,并且,当签署者的公钥有效时,生成的公钥证明因子是等于签署者的私钥与所使用的预设椭圆曲线的基点的乘积。这样,在验证签章时可以利用公钥证明因子的这一特性,对收到的签章进行验证,即验证签章成功的前提是生成的公钥证明因子等于签署者私钥和所使用的预设椭圆曲线的基点的乘积相等。如此,验证签章成功的同时也验证了公钥的有效性。通过这种方式,验证签章和验证其获取的签署者的公钥的有效性能够同步进行,提高了验证签章的效率。
图1示意性示出了根据本公开一实施例的加密方法的流程图;
如图1所示,根据本公开一实施例的加密方法包括:
操作S101:利用第一随机整数对预设椭圆曲线上的基点B随机加密生成第一加密参数C1;
操作S102:利用公钥证明因子以及该第一随机整数对明文数据M加密,生成第二加密参数C2;
操作S103:提供第一加密参数C1和第二加密参数C2给解密者;
其中,
公钥证明因子等于解密者的私钥与该基点B的乘积,且能够通过如下公式计算得到:
Vi=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p); (1)
其中,Pi为解密者的公钥,h()为单向哈希函数,IDi为解密者的用户标识,X(Pi)为Pi在该椭圆曲线上的X坐标值,PSA为加密者的公钥,p为该椭圆曲线的有限域特征。
本实施例操作S101中,利用给定区间内的第一随机整数对预设的有限域F(ρ)上的椭圆曲线的基点B进行加密运算生成第一加密参数C1。利用第一随机整数对该椭圆曲线的基点B随机加密,从而使得加密过程中所使用的预设椭圆曲线的特性被随机加密,从而避免了恶意第三方通过累积C1值破解出所使用的预设椭圆曲线,提高了加密过程中的数据安全性。
操作S102生成的第二加密参数C2,是同时利用公钥证明因子以及第一随机整数对明文数据M加密而得到的,使得对明文数据M加密包括了第一随机整数以及公钥证明因子的双重影响,提高了加密数据的安全性。
并且操作S102中使用的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,这使得解密者在利用自己的私钥进行解密时,需要满足这一等式关系,才可能能解密出正确的明文数据M。
另外,操作S102中使用的公钥证明因子可以通过公式(1)计算得到。从公式(1)的表达式可以看出,在加密方,公钥证明因子由解密者的公钥Pi、解密者的用户标识IDi、所使用的预设椭圆曲线的基点B以及该椭圆曲线的有限域特征p各个参数通过复杂运算得到。通过这种方式,一方面增强了公钥证明因子的破解困难度,提高了公钥证明因子的安全性,另一方面使得公钥证明因子能够等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,使得解密者可以在解密过程中利用这一特性进行解密和验证加密过程所使用的公钥的有效性。
解密者的用户标识,可以是,类似于解密者的电话号、qq号、账户序号等,是可以被他人获知的***息。
公钥证明因子的计算公式(1)中,对解密者的用户标识IDi进行哈希运算,使得公钥证明因子会随着解密者的用户标识的不同而具有不同的取值,进一步增强了数据的不可破解性。
操作S103中,将第一加密参数C1和第二加密参数C2提供给解密者。通过操作S102的分析可知,对于解密者而言,要想从第一加密参数C1和第二加密参数C2中解密出正确的明文数据M,就需要满足加密过程中使用的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,使得解密者可以在解密过程中可以利用这一特性同时进行解密以及验证公钥的有效性。
本实施例,对所使用的预设椭圆曲线的基点进行随机加密,生成第一加密参数C1,并利用公钥证明因子对明文数据M进行加密生成第二加密参数C2,最后将第一加密参数C1和第二加密参数C2提供给解密者,可以使解密者在使用自己的私钥进行解密时,利用公钥证明因子等于私钥和所使用的预设椭圆曲线基点的乘积这一特性,在进行解密的同时验证公钥的有效性,即解密者想要解密出正确的明文数据M的前提是必须要满足加密过程中使用的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,从而使得加密者不再需要单独传送验证公钥有效性的凭证,避免了***信息传送和凭证维护的风险。
根据本公开一实施例的加密方法,其中第一加密参数C1和第二加密参数C2的具体表达式可以是:
第一加密参数C1=z·B(mod p);
第二加密参数C2=M+z·Vi(mod p);
其中z为第一随机整数。
图2示意性示出了根据本公开一实施例的加密方法中,对明文数据加密之前的方法流程图。
如图2所示,根据本公开一实施例的加密方法,在对明文数据M加密之前还包括:
操作S201:获取解密者的用户标识IDi以及基于椭圆曲线离散对数问题运算得出的该用户标识IDi在预设椭圆曲线上对应的点Oi;
操作S202:计算该解密者的公钥Pi以及公钥验证参数Wi:
Pi=Oi+(ki-h(IDi))·B(mod p),
Wi=ki+sSA·(X(Pi)+h(IDi))(mod q),
其中ki为第二随机整数,sSA为加密者私钥,q为p-1的最大质因子;
操作S203:提供解密者的公钥Pi以及公钥验证参数Wi给该解密者,以使该解密者根据所述公钥Pi以及公钥验证参数Wi计算得到解密者的私钥。
本实施例中,提供给的解密者的公钥Pi以及公钥验证参数Wi可以使解密者计算得到私钥,并且可以使解密者的私钥与所使用的预设椭圆曲线的基点的乘积与公钥证明因子相等。本实施例中,解密者的私钥只在解密方通过解密者公钥以及公钥验证参数计算得到的,保证了解密者私钥的绝对安全性。
具体的,例如,当获取的Oi是通过如下计算而得的数据时:
Oi=h(xi,IDi)·B(mod p),
其中xi为第三随机整数,由解密者自行选取;
此时,可以通过如下方式计算解密者的私钥:
si=Wi+h(xi,IDi)(mod q),
其中xi为第三随机整数,与计算Oi时使用的随机整数相同;
此时,就能够使解密者的私钥与所使用的预设椭圆曲线的基点的乘积等于公钥证明因子,即
si·B=Vi
这是因为,
si·B=(Wi+h(xi,IDi))·B(mod p)
=Wi·B+h(xi,IDi)·B(mod p)
=(ki+sSA·(X(Pi)+h(IDi)))·B+h(xi,IDi)·B(mod p)
=(ki+h(xi,IDi))·B+(X(Pi)+h(IDi))·PSA(mod p)
=ki·B+Oi+(X(Pi)+h(IDi))·PSA(mod p)
=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p)
根据公钥证明因子的计算公式(1)可知,si·B=Vi。
图3示意性示出了根据本公开一实施例的解密方法的流程图;
如图3所示,根据本公开一实施例的解密方法包括:
操作S301:获取第一加密参数以及第二加密参数;其中,第一加密参数为加密者利用第一随机整数对预设椭圆曲线上的基点B随机加密生成,第二加密参数为加密者利用公钥证明因子以及第一随机整数对明文数据M加密而得到的;该公钥证明因子等于解密者的私钥与该基点B的乘积;
操作S302:利用如下公式对第二加密参数进行解密得到明文数据M:
M=C2-si·C1(mod p) (2)
其中,C2为第二加密参数,C1为第一加密参数,p为所述椭圆曲线的有限域特征,si为解密者私钥,如下计算:
si=Wi+h(xi,IDi)(mod q)
其中,h()为单向哈希函数,IDi为解密者的用户标识,xi为第三随机整数,p为所述椭圆曲线的有限域特征,Wi从为加密者获取得到的公钥验证参数。
本实施例中,根据公式(2)可以计算得到明文数据。这是因为,例如,当第一加密参数是C1=z·B(mod p);第二加密参数是,C2=M+z·Vi(mod p)时,
C2-si·C1(mod p)
=M+z·Vi-si·z·B(mod p)
=M+z(Vi-si·B)(mod p)
其中,Vi为公钥证明因子。
在操作S301中,获得的该公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线上的基点B的乘积,也就是说,在公钥证明因子等于解密者的私钥和该基点B的乘积前提下,解密者能够通过公式(2)解出正确的明文数据M。
本实施例的解密方法,利用解密者的私钥si对收到的加密文件(包括第一加密参数C1和第二加密参数C2)进行解密时,利用生成加密文件时的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点的乘积这一特性,使用解密者的私钥si能够从加密文件中解密出明文数据。换言之,解密者解密成功的必要条件就是解密者的加密文件中内嵌的公钥证明因子要等于解密者的私钥与所使用的预设椭圆曲线的基点的乘积,因此解密者解密成功也意味着加密过程所使用的公钥具有有效性。以此方式,使得解密过程和验证公钥的有效性同步进行,从而无需在解密明文数据之前先单独验证加密文件时所使用的公钥的有效性,减少了解密者的解密运算量,简化了解密过程。
图4示意性示出了根据本公开一实施例的解密方法中对明文数据解密之前的方法流程图.
如图4所示,根据本公开一实施例的解密方法,在对明文数据解密之前还包括:
操作S401:利用第三随机整数xi、解密者的用户标识IDi,基于椭圆曲线离散对数问题运算得出的用户标识IDi在预设椭圆曲线上对应的点Oi;
操作S402:将Oi和用户标识IDi提供给加密者;
操作S403:接收加密者根据Oi和用户标识IDi计算得到的解密者的公钥Pi及公钥验证参数Wi;
操作S404:利用公钥验证参数Wi计算得到解密者的私钥si,并且利用解密者的私钥si验证解密者的公钥Pi的有效性,即验证下述公式是否成立:
si·B=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p)。
本实施例中,操作S401中Oi可以是通过如下计算而得:
Oi=h(xi,IDi)·B(mod p),
其中xi为第三随机整数,由解密者自行选取。
由于第三随机整数xi为解密者随机选取,使得不同时间里不同用户操作时得到的Oi会不同,从而加强了数据的安全性。
操作S402中,将Oi和用户标识IDi提供给加密者。
根据公钥证明因子的计算公式(1)可知,操作S404验证si·B=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p)成立的实质是保证公钥证明因子等于解密者的私钥si与所使用的预设椭圆曲线的基点B的乘积,从而保证了当得到的公钥证明因子是正确有效的情况下,能够解密得到正确的明文数据M。若验证成立,则用户的私钥为si,公钥为Pi。因此,解密者的私钥由解密者自行计算产生,不需要通过其他任何中间方进行计算和传送以及保存,而且,通过以上方式,进行解密时也不需要在进行公钥有效性验证运算,不再需要额外的公钥证书。
图5示意性示出了根据本公开一实施例的电子签章方法的流程图。
如图5所示,根据本公开一实施例的电子签章方法包括:
操作S501:利用第四随机整数k和预设椭圆曲线的基点B生成第一签名参数r;
操作S502:利用第四随机整数k、签署者的私钥sa和第一签名参数r对签章数据N进行签章,生成第二签名参数t;
操作S503:提供第一签名参数r、第二签名参数t和签章数据N;
其中,第二签名参数t利用如下公式生成:
t=k+sa·h(N,r)(mod q)
其中,h()为单向哈希函数,q为p-1的最大质因子,p为椭圆曲线的有限域特征。
本实施例中,签署者利用所使用的预设椭圆曲线的基点B、签署者的私钥sa生成第一签名参数r和第二签名参数t,并将第一签名参数r、第二签名参数t与签章数据N提供给验证者,以备验证者在验证签章的同时可以同步地验证公钥的有效性,不再需要单独发送公钥有效性证明的凭证。
根据本公开一实施例的电子签章方法,其中,第一签名参数r=Xa(mod q),其中Xa为k·B(mod p)在所述椭圆曲线上的X坐标值。
根据本公开一实施例的电子签章的方法,签署者的公钥Pa为从验证者处获取得到,签署者的私钥sa由签署者自行计算得到,具体可以是通过以下过程获取的:
首先签署者利用第五随机整数xa、签署者的用户标识IDa,基于椭圆曲线离散对数问题运算得出用户标识IDa在预设椭圆曲线上对应的点Oa。其中,第五随机整数xa为签署者自行选取的随机整数。
其次,签署者将Oa和用户标识IDa提供给验证者,以便获取签署者的公钥Pa及公钥验证参数Wa。
再次,签署者利用公钥验证参数Wa自行计算得到签署者的私钥sa,具体可以通过如下公式计算:
sa=Wa+h(xa,IDa)(mod q)
之后,签署者利用私钥sa验证其获取的公钥Pa的有效性,即验证下述公式是否成立:
sa·B=Pa+h(IDa)·B+(X(Pa)+h(IDa))·PSA(mod p)
其中,h()为单向哈希函数,X(Pa)为Pa在所述椭圆曲线上的X坐标值,PSA为验证者的公钥,p为所使用的预设椭圆曲线的有限域特征。若验证上述等式成立,则签署者的公钥为Pa,私钥为sa。
在这一过程中,签署者的私钥由签署者自行通过签署者公钥以及公钥验证参数计算得到的,保证了签署者者私钥的绝对安全性。
图6示意性示出了根据本公开一实施例的验证签章的方法的流程图。
如图6所示,根据本公开一实施例的验证签章的方法包括:
操作S601:获取签署者的第一签名参数r、第二签名参数t以及签章数据N;第一签章参数r为签署者在签章时利用第四随机整数k和预设椭圆曲线的基点B生成的;第二签名参数t为签署者利用第四随机整数k和将第一签名参数r以及签章数据N基于椭圆曲线离散对数问题,运算得出后再利用签署者私钥sa签署得到的值生成的;
操作602:利用签署者的身份信息IDa、签署者的公钥Pa、验章者的公钥PSA和椭圆曲线基点B,生成签署者的公钥证明因子Va;公钥证明因子与签署者私钥sa与椭圆曲线基点B的乘积相等,且能够通过如下公式计算得到:
Va=Pa+h(IDa)·B+(X(Pa)+h(IDa))·PSA(mod p)
操作603:利用第二签名参数t和该椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r。
本实施例中,验证者收到第一签名参数r、第二签名参数t以及签章数据N后,利用签署者的身份信息IDa和公钥Pa等生成公钥证明因子,并用公钥证明因子,验证获取的第一签名参数r是否正确,从而确定签名数据N是否被篡改。
验证者收到的第一签名参数r、第二签名参数t和签章数据N是基于椭圆曲线离散对数问题,运算得出后再利用签署者私钥sa签署得到的值生成的,这样极大地提高了数据的安全性。
验证者计算生成的公钥证明因子与该签署者私钥sa与该椭圆曲线基点B的乘积相等。这样,验证者在验证参数时,可以利用公钥证明因子的这一特性对收到的签章数据N进行验证。这样,验证签章成功的前提是公钥证明因子Va等于私钥sa和所使用的预设椭圆曲线的基点B的乘积相等,即,验证签章成功的同时也验证了公钥的有效性。
本实施例使得验证者验证签章和验证其获取的签署者的公钥的有效性能够同步进行,提高了验证签章的效率。
根据本公开一实施例的验证签章的方法,操作S603中利用第二签名参数t和所述椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r包括:
计算t·B-Va·h(N,r)(mod p)=(x′a,y′a),
验证等式r=x′a(mod q)是否成立,如果等式成立,则证明验证成功。
具体地,验证签章者验证签章的具体运算过程,可以是通过计算以下公式验证:
t·B-Va·h(N,r)(mod p)
=k·B+sa·B·h(N,r)-sa·B·h(N,r)(mod p)
=(x′a,y′a)
验证签章者计算得到的(x′a,y′a)值后,若r=x′a(mod q)成立,则说明验证签章成功。
图7示意性示出了根据本公开一实施例的加密装置的框图。
如图7所示,根据本公开一实施例的加密装置700包括参数生成模块710、加密模块720和提供模块730,其中:
参数生成模块710被配置为利用第一随机整数对预设椭圆曲线上的基点B随机加密生成第一加密参数C1;
加密模块720被配置为利用公钥证明因子以及所述第一随机整数对明文数据M加密,生成第二加密参数C2;
提供模块730被配置为提供所述第一加密参数C1和第二加密参数C2给解密者;
其中,所述公钥证明因子等于所述解密者的私钥与所述基点B的乘积,且能够通过如下公式计算得到:
Vi=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p);
其中,Pi为解密者的公钥,h()为单向哈希函数,IDi为解密者的用户标识,X(Pi)为Pi在所述椭圆曲线上的X坐标值,PSA为加密者的公钥,p为所述椭圆曲线的有限域特征。
本实施例的加密装置700中,参数生成模块710利用给定区间内的第一随机整数对预设之有限域F(ρ)上的椭圆曲线的基点B进行加密运算生成的第一加密参数C1。利用第一随机整数对该椭圆曲线的基点B随机加密,从而使得加密过程中所使用的预设椭圆曲线的特性被随机加密,从而避免了恶意第三方通过累积C1值破解出所使用的预设椭圆曲线,提高了加密过程中的数据安全性。
加密模块720生成的第二加密参数C2,是同时利用公钥证明因子以及第一随机整数对明文数据据M加密而得到的,使得对明文数据M加密包括了第一随机整数以及公钥证明因子的双重影响,提高了加密数据的安全性。并且,加密模块720使用的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,这使得解密者在利用自己的私钥进行解密时,需要满足这一相等关系,才可能能解密出正确的明文数据M。
另外,公钥证明因子由解密者的公钥Pi、解密者的用户标识IDi、所使用的预设椭圆曲线的基点B以及该椭圆曲线的有限域特征p各个参数通过复杂运算得到。通过这种方式,一方面增强了公钥证明因子的破解困难度,提高了公钥证明因子的安全性,另一方面使得公钥证明因子能够等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,使得解密者可以在解密过程中利用这一特性进行解密和验证加密过程所使用的公钥的有效性。
本实施例的装置700,对所使用的预设椭圆曲线的基点进行随机加密生成第一加密参数C1,并利用公钥证明因子对明文数据M进行加密生成第二加密参数C2,最后将第一加密参数C1和第二加密参数C2给解密者提供给解密者,可以使解密者在使用自己的私钥进行解密时,利用公钥证明因子等于私钥和所使用的预设椭圆曲线基点的乘积这一特性,在进行解密的同时验证公钥的有效性,即解密者想要解密出正确的明文数据M的前提是必须要满足加密过程中使用的公钥证明因子等于解密者的私钥与所使用的预设椭圆曲线的基点B的乘积,从而使得加密者不再需要单独传送验证公钥有效性的凭证,避免了***信息传送和凭证维护的风险。
图8示意性示出了根据本公开一实施例的解密装置的框图;
如图8所示,根据本公开一实施例的解密装置800包括数据获取模块810、解密模块820,其中:
数据获取模块810被配置为获取第一加密参数以及第二加密参数,所述第一加密参数为加密者利用第一随机整数对预设椭圆曲线上的基点B随机加密生成,所述第二加密参数为加密者利用公钥证明因子以及所述第一随机整数对明文数据M加密而得到的;所述公钥证明因子等于解密者的私钥与所述基点B的乘积;
解密模块820被配置为利用如下公式对所述第二加密参数进行解密得到明文数据M:
M=C2-si·C1(mod p)
其中,C2为第二加密参数,C1为第一加密参数,p为所述椭圆曲线的有限域特征,si为解密者私钥,如下计算:
si=Wi+h(xi,IDi)(mod q)
其中,h()为单向哈希函数,IDi为解密者的用户标识,xi为第三随机整数,p为所述椭圆曲线的有限域特征,Wi从为加密者获取得到的公钥验证参数。
本实施例的解密装置800利用解密者的私钥si对收到的加密文件(包括第一加密参数C1和第二加密参数C2)进行解密时,利用生成加密文件时的公钥证明因等于解密者的私钥与椭圆曲线的基点的乘积等于这一特性,使用私钥si从加密文件中解密出明文数据。因此,解密装置800解密成功的必要条件就是接收到的加密文件中内涵的公钥证明因子要等于解密者的私钥与所使用的预设椭圆曲线的基点的乘积,也即,解密成功本身也意味着加密过程所使用的公钥具有有效性。本解密装置800通过上述方式,使得解密过程和验证公钥的有效性同步进行,从而无需在解密明文数据之前先单独验证加密文件时所使用的公钥的有效性,减少了解密者的解密运算量,简化了解密过程。
图9示意性示出了根据本公开一实施例的电子签章装置900的框图。
根据本公开一实施例的电子签章装置包括电子签章生成模块910、提供模块920,其中:
电子签章生成模块910被配置为利用第四随机整数k和预设椭圆曲线的基点B生成第一签名参数r,以及利用所述第四随机整数k、签署者的私钥sa和第一签名参数r对签章数据N进行签章,生成第二签名参数t;
提供模块920被配置为提供所述第一签名参数r、第二签名参数t和签章数据N,
其中,所述第二签名参数t利用如下公式生成:
t=k+sa·h(N,r)(mod q)
其中,h()为单向哈希函数,q为p-1的最大质因子,p为所述椭圆曲线的有限域特征。
本实施例的电子签章装置900利用所使用的预设椭圆曲线的基点B、签署者的私钥sa生成第一签名参数r和第二签名参数t,并将第一签名参数r、第二签名参数t与签章数据N提供给验证者,以备验证者在验证签章的同时可以同步地验证公钥的有效性,不再需要单独发送公钥有效性证明的凭证。
图10示意性示出了根据本公开一实施例的验证签章的装置的框图。
如图10所示,根据本公开一实施例的验证签章的装置1000包括数据获取模块1010、验证模块1020,其中
数据获取模块1010,被配置为获取签署者的第一签名参数r、第二签名参数t以及签章数据N。其中,第一签章参数r为签署者在签章时利用第四随机整数k和预设椭圆曲线的基点B生成的,第二签名参数t为签署者利用第四随机整数k和将第一签名参数r以及签章M基于椭圆曲线离散对数问题,运算得出后再利用签署者私钥sa签署得到的值生成的。
验证模块1020被配置为利用签署者的身份信息IDa、签署者的公钥Pa、验章者的公钥PSA和椭圆曲线基点B,生成签署者的公钥证明因子Va,以及利用第二签名参数t和椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r。
其中,公钥证明因子Va与签署者私钥sa与椭圆曲线基点B的乘积相等,且能够通过如下公式计算得到:
Va=Pa+h(IDa)·B+(X(Pa)+h(IDa))·PSA(mod p)。
本实施例的验证签章装置1000收到第一签名参数r、第二签名参数t以及签章数据N后,利用签署者的身份信息IDa和公钥Pa等生成公钥证明因子,并用公钥证明因子,验证获取的第一签名参数r是否正确,从而确定签名数据N是否被篡改。
数据获取模块1010收到的第一签名参数r、第二签名参数t和签章数据N是基于椭圆曲线离散对数问题,运算得出后再利用签署者私钥sa签署得到的值生成的。
验证模块1020生成的公钥证明因子,当签署者的公钥有效时,该公钥证明因子与该签署者私钥sa与该椭圆曲线基点B的乘积相等。验证模块1020在验证参数时可以利用公钥证明因子的这一特性对收到的签章数据N进行验证。这样,验证签章成功的前提是公钥证明因子Va等于私钥sa和所使用的预设椭圆曲线的基点B的乘积相等,即,验证签章成功的同时也验证了公钥的有效性。
验证模块1020的具体验证过程可以是:
计算t·B-Va·h(N,r)(mod p)=(x′ay′a),
验证等式r=x′a(mod q)是否成立,如果等式成立,则证明验证成功。
本实施例的验证模块1000使得验证签章和验证其获取的签署者的公钥的有效性能够同步进行,提高了验证签章的效率。
可以理解的是,加密装置700中的参数生成模块710、加密模块720、提供模块730,解密装置800中的数据获取模块810、解密模块820,电子签章装置900中的电子签章模块910、提供模块920,以及验证签章装置1000中的数据获取模块1010、验证模块1020,可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,加密装置700中的参数生成模块710、加密模块720、提供模块730,解密装置800中的数据获取模块810、解密模块820,电子签章装置900中的电子签章模块910、提供模块920,以及验证签章装置1000中的数据获取模块1010、验证模块1020中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,加密装置700中的参数生成模块710、加密模块720、提供模块730,解密装置800中的数据获取模块810、解密模块820,电子签章装置900中的电子签章模块910、提供模块920,以及验证签章装置1000中的数据获取模块1010、验证模块1020中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图11示意性示出了根据本公开的一实施例的密钥装置的框图。
如图11所示,密钥装置1100包括处理器1110、计算机可读存储介质1120。该密钥装置1100可以执行上面参考图1~图6描述的方法。
具体地,处理器1110例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1110还可以包括用于缓存用途的板载存储器。处理器1110可以是用于执行参考图1~图6描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1120,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体***、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质1120可以包括计算机程序1121,该计算机程序1121可以包括代码/计算机可执行指令,其在由处理器1110执行时使得处理器1110执行例如上面结合图1~图6所描述的方法流程及其任何变形。
计算机程序1121可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1121中的代码可以包括一个或多个程序模块,例如包括1121A、模块1121B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1110执行时,使得处理器1110可以执行例如上面结合图1~图6所描述的方法流程及其任何变形。
根据本公开的实施例,加密装置700中的参数生成模块710、加密模块720、提供模块730,解密装置800中的数据获取模块810、解密模块820,电子签章装置900中的电子签章模块910、提供模块920,以及验证签章装置1000中的数据获取模块1010、验证模块1020中的至少一个可以实现为参考图11描述的计算机程序模块,其在被处理器1110执行时,可以实现上面描述的相应操作。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种加密方法,包括:
利用第一随机整数对预设椭圆曲线上的基点B随机加密生成第一加密参数C1;
利用公钥证明因子以及所述第一随机整数对明文数据M加密,生成第二加密参数C2;
提供所述第一加密参数C1和第二加密参数C2给解密者;
其中,所述公钥证明因子等于所述解密者的私钥与所述基点B的乘积,且能够通过如下公式计算得到:
Vi=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p);
其中,Pi为解密者的公钥,h()为单向哈希函数,IDi为解密者的用户标识,X(Pi)为Pi在所述椭圆曲线上的X坐标值,PSA为加密者的公钥,p为所述椭圆曲线的有限域特征。
2.如权利要求1所述的加密方法,其中:
C1=z·B(mod p);
C2=M+z·Vi(mod p);
其中z为所述第一随机整数。
3.如权利要求1所述的方法,其中,在对所述明文数据M进行加密之前,还包括:
获取解密者的用户标识IDi以及基于椭圆曲线离散对数问题运算得出的所述用户标识IDi在所述预设椭圆曲线上对应的点Oi;
计算所述解密者的公钥Pi以及公钥验证参数Wi:
Pi=Oi+(ki-h(IDi))·B(mod p),
Wi=ki+sSA·(X(Pi)+h(IDi))(modq),
其中ki为第二随机整数,sSA为加密者私钥,q为p-1的最大质因子;
提供所述解密者的公钥Pi以及公钥验证参数Wi给所述解密者,以使所述解密者根据所述公钥Pi以及公钥验证参数Wi计算得到解密者的私钥。
4.一种解密方法,包括:
获取第一加密参数以及第二加密参数,所述第一加密参数为加密者利用第一随机整数对预设椭圆曲线上的基点B随机加密生成,所述第二加密参数为加密者利用公钥证明因子以及所述第一随机整数对明文数据M加密而得到的;所述公钥证明因子等于解密者的私钥与所述基点B的乘积;
利用如下公式对所述第二加密参数进行解密得到明文数据M:
M=C2-si·C1(mod p)
其中,C2为第二加密参数,C1为第一加密参数,p为所述椭圆曲线的有限域特征,si为解密者私钥,如下计算:
si=Wi+h(xi,IDi)(mod q)
其中,h()为单向哈希函数,IDi为解密者的用户标识,xi为第三随机整数,p为所述椭圆曲线的有限域特征,Wi从为加密者获取得到的公钥验证参数。
5.如权利要求4所述的解密方法,其中,在解密所述明文数据M之前,还包括:
利用第三随机整数xi和解密者的用户标识IDi,基于椭圆曲线离散对数问题运算得出的所述用户标识IDi在所述预设椭圆曲线上对应的点Oi;
将所述Oi和用户标识IDi提供给加密者;
接收加密者根据所述Oi和用户标识IDi计算得到的解密者的公钥Pi及公钥验证参数Wi;
利用所述公钥验证参数Wi计算得到解密者的私钥si,并且利用所述解密者的私钥si验证所述解密者的公钥Pi的有效性,即验证下述公式是否成立:
si·B=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p)。
6.一种电子签章方法,包括:
利用第四随机整数k和预设椭圆曲线的基点B生成第一签名参数r;
利用所述第四随机整数k、签署者的私钥sa和第一签名参数r对签章数据N进行签章,生成第二签名参数t;
提供所述第一签名参数r、第二签名参数t和签章数据N;
其中,所述第二签名参数t利用如下公式生成:
t=k+sa·h(N,r)(mod q),
其中,h()为单向哈希函数,q为p-1的最大质因子,p为所述椭圆曲线的有限域特征。
7.如权利要求6所述的电子签章方法,其中,
第一签名参数r=Xa(mod q),其中Xa为k·B(mod p)在所述椭圆曲线上的X坐标值。
8.一种验证数字签章的方法,包括:
获取签署者的第一签名参数r、第二签名参数t以及签章数据N;所述第一签章参数r为所述签署者在签章时利用第四随机整数k和预设椭圆曲线的基点B生成的;所述第二签名参数t为所述签署者利用所述第四随机整数k和将第一签名参数r以及签章数据N,基于椭圆曲线离散对数问题运算得出的值再利用签署者私钥sa签署得到的;
利用签署者的身份信息IDa、签署者的公钥Pa、验章者的公钥PSA和所述椭圆曲线基点B,生成签署者的公钥证明因子Va;所述公钥证明因子与所述签署者私钥sa与所述椭圆曲线基点B的乘积相等,且能够通过如下公式计算得到:
Va=Pa+h(IDa)·B+(X(Pa)+h(IDa))·PSA(mod p);
利用第二签名参数t和所述椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r。
9.如权利要求8所述的验证数字签章的方法,其中,利用第二签名参数t和所述椭圆曲线基点B、签署者的公钥证明因子Va验证第一签名参数r包括:
计算t·B-Va·h(N,r)(mod p)=(x′a,y′a),
验证等式r=x′a(mod q)是否成立,如果等式成立,则证明验证成功。
10.一种加密装置,包括:
参数生成模块,被配置为利用第一随机整数对预设椭圆曲线上的基点B随机加密生成第一加密参数C1;
加密模块,被配置为利用公钥证明因子以及所述第一随机整数对明文数据M加密,生成第二加密参数C2;
提供模块,被配置为提供所述第一加密参数C1和第二加密参数C2给解密者;
其中,所述公钥证明因子等于所述解密者的私钥与所述基点B的乘积,且能够通过如下公式计算得到:
Vi=Pi+h(IDi)·B+(X(Pi)+h(IDi))·PSA(mod p);
其中,Pi为解密者的公钥,h()为单向哈希函数,IDi为解密者的用户标识,X(Pi)为Pi在所述椭圆曲线上的X坐标值,PSA为加密者的公钥,p为所述椭圆曲线的有限域特征。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710180780.6A CN106972924B (zh) | 2017-03-23 | 2017-03-23 | 加密、解密、电子签章、验证签章的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710180780.6A CN106972924B (zh) | 2017-03-23 | 2017-03-23 | 加密、解密、电子签章、验证签章的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106972924A true CN106972924A (zh) | 2017-07-21 |
CN106972924B CN106972924B (zh) | 2020-06-23 |
Family
ID=59329768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710180780.6A Active CN106972924B (zh) | 2017-03-23 | 2017-03-23 | 加密、解密、电子签章、验证签章的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106972924B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829329A (zh) * | 2018-12-28 | 2019-05-31 | 航天信息股份有限公司 | 电子签章文档脱密的方法、装置、存储介质以及电子设备 |
CN111368339A (zh) * | 2019-11-06 | 2020-07-03 | 胡金钱 | 电子签章载入方法和装置 |
CN112613882A (zh) * | 2020-12-29 | 2021-04-06 | 成都知道创宇信息技术有限公司 | 一种分布式签名***及管理方法 |
CN113821807A (zh) * | 2021-08-18 | 2021-12-21 | 北京中电飞华通信有限公司 | Rfid资产信息的加密方法与装置、解密方法与装置及安全*** |
CN114070550A (zh) * | 2020-07-31 | 2022-02-18 | 马上消费金融股份有限公司 | 一种信息处理方法、装置、设备和存储介质 |
CN115915118A (zh) * | 2022-11-10 | 2023-04-04 | 中邮通建设咨询有限公司 | 一种基于广播式传播的防干扰开关的无线数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080019509A1 (en) * | 2006-07-10 | 2008-01-24 | Al-Gahtani Theeb A | Scalar multiplication method with inherent countermeasures |
CN101547099A (zh) * | 2009-05-07 | 2009-09-30 | 张键红 | 基于椭圆曲线的自认证签名方法与装置 |
CN101931529A (zh) * | 2010-08-09 | 2010-12-29 | 中兴通讯股份有限公司 | 一种数据加密方法、数据解密方法及节点 |
CN102724211A (zh) * | 2012-06-29 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种密钥协商方法 |
CN102833740A (zh) * | 2012-09-03 | 2012-12-19 | 江苏科技大学 | 一种无线传感器网络数据聚合隐私保护方法 |
-
2017
- 2017-03-23 CN CN201710180780.6A patent/CN106972924B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080019509A1 (en) * | 2006-07-10 | 2008-01-24 | Al-Gahtani Theeb A | Scalar multiplication method with inherent countermeasures |
CN101547099A (zh) * | 2009-05-07 | 2009-09-30 | 张键红 | 基于椭圆曲线的自认证签名方法与装置 |
CN101931529A (zh) * | 2010-08-09 | 2010-12-29 | 中兴通讯股份有限公司 | 一种数据加密方法、数据解密方法及节点 |
CN102724211A (zh) * | 2012-06-29 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种密钥协商方法 |
CN102833740A (zh) * | 2012-09-03 | 2012-12-19 | 江苏科技大学 | 一种无线传感器网络数据聚合隐私保护方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829329A (zh) * | 2018-12-28 | 2019-05-31 | 航天信息股份有限公司 | 电子签章文档脱密的方法、装置、存储介质以及电子设备 |
CN111368339A (zh) * | 2019-11-06 | 2020-07-03 | 胡金钱 | 电子签章载入方法和装置 |
CN114070550A (zh) * | 2020-07-31 | 2022-02-18 | 马上消费金融股份有限公司 | 一种信息处理方法、装置、设备和存储介质 |
CN112613882A (zh) * | 2020-12-29 | 2021-04-06 | 成都知道创宇信息技术有限公司 | 一种分布式签名***及管理方法 |
CN113821807A (zh) * | 2021-08-18 | 2021-12-21 | 北京中电飞华通信有限公司 | Rfid资产信息的加密方法与装置、解密方法与装置及安全*** |
CN113821807B (zh) * | 2021-08-18 | 2023-11-14 | 北京中电飞华通信有限公司 | Rfid资产信息的加密方法与装置、解密方法与装置及安全*** |
CN115915118A (zh) * | 2022-11-10 | 2023-04-04 | 中邮通建设咨询有限公司 | 一种基于广播式传播的防干扰开关的无线数据处理方法 |
CN115915118B (zh) * | 2022-11-10 | 2024-01-23 | 中邮通建设咨询有限公司 | 一种基于广播式传播的防干扰开关的无线数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106972924B (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220224551A1 (en) | Mutual authentication of confidential communication | |
CN106972924A (zh) | 加密、解密、电子签章、验证签章的方法及装置 | |
CN106416124B (zh) | 半确定性数字签名生成 | |
CN102594558B (zh) | 一种可信计算环境的匿名数字证书***及验证方法 | |
CN103490901B (zh) | 基于组合密钥体系的密钥生成和发放方法 | |
CN109274503A (zh) | 分布式协同签名方法及分布式协同签名装置、软盾*** | |
CN107483212A (zh) | 一种双方协作生成数字签名的方法 | |
US9705683B2 (en) | Verifiable implicit certificates | |
CN106341232B (zh) | 一种基于口令的匿名实体鉴别方法 | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及*** | |
US7000110B1 (en) | One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device | |
CN107124274A (zh) | 基于sm2的数字签名方法和装置 | |
KR20110090602A (ko) | 인증서버 없이 공개키를 인증하는 방법 및 장치 | |
US11212082B2 (en) | Ciphertext based quorum cryptosystem | |
CN106130716A (zh) | 基于认证信息的密钥交换***及方法 | |
US20150043735A1 (en) | Re-encrypted data verification program, re-encryption apparatus and re-encryption system | |
CN106127079A (zh) | 一种数据共享方法及装置 | |
CN109936456B (zh) | 基于私钥池的抗量子计算数字签名方法和*** | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
CN114692218A (zh) | 一种面向个人用户的电子签章方法、设备和*** | |
CN103684798A (zh) | 一种用于分布式用户服务间认证*** | |
US20150006900A1 (en) | Signature protocol | |
CN110519040B (zh) | 基于身份的抗量子计算数字签名方法和*** | |
JP2011250335A (ja) | 効率的相互認証方法,プログラム,及び装置 | |
JP5101535B2 (ja) | 認証方法、認証システム、プログラムおよび共有鍵生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |