本發(fā)明涉及簽名,具體地涉及一種簽名算法在線密鑰分發(fā)方法、裝置及系統(tǒng)。
背景技術(shù):
1、身份基簽名算法又稱(chēng)為基于身份的簽名算法,是傳統(tǒng)公鑰簽名算法的演變。身份基簽名算法直接將用戶(hù)的身份(唯一標(biāo)識(shí)特征)作為公鑰,每個(gè)用戶(hù)只需要保存私鑰。與傳統(tǒng)的公鑰簽名算法可以由用戶(hù)自己生成公私鑰對(duì)不同,身份基簽名算法的用戶(hù)私鑰不能由用戶(hù)自己生成,必須由第三方的私鑰生成器(private-key?generator,pkg)生成,然后在安全環(huán)境下發(fā)送給用戶(hù)。
2、目前的身份基簽名算法由于需要第三方的pkg生成用戶(hù)私鑰,并在安全環(huán)境下將用戶(hù)私鑰導(dǎo)入用戶(hù)設(shè)備中,這種機(jī)制不靈活。例如以下兩種情況:
3、1)當(dāng)身份基簽名系統(tǒng)更新了參數(shù),所有的用戶(hù)私鑰都必須重新生成。
4、2)當(dāng)用戶(hù)設(shè)備需要加入新的身份基簽名系統(tǒng)時(shí),新系統(tǒng)使用的參數(shù)和算法可能不同于之前的算法,這種情況下需要新的用戶(hù)私鑰。
5、離線分發(fā)用戶(hù)私鑰的機(jī)制必須回收所有用戶(hù)設(shè)備,為此,可以采用在線分發(fā)機(jī)制。
6、常用的身份基簽名算法密鑰在線分發(fā)機(jī)制,需要在用戶(hù)設(shè)備中具有非對(duì)稱(chēng)密碼算法的公私鑰對(duì),用戶(hù)設(shè)備公鑰被認(rèn)證機(jī)構(gòu)(certificate?authority,ca)的私鑰簽名并生成證書(shū)。相應(yīng)地,pkg也需要具有公私鑰對(duì)和證書(shū)。
7、現(xiàn)有的基于密鑰協(xié)商的密鑰在線分發(fā)機(jī)制如圖1所示,過(guò)程如下:
8、1.用戶(hù)設(shè)備向pkg發(fā)送用戶(hù)設(shè)備證書(shū)和用戶(hù)身份id。
9、2.pkg收到證書(shū)后,先驗(yàn)證證書(shū)是否有效。如果有效,則發(fā)送pkg證書(shū),并根據(jù)收到的用戶(hù)身份id生成用戶(hù)私鑰。
10、3.用戶(hù)設(shè)備收到pkg證書(shū)之后,先驗(yàn)證證證書(shū)是否有效。如果有效,則發(fā)起密鑰協(xié)商流程,該流程經(jīng)過(guò)一次交互,雙方得到一個(gè)協(xié)商一致的密鑰。
11、4.pkg使用協(xié)商密鑰加密生成用戶(hù)私鑰,并將用戶(hù)私鑰發(fā)送給用戶(hù)設(shè)備。
12、相應(yīng)地,用戶(hù)設(shè)備收到加密的用戶(hù)私鑰后,使用協(xié)商密鑰解密,將明文保存在用戶(hù)設(shè)備中。
13、上述基于密鑰協(xié)商的密鑰在線分發(fā)機(jī)制,要求用戶(hù)設(shè)備和pkg都實(shí)現(xiàn)公鑰密碼算法中的驗(yàn)簽算法和密鑰協(xié)商機(jī)制,同時(shí)還要額外保存ca的公鑰和自己的私鑰。對(duì)于物聯(lián)網(wǎng)(internet?of?things,iot)用戶(hù)設(shè)備來(lái)說(shuō),計(jì)算、存儲(chǔ)和通信開(kāi)銷(xiāo)都很大。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供一種簽名算法在線密鑰分發(fā)方法、裝置及系統(tǒng),實(shí)現(xiàn)輕量級(jí)密鑰協(xié)商機(jī)制,減少計(jì)算、存儲(chǔ)和通信開(kāi)銷(xiāo)。
2、為此,本發(fā)明實(shí)施例提供如下技術(shù)方案:
3、一方面,本發(fā)明實(shí)施例提供一種簽名算法在線密鑰分發(fā)方法,所述方法包括:
4、在用戶(hù)設(shè)備出廠前注冊(cè)階段獲取puf初始響應(yīng),并將所述puf初始響應(yīng)保存到數(shù)據(jù)庫(kù)中,然后永久關(guān)閉所述puf芯片的響應(yīng)輸出接口;
5、所述用戶(hù)設(shè)備首次聯(lián)網(wǎng)時(shí),向pkg發(fā)送密鑰協(xié)商信息;所述密鑰協(xié)商信息包括:puf芯片信息、以及用戶(hù)身份信息;
6、根據(jù)所述puf當(dāng)前響應(yīng),利用密鑰生成算法產(chǎn)生協(xié)商密鑰k;
7、接收所述pkg發(fā)送的根據(jù)所述密鑰協(xié)商信息生成的用戶(hù)私鑰密文。
8、可選地,所述puf芯片信息包括:puf芯片id、和/或用戶(hù)身份id。
9、可選地,獲取puf初始響應(yīng)包括:
10、在所述用戶(hù)設(shè)備上電后,通過(guò)向所述用戶(hù)設(shè)備輸入puf挑戰(zhàn)獲取所述puf初始響應(yīng)。
11、可選地,所述puf芯片為sram?puf;所述獲取puf初始響應(yīng)包括:
12、在所述用戶(hù)設(shè)備上電后,讀取所述sram的初始值作為所述puf初始響應(yīng)。
13、可選地,所述puf挑戰(zhàn)為固定挑戰(zhàn),不同puf的挑戰(zhàn)相同或不同;
14、所述密鑰協(xié)商信息還包括:puf當(dāng)前響應(yīng)對(duì)應(yīng)的輔助數(shù)據(jù)。
15、可選地,所述puf挑戰(zhàn)為隨機(jī)挑戰(zhàn),并且保存在所述數(shù)據(jù)庫(kù)中;所述方法還包括:
16、所述用戶(hù)設(shè)備首次聯(lián)網(wǎng)時(shí),接收所述pkg發(fā)送的puf挑戰(zhàn),所述puf挑戰(zhàn)是所述pkg查詢(xún)所述數(shù)據(jù)庫(kù)獲取的;
17、根據(jù)所述puf挑戰(zhàn)獲得puf當(dāng)前響應(yīng)及對(duì)應(yīng)的輔助數(shù)據(jù);
18、將所述輔助數(shù)據(jù)發(fā)送給所述pkg。
19、可選地,puf的輸出通過(guò)熔絲與外部接口相連;所述方法還包括:
20、所述永久關(guān)閉所述puf芯片的響應(yīng)輸出接口包括:
21、通過(guò)燒斷所述熔絲永久關(guān)閉所述puf芯片的響應(yīng)輸出接口。
22、可選地,所述方法還包括:
23、使用所述協(xié)商密鑰k解密所述用戶(hù)私鑰密文,得到用戶(hù)私鑰明文;
24、將所述用戶(hù)私鑰明文保存在本地。
25、可選地,所述方法還包括:將所述用戶(hù)私鑰密文保存在本地。
26、另一方面,本發(fā)明實(shí)施例還提供一種簽名算法在線密鑰分發(fā)方法,所述方法包括:
27、pkg接收用戶(hù)設(shè)備首次聯(lián)網(wǎng)時(shí)發(fā)送的密鑰協(xié)商信息;所述密鑰協(xié)商信息包括:puf芯片信息、以及用戶(hù)身份信息;
28、根據(jù)所述puf芯片信息查詢(xún)數(shù)據(jù)庫(kù),得到puf初始響應(yīng);
29、根據(jù)所述puf初始響應(yīng)和puf當(dāng)前響應(yīng)對(duì)應(yīng)的輔助數(shù)據(jù),得到puf當(dāng)前響應(yīng);
30、根據(jù)所述puf當(dāng)前響應(yīng),利用密鑰生成算法產(chǎn)生協(xié)商密鑰k;
31、根據(jù)所述用戶(hù)身份信息和身份基簽名算法生成用戶(hù)私鑰;
32、利用所述協(xié)商密鑰k加密所述用戶(hù)私鑰,得到用戶(hù)私鑰密文;
33、將所述用戶(hù)私鑰密文發(fā)送給所述用戶(hù)設(shè)備。
34、可選地,所述puf初始響應(yīng)是所述用戶(hù)設(shè)備根據(jù)固定挑戰(zhàn)得到的;所述密鑰協(xié)商信息還包括:puf當(dāng)前響應(yīng)對(duì)應(yīng)的輔助數(shù)據(jù)。
35、可選地,所述puf初始響應(yīng)是所述用戶(hù)設(shè)備根據(jù)隨機(jī)挑戰(zhàn)得到的;所述方法還包括:
36、根據(jù)所述puf芯片信息查詢(xún)所述數(shù)據(jù)庫(kù),得到puf挑戰(zhàn),并將所述puf挑戰(zhàn)發(fā)送給所述用戶(hù)設(shè)備;
37、接收所述用戶(hù)設(shè)備發(fā)送的輔助數(shù)據(jù),所述輔助數(shù)據(jù)是所述用戶(hù)設(shè)備根據(jù)所述puf挑戰(zhàn)獲取的puf當(dāng)前響應(yīng)得到的。
38、另一方面,本發(fā)明實(shí)施例還提供一種用戶(hù)設(shè)備,所述用戶(hù)設(shè)備的puf芯片的響應(yīng)輸出接口在出廠前被永久關(guān)閉,并且根據(jù)puf挑戰(zhàn)生成的puf初始響應(yīng)保存在服務(wù)器端的數(shù)據(jù)庫(kù)中;所述用戶(hù)設(shè)備包括:
39、密鑰協(xié)商模塊,用于在所述用戶(hù)設(shè)備首次聯(lián)網(wǎng)時(shí),向pkg發(fā)送密鑰協(xié)商信息;所述密鑰協(xié)商信息包括:puf芯片信息、以及用戶(hù)身份信息;
40、密鑰生成模塊,用于根據(jù)puf當(dāng)前響應(yīng),利用密鑰生成算法產(chǎn)生協(xié)商密鑰k;
41、私鑰獲取模塊,用于接收pkg發(fā)送的根據(jù)所述密鑰協(xié)商信息生成的用戶(hù)私鑰密文。
42、可選地,所述puf挑戰(zhàn)為固定挑戰(zhàn),不同puf的挑戰(zhàn)相同或不同;
43、所述密鑰協(xié)商信息還包括:puf當(dāng)前響應(yīng)對(duì)應(yīng)的輔助數(shù)據(jù)。
44、可選地,所述puf挑戰(zhàn)為隨機(jī)挑戰(zhàn),并且保存在數(shù)據(jù)庫(kù)中;
45、所述密鑰協(xié)商模塊,還用于在所述用戶(hù)設(shè)備首次聯(lián)網(wǎng)時(shí),接收所述pkg發(fā)送的puf挑戰(zhàn),根據(jù)所述puf挑戰(zhàn)獲得puf當(dāng)前響應(yīng)及對(duì)應(yīng)的輔助數(shù)據(jù),將所述輔助數(shù)據(jù)發(fā)送給所述pkg;所述puf挑戰(zhàn)是所述pkg查詢(xún)所述數(shù)據(jù)庫(kù)獲取的。
46、可選地,所述用戶(hù)設(shè)備還包括:存儲(chǔ)模塊,用于保存所述用戶(hù)私鑰密文、或者保存用戶(hù)私鑰明文。
47、另一方面,本發(fā)明實(shí)施例還提供一種私鑰生成裝置,所述私鑰生成設(shè)備作用第三方為用戶(hù)設(shè)備生成私鑰,所述私鑰生成裝置包括:
48、接收模塊,用于接收用戶(hù)設(shè)備首次聯(lián)網(wǎng)時(shí)發(fā)送的密鑰協(xié)商信息;所述密鑰協(xié)商信息包括:puf芯片信息、以及用戶(hù)身份信息;
49、查詢(xún)模塊,用于根據(jù)所述puf芯片信息查詢(xún)數(shù)據(jù)庫(kù),得到puf初始響應(yīng);
50、恢復(fù)模塊,用于根據(jù)所述puf初始響應(yīng)和puf當(dāng)前響應(yīng)對(duì)應(yīng)的輔助數(shù)據(jù),得到puf當(dāng)前響應(yīng);
51、協(xié)商密鑰生成模塊,用于根據(jù)所述puf當(dāng)前響應(yīng),利用密鑰生成算法產(chǎn)生協(xié)商密鑰k;
52、私鑰生成模塊,用于根據(jù)所述用戶(hù)身份信息和身份基簽名算法生成用戶(hù)私鑰;
53、加密模塊,用于利用所述協(xié)商密鑰k加密所述用戶(hù)私鑰,得到用戶(hù)私鑰密文;
54、發(fā)送模塊,用于將所述用戶(hù)私鑰密文發(fā)送給所述用戶(hù)設(shè)備。
55、可選地,所述puf初始響應(yīng)是所述用戶(hù)設(shè)備根據(jù)固定挑戰(zhàn)得到的;所述密鑰協(xié)商信息還包括:puf當(dāng)前響應(yīng)對(duì)應(yīng)的輔助數(shù)據(jù)。
56、可選地,所述puf初始響應(yīng)是所述用戶(hù)設(shè)備根據(jù)隨機(jī)挑戰(zhàn)得到的;
57、所述查詢(xún)模塊,還用于根據(jù)所述puf芯片信息查詢(xún)所述數(shù)據(jù)庫(kù),得到puf挑戰(zhàn);
58、所述發(fā)送模塊,還用于將所述puf挑戰(zhàn)發(fā)送給所述用戶(hù)設(shè)備;
59、所述接收模塊,還用于接收所述用戶(hù)設(shè)備發(fā)送的輔助數(shù)據(jù),所述輔助數(shù)據(jù)是所述用戶(hù)設(shè)備根據(jù)所述puf挑戰(zhàn)獲取的puf當(dāng)前響應(yīng)得到的。
60、另一方面,本發(fā)明實(shí)施例還提供一種簽名算法在線密鑰分發(fā)系統(tǒng),所述系統(tǒng)包括:上述用戶(hù)設(shè)備、以及上述私鑰生成裝置。
61、可選地,所述系統(tǒng)還包括:服務(wù)器,用于在所述用戶(hù)設(shè)備出廠前注冊(cè)階段獲取puf初始響應(yīng),并將所述puf初始響應(yīng)保存到數(shù)據(jù)庫(kù)中,然后永久關(guān)閉所述puf芯片的響應(yīng)輸出接口。
62、可選地,所述私鑰生成裝置設(shè)置在所述服務(wù)器中。
63、另一方面,本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行上述所述簽名算法在線密鑰分發(fā)方法的步驟。
64、另一方面,本發(fā)明實(shí)施例還提供一種簽名算法在線密鑰分發(fā)裝置,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器上存儲(chǔ)有可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器運(yùn)行所述計(jì)算機(jī)程序時(shí)執(zhí)行上述簽名算法在線密鑰分發(fā)方法的步驟。
65、本發(fā)明實(shí)施例提供的簽名算法在線密鑰分發(fā)方法、裝置及系統(tǒng),通過(guò)輕量級(jí)密鑰協(xié)商機(jī)制,不需要公鑰密碼運(yùn)算、不需要存儲(chǔ)公私鑰對(duì)和證書(shū)、只需要一次交互就可以完成密鑰分發(fā)。對(duì)于iot設(shè)備來(lái)說(shuō),計(jì)算、存儲(chǔ)和通信開(kāi)銷(xiāo)都會(huì)大大減少。