利用基于ECC算法的密碼芯片實現安全高效的加密卡
文章出處:http://5052h112.com 作者:侯鴻飛 人氣: 發表時間:2011年09月23日
通信網絡特別是互聯網的高速發展使得信息安全這個問題受到人們的普遍關注。在信息安全算法中,RSA方法的優點主要是原理簡單、易于使用。但是,隨著分解大整數方法的完善、計算機速度的提高以及計算機網絡的發展,作為RSA加解密安全保障的大整數要求越來越大。為保證RSA使用的安全性,密鑰的位數不斷增加,目前一般認為RSA需要1024位以上的字長才具有安全保障。但是,密鑰長度的增加導致加解密的速度大大降低,硬件實現也變得越來越復雜,這給使用RSA的應用帶來了極大的負擔(尤其是進行大量安全交易的電子商務),從而使其應用范圍日益受到制約。
ECC算法只需采用較短的密鑰就可以達到和RSA算法相同的加密強度,它的數論基礎是有限域上的橢圓曲線離散對數問題,現在還沒有針對這個難題的亞指數時間算法,因此,ECC算法具有每比特最高的安全強度。由于智能卡在CPU處理能力和RAM大小上受限,采用一種運算量小同時能提供高加密強度的公鑰密碼機制對于實現數字簽名應用非常關鍵。ECC在這方面具有明顯優勢,160位ECC算法的安全性相當于1024位的RSA算法,而210位的ECC則相當于2048位的RSA。相信ECC技術在信息安全領域中的應用將會越來越廣泛。
目前許多智能卡/USB Key芯片廠商都在產品上實現了支持ECC的公鑰密碼硬件協處理器。例如:恩智浦半導體的智能卡芯片可以在40ms內實現192位的ECC數字簽名操作;意法半導體的一些產品通過協處理器和快速乘法與累加指令為實現RSA和ECC算法提供了方便;英飛凌的SLE66CxxP通過一個硬件模數運算單元,可以加速RSA和ECC等公鑰密碼算法的處理;Atmel公司的AT90SC19264RC、AT91SC25672RC等產品也都實現了針對公鑰密碼算法的硬件協處理器。在高性能的認證和加密芯片方面:Siemens的PLUTO-IC是一種基于GF(p)域曲線ECC算法的高性能加密芯片,ECC的模長達到320位;ELCRODAT-6-2是一種用于ISDN通訊網的加密芯片,它同樣基于GF(p)域曲線的ECC算法,ECC的模長達到256位。
國內也有大批采用ECC技術的芯片陸續問世,其中比較有影響的是北京中電華大電子設計有限責任公司和深圳市中興集成電路設計有限公司的智能卡/USB Key芯片,北京華大信安科技有限公司的高性能ECC芯片系列等,它們均能支持ECC國家標準算法和多種ECC國際標準算法。
基于ECC密碼芯片組的加密卡的系統框圖
ISECMM1256BV1安全芯片是北京華大信安科技有限公司為解決當前信息安全產品設計過程中存在的問題而推出的ECC算法芯片。該芯片是一款高效通用的公鑰密碼芯片,它從硬件上實現了ECC國家標準算法、ECC國際標準算法以及RSA算法,同時還實現了一些Hash標準算法,包括Hash國家標準算法(又稱SM3密碼雜湊算法)、SHA-1和SHA-256。還可以將ECC密鑰對存儲在芯片中,芯片內部設有Flash存儲區用于存儲和管理最高達64對的ECC密鑰對,該區域被稱為“密鑰池”。只有經過授權認證的用戶才能獲取密鑰池中ECC密鑰對的操作權限。為保護密鑰池中ECC私鑰的安全性,芯片中的SCE實現方案加入了防側信道攻擊(Side Channel Attack, SCA)技術,以加強對密鑰池中私鑰的保護。
在芯片的應用上,由于PCI總線的傳輸速率在PC機的對外接口中具有很大優勢,因此目前的加密卡都選擇PCI總線與PC機進行通訊。圖1給出了基于華大信安ECC密碼芯片ISECMM1256BV1的PCI加密卡的基本平臺,PCI總線被總線轉換芯片組轉換成SRAM總線、準SRAM總線和SPI總線。PC通過提供給PCI總線不同的基地址來達到分別訪問每個芯片的目的,應用起來十分方便。ISECMM1256BV1安全芯片內部含有一顆CPU,通過嵌入代碼對ECC的算法引擎進行了打包,因此在應用過程中無需關心ECC的算法實現和協議實現問題。這款加密卡通過總線轉換芯片組讓PC機直接訪問ISECMM1256BV1芯片來滿足ECC及RSA算法應用的需求。此外,在板卡上加入了隨機數芯片和SCB2芯片,增加了ECB、CBC和OFB等多種運算模式,擴大了加密卡的應用范圍。作為加密卡的基本模式,在該方案的基礎上可以任意擴展用戶所需的密碼算法芯片,對卡的功能進行擴展,以滿足用戶的不同需求。基于該方案能夠很方便地實現ECC算法、RSA算法和SCB2算法等應用,為信息安全保駕護航。
作者:侯鴻飛
Email: houhf@hed.com.cn
北京華大信安科技有限公司