智能卡的密鑰管理舉例
文章出處:http://psychicreadingswithdeb.com 作者: 人氣: 發(fā)表時(shí)間:2011年12月14日
這里我們將敘述一個(gè)基于智能卡系統的密鑰管理之例。其目的是用一個(gè)比較容易理解集中事例來(lái)進(jìn)一步說(shuō)明前面所敘述的原則。和這個(gè)例子相比,真正大型系統經(jīng)常的安排更復雜些而且有幾個(gè) 結構層次。小型的系統通常不需要任何密鑰層次,因為一個(gè)秘密的全局密鑰叮用于所有的卡。此處所給出 的系統處於大型系統和結構簡(jiǎn)單的系統的中間位置,因此是個(gè)很好的例子。
圖1舉之例中,供裝入或支付的密鑰可用于電子錢(qián)包,它們用對稱(chēng)加密方法,在系統中這些密鑰在 任何情況下都是重要的,因為它們都比較好地由所述的密鑰層次予以保護。各個(gè)導出功能在此處不做詳述 ,但DES或3重DES算法總是可用于它們的。密鑰的長(cháng)度也未做詳細討論,但它們確實(shí)是可變的。為了安全起 見(jiàn),在層次頂層的密鑰通常用比其較低層的密鑰更強有力的加密功能導出。
圖1 智能卡系統和對稱(chēng)加密算法的密鑰層次舉例
位于頂層的密鑰被稱(chēng)為通用主密鑰,對于整個(gè)一代的密鑰只有一個(gè)這樣的密鑰。例如,—代可在一年內保 持有效,在相繼的年份可用新一代來(lái)替換,這就是新一代的通用主密鑰了。這個(gè)密鑰是整個(gè)系統中對安全 最敏感的密鑰。如果它被知道了,則所有屬于它這一代的密鑰都可算出,系統的這一代被攻破。主密鑰可 由隨機數產(chǎn)生,也可以設想使通用主密鑰由數個(gè)人各自單獨擲骰子得出之值來(lái)形成,其中每個(gè)人只知道密 鑰的部分值,通用主密鑰應當絕對不會(huì )由任何單獨的個(gè)人完全知道,而在它的一代中必須不具各可以復制 出來(lái)的條件。
每項功能的單獨主密鑰由通用主密鑰導出,密鑰的功能可以是對一個(gè)電子錢(qián)包的裝人或支付。一個(gè)單向函 數,諸如變型的DES算法,在此例中可用來(lái)導出各個(gè)功能的主密鑰,這使得應用逆向計算過(guò)程由主密鑰來(lái)計 算通用主密鑰是不可能的。如果不是用單向函數去導出主密鑰,盡管有各種安全方法,如果一個(gè)主密鑰變 成了已知的,若也知道了導出參數,那么就可以算出通用主密鑰來(lái)。這里使用單向函數的理由是假定在這 個(gè)想像的電子錢(qián)包系統中,主密鑰將位于本地終端的安全模塊之中。這就是說(shuō),比起總是位于后臺系統的 通用主密鑰來(lái),它們就更易于受到攻擊。
導出密鑰形成了密鑰層次中的下一層,它們是位于智能卡中的密鑰。每張卡含有一組導出密鑰,它們是按 照其功能和朝“代”數分開(kāi)的。如果這樣的一張卡用于終端,則立足于導出該密鑰時(shí)所用的參數終端可為 它本身計算導出密鑰。當然,終端首先要從卡讀取導出參數。一旦導出密鑰是可用的,則按下列步驟去計 算動(dòng)態(tài)密鑰,它對于一次單獨的會(huì )話(huà)是專(zhuān)用的。此密鑰僅在一單獨的會(huì )話(huà)期間有效。在絕大多數智能卡應用中,會(huì )話(huà)期持續時(shí)間的范圍可從數百毫秒到數秒,會(huì )話(huà)結束后不再使用此動(dòng)態(tài)密鑰。
這項電子錢(qián)包系統的密鑰層如圖2所示。
圖2 電子錢(qián)包系統的密鑰舉例
乍看此例中的系統似乎有點(diǎn)復雜,但比起實(shí)際的系統來(lái)它還是比較簡(jiǎn)單的。這個(gè)例子的目的是表明在一個(gè)系統中的所有密鑰是如何產(chǎn)生的。它同時(shí)也暗示了如果一個(gè)密鑰被知道了必須采取的方法。如果通用主密鑰被知道了,就必須轉換至新的一代以便系統能夠運行而不必考慮安全的風(fēng)險。另一方面,如果一個(gè)導出密鑰被知道了,所需要的是閉鎖有關(guān)的卡,對密鑰管理的任何其他改變都是不適宜的。所有這些方法假定的前提是能夠確定一個(gè)(或數個(gè))密鑰被知道了,就在以后能予以防范。
給出這種密鑰層次,很明顯是要在智能卡中產(chǎn)生與存儲很多密鑰。當然,為了節約存儲空間總能指定幾項功能共用一個(gè)密鑰,也完全可以設想不同的密鑰層次安排。這當然在很大程度上取決于對系統的密鑰管理。