标识密钥管理及认证方法与流程
- 国知局
- 2024-08-02 14:02:05
本发明涉及信息安全,特别是一种标识密钥管理及认证方法。
背景技术:
1、当前公钥密码技术应用领域主要是pki/ca电子认证及签名技术,pki电子认证体系由终端实体(个人/机构/设备)、证书认证机构(ca)、证书注册机构(ra)和密钥管理机构(kmc)构成,终端实体产生签名密钥及证书请求,向ra提交注册申请,ra审核通过后,向ca申请数字证书,ca向kmc申请加密密钥,ca将密钥与终端实体身份绑定,生成带ca机构签名的数字证书,分发给终端实体,并发布到证书目录服务(ldap)、在线状态查询(ocsp)系统。
2、消息发送方使用自己的数字证书私钥对待发送消息签名,使用接收方数字证书公钥加密消息;消息接收方使用发送方数字证书公钥对收到的消息验签,使用自己的数字证书私钥解密消息。在这些环节,通常需要用户或依赖方频繁访问ca机构证书发布系统下载数字证书及证书吊销列表(crl),用于验签、加密和查验证书是否有效。
3、当前pki电子认证系统是各终端实体基于对同一个ca机构的共同信任建立起来的信任域,实体之间在发送一条任意大小的消息进行数字签名时,附加签名值通常大于2k字节,其附加数据对网络传输带宽及存储有较大占用,验签时不仅验证消息签名是否被篡改,还要验证发送方数字证书的证书链是否有效,检查证书是否由可信ca机构签发,验证过程比较耗时。
4、当前物联网应用快速发展,对安全通信效率有较高要求,传统pki证书认证技术在物联网身份认证、数据认证、加密传输方面的不足逐步显现出来,主要表现为认证效率低、签名数据大、网络传输带宽要求高、加解密流程复杂、不支持点对点和离线加密认证等。
技术实现思路
1、为解决现有技术中存在的问题,本发明的目的是提供一种标识密钥管理及认证方法,本发明解决了公钥体制下的公钥分发和公钥真实性证明问题,能便捷、高效应用于物联网各设备之间直接进行点对点认证、签名验签、加密解密。
2、为实现上述目的,本发明采用的技术方案是:一种标识密钥管理及认证方法,将公私钥矩阵作为密钥种子,将设备标识id作为密钥因子,通过计算生成设备标识公私钥,实现设备标识与其标识公私钥的关联绑定,应用于设备间点对点认证、签名验签、加密解密,具体包括以下步骤:
3、s100、初始化系统主密钥及公私钥矩阵密钥种子,对私钥矩阵加密存储;
4、s200、设备产生保护公私钥,通过保护私钥对设备标识id签名,向密钥管理系统申请标识公私钥,密钥管理系统将设备标识id映射到公私钥矩阵的相应行列上,通过组合运算计算出公私钥,将其作为设备的标识公私钥安全分发给设备;
5、s300、消息发送方使用自己的保护私钥及标识私钥计算出组合私钥,用其对待发消息签名,消息接收方基于共同的公钥矩阵,计算出发送方的标识公钥,使用发送方的保护公钥及标识公钥计算出发送方的组合公钥,用其对发送方消息验签;
6、s400、消息发送方基于接收方的设备标识id和共同的公钥矩阵计算出接收方的标识公钥,用其对待发消息加密,消息接收方使用自己的标识私钥对消息解密;
7、s500、将s400加密后的密文作为s300的待签名输入原文,即可实现消息发送的加密及签名、消息接收的验签及解密。
8、作为本发明的进一步改进,所述s100具体包括以下步骤:
9、s101、初始化系统主密钥:密钥管理系统调用服务器密码机初始化系统主密钥,即非对称密钥smk_sm2和对称密钥smk_sm4,非对称密钥smk_sm2包括主私钥smk_sm2_pri、主公钥smk_sm2_pub;
10、s102、初始化系统密钥矩阵:密钥管理系统调用服务器密码机产生n*n个随机sm2公私钥密钥对,对应存放到大小为n*n的私钥矩阵matrix_pri[n,n]和公钥矩阵matrix_pub[n,n]中;
11、s103、加密私钥矩阵,将矩阵密文存储到数据库:密钥管理系统调用服务器密码机,使用smk_sm4加密私钥矩阵matrix_pri,得到私钥矩阵密文encrypted_matrix_pri,encrypted_matrix_pri=sm4enc(matrix_pri,smk_sm4);密钥管理系统使用sm3算法对matrix_pub计算hash值,记为matrix_id=sm3(matrix_pub);密钥管理系统调用服务器密码机,使用smk_sm2_pri对matrix_pub||smk_sm2_pub签名,其中,||为拼接运算,得到公钥矩阵签名值matrix_pub_signvalue=sm2sign(matrix_pub||smk_sm2_pub,smk_sm2_pri),再拼接公钥矩阵、签名值数据形成公钥矩阵数据文件,记为matrix_pub_file,matrix_pub_file=matrix_pub||smk_sm2_pub||matrix_pub_signvalue;密钥管理系统将matrix_id、smk_sm2_pub、encrypted_matrix_pri、matrix_pub、matrix_pub_file存储于数据库中;私钥矩阵仅供密钥管理系统内部调用;公钥矩阵文件对合法注册的设备下发,对同一信任域内的设备开放和共享。
12、作为本发明的进一步改进,在s102中,将n*n个随机sm2公私钥密钥对中的私钥记为r,公钥记为r,即ri,j=ri,j*g,i,j∈[1,2,…,n],g为椭圆曲线的基点;且私钥matrix_pri[ri,j]与公钥matrix_pub[ri,j]一一对应。
13、作为本发明的进一步改进,所述s200具体包括以下步骤:
14、s201、设备a向密钥管理系统发起注册申请:设备a使用sm2算法产生保护密钥对,所述保护密钥对包括保护私钥和保护公钥,保护私钥记为a_protect_sm2_pri、保护公钥记为a_protect_sm2_pub,获取自身唯一标识ida,使用a_protect_sm2_pri对ida||a_protect_sm2_pub签名,得到签名值enroll_signvalue=sm2sign(ida||a_protect_sm2_pub,a_protect_sm2_pri),将ida||a_protect_sm2_pub及enroll_signvalue发送给密钥管理系统,申请设备a标识密钥,包括标识私钥和标识公钥;
15、s202、密钥管理系统根据设备a的标识计算其标识私钥和标识公钥:密钥管理系统获取设备a发送的ida||a_protect_sm2_pub及enroll_signvalue后,先验签,若验签成功,在数据库中保存ida、a_protect_sm2_pub,进入后续步骤;若验签失败,终止设备申请流程;
16、密钥管理系统使用sm3算法对ida计算hash值,记为hashedida1=sm3(ida);
17、密钥管理系统将matrix_id作为密钥,使用hmac-sm3算法对ida计算hash值,记为hashedida2= hmac-sm3(ida,matrix_id);
18、密钥管理系统对hashedida1和hashedida2拆分成n个多比特数,分别记为w1i和w2i,其中i∈[1,2,…,n],并将w1i和w2i按位左移或右移n位计算得到xi、yi;
19、密钥管理系统调用服务器密码机使用smk_sm4解密私钥矩阵密文encrypted_matrix_pri,得到明文的私钥矩阵matrix_pri,matrix_pri=sm4dec (encrypted_matrix_pri,smk_sm4);
20、密钥管理系统将xi值、yi值分别作为行坐标、列坐标,从matrix_pri中选取出n个私钥进行模加运算,最后得到设备的标识私钥,记为iska;
21、密钥管理系统分别将xi值、yi值作为行坐标、列坐标,从matrix_pub中选取出n个公钥进行椭圆曲线上的点加运算,最后得到设备的标识公钥,记为ipka,ipka与iska构成新的sm2公私钥对;
22、s203、密钥管理系统为设备a发送标识密钥数据:密钥管理系统拼接iska||ipka||matrix_pub_file,记为idkeya=iska||ipka||matrix_pub_file,调用服务器密码机,使用smk_sm2_pri对idkeya签名,得到签名值,记为idkeya_signvalue,idkeya_signvalue=sm2sign(idkeya,smk_sm2_pri),再拼接形成标识a的密钥文件,记为keydata=idkeya||idkeya_signvalue。
23、密钥管理系统调用服务器密码机产生随机对称密钥symkey,使用sm4加密算法加密keydata,得到设备a的标识密钥密文数据encrypted_keydata =sm4_enc(keydata,symkey),使用设备a的保护公钥a_protect_sm2_pub及sm2加密算法加密symkey,得到随机对称密钥的密文encrypted_symkey=sm2_enc(symkey,a_protect_sm2_pub),将encrypted_symkey和encrypted_keydata发送给设备a;
24、s204、设备a解密标识密钥数据:设备a接收encrypted_symkey和encrypted_keydata,使用自身保护私钥a_protect_sm2_pri解密encrypted_symkey,得到symkey=sm2_dec(encrypted_symkey,a_protect_sm2_pri),使用symkey解密encrypted_keydata得到keydata = sm4_dec(encrypted_keydata, symkey);
25、s205、设备a验证标识私钥、标识公钥及公钥矩阵文件的完整性:设备a提取keydata中的idkeya、idkeya_signvalue、smk_sm2_pub,先对idkeya验签,若验签成功,提取idkeya中的iska、ipka、matrix_pub_file,提取matrix_pub_file中的matrix_pub、matrix_pub_signvalue、smk_sm2_pub,再对matrix_pub验签,若任一验签失败,则终止设备申请流程。
26、s206、设备a写入标识私钥、标识公钥及公钥矩阵文件:设备a将标识私钥iska写入设备a的私有区,将标识公钥ipka、公钥矩阵matrix_pub、公钥矩阵签名值matrix_pub_signvalue、密钥管理系统主公钥smk_sm2_pub写入设备a的公有区;
27、s207、重复s201-s206获得其他设备的标识密钥数据。
28、作为本发明的进一步改进,在s300中,假设设备a向设备b发送签名消息,设备b通过s201-s206获得的标识记为idb,保护私钥记为b_protect_sm2_pri、保护公钥记为b_protect_sm2_pub,标识私钥记为iskb,标识公钥记为ipkb,所述s300具体包括以下步骤:
29、s301、设备a计算组合私钥,对待发消息生成数字签名:设备a对保护私钥a_protect_sm2_pri和标识私钥iska做模加运算,得到组合私钥,记为a_comb_sm2_pri;
30、设备a读取自身ida,使用sm3算法对待发消息原文m拼接ida和a_protect_sm2_pub后计算hash值,记为h=sm3(m||ida||a_protect_sm2_pub),使用组合私钥a_comb_sm2_pri及sm2加密算法对h加密,记为encrypted_h=sm2_enc(h,a_comb_sm2_pri),拼接m||ida||a_protect_sm2_pub||encrypted_h,记为signpack,signpack=m||ida||a_protect_sm2_pub||encrypted_h,发送给设备b;
31、s302、设备b根据设备a的标识计算设备a的标识公钥:设备b获取signpack,提取其中的m、ida、a_protect_sm2_pub、encrypted_h,使用sm3算法对ida计算hash值,记为hashedida1=sm3(ida);
32、设备b读取自身存储的公钥矩阵matrix_pub,使用sm3算法对matrix_pub计算hash值,得到matrix_id=sm3(matrix_pub),将matrix_id作为密钥,使用hmac-sm3算法对ida计算hash值hashedida2= hmac-sm3(ida,matrix_id);
33、设备b对hashedida1和hashedida2拆分成n个多比特数,分别记为w1i和w2i,其中i∈[1,2,…,n],并将w1i和w2i按位左移或右移n位计算得到xi、yi;
34、设备b将xi值、yi值分别作为行坐标、列坐标,从matrix_pub中选取出n个公钥进行椭圆曲线上的点加运算,最后得到设备a的标识公钥ipka;
35、s303、设备b计算设备a的组合公钥:设备b对设备a的保护公钥a_protect_sm2_pub和标识公钥ipka做点加运算,得到设备a的组合公钥,记为a_comb_sm2_pub=a_protect_sm2_pub+ipka;
36、s304、设备b验证设备a的数字签名:设备b使用组合公钥a_comb_sm2_pub及sm2解密算法对encrypted_h解密,得到h=sm2_dec(encrypted_h,a_comb_sm2_pub);
37、设备b使用sm3算法对待发消息原文m拼接ida和a_protect_sm2_pub后计算hash值,记为h′=sm3(m||ida||a_protect_sm2_pub),比较h′与h是否相等,若相等,说明消息原文m确由设备a发出,并在传输过程中没有被篡改。
38、作为本发明的进一步改进,在s400中,假设设备b向设备a发送加密消息,所述s400具体包括以下步骤:
39、s401、设备b计算设备a的标识hashedida1:设备b获取设备a的标识ida,使用sm3算法对ida计算hash 值,记为hashedida1=sm3(ida);
40、s402、设备b计算设备a的标识hashedida2:设备b读取自身存储的公钥矩阵matrix_pub,使用sm3算法对matrix_pub计算hash值,得到matrix_id=sm3(matrix_pub),将matrix_id作为密钥,使用hmac-sm3算法对ida计算hash 值hashedida2= hmac-sm3(ida,matrix_id);
41、s403、设备b根据设备a的标识计算设备a的标识公钥:设备b对hashedida1和hashedida2拆分成n个多比特数,分别记为w1i和w2i,其中i∈[1,2,…,n],并将w1i和w2i按位左移或右移n位计算得到xi、yi;
42、设备b将xi值、yi值分别作为行坐标、列坐标,从matrix_pub中选取出n个公钥进行椭圆曲线上的点加运算,最后得到设备a的标识公钥ipka;
43、s404、设备b使用设备a的标识公钥结合对称加密对待发消息加密:设备b产生随机对称密钥symkey,使用sm4加密算法加密待发送消息m,得到密文数据encrypted_m =sm4_enc(m, symkey),使用设备a的标识公钥ipka及sm2加密算法加密symkey,得到随机对称密钥的密文encrypted_symkey=sm2_enc(symkey,ipka),拼接encrypted_symkey||encrypted_m作为待发送密文数据encrypteddata,encrypteddata=encrypted_symkey||encrypted_m;
44、s405、设备b将密文数据encrypteddata发送给设备a;
45、s406、设备a使用标识私钥结合对称加密对密文数据解密:设备a接收encrypteddata,提取其中的encrypted_symkey和encrypted_m,使用标识私钥iska及sm2解密算法解密encrypted_symkey,得到symkey=sm2_dec(encrypted_symkey,iska),使用symkey解密encrypted_m得到明文m=sm4_dec(encrypted_m, symkey)。
46、作为本发明的进一步改进,在s500中,假设设备b向设备a发送加密并签名消息,所述s500具体包括以下步骤:
47、s501、重复s401-s404,对待发消息加密;
48、s502、设备b计算组合私钥,对待发消息生成数字签名:设备b对保护私钥b_protect_sm2_pri和标识私钥iskb做模加运算,得到组合私钥,记为b_comb_sm2_pri;
49、设备b读取自身idb,使用sm3算法对s404中的密文数据encrypteddata拼接idb和b_protect_sm2_pub后计算hash 值,记为h=sm3(encrypteddata||idb||b_protect_sm2_pub),使用组合私钥b_comb_sm2_pri及sm2加密算法对h加密,记为encrypted_h=sm2_enc(h,b_comb_sm2_pri),拼接encrypteddata||idb||b_protect_sm2_pub||encrypted_h,记为signpack,signpack=encrypteddata||idb||b_protect_sm2_pub||encrypted_h;
50、s503、设备b将密文签名数据包signpack发送给设备a;
51、s504、设备a根据设备b的标识计算设备b的标识公钥:设备a获取signpack,提取其中的encrypteddata、idb、b_protect_sm2_pub、encrypted_h,使用sm3算法对idb计算hash值,记为hashedidb1=sm3(idb);
52、设备a读取自身存储的公钥矩阵matrix_pub,使用sm3算法对matrix_pub计算hash值,记为matrix_id=sm3(matrix_pub),将matrix_id作为密钥,使用hmac-sm3算法对idb计算hash 值hashedidb2= hmac-sm3(idb,matrix_id);
53、设备a对hashedida1和hashedida2拆分成n个多比特数,分别记为w1i和w2i,其中i∈[1,2,…,n],并将w1i和w2i按位左移或右移n位计算得到xi、yi;
54、设备a将xi值、yi值分别作为行坐标、列坐标,从matrix_pub中选取出n个公钥进行椭圆曲线上的点加运算,最后得到设备b的标识公钥ipkb;
55、s505、设备a计算设备b的组合公钥:设备a对设备b的保护公钥b_protect_sm2_pub和标识公钥ipkb做点加运算,得到设备b的组合公钥,记为b_comb_sm2_pub;
56、s506、设备a验证设备b的数字签名:设备a使用组合公钥b_comb_sm2_pub及sm2解密算法对encrypted_h解密,得到h=sm2_dec(encrypted_h,b_comb_sm2_pub);
57、设备a使用sm3算法对密文数据encrypteddata拼接idb和b_protect_sm2_pub后计算hash 值,得到h′=sm3(encrypteddata||idb||b_protect_sm2_pub),比较h′与h是否相等,若相等,说明密文数据encrypteddata确由设备b发出,并在传输过程中没有被篡改,进入下一步流程;若不相等,说明数据被篡改,终止流程;
58、s507、重复s406,对密文数据进行解密。
59、本发明基于sm2非对称公钥密码体系,利用椭圆曲线密码的数学特性,构建公私钥组合矩阵,将其作为密钥种子,将物联网设备标识通过变换映射成分发公私钥的因子,通过密钥种子与因子进行数学计算生成设备对应的公私钥,通过密钥种子形成了一种安全自证体系,实现了标识与密钥的关联绑定,解决了公钥体制下的公钥分发和公钥真实性证明的问题。
60、本发明数字签名环节,由于设备保护密钥为随机密钥,随机密钥是互为独立的随机数序列,每个设备保护密钥不同,加之每个设备的标识密钥也不相同,为此组合计算出的实际签名密钥也必然不同,而且是仅在签名、验签时才需要合成计算生成,其签名密钥安全性高,没有共谋威胁。
61、本发明加解密环节,使用标识密钥作为加密密钥,可实现在设备发送方仅知晓接收方标识id的情况下,即可通过公钥矩阵计算得到接收方的标识公钥,将该标识公钥作为加密公钥对待发消息加密,接收方使用私有的标识私钥即可解密,该过程对于发送方不需要额外获取接收方的加密公钥,减少了信息交互次数,加解密效率高。
62、本发明的有益效果是:
63、1、本发明具有无需第三方参与认证、低功耗、对网络带宽要求低、与pki/ca体系兼容等优点,可实现两点间直接的认证与授权、高效离线认证,满足物联网节点多、分布广、低功耗等需求,适合物联网nb-iot、lora等窄带通讯,为物联网应用建立主动安全防御体系。
64、2、本发明不需要中心系统的证书库和公钥库支持,不仅有利于提高效率、减少资源消耗,而且不会因为由于中心系统的故障和意外灾害等导致关联系统瘫痪;同时对于密钥的管理分发高效、易用性强、部署简单,满足工业企业“智改数转”中的工业控制、终端认证、数据传输等核心安全机制及密钥容灾要求,对于工业互联网、物联网安全接入与安全防御更加灵活、有效。
本文地址:https://www.jishuxx.com/zhuanli/20240801/241444.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表