分享

智慧卡/晶片卡技術發展(2)

 Taylor 2007-02-02
就技術本質而言,智慧卡即是將積體電路以另一種方式加以封裝及運用,而積體電路隨著半導體製程技術的不斷進步,其電路密度、資源及功效也跟著不斷地增長,如此使智慧卡能了更多的發揮與應用。

到底目前智慧卡的資源、功效等已發展到何種地步?本文以下將審視兩顆今日的高規格智慧卡:Renesas的AE58C及Infineon的SLE88CFX4003P,以從中瞭解智慧卡的技術已達何種層次。


廣告


圖說:Renesas公司AE-5系列晶片卡的功能方塊圖,圖中淡色的功能區塊為標準的週邊功效,而圖中深色的功能區塊則依據系列產品中的各具體產品而定,有的有具備,有的則無。(資料來源:Renesas.com)



?Renesas的AE58C(處理器)

AE58C的內部具有一個32位元的處理器,該處理器可以執行8位元、16位元、32位元的運算指令、乘法指令、除法指令、高速的區塊式資料傳輸指令、以及位元性的操控指令,例如位元資料的轉化與傳輸、位元條件研判後的分支等。

比較特別的是,一般的晶片卡,其晶片的運作速度是以外部的時脈頻率為基準,讀卡機(Card Reader)對晶片卡的CLK接腳輸入時脈,時脈頻率高,晶片卡運作就快,相對的時脈頻率低,晶片卡就以較慢速運作。不過,AE58C並非完全依據CLK接腳的時脈頻率來運作,AE58C在處理器部分是使用內部自有的時脈(internal clock)來運作,與CLK接腳的頻率無關,AE58C的處理器是以16MHz來運作。

此外,AE58C處理器在執行指令時,只要1、2個機器週期(State)就能執行完一個指令,相對於過去8位元的8051微控器,必須要6個週期才能完成一個指令的執行,一直到後續發展才有4個週期完成一個指令,或1個週期完成一個指令的新結構設計。


?Renesas的AE58C(記憶體)

接著是記憶體,AE58C具有288KB的EEPROM、480KB的ROM(Mask ROM)、以及18KB的RAM,其中EEPROM部分是用Renesas公司以MONOS(Metal Oxide Nitride Oxide Silicon)製程技術所製成,且在存取上是以1Bytes~128Bytes為一個區塊(Block)單位來進行讀寫,並在抹除上可一次抹除一個分頁(Page)的記憶空間。另外也有對意外性寫入、意外性抹除等提供防護設計及措施。

進一步的,EEPROM的寫入與抹除,通常需要使用比一般讀取時更高的電壓才行,過去這個較高的電壓都會透過晶片卡的外部接腳(Vpp)來取得,不過AE58C另有作法,AE58C直接在晶片內設置一個電壓泵電路(Voltage Pumping Circuit),透過此電路將一般性供電的電壓進行升壓,以此來取得寫入、抹除所需的較高電壓,如此就不用對讀卡機或相關的卡片存取器要求額外特定的寫入、抹除用的燒錄電壓。

還有,AE58C的EEPROM具有兩種寫入模式,一是一般性的寫入模式,另一則是快速的寫入模式。用一般性模式進行寫入可以覆寫達10萬次,且寫入程序須耗時3mS(毫秒),抹除或不事先抹除的直接覆寫則只要1.5mS。



圖說:Renesas公司針對AE-5系列所提供的開發工具:AE-5系列SE-I實效模擬器(Emulator),圖左部分為開發設計人員所用的個人電腦,可進行晶片卡程式的撰寫開發,開發完成後再經由圖中的USB線路將開發程式傳遞到SE-I模擬器上,以進行AE-5晶片卡的實際運作模擬、演練。(資料來源:Renesas.com)

至於快速寫入模式,以快速方式寫入會使覆寫次數降低,保證的覆寫次數從10萬次降至1萬次,但卻可較快完成寫入程序,完整寫入(抹除後才寫入)須耗時2mS,單純的抹除動作,或不進行抹除而直接寫入,則只要1mS。不過,無論是使用一般性寫入還是快速寫入,資料寫入後都可以保存10年之久。

?Renesas的AE58C(安全性)


在安全性方面,AE58C具備了看門狗計時器(Watchdog Timer;WDT),可使程式執行錯誤的晶片卡即時重置(Reset);同時也具備了隨機亂數產生器,可支援金鑰加密時所需的隨機亂數。

此外也有防火牆機制,Renesas稱此為Firewall Management Unit,簡稱:FMU,FMU可禁止應用程式存取到非其所屬的記憶體區,以避免不當的資料外洩、竊取。或者,當處理器執行到未定義的不明指令時,也會即時偵知並進行相關處理。

還有,AE58C內建高頻偵測電路、低頻偵測電路、高電壓偵測電路、低電壓偵測電路、高溫偵測電路、低溫偵測電路等,一旦晶片運作時發生時脈過高、時脈過低、電壓過高、電壓過低、溫度過高、溫度過低等情事,AE58C都可以即時掌握並因應。同樣的,AE58C具有非法存取偵測器(Illegal access detector),不合法的存取可以事先偵知並加以禁止。

同樣與安全性相關的,AE58C還有DES引擎,能夠以硬體方式加速DES加解密演算的執行,另外也有加速AES演算的協同處理器、2112位元的模乘法(Modular Multiplication)協同處理器等。


?Renesas的AE58C(其他)

除了處理器、記憶體、安全性外,AE58C提供了2個I/O接腳:I/O-1與I/O-2,如此比ISO 7816原有定義的1個I/O接腳外又多提供1個,其中I/O-1接腳的內部還有UART的支援,使串列傳輸的功效撰寫及執行更加便利。

在供電方面,AE58C支援三種電壓準位:4.5V~5.5V、2.7V~3.3V、1.68V~1.92V,如此無論讀卡器使用的是5V、3.3V、2.5V、還是1.8V,都在AE58C的適用範疇內,且只要讀卡裝置提供上述三種電壓準位的任何一種,即可讓AE58C正常運作,而不用同時提供二種、三種電壓準位。

在時脈方面,AE58C內建相鎖回路(Phase-Locked Loop;PLL)輸入,當相鎖回路的輸入選擇位元為0時,AE58C可以使用1MHz~10MHz的時脈頻率,相對的選擇位元為1時,可接受的時脈頻率範疇就限縮在1MHz~5MHz間。

當然!AE58C也支援省電模態及機制,AE58C具有Sleep Mode 1、2兩種,在AE58C內部的處理器執行SLEEP指令後,即可讓AE58C時進入休眠模式。另外在重置上也有兩種分別,即是冷重置與溫重置,兩種重置對RAM中的資料及暫存器的暫存值有不同的影響性。



圖說:同樣針對AE-5系列的晶片卡,Renesas另有一套開發工具:AE-5系列E6000H實效模擬器(Emulator),該模擬器可以透過各種介面與個人電腦連通運作,包括USB介面、LAN(區域網路)介面、PC Card(PCMCIA/Cardbus)介面、以及PCI介面卡等。(資料來源:Renesas.com)

?Infineon的SLE88CFX4003P(處理器)

與Renesas的AE58C相同的,Infineon的SLE88CFX4003P也屬高規格、高標準的晶片卡。

SLE88CFX3004P也是使用32位元的處理器(或稱:微控制器),此處理器運用Infineon公司的0.13um CMOS製程技術來實現,該處理器為RISC架構,且在執行上已採管線化(Pipelined)設計,並在研製過程中就已將安全防護的概念考慮進去。

不過,SLE88CFX3004P在執行處理的架構設計上似乎更高階,更接近於微處理器的設計,不僅具有1KB的指令快取與2KB的資料快取,還具有記憶體管理單元(Memory Management Unit;MMU)、記憶體防護單元,透過記憶體管理機制,該處理器最高可獲得4GB的虛擬記憶體定址空間。

而在記憶體防護上,SLE88CFX3004P將記憶體劃分出多個封裝(Package),並為每個記憶體封裝賦予一個存取權限(Access Rights),最多可以有256個不同的存取權階,且權限的控制、存取的禁止等動作都是透過硬體電路來執行,使不同的卡片應用程式都獲得嚴密的資料存取防護。

此外,無論是ROM、RAM、EEPROM記憶體,SLE88CFX3004P都提供硬體式的ECC(Error Correction Code)偵錯、更錯機制,使資料確保無誤。

同樣的,SLE88CFX3004P也採行內部時脈電路的設計,最高可達66MHz。同時時脈頻率可依據供電類別進行自動調整,一共有A、B、C三種供電類別。另外也支援相鎖回路模式(PLL Mode)。

更重要的是,SLE88CFX3004P的處理器也對虛擬機器的執行機制提供硬體化的加速設計,透過特別增訂的指令集,即可讓Java Card、MULTIOS等的虛擬機器更快執行。



圖說:Infineon SLE88CFX4003P的各種封裝(或稱:構裝)型態圖。(資料來源:Infineon.com)

?Infineon的SLE88CFX4003P(記憶體)

在記憶體方面,SLE88CFX4003P具有400KB的EEPROM、110KB~168KB的ROM、以及16KB的RAM。

尤其是在EEPROM方面,SLE88CFX4003P允許開發工程師依據應用需求而自由地組態、配置EEPROM,例如A應用需要較多的資料儲存,但不需要太多的程式儲存,如此即可將EEPROM規劃成256KB的程式碼儲存區,以及144KB的資料儲存區。反之若B應用需要較多的程式碼儲存,這時規劃配置就可重新權衡取捨,將321KB規劃給程式碼,再將所剩的79KB配置成資料儲存區。

至於ROM方面並沒有太多的特別,主要是供使用者儲存更多的固定程式與資料(如資料表),RAM方面也類似,RAM除了做為資料變數的暫存外,也可做為資料緩衝區(Buffer),以及堆疊(Stack,大陸方面稱為:堆棧)資料的存放區。

要注意的是,SLE88CFX4003P還有130KB的隱藏ROM,以及20KB的隱藏EEPROM,這是為支援高安全防護性、模組化PSL(Platform Support Layer)與STS等而保留的硬體資源。

接著我們針對EEPROM再更深入說明,SLE88CFX4003P的EEPROM允許50萬次的寫入/抹除,不過這是以每個分頁為單位的抹寫次數,若以每4KB為一個扇區(Sector)來進行寫入/抹除,則最大可允許1650萬次的抹寫。

同樣的,SLE88CFX4003P也具有最少10年的資料保存、持留,不過這項保證也加註更具體的環境條件:須保持在攝氏25度的環境中。

此外,SLE88CFX4003P的EEPROM只要1mS的時間即可完成寫入程序,抹除也只要1.3mS,至於抹寫所需的電壓也一樣是在晶片內自行進行電壓調整而獲得,不用倚賴外部特定電壓的支援。

較耐人尋味的是,SLE88CFX4003P允許EEPROM一邊進行程式寫入(過去多俗稱:燒寫),一邊進行I/O接腳上的資料傳輸,使整體運作更為加速。另外SLE88CFX4003P一次就可以寫入一個分頁的資料(一個分頁最大可以有128Bytes),或一次就可以抹寫一個扇區的資料。




圖說:Infineon SLE88CFX4003P的記憶體組態範例圖。包括100KB~168KB的使用者ROM、隱藏的PSL ROM、隱藏的PSL EEPROM、以及380KB可任意組態配置的EEPROM。(資料來源:Infineon.com)



?Infineon的SLE88CFX4003P(安全性)

在安全性上,SLE88CFX4003P也具備高低電壓感測器、高低頻感測器、溫度感測器、故障感測器、看門狗計時器等,除此之外每個SLE88CFX4003P都有一組獨一辨識的序號,且在晶片的電路佈局(Layout)上也已經針對安全防護需求進行最佳化。

更值得一提的,SLE88CFX4003P也對記憶體的儲存內容進行硬體性的加密防護,如此即便對智慧卡進行精密的拆解,也難以得知確切的資料內容。

除這些外,在硬體加解密引擎上,SLE88CFX4003P具備1408位元的加密引擎,並針對RSA與Elliptic Curves加密進行最佳化,最高能支援2048位元的金鑰長度,同時還有704Bytes的RAM記憶體以支援加密運算。

此外,SLE88CFX4003P也具備硬體式的DES/3DES加速器、隨機亂數產生器(合乎AIS-31規範),最重要的是SLE88CFX4003P通過CC(Common Criteria)認證,達EAL5+的高安全級數,這必須交由政府特屬的機構才能進行驗證認證,一般民間實驗室只能進行EAL1~4層級的認證。

?Infineon的SLE88CFX4003P(其他)

最後,SLE88CFX4003P也具有省電模式,進入休眠模式後的用電不到100uA,至於運作中的用電則與工作頻率有關:每MHz約0.35mA的用電。

另外在外部供電電壓與外部時脈頻率上,可接受的電壓範疇為1.62V~5.5V,可接受的頻率範圍則為1MHz~10MHz。工作溫度為-25℃~85℃,可承受的靜電電壓超過6000V。


圖說:Infineon在晶片卡方面的編碼規則圖。88指的是32位元,其他還有66與50等族系(Family)。此外C表示晶片內具有控制器、F代表非揮發性的記憶體是使用Flash Memory,X表示晶片卡內具有加密控制器、400表示晶片內的EEPROM容量(即400KB)等等。(資料來源:Infineon.com)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多