1、密碼體制
密碼體制是實施密碼變換的基本方式,從原理上可分為兩大類,即單鑰體制和雙鑰體制。單鑰體制又稱為傳統密碼體制或對稱密碼體制,雙鑰體制又稱為公鑰密碼體制或非對稱密碼體制。
單鑰體制的加密密鑰和解密密鑰相同。系統的保密性主要取決于密鑰的安全性,必須通過安全可靠的途徑(如信使遞送)將密鑰送至收端。如何產生滿足保密要求的密鑰是這類體制設計和實現的主要課題。單鑰體制對明文消息加密有兩種方式:一是明文消息按字符(如二元數字)逐位地加密,稱之為流密碼;另一種是將明文消息分組(含有多個字符),逐組地進行加密,稱之為分組密碼。
雙鑰體制是由Diffie和Hellman在1976年引入的。采用雙鑰體制的每個用戶都有一對選定的密鑰:一個是可以公開的,另一個則是秘密的。公開的密鑰可以像電話號碼一樣進行注冊公布。雙鑰密碼體制的主要特點是將加密和解密能力分開,因而可以實現多個用戶加密的消息只能由一個用戶解讀,或只能由一個用戶加密消息而使多個用戶可以解讀。前者可用于公共網絡中實現保密通信,而后者可用于認證系統中對消息進行數字簽字。雙鑰體制特別適用于多用戶通信網,它大大減少了多用戶之間通信所需的密鑰量,便于密鑰管理。這一體制的出現是密碼學研究中的一項重大突破,它是現代密碼學誕生的標志之一。
2、密碼算法
密碼算法是精心設計的程序、一系列規則或步驟,用于產生加、解密用的密鑰流或實現明、密文變換。
密碼算法可分為兩大類,即基于數學的密碼算法和基于非數學的密碼算法。當前實用的算法大多是前者。后者有基于物理的算法,如量子密碼,當量子、DNA計算機真正實用時,它在信息安全中將起重要作用。
基于數學的密碼算法可按密碼體制劃分為單鑰密碼算法和雙鑰密碼算法。又分為流密碼算法和分組密碼算法。當前,流密碼只有少數標準算法,如RC-4、GSM用的A5、第3代移動通信用的Kasumi算法等;分組密碼算法已制定出多種標準,如DES、3DES、EDE-3DES、IDEA、RC-5、AES等。
雙鑰密碼算法有基于大整數分解的如RSA算法、基于有限域上離散對數的如ElGamal算法、基于橢圓曲線上離散對數的ECC算法、基于計算復雜性理論中背包問題的背包密碼算法、基于糾錯碼理論的McElice算法、基于有限自動機理論的FA算法、基于二次剩余理論的Rabin算法、基于數論中Lucas序列的LUC算法。此外還有概率加密算法、秘密分享密碼算法、各種基于零知識證明的身份識別算法以及滿足各種特殊要求的數字簽字算法。
除此以外,擬隨機數生成算法、用于壓縮消息的安全雜湊算法等也都屬于密碼算法。
3、密鑰管理
密鑰管理處理密鑰自產生到最終銷毀的整個過程,包括系統的初始化,密鑰的產生、存儲、備份/恢復、裝入、分配、保護、更新、控制、丟失、吊銷和銷毀等內容。密鑰管理的目的是維持系統中各實體之間的密鑰關系,以抗擊各種可能的威脅,如:秘鑰的泄漏;秘鑰或公開鑰的確定性的喪失,確定性包括共享或有關于一個密鑰的實體身份的知識或可證實性;秘鑰或公開鑰未經授權使用(使用失效的密鑰或違例使用密鑰)。
密鑰管理比設計安全的密碼算法和協議更加困難,維護成本也很高,其中密鑰分配和存儲是最棘手的問題。密鑰管理要借助于加密、認證、簽字、協議、公證等技術。密鑰管理系統又常常依賴可信賴的第三方參與的公證系統。
4、橢圓曲線密碼(ECC)
橢圓曲線密碼(ECC,Ellipse Curve Code)是公鑰密碼算法的一種,1985年由Koblitz和Miller分別提出,它的理論基礎是橢圓曲線的算術理論。ECC是一種非常復雜的數學算法,人們雖然可以通過對高速通用處理器編程很好地實現ECC,但是由于其算法的復雜性,專門用于實現較完整ECC的專用集成電路(ASIC)芯片還未見到,如何設計出能夠完整實現ECC的ASIC芯片需要探索。
ECC是利用定義在某個有限域上的某橢圓曲線有限群而構造的密碼。常用的有限域有素數域GF(p )和特征2域GF(2m)。ECC是一種多參數密碼。要實現一個ECC算法,必須對所涉及的各個參數及有關的算法做出選擇。ECC算法的實現呈現出一種多樣性特征。這一特征與對稱密碼中的分組密碼算法有著根本不同,與非對稱密碼算法中的RSA算法也有所不同。