CN110601859A - 一种基于25519椭圆曲线的无证书公钥密码签名方法 - Google Patents

一种基于25519椭圆曲线的无证书公钥密码签名方法 Download PDF

Info

Publication number
CN110601859A
CN110601859A CN201910967350.8A CN201910967350A CN110601859A CN 110601859 A CN110601859 A CN 110601859A CN 201910967350 A CN201910967350 A CN 201910967350A CN 110601859 A CN110601859 A CN 110601859A
Authority
CN
China
Prior art keywords
user
key
public key
private key
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910967350.8A
Other languages
English (en)
Other versions
CN110601859B (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.)
Wuhan Jia Hong Technology Co Ltd
Original Assignee
Wuhan Jia Hong 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 Wuhan Jia Hong Technology Co Ltd filed Critical Wuhan Jia Hong Technology Co Ltd
Priority to CN201910967350.8A priority Critical patent/CN110601859B/zh
Publication of CN110601859A publication Critical patent/CN110601859A/zh
Application granted granted Critical
Publication of CN110601859B publication Critical patent/CN110601859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Landscapes

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

Abstract

本发明公开了一种基于25519椭圆曲线的无证书公钥密码签名方法,包括系统建立、用户秘密建立、用户部分私钥提取、用户私钥建立、用户公钥还原、消息签名和验证的方法,用于结合25519曲线,进行无证书的数字签名操作。本发明有效避免了证书使用问题,能够实现用户标识与公钥的绑定。本发明具有计算效率高、安全性强等特点,可根据使用业务场景设置不同系统参数实现具备不同安全特性的无证书公钥密码签名体制。

Description

一种基于25519椭圆曲线的无证书公钥密码签名方法
技术领域
本发明属于信息安全技术领域,涉及一种密码体制实现方法,具体涉及一种基于25519椭圆曲线的无证书公钥密码签名体制实现方法。
背景技术
随着信息安全技术的快速发展,传统的基于证书的公钥密码体制(PKI)已得到了广泛的应用。由于移动通信网络、无线传感器网络、物联网等新型网络环境的出现,证书用户数量剧增,使得PKI体制管理开销较大的缺点被充分暴露。为了简化密钥管理,Shamir于1984年首次提出了基于身份的公钥密码体制(IBC);Al-Riyami和Paterson在2003年提出了无证书公钥密码体制(CLPKC)。
CLPKC体制是介于传统PKI体制与IBC体制之间的一种体制模型,它不完全基于用户身份标识进行密码运算,每一位用户都分配有与其身份绑定的公钥(称其为部分公钥,使用时与消息数据共同传输或者可以根据身份标识公开查询)。相比传统PKI体制,CLPKC体制从结构上消除了证书,确保了公钥无需任何证书支持,也无需进行复杂的证书管理,减少了系统负担和资源代价,更加适合于低带宽需求和低能量消耗的移动安全应用环境和物联网环境。
相比于IBC体制,CLPKC体制解决了以下几个问题:1)密钥托管问题。IBC体制的用户私钥完全由KGC决定生成,而CLPKC体制的用户私钥为用户秘密值与KGC生成的部分私钥的组合。2)密钥更新问题。IBC体制的用户私钥完全由用户身份标识派生,具有一对一的映射关系,这意味着难以支持用户密钥更新与撤销机制。而CLPKC体制下KGC针对同一用户标识可生成的不同私钥,可以为同一用户分配多个私钥。3)计算效率问题。IBC体制是基于双线性对的密码运算,而CLPKC体制可基于RSA算法、ElGamal算法、ECC算法和双线性对等多种密码学困难问题进行构造,可根据计算效率的要求选择合适的CLPKC体制提高计算效率。
迄今为止,国内外学者已提出了几十种无证书公钥密码方案,但是大部分方案都利用双线性对构造方案,导致运行效率低,算法复杂,与IBC体制相比在计算效率方面优势不明显。或采用RSA算法或ElGamal算法构造,在保障一定的算法安全强度的前提下密钥所占用的存储空间较大,对于资源受限的场合不一定适用。因此,构造一种高效而轻便的无证书公钥密码签名体制方法是本发明的主要宗旨。
发明内容
为了解决上述技术问题,本发明提供了一种能够基于25519曲线的无证书公钥密码签名体制实现方法,在保证算法安全前提下实现无证书公钥认证机制,满足无证书体制的安全性高效性需求,可广泛适用于复杂系统、资源受限场景下的公钥认证和使用需求。
本发明所采用的技术方案是:一种基于25519椭圆曲线的无证书公钥密码签名方法,应用于密码系统中;所述密码系统包括密钥生成中心KGC和用户;
其特征在于,所述方法包括以下步骤:
步骤1:密码系统建立;
建立系统公共参数,包括含曲线参数及密码函数;确定系统主公私钥对,并将系统公共参数和主公钥向系统内各参与用户发布;
步骤1的具体实现包括以下子步骤:
步骤1.1:确定无证书公钥密码签名体制的25519曲线参数params={t,q,E(Fq),d,n,G},其中t为整数,q为t位素数,满足q mod 4=1;E(Fq):x2+y2=1+dx2y2为有限域Fq构成的Fq×Fq上点的集合;d为Fq上的非平方剩余;n为素数,长度在t-4到t-3位之间;G为椭圆曲线的n阶基点;
步骤1.2:确定无证书公钥密码签名体制的密码函数{F1(·),F2(·),H3(·),H4(·),Fb(·)},其中H3(·)表示一组基于哈希函数和数学运算的安全映射函数{0,1}*→[1,n-1],H4(·)表示输出为2t比特的安全映射函数;F1(·)和F2(·)为一组密钥成分协商函数,Fb(·)为用户密钥决定函数;
步骤1.3:密钥生成中心随机产生系统主私钥Ppri=ssk∈[1,n-1],计算将其结果第t+1至2t比特定义为 结果第4至t-2比特参与sk的计算: 计算系统主公钥Ppub=[sk]G,[·]G表示点乘运算;
密钥生成中心公布系统公共参数{params,F1,F2,H3,H4,Fb}及系统主公钥Ppub
步骤2:用户秘密建立;
用户产生秘密值,由秘密值产生临时公私钥对,并向密钥生成中心提交私钥申请,发送用户标识,根据密钥成分协商函数决定是否发送用户临时公钥;
步骤2的具体实现包括以下子步骤:
步骤2.1:用户选取用户标识ID,并随机选取整数ask∈[1,n-1],计算将其结果第t+1至2t比特定义为 结果第4至t-2比特参与ak的计算: 计算用户部分公钥A=[ak]G;
步骤2.2:用户将私钥申请{ID,A}发送给密钥生成中心;若系统参数F1取值为零,则私钥申请不含有A。
本实施例中,密钥成分协商函数,包括F1(·)及F2(·),根据系统配置的密钥成分协商模式来决定函数返回值;其计算方式包含以下简化和变形:
(1)若用户私钥完全由密钥生成中心决定生成,则F1(·)输出置恒定值h1=0,F2(·)输出置恒定值h2∈[1,n-1];
(2)若用户私钥由密钥生成中心与用户共同决定生成,则F1(·)输出置恒定值h1∈[1,n-1],F2(·)输出由双方公钥A和B计算F2(·)=Hash(A||B),或置恒定值h2∈[1,n-1]。
步骤3:用户部分私钥提取;
密钥生成中心根据私钥申请及密钥成分协商函数和用户密钥决定函数产生用户部分私钥,并通过安全信道或采用用户公钥A加密返回给用户;
步骤3的具体实现包括以下子步骤:
步骤3.1:密钥生成中心接收私钥申请后,提取用户标识ID及公钥A并验证用户身份;计算bk=Fb(seed,ID,A),B=[bk]G,h1=F1(A,B),h2=F2(A,B),生成部分公钥L=[h1]A+[h2]B;确认用户密钥有效期T,计算h3=H3(L,Ppub,T,ID),得到用户部分私钥sb=h2bk+h3skmod n;
步骤3.2:密钥生成中心将{B,T,sb}通过安全信道或采用用户公钥A加密并发送给用户;其中,当系统参数F1取值不为零时,采用用户公钥A加密。
本实施例中,用户密钥决定函数Fb(·),当系统私钥选定后,输出返回值由密钥种子seed,ID和A共同决定;当输入数据ID不为空,且两次输入数据值ID和A一致时,输出返回值也保持一致;当输入数据ID为空时保证每次请求该函数所得到的返回值不一致;其计算方式包含以下简化和变形:
(1)若输入数据ID为空,则从随机数发生源获取随机数r∈[1,n一1],返回r;
(2)若输入数据ID不为空,A为空,则将系统私钥种子与用户ID进行组合bsk=seed||ID,计算计算 返回bk
(3)若输入数据ID和A都不为空,则将系统私钥种子与用户ID及公钥A进行组合bsk=seed||ID||A,计算计算 返回bk
步骤4:用户私钥建立;
用户根据临时私钥、密钥生成中心下发的部分私钥和密钥成分协商函数计算得到实际私钥,且可验证下发的部分私钥来源是否可信;
步骤4的具体实现包括以下子步骤:
步骤4.1:用户接收来自密钥生成中心的消息,若消息采用用户公钥A加密,则首先利用用户私钥ak解密得到{B′,T′,s′b},其中B′为用户公钥种子,T′为用户密钥有效期,s′b为用户部分私钥;计算h1=F1(A,B′),h2=F2(A,B′),合成部分公钥L′=[h1]A+[h2]B′;计算h3=H3(L′,Ppub,T′,ID),合成用户实际公钥Q=L′+[h3]Ppub
步骤4.2:用户计算用户私钥α=h1sa+s′bmod n,验证αG=Q从而确定密钥生成中心发送的消息{B′,T′,s′b}的合法性;
步骤4.3:根据步骤4.2的验证结果决定是否存储(T′,L′,α),其中T′为用户密钥有效期,L′为部分公钥,α为实际私钥。
步骤5:用户公钥还原;
其他用户根据接收到的部分公钥L″、密钥有效期T″以及用户标识ID′,利用系统主公钥Ppub还原得到用户的实际公钥Q,具体计算公式为先计算h3=H3(L″,Ppub,T″,ID′),再计算Q=L″+[h3]Ppub,其中Q为用户实际公钥。
步骤6:消息签名和验证;
持有私钥的用户对消息进行签名,其他用户利用签名用户发送的部分公钥、密钥有效期和用户标识还原得到用户实际公钥,并利用实际公钥验证消息签名的合法性;
步骤6的具体实现包括以下子步骤:
步骤6.1:持有私钥的用户利用消息种子seedm对消息计算摘要r=H4(seedm,M),利用私钥α计算签名R=rG,s=r+H4(R,L′,Ppub,M)α mod n;
步骤6.2:首次建立通信时持有私钥的用户将部分公钥、密钥有效期、用户标识{L′,T′,ID}与消息M及签名{R,s}一同发送,再次通信时只需发送消息M及签名{R,s};
步骤6.3:其他用户利用用户公钥还原方法得到实际公钥Q,对消息和签名{M′,R′,s′}计算并验证s′G=R′+H4(R′,L″,Ppub,M′)Q从而确定消息M′的合法性。
本发明所述的无证书公钥密码签名体制组成与一般的无证书密码体制一致,分为密钥生成中心(Key Generation Center,KGC)和用户,但在私钥申请与提取阶段与一般无证书密码体制模型有所区别,其区别在于:本发明所述的密钥提取步骤在用户设置秘密值步骤之后,而一般模型中用户秘密值步骤设置在密钥提取步骤之后;其优势是可以消除替换公钥攻击、假冒身份攻击和伪造签名攻击,且用户可以在接收到来自KGC密钥信息后利用系统公钥验证数据来源真实性。
本发明的有益效果包括:
(1)运算高效性;
本发明所述的实现方法只使用了椭圆曲线点倍和点加运算以及大整数模运算,具备运算效率高、资源消耗小的特点。相比双线性对而言,椭圆曲线的点倍运算量不足双线性对运算量的1/8,且运算所需存储量不足双线性对运算存储量的1/10。而且,本发明在密钥协商阶段可支持不同程度的简化和变形,可在安全强度与计算效率之间进行平衡,减少方法所需的点倍次数和点加次数,从而达到加速运算的目的。
(2)算法兼容性;
本发明所述的用户秘密建立、用户私钥建立和用户公钥还原方法,其特征在于:所述的公私钥对(α,L,Q)可适用于25519曲线公钥密码算法,即用户直接使用实际私钥α与部分公钥L进行消息签名运算,而其他用户可先通过用户标识和部分公钥还原得到实际公钥,然后使用部分公钥L与实际公钥Q进行消息签名验证运算。在计算签名的过程中,25519曲线公钥密码算法无需从高质量的随机数发生器中获取随机数参与签名运算,避免了由于随机数发生器设计漏洞而带来的密钥安全性问题,在资源和成本受限的硬件环境下有较大的优势。
附图说明
图1为本发明实施例的流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本发明提供的一种基于25519椭圆曲线的无证书公钥密码签名方法,应用于密码系统中;
本实施例的密码系统包括密钥生成中心KGC和用户;
本实施例的方法包括以下步骤:
步骤1:密码系统建立;
建立系统公共参数,包括含曲线参数及密码函数;确定系统主公私钥对,并将系统公共参数和主公钥向系统内各参与用户发布;
步骤2:用户秘密建立;
用户产生秘密值,由秘密值产生临时公私钥对,并向密钥生成中心提交私钥申请,发送用户标识ID,根据密钥成分协商函数决定是否发送用户临时公钥;
步骤3:用户部分私钥提取;
密钥生成中心根据私钥申请及密钥成分协商函数和用户密钥决定函数产生用户部分私钥,并通过安全信道或采用用户公钥A加密返回给用户;
步骤4:用户私钥建立;
用户根据临时私钥、密钥生成中心下发的部分私钥和密钥成分协商函数计算得到实际私钥,且可验证下发的部分私钥来源是否可信;
步骤5:用户公钥还原;
其他用户根据部分公钥、系统主公钥、密钥有效期以及用户标识还原得到用户的实际公钥;
步骤6:消息签名和验证;
持有私钥的用户对消息进行签名,其他用户利用签名用户发送的部分公钥、密钥有效期和用户标识还原得到用户实际公钥,并利用实际公钥验证消息签名的合法性。
下面通过具体实施例来具体阐述本技术方案。
实施例一
在该系统安全选项中,上述用户密钥生成机制的具体配置如下:
1)用户产生随机请求ask∈[1,n-1]且F1(·)=0;
2)私钥生成函数:
3)映射函数选取为F2(·)=1和h3=Hash(L||Ppub||T||ID);
配置后的用户密钥生产机制如下:
(一)用户密钥提取(Extract)
该步骤主要用于产生用户User的签名私钥。具体过程如下表1所示:
表1
步骤1:用户User在集合{1,2,…,n-1}中选取随机数ask,对其计算摘要并将身份标识ID发送给KGC,请求签名私钥。
步骤2:KGC收到私钥请求后,首先利用已有的身份认证方法确认ID与User身份一致。随后,将KGC私钥的摘要值的高半部分与ID串联得到计算摘要并按照EdDSA算法将摘要值的指定比特重组为签名私钥:
通过公式计算签名部分公钥L,
L=B=[bk]G=(xL,yL)
其中,(xL,yL)示L的横纵坐标。
步骤3:KGC确定密钥有效期T,通过以下公式计算签名私钥α,
h3=H3(L||Ppub||T||ID),
α=bk+h3skmod n
其中H3(·)表示安全哈希函数,符号||表示连接,mod n表示模n运算。
步骤4:KGC将消息(B,T,α)通过安全信道发送给用户User。
步骤5:用户User接收KGC发送的消息(B′,T′,α′)。
步骤6:用户User计算L′=1·B′,h3=H3(L′||Ppub||T′||ID),用以验证αG?=L′+[h3]Ppub,选择是否接受并保存(T′,L′,α)。
(二)用户公钥还原(Restore)
该步骤主要用于还原出用户User的实际公钥。计算公式如下:
h3=H3(L″||Ppub||T″||ID′),
Q=L″+[h3]Ppub
根据上述公式,用户的实际公钥可由T″、ID′、L″、Ppub计算得出,其中L″为用户的部分公钥,Ppub为系统主公钥,T″为密钥有效期,ID′为用户标识。
本实施例的方案优势如下:
1)KGC可通过系统主私钥完全控制用户私钥生成;
2)KGC对同一ID生成的用户私钥是确定的,因此该模式类似于SM9算法。可通过ID恢复用户私钥,无需占用私钥存储空间;
3)运算高效,适合用于批量化密钥生成场景。
实施例二
在该系统安全选项中,上述用户密钥生成机制的具体配置如下:
1)用户产生随机请求ask∈[1,n-1]且F1(·)=0;
2)私钥生成函数:
bsk∈[1,n-1],
3)映射函数选取为F2(·)=1和h3=Hash(L||Ppub||T||ID);
配置后的用户密钥生产机制如下:
(一)用户密钥提取(Extract)
该步骤主要用于产生用户User的签名私钥。具体过程如下表2所示:
表2
步骤1:用户User在集合{1,2,…,n-1}中选取随机数ask,对其计算摘要并将身份标识ID发送给KGC,请求签名私钥。
步骤2:KGC收到私钥请求后,首先利用已有的身份认证方法确认ID与User身份一致。随后,在集合{1,2,…,n-1}中选取随机数bsk,计算摘要并按照EdDSA算法将摘要值的指定比特重组为签名私钥:
通过公式计算签名部分公钥L,
L=B=[bk]G=(xL,yL)
其中,(xL,yL)示L的横纵坐标。
步骤3:KGC确定密钥有效期T,通过以下公式计算签名私钥α,
h3=H3(L||Ppub||T||ID),
α=bk+h3sk mod n
其中H3(·)表示安全哈希函数,符号||表示连接,mod n表示模n运算。
步骤4:KGC将消息(B,T,α)通过安全信道发送给用户User。
步骤5:用户User接收KGC发送的消息(B′,T′,α′)。
步骤6:用户User计算L′=1·B′,h3=H3(L′||Ppub||T′||ID),用以验证αG?=L′+[h3]Ppub,选择是否接受并保存(T′,L′,α)。
(二)用户公钥还原(Restore)
该步骤主要用于还原出用户User的实际公钥。计算公式如下:
h3=H3(L″||Ppub||T″||ID′),
Q=L″+[h3]Ppub
根据上述公式,用户的实际公钥可由T″、ID′、L″、Ppub计算得出,其中L″为用户的部分公钥,Ppub为系统主公钥,T″为密钥有效期,ID′为用户标识。
本实施例的技术方案优势如下:
1)KGC可通过系统主私钥完全控制用户私钥生成;
2)KGC对同一ID生成的用户私钥是不确定的,因此对于使用同一ID的用户User可以选择吊销其某个公私钥对,且私钥丢失后不可恢复;
3)运算高效,适合用于批量化密钥生成场景。
实施例三
在该系统安全选项中,上述用户密钥生成机制的具体配置如下:
1)用户产生随机请求ask∈[1,n-1]且F1(·)=1;
2)私钥生成函数:
3)映射函数选取为F2(·)=1和h3=Hash(L||Ppub||T||ID);
配置后的用户密钥生产机制如下:
(一)用户密钥提取(Extract)
该步骤主要用于产生用户User的私钥和部分公钥。
具体过程如下表3所示:
表3
步骤1:用户User在集合{1,2,…,n-1}中选取随机数ask,对其计算摘要并按照EdDSA算法将摘要值的指定比特重组:
随后,计算A=[ak]G,将身份标识ID和部分公钥A发送给KGC,请求私钥;
步骤2:KGC收到私钥请求后,首先利用已有的身份认证方法确认ID与User身份一致。随后,将KGC私钥的摘要值的高半部分与ID和用户公钥A串联得到计算摘要并按照EdDSA算法将摘要值的指定比特重组:
通过公式计算签名部分公钥L,
B=[bk]G,
L=1·A+1·B=(xL,yL)
其中,(xL,yL)示L的横纵坐标。
步骤3:KGC确定密钥有效期T,通过以下公式计算签名私钥sb
h3=H3(L||Ppub||T||ID),
sb=bk+h3sk mod n
其中H3(·)表示安全哈希函数,符号||表示连接,mod n表示模n运算。
步骤4:KGC将消息(B,T,sb)通过安全信道或利用用户User的公钥A进行加密,发送给用户User。
步骤5:用户User接收并解密(若消息已加密)KGC发送的消息(B′,T′,s′b)。
步骤6:用户User计算恢复用户部分公钥L′=1.A+1.B′,实际私钥α=ak+s′b mod n
步骤7:用户User计算h3=H3(L′||Ppub||T′||ID),用以验证αG?=L′+[h3]Ppub,选择是否接受并保存私钥(T′,L′,α)。
(二)用户公钥还原(Restore)
该步骤主要用于还原出用户User的实际公钥。计算公式如下:
h3=H3(L″||Ppub||T″||ID′),
Q=L″+[h3]Ppub
根据上述公式,用户的实际公钥可由T″、ID′、L″、Ppub计算得出,其中L″为用户的部分公钥,Ppub为系统主公钥,T″为密钥有效期,ID′为用户标识。
本实施例的技术方案优势如下:
1)KGC可通过系统主私钥参与控制用户私钥生成;
2)用户参与生成实际使用私钥,KGC不能完全控制用户实际使用私钥;
3)KGC对同一ID用户生成的私钥是确定的,但实际使用私钥由用户决定。若用户选择一个有意义的便于记忆的ask作为私钥,则可与KGC配合,通过ID恢复用户实际使用私钥。用户通过选择不同的ask用以生成不同的实际使用私钥,因此对于使用同一ID的用户User可以选择吊销其某些公钥。
实施例四
在该系统安全选项中,上述用户密钥生成机制的具体配置如下:
1)用户产生随机请求ask∈[1,n-1]且F1(·)=1;
2)私钥生成函数:
bsk∈[1,n-1],
3)映射函数选取为F2(·)=1和h3=Hash(L||Ppub||T||ID);
配置后的用户密钥生产机制如下:
(一)用户密钥提取(Extract)
该步骤主要用于产生用户User的私钥和部分公钥。
具体过程如下表4所示:
表4
步骤1:用户User在集合{1,2,…,n-1}中选取随机数ask,对其计算摘要并按照EdDSA算法将摘要值的指定比特重组为签名私钥的第一部分:
随后,计算A=[ak]G,将身份标识ID和部分公钥A发送给KGC,请求私钥;
步骤2:KGC收到私钥请求后,首先利用已有的身份认证方法确认ID与User身份一致。随后,在集合{1,2,…,n-1}中选取随机数bsk,再次计算摘要并按照EdDSA算法将摘要值的指定比特重组为签名私钥:
通过公式计算签名部分公钥L,
B=[bk]G,
L=1·A+1·B=(xL,yL)
其中,(xL,yL)示L的横纵坐标。
步骤3:KGC确定密钥有效期T,通过以下公式计算签名私钥sb
h3=H3(L||Ppub||T||ID),
sb=bk+h3sk mod n
其中H3(·)表示安全哈希函数,符号||表示连接,mod n表示模n运算。
步骤4:KGC将消息(B,T,sb)通过安全信道或利用用户User的公钥A进行加密,发送给用户User。
步骤5:用户User接收并解密(若消息已加密)KGC发送的消息(B′,T′,s′b)。
步骤6:用户User计算恢复用户部分公钥L′=1·A+1·B′,实际私钥α=ak+s′b modn。
步骤7:用户User计算h3=H3(L′||Ppub||T′||ID),用以验证αG?=L′+[h3]Ppub,选择是否接受并保存私钥(T′,L′,α)。
(二)用户公钥还原(Restore)
该步骤主要用于还原出用户User的实际公钥。计算公式如下:
h3=H3(L″|||Ppub||T″||ID′),
Q=L″+[h3]Ppub
根据上述公式,用户的实际公钥可由T″、ID′、L″、Ppub计算得出,其中L″为用户的部分公钥,Ppub为系统主公钥,T″为密钥有效期,ID′为用户标识。
本实施例的技术方案优势如下:
1)KGC可通过系统主私钥参与控制用户私钥生成;
2)用户参与生成实际使用私钥,KGC不能完全控制用户实际使用私钥;
3)KGC对同一ID生成的用户私钥是不确定的,因此对于使用同一ID的用户User可以选择吊销其某个公钥,但私钥丢失后不可恢复。
签名验签方案
(一)用户对消息签名(Sign)
该步骤主要用于展示拥有签名私钥的用户User A如何进行消息签名。计算步骤如下:
步骤1:将用户私钥的摘要值的高半部分与消息M串联,对其计算摘要:
步骤2:计算签名:
R=rG
s=r+H4(R,L,Ppub,M)α mod n
步骤3:将签名值(R,s)与消息M及表明用户身份的用户标识ID,部分公钥L′,密钥有效期T′绑定一同发送。
(二)验证消息签名(Verify)
该步骤主要用于展示用户User B如何通过系统公钥及用户User A的公钥及标识对消息签名进行验证。计算步骤如下:
步骤1:用户User B从用户User A处接收到用户User A的标识ID,部分公钥L″,密钥有效期T″,消息M′,签名(R′,s′)。根据用户User A的标识和部分公钥还原实际公钥Q,详细步骤参见用户公钥还原部分。
步骤2:计算并验证:
s′G?=R′+H4(R′,L″,Ppub,M′)Q
应当理解的是,本说明书未详细阐述的部分均属于现有技术;上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (9)

1.一种基于25519椭圆曲线的无证书公钥密码签名方法,应用于密码系统中;所述密码系统包括密钥生成中心KGC和用户;
其特征在于,所述方法包括以下步骤:
步骤1:密码系统建立;
建立系统公共参数,包括含曲线参数及密码函数;确定系统主公私钥对,并将系统公共参数和主公钥向系统内各参与用户发布;
步骤2:用户秘密建立;
用户产生秘密值,由秘密值产生临时公私钥对,并向密钥生成中心提交私钥申请,发送用户标识ID,根据密钥成分协商函数决定是否发送用户临时公钥;
步骤3:用户部分私钥提取;
密钥生成中心根据私钥申请及密钥成分协商函数和用户密钥决定函数产生用户部分私钥,并通过安全信道或采用用户公钥A加密返回给用户;
步骤4:用户私钥建立;
用户根据临时私钥、密钥生成中心下发的部分私钥和密钥成分协商函数计算得到实际私钥,且可验证下发的部分私钥来源是否可信;
步骤5:用户公钥还原;
其他用户根据部分公钥、系统主公钥、密钥有效期以及用户标识还原得到用户的实际公钥;
步骤6:消息签名和验证;
持有私钥的用户对消息进行签名,其他用户利用签名用户发送的部分公钥、密钥有效期和用户标识还原得到用户实际公钥,并利用实际公钥验证消息签名的合法性。
2.根据权利要求1所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于,步骤1的具体实现包括以下子步骤:
步骤1.1:确定无证书公钥密码签名体制的25519曲线参数params={t,q,E(Fq),d,n,G},其中t为整数,q为t位素数,满足qmod4=1;E(Fq):x2+y2=1+dx2y2为有限域Fq构成的Fq×Fq上的点的集合;d为Fq上的非平方剩余;n为素数,长度在t-4到t-3位之间;G为椭圆曲线的n阶基点;
步骤1.2:确定无证书公钥密码签名体制的密码函数{F1(·),F2(·),H3(·),H4(·),Fb(·)},其中H3(·)表示一组基于哈希函数和数学运算的安全映射函数{0,1}*→[1,n-1],H4(·)表示输出为2t比特的安全映射函数;F1(·)和F2(·)为一组密钥成分协商函数,Fb(·)为用户密钥决定函数;
步骤1.3:密钥生成中心随机产生系统主私钥Ppri=ssk∈[1,n-1],计算将其结果第t+1至2t比特定义为 结果第4至t-2比特参与sk的计算: 计算系统主公钥Ppub=[sk]G,[·]G表示点乘运算;
密钥生成中心公布系统公共参数{params,F1,F2,H3,H4,Fb}及系统主公钥Ppub
3.根据权利要求2所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于,步骤2的具体实现包括以下子步骤:
步骤2.1:用户选取用户标识ID,并随机选取整数ask∈[1,n-1],计算将其结果第t+1至2t比特定义为 结果第4至t-2比特参与ak的计算: 计算用户部分公钥A=[ak]G;
步骤2.2:用户将私钥申请{ID,A}发送给密钥生成中心;若系统参数F1取值为零,则私钥申请不含有A。
4.根据权利要求3所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于,步骤3的具体实现包括以下子步骤:
步骤3.1:密钥生成中心接收私钥申请后,提取用户标识ID及公钥A并验证用户身份;计算bk=Fb(seed,ID,A),B=[bk]G,h1=F1(A,B),h2=F2(A,B),生成部分公钥L=[h1]A+[h2]B;确认用户密钥有效期T,计算h3=H3(L,Ppub,T,ID),得到用户部分私钥sb=h2bk+h3skmodn;
步骤3.2:密钥生成中心将用户公钥种子,用户密钥有效期及用户部分私钥{B,T,sb}通过安全信道或采用用户公钥A加密并发送给用户;其中,当系统参数F1取值不为零时,采用用户公钥A加密。
5.根据权利要求4所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于,步骤4的具体实现包括以下子步骤:
步骤4.1:用户接收来自密钥生成中心的消息,若消息采用用户公钥A加密,则首先利用用户私钥ak解密得到{B′,T′,s'b},其中B′为用户公钥种子,T′为用户密钥有效期,s′b为用户部分私钥;计算h1=F1(A,B'),h2=F2(A,B′),合成部分公钥L′=[h1]A+[h2]B';计算h3=H3(L′,Ppub,T′,ID),合成用户实际公钥Q=L'+[h3]Ppub
步骤4.2:用户计算用户私钥α=h1sa+s′bmodn,验证αG=Q从而确定密钥生成中心发送的消息{B′,T′,s′b}的合法性;
步骤4.3:根据步骤4.2的验证结果决定是否存储(T′,L′,α),其中T′为用户密钥有效期,L′为部分公钥,α为实际私钥。
6.根据权利要求5所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于,步骤5的具体实现过程为:
其他用户根据接收到的部分公钥L″、密钥有效期T″以及用户标识ID′,利用系统主公钥Ppub还原得到用户的实际公钥Q,具体计算公式为先计算h3=H3(L″,Ppub,T″,ID′),再计算Q=L″+[h3]Ppub,其中Q为用户实际公钥。
7.根据权利要求6所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于,步骤6的具体实现包括以下子步骤:
步骤6.1:持有私钥的用户利用消息种子seedm对消息计算摘要r=H4(seedm,M),利用私钥α计算签名R=rG,s=r+H4(R,L′,Ppub,M)αmodn;
步骤6.2:首次建立通信时持有私钥的用户将部分公钥、密钥有效期、用户标识{L′,T′,ID}与消息M及签名{R,s}一同发送,再次通信时只需发送消息M及签名{R,s};
步骤6.3:其他用户利用用户公钥还原方法得到实际公钥Q,对消息和签名{M′,R′,s′}计算并验证s′G=R′+H4(R′,L″,Ppub,M′)Q从而确定消息M′的合法性。
8.根据权利要求1-7任意一项所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于:步骤2和3中所述密钥成分协商函数,包括F1(·)及F2(·),根据系统配置的密钥成分协商模式来决定函数返回值;其计算方式包含以下简化和变形:
(1)若用户私钥完全由密钥生成中心决定生成,则F1(·)输出置恒定值h1=0,F2(·)输出置恒定值h2∈[1,n-1];
(2)若用户私钥由密钥生成中心与用户共同决定生成,则F1(·)输出置恒定值h1∈[1,n-1],F2(·)输出由双方公钥A和B计算F2(·)=Hash(A||B),或置恒定值h2∈[1,n-1]。
9.根据权利要求1-7任意一项所述的基于25519椭圆曲线的无证书公钥密码签名方法,其特征在于:步骤3中所述用户密钥决定函数Fb(·),当系统私钥选定后,输出返回值由密钥种子seed,ID和A共同决定;当输入数据ID不为空,且两次输入数据值ID和A一致时,输出返回值也保持一致;当输入数据ID为空时保证每次请求该函数所得到的返回值不一致;其计算方式包含以下简化和变形:
(1)若输入数据ID为空,则从随机数发生源获取随机数r∈[1,n-1],返回r;
(2)若输入数据ID不为空,A为空,则将系统私钥种子与用户ID进行组合bsk=seed||ID,计算计算 返回bk
(3)若输入数据ID和A都不为空,则将系统私钥种子与用户ID及公钥A进行组合bsk=seed||ID||A,计算计算 返回bk
CN201910967350.8A 2019-10-12 2019-10-12 一种基于25519椭圆曲线的无证书公钥密码签名方法 Active CN110601859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910967350.8A CN110601859B (zh) 2019-10-12 2019-10-12 一种基于25519椭圆曲线的无证书公钥密码签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910967350.8A CN110601859B (zh) 2019-10-12 2019-10-12 一种基于25519椭圆曲线的无证书公钥密码签名方法

Publications (2)

Publication Number Publication Date
CN110601859A true CN110601859A (zh) 2019-12-20
CN110601859B CN110601859B (zh) 2022-05-10

Family

ID=68866880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910967350.8A Active CN110601859B (zh) 2019-10-12 2019-10-12 一种基于25519椭圆曲线的无证书公钥密码签名方法

Country Status (1)

Country Link
CN (1) CN110601859B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111222879A (zh) * 2019-12-31 2020-06-02 航天信息股份有限公司 一种适用于联盟链的无证书认证方法及系统
CN111245847A (zh) * 2020-01-15 2020-06-05 北京三未信安科技发展有限公司 轻量级无证书认证方法、客户端及系统
CN112906039A (zh) * 2021-03-26 2021-06-04 成都卫士通信息产业股份有限公司 一种无证书分布式签名方法、装置、介质和电子设备
CN113221130A (zh) * 2021-01-28 2021-08-06 武汉大学 一种面向食品安全物联网的无证书在线离线签名方法及介质
CN114374523A (zh) * 2022-03-23 2022-04-19 南京易科腾信息技术有限公司 签名验签方法、装置及存储介质
CN114978648A (zh) * 2022-05-13 2022-08-30 武汉珈港科技有限公司 一种云端和芯片间离线安全通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539423A (zh) * 2014-12-16 2015-04-22 熊荣华 一种无双线性对运算的无证书公钥密码体制的实现方法
US20180233069A1 (en) * 2013-08-13 2018-08-16 Michael Stephen Fiske NADO Cryptography Using One-Way Functions
CN108989053A (zh) * 2018-08-29 2018-12-11 武汉珈港科技有限公司 一种基于椭圆曲线的无证书公钥密码体制实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180233069A1 (en) * 2013-08-13 2018-08-16 Michael Stephen Fiske NADO Cryptography Using One-Way Functions
CN104539423A (zh) * 2014-12-16 2015-04-22 熊荣华 一种无双线性对运算的无证书公钥密码体制的实现方法
CN108989053A (zh) * 2018-08-29 2018-12-11 武汉珈港科技有限公司 一种基于椭圆曲线的无证书公钥密码体制实现方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111222879A (zh) * 2019-12-31 2020-06-02 航天信息股份有限公司 一种适用于联盟链的无证书认证方法及系统
CN111245847A (zh) * 2020-01-15 2020-06-05 北京三未信安科技发展有限公司 轻量级无证书认证方法、客户端及系统
CN113221130A (zh) * 2021-01-28 2021-08-06 武汉大学 一种面向食品安全物联网的无证书在线离线签名方法及介质
CN112906039A (zh) * 2021-03-26 2021-06-04 成都卫士通信息产业股份有限公司 一种无证书分布式签名方法、装置、介质和电子设备
CN114374523A (zh) * 2022-03-23 2022-04-19 南京易科腾信息技术有限公司 签名验签方法、装置及存储介质
CN114978648A (zh) * 2022-05-13 2022-08-30 武汉珈港科技有限公司 一种云端和芯片间离线安全通信方法
CN114978648B (zh) * 2022-05-13 2024-03-29 武汉珈港科技有限公司 一种云端和芯片间离线安全通信方法

Also Published As

Publication number Publication date
CN110601859B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
CN108989053B (zh) 一种基于椭圆曲线的无证书公钥密码体制实现方法
CN110601859B (zh) 一种基于25519椭圆曲线的无证书公钥密码签名方法
CN112367175B (zh) 基于sm2数字签名的隐式证书密钥生成方法
CN110912708B (zh) 一种基于sm9数字签名算法的环签名生成方法
CN107659395B (zh) 一种多服务器环境下基于身份的分布式认证方法及系统
CN104539423A (zh) 一种无双线性对运算的无证书公钥密码体制的实现方法
CN110120939B (zh) 一种基于异构系统的可否认认证的加密方法和系统
CN110880977B (zh) 一种安全高效的sm9环签名生成与验证方法
CN110113150B (zh) 基于无证书环境的可否认认证的加密方法和系统
CN104767612A (zh) 一种从无证书环境到公钥基础设施环境的签密方法
CN112104453B (zh) 一种基于数字证书的抗量子计算数字签名系统及签名方法
CN112087428B (zh) 一种基于数字证书的抗量子计算身份认证系统及方法
CN113572603A (zh) 一种异构的用户认证和密钥协商方法
CN104767611A (zh) 一种从公钥基础设施环境到无证书环境的签密方法
GB2421410A (en) Generating and Identifier-Based Public / Private key Pair from a Multi-Component Signature
CN107682158B (zh) 一种可托管的认证加密方法
CN104579661B (zh) 基于身份的电子签章的实现方法和装置
CN112383403A (zh) 一种异构环签名方法
CN114285576B (zh) 一种非对的在线离线签密方法
CN114285546B (zh) 一种可用于车载自组网络中的异构签密通信方法
CN114978488A (zh) 一种基于sm2算法的协同签名方法及系统
Canard et al. Certificateless public key cryptography in the standard model
Tian et al. Cryptanalysis and improvement of a certificateless multi-proxy signature scheme
CN114024683B (zh) 一种从clc环境到pki环境的在线离线签密方法
Wang et al. Escrow-free certificate-based authenticated key agreement protocol from pairings

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