本發(fā)明涉及可信計(jì)算技術(shù)領(lǐng)域,特別是涉及一種無CA的身份認(rèn)證方法和系統(tǒng)。
背景技術(shù):
非對(duì)稱密鑰的認(rèn)證通常采用證書的方式,通過CA(證書管理機(jī)構(gòu))提供第三方認(rèn)證。在互聯(lián)網(wǎng)場景下,通信雙方難以通過會(huì)面等其他安全方式交換密鑰,因此需要第三方CA保證密鑰的安全性。但是在工控系統(tǒng)中如果通過CA提供第三方認(rèn)證,不僅通信流量大,交互復(fù)雜度高,而且對(duì)于使用485、無線等通信方式的工控系統(tǒng),其通信帶寬、通信穩(wěn)定性遠(yuǎn)不如互聯(lián)網(wǎng)可靠,通過CA提供第三方認(rèn)證,通信速率低,通信穩(wěn)定性差,無法滿足工控系統(tǒng)的認(rèn)證需求。
技術(shù)實(shí)現(xiàn)要素:
基于上述情況,本發(fā)明提出了一種無CA的身份認(rèn)證方法和系統(tǒng),認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度。
為了實(shí)現(xiàn)上述目的,本發(fā)明技術(shù)方案的實(shí)施例為:
一種無CA的身份認(rèn)證方法,包括以下步驟:
接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密,并將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
接收所述主站發(fā)送的第二隨機(jī)數(shù),所述第二隨機(jī)數(shù)為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到的隨機(jī)數(shù);
當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),判定所述主站身份認(rèn)證通過,并將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。
一種無CA的身份認(rèn)證方法,包括以下步驟:
接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密,并將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
接收所述主站發(fā)送的第二隨機(jī)數(shù)的散列值,所述第二隨機(jī)數(shù)的散列值為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到第二隨機(jī)數(shù)后,根據(jù)所述第二隨機(jī)數(shù)確定的散列值;
當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),判定所述主站身份認(rèn)證通過,并將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站,所述第一隨機(jī)數(shù)的散列值根據(jù)所述第一隨機(jī)數(shù)確定。
一種無CA的身份認(rèn)證方法,包括以下步驟:
在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù),并將所述第二隨機(jī)數(shù)發(fā)送至所述安全芯片;
接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),所述安全芯片判定所述主站身份認(rèn)證通過的結(jié)果。
一種無CA的身份認(rèn)證方法,包括以下步驟:
在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù),根據(jù)所述第二隨機(jī)數(shù)確定所述隨機(jī)數(shù)的散列值,并將所述第二隨機(jī)數(shù)的散列值發(fā)送至所述安全芯片;
接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),所述安全芯片判定所述主站身份認(rèn)證通過的結(jié)果,所述第一隨機(jī)數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機(jī)數(shù)確定的散列值。
一種無CA的身份認(rèn)證系統(tǒng),包括:
主站公鑰及主站公鑰簽名接收模塊,用于接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
主站公鑰簽名模塊,用于利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
隨機(jī)數(shù)生成模塊,用于當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
隨機(jī)數(shù)加密模塊,用于利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密;
隨機(jī)數(shù)加密結(jié)果發(fā)送模塊,用于將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機(jī)數(shù)接收模塊,用于接收所述主站發(fā)送的第二隨機(jī)數(shù),所述第二隨機(jī)數(shù)為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到的隨機(jī)數(shù);
主站認(rèn)證模塊,用于當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),判定所述主站身份認(rèn)證通過;
主站認(rèn)證結(jié)果發(fā)送模塊,用于將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。
一種無CA的身份認(rèn)證系統(tǒng),包括:
主站公鑰及主站公鑰簽名接收模塊,用于接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
主站公鑰簽名模塊,用于利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
隨機(jī)數(shù)生成模塊,用于當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
隨機(jī)數(shù)加密模塊,用于利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密;
隨機(jī)數(shù)加密結(jié)果發(fā)送模塊,用于將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機(jī)數(shù)散列值接收模塊,用于接收所述主站發(fā)送的第二隨機(jī)數(shù)的散列值,所述第二隨機(jī)數(shù)的散列值為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到第二隨機(jī)數(shù)后,根據(jù)所述第二隨機(jī)數(shù)確定的散列值;
主站認(rèn)證模塊,用于當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),判定所述主站身份認(rèn)證通過,所述第一隨機(jī)數(shù)的散列值根據(jù)所述第一隨機(jī)數(shù)確定;
主站認(rèn)證結(jié)果發(fā)送模塊,用于將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。
一種無CA的身份認(rèn)證系統(tǒng),包括:
主站公鑰及主站公鑰簽名發(fā)送模塊,用于在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果解密模塊,用于利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù);
隨機(jī)數(shù)發(fā)送模塊,用于將所述第二隨機(jī)數(shù)發(fā)送至所述安全芯片;
認(rèn)證結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),所述安全芯片判定身份認(rèn)證通過的結(jié)果。
一種無CA的身份認(rèn)證系統(tǒng),包括:
主站公鑰及主站公鑰簽名發(fā)送模塊,用于在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果解密模塊,用于利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù),根據(jù)所述第二隨機(jī)數(shù)確定所述隨機(jī)數(shù)的散列值;
隨機(jī)數(shù)散列值發(fā)送模塊,用于將所述第二隨機(jī)數(shù)的散列值發(fā)送至所述安全芯片;
認(rèn)證結(jié)果接收模塊,用于接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),所述安全芯片判定身份認(rèn)證通過的結(jié)果,所述第一隨機(jī)數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機(jī)數(shù)確定的散列值。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:本發(fā)明無CA的身份認(rèn)證方法和系統(tǒng),首先接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名;然后利用安全芯片私鑰對(duì)接收的主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);利用主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密,并將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;接收所述主站發(fā)送的第二隨機(jī)數(shù);當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),判定所述主站身份認(rèn)證通過,并將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。本發(fā)明對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
附圖說明
圖1為一個(gè)實(shí)施例中無CA的身份認(rèn)證方法流程圖一;
圖2為一個(gè)實(shí)施例中無CA的身份認(rèn)證方法流程圖二;
圖3為一個(gè)實(shí)施例中無CA的身份認(rèn)證方法流程圖三;
圖4為一個(gè)實(shí)施例中無CA的身份認(rèn)證方法流程圖四;
圖5為基于圖2、4所示方法一個(gè)具體示例中無CA的身份認(rèn)證方法中主站公鑰簽名流程圖;
圖6為基于圖2、4所示方法一個(gè)具體示例中無CA的身份認(rèn)證方法中公鑰驗(yàn)證流程圖;
圖7為基于圖2、4所示方法一個(gè)具體示例中無CA的身份認(rèn)證方法中挑戰(zhàn)/應(yīng)答流程圖;
圖8為一個(gè)實(shí)施例中無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖一;
圖9為一個(gè)實(shí)施例中無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖二;
圖10為一個(gè)實(shí)施例中無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖三;
圖11為一個(gè)實(shí)施例中無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖四。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方式僅僅用以解釋本發(fā)明,并不限定本發(fā)明的保護(hù)范圍。
圖1中示出一個(gè)實(shí)施例中本發(fā)明無CA(證書管理機(jī)構(gòu))的身份認(rèn)證方法流程圖一,在該實(shí)施例中,是以安全芯片(TPM,Trusted Platform Module)的處理過程為例進(jìn)行說明,這里安全芯片就是可信任平臺(tái)模塊,是一個(gè)可獨(dú)立進(jìn)行密鑰生成、加解密的裝置,安全芯片安裝在終端設(shè)備中。
如圖1所示,在該實(shí)施例中,安全芯片的處理過程可以包括以下步驟:
步驟S101:接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
這里,身份認(rèn)證指令為需要認(rèn)證后才能進(jìn)行相應(yīng)操作的指令,例如電表拉閘指令。主站為后臺(tái)服務(wù)器或機(jī)房等。
具體地,預(yù)設(shè)安全環(huán)境指值密鑰注入、產(chǎn)品檢測等環(huán)節(jié),這些環(huán)節(jié)由主站自身管理,通常在特殊的場所開展工作,如在機(jī)房、裝有監(jiān)控安全等級(jí)較高的車間等,這些場所通常不聯(lián)網(wǎng)、工作人員可靠。在安全環(huán)境下,可以認(rèn)為一些安全風(fēng)險(xiǎn)無法產(chǎn)生威脅。
主站非對(duì)稱密鑰、安全芯片非對(duì)稱密鑰通常使用隨機(jī)數(shù)發(fā)生器隨機(jī)生成。
非對(duì)稱密鑰包括公鑰和私鑰,非對(duì)稱密鑰的公鑰和私鑰配對(duì)使用,公鑰可以公開,私鑰由密鑰持有人保管,公鑰加密的數(shù)據(jù)只有私鑰能夠解密,私鑰加密的數(shù)據(jù)(稱為簽名)只有公鑰可以解密。
步驟S102:利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
這里,簽名指用私鑰對(duì)數(shù)據(jù)進(jìn)行加密,實(shí)際應(yīng)用中,通常使用私鑰對(duì)數(shù)據(jù)的哈希值進(jìn)行加密,簽名的作用是:可以驗(yàn)證數(shù)據(jù)的授權(quán)(私鑰簽名)和完整性(哈希函數(shù))。
步驟S103:當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
具體地,主站公鑰的第一簽名和所述主站公鑰的第二簽名相同說明數(shù)據(jù)與簽名是一致的,數(shù)據(jù)是經(jīng)過授權(quán)的,是正確的,是未被篡改的。若不一致,說明數(shù)據(jù)是偽造的,或經(jīng)過了篡改。
這里,使用基于硬件的隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)。
步驟S104:利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密,并將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
步驟S105:接收所述主站發(fā)送的第二隨機(jī)數(shù),所述第二隨機(jī)數(shù)為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到的隨機(jī)數(shù);
步驟S106:當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),判定所述主站身份認(rèn)證通過,并將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。
這里,若一致,則認(rèn)證通過,否則返回失敗,私鑰代表了持有人,私鑰的操作就是持有人意思的表達(dá);而公鑰則可以公開,每個(gè)人都可以拿到。上述即為如果證明A是私鑰的持有人,方法如下:B生成一個(gè)隨機(jī)數(shù),用公鑰加密,如果A能夠正確解密,告訴B隨機(jī)數(shù)的值,則說明A是私鑰的持有人。
從以上描述可知,本發(fā)明無CA的身份認(rèn)證方法,對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
此外,在一個(gè)具體示例中,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對(duì)所述主站公鑰的散列值進(jìn)行加密得到的簽名。
這里,簽名指用私鑰對(duì)數(shù)據(jù)進(jìn)行加密,實(shí)際應(yīng)用中,通常使用私鑰對(duì)數(shù)據(jù)的哈希值進(jìn)行加密,簽名的作用是:可以驗(yàn)證數(shù)據(jù)的授權(quán)(私鑰簽名)和完整性(哈希函數(shù))。
圖2中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證方法流程圖二,在該實(shí)施例中,是以安全芯片的處理過程為例進(jìn)行說明。
如圖2所示,在該實(shí)施例中,安全芯片的處理過程可以包括以下步驟:
步驟S201:接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
具體地,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對(duì)所述主站公鑰的散列值進(jìn)行加密得到的簽名。
步驟S202:利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
步驟S203:當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
步驟S204:利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密,并將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
步驟S205:接收所述主站發(fā)送的第二隨機(jī)數(shù)的散列值,所述第二隨機(jī)數(shù)的散列值為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到第二隨機(jī)數(shù)后,根據(jù)所述第二隨機(jī)數(shù)確定的散列值;
步驟S206:當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),判定所述主站身份認(rèn)證通過,并將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站,所述第一隨機(jī)數(shù)的散列值根據(jù)所述第一隨機(jī)數(shù)確定。
這里,散列值又稱哈希值,哈希函數(shù)用于計(jì)算數(shù)據(jù)的“指紋”,數(shù)據(jù)有微小的改變,其哈希值會(huì)有明顯不同。因此,這里的一致說明數(shù)據(jù)與簽名是一致的,數(shù)據(jù)是經(jīng)過授權(quán)的,是正確的,是未被篡改的。若不一致,說明數(shù)據(jù)是偽造的,或經(jīng)過了篡改。
從以上描述可知,本發(fā)明無CA的身份認(rèn)證方法,對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
圖3中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證方法流程圖三,在該實(shí)施例中,是以主站的處理過程為例進(jìn)行說明。
如圖3所示,在該實(shí)施例中,主站的處理過程可以包括以下步驟:
步驟S301:在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
步驟S302:接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
步驟S303:利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù),并將所述第二隨機(jī)數(shù)發(fā)送至所述安全芯片;
步驟S304:接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),所述安全芯片判定所述主站身份認(rèn)證通過的結(jié)果。
從以上描述可知,本發(fā)明無CA的身份認(rèn)證方法,對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
此外,在一個(gè)具體實(shí)施例中,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對(duì)所述主站公鑰的散列值進(jìn)行加密得到的簽名。
圖4中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證方法流程圖四,在該實(shí)施例中,是以主站的處理過程為例進(jìn)行說明。
如圖4所示,在該實(shí)施例中,主站的處理過程可以包括以下步驟:
步驟S401:在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
這里,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,獲得在預(yù)設(shè)安全環(huán)境中接收的主站公鑰的散列值,利用所述安全芯片私鑰對(duì)所述主站公鑰的散列值進(jìn)行加密得到的簽名。
步驟S402:接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
步驟S403:利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù),根據(jù)所述第二隨機(jī)數(shù)確定所述隨機(jī)數(shù)的散列值,并將所述第二隨機(jī)數(shù)的散列值發(fā)送至所述安全芯片;
步驟S404:接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),所述安全芯片判定所述主站身份認(rèn)證通過的結(jié)果,所述第一隨機(jī)數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機(jī)數(shù)確定的散列值。
從以上描述可知,本發(fā)明無CA的身份認(rèn)證方法,對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
為了更好地理解上述方法,以下詳細(xì)闡述一個(gè)本發(fā)明無CA的身份認(rèn)證方法的應(yīng)用實(shí)例。
結(jié)合上述圖2、圖4中的方案,在本實(shí)施例中,是以安全芯片和主站之間的雙向交互過程為例進(jìn)行說明,這種說明并不用以對(duì)本發(fā)明方案構(gòu)成限定。
本實(shí)施例主要有三個(gè)步驟,分別是主站公鑰簽名、公鑰驗(yàn)證和挑戰(zhàn)/應(yīng)答。
主站公鑰簽名流程如圖5所示,TPM(Trusted Platform Module,安全芯片)生成安全芯片非對(duì)稱密鑰,主站生成主站非對(duì)稱密鑰,安全芯片非對(duì)稱密鑰包括安全芯片公鑰Ktpmpub和安全芯片私鑰Ktpmpri,主站非對(duì)稱密鑰包括主站公鑰Kuserpub和主站私鑰Kuserpri;
在安全環(huán)境中,主站將主站公鑰Kuserpub發(fā)送至TPM;
這里,安全環(huán)境指嵌入式設(shè)備生成等環(huán)節(jié)中涉及到的安全芯片密鑰注入等環(huán)節(jié),此時(shí)可以認(rèn)為主站的密鑰沒有被篡改、偽造。
TPM使用安全芯片私鑰Ktpmpri對(duì)主站公鑰Kuserpub進(jìn)行簽名,得到主站公鑰Kuserpub的第一簽名Ktpmpri(Hash(Kuserpub)),并將該簽名發(fā)送給主站,主站保存該簽名;
公鑰驗(yàn)證流程如圖6所示,TPM在安裝在設(shè)備中開始工作后,應(yīng)用程序會(huì)需要進(jìn)行認(rèn)證,此時(shí),應(yīng)用程序即為主站,主站將保存的主站公鑰Kuserpub的第一簽名Ktpmpri(Hash(Kuserpub))和主站公鑰Kuserpub一起發(fā)送個(gè)TPM;
TPM使用安全芯片私鑰Ktpmpri對(duì)上一步驟接收的主站公鑰Kuserpub進(jìn)行簽名,得到主站公鑰Kuserpub的第二簽名Ktpmpri’(Hash(Kuserpub));
挑戰(zhàn)/應(yīng)答流程如圖7所示,TPM將主站公鑰Kuserpub的第一簽名Ktpmpri(Hash(Kuserpub))與主站公鑰Kuserpub的第二簽名Ktpmpri’(Hash(Kuserpub))進(jìn)行比較,當(dāng)上述兩個(gè)簽名相同時(shí),生成隨機(jī)數(shù)nonce,否則返回失??;
TPM使用主站公鑰Kuserpub對(duì)隨機(jī)數(shù)nonce進(jìn)行加密,得到加密結(jié)果Kuserpub(nonce),將該加密結(jié)果發(fā)送至主站;
主站使用主站私鑰Kuserpri對(duì)上述加密結(jié)果進(jìn)行解密,得到隨機(jī)數(shù)nonce’,計(jì)算nonce’的散列值Hash(nonce’),并將Hash(nonce’)發(fā)送給TPM;
TPM計(jì)算隨機(jī)數(shù)nonce的散列值Hash(nonce),并與接收到的隨機(jī)數(shù)nonce’的散列值Hash(nonce’)進(jìn)行比較,若一致,則身份認(rèn)證通過,否則返回失敗。
從以上描述可知,本實(shí)施例包括主站公鑰簽名、公鑰驗(yàn)證和挑戰(zhàn)/應(yīng)答三個(gè)步驟,主站公鑰簽名流程是:在安全的環(huán)境下,主站將主站公鑰發(fā)送給TPM,TPM對(duì)主站公鑰進(jìn)行第一次簽名,并將簽名數(shù)據(jù)發(fā)送給主站進(jìn)行保存;公鑰驗(yàn)證流程是:安全芯片在安裝在設(shè)備中開始工作后,主站將主站公鑰和上述第一簽名一起發(fā)送個(gè)TPM,TPM對(duì)接收的主站公鑰進(jìn)行第二次簽名;挑戰(zhàn)/應(yīng)答流程是:當(dāng)兩次簽名相同時(shí),TPM生成隨機(jī)數(shù)nonce,使用主站公鑰進(jìn)行加密,將加密結(jié)果發(fā)送給主站,主站用主站私鑰進(jìn)行解密,得到隨機(jī)數(shù)nonce’,計(jì)算該隨機(jī)數(shù)的散列值,將該散列值發(fā)送給TPM,TPM計(jì)算nonce的散列值,并與接收到的散列值進(jìn)行比較,若一致,則身份認(rèn)證通過。本實(shí)施例對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
圖8中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖一,在該實(shí)施例中,是以安全芯片這端為例進(jìn)行說明。
如圖8所示,在該實(shí)施例中,無CA的身份認(rèn)證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名接收模塊801,用于接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
主站公鑰簽名模塊802,用于利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
隨機(jī)數(shù)生成模塊803,用于當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
隨機(jī)數(shù)加密模塊804,用于利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密;
隨機(jī)數(shù)加密結(jié)果發(fā)送模塊805,用于將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機(jī)數(shù)接收模塊806,用于接收所述主站發(fā)送的第二隨機(jī)數(shù),所述第二隨機(jī)數(shù)為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到的隨機(jī)數(shù);
主站認(rèn)證模塊807,用于當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),判定所述主站身份認(rèn)證通過;
主站認(rèn)證結(jié)果發(fā)送模塊808,用于將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。
圖9中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖二,在該實(shí)施例中,是以安全芯片這端為例進(jìn)行說明。
如圖9所示,在該實(shí)施例中,無CA的身份認(rèn)證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名接收模塊901,用于接收主站在接收身份認(rèn)證指令后發(fā)送的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名,所述主站公鑰的第一簽名為在預(yù)設(shè)安全環(huán)境中接收所述主站發(fā)送的所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名后得到的簽名;
主站公鑰簽名模塊902,用于利用所述安全芯片私鑰對(duì)接收的所述主站在接收身份認(rèn)證指令后發(fā)送的主站公鑰進(jìn)行第二次簽名,得到主站公鑰的第二簽名;
隨機(jī)數(shù)生成模塊903,用于當(dāng)所述主站公鑰的第一簽名和所述主站公鑰的第二簽名相同時(shí),生成第一隨機(jī)數(shù);
隨機(jī)數(shù)加密模塊904,用于利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密;
隨機(jī)數(shù)加密結(jié)果發(fā)送模塊905,用于將所述第一隨機(jī)數(shù)的加密結(jié)果發(fā)送至所述主站;
隨機(jī)數(shù)散列值接收模塊906,用于接收所述主站發(fā)送的第二隨機(jī)數(shù)的散列值,所述第二隨機(jī)數(shù)的散列值為所述主站利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密得到第二隨機(jī)數(shù)后,根據(jù)所述第二隨機(jī)數(shù)確定的散列值;
主站認(rèn)證模塊907,用于當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),判定所述主站身份認(rèn)證通過,所述第一隨機(jī)數(shù)的散列值根據(jù)所述第一隨機(jī)數(shù)確定;
主站認(rèn)證結(jié)果發(fā)送模塊908,用于將所述主站的身份認(rèn)證通過結(jié)果發(fā)送至所述主站。
圖10中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖三,在該實(shí)施例中,是以主站這端為例進(jìn)行說明。
如圖10所示,在該實(shí)施例中,無CA的身份認(rèn)證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名發(fā)送模塊1001,用于在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果接收模塊1002,用于接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果解密模塊1003,用于利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù);
隨機(jī)數(shù)發(fā)送模塊1004,用于將所述第二隨機(jī)數(shù)發(fā)送至所述安全芯片;
認(rèn)證結(jié)果接收模塊1005,用于接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)與所述第二隨機(jī)數(shù)相同時(shí),所述安全芯片判定身份認(rèn)證通過的結(jié)果。
圖11中示出一個(gè)實(shí)施例中本發(fā)明無CA的身份認(rèn)證系統(tǒng)結(jié)構(gòu)示意圖四,在該實(shí)施例中,是以主站這端為例進(jìn)行說明。
如圖11所示,在該實(shí)施例中,無CA的身份認(rèn)證系統(tǒng)可以包括:
主站公鑰及主站公鑰簽名發(fā)送模塊1101,用于在接收身份認(rèn)證指令后,將生成的主站非對(duì)稱密鑰中的主站公鑰和預(yù)存的主站公鑰的第一簽名發(fā)送至安全芯片,所述主站公鑰的第一簽名為所述安全芯片在預(yù)設(shè)安全環(huán)境中接收所述主站非對(duì)稱密鑰中主站公鑰后,利用生成的安全芯片非對(duì)稱密鑰中的安全芯片私鑰對(duì)在預(yù)設(shè)安全環(huán)境中接收的主站公鑰進(jìn)行第一次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果接收模塊1102,用于接收所述安全芯片發(fā)送的第一隨機(jī)數(shù)的加密結(jié)果,所述第一隨機(jī)數(shù)的加密結(jié)果為當(dāng)所述主站公鑰的第一簽名和主站公鑰的第二簽名相同時(shí),所述安全芯片生成第一隨機(jī)數(shù)后,利用所述主站非對(duì)稱密鑰中主站公鑰對(duì)所述第一隨機(jī)數(shù)進(jìn)行加密得到的隨機(jī)數(shù)的加密結(jié)果,所述主站公鑰的第二簽名為所述安全芯片利用所述安全芯片私鑰對(duì)在身份認(rèn)證指令后接收的主站公鑰進(jìn)行第二次簽名得到的簽名;
隨機(jī)數(shù)加密結(jié)果解密模塊1103,用于利用所述主站非對(duì)稱密鑰中的主站私鑰對(duì)所述第一隨機(jī)數(shù)的加密結(jié)果進(jìn)行解密,得到第二隨機(jī)數(shù),根據(jù)所述第二隨機(jī)數(shù)確定所述隨機(jī)數(shù)的散列值;
隨機(jī)數(shù)散列值發(fā)送模塊1104,用于將所述第二隨機(jī)數(shù)的散列值發(fā)送至所述安全芯片;
認(rèn)證結(jié)果接收模塊1105,用于接收所述安全芯片發(fā)送的身份認(rèn)證通過結(jié)果,所述身份認(rèn)證通過結(jié)果為當(dāng)所述第一隨機(jī)數(shù)的散列值與所述第二隨機(jī)數(shù)的散列值相同時(shí),所述安全芯片判定身份認(rèn)證通過的結(jié)果,所述第一隨機(jī)數(shù)的散列值為所述安全芯片根據(jù)所述第一隨機(jī)數(shù)確定的散列值。
從以上描述可知,本發(fā)明無CA的身份認(rèn)證系統(tǒng),對(duì)主站進(jìn)行非對(duì)稱密鑰的認(rèn)證,認(rèn)證過程中無需在線CA的參與,減少了通信流量,消除了第三方CA的角色,降低了交互的復(fù)雜度,更加適用于工業(yè)控制等嵌入式應(yīng)用場景。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。