智能卡芯片的發(fā)展及其所形成的設(shè)計(jì)方法
文章出處:http://bookmouse.cn 作者:許珊琳 人氣: 發(fā)表時(shí)間:2011年09月18日
一、 智能卡的組成及發(fā)展
1.1 智能卡的基本組成
“中央處理單元(CPU)(或早期的中央控制邏輯)+ 各種存儲(chǔ)器(ROM/RAM/EEPROM) + 通訊接口”就形成了智能卡的基本功能。
1.2 智能卡與讀卡器的操作
以接觸卡為例,讀卡器給卡供電源、時(shí)鐘信號(hào)、復(fù)位信號(hào),IO 是雙向數(shù)據(jù)信號(hào)線,讀卡器和卡都通過(guò)IO 進(jìn)行數(shù)據(jù)交換。在智能卡與讀卡器的相互操作過(guò)程中,讀卡器總是作為主動(dòng)一方,卡作為被動(dòng)的一方,所有的交易都是以讀卡器發(fā)命令開(kāi)始,卡完成有關(guān)操作,并應(yīng)答作為結(jié)束。
1.3 智能卡的發(fā)展
智能卡的結(jié)構(gòu)框圖。
可以從結(jié)構(gòu)、加密、通訊接口、CPU 體系結(jié)構(gòu)、安全性設(shè)計(jì)、功耗降低以及供電電壓等,了解智能卡的發(fā)展。
1.3.1 結(jié)構(gòu)
卡的發(fā)展經(jīng)歷了從邏輯加密卡(memory 卡)->智能卡(CPU 卡)的發(fā)展。
早期的卡一般是所謂的邏輯加密卡,即卡內(nèi)沒(méi)有CPU,只有一些安全邏輯、EEPROM 數(shù)據(jù)存儲(chǔ)器、通訊接口等單元,其優(yōu)點(diǎn)是針對(duì)特定的安全算法、應(yīng)用,可以做比較細(xì)致的設(shè)計(jì)優(yōu)化;其缺點(diǎn)是不靈活,邏輯都是固定的,所有的功能都由硬件實(shí)現(xiàn)。
隨著集成電路設(shè)計(jì)的發(fā)展,允許在一個(gè)較小的面積內(nèi)集成更多的電路,真正的智能卡——卡內(nèi)嵌入了CPU,并引入COS——才形成,嚴(yán)格意義上的智能卡是內(nèi)嵌CPU 的卡。由于在智能卡中,卡芯片本身只是一個(gè)硬件平臺(tái),應(yīng)用開(kāi)發(fā)工程師開(kāi)發(fā)針對(duì)不同應(yīng)用的COS 也就形成了不同的卡,實(shí)現(xiàn)了硬件與軟件的分離,給應(yīng)用實(shí)現(xiàn)帶來(lái)了極大的靈活性,形成了不同的邏輯抽象層次,芯片設(shè)計(jì)工程師可以在已定義的接口范圍內(nèi)優(yōu)化芯片設(shè)計(jì),COS 開(kāi)發(fā)工程師著重考慮應(yīng)用實(shí)現(xiàn)。
1.3.2 加密算法
簡(jiǎn)單的硬件加密邏輯—>對(duì)稱(chēng)加密算法(DES、AES 等)—>PKI 算法(RSA、ECC 等)
安全加密算法是智能卡的必要組成部分,是實(shí)現(xiàn)智能卡認(rèn)證和加密功能的基礎(chǔ)。
在邏輯加密卡階段,一般都是采用一些私有的加密算法,即算法不公開(kāi)。對(duì)應(yīng)的讀卡器也采用相應(yīng)的算法,形成一套封閉系統(tǒng)。這種系統(tǒng)的安全性更多是依賴(lài)于對(duì)私有加密算法的保密來(lái)保證。
智能卡加密算法的發(fā)展引入了對(duì)稱(chēng)加密算法,典型的有國(guó)際通用的DES,以及其升級(jí)版AES。對(duì)稱(chēng)加密算法的算法本身是公開(kāi)的,安全性依賴(lài)于密鑰的保密來(lái)保證。由于算法是公開(kāi)的,卡、讀卡器的實(shí)現(xiàn)可以獨(dú)立進(jìn)行,從這個(gè)意義上來(lái)說(shuō),系統(tǒng)是開(kāi)放的。
對(duì)稱(chēng)算法具有密鑰管理相對(duì)困難、不具有不可抵賴(lài)性等特點(diǎn)。在電子商務(wù)、電子政務(wù)等應(yīng)用中不能滿足應(yīng)用需求。在這種情況下,智能卡內(nèi)嵌入了PKI 算法,形成了PKI 智能卡。比較通用的PKI 算法有RSA、ECC 等。公鑰算法的算法也是公開(kāi)的,公鑰也公開(kāi),只要求保證私鑰的保密。
智能卡內(nèi)嵌入了PKI 算法,并不表明智能卡就不需要對(duì)稱(chēng)算法了。由于PKI 算法的計(jì)算量相對(duì)還是很大,運(yùn)算速度相對(duì)對(duì)稱(chēng)算法也比較慢,所以PKI 加密系統(tǒng)更多應(yīng)用在數(shù)字簽名、對(duì)稱(chēng)算法密鑰的傳輸加密等方面;而對(duì)稱(chēng)算法加密系統(tǒng)更多應(yīng)用在認(rèn)證、大量數(shù)據(jù)的加密傳輸?shù)确矫?。在目前階段,對(duì)稱(chēng)加密系統(tǒng)、PKI 系統(tǒng)各有千秋,缺一不可。
1.3.3 通訊接口
接觸卡接口(ISO7816)、非接觸卡接口(ISO14443,包括TYPE_A和TYPE_B;甚至一些RFID 等)、USB 接口(reader_less),現(xiàn)階段已經(jīng)發(fā)展到一個(gè)芯片中集成了多種通訊接口,形成所謂的雙界面卡(接觸/非接觸、7816 接口/USB 接口等組合)。
從最開(kāi)始的接觸卡接口,隨著應(yīng)用的推廣及集成電路設(shè)計(jì)水平的提高,智能卡所能完成的功能越來(lái)越復(fù)雜,速度越來(lái)越快。ISO7816 的通訊速度就成為了智能卡交易的瓶頸,雖然可以采用高波特率的通訊模式,并且提高讀卡器供給智能卡的時(shí)鐘頻率等多種方法以提高智能卡的通訊效率。但是還是遠(yuǎn)遠(yuǎn)沒(méi)有能滿足實(shí)際應(yīng)用的要求,尤其是在PKI 應(yīng)用環(huán)境,隨著智能卡所處理的數(shù)據(jù)量的增大,通訊時(shí)間已經(jīng)增加到約占智能卡處理時(shí)間的1/3 的程度,矛盾越來(lái)越突出。在這種情
況下,就產(chǎn)生了所謂的USB KEY 這樣一種特殊的智能卡形式,也就是在智能卡內(nèi)直接嵌入了一個(gè)符合USB 規(guī)范的通訊接口。這樣卡就可以直接與計(jì)算機(jī)相連接,并進(jìn)行交易,大大地提高了智能卡的處理效率。由于這種形式的USB KEY 直接與主機(jī)通訊,不需要讀卡器,通常也稱(chēng)為“reader_less”卡。在目前階段,USB KEY 還沒(méi)有成為一個(gè)國(guó)際標(biāo)準(zhǔn),但是據(jù)分析,USB 接口很可能會(huì)成為ISO7816 規(guī)范的一個(gè)可選接口,從而納入ISO7816 規(guī)范。
接觸卡接口由于有觸點(diǎn)的物理接口,屬于機(jī)械接觸。在實(shí)際應(yīng)用中,存在一個(gè)機(jī)械壽命的問(wèn)題。另外,在公共交通應(yīng)用中,接觸卡接口還具有其固有的一系列技術(shù)限制。而非接觸卡則具有潛在的優(yōu)勢(shì),能解決接觸卡接口所固有的限制問(wèn)題。非接觸卡不需要把卡插入到讀卡器的卡槽內(nèi),而且卡操作時(shí)對(duì)卡的方向性沒(méi)有要求,易于操作。隨著一些關(guān)鍵設(shè)計(jì)技術(shù)的成熟,非接觸卡的使用范圍正在迅速擴(kuò)大,并且必將越來(lái)越大,尤其是在公共交通、物流管理等方面。
智能卡接口發(fā)展的一個(gè)有趣的形式是雙界面卡(也叫復(fù)合卡),在一個(gè)卡內(nèi)集成了兩個(gè)不同的通訊接口,既可以是“ISO7816+USB”方式,也可以是“ISO7816+非接觸接口”形式。
但是智能卡接口的多樣性,并沒(méi)有從本質(zhì)上改變智能卡的功能及特性,智能卡的核心功能沒(méi)有改變。
1.3.4 智能卡CPU 體系結(jié)構(gòu)的發(fā)展
作為智能卡引擎的CPU 也在不斷的發(fā)展。早期智能卡內(nèi)的CPU 與普通的嵌入式微控制器沒(méi)有太多的區(qū)別,僅僅是一個(gè)CPU 核而已。但是隨著智能卡安全性、多用途等需求的不斷提高,智能卡內(nèi)CPU 的體系結(jié)構(gòu)也相應(yīng)地發(fā)生了很大的變化。除了必須具有通用嵌入式微控制器的各種特性外,更多的是表現(xiàn)在安全性能方面逐步形成為一個(gè)特定的、安全的智能卡CPU 核。
智能卡特定的、安全的 CPU 核可以從以下幾方面得到體現(xiàn)。
1、 CPU 支持多個(gè)狀態(tài),比如系統(tǒng)態(tài)或內(nèi)核態(tài)、用戶態(tài)。不同狀態(tài)的權(quán)限定義不同,處在系統(tǒng)態(tài)的程序可以操作(讀/寫(xiě))所有的硬件資源;處在用戶態(tài)的程序只能操作(讀或?qū)懟蜃x/寫(xiě))有限的硬件資源(根據(jù)權(quán)限的定義)。
2、 CPU 指令執(zhí)行時(shí)間(指令周期)的隨機(jī)化。
3、 中斷系統(tǒng)支持CPU 狀態(tài)的轉(zhuǎn)換,從而實(shí)現(xiàn)不同層次的安全級(jí)別控制,支持多應(yīng)用的實(shí)現(xiàn)。
4、 MMU 系統(tǒng);邏輯地址、物理地址的隔離;及地址映射,從體系結(jié)構(gòu)上支持應(yīng)用(多應(yīng)用)、安全性的設(shè)計(jì)實(shí)現(xiàn),與CPU 不同狀態(tài)一起有機(jī)的組成一個(gè)硬件防火墻。
5、 中斷系統(tǒng)、定時(shí)器(timer)可以認(rèn)為是智能卡特定的CPU 的基本組成部分。隨著智能卡的發(fā)展,許多功能的實(shí)現(xiàn)(尤其是PKI算法的實(shí)現(xiàn))都是軟、硬件共同組成的,也就是說(shuō)一些本來(lái)屬于芯片功能的設(shè)計(jì)可能會(huì)采用軟件(一般稱(chēng)為系統(tǒng)函數(shù)庫(kù))來(lái)實(shí)現(xiàn)。系統(tǒng)函數(shù)庫(kù)是芯片的一部分,是芯片廠商的知識(shí)產(chǎn)權(quán),必須進(jìn)行保護(hù);同時(shí)也必須允許用戶(COS)使用。中斷系統(tǒng)能很好地支持系統(tǒng)函數(shù)庫(kù)與用戶程序COS 的接口及權(quán)限傳遞和切換。
6、 擴(kuò)展的存儲(chǔ)器地址空間。智能卡發(fā)展到今天,64KB 的程序空間已經(jīng)不能滿足應(yīng)用需求。程序存儲(chǔ)器空間一般都支持20 以上的地址位寬。數(shù)據(jù)存儲(chǔ)器空間也支持64KB 范圍。SFR 地址范圍也達(dá)到128KB 或256KB??傮w上,具有很好的擴(kuò)展性。
7、 不揮發(fā)存儲(chǔ)器(EEPROM/EFLASH)從邏輯上被劃分為程序存儲(chǔ)器,以支持程序下載。
1.3.5 安全性設(shè)計(jì)
智能卡的安全性設(shè)計(jì)不僅僅表現(xiàn)在某一個(gè)部件方面,而是表現(xiàn)在整體方案方面,包括邏輯設(shè)計(jì)、物理實(shí)現(xiàn)都應(yīng)該考慮。從邏輯上,各種加密算法、CPU 的狀態(tài)設(shè)置及MMU 實(shí)現(xiàn)、算法函數(shù)實(shí)現(xiàn)時(shí)間的隨機(jī)化、具有真隨機(jī)數(shù)發(fā)生器、頻率檢測(cè)、電壓檢測(cè)、溫度檢測(cè)等,都屬于安全性設(shè)計(jì)的范疇。從物理實(shí)現(xiàn)上,防止各種物理解剖、探測(cè)都是安全性設(shè)計(jì)應(yīng)該考慮的措施。
1.3.6 其它一些發(fā)展
在功耗方面,現(xiàn)階段接觸卡ISO7816 規(guī)范的定義是100ma(Class A),但是一些實(shí)際的行業(yè)規(guī)范都比ISO7816 規(guī)范嚴(yán)格,比如SIM 卡,由
于是電池供電,一般要求工作電流<10ma)。對(duì)于非接觸卡,受到射頻信號(hào)的影響,對(duì)芯片功耗的要求比接觸卡更為嚴(yán)格,低功耗設(shè)計(jì)是一個(gè)挑戰(zhàn)。
關(guān)于電源電壓,受到手持設(shè)備應(yīng)用的驅(qū)動(dòng),芯片供電電壓范圍也在發(fā)展,發(fā)展趨勢(shì)是5V —> 3V —> 1.8V,為了兼容機(jī)具,要求智能卡的端口支持較寬的端口電平范圍,比如5V-2.7V 等。
1、 軟、硬件結(jié)合
2、 項(xiàng)目的交付件:除了芯片外,還應(yīng)該完成開(kāi)發(fā)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),具有配套的輔助產(chǎn)品(開(kāi)發(fā)系統(tǒng)、仿真器、軟掩膜卡、一些支持COS 開(kāi)發(fā)的算法函數(shù)/系統(tǒng)函數(shù)、配套的讀卡器)
3、 芯片只是一個(gè)平臺(tái),在其上開(kāi)發(fā)不同的COS,就形成不同的產(chǎn)品。
4、 在產(chǎn)品整個(gè)生命周期中,會(huì)源源不斷地有新COS 應(yīng)用在芯片平臺(tái)上。不同的COS 通過(guò)掩膜寫(xiě)入在ROM 中
二、 智能卡的設(shè)計(jì)方法
智能卡芯片是一個(gè)SOC 的解決方案,與之對(duì)應(yīng),CPU 智能卡的設(shè)計(jì)開(kāi)發(fā)方法就與一般的集成電路芯片設(shè)計(jì)有所不同,有一個(gè)方法學(xué)的概念。
1、CPU 卡的存儲(chǔ)器包括:ROM(COS)、EEPROM/EFLASH(支持程序下載)、RAM(或XRAM)、支持SFR 擴(kuò)展。一般都具有MMU機(jī)制。
2、智能卡設(shè)計(jì)包括兩大方面:即功能設(shè)計(jì)、安全性設(shè)計(jì)。安全性設(shè)計(jì)是智能卡的一個(gè)必要的設(shè)計(jì)內(nèi)容,這是智能卡設(shè)計(jì)與一般的SOC設(shè)計(jì)的最大區(qū)別。
安全性設(shè)計(jì)不是項(xiàng)目中某一階段、某一個(gè)工程師的責(zé)任,而是一個(gè)整體解決方案,是設(shè)計(jì)過(guò)程中軟件、硬件、算法、設(shè)計(jì)實(shí)現(xiàn)都必須考慮的設(shè)計(jì)要素,必須貫穿整個(gè)設(shè)計(jì)、生產(chǎn)、項(xiàng)目管理過(guò)程中。
3、CPU 是芯片的核心,所有的算法協(xié)處理器(DES、RSA、ECC、CRC 等)、通訊接口(ISO7816、typeA、typeB RF 接口、USB 接口、包括一些通用IO 接口)、安全模塊(TRNG、VD、FD、TD 等)都作為CPU 的外設(shè),通過(guò)SFR 總線與CPU 相接。
4、芯片的邏輯驗(yàn)證基本上是通過(guò)編寫(xiě)不同的ASM 程序,裝入ROM或EEPROM,進(jìn)行仿真驗(yàn)證。
5、 在設(shè)計(jì)的總體設(shè)計(jì)及創(chuàng)建階段,必須考慮到開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)及其支持能力。開(kāi)發(fā)系統(tǒng)具有兩個(gè)主要功能(作用),一是作為芯片的FPGA 驗(yàn)證手段;二是作為COS 開(kāi)發(fā)平臺(tái),供COS 開(kāi)發(fā)人員使用。
6、 應(yīng)該考慮把軟開(kāi)發(fā)系統(tǒng)作為設(shè)計(jì)的必要組成部分,尤其在各種算法的軟、硬件劃分還沒(méi)有完全確定的時(shí)候,軟開(kāi)發(fā)系統(tǒng)能在設(shè)計(jì)的較早期階段,對(duì)方案進(jìn)行評(píng)估,進(jìn)行設(shè)計(jì)優(yōu)化。
7、 芯片的技術(shù)規(guī)范(datasheet)必須在設(shè)計(jì)的早期完成(隨著設(shè)計(jì)的創(chuàng)建完成,基本同步完成),以便于COS 開(kāi)發(fā)人員盡早介入到項(xiàng)目中。
8、 隨著設(shè)計(jì)復(fù)雜度的增加,設(shè)計(jì)必須按層次結(jié)構(gòu)的方式組織。一般可以分為三個(gè)層次:1)IP 設(shè)計(jì)開(kāi)發(fā)(包括模擬IP、數(shù)字IP、定制IP、軟IP 等),2)芯片整合或集成(以CPU 為核心)和3)COS 開(kāi)發(fā)并與芯片配合形成具體的產(chǎn)品。
第一層的設(shè)計(jì)是為第二層的設(shè)計(jì)服務(wù),在其設(shè)計(jì)階段、文檔完成過(guò)程中,都應(yīng)該清楚其服務(wù)對(duì)象是第二層,并支持第二層的設(shè)計(jì)實(shí)現(xiàn)。
第二層的設(shè)計(jì)是為第三層的設(shè)計(jì)服務(wù),在其設(shè)計(jì)階段、文檔完成過(guò)程中,都應(yīng)該清楚其服務(wù)對(duì)象是第三層,并支持第三層的設(shè)計(jì)實(shí)現(xiàn)。
每個(gè)層次之間的接口、文檔都必須清晰,從使用者的角度完成技術(shù)規(guī)范(datasheet)。
各個(gè)IP 及CPU 的開(kāi)發(fā)相互獨(dú)立、并行進(jìn)行,原理上是并在芯片的整合開(kāi)始之前完成,但是一個(gè)IP 可以整合到芯片中(為了并行開(kāi)
發(fā))的基本前提條件是:
具備明確的接口信號(hào)定義、時(shí)序關(guān)系定義,
具有技術(shù)規(guī)范(Datasheet)
對(duì)應(yīng)的仿真模型(.V)
一個(gè)IP 可以發(fā)布(release)(可以開(kāi)始芯片實(shí)現(xiàn)設(shè)計(jì))的前提條件是:
具備明確的接口信號(hào)定義、時(shí)序關(guān)系定義,
具有技術(shù)規(guī)范(Datasheet)
對(duì)應(yīng)的仿真模型(.V)
在IP 設(shè)計(jì)師所假設(shè)的仿真(模擬)條件下,通過(guò)仿真(模擬)。
對(duì)應(yīng)軟IP,必須是可綜合的
對(duì)于硬IP,必須具備綜合庫(kù)模型.db 等等。