CN102487321B - 一种签密方法和系统 - Google Patents
一种签密方法和系统 Download PDFInfo
- Publication number
- CN102487321B CN102487321B CN201010578298.6A CN201010578298A CN102487321B CN 102487321 B CN102487321 B CN 102487321B CN 201010578298 A CN201010578298 A CN 201010578298A CN 102487321 B CN102487321 B CN 102487321B
- Authority
- CN
- China
- Prior art keywords
- recipient
- transmit leg
- private key
- information
- obtains
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种签密方法和系统。该签密方法包括:在有限域内确定椭圆曲线,生成包括相对应的QA、dA的发送方公私密钥对和包括相对应的QB、dB的接收方公私密钥对,QA、QB均为椭圆曲线的点;发送方根据椭圆曲线的基点G,生成明文m的填充信息p,将m与p连为m||p后,根据QB将其加密为密文c;确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的s,k为小于G的阶的随机正整数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s、e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解;发送方将c和s作为签密信息发送到接收方;接收方利用c的哈希值e及G、s、QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到B;根据dB和B对c解密得到m和p;根据B生成m的接收方填充信息p’;判断p与p’是否相等来验证发送方是否发送了针对m的签密信息。利用本发明能提高保密和认证的运算效率。
Description
技术领域
本发明涉及计算机应用领域,特别是涉及一种签密方法和系统。
背景技术
在计算机应用领域中,保密和认证是最重要的问题之一。现有技术常用加密手段达到保密的目的,用数字签名的手段达到认证的目的,即计算机之间在传输数据时,通常需要对这些数据进行加密,以防止发生泄密事件,同时,为了防止数据发送方与接收方之间发生数据传输责任方面的纠纷、并防止第三方假冒发送方向接收方传输数据,发送方在发送加密数据的同时,还要向接收方发送数字签名,以供接收方根据该数字签名来确认发送方确实发送了该加密数据,这有效防止了发送方否认发送过数据、接收方否认接收到正确的数据以及第三方假冒发送方等事件的发生。
现有技术中,明文数据从发送方传输到接收方的过程要同时满足保密和认证的要求,因而发送方需要将明文数据加密后的密文和数字签名同时发送给接收方。这样,发送方在发送密文和数字签名之前,要进行明文加密和生成数字签名两项工作。现有技术中,加密和生成数字签名是采用两套算法先后进行的,虽然二者的先后顺序可以颠倒,但发送方必须按照两套算法运算完毕才能获得密文和数字签名,因此,现有技术进行保密和认证的运算效率比较低。
发明内容
本发明所要解决的技术问题是提供一种签密方法和系统,能提高保密和认证的运算效率。
本发明解决上述技术问题的技术方案如下:一种签密方法,该方法包括:
在有限域内确定椭圆曲线,并生成发送方公私密钥对和接收方公私密钥对;其中,所述发送方公私密钥对包括相互对应的发送方公钥QA和发送方私钥dA,所述接收方公私密钥对包括相互对应的接收方公钥QB和接收方私钥dB,且QA和QB均为所述椭圆曲线上的点;所述椭圆曲线的基点记为G;
发送方根据G,生成明文m的填充信息p,并将m与p连接为填充明文m||p;发送方根据QB,将m||p加密为密文c;
发送方根据c的哈希值e,以及dA,确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s;其中,k为小于G的阶的随机正整数,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解;
发送方将c和s作为签密信息,发送到接收方;
接收方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;
接收方根据dB和B,对c进行解密,得到m和p;
接收方根据B生成m的接收方填充信息p’;
接收方判断p与p’是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
本发明的有益效果是:本发明中,发送方公私密钥对中的发送方公钥QA和发送方私钥dA,以及接收方公私密钥对中的接收方公钥QB和接收方私钥dB分别相互对应,且QA和QB均为椭圆曲线上的点,发送方可利用椭圆曲线的基点G生成明文m的填充信息p,提供给接收方来验证发送方确实发送了针对m的签密信息,发送方在将m和p连接为填充明文m||p后,即可根据QB将m||p加密为密文c,这样,发送方用椭圆曲线签密的方法实现了明文数据的保密和认证工作;发送方利用c的哈希值e和dA确定出满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s,并将c和s作为签密信息发送给接收方之后,接收方即可利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B,然后根据dB和B对c进行解密,从而得到明文信息m和填充信息p,接着,接收方可根据B生成m的接收方填充信息p’,通过判断p与p’是否相等,即可实现认证过程,因此,本发明中,发送方可以利用椭圆曲线签密方法一次性实现对明文m进行加密得到密文c和验证用的填充信息p,从而实现保密和认证功能,相对于现有技术先后执行两套算法来实现保密和认证功能,本发明大大提高了保密和认证的运算效率。
在上述技术方案的基础上,本发明还可以做如下改进:
进一步,在生成发送方公私密钥对和接收方公私密钥对之后,该方法进一步包括:将QA与发送方的身份信息相对应、将QB与接收方的身份信息相对应,发送到证书管理机构;
所述证书管理机构判断所述发送方的身份信息是否真实,如果是,则生成发送方的数字证书发布到目录服务协议LDAP服务器上;其中,所述发送方的数字证书包括QA和发送方的身份信息;
所述证书管理机构判断所述接收方的身份信息是否真实,如果是,则生成接收方的数字证书发布到LDAP服务器上;其中,所述接收方的数字证书包括QB和接收方的身份信息;
则在发送方根据QB,将m||p加密为密文c之前,该方法进一步包括:发送方从所述LDAP服务器上获得QB;
在接收方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B之前,该方法进一步包括:接收方从所述LDAP服务器上获得QA。
进一步,发送方根据QB,将m||p加密为密文c的方法为:发送方随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k1将m||p加密为密文c;
接收方根据dB和B,对c进行解密,得到m和p的方法为:接收方将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k1对c进行解密,得到m和p;
则该方法进一步包括:接收方将k1和所述签密信息发送到仲裁方;所述仲裁方根据k1对c进行解密,得到m和p;仲裁方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;仲裁方根据B生成m的仲裁方填充信息p”;仲裁方判断p与p”是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息;
或,
发送方根据QB,将m||p加密为密文c的方法为:发送方随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k2将m||p加密为密文c;
接收方根据dB和B,对c进行解密,得到m和p的方法为:接收方将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k2对c进行解密,得到m和p;
则该方法进一步包括:接收方将k2和所述签密信息发送到仲裁方;所述仲裁方根据k2对c进行解密,得到m和p;仲裁方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;仲裁方根据B生成m的仲裁方填充信息p”;仲裁方判断p与p”是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
进一步,发送方随机从小于G的阶的正整数中选定k之后,发送方根据所述椭圆曲线的基点G,生成明文m的填充信息p的方法为:发送方将k与所述椭圆曲线的基点G进行标量乘运算,得到填充点M;根据M生成明文m的填充信息p。
进一步,生成发送方公私密钥对的方法为:随机从小于G的阶的正整数中选取dA作为发送方私钥;将dA与G进行标量乘运算,生成发送方公钥QA;
和/或,
生成接收方公私密钥对的方法为:随机从小于G的阶的正整数中选取dB作为接收方私钥;将dB与G进行标量乘运算,生成接收方公钥QB。
进一步,所述有限域为大素数域或二元域。
进一步,G的阶为素数,且其二进制比特位数大于160。
进一步,f1(s)的函数式为f1(s)=s;和/或,f2(s)的函数式为f2(s)=s。
本发明还提出了一种签密系统,该系统包括:曲线与密钥生成模块、签密模块、解密与验证模块,其中,
所述曲线与密钥生成模块用于,在有限域内确定椭圆曲线,并生成发送方公私密钥对和接收方公私密钥对;其中,所述发送方公私密钥对包括相互对应的发送方公钥QA和发送方私钥dA,所述接收方公私密钥对包括相互对应的接收方公钥QB和接收方私钥dB,且QA和QB均为所述椭圆曲线上的点;将所述椭圆曲线的基点G和G的阶发送到所述签密模块;将G发送到所述解密与验证模块;
所述签密模块用于,根据G生成明文m的填充信息p,并将m与p连接为填充明文m||p;根据QB将m||p加密为密文c;根据c的哈希值e,以及dA,确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s;其中,k为小于G的阶的随机正整数,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解;将c和s作为签密信息,发送到解密与验证模块;
所述解密与验证模块用于,利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据dB和B,对c进行解密,得到m和p;根据B生成m的接收方填充信息p’;判断p与p’是否相等。
进一步,该系统包括数字证书模块;
所述曲线与密钥生成模块进一步用于,将QA与发送方的身份信息相对应、将QB与接收方的身份信息相对应,发送到所述数字证书模块;
所述数字证书模块用于,判断所述发送方的身份信息是否真实;生成发送方的数字证书发布到自身的服务器上,所述发送方的数字证书包括QA和发送方的身份信息;判断所述接收方的身份信息是否真实;生成接收方的数字证书发布到自身的服务器上,所述接收方的数字证书包括QB和接收方的身份信息;
则所述签密模块进一步用于,从所述数字证书模块的服务器上获得QB;
所述解密与验证模块进一步用于,从所述数字证书模块的服务器上获得QA。
进一步,该系统包括仲裁模块;
所述签密模块用于,随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k1将m||p加密为密文c;
所述解密与验证模块用于,将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k1对c进行解密,得到m和p;将k1和所述签密信息发送到所述仲裁模块;
则所述仲裁模块用于,根据k1对c进行解密,得到m和p;利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据B生成m的仲裁方填充信息p”;判断p与p”是否相等;
或,
所述签密模块用于,随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k2将m||p加密为密文c;
所述解密与验证模块用于,将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k2对c进行解密,得到m和p;将k2和所述签密信息发送到所述仲裁模块;
则所述仲裁模块用于,根据k2对c进行解密,得到m和p;利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据B生成m的仲裁方填充信息p”;判断p与p”是否相等。
进一步,所述签密模块用于,将k与所述椭圆曲线的基点G进行标量乘运算,得到填充点M;根据M生成明文m的填充信息p。
进一步,所述曲线与密钥生成模块用于,随机从小于G的阶的正整数中选取dA作为发送方私钥;将dA与G进行标量乘运算,生成发送方公钥QA;随机从小于G的阶的正整数中选取dB作为接收方私钥;将dB与G进行标量乘运算,生成接收方公钥QB。
进一步,所述有限域为大素数域或二元域。
进一步,G的阶为素数,且其二进制比特位数大于160。
进一步,f1(s)的函数式为f1(s)=s;和/或,f2(s)的函数式为f2(s)=s。
附图说明
图1为本发明提供的签密方法的流程图;
图2为本发明提供的签密系统的结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明提供的签密方法的流程图。如图1所示,该方法包括:
步骤101:在有限域内确定椭圆曲线,并生成发送方公私密钥对和接收方公私密钥对;其中,发送方公私密钥对包括相互对应的发送方公钥QA和发送方私钥dA,接收方公私密钥对包括相互对应的接收方公钥QB和接收方私钥dB,且QA和QB均为椭圆曲线上的点。
本步骤中生成的发送方公私密钥对和接收方公私密钥对,是用于供发送方对明文数据进行加密、供接收方对密文进行解密以及对发送方是否发送了针对m的签密信息进行认证的。其中,发送方可利用接收方公私密钥对中的接收方公钥QB和发送方公私密钥对中的发送方私钥dA,对明文数据m进行加密、产生m的填充信息p以供接收方验证发送方确实发送了针对m的签密信息,并产生签密特征值s以供接收方解密;接收方可利用发送方公私密钥对中的发送方公钥QA和接收方公私密钥对中的接收方私钥dB,对密文c进行解密得到明文数据m和填充信息p,并生成m的接收方填充信息p’,以与p进行比较从而验证发送方是否发送了针对m的签密信息。
发送方公私密钥对中的QA和dA是相互对应的,接收方公私密钥对中的QB和dB也是相互对应的,这两个对应关系可以实现如下的功能:发送方利用QB对明文m和填充信息p连接后的填充明文m||p加密所得到的密文c,可由接收方利用dB对其解密从而得到m和p;发送方利用dA确定签密特征值s,接收方即可利用s和QA获得中间点B,从而对c进行解密以及生成m的接收方填充信息p’,实现对发送方是否发送了针对m的签密信息进行验证。
本发明采用的技术为椭圆曲线签密技术,这意味着本发明中,发送方公私密钥对中的QA和接收方公私密钥对中的QB均为在有限域内确定的椭圆曲线上的点。其中,有限域可以为大素数域,记为F(p),p为大素数域F的参数,有限域也可以为二元域,记为m为二元域F的参数。这样,有限域F上的椭圆曲线记为E(F),该椭圆曲线是一条由离散的点组成的封闭曲线,其离散性和封闭性具体表现为:该椭圆曲线上有阶为n的点G,对于闭区间[1,n-1]内的任一正整数k,其与点G进行标量乘运算之后所得到的新的点仍在该椭圆曲线E(F)上。数学原理已证明,对于已知的E(F)上的点G以及G与某一小于其阶n的正整数k进行标量乘运算所得到的另外一点Q,要确定正整数k是极其困难的,而本发明利用椭圆曲线签密技术来保证数据传输的安全性的依据,也就在于定义在椭圆曲线上的离散点的求k问题的难解性。有数据表明,按现在的计算机技术水平,在密钥长度为1024位的情况下,要破解现有技术所采用的RSA密钥,需要上千年的计算时间,而要破解本发明所采用的建立在有限域内的椭圆曲线上的发送方公钥和接收方公钥,需要更长的时间,因此,可以认为本发明所采用的椭圆曲线签密技术是非常安全的。
以有限域为大素数域F(p)的情况为例,说明在有限域内确定椭圆曲线的方法:
在大素数域F(p)中,椭圆曲线的方程为y2=x3+ax+b,其中,x和y分别为椭圆曲线上的点的横坐标和纵坐标,该椭圆曲线基点为G,G的坐标为(Gx,Gy),G的阶为n。要确定一条椭圆曲线,只需确定该椭圆曲线的方程即可,因此,在大素数域F(p)中确定椭圆曲线y2=x3+ax+b,只需确定p、a、b、Gx、Gy和n这几个参数即可。
本发明给出大素数域中的椭圆曲线的一组参数如下,这些参数均为十六进制参数,且长度均为256比特:
p=FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF;
a=FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC;
b=5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B;
Gx=6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296;
Gy=4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5;
n=FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551。
当然,椭圆曲线的这些参数也可以设置为其他数值,各参数的二进制比特位的长度也可以设置为其他长度,并且其长度也可以相互不同,只需满足该椭圆曲线的基点G的阶n为素数,且n的二进制比特位数大于160即可。
在有限域为二元域的情况下,确定椭圆曲线的方法也为通过确定该椭圆曲线的参数来确定该椭圆曲线,与大素数域下确定椭圆曲线的区别仅在于,二元域下所确定的椭圆曲线的参数与大素数域下的不同,在二元域下的椭圆曲线的参数已在数学领域成为公知常识,也包括该椭圆曲线的基点G,该基点G也有阶n,其他参数在此不做赘述。
步骤102:发送方根据椭圆曲线的基点G,生成明文m的填充信息p,并将m与p连接为填充明文m||p;发送方根据QB,将m||p加密为密文c。
这里,明文m为发送方实际要发送的数据。
发送方根据椭圆曲线的基点G,可以生成m的填充信息p,p用于供接收方验证发送方是否发送了针对m的签密信息,另外,p也可以用于与m连接为填充明文m||p,以保证m||p加密后得到的密文c的长度符合规定。
发送方根据QB将m||p加密为密文c,这样,接收方就可以根据与QB对应的dB,对密文c进行解密得到m和p,同时,由于利用QB来推得dB是极其困难的,因此,即使c在传输中被第三方截获,没有获得dB的第三方也不可能将c解密,这也就保证了本发明中传输的信息的安全性。
发送方根据QB将m||p加密为密文c的方法可以为对称密钥算法,也可以为非对称密钥算法。
步骤103:发送方根据c的哈希值e,以及dA,确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s;其中,k为小于G的阶的随机正整数,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解。
这里,发送方对步骤102所得到的密文c进行哈希运算,得到c的哈希值e,然后利用自身保存的dA,来确定满足方程f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s,s是作为发送方所发送的签密信息的一部分发送给接收方的,用于供接收方生成中间点B,从而进一步利用B来对c解密和生成m的接收方填充信息p’以验证发送方是否发送了针对m的签密信息。
利用dA来确定s,可以保证接收方利用QA获得中间点B,由于利用QA来确定dA是极其困难的,因此,本发明中的密钥也是安全的。
f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解,可以保证本步骤中确定的s是唯一的,从而也就保证了步骤104向接收方发送的签密信息的唯一性,因而接收方在利用s确定B的过程是唯一的,不会发生得到两个以上的s造成接收方无法确定B,进而无法解密和验证的问题。
在G的阶记为n的情况下,k为小于G的阶的随机正整数,意味着k为闭区间[1,n-1]内的正整数,且k为随机在该闭区间内选取的,本发明在小于G的阶的正整数中随机选取k,有利于保证本步骤所确定的s为外部不可知的,这也有利于本发明中的密钥和信息的安全性。
本发明中,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数。
f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,可以保证任何第三方都不可能冒充发送方,向接收方发送伪造的明文m0,从而有利于本发明中的数据和密钥的安全性。可以用反证法来对这一结论加以证明:
设f1(s)g0(e)+g1(e)为与s、e无关,则该式即可看做是与s、e无关的常量l,将l=f1(s)g0(e)+g1(e)代入方程f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA,可得
l=k+(f2(s)g2(e)+g3(e))dA (1)
设有第三方截获了发送方发送给接收方的签密信息,即第三方获得了密文c和签密特征值s,并且该第三方企图冒充发送方,将伪造的明文m0加密为密文c0后替换发送方发送给接收方的密文c,则该第三方根据椭圆曲线的基点G生成m0的填充信息p0,并且将m0和p0连接为填充明文m0||p0后,对其加密得到密文c0,然后通过哈希运算得到c0的哈希值e0;这样,第三方只需要计算得到关于c0的签密特征值s0,即可实现冒充发送方向接收方发送伪造明文m0的目标;
式(1)中,k为一小于基点G的阶的随机正整数,在发送方将签密信息发出的情况下,k已为一定值,l也为常量,因此,l与k相减所得的差值也为常量,这种情况下,第三方虽然不可能获得式(1)中的发送方私钥dA,但由于该式对于发送方所发送的签密信息(c,s)以及第三方所发送的伪造签密信息(c0,s0)都是成立的,因此,有下式成立:
f2(s0)g2(e0)+g3(e0)=f2(s)g2(e)+g3(e)) (2)
式(2)中,第三方可以确定s、c的哈希值e以及e0,这样,第三方根据式(2)即可确定伪造的签密特征值s0;
这样,第三方就可以用伪造的签密信息(c0,s0)替换发送方发送的签密信息(c,s)发送给接收方,从而使发送方发送的签密信息丢失,这严重影响了发送方数据的安全,因此,前述f1(s)g0(e)+g1(e)与s、e无关的假设是不可行的,f1(s)g0(e)+g1(e)必须与s和e相关,才能保证本发明的数据安全性。
同理,f2(s)g2(e)+g3(e)也必须与s和e相关,不再重复证明。
步骤104:发送方将c和s作为签密信息,发送到接收方。
这里,发送方将c和s作为签密信息发送到接收方,接收方可以利用该签密信息,解密得到明文m,并对发送方是否发送了针对m的签密信息进行验证。
步骤105:接收方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B。
这里,接收方在步骤104中接收到c和s组成的签密信息后,可以计算得到c的哈希值e,然后利用e、G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B,进而在后续步骤中利用B对c解密得到m和p,并利用B获得接收方填充信息p’,进而利用p和p’来验证发送方是否发送了针对m的签密信息。
计算B的公式B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA是与步骤103中确定s的方程f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA相对应的。
步骤106:接收方根据dB和B,对c进行解密,得到m和p。
这里,接收方利用dB和B,即可对c进行解密,解密的运算为与步骤102中根据QB将m||p加密为密文c的运算的逆运算,解密得到m||p,根据发送方和接收方对于填充信息p的长度约定,从解密得到的m||p中分离出m和p。
步骤107:接收方根据B生成m的接收方填充信息p’,并判断p与p’是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
这里,接收方在步骤106中解密得到明文m之后,还要对发送方是否发送了针对m的签密信息进行验证,如果验证通过,则说明接收方所收到的签密信息确实为发送方所发出的,且该签密信息为针对m的签密信息,同时,本步骤也可以确定发送方的具体身份,即在存在多个发送方的情况下,接收方可以利用本步骤精确确定每一个签密信息的发送方,另外,本步骤验证通过后,接收方就可以根据收到的明文进行相应的操作,并防止发送方否认曾经发送过该签密信息。进一步地,该验证通过,也意味着接收方不能否认自身已收到该签密信息,而且也可以证明该签密信息不是由任何第三方所伪造传输过来的。
接收方是利用在步骤106中解密得到的p和本步骤中生成的m的接收方填充信息p’来验证发送方是否发送了针对m的签密信息的,如果二者相等,则验证通过,说明发送方确实发送了针对m的签密信息,并且该签密信息在传输过程中并未被篡改,如果二者不相等,则验证不通过,可以确认发送方并未发送针对m的签密信息,这种情况下,有可能是发送方所发送的针对m的签密信息在发送到接收方之前被篡改过,也有可能是发送方所发送的信息并非针对m的签密信息,在这种情况下,接收方不能根据收到的签密信息进行下一步的操作。
接收方是根据B生成m的接收方填充信息p’的,其方法与步骤102中发送方根据G生成p的方法相同。
由此可见,本发明中,发送方公私密钥对中的发送方公钥QA和发送方私钥dA,以及接收方公私密钥对中的接收方公钥QB和接收方私钥dB分别相互对应,且QA和QB均为椭圆曲线上的点,发送方可利用椭圆曲线的基点G生成明文m的填充信息p,提供给接收方来验证发送方确实发送了针对m的签密信息,发送方在将m和p连接为填充明文m||p后,即可根据QB将m||p加密为密文c,这样,发送方用椭圆曲线签密的方法实现了明文数据的保密和认证工作;发送方利用c的哈希值e和dA确定出满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s,并将c和s作为签密信息发送给接收方之后,接收方即可利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B,然后根据dB和B对c进行解密,从而得到明文信息m和填充信息p,接着,接收方可根据B生成m的接收方填充信息p’,通过判断p与p’是否相等,即可实现认证过程,因此,本发明中,发送方可以利用椭圆曲线签密方法一次性实现对明文m进行加密得到密文c和验证用的填充信息p,从而实现保密和认证功能,相对于现有技术先后执行两套算法来实现保密和认证功能,本发明大大提高了保密和认证的运算效率。
本发明中,在步骤101生成发送方公私密钥对和接收方公私密钥对之后,该方法进一步包括:将QA与发送方的身份信息相对应、将QB与接收方的身份信息相对应,发送到证书管理机构;
证书管理机构判断发送方的身份信息是否真实,如果是,则生成发送方的数字证书发布到目录服务协议LDAP服务器上;其中,发送方的数字证书包括QA和发送方的身份信息;
证书管理机构判断接收方的身份信息是否真实,如果是,则生成接收方的数字证书发布到LDAP服务器上;其中,接收方的数字证书包括QB和接收方的身份信息;
则在发送方根据QB,将m||p加密为密文c之前,该方法进一步包括:发送方从LDAP服务器上获得QB;
在接收方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B之前,该方法进一步包括:接收方从LDAP服务器上获得QA。
这里,证书管理机构是作为验证发送方和接收方的身份信息、并存储、发布QA和QB的中立的第三方诚信机构而存在的,其判断发送方或接收方的身份信息为真实的情况下,将QA或QB发送到LDAP服务器上,可以起到存储和公示QA和QB的作用,任何机构和个人都可以访问LDAP服务器来获得QA和QB。如果证书管理机构判断发送方或接收方的身份信息为虚假信息,则不会将QA或QB发布到其LDAP服务器上,因而其他机构或个人也无法获得QA或QB,从而无法与发送方或接收方进行通信,这样,证书管理机构也就起到了保证发送方和接收方诚信的作用。
步骤102中,发送方根据QB,将m||p加密为密文c的方法可以为:发送方随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k1将m||p加密为密文c;
步骤106中,接收方根据dB和B,对c进行解密,得到m和p的方法为:接收方将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k1对c进行解密,得到m和p;
则该方法进一步包括:接收方将k1和签密信息发送到仲裁方;仲裁方根据k1对c进行解密,得到m和p;仲裁方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;仲裁方根据B生成m的仲裁方填充信息p”;仲裁方判断p与p”是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
由此可见,本发明中,发送方是采用对称密钥算法对m||p进行加密得到密文的,在加密和解密的过程中所使用的密钥相同,均为k与QB标量乘运算得到的形式为(k1,k2)的数组中的前一项k1。
当然,加密和解密用的密钥也可以为该数组中的第二项k2,这样,步骤102中,发送方根据QB,将m||p加密为密文c的方法为:发送方随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k2将m||p加密为密文c;
步骤106中,接收方根据dB和B,对c进行解密,得到m和p的方法为:接收方将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k2对c进行解密,得到m和p;
则该方法进一步包括:接收方将k2和签密信息发送到仲裁方;仲裁方根据k2对c进行解密,得到m和p;仲裁方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;仲裁方根据B生成m的仲裁方填充信息p”;仲裁方判断p与p”是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
由于k是发送方随机从小于G的阶的正整数中选定的,因此,发送方之外的任何机构或个人都无法获知k的值,也就无法获得加密和解密用的密钥,这有利于保证本发明的密钥和信息的安全。
另外,本发明还提供了中立的仲裁方,用于防范和解决发送方和接收方之间的纠纷。由于接收方将自身所得到的密钥以及签密信息发送给了仲裁方,因此,仲裁方可以根据该密钥对密文c独立进行解密,得到m和p,并独立生成仲裁方填充信息p”,以与自身独立获得的p进行比较,从而独立验证发送方是否发送了针对m的签密信息,这样,在发送方和接收方之间存在纠纷和争议的情况下,中立的仲裁方就可以利用自身独立得到的数据来对二者的争议和纠纷进行仲裁。
本发明中,发送方随机从小于G的阶的正整数中选定k之后,步骤102中发送方根据椭圆曲线的基点G,生成明文m的填充信息p的方法为:发送方将k与椭圆曲线的基点G进行标量乘运算,得到填充点M;根据M生成明文m的填充信息p。
发送方根据M生成p的方法在现有技术中已有很多论述,在此不做赘述。
步骤101中,生成发送方公私密钥对的方法可以为:随机从小于G的阶的正整数中选取dA作为发送方私钥;将dA与G进行标量乘运算,生成发送方公钥QA;
同样,生成接收方公私密钥对的方法可以为:随机从小于G的阶的正整数中选取dB作为接收方私钥;将dB与G进行标量乘运算,生成接收方公钥QB。
这里,由于dA和dB均为随机从小于G的阶的正整数中选取的,因此,发送方之外的任何机构或个人都无法获知dA,接收方之外的任何机构或个人也都无法获知dB,只要发送方和接收方不泄露,dA和dB是永远不会泄露的,这保证了本发明中的密钥安全。
本发明中,公钥QA和QB分别为相应的私钥dA和dB与G进行标量乘运算得到,因此,QA与dA、以及QB与dB之间是有步骤101所述的对应关系的。
本发明中,有限域为大素数域的情况下,椭圆曲线的基点G的阶为素数,且其二进制比特位数大于160,这符合国际标准对椭圆曲线签密技术的要求,有利于保证密钥和数据的安全。
步骤103和步骤105中的f1(s)的函数式的较佳实施例为f1(s)=s。
同样,f2(s)的函数式的较佳实施例为f2(s)=s。
本发明中,f1(s)和f2(s)的函数式分别设置为f1(s)=s和f2(s)=s,这是符合要求的f1(s)和f2(s)的函数式的最简洁表达式,采用该实施例,有利于进一步提高本发明的运算效率。
现有技术中,发送方除了向接收方发送密文之外,还要发送数字签名,以供接收方进行验证,这样,发送方向接收方所发送的数据通常包括三部分内容,可用(c,r,s)的形式来表征,其中,c表示密文,其二进制比特位数与明文m大致相同;r和s均为发送方和接收方之间约定的有关数据加解密和签名验证方面的特征参数,二者的二进制比特位数大致相同,约等于基点的阶的长度。因此,现有技术中,发送方所发送的数据包的总长度约为基点的阶的长度的两倍与明文m的长度相加所得的和。
本发明中,发送方向接收方发送的签密信息可用(c,s)的形式来表征,比现有技术少发送了一个参数,其中,密文c的长度也与明文m的长度大致相同,而s的长度也与椭圆曲线的基点的阶的长度大致相同,因此,本发明中发送方所发送的数据包的总长度仅为基点的阶的长度与明文m的长度相加所得的和,由此可见,由于本发明中发送方可以比现有技术少发送一个特征参数,因而本发明中发送方发送的数据的长度远远小于现有技术。
由于本发明中发送方所发送的数据的长度远远小于现有技术,因此,本发明能够提高发送方与接收方之间的通信效率,在发送方与接收方之间的通信带宽比较窄的情况下,本发明有利于提高通信的速度,同时,与现有技术相比,在发送方所发送的数据长度相同的情况下,本发明能节省通信所使用的带宽,并节省存储数据所占用的存储空间。
图2为本发明提供的签密系统的结构图。如图2所示,该系统包括:曲线与密钥生成模块201、签密模块202、解密与验证模块203,其中,
曲线与密钥生成模块201用于,在有限域内确定椭圆曲线,并生成发送方公私密钥对和接收方公私密钥对;其中,发送方公私密钥对包括相互对应的发送方公钥QA和发送方私钥dA,接收方公私密钥对包括相互对应的接收方公钥QB和接收方私钥dB,且QA和QB均为椭圆曲线上的点;将椭圆曲线的基点G和G的阶发送到签密模块202;将G发送到解密与验证模块203;
签密模块202用于,根据G生成明文m的填充信息p,并将m与p连接为填充明文m||p;根据QB将m||p加密为密文c;根据c的哈希值e,以及dA,确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s;其中,k为小于G的阶的随机正整数,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解;将c和s作为签密信息,发送到解密与验证模块203;
解密与验证模块203用于,利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据dB和B,对c进行解密,得到m和p;根据B生成m的接收方填充信息p’;判断p与p’是否相等。
由此可见,曲线与密钥生成模块201所生成的发送方公私密钥对中的发送方公钥QA和发送方私钥dA,以及接收方公私密钥对中的接收方公钥QB和接收方私钥dB分别相互对应,且QA和QB都为椭圆曲线上的点,签密模块202可利用椭圆曲线的基点G生成明文m的填充信息p,提供给解密与验证模块203对发送方是否发送了针对明文m的签密信息进行验证,签密模块202在将m和p连接为填充明文m||p后,即可根据QB将m||p加密为密文c,这样,签密模块202用椭圆曲线签密的方法实现了明文数据的保密和认证工作;签密模块202利用c的哈希值e和dA确定出满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s,并将c和s作为签密信息发送给解密与验证模块203之后,解密与验证模块203即可利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B,然后根据dB和B对c进行解密,从而得到明文信息m和填充信息p,接着,解密与验证模块203可根据B生成m的接收方填充信息p’,通过判断p与p’是否相等,即可实现认证过程,因此,本发明中,签密模块202可以利用椭圆曲线签密技术一次性实现对明文m进行加密得到密文c和验证用的填充信息p,从而实现保密和认证功能,相对于现有技术先后执行两套算法来实现保密和认证功能,本发明大大提高了保密和认证的运算效率。
该系统进一步包括数字证书模块;则
曲线与密钥生成模块201进一步用于,将QA与发送方的身份信息相对应、将QB与接收方的身份信息相对应,发送到数字证书模块;
数字证书模块用于,判断发送方的身份信息是否真实;生成发送方的数字证书发布到自身的服务器上,发送方的数字证书包括QA和发送方的身份信息;判断接收方的身份信息是否真实;生成接收方的数字证书发布到自身的服务器上,接收方的数字证书包括QB和接收方的身份信息;
则签密模块202进一步用于,从数字证书模块的服务器上获得QB;
解密与验证模块203进一步用于,从数字证书模块的服务器上获得QA。
这里,数字证书模块可以作为验证发送方和接收方的身份信息、存储和发布QA和QB的中立的第三方模块,从而保证本发明中发送方和接收方身份信息的真实性。
本发明中,该系统进一步包括仲裁模块;
签密模块202可以用于,随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k1将m||p加密为密文c;
解密与验证模块203可以用于,将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k1对c进行解密,得到m和p;将k1和签密信息发送到仲裁模块;
则仲裁模块可以用于,根据k1对c进行解密,得到m和p;利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据B生成m的仲裁方填充信息p”;判断p与p”是否相等;
当然,签密模块202也可以用于,随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k2将m||p加密为密文c;
解密与验证模块203用于,将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k2对c进行解密,得到m和p;将k2和签密信息发送到仲裁模块;
则仲裁模块用于,根据k2对c进行解密,得到m和p;利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据B生成m的仲裁方填充信息p”;判断p与p”是否相等。
利用仲裁模块可以用于防范和解决信息发送的纠纷。由于解密与验证模块203将自身所得到的密钥以及签密信息发送给了仲裁模块,因此,仲裁模块可以根据该密钥对密文c独立进行解密,得到m和p,并独立生成仲裁方填充信息p”,以与自身独立获得的p进行比较,从而验证发送方是否发送了针对明文m的签密信息,这样,在存在信息传输方面的纠纷的情况下,中立的仲裁模块就可以利用自身独立得到的数据来对该纠纷进行仲裁。
该系统中,签密模块202用于,将k与椭圆曲线的基点G进行标量乘运算,得到填充点M;根据M生成明文m的填充信息p。
该系统中,曲线与密钥生成模块201用于,随机从小于G的阶的正整数中选取dA作为发送方私钥;将dA与G进行标量乘运算,生成发送方公钥QA;随机从小于G的阶的正整数中选取dB作为接收方私钥;将dB与G进行标量乘运算,生成接收方公钥QB。
该系统中,有限域为大素数域或二元域。
该系统中,G的阶为素数,且其二进制比特位数大于160。
该系统中,f1(s)的函数式可以为f1(s)=s,f2(s)的函数式也可以为f2(s)=s。
由此可见,本发明具有以下优点:
(1)本发明中,发送方公私密钥对中的发送方公钥QA和发送方私钥dA,以及接收方公私密钥对中的接收方公钥QB和接收方私钥dB分别相互对应,且QA和QB均为椭圆曲线上的点,发送方可利用椭圆曲线的基点G生成明文m的填充信息p,提供给接收方来验证发送方确实发送了针对m的签密信息,发送方在将m和p连接为填充明文m||p后,即可根据QB将m||p加密为密文c,这样,发送方用椭圆曲线签密的方法实现了明文数据的保密和认证工作;发送方利用c的哈希值e和dA确定出满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s,并将c和s作为签密信息发送给接收方之后,接收方即可利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B,然后根据dB和B对c进行解密,从而得到明文信息m和填充信息p,接着,接收方可根据B生成m的接收方填充信息p’,通过判断p与p’是否相等,即可实现认证过程,因此,本发明中,发送方可以利用椭圆曲线签密方法一次性实现对明文m进行加密得到密文c和验证用的填充信息p,从而实现保密和认证功能,相对于现有技术先后执行两套算法来实现保密和认证功能,本发明大大提高了保密和认证的运算效率。
(2)本发明利用有限域中的椭圆曲线签密技术对明文进行签密,任何第三方都极难破解发送方所发送的密文,因而本发明的信息安全性非常高。
(3)本发明中,由于发送方公钥和接收方公钥均为有限域下椭圆曲线上的点,任何第三方想根据公钥来获得私钥是不可能的,因此,即使发生密文在传输中被第三方截获的情况,该密文也不能被解密,这保证了本发明中密钥和信息的安全性。
(4)f1(s)和f2(s)的函数式分别设置为f1(s)=s和f2(s)=s,这是符合要求的f1(s)和f2(s)的函数式的最简洁表达式,本发明采用这种设置,可以进一步提高运算效率。
(5)本发明中,由于发送方所发送的数据的长度远远小于现有技术,因此,本发明能够提高发送方与接收方之间的通信效率,在发送方与接收方之间的通信带宽比较窄的情况下,本发明有利于提高通信的速度,在发送方所发送的数据长度相同的情况下,本发明可比现有技术用更少的通信带宽完成传输,并节省存储数据所占用的存储空间。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种签密方法,其特征在于,该方法包括:
在有限域内确定椭圆曲线,并生成发送方公私密钥对和接收方公私密钥对;其中,所述发送方公私密钥对包括相互对应的发送方公钥QA和发送方私钥dA,所述接收方公私密钥对包括相互对应的接收方公钥QB和接收方私钥dB,且QA和QB均为所述椭圆曲线上的点;所述椭圆曲线的基点记为G;
发送方根据G,生成明文m的填充信息p,并将m与p连接为填充明文m||p;发送方根据QB,将m||p加密为密文c;
发送方根据c的哈希值e,以及dA,确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s;其中,k为小于G的阶的随机正整数,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解;
发送方将c和s作为签密信息,发送到接收方;
接收方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;
接收方根据dB和B,对c进行解密,得到m和p;
接收方根据B生成m的接收方填充信息p’;
接收方判断p与p’是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
2.根据权利要求1所述的方法,其特征在于,在生成发送方公私密钥对和接收方公私密钥对之后,该方法进一步包括:将QA与发送方的身份信息相对应、将QB与接收方的身份信息相对应,发送到证书管理机构;
所述证书管理机构判断所述发送方的身份信息是否真实,如果是,则生成发送方的数字证书发布到目录服务协议LDAP服务器上;其中,所述发送方的数字证书包括QA和发送方的身份信息;
所述证书管理机构判断所述接收方的身份信息是否真实,如果是,则生成接收方的数字证书发布到LDAP服务器上;其中,所述接收方的数字证书包括QB和接收方的身份信息;
则在发送方根据QB,将m||p加密为密文c之前,该方法进一步包括:发送方从所述LDAP服务器上获得QB;
在接收方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B之前,该方法进一步包括:接收方从所述LDAP服务器上获得QA。
3.根据权利要求1所述的方法,其特征在于,
发送方根据QB,将m||p加密为密文c的方法为:发送方随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k1将m||p加密为密文c;
接收方根据dB和B,对c进行解密,得到m和p的方法为:接收方将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k1对c进行解密,得到m和p;
则该方法进一步包括:接收方将k1和所述签密信息发送到仲裁方;所述仲裁方根据k1对c进行解密,得到m和p;仲裁方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;仲裁方根据B生成m的仲裁方填充信息p”;仲裁方判断p与p”是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息;
或,
发送方根据QB,将m||p加密为密文c的方法为:发送方随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k2将m||p加密为密文c;
接收方根据dB和B,对c进行解密,得到m和p的方法为:接收方将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k2对c进行解密,得到m和p;
则该方法进一步包括:接收方将k2和所述签密信息发送到仲裁方;所述仲裁方根据k2对c进行解密,得到m和p;仲裁方利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;仲裁方根据B生成m的仲裁方填充信息p”;仲裁方判断p与p”是否相等,如果是,则验证通过,确认发送方已发送针对m的签密信息,否则,验证不通过,确认发送方并未发送针对m的签密信息。
4.根据权利要求3所述的方法,其特征在于,发送方随机从小于G的阶的正整数中选定k之后,发送方根据所述椭圆曲线的基点G,生成明文m的填充信息p的方法为:发送方将k与所述椭圆曲线的基点G进行标量乘运算,得到填充点M;根据M生成明文m的填充信息p。
5.根据权利要求1、2或3所述的方法,其特征在于,
生成发送方公私密钥对的方法为:随机从小于G的阶的正整数中选取dA作为发送方私钥;将dA与G进行标量乘运算,生成发送方公钥QA;
和/或,
生成接收方公私密钥对的方法为:随机从小于G的阶的正整数中选取dB作为接收方私钥;将dB与G进行标量乘运算,生成接收方公钥QB。
6.根据权利要求1、2或3所述的方法,其特征在于,所述有限域为大素数域或二元域。
7.根据权利要求1、2或3所述的方法,其特征在于,G的阶为素数,且其二进制比特位数大于160。
8.根据权利要求1、2或3所述的方法,其特征在于,f1(s)的函数式为f1(s)=s;和/或,f2(s)的函数式为f2(s)=s。
9.一种签密系统,其特征在于,该系统包括:曲线与密钥生成模块、签密模块、解密与验证模块,其中,
所述曲线与密钥生成模块用于,在有限域内确定椭圆曲线,并生成发送方公私密钥对和接收方公私密钥对;其中,所述发送方公私密钥对包括相互对应的发送方公钥QA和发送方私钥dA,所述接收方公私密钥对包括相互对应的接收方公钥QB和接收方私钥dB,且QA和QB均为所述椭圆曲线上的点;将所述椭圆曲线的基点G和G的阶发送到所述签密模块;将G发送到所述解密与验证模块;
所述签密模块用于,根据G生成明文m的填充信息p,并将m与p连接为填充明文m||p;根据QB将m||p加密为密文c;根据c的哈希值e,以及dA,确定满足f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA的签密特征值s;其中,k为小于G的阶的随机正整数,f1(s)和f2(s)是以s为自变量的函数,g0(e)、g1(e)、g2(e)和g3(e)是以e为自变量的函数,f1(s)g0(e)+g1(e)和f2(s)g2(e)+g3(e)均与s和e相关,且f1(s)g0(e)+g1(e)=k+(f2(s)g2(e)+g3(e))dA对s有唯一正整数解;将c和s作为签密信息,发送到解密与验证模块;
所述解密与验证模块用于,利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据dB和B,对c进行解密,得到m和p;根据B生成m的接收方填充信息p’;判断p与p’是否相等。
10.根据权利要求9所述的系统,其特征在于,该系统进一步包括数字证书模块;
所述曲线与密钥生成模块进一步用于,将QA与发送方的身份信息相对应、将QB与接收方的身份信息相对应,发送到所述数字证书模块;
所述数字证书模块用于,判断所述发送方的身份信息是否真实;生成发送方的数字证书发布到自身的服务器上,所述发送方的数字证书包括QA和发送方的身份信息;判断所述接收方的身份信息是否真实;生成接收方的数字证书发布到自身的服务器上,所述接收方的数字证书包括QB和接收方的身份信息;
则所述签密模块进一步用于,从所述数字证书模块的服务器上获得QB;
所述解密与验证模块进一步用于,从所述数字证书模块的服务器上获得QA。
11.根据权利要求9所述的系统,其特征在于,该系统进一步包括仲裁模块;
所述签密模块用于,随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k1将m||p加密为密文c;
所述解密与验证模块用于,将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k1对c进行解密,得到m和p;将k1和所述签密信息发送到所述仲裁模块;
则所述仲裁模块用于,根据k1对c进行解密,得到m和p;利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据B生成m的仲裁方填充信息p”;判断p与p”是否相等;
或,
所述签密模块用于,随机从小于G的阶的正整数中选定k;将k与QB进行标量乘运算,得到形式为(k1,k2)的数组;利用k2将m||p加密为密文c;
所述解密与验证模块用于,将dB与B进行标量乘运算,获得形式为(k1,k2)的数组;利用k2对c进行解密,得到m和p;将k2和所述签密信息发送到所述仲裁模块;
则所述仲裁模块用于,根据k2对c进行解密,得到m和p;利用c的哈希值e以及G、s和QA,根据B=(f1(s)g0(e)+g1(e))G-(f2(s)g2(e)+g3(e))QA得到中间点B;根据B生成m的仲裁方填充信息p”;判断p与p”是否相等。
12.根据权利要求11所述的系统,其特征在于,所述签密模块用于,将k与所述椭圆曲线的基点G进行标量乘运算,得到填充点M;根据M生成明文m的填充信息p。
13.根据权利要求9、10或11所述的系统,其特征在于,所述曲线与密钥生成模块用于,随机从小于G的阶的正整数中选取dA作为发送方私钥;将dA与G进行标量乘运算,生成发送方公钥QA;随机从小于G的阶的正整数中选取dB作为接收方私钥;将dB与G进行标量乘运算,生成接收方公钥QB。
14.根据权利要求9、10或11所述的系统,其特征在于,所述有限域为大素数域或二元域。
15.根据权利要求9、10或11所述的系统,其特征在于,G的阶为素数,且其二进制比特位数大于160。
16.根据权利要求9、10或11所述的系统,其特征在于,f1(s)的函数式为f1(s)=s;和/或,f2(s)的函数式为f2(s)=s。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010578298.6A CN102487321B (zh) | 2010-12-03 | 2010-12-03 | 一种签密方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010578298.6A CN102487321B (zh) | 2010-12-03 | 2010-12-03 | 一种签密方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102487321A CN102487321A (zh) | 2012-06-06 |
CN102487321B true CN102487321B (zh) | 2014-07-02 |
Family
ID=46152777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010578298.6A Active CN102487321B (zh) | 2010-12-03 | 2010-12-03 | 一种签密方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102487321B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011995B (zh) * | 2019-03-26 | 2021-04-09 | 创新先进技术有限公司 | 多播通信中的加密和解密方法及装置 |
CN112702582B (zh) * | 2021-01-06 | 2022-07-15 | 贵州大学 | 一种基于sm2的监控视频安全传输方法和设备 |
CN113347176B (zh) * | 2021-05-31 | 2023-04-18 | 湖北微特传感物联研究院有限公司 | 数据通信的加密方法、装置、计算机设备和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1505313A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线签名和验证签名方法和装置 |
CN101018125A (zh) * | 2007-03-02 | 2007-08-15 | 中兴通讯股份有限公司 | 一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法 |
-
2010
- 2010-12-03 CN CN201010578298.6A patent/CN102487321B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1505313A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线签名和验证签名方法和装置 |
CN101018125A (zh) * | 2007-03-02 | 2007-08-15 | 中兴通讯股份有限公司 | 一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102487321A (zh) | 2012-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11323276B2 (en) | Mutual authentication of confidential communication | |
CN104539423B (zh) | 一种无双线性对运算的无证书公钥密码体制的实现方法 | |
US9240884B2 (en) | Method and apparatus for verifiable generation of public keys | |
CN111342973B (zh) | 一种安全的pki与ibc之间的双向异构数字签名方法 | |
EP2533457B1 (en) | Secure implicit certificate chaining | |
US9705683B2 (en) | Verifiable implicit certificates | |
CN111147225A (zh) | 基于双密值和混沌加密的可信测控网络认证方法 | |
EP2334008A1 (en) | A system and method for designing secure client-server communication protocols based on certificateless public key infrastructure | |
CN101296075B (zh) | 一种基于椭圆曲线的身份认证系统 | |
EP2533460A1 (en) | Digital signatures with implicit certificate chains | |
CN102946602A (zh) | 移动信息系统的隐私保护加密方法 | |
CN106059747A (zh) | 基于公钥基础设施的可重用公钥证书方案 | |
US20160182230A1 (en) | Secure token-based signature schemes using look-up tables | |
CN109672530A (zh) | 基于非对称密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 | |
CN104767612A (zh) | 一种从无证书环境到公钥基础设施环境的签密方法 | |
CN104821880A (zh) | 一种无证书广义代理签密方法 | |
JP2020530726A (ja) | サプライチェーン資産管理を保護するアプリケーションを有する遠隔サーバへのnfcタグ認証 | |
US11308240B2 (en) | Cryptographic circuit and data processing | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
CN114692218A (zh) | 一种面向个人用户的电子签章方法、设备和系统 | |
CN101931536A (zh) | 一种无需认证中心的高效数据加密及认证方法 | |
CN111654366A (zh) | 一种安全的pki与ibc之间的双向异构强指定验证者签名方法 | |
CN102487321B (zh) | 一种签密方法和系统 | |
CN103138923A (zh) | 一种节点间认证方法、装置及系统 | |
CN110324357A (zh) | 数据发送方法及装置、数据接收方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |