就技術(shù)本質(zhì)而言,智慧卡即是將積體電路以另一種方式加以封裝及運用,而積體電路隨著半導(dǎo)體製程技術(shù)的不斷進(jìn)步,其電路密度、資源及功效也跟著不斷地增長,如此使智慧卡能了更多的發(fā)揮與應(yīng)用。 到底目前智慧卡的資源、功效等已發(fā)展到何種地步?本文以下將審視兩顆今日的高規(guī)格智慧卡:Renesas的AE58C及Infineon的SLE88CFX4003P,以從中瞭解智慧卡的技術(shù)已達(dá)何種層次。
![]() 圖說:Renesas公司AE-5系列晶片卡的功能方塊圖,圖中淡色的功能區(qū)塊為標(biāo)準(zhǔn)的週邊功效,而圖中深色的功能區(qū)塊則依據(jù)系列產(chǎn)品中的各具體產(chǎn)品而定,有的有具備,有的則無。(資料來源:Renesas.com) ?Renesas的AE58C(處理器) AE58C的內(nèi)部具有一個32位元的處理器,該處理器可以執(zhí)行8位元、16位元、32位元的運算指令、乘法指令、除法指令、高速的區(qū)塊式資料傳輸指令、以及位元性的操控指令,例如位元資料的轉(zhuǎn)化與傳輸、位元條件研判後的分支等。 比較特別的是,一般的晶片卡,其晶片的運作速度是以外部的時脈頻率為基準(zhǔn),讀卡機(Card Reader)對晶片卡的CLK接腳輸入時脈,時脈頻率高,晶片卡運作就快,相對的時脈頻率低,晶片卡就以較慢速運作。不過,AE58C並非完全依據(jù)CLK接腳的時脈頻率來運作,AE58C在處理器部分是使用內(nèi)部自有的時脈(internal clock)來運作,與CLK接腳的頻率無關(guān),AE58C的處理器是以16MHz來運作。 此外,AE58C處理器在執(zhí)行指令時,只要1、2個機器週期(State)就能執(zhí)行完一個指令,相對於過去8位元的8051微控器,必須要6個週期才能完成一個指令的執(zhí)行,一直到後續(xù)發(fā)展才有4個週期完成一個指令,或1個週期完成一個指令的新結(jié)構(gòu)設(shè)計。 ?Renesas的AE58C(記憶體) 接著是記憶體,AE58C具有288KB的EEPROM、480KB的ROM(Mask ROM)、以及18KB的RAM,其中EEPROM部分是用Renesas公司以MONOS(Metal Oxide Nitride Oxide Silicon)製程技術(shù)所製成,且在存取上是以1Bytes~128Bytes為一個區(qū)塊(Block)單位來進(jìn)行讀寫,並在抹除上可一次抹除一個分頁(Page)的記憶空間。另外也有對意外性寫入、意外性抹除等提供防護(hù)設(shè)計及措施。 進(jìn)一步的,EEPROM的寫入與抹除,通常需要使用比一般讀取時更高的電壓才行,過去這個較高的電壓都會透過晶片卡的外部接腳(Vpp)來取得,不過AE58C另有作法,AE58C直接在晶片內(nèi)設(shè)置一個電壓泵電路(Voltage Pumping Circuit),透過此電路將一般性供電的電壓進(jìn)行升壓,以此來取得寫入、抹除所需的較高電壓,如此就不用對讀卡機或相關(guān)的卡片存取器要求額外特定的寫入、抹除用的燒錄電壓。 還有,AE58C的EEPROM具有兩種寫入模式,一是一般性的寫入模式,另一則是快速的寫入模式。用一般性模式進(jìn)行寫入可以覆寫達(dá)10萬次,且寫入程序須耗時3mS(毫秒),抹除或不事先抹除的直接覆寫則只要1.5mS。 ![]() 圖說:Renesas公司針對AE-5系列所提供的開發(fā)工具:AE-5系列SE-I實效模擬器(Emulator),圖左部分為開發(fā)設(shè)計人員所用的個人電腦,可進(jìn)行晶片卡程式的撰寫開發(fā),開發(fā)完成後再經(jīng)由圖中的USB線路將開發(fā)程式傳遞到SE-I模擬器上,以進(jìn)行AE-5晶片卡的實際運作模擬、演練。(資料來源:Renesas.com) 至於快速寫入模式,以快速方式寫入會使覆寫次數(shù)降低,保證的覆寫次數(shù)從10萬次降至1萬次,但卻可較快完成寫入程序,完整寫入(抹除後才寫入)須耗時2mS,單純的抹除動作,或不進(jìn)行抹除而直接寫入,則只要1mS。不過,無論是使用一般性寫入還是快速寫入,資料寫入後都可以保存10年之久。 ?Renesas的AE58C(安全性) 在安全性方面,AE58C具備了看門狗計時器(Watchdog Timer;WDT),可使程式執(zhí)行錯誤的晶片卡即時重置(Reset);同時也具備了隨機亂數(shù)產(chǎn)生器,可支援金鑰加密時所需的隨機亂數(shù)。 此外也有防火牆機制,Renesas稱此為Firewall Management Unit,簡稱:FMU,F(xiàn)MU可禁止應(yīng)用程式存取到非其所屬的記憶體區(qū),以避免不當(dāng)?shù)馁Y料外洩、竊取?;蛘撸?dāng)處理器執(zhí)行到未定義的不明指令時,也會即時偵知並進(jìn)行相關(guān)處理。 還有,AE58C內(nèi)建高頻偵測電路、低頻偵測電路、高電壓偵測電路、低電壓偵測電路、高溫偵測電路、低溫偵測電路等,一旦晶片運作時發(fā)生時脈過高、時脈過低、電壓過高、電壓過低、溫度過高、溫度過低等情事,AE58C都可以即時掌握並因應(yīng)。同樣的,AE58C具有非法存取偵測器(Illegal access detector),不合法的存取可以事先偵知並加以禁止。 同樣與安全性相關(guān)的,AE58C還有DES引擎,能夠以硬體方式加速DES加解密演算的執(zhí)行,另外也有加速AES演算的協(xié)同處理器、2112位元的模乘法(Modular Multiplication)協(xié)同處理器等。 ?Renesas的AE58C(其他) 除了處理器、記憶體、安全性外,AE58C提供了2個I/O接腳:I/O-1與I/O-2,如此比ISO 7816原有定義的1個I/O接腳外又多提供1個,其中I/O-1接腳的內(nèi)部還有UART的支援,使串列傳輸?shù)墓πё珜懠皥?zhí)行更加便利。 在供電方面,AE58C支援三種電壓準(zhǔn)位:4.5V~5.5V、2.7V~3.3V、1.68V~1.92V,如此無論讀卡器使用的是5V、3.3V、2.5V、還是1.8V,都在AE58C的適用範(fàn)疇內(nèi),且只要讀卡裝置提供上述三種電壓準(zhǔn)位的任何一種,即可讓AE58C正常運作,而不用同時提供二種、三種電壓準(zhǔn)位。 在時脈方面,AE58C內(nèi)建相鎖回路(Phase-Locked Loop;PLL)輸入,當(dāng)相鎖回路的輸入選擇位元為0時,AE58C可以使用1MHz~10MHz的時脈頻率,相對的選擇位元為1時,可接受的時脈頻率範(fàn)疇就限縮在1MHz~5MHz間。 當(dāng)然!AE58C也支援省電模態(tài)及機制,AE58C具有Sleep Mode 1、2兩種,在AE58C內(nèi)部的處理器執(zhí)行SLEEP指令後,即可讓AE58C時進(jìn)入休眠模式。另外在重置上也有兩種分別,即是冷重置與溫重置,兩種重置對RAM中的資料及暫存器的暫存值有不同的影響性。 ![]() 圖說:同樣針對AE-5系列的晶片卡,Renesas另有一套開發(fā)工具:AE-5系列E6000H實效模擬器(Emulator),該模擬器可以透過各種介面與個人電腦連通運作,包括USB介面、LAN(區(qū)域網(wǎng)路)介面、PC Card(PCMCIA/Cardbus)介面、以及PCI介面卡等。(資料來源:Renesas.com) ?Infineon的SLE88CFX4003P(處理器) 與Renesas的AE58C相同的,Infineon的SLE88CFX4003P也屬高規(guī)格、高標(biāo)準(zhǔn)的晶片卡。 SLE88CFX3004P也是使用32位元的處理器(或稱:微控制器),此處理器運用Infineon公司的0.13um CMOS製程技術(shù)來實現(xiàn),該處理器為RISC架構(gòu),且在執(zhí)行上已採管線化(Pipelined)設(shè)計,並在研製過程中就已將安全防護(hù)的概念考慮進(jìn)去。 不過,SLE88CFX3004P在執(zhí)行處理的架構(gòu)設(shè)計上似乎更高階,更接近於微處理器的設(shè)計,不僅具有1KB的指令快取與2KB的資料快取,還具有記憶體管理單元(Memory Management Unit;MMU)、記憶體防護(hù)單元,透過記憶體管理機制,該處理器最高可獲得4GB的虛擬記憶體定址空間。 而在記憶體防護(hù)上,SLE88CFX3004P將記憶體劃分出多個封裝(Package),並為每個記憶體封裝賦予一個存取權(quán)限(Access Rights),最多可以有256個不同的存取權(quán)階,且權(quán)限的控制、存取的禁止等動作都是透過硬體電路來執(zhí)行,使不同的卡片應(yīng)用程式都獲得嚴(yán)密的資料存取防護(hù)。 此外,無論是ROM、RAM、EEPROM記憶體,SLE88CFX3004P都提供硬體式的ECC(Error Correction Code)偵錯、更錯機制,使資料確保無誤。 同樣的,SLE88CFX3004P也採行內(nèi)部時脈電路的設(shè)計,最高可達(dá)66MHz。同時時脈頻率可依據(jù)供電類別進(jìn)行自動調(diào)整,一共有A、B、C三種供電類別。另外也支援相鎖回路模式(PLL Mode)。 更重要的是,SLE88CFX3004P的處理器也對虛擬機器的執(zhí)行機制提供硬體化的加速設(shè)計,透過特別增訂的指令集,即可讓Java Card、MULTIOS等的虛擬機器更快執(zhí)行。 圖說:Infineon SLE88CFX4003P的各種封裝(或稱:構(gòu)裝)型態(tài)圖。(資料來源:Infineon.com) ?Infineon的SLE88CFX4003P(記憶體) 在記憶體方面,SLE88CFX4003P具有400KB的EEPROM、110KB~168KB的ROM、以及16KB的RAM。 尤其是在EEPROM方面,SLE88CFX4003P允許開發(fā)工程師依據(jù)應(yīng)用需求而自由地組態(tài)、配置EEPROM,例如A應(yīng)用需要較多的資料儲存,但不需要太多的程式儲存,如此即可將EEPROM規(guī)劃成256KB的程式碼儲存區(qū),以及144KB的資料儲存區(qū)。反之若B應(yīng)用需要較多的程式碼儲存,這時規(guī)劃配置就可重新權(quán)衡取捨,將321KB規(guī)劃給程式碼,再將所剩的79KB配置成資料儲存區(qū)。 至於ROM方面並沒有太多的特別,主要是供使用者儲存更多的固定程式與資料(如資料表),RAM方面也類似,RAM除了做為資料變數(shù)的暫存外,也可做為資料緩衝區(qū)(Buffer),以及堆疊(Stack,大陸方面稱為:堆棧)資料的存放區(qū)。 要注意的是,SLE88CFX4003P還有130KB的隱藏ROM,以及20KB的隱藏EEPROM,這是為支援高安全防護(hù)性、模組化PSL(Platform Support Layer)與STS等而保留的硬體資源。 接著我們針對EEPROM再更深入說明,SLE88CFX4003P的EEPROM允許50萬次的寫入/抹除,不過這是以每個分頁為單位的抹寫次數(shù),若以每4KB為一個扇區(qū)(Sector)來進(jìn)行寫入/抹除,則最大可允許1650萬次的抹寫。 同樣的,SLE88CFX4003P也具有最少10年的資料保存、持留,不過這項保證也加註更具體的環(huán)境條件:須保持在攝氏25度的環(huán)境中。 此外,SLE88CFX4003P的EEPROM只要1mS的時間即可完成寫入程序,抹除也只要1.3mS,至於抹寫所需的電壓也一樣是在晶片內(nèi)自行進(jìn)行電壓調(diào)整而獲得,不用倚賴外部特定電壓的支援。 較耐人尋味的是,SLE88CFX4003P允許EEPROM一邊進(jìn)行程式寫入(過去多俗稱:燒寫),一邊進(jìn)行I/O接腳上的資料傳輸,使整體運作更為加速。另外SLE88CFX4003P一次就可以寫入一個分頁的資料(一個分頁最大可以有128Bytes),或一次就可以抹寫一個扇區(qū)的資料。 ![]() 圖說:Infineon SLE88CFX4003P的記憶體組態(tài)範(fàn)例圖。包括100KB~168KB的使用者ROM、隱藏的PSL ROM、隱藏的PSL EEPROM、以及380KB可任意組態(tài)配置的EEPROM。(資料來源:Infineon.com) ?Infineon的SLE88CFX4003P(安全性) 在安全性上,SLE88CFX4003P也具備高低電壓感測器、高低頻感測器、溫度感測器、故障感測器、看門狗計時器等,除此之外每個SLE88CFX4003P都有一組獨一辨識的序號,且在晶片的電路佈局(Layout)上也已經(jīng)針對安全防護(hù)需求進(jìn)行最佳化。 更值得一提的,SLE88CFX4003P也對記憶體的儲存內(nèi)容進(jìn)行硬體性的加密防護(hù),如此即便對智慧卡進(jìn)行精密的拆解,也難以得知確切的資料內(nèi)容。 除這些外,在硬體加解密引擎上,SLE88CFX4003P具備1408位元的加密引擎,並針對RSA與Elliptic Curves加密進(jìn)行最佳化,最高能支援2048位元的金鑰長度,同時還有704Bytes的RAM記憶體以支援加密運算。 此外,SLE88CFX4003P也具備硬體式的DES/3DES加速器、隨機亂數(shù)產(chǎn)生器(合乎AIS-31規(guī)範(fàn)),最重要的是SLE88CFX4003P通過CC(Common Criteria)認(rèn)證,達(dá)EAL5+的高安全級數(shù),這必須交由政府特屬的機構(gòu)才能進(jìn)行驗證認(rèn)證,一般民間實驗室只能進(jìn)行EAL1~4層級的認(rèn)證。 ?Infineon的SLE88CFX4003P(其他) 最後,SLE88CFX4003P也具有省電模式,進(jìn)入休眠模式後的用電不到100uA,至於運作中的用電則與工作頻率有關(guān):每MHz約0.35mA的用電。 另外在外部供電電壓與外部時脈頻率上,可接受的電壓範(fàn)疇為1.62V~5.5V,可接受的頻率範(fàn)圍則為1MHz~10MHz。工作溫度為-25℃~85℃,可承受的靜電電壓超過6000V。 ![]() 圖說:Infineon在晶片卡方面的編碼規(guī)則圖。88指的是32位元,其他還有66與50等族系(Family)。此外C表示晶片內(nèi)具有控制器、F代表非揮發(fā)性的記憶體是使用Flash Memory,X表示晶片卡內(nèi)具有加密控制器、400表示晶片內(nèi)的EEPROM容量(即400KB)等等。(資料來源:Infineon.com) |