三種公鑰密碼體系(傳統(tǒng)公開密鑰體系 / 基于身份的公開密鑰體系 / 基于無證書的公開密鑰體系 )
基于證書的公開密鑰體系第一種方案是采用證書機(jī)制實現(xiàn)用戶的身份和用戶的鑰匙之間的安全對應(yīng)。證書機(jī)制一般都采用公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure: PKI)技術(shù)。它綜合使用了數(shù)字摘要技術(shù)、數(shù)字簽名等密碼技術(shù)以及一套完整的證書管理機(jī)制來提供安全服務(wù)。系統(tǒng)建設(shè)有公信力的認(rèn)證中心(Certification Authority:CA)鑒定用戶身份,然后為用戶簽發(fā)數(shù)字證書。數(shù)字證書安全地將用戶身份和用戶密鑰綁定在一起。用戶在業(yè)務(wù)系統(tǒng)中先交換證書,然后使用公私鑰完成用戶的身份認(rèn)證、訪問控制、信息安全傳遞等操作。但加密操作過程中數(shù)據(jù)發(fā)送方需要預(yù)先獲得接收方證書,進(jìn)而獲取加密公鑰,相關(guān)過程較為復(fù)雜。因此,目前證書系統(tǒng)廣泛用于提供數(shù)字簽名服務(wù),實現(xiàn)身份認(rèn)證、數(shù)據(jù)一致性保護(hù)等。為了進(jìn)一步降低證書管理的復(fù)雜性,目前還有一些輕量級的證書管理協(xié)議,如簡單證書注冊協(xié)議SCEP等來降低證書注冊等流程的復(fù)雜性。
基于身份的公開密鑰體系第二種方案是基于標(biāo)識的密碼技術(shù) (Identity-Based Cryptography:IBC)。為了降低公鑰系統(tǒng)中密鑰管理和使用的復(fù)雜性,Shamir在1984年提出了基于標(biāo)識的密碼機(jī)制。在這種系統(tǒng)中,用戶的標(biāo)識就可以用做用戶的公鑰(更加準(zhǔn)確地說是用戶的公鑰可以從用戶的標(biāo)識和標(biāo)識密碼算法規(guī)定的一個方法計算得出)。在這種情況下,用戶不需要申請和交換證書,而是直接使用標(biāo)識(身份信息)進(jìn)行密碼運(yùn)算,從而解決公鑰真實性問題,極大地簡化了密鑰系統(tǒng)管理的復(fù)雜性。這類系統(tǒng)中用戶的私鑰由系統(tǒng)中的一受信任的第三方(密鑰生成中心:KGC)使用標(biāo)識私鑰生成算法計算生成。這樣的系統(tǒng)具有天然的密碼委托功能,特別適合于對數(shù)據(jù)恢復(fù)有需求的應(yīng)用環(huán)境。另外這類基于標(biāo)識的密碼系統(tǒng)相較于傳統(tǒng)PKI具有巨大的靈活性、擴(kuò)展性、簡潔性。因為系統(tǒng)加密過程直接使用應(yīng)用涉及的標(biāo)識作為公鑰,無需分發(fā)、查詢證書、無需申請策略證書等,充分體現(xiàn)了加密操作的便捷性。應(yīng)用系統(tǒng)涉及的標(biāo)識只要具有唯一性特征就可以直接作為公鑰進(jìn)行密碼應(yīng)用。這些標(biāo)識可以具有任意的格式、屬性,可以是常用的用戶標(biāo)識如郵件地址、手機(jī)號碼、身份證號碼;在物聯(lián)網(wǎng)中可以是設(shè)備標(biāo)識、Handle碼、OID等;還可以是數(shù)據(jù)安全控制策略的形式化編碼、生物特征信息、甚至是標(biāo)識屬性集等,特別適合基于標(biāo)識、基于屬性的權(quán)限訪問控制和數(shù)據(jù)安全保護(hù)。在密碼運(yùn)算中直接使用這類標(biāo)識作為公鑰運(yùn)算,無需進(jìn)行證書申請、無需額外的實體標(biāo)識與公鑰間的映射管理,充分體現(xiàn)了標(biāo)識密鑰的靈活性。
基于身份的公開密鑰密碼體系存在密鑰托管問題
密鑰托管: 是一種將加密數(shù)據(jù)解密所需的密鑰保存在托管中的安排,以便在某些情況下,授權(quán)的第三方可以訪問這些密鑰。這些第三方可以包括企業(yè),誰可能需要訪問員工的安全與業(yè)務(wù)相關(guān)的通信,還是政府,誰可能希望能夠查看加密通信的內(nèi)容(也被稱為特殊的訪問)
基于無證書的公開密鑰體系第三種方案是無證書的密碼體制(Certificateless Public Key Cryptography, CL-PKC)。該體制的代表有1991年Girault 提出的“隱式證書”密碼系統(tǒng)(Implicit Certificate)和Al-Riyami和Paterson在2001年提出的無證書公鑰密碼體制(AP-CL-PKC)。這種密碼體制介于傳統(tǒng)PKI和標(biāo)識密碼技術(shù)之間。這種機(jī)制中用戶私鑰由兩個秘密因素決定:一個是從密鑰生成中心中提取的與用戶身份相關(guān)的密鑰,另一個是由用戶自己生成的密鑰。從一個秘密元素不能計算另一個,即密鑰生成中心不能算出用戶的部分密鑰,用戶也算不出密鑰生成中心生成的部分密鑰。 因此,無證書密碼系統(tǒng)沒有密鑰托管(key escrow)的功能。無證書密碼系統(tǒng)保證即使是攻擊人成功地用自己的公鑰代替了受害者的公鑰,攻擊人仍然無法偽造一個受害者的簽名,或者解密一段加密給受害者的密文信息。這一點無疑會減少惡意攻擊者的興趣。這種密碼機(jī)制在加密過程中仍然提前需要獲取接收方公鑰(實際為公鑰還原數(shù)據(jù)),然后使用接收方標(biāo)識和系統(tǒng)參數(shù)計算接收方完整公鑰。因此這類密碼系統(tǒng)在加密應(yīng)用中面臨傳統(tǒng)PKI類似的挑戰(zhàn),即需要預(yù)先獲得接收方的公鑰還原數(shù)據(jù)。對于簽名過程,簽名方可以將其公鑰還原數(shù)據(jù)作為簽名的一部分一起傳遞,驗簽方從簽名結(jié)果中提取簽名人的公鑰還原數(shù)據(jù),然后使用簽名方標(biāo)識和系統(tǒng)參數(shù)計算簽名方的完整公鑰,驗證簽名的正確性。因此這類系統(tǒng)在簽名應(yīng)用中具有無證書管理、系統(tǒng)輕量、通信開銷低、具有強(qiáng)不可抵賴性等眾多優(yōu)點,非常適合物聯(lián)網(wǎng)等領(lǐng)域的身份認(rèn)證應(yīng)用.