專利名稱:Cpk可信認(rèn)證系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù),尤其設(shè)計(jì)一種計(jì)算機(jī)與網(wǎng)絡(luò)環(huán)境下的CPK可信認(rèn)證系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,對計(jì)算機(jī)和網(wǎng)絡(luò)安全的要求也越來越高,相應(yīng)的加密算法和技術(shù)也在蓬勃發(fā)展。目前的加密技術(shù)可分為兩類,即對稱密鑰技術(shù)和非對稱密鑰技術(shù)。其中非對稱密鑰技術(shù)由于可以避免通過網(wǎng)絡(luò)傳遞解密密鑰即私鑰的需要而得到了廣泛的應(yīng)用。
非對稱密鑰目前最為本領(lǐng)域技術(shù)人員所公知的技術(shù)為PKI(Public KeyInfrastructure)。PKI的運(yùn)行靠兩大部件層次化的CA機(jī)構(gòu)(CertificationAuthority)和龐大的證書庫LDAP。PKI靠第三方公證來解決標(biāo)識和密鑰的捆綁。為此需要建立龐大的層次化的CA認(rèn)證機(jī)構(gòu)。PKI還要靠在線運(yùn)行的證書庫的支持,證書庫的在線運(yùn)行引發(fā)了大量的網(wǎng)絡(luò)信息流量,例如一方為了獲得通信對方的證書,就需要向CA層層認(rèn)證。正因?yàn)榛赑KI技術(shù)實(shí)現(xiàn)的認(rèn)證系統(tǒng)依靠數(shù)據(jù)庫在線運(yùn)行,其運(yùn)行效率很低,處理能力不大。據(jù)美國國防部反映,PKI將引起信息爆炸,美軍將來的通信也很難滿足PKI帶寬需求,而且引起機(jī)構(gòu)爆炸,為支持200萬張CAC卡,全軍新增了2500個(gè)CA工作站,人員管理和經(jīng)費(fèi)已到不堪重負(fù)的程度。于是當(dāng)今的各國學(xué)者,包括部分PKI公司在內(nèi),正在尋找一種新的出路。
另一種非常有具有前景的加密技術(shù)是IBE(Identity Based Encryption)。1984年,Shamir提出了基于標(biāo)識的簽名設(shè)想,并推測基于標(biāo)識的密碼體制(簡稱IBEIdentity Based Encryption)的存在性,但是一直沒有找到具體的實(shí)現(xiàn)方法。
2001年Don Boneh和Matthew Franklin根據(jù)Shamir的想法,提出了從Weil配對來實(shí)現(xiàn)基于標(biāo)識的密碼體制。與PKI技術(shù)相比較,IBE算法雖然取消了龐大的層次化CA機(jī)構(gòu),但需要保留用戶相關(guān)的參數(shù)?;贗BE算法實(shí)現(xiàn)的認(rèn)證系統(tǒng)依靠數(shù)據(jù)庫在線運(yùn)行,其運(yùn)行效率很低,處理能力并不大。因?yàn)閰?shù)是與各用戶相關(guān),所以參數(shù)量與用戶量成正比。只要需要公布用戶相關(guān)信息,就需要目錄庫(LDAP)等數(shù)據(jù)庫的支持,進(jìn)而也沒有辦法減少動(dòng)態(tài)的在線維護(hù)量。
公眾網(wǎng)的發(fā)展和應(yīng)用,提出了構(gòu)筑可信網(wǎng)絡(luò)系統(tǒng)的新的要求。認(rèn)證系統(tǒng)是可信網(wǎng)絡(luò)系統(tǒng)的核心技術(shù),而在認(rèn)證系統(tǒng)的核心技術(shù)則是密鑰技術(shù)。密鑰技術(shù)中有兩大難點(diǎn)規(guī)?;突跇?biāo)識的密鑰分發(fā)。CPK密鑰技術(shù)正好解決了這兩個(gè)難點(diǎn),為實(shí)現(xiàn)規(guī)?;娋W(wǎng)上實(shí)現(xiàn)可信系統(tǒng)創(chuàng)造了條件。
CPK算法與IBE算法一樣,也是基于標(biāo)識的公鑰算法。CPK不需要數(shù)據(jù)庫的在線支持,可用一個(gè)芯片實(shí)現(xiàn),在規(guī)模性、經(jīng)濟(jì)性、可行性、運(yùn)行效率上具有前述兩種體制(PKI和IBE)無法比擬的優(yōu)勢。
雖然CPK可信認(rèn)證系統(tǒng)存在巨大的優(yōu)越性,然而其核心的CPK算法存在一定程度的弱點(diǎn)。CPK算法本身不能抵御用戶共謀攻擊。對于n*n的CPK因子矩陣可以支持n*n數(shù)量級的用戶,但是攻擊者只要收集到n*(n-1)數(shù)量的用戶私鑰,就可以求解出整個(gè)私鑰因子矩陣,以此可以計(jì)算出任何一個(gè)用戶的私鑰,從而破解整個(gè)系統(tǒng)。對于實(shí)際系統(tǒng)而言,根據(jù)因子矩陣大小的不同,采用較小因子矩陣的CPK系統(tǒng)可能只能抵御1000個(gè)用戶以下的共謀攻擊。如果不能有效地保證私鑰的安全,那么整個(gè)系統(tǒng)將面臨著巨大的風(fēng)險(xiǎn)。
因此,如何解決私鑰保護(hù)問題,則成為CPK認(rèn)證體制的一個(gè)亟待解決的問題。
發(fā)明內(nèi)容
有鑒于此,為了解決CPK認(rèn)證中存在的私鑰保護(hù)問題,增強(qiáng)CPK認(rèn)證體制的安全性,本發(fā)明提出了基于專有硬件設(shè)備的CPK認(rèn)證加密系統(tǒng),不僅能夠有效地抵御用戶共謀攻擊,確保了CPK認(rèn)證體制的安全,同時(shí)使得該認(rèn)證體制更易于管理,也使得CPK認(rèn)證方式適用于更廣泛的應(yīng)用。
根據(jù)本發(fā)明的CPK可信認(rèn)證系統(tǒng),通過專有硬件設(shè)備實(shí)現(xiàn)CPK算法,并利用該專有硬件設(shè)備存儲(chǔ)、管理和保護(hù)CPK算法和認(rèn)證體制中的私鑰等機(jī)密、敏感數(shù)據(jù)。和純軟件的實(shí)現(xiàn)相比,私鑰只在系統(tǒng)內(nèi)部參與運(yùn)算,即使系統(tǒng)的合法用戶也不能從系統(tǒng)中讀出私鑰數(shù)據(jù),杜絕了攻擊者獲得私鑰的可能性,從而從根本上消除了共謀攻擊的可能性。
本發(fā)明的主要目的在于提供一種組合公鑰(CPK)可信認(rèn)證系統(tǒng),該CPK可信認(rèn)證系統(tǒng)是以芯片實(shí)現(xiàn)加密與脫密功能、數(shù)字簽名與驗(yàn)證功能、密鑰的存儲(chǔ)與管理功能、在不同標(biāo)識域和安全域具有一卡通的功能的認(rèn)證系統(tǒng),其中專用軟件系統(tǒng)(COS)、CPK算法、ID證書、簽名協(xié)議和密鑰交換協(xié)議、加密算法和HASH函數(shù)等,均以模塊化設(shè)計(jì)方式實(shí)現(xiàn),其特征在于該系統(tǒng)包括處理器,用于處理各種數(shù)據(jù),從而對整個(gè)系統(tǒng)進(jìn)行控制和管理;安全存儲(chǔ)器,只有處理器的特定指令、或?qū)iT的外部設(shè)備才可以訪問其中的數(shù)據(jù),攻擊者不能繞過這些接口訪問存儲(chǔ)器中的數(shù)據(jù),也不能通過剖片攻擊等邏輯或者物理上的方式訪問其中數(shù)據(jù);普通存儲(chǔ)器,用于存儲(chǔ)其他數(shù)據(jù);公鑰密碼學(xué)引擎,提供用于公鑰運(yùn)算的指令,支持橢圓曲線密碼學(xué)運(yùn)算;對稱密碼學(xué)引擎,提供用于對稱加密、散列算法等運(yùn)算指令;真隨機(jī)數(shù)發(fā)生器,用于生成真隨機(jī)數(shù);系統(tǒng)保護(hù)設(shè)備,包括對芯片的安全封裝、防剖片分析等攻擊的防護(hù)器件;通信接口,包括USB控制器,串行接口或智能卡接口,用于與外部設(shè)備進(jìn)行通信;此外,該系統(tǒng)還包括標(biāo)識-私鑰管理模塊,用于存儲(chǔ)、管理、處理、保護(hù)私鑰和標(biāo)識數(shù)據(jù),所有對私鑰的操作都由該模塊完成,該模塊調(diào)用橢圓曲線密碼學(xué)模塊進(jìn)行橢圓曲線簽名和橢圓曲線公鑰加密的解密運(yùn)算;公鑰因子矩陣管理模塊,通過映射算法將標(biāo)識映射為公鑰因子矩陣的索引,并通過CPK算法和公鑰因子矩陣計(jì)算出對應(yīng)的公鑰;訪問控制模塊,通過口令和密碼學(xué)功能保護(hù)系統(tǒng),確保只有擁有口令的用戶才能訪問系統(tǒng);橢圓曲線密碼學(xué)模塊,可以進(jìn)行橢圓曲線簽名、驗(yàn)證、公鑰加密、解密等功能;對稱密碼學(xué)模塊,提供對稱加密、散列算法、MAC算法等;HASH算法模塊,根據(jù)HASH函數(shù)對數(shù)據(jù)進(jìn)行運(yùn)算;真隨機(jī)數(shù)發(fā)生模塊,生成真隨機(jī)數(shù);CPK數(shù)據(jù)格式編解碼模塊,以CPK格式對數(shù)據(jù)進(jìn)行編碼和解碼;通信協(xié)議模塊,實(shí)現(xiàn)和CPK代理之間的通信協(xié)議,以請求-應(yīng)答命令的方式向CPK代理提供服務(wù)。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,如果該系統(tǒng)不包括公鑰密碼學(xué)引擎,對稱密碼學(xué)引擎和真隨機(jī)數(shù)發(fā)生器,則該系統(tǒng)調(diào)用相應(yīng)的橢圓曲線密碼模塊、對稱密碼學(xué)模塊和真隨機(jī)數(shù)發(fā)生模塊完成其功能。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,其中所述數(shù)據(jù)包括公鑰因子矩陣,當(dāng)前用戶的標(biāo)識和相應(yīng)的私鑰,這些數(shù)據(jù)以ID證書的形式存儲(chǔ)。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,其中所述主要功能包括ID屬性管理、加密功能、簽名功能、協(xié)議執(zhí)行功能、密鑰存儲(chǔ)與管理功能等,且能夠即插即用。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,其中所述系統(tǒng)包括集成有處理器和存儲(chǔ)器的智能卡芯片、獨(dú)立存儲(chǔ)器設(shè)備和安全計(jì)算機(jī)至少其中之一。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,其中所述芯片根據(jù)封裝和接口的不同,可以為智能卡、USB Key、Flash存儲(chǔ)卡、手機(jī)SIM卡至少其中之一。
本發(fā)明的其他優(yōu)點(diǎn)、目標(biāo),和特征在某種程度上將在隨后的說明書中進(jìn)行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn)可以通過下面的說明書,權(quán)利要求書,以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述,其中圖1示出了根據(jù)本發(fā)明的CPK系統(tǒng)的基本結(jié)構(gòu);圖2示出了根據(jù)本發(fā)明的CPK系統(tǒng)的詳細(xì)結(jié)構(gòu);圖3示出了根據(jù)本發(fā)明的簽名流程;圖4示出了根據(jù)本發(fā)明的驗(yàn)證流程;圖5示出了根據(jù)本發(fā)明的公鑰加密流程;圖6示出了根據(jù)本發(fā)明的公鑰解密流程。
具體實(shí)施例方式
以下將參照附圖,對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。
CPK是組合公鑰(Combined Public Key)的簡寫。CPK密鑰管理體制是離散對數(shù)難題型的基于標(biāo)識(身份)的密鑰生成與管理的體制。它依據(jù)離散對數(shù)難題的數(shù)學(xué)原理構(gòu)建公開密鑰與私有密鑰矩陣,采用雜湊函數(shù)與密碼變換將實(shí)體的標(biāo)識映射為矩陣的行坐標(biāo)與列坐標(biāo)序列,用以對矩陣元素進(jìn)行選取與組合,生成數(shù)量龐大的由公開密鑰和私有密鑰組成的公、私密鑰對,從而實(shí)現(xiàn)基于標(biāo)識的超大規(guī)模的密鑰生產(chǎn)與分發(fā)。
CPK密鑰算法利用離散對數(shù)、橢圓曲線密碼理論,構(gòu)造公、私鑰對,以映射算法將公、私鑰變量和用戶標(biāo)識綁定,從而解決基于標(biāo)識的密鑰管理。CPK的密鑰管理采用密鑰集中生產(chǎn),統(tǒng)籌配發(fā)的集中式模式,具有可控制、可管理的優(yōu)點(diǎn),便于構(gòu)建由上而下的網(wǎng)絡(luò)信任體制。CPK的密鑰管理采用了密鑰分散存儲(chǔ)、靜態(tài)調(diào)用的運(yùn)行模式,從而可以實(shí)現(xiàn)第三方和非在先認(rèn)證。
根據(jù)本發(fā)明,CPK組合公鑰算法利用有限的公/私因子構(gòu)造公/私因子矩陣,在此公/私鑰矩陣基礎(chǔ)上可派生數(shù)量極其巨大的公/私鑰對,并通過映射算法將參與方的標(biāo)識與其密鑰(公/私鑰)綁定的新技術(shù)。
基于CPK算法的認(rèn)證系統(tǒng)是一種超大規(guī)模的基于標(biāo)識的密鑰管理系統(tǒng),可用于專用認(rèn)證和公眾認(rèn)證網(wǎng)絡(luò)上,有效地為包括(但不限于)電子郵件、電子票據(jù)、電子物流標(biāo)識、電子辦公等在內(nèi)的可信應(yīng)用提供可信性證明。
根據(jù)本發(fā)明,CPK可信認(rèn)證系統(tǒng)是以芯片實(shí)現(xiàn)的認(rèn)證系統(tǒng),芯片中包括專用COS、CPK算法、ID證書、簽名協(xié)議和密鑰交換協(xié)議、加密算法和HASH函數(shù)等,芯片根據(jù)封裝和接口的不同,分為智能卡、USB Key、Flash存儲(chǔ)卡、手機(jī)SIM卡等不同形態(tài)。根據(jù)需要將公鑰矩陣寫入芯片中,可就地計(jì)算對方公鑰,由一個(gè)芯片承擔(dān)密碼機(jī)功能、簽名驗(yàn)證功能、數(shù)據(jù)庫密鑰存儲(chǔ)功能,而且在不同標(biāo)識域、安全域具有一卡通的功能,可簡便地構(gòu)建可信認(rèn)證系統(tǒng)。
在CPK可信認(rèn)證系統(tǒng)中,絕大部分功能均在芯片內(nèi)完成,以保證認(rèn)證過程的安全性,同時(shí)實(shí)現(xiàn)認(rèn)證系統(tǒng)的芯片化,達(dá)到提供最簡捷的認(rèn)證服務(wù)的目的。芯片包括支持CPK可信認(rèn)證系統(tǒng)的專用COS;支持CPK運(yùn)算的相關(guān)算法;ID證書,包括多標(biāo)識域、多作用域、授權(quán)等級、角色劃分的參數(shù)和密鑰;CPK數(shù)字簽名協(xié)議、CPK密鑰交換協(xié)議;分級加密協(xié)議、口令更改協(xié)議、運(yùn)行格式協(xié)議;私鑰保護(hù)技術(shù)措施等。
專有硬件設(shè)備根據(jù)封裝和接口的不同,可能具有智能卡、USB Key、Flash存儲(chǔ)卡、手機(jī)SIM卡等不同形態(tài)。
圖1示出了根據(jù)本發(fā)明的CPK系統(tǒng)基本結(jié)構(gòu)。如圖1所示,本系統(tǒng)在物理組成上至少包括一個(gè)設(shè)備作為CPK專有硬件設(shè)備,根據(jù)具體實(shí)現(xiàn)和環(huán)境的不同,可能由包括計(jì)算機(jī)、網(wǎng)絡(luò)在內(nèi)的多種硬件設(shè)備及相關(guān)軟件構(gòu)成。
本系統(tǒng)在邏輯上有兩個(gè)主要組成部分,CPK核心系統(tǒng)與CPK代理(Agent)。CPK核心系統(tǒng)作為一個(gè)獨(dú)立的邏輯部件實(shí)現(xiàn)CPK算法,通過硬件接口或軟件接口提供認(rèn)證和加密的功能。CPK Agent通常嵌入在應(yīng)用系統(tǒng)或應(yīng)用環(huán)境之中,為其提供CPK認(rèn)證和加密服務(wù)。服務(wù)的接口可以有多種形式,如API、中間件、系統(tǒng)服務(wù)、網(wǎng)絡(luò)服務(wù)等等,但不限于此。CPK Agent本身并不實(shí)現(xiàn)CPK基礎(chǔ)功能,而是通過和CPK核心系統(tǒng)的特定通信協(xié)議,調(diào)用其功能,并向應(yīng)用環(huán)境提供這些服務(wù)。CPK Agent也會(huì)對核心系統(tǒng)的功能進(jìn)行一定程度的封裝或增強(qiáng),從而滿足應(yīng)用系統(tǒng)的需求。
圖2示出了根據(jù)本發(fā)明的CPK系統(tǒng)的詳細(xì)結(jié)構(gòu)。如圖2所示,CPKBuilt-in專有硬件體系結(jié)構(gòu)由軟件和硬件相結(jié)合構(gòu)成,軟件系統(tǒng)分別運(yùn)行于專有硬件設(shè)備和通用網(wǎng)絡(luò)和計(jì)算機(jī)平臺之上。該CPK Built-in芯片中包括硬件系統(tǒng)、軟件系統(tǒng)(即CPKCOS)和內(nèi)部的相關(guān)數(shù)據(jù)。其中硬件系統(tǒng)由多個(gè)不同功能的IP核構(gòu)成,提供基礎(chǔ)的處理器、存儲(chǔ)器、密碼學(xué)引擎、隨機(jī)數(shù)發(fā)生器等模塊。軟件系統(tǒng)存儲(chǔ)于芯片內(nèi)部的Flash存儲(chǔ)器或直接燒錄于ROM存儲(chǔ)器中。軟件系統(tǒng)調(diào)用、包裝相應(yīng)的硬件模塊提供的基本功能,實(shí)現(xiàn)CPK各種算法和協(xié)議。軟件系統(tǒng)中的部分模塊還讀寫和CPK算法相關(guān)的一些數(shù)據(jù)存儲(chǔ),包括公鑰因子矩陣和標(biāo)識-私鑰列表等等。
本系統(tǒng)的專有硬件設(shè)備根據(jù)具體形態(tài)的不同,具有全部或者部分的如下系統(tǒng)部件1)處理器,用于處理各種數(shù)據(jù),從而對整個(gè)系統(tǒng)進(jìn)行控制和管理。
2)安全存儲(chǔ)器。只有處理器的特定指令、或?qū)iT的外部設(shè)備才可以訪問其中的數(shù)據(jù),攻擊者不能繞過這些接口訪問存儲(chǔ)器中的數(shù)據(jù),也不能通過剖片攻擊等邏輯或者物理上的方式訪問其中數(shù)據(jù)。
3)普通存儲(chǔ)器,用于存儲(chǔ)其他數(shù)據(jù)。
4)公鑰密碼學(xué)引擎。提供用于公鑰運(yùn)算的指令,支持橢圓曲線密碼學(xué)運(yùn)算。
5)對稱密碼學(xué)引擎。提供用于對稱加密、散列算法等運(yùn)算指令。
6)真隨機(jī)數(shù)發(fā)生器,用于生成真隨機(jī)數(shù)。
7)系統(tǒng)保護(hù)設(shè)備,包括對芯片的安全封裝、防剖片分析等攻擊的防護(hù)器件。
8)通信接口,包括USB控制器,串行接口或智能卡接口,用于與外部設(shè)備進(jìn)行通信。
本系統(tǒng)的軟件包括以下組成部分1)標(biāo)識-私鑰管理模塊。該模塊用于存儲(chǔ)、管理、處理、保護(hù)私鑰和標(biāo)識數(shù)據(jù)。所有對私鑰的操作都由該模塊完成,該模塊調(diào)用橢圓曲線密碼學(xué)模塊進(jìn)行橢圓曲線簽名和橢圓曲線公鑰加密的解密運(yùn)算。
2)公鑰因子矩陣管理模塊。該模塊通過映射算法將標(biāo)識映射為公鑰因子矩陣的索引,并通過CPK算法和公鑰因子矩陣計(jì)算出對應(yīng)的公鑰。
3)訪問控制模塊。通過口令和密碼學(xué)功能保護(hù)系統(tǒng),確保只有擁有口令的用戶才能訪問系統(tǒng)。
4)橢圓曲線密碼學(xué)模塊??梢赃M(jìn)行橢圓曲線簽名、驗(yàn)證、公鑰加密、解密等功能。
5)對稱密碼學(xué)模塊,提供對稱加密、散列算法、MAC算法等。
6)HASH算法模塊,根據(jù)HASH函數(shù)對數(shù)據(jù)進(jìn)行運(yùn)算。
7)真隨機(jī)數(shù)發(fā)生器,生成真隨機(jī)數(shù)。
8)CPK數(shù)據(jù)格式編解碼模塊,以CPK格式對數(shù)據(jù)進(jìn)行編碼和解碼。
9)通信協(xié)議模塊。實(shí)現(xiàn)和CPK代理之間的通信協(xié)議,以請求-應(yīng)答命令的方式向CPK代理提供服務(wù)。
根據(jù)本發(fā)明,本系統(tǒng)中的數(shù)據(jù)包括公鑰因子矩陣,當(dāng)前用戶的標(biāo)識和相應(yīng)的私鑰,這些數(shù)據(jù)以ID證書的形式存儲(chǔ)。
如果硬件設(shè)備提供了相應(yīng)的實(shí)現(xiàn),則橢圓曲線密碼模塊、對稱密碼學(xué)模塊和真隨機(jī)數(shù)發(fā)生器直接調(diào)用硬件功能,否則通過軟件來實(shí)現(xiàn)。
下面對CPKCOS進(jìn)行詳細(xì)的解釋。
①CPKCOS提供基于標(biāo)識的、無需第三方、非在線的認(rèn)證方式。CPKCOS在芯片上實(shí)現(xiàn)CPK算法,可以為每個(gè)實(shí)體提供一個(gè)或多個(gè)全局唯一的標(biāo)識,各個(gè)實(shí)體之間可以通過該標(biāo)識相互認(rèn)證。CPKCOS可以在一個(gè)芯片內(nèi)部支持多個(gè)標(biāo)識(數(shù)量由安全存儲(chǔ)區(qū)的空間而定),并通過可變的映射算法,使一個(gè)芯片可以支持多種應(yīng)用,并可以靈活地撤銷、更新標(biāo)識。
②CPKCOS支持多層次認(rèn)證系統(tǒng)的構(gòu)建。CPKCOS為每一個(gè)CPK公鑰因子矩陣生成全局唯一的安全域標(biāo)識,用以標(biāo)志一個(gè)安全域。不同層次、不同區(qū)域的認(rèn)證系統(tǒng)通過擁有不同的公鑰因子矩陣劃分為不同的安全域,而安全域之間可以通過唯一的安全域標(biāo)識互相識別并獲取對方的公鑰因子矩陣,從而將不同的安全域在邏輯上連通構(gòu)成一個(gè)統(tǒng)一的認(rèn)證網(wǎng)絡(luò)。
③CPKCOS通過為每個(gè)標(biāo)識設(shè)置一個(gè)密級表示字,只有符合密級限制的操作才會(huì)被CPKCOS執(zhí)行,從而支持軍隊(duì)等系統(tǒng)中的多密級安全需求。
④CPKCOS提供ECDSA數(shù)字簽名、ECDH密鑰交換、ECIES公鑰加密、AES和TripleDES對稱加密算法,SHA系列散列算法,可以進(jìn)行認(rèn)證、加密等多種安全應(yīng)用,也可以作為輔助的安全算法模塊。
⑤CPKCOS支持系統(tǒng)的軟件升級,增添其他密碼學(xué)算法、增添擴(kuò)展功能。
為了確保系統(tǒng)的安全性,軟件系統(tǒng)進(jìn)行了特設(shè)設(shè)計(jì)以配合專有硬件實(shí)現(xiàn)安全保護(hù)。以下通過CPKCOS代表該軟件系統(tǒng)。CPKCOS在邏輯上通過多種方式保證了系統(tǒng)和私鑰等秘密數(shù)據(jù)的安全性。
①CPKCOS將存儲(chǔ)器分為安全存儲(chǔ)區(qū)和非安全存儲(chǔ)區(qū),安全存儲(chǔ)區(qū)由安全增強(qiáng)的EEPROM存儲(chǔ)器構(gòu)成,非安全存儲(chǔ)區(qū)由普通Flash存儲(chǔ)器構(gòu)成。CPKCOS將系統(tǒng)程序、私鑰等機(jī)密數(shù)據(jù)、操作機(jī)密數(shù)據(jù)的程序段等重要程序和數(shù)據(jù)存儲(chǔ)在安全存儲(chǔ)區(qū)中,公鑰因子矩陣等可以公開的數(shù)據(jù)存儲(chǔ)在非安全存儲(chǔ)區(qū)。CPKCOS系統(tǒng)程序段通過驗(yàn)證非安全存儲(chǔ)區(qū)中數(shù)據(jù)或程序的簽名、完整性碼來確保這些數(shù)據(jù)沒有被篡改,通過加密來保證該存儲(chǔ)區(qū)中的數(shù)據(jù)的機(jī)密性。非安全存儲(chǔ)區(qū)的設(shè)計(jì)使得CPKCOS可以支持芯片外部的Flash存儲(chǔ)器,保證其安全性。
②CPKCOS系統(tǒng)不對外提供私鑰等秘密數(shù)據(jù)的讀取接口,只能通過這些接口進(jìn)行正常的簽名、解密功能,而無法獲取秘密數(shù)據(jù),即使合法用戶也不能讀出其中的私鑰數(shù)據(jù)。
③CPKCOS通過口令保護(hù)芯片及內(nèi)部敏感數(shù)據(jù)。用戶只有在輸入驗(yàn)證口令后才能使用CPK安全芯片。CPKCOS系統(tǒng)通過在口令驗(yàn)證過程中增加延時(shí)大大增加攻擊者嘗試口令所消耗的時(shí)間,同時(shí)在芯片內(nèi)部保持驗(yàn)證失敗計(jì)數(shù)器,如果口令驗(yàn)證的失敗次數(shù)超過最高限額,芯片內(nèi)敏感信息將會(huì)自毀。
④CPKCOS保護(hù)私鑰因子矩陣不被破解。CPK算法有無法抵御共謀攻擊的弱點(diǎn),如果攻擊者可以收集大量的私鑰,那么可以通過計(jì)算求解還原整個(gè)私鑰因子矩陣。CPK安全芯片一方面通過硬件保護(hù)和CPKCOS的對外接口保證即使合法用戶也不能讀出私鑰數(shù)據(jù),同時(shí)將私鑰等敏感數(shù)據(jù)以口令和只在芯片內(nèi)部產(chǎn)生并存儲(chǔ)的真隨機(jī)數(shù)加密,即使攻擊者通過剖片分析等破解芯片硬件,從中讀出數(shù)據(jù),如果沒有口令也不能獲得私鑰。CPKCOS還支持將公鑰因子矩陣存儲(chǔ)在外部存儲(chǔ)器中,從而增加矩陣規(guī)模,可以將共謀攻擊所需破解芯片的數(shù)量提高1到3個(gè)數(shù)量級(128MB的外部存儲(chǔ)空間)。
以下將參照圖3-圖6,對本發(fā)明的具體實(shí)施方案進(jìn)行詳細(xì)描述。然而,需要注意的是,本發(fā)明可以體現(xiàn)為不同的形式,并且不應(yīng)當(dāng)被理解為限于在此闡釋的實(shí)施例。相反,提供這些實(shí)施例是為了本公開內(nèi)容的完全和徹底,并且能夠完全地向本領(lǐng)域技術(shù)人員表達(dá)本發(fā)明的范圍。
如圖3-圖6所示,本系統(tǒng)包括四種基本的CPK運(yùn)算功能基于CPK算法的簽名、驗(yàn)證、公鑰加密和解密。這里分別用附圖3、附圖4、附圖5、附圖6等四幅圖示來說明這四種運(yùn)算的基本流程,其中框體代表系統(tǒng)模塊,線段代表數(shù)據(jù),箭頭代表數(shù)據(jù)的流動(dòng)方向,運(yùn)行先后順序在圖中表示為自上而下。
圖3示出了CPK數(shù)字簽名的流程圖。如圖3所示,基于CPK Built-in的數(shù)字簽名過程如下1)用戶在CPK Built-in中的標(biāo)識列表中選擇一個(gè)標(biāo)識用于數(shù)字簽名。
2)用戶將待簽名數(shù)據(jù)輸入CPK Built-in芯片。
3)CPK Built-in芯片中的Hash算法模塊計(jì)算出待簽名數(shù)據(jù)的散列值。
4)CPK Built-in芯片中的隨機(jī)數(shù)發(fā)生器生成用于簽名的隨機(jī)數(shù)。
5)CPK Built-in芯片中的私鑰管理模塊通過用戶的標(biāo)識讀取對應(yīng)的私鑰。
6)橢圓曲線密碼學(xué)模塊通過散列值、隨機(jī)數(shù)和私鑰生成ECDSA數(shù)字簽名。
7)數(shù)據(jù)編碼模塊將ECDSA數(shù)字簽名值和用于簽名的標(biāo)識統(tǒng)一編碼為CPK格式的數(shù)字簽名數(shù)據(jù)包,并傳出CPK Built-in芯片,返回給用戶。
圖4示出了CPK數(shù)字簽名的簽名驗(yàn)證流程圖。如圖4所示,基于CPKBuilt-in數(shù)字簽名的簽名驗(yàn)證過程如下1)CPK Built-in芯片從外部讀入CPK數(shù)字簽名和被簽名的原數(shù)據(jù)。
2)Hash算法模塊計(jì)算出被簽名數(shù)據(jù)的散列值。
3)CPK數(shù)據(jù)格式編解碼模塊從CPK數(shù)字簽名中取得簽名者標(biāo)識和ECDSA數(shù)字簽名數(shù)據(jù)。
4)標(biāo)識-公鑰影射算法模塊將簽名者標(biāo)識映射為簽名者用于簽名的公鑰。
5)橢圓曲線密碼學(xué)模塊通過散列值、ECDSA數(shù)字簽名和簽名者公鑰驗(yàn)證簽名是否有效,并將結(jié)果返回給用戶。
圖5示出了CPK公鑰加密算法的加密流程圖。通過CPK公鑰加密算法,一個(gè)用戶可以向任意其他用戶發(fā)送經(jīng)過公鑰加密的數(shù)據(jù),數(shù)據(jù)以CPK公鑰加密算法加密,密鑰為接受者的標(biāo)識,接受者通過自己的私鑰可以對該數(shù)據(jù)進(jìn)行解密。如圖5所示,其詳細(xì)過程如下1)CPK Built-in芯片從外部讀入接受者的標(biāo)識和帶加密的數(shù)據(jù)明文。
2)標(biāo)識-公鑰映射算法模塊通過標(biāo)識和公鑰因子矩陣計(jì)算出接收者的公鑰。
3)隨機(jī)數(shù)發(fā)生器生成作為加密數(shù)據(jù)的對稱密鑰和用于公鑰加密運(yùn)算的隨機(jī)數(shù)。
4)橢圓曲線密碼學(xué)模塊將明文以對稱密鑰算法加密,并通過接收方的公鑰對對稱密鑰進(jìn)行橢圓曲線公鑰加密,生成ECIES加密密文。
5)CPK數(shù)據(jù)格式編碼解碼模塊將密文和接收方標(biāo)識編碼為CPK密文數(shù)據(jù)包,并返回給用戶。
圖6示出了CPK公鑰加密算法的解密流程圖。如圖6所示,其詳細(xì)過程如下1)CPK Built-in芯片從外部讀入CPK加密密文數(shù)據(jù)包。
2)CPK數(shù)據(jù)格式編碼解碼模塊對該數(shù)據(jù)包進(jìn)行解碼,讀出標(biāo)識和ECIES加密數(shù)據(jù)。
3)私鑰管理模塊通過內(nèi)部的標(biāo)識-私鑰列表獲得對應(yīng)的私鑰。
4)橢圓曲線密碼學(xué)模塊通過私鑰對ECIES加密數(shù)據(jù)進(jìn)行解密,解密過程首先用橢圓曲線公鑰加解密算法和私鑰解出加密數(shù)據(jù)的對稱密鑰,然后用該對稱密鑰將密文解為明文,并將明文返回給用戶。
根據(jù)安全性、性能和應(yīng)用環(huán)境的不同,專有硬件設(shè)備可以采用多種不同的形態(tài)。由于不同專有硬件設(shè)備的存儲(chǔ)和處理能力的差別,以及具體應(yīng)用環(huán)境的差別,系統(tǒng)的不同功能模塊會(huì)在CPK核心系統(tǒng)和CPK代理之間均衡分布。專有硬件設(shè)備功能越強(qiáng),則系統(tǒng)的功能模塊越多地實(shí)現(xiàn)在專有硬件設(shè)備之上;反之,如果專有設(shè)備的硬件設(shè)備功能越強(qiáng),則系統(tǒng)的功能模塊越多地實(shí)現(xiàn)于應(yīng)用環(huán)境中的CPK代理之上。
三種具有代表性的專有硬件設(shè)備分別是智能卡芯片、安全計(jì)算機(jī)、不具有處理能力的存儲(chǔ)卡,這里針對這三種代表性的硬件分別提出具體的實(shí)施方案。
1、基于智能卡芯片目前主流的智能卡芯片的性能和存儲(chǔ)能力可以支持CPK核心系統(tǒng)的全部功能,因此可以將全部的程序和數(shù)據(jù)建立在該硬件平臺上,通常實(shí)現(xiàn)在CPK代理中的擴(kuò)展功能,如對數(shù)據(jù)的對稱加密功能,也可以實(shí)現(xiàn)在智能卡芯片上,從而構(gòu)成一個(gè)軟硬結(jié)合的獨(dú)立產(chǎn)品。CPK代理只需要直接調(diào)用智能卡芯片的功能,并將和硬件的通信協(xié)議包裝為面向宿主環(huán)境的軟件接口,如API或系統(tǒng)服務(wù)即可。
智能卡芯片的處理能力較弱,不能支持密集的服務(wù)請求。由于智能卡的片上存儲(chǔ)空間較小,通過外接存儲(chǔ)器芯片擴(kuò)展其存儲(chǔ)空間,從而支持更大的公鑰因子矩陣。
2、基于安全計(jì)算機(jī)安全計(jì)算機(jī)通常通過專門的硬件設(shè)計(jì)、附加的安全芯片等手段保護(hù)。安全計(jì)算機(jī)具有比智能卡芯片更強(qiáng)的處理能力和更大的存儲(chǔ)空間,可以支持CPK核心系統(tǒng)的全部功能。CPK核心系統(tǒng)和CPK代理可以共存于安全計(jì)算機(jī)硬件平臺之上,該平臺還可以支持應(yīng)用系統(tǒng)的功能?;诎踩?jì)算機(jī)的CPK可信認(rèn)證系統(tǒng)和應(yīng)用系統(tǒng)結(jié)合可以形成獨(dú)立的產(chǎn)品形態(tài),如基于CPK的VPN、可信路由器等產(chǎn)品。
3、基于存儲(chǔ)卡存儲(chǔ)卡本身不具有獨(dú)立的處理器,只是具有一定的存儲(chǔ)空間。存儲(chǔ)卡價(jià)格便宜,適合于銀行卡能大規(guī)模應(yīng)用,但是本身不具備處理器,因此需要以密碼學(xué)的方式保護(hù)存儲(chǔ)器中的機(jī)密數(shù)據(jù),并且必須配合專門的安全讀取設(shè)備用于讀取其中的私鑰。
本發(fā)明的實(shí)施能夠帶來以下益處和優(yōu)點(diǎn)。
(1)以往的認(rèn)證都采用從前提假設(shè)出發(fā),經(jīng)過形式化推理證明的“相信邏輯”,證明對象只限于客體而本系統(tǒng)則采用不設(shè)前提假設(shè),以“條件的滿足性直接證明的“可信邏輯”,證明提高到?jīng)]有前提假設(shè)的“可信邏輯”,證明對象包括主體(身份)、客體、內(nèi)容、行為。
(2)以往的認(rèn)證系統(tǒng)只解決規(guī)模不大的專用網(wǎng)的認(rèn)證(幾千或幾萬的規(guī)模),而本系統(tǒng)則適應(yīng)超大規(guī)模的專用網(wǎng)的認(rèn)證和諸如電子郵件、個(gè)人電話、個(gè)人賬號等公眾網(wǎng)的認(rèn)證。其規(guī)模是以數(shù)萬億計(jì)的。
(3)以往的認(rèn)證系統(tǒng)以CA機(jī)構(gòu)和數(shù)據(jù)庫作為認(rèn)證的必備手段的,其費(fèi)用昂貴,系統(tǒng)維護(hù)復(fù)雜;而本系統(tǒng)以一個(gè)芯片實(shí)現(xiàn)認(rèn)證系統(tǒng),取消了CA機(jī)構(gòu)和數(shù)據(jù)庫,大大簡化了認(rèn)證過程,提高了認(rèn)證效率,大大降低了成本,節(jié)省了運(yùn)行費(fèi)和維護(hù)費(fèi)。
盡管通過參照本發(fā)明的某些優(yōu)選實(shí)施例,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以在形式上和細(xì)節(jié)上對其作出各種各樣的改變,而不偏離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.組合公鑰(CPK)可信認(rèn)證系統(tǒng)是以芯片實(shí)現(xiàn)加密與脫密功能、數(shù)字簽名與驗(yàn)證功能、密鑰的存儲(chǔ)與管理功能、在不同標(biāo)識域和安全域具有一卡通的功能的認(rèn)證系統(tǒng),其中專用軟件系統(tǒng)(COS)、CPK算法、ID證書、簽名協(xié)議和密鑰交換協(xié)議、加密算法和HASH函數(shù)等,均以模塊化設(shè)計(jì)方式實(shí)現(xiàn),其特征在于該系統(tǒng)包括處理器,用于處理各種數(shù)據(jù),從而對整個(gè)系統(tǒng)進(jìn)行控制和管理;安全存儲(chǔ)器,只有處理器的特定指令、或?qū)iT的外部設(shè)備才可以訪問其中的數(shù)據(jù),攻擊者不能繞過這些接口訪問存儲(chǔ)器中的數(shù)據(jù),也不能通過剖片攻擊等邏輯或者物理上的方式訪問其中數(shù)據(jù);普通存儲(chǔ)器,用于存儲(chǔ)其他數(shù)據(jù);公鑰密碼學(xué)引擎,提供用于公鑰運(yùn)算的指令,支持橢圓曲線密碼學(xué)運(yùn)算;對稱密碼學(xué)引擎,提供用于對稱加密、散列算法等運(yùn)算指令;真隨機(jī)數(shù)發(fā)生器,用于生成真隨機(jī)數(shù);系統(tǒng)保護(hù)設(shè)備,包括對芯片的安全封裝、防剖片分析等攻擊的防護(hù)器件;通信接口,包括USB控制器,串行接口或智能卡接口,用于與外部設(shè)備進(jìn)行通信;此外,該系統(tǒng)還包括標(biāo)識-私鑰管理模塊,用于存儲(chǔ)、管理、處理、保護(hù)私鑰和標(biāo)識數(shù)據(jù),所有對私鑰的操作都由該模塊完成,該模塊調(diào)用橢圓曲線密碼學(xué)模塊進(jìn)行橢圓曲線簽名和橢圓曲線公鑰加密的解密運(yùn)算;公鑰因子矩陣管理模塊,通過映射算法將標(biāo)識映射為公鑰因子矩陣的索引,并通過CPK算法和公鑰因子矩陣計(jì)算出對應(yīng)的公鑰;訪問控制模塊,通過口令和密碼學(xué)功能保護(hù)系統(tǒng),確保只有擁有口令的用戶才能訪問系統(tǒng);橢圓曲線密碼學(xué)模塊,可以進(jìn)行橢圓曲線簽名、驗(yàn)證、公鑰加密、解密等功能;對稱密碼學(xué)模塊,提供對稱加密、散列算法、MAC算法等;HASH算法模塊,根據(jù)HASH函數(shù)對數(shù)據(jù)進(jìn)行運(yùn)算;真隨機(jī)數(shù)發(fā)生模塊,生成真隨機(jī)數(shù);CPK數(shù)據(jù)格式編解碼模塊,以CPK格式對數(shù)據(jù)進(jìn)行編碼和解碼;通信協(xié)議模塊,實(shí)現(xiàn)和CPK代理之間的通信協(xié)議,以請求-應(yīng)答命令的方式向CPK代理提供服務(wù)。
2.根據(jù)權(quán)利要求1的CPK可信認(rèn)證系統(tǒng),如果該系統(tǒng)不包括公鑰密碼學(xué)引擎,對稱密碼學(xué)引擎和真隨機(jī)數(shù)發(fā)生器,則該系統(tǒng)調(diào)用相應(yīng)的橢圓曲線密碼模塊、對稱密碼學(xué)模塊和真隨機(jī)數(shù)發(fā)生模塊完成其功能。
3.根據(jù)權(quán)利要求1的CPK可信認(rèn)證系統(tǒng),其中所述數(shù)據(jù)包括公鑰因子矩陣,當(dāng)前用戶的標(biāo)識和相應(yīng)的私鑰,這些數(shù)據(jù)以ID證書的形式存儲(chǔ)。
4.根據(jù)權(quán)利要求1的CPK可信認(rèn)證系統(tǒng),其中所述主要功能包括ID屬性管理、加密功能、簽名功能、協(xié)議執(zhí)行功能、密鑰存儲(chǔ)與管理功能等,且能夠即插即用。
5.根據(jù)權(quán)利要求1的CPK可信認(rèn)證系統(tǒng),其中所述系統(tǒng)包括集成有處理器和存儲(chǔ)器的智能卡芯片、獨(dú)立存儲(chǔ)器設(shè)備和安全計(jì)算機(jī)至少其中之一。
6.根據(jù)權(quán)利要求1的CPK可信認(rèn)證系統(tǒng),其中所述芯片根據(jù)封裝和接口的不同,可以為智能卡、USB Key、Flash存儲(chǔ)卡、手機(jī)SIM卡至少其中之一。
全文摘要
本發(fā)明公開了一種以芯片實(shí)現(xiàn)的CPK可信認(rèn)證系統(tǒng),芯片中包括專用COS、CPK算法、ID證書、簽名協(xié)議和密鑰交換協(xié)議、加密算法和HASH函數(shù)等,芯片根據(jù)封裝和接口的不同,分為智能卡、USB Key、Flash存儲(chǔ)卡、手機(jī)SIM卡等不同形態(tài)。由一個(gè)芯片承擔(dān)密碼機(jī)功能、簽名驗(yàn)證功能、密鑰存儲(chǔ)與管理功能,而且在不同標(biāo)識域、安全域具有一卡通的功能,做到即插即用,可簡便地構(gòu)建可信認(rèn)證系統(tǒng)。
文檔編號H04L29/06GK1832403SQ200610076019
公開日2006年9月13日 申請日期2006年4月24日 優(yōu)先權(quán)日2006年4月24日
發(fā)明者南相浩, 關(guān)志 申請人:北京易恒信認(rèn)證科技有限公司