??? 摘? 要: 隨著對信息安全的要求不斷提高,傳統(tǒng)的等效于軟件加密的密鑰管理手段已不能滿足信息系統(tǒng)的安全要求,因此設(shè)計了一種新型的密鑰管理系統(tǒng)" title="管理系統(tǒng)">管理系統(tǒng)。該系統(tǒng)采用安全性高的CPU智能卡,用硬件方式來產(chǎn)生、存儲和傳遞密鑰,極大地提高了密鑰管理系統(tǒng)的安全性。?
??? 關(guān)鍵詞: 安全? 智能卡? 密鑰?
?
??? 在傳統(tǒng)的密鑰管理系統(tǒng)中,密鑰通常是存儲在計算機或磁盤里,并借助于網(wǎng)絡(luò)、磁盤以郵件的方式進行傳遞。為了安全起見,通常在傳遞之前,必須先將所要傳遞的密鑰進行加密處理,接收方收到后再對其進行解密處理。由于采用這種方式時仍然需要傳遞密鑰,只是具體的密鑰對象改變了,因此安全性還是沒有明顯地提高;即使采用專門的硬件加密機器進行加密處理,但由于儲存和傳遞環(huán)節(jié)的影響,其安全性能仍等同于軟件加密效果,為此有必要提高儲存和傳遞環(huán)節(jié)的安全性。?
??? 雖然傳遞密鑰比較安全的做法是采用非對稱加密體制,用己方私鑰和對方公鑰" title="公鑰">公鑰進行雙重簽名加密,對方用其私鑰和己方公鑰進行解密處理。采用這種方法來傳遞密鑰比較麻煩,實現(xiàn)起來非常困難,不僅要求通信雙方要有己方的公鑰和私鑰,而且還要獲得對方的公鑰。公鑰和私鑰的產(chǎn)生比較復雜和困難,而且通常還需要作為公證的第三方介入。目前絕大多數(shù)的通信雙方都沒有這些條件,并且它們之間的通信絕大多數(shù)是一次性的。考慮到上述原因,往往不采用非對稱加密體制,而仍然采用實現(xiàn)方法和途徑都相對簡單和容易得多的對稱加密體制。?
??? 采用對稱加密體制時,加密密鑰和解密密鑰是相同的或相關(guān)聯(lián)的,因此對其存儲和傳遞的安全性要求非常高。如前所述,采用傳統(tǒng)方式進行加密處理時,其效果等同于軟件加密效果,在安全性方面不如硬件直接加密的效果;由此可以看出,如果我們既用硬件設(shè)備進行加密處理,又用專門的硬件設(shè)備來存儲和傳遞密鑰,這樣就可以極大地提高密鑰系統(tǒng)的安全性。目前能滿足這兩種要求,而且得到業(yè)界廣泛認可的器件只有CPU智能卡。CPU卡具有硬件加密結(jié)構(gòu),可以作為加密器件使用;而且其特殊的軟件體系-COS(Chip Operation System)又為數(shù)據(jù)存儲和操作提供了較高的安全性,可用于小批量數(shù)據(jù)的存儲。?
??? 本文采用CPU智能卡作為加密和存儲介質(zhì),按照對稱加密體制的思想,設(shè)計和實現(xiàn)了一種新型密鑰系統(tǒng),較好地實現(xiàn)了密鑰的產(chǎn)生、存儲和傳遞功能,滿足了用戶信息系統(tǒng)的安全要求。?
1 CPU卡的安全功能?
??? CPU卡作為智能卡家族中最新的成員,由于具有較高的安全性和應用方便性,得到越來越廣泛的應用。CPU卡的安全性不僅體現(xiàn)在其硬件結(jié)構(gòu)上,而且其軟件系統(tǒng)COS也保證了應用的安全性,同時還提高了應用的方便性和靈活性。?
??? CPU卡的加解密功能由內(nèi)嵌的硬件加密協(xié)處理器來完成,具有很高的安全性。目前,CPU卡一般采用DES加密算法。DES算法是一種迭代分組密碼算法,它加密時把明文以64比特為單位分成塊,然后用密鑰把每一塊的明文轉(zhuǎn)化為64比特密文。使用的密鑰長度為64位,其中有效長度為56位(有8位用于奇偶校驗)。為了進一步提高安全性,CPU卡通常采用三重DES算法加密,采用的密碼長度為128位。?
??? 在應用時,CPU卡的安全性是由其COS的安全體系來保證的,它涉及到卡中信息的訪問控制機制和保密機制。智能卡之所以能夠迅速地發(fā)展并且流行起來,其中的一個重要的原因就在于它能夠通過COS的安全體系給用戶一個較高的安全保證和應用方便性。COS安全體系在概念上包括三部分:安全狀態(tài)、安全屬性和安全機制[1]。智能卡在安全狀態(tài)滿足安全屬性的要求,通過執(zhí)行操作指令,在安全機制的作用下,從當前的安全狀態(tài)轉(zhuǎn)移到下一個安全狀態(tài)。?
2 系統(tǒng)結(jié)構(gòu)" title="系統(tǒng)結(jié)構(gòu)">系統(tǒng)結(jié)構(gòu)和功能?
??? 本密鑰系統(tǒng)的主要功能是提供各種密鑰的生成機制和加密算法,并將生成的密鑰存儲在具有密鑰導出功能的CPU智能卡,即SAM(Security Access Module)卡中。系統(tǒng)結(jié)構(gòu)如圖1所示,密鑰的發(fā)行采用梯級生成、下發(fā)方式,即由上一級生成下一級所需的各種子密鑰,并以卡片的形式,采用線路加密的方式傳遞給下一級,極大地提高了系統(tǒng)的安全性和應用的方便性。根據(jù)功能,系統(tǒng)分為:根密鑰系統(tǒng)、主密鑰" title="主密鑰">主密鑰系統(tǒng)、初始化密鑰系統(tǒng)和SAM卡密鑰系統(tǒng)。系統(tǒng)結(jié)構(gòu)具有一定的伸縮性,可以根據(jù)實際需要進行裁減,減少或增加分級層次,通常不超過三級傳遞關(guān)系(圖中所示即為三級),以免系統(tǒng)過于復雜。在我們投入實際使用的系統(tǒng)中,根據(jù)用戶要求和系統(tǒng)規(guī)模,取消了初始化密鑰系統(tǒng)這一級而只采用了二級傳遞關(guān)系,使系統(tǒng)結(jié)構(gòu)更加緊湊,實現(xiàn)起來更加簡單容易。?
?
?
??? 根密鑰系統(tǒng)的主要功能是生成系統(tǒng)最初的原始母密鑰,即根密鑰,它由系統(tǒng)安全管理員輸入的系統(tǒng)安全字(由安全管理員自主決定)來生成;主密鑰系統(tǒng)則用分散因子對根密鑰進行分散加密,得到主密鑰;而初始化密鑰系統(tǒng)則對主密鑰再進行分散加密,得到工作密鑰系統(tǒng)所使用的工作密鑰;SAM卡密鑰系統(tǒng)則直接由根密鑰導出SAM卡密鑰,將其直接用于工作密鑰系統(tǒng),以控制和配合工作密鑰的使用。?
??? 系統(tǒng)將生成的各種密鑰存儲在相應的CPU智能卡中。根密鑰卡和主密鑰卡采用具有密鑰導出功能的SAM母卡;而SAM卡密鑰則采用不具有導出功能的SAM卡來儲存。SAM卡是一種加強了密鑰安全功能的CPU卡,它支持密鑰多級分散功能,比普通的CPU卡具有更高的安全性。工作密鑰則直接存放于實際工作系統(tǒng)所使用的普通CPU卡中。?
??? 系統(tǒng)在生成相應的密鑰時,同時生成相應的認證密鑰,將其存儲在相應的認證卡中,以控制和配合密鑰卡的使用。如圖2所示,密鑰卡必須通過其認證卡的相互認證(外部認證)后才能正常使用;而密鑰認證卡使用的合法性由個人身份識別號PIN保護,只有正確核對PIN后才可以使用。?
?
?
????而空白卡片的合法性,則是由生產(chǎn)商認證卡來驗證的。生產(chǎn)商認證卡通常是由生產(chǎn)廠商制作的,其中存放著生產(chǎn)商傳輸代碼,它也是由PIN保護的,正確核對PIN后才可以使用。由此可以看出,系統(tǒng)中每一張卡的使用都必須經(jīng)過相應的認證,成功驗證其合法性后,才能投入正常使用,這樣,極大地保證了系統(tǒng)的安全性。?
3 相關(guān)算法?
??? 在本系統(tǒng),加密算法主要采用了非常成熟的、強度比較高的DES算法。為了進一步提高系統(tǒng)安全強度,在實際系統(tǒng)中,采用的是以DES算法為基礎(chǔ)的3DES" title="3DES">3DES算法。有關(guān)算法簡介如下。?
3.1 3DES算法?
??? 3DES算法用兩個密鑰(KL和KR)對明文(X)進行3次DES加密/解密[2]。?
??? 3DES的加密方式:?
??? Y=DES(KL,DES-1(KR,DES(KL,X)))?
??? 對應的解密方式為:?
??? X=DES-1(KL,DES(KR,DES-1(KL,Y)))?
其中DES(K,X)表示用密鑰K對數(shù)據(jù)X進行DES加密,DES-1(K,Y)表示用密鑰K對數(shù)據(jù)Y進行解密(以下同)。?
3.2 分散算法?
??? 為了支持分級加密傳遞功能,CPU卡還采用了密鑰分散算法,它是指將一個雙長度(16字節(jié))的密鑰MK,對分散數(shù)據(jù)進行處理,推導出一個雙長度的密鑰DK(DKL||DKR)。其算法如下[3]:?
??? 推導DK左半部分DKL的方法是:?
??? ·將分散數(shù)據(jù)的最右16個數(shù)字作為輸入數(shù)據(jù);?
??? ·將MK作為加密密鑰;?
??? ·用MK對輸入數(shù)據(jù)進行3DEA運算。?
??? 推導DK右半部分DKR的方法:?
??? ·將分散數(shù)據(jù)的最右16個數(shù)字求反,作為輸入數(shù)據(jù);?
??? ·將MK作為加密密鑰;?
??? ·用MK對輸入數(shù)據(jù)進行3DEA運算。?
3.3 原始密鑰的生成算法?
??? 第一步,輸入種子A和種子B:由兩個獨立的人各輸入一個16位數(shù)(或少于16位),分別作為SeedA和SeedB;?
??? 第二步,計算種子C: SeedC=SeedASeedB;?
??? 第三步,密鑰種子的初始化:?
??? ·KEYINIT=常量?
??? ·Seed=DES-1(DES(DES-1(KEYINIT,SeedC),SeedB),SeedA)?
??? ·設(shè)K3=Seed?
??? 第四步,密鑰種子的生成:?
???
???
??? 重復執(zhí)行從第四步到第六步,直到所有的原始密鑰全部生成。?
??? 本系統(tǒng)采用了成熟、安全性高的加密算法和完善的體系結(jié)構(gòu),其安全性是由CPU的安全性和DES算法的安全強度來保證的。經(jīng)過國內(nèi)某單位兩年多的實際運行,證明本系統(tǒng)較好地貫徹了“秘密在于密鑰”的思想,具有較高的安全性和先進性,主要表現(xiàn)為如下幾個特點:?
??? (1)采用安全性高的CPU卡作為密鑰的產(chǎn)生、存儲和傳遞介質(zhì),保證了密鑰數(shù)據(jù)的安全性;CPU卡獨特的安全體系保證了其中的數(shù)據(jù)不會被非法操作;?
??? (2)利用硬件加密技術(shù),對整個過程中所使用的臨時變量進行加密處理,并對傳遞過程進行線路加密,保證了在生成和傳遞過程的安全性;?
??? (3)分級傳遞結(jié)構(gòu),使系統(tǒng)具有一定的擴展性,既支持獨立系統(tǒng),也可用于分布式系統(tǒng);?
??? (4)系統(tǒng)具有自愈合能力,對關(guān)鍵數(shù)據(jù)進行備份,保證了系統(tǒng)具有一定的抗毀能力;?
??? (5)系統(tǒng)結(jié)構(gòu)簡單、實現(xiàn)方便、性價比較高。?
參考文獻?
1 Information technology-Identification cards-Integrated?circuit(s) cards with contracts-Part 4:terindustry?commands for interchange. International Standard ISO/IEC 7816-4, 1995?
2 王愛英. 智能卡技術(shù). 北京:清華大學出版社,1996?
3 PSAM卡應用規(guī)范(試行).中國人民銀行,1999