複製鏈接
請複製以下鏈接發送給好友

橢圓曲線加密法

鎖定
橢圓曲線加密法(ECC)是一種公鑰加密技術,以橢圓曲線理論為基礎,在創建密鑰時可做到更快、更小,並且更有效。ECC 利用橢圓曲線等式的性質來產生密鑰,而不是採用傳統的方法利用大質數的積來產生。
中文名
橢圓曲線加密法
外文名
EllipticCurveCryptography
簡    稱
ECC
類    型
公鑰加密技術
基    礎
橢圓曲線理論

橢圓曲線加密法基本詳情

橢圓曲線加密法ECC(EllipticCurveCryptography)是一種公鑰加密技術,以橢圓曲線理論為基礎,利用有限域上橢圓曲線的點構成的Abel羣離散對數難解性,實現加密、解密和數字簽名,將橢圓曲線中的加法運算與離散對數中的模乘運算相對應,就可以建立基於橢圓曲線的對應密碼體制。橢圓曲線是由下列韋爾斯特拉斯Weierstrass方程所確定的平面曲線:
E:y2+a1xy+a3y=x3+a2x2+a4x+a6
在數學上,對橢圓曲線的性質和功能的研究已經有150年了。但是它們在加密技術上的應用是在1985年由華盛頓大學的Neal Koblitz和IBM的Victor Miller首次提出的。橢圓曲線不是一個橢圓(橢圓形狀),而是由交叉兩個軸線(在一個圖中用來説明點的位置的線)的環線表示。ECC基於一個數組產生的特定種類的方程式的性質,數組是由直線與軸線交叉的點組成的。用曲線上的點乘以一個數可以產生曲線上的另一個點,但是即使你知道原來的數和結果,你也很難找到乘的那個數。基於橢圓曲線的方程式有一個對加密技術來説非常有價值的性質:相對來説,方程式比較容易執行,但是反過來卻非常困難。 [1] 

橢圓曲線加密法詳情特點

橢圓曲線加密算法以其密鑰長度小、安全性能高、整個數字簽名耗時小,使其在智能終端應用中有很大的發展潛力,比如掌上電腦、移動手機等都能有更好的表現。而在網絡中,ECC算法也保證了其協同工作的實時性,使用ECC算法加密敏感性級別較高的數據(如密鑰),速度上能夠滿足大數據量要求,而且安全性高,能很好地保障系統的安全。
由於橢圓曲線密碼體制的安全性只與橢圓曲線的安全性有關,而橢圓曲線安全性是由ECDLP求解的困難性決定的,因此,為了保證ECDLP是難解的,在選取橢圓曲線的時候除了選擇合適的參數(a,b),使得相應的Weierstrass方程滿足非超奇異橢圓曲線的要求外,還要選取合適的有限域GF(q),使得q滿足#E能被一大素數(≥30位的整數)整除,或q本身就是一個大素數。安全的橢圓曲線也就是能抵抗各種已有攻擊算法攻擊的橢圓曲線。
在數學上,對橢圓曲線的性質和功能的研究已經有150年了。但是它們在加密技術上的應用是在1985年由華盛頓大學的NealKoblitz和IBM的VictorMiller首次提出的。橢圓曲線不是一個橢圓(橢圓形狀),而是由交叉兩個軸線(在一個圖中用來説明點的位置的線)的環線表示。ECC基於一個數組產生的特定種類的方程式的性質,數組是由直線與軸線交叉的點組成的。用曲線上的點乘以一個數可以產生曲線上的另一個點,但是即使你知道原來的數和結果,你也很難找到乘的那個數。基於橢圓曲線的方程式有一個對加密技術來説非常有價值的性質:相對來説,方程式比較容易執行,但是反過來卻非常困難。
工業上對橢圓曲線的使用還是有些保留。NigelSmart,惠普的研究員,發現了橢圓曲線的一個弱點,那就是一些曲線是極易受到攻擊的。但是,Certicom公司的PhilipDeck説,雖然有一些曲線易受攻擊,但那些正在使用ECC的人得知道哪些曲線是不能用的。他相信ECC作為一個技術可以提供一個獨一無二的潛能,那就是它可以在世界範圍內和所有設備中實現。依照Deck,“你要達到這個目的的唯一方法就是橢圓曲線。”

橢圓曲線加密法應用

基於橢圓曲線密碼體制的網絡身份認證系統
由於網絡具有信息量大的特點,其主要威脅來自於非授權用户的非法訪問,因此它對數據完整性的要求很高,需要最快的速度提供最高的安全性,保證信息的機密性、完整性和有效性。網絡身份認證是依靠用户賬號、口令或者生物特徵等信息來實現的,這些認證方法在某種程度上存在着安全隱患,如賬號、口令或指紋特徵信息在存儲、傳輸過程中可能被截取、被篡改等。在身份認證系統中,起關鍵作用的是其中的加密體系。本文設計的身份認證系統中,用户首先要通過認證模塊進行註冊,註冊成功後,獲得經過系統認證中心CA簽名的公鑰和私鑰。用户公鑰和CA的公鑰都是公開信息,用户的私鑰只有用户本人知道,由用户自己保存。
1.系統的總體結構
假設通信的是A與B雙方,A與B處在同一個網絡中,文本加解密採用對稱算法AES,而密鑰的傳輸與簽名驗籤都採用非對稱算法ECC.系統由服務器和客户端兩部分組成,如圖2所示,服務器端包括代理服務器認證服務器、應用服務器;客户端包括代理客户端、認證客户端。代理客户端和代理服務器共同完成代理功能,認證客户端和認證服務器共同完成身份認證功能。
系統模型主要工作流程如下:
(1)將用户信息存放在系統數據庫中;(2)客户端應用程序通過客户端代理向認證模塊請求申請登錄認證;(3)認證模塊檢查用户身份並完成認證過程,向客户端發放應用服務器的Ticket;(4)客户端向安全代理服務器請求獲取訪問策略數據;(5)安全代理服務器讀取訪問控制表中對應的策略控制記錄,確定用户是否有權限訪問相應的應用服務器資源;(6)確定用户有權訪問後,連接到相應的應用服務器;(7)客户端與應用服務器間建立起了一條加密通道,雙方通過此通道來交換數據。
2.系統功能模塊及實現
(1)認證模塊。認證模塊主要實現身份認證、密鑰分發等功能,採用基於公鑰密碼體制的改進Kerberos認證協議來對用户進行身份認證,是模型的核心部分。
認證模塊由認證客户端模塊、認證服務器端模塊組成。當客户端代理接到來自客户端的任意請求時,先判斷是否為客户端代理啓動後接收到的第一個請求,如果是,則客户端代理必須先去認證服務器進行身份認證。
①認證客户端。認證客户端主要包括六個模塊,分別為:AS請求模塊、TGS請求模塊、GSSAPI接口模塊、KerberosGSSAPI模塊、票據列出模塊、票據銷燬模塊。
AS請求模塊主要功能是用户獲取TGS的票據TGT.當用户進行身份認證時,AS請求模塊被調用,從AS服務器中獲取TGT.AS請求模塊包括獲取Ticket模塊和報錯子模塊。通過調用ECC加密模塊,對每條信息進行必要的安全處理;TGS請求模塊主要用於獲得應用服務器的票據。在調用TGS請求之前,客户端必須己經得到TGT,以便用TGT向TG服務器證明自己的身份。GSSAPI接口模塊用於實現與客户端代理的接口,客户端代理調用GSSAPI接口模塊來進行身份認證;KerberosGSSAPI模塊被GSSAPI接口模塊調用,真正實現建立安全上下文,報文保護級別協商以及對每條報文的保護。通過調用KerberosGSSAPI模塊,用户獲得與代理服務器進行加密通信的會話密鑰。票據列出模塊用於列出保留在緩存中的主要實體名和當前所有活動票據的內容。票據銷燬模塊用於銷燬所有的票據,以防止他人竊取票據,當用户斷開與服務器的連接時,系統會調用該模塊來銷燬用户的票據。②認證服務器。認證服務器模塊主要包括KDC模塊、GSSAPI接口模塊KerberosGSSAPI模塊以及其他輔助模塊。
KDC模塊主要完成用户身份認證和票據分發等功能,包括AS請求處理子模塊和TGS請求處理子模塊。它與認證客户端的AS請求模塊和TGS請求模塊一起工作,來完成身份認證和票據分發功能;GSSAPI接口模塊用於實現與代理服務器的接口,代理服務器調用GSSAPI接口模塊來進行身份認證,而GSSAPI接口模塊則調用KerberosGSSAPI,用於真正實現建立安全上下文,報文保護級別協商以及對每條報文的保護。
(2)代理模塊。代理模塊在模型中主要實現客户端應用程序通過代理客户端、代理服務器訪問應用服務器的功能,通過採用Socks5協議實現。
代理模塊分別在客户端和應用服務器端加載一個代理軟件。客户端代理接受客户端的所有請求,經處理後轉發給服務器端代理。客户端代理首先與代理服務器建立一個TCP連接,通常SOCKS端口為1080,通過安全隧道,代理服務器認證並接受所有來自客户端軟件的通信。若身份得以認證,則安全服務器將請求遞交應用服務器,處理請求後並將結果返回安全服務器,安全服務器將此結果返回給客户端。
安全代理服務器在確認客户端連接請求有效後接管連接,代為嚮應用服務器發出連接請求,安全代理服務器應根據應用服務器的應答,決定如何響應客户端請求,代理服務進程應當連接兩個連接,客户端與代理服務進程間的連接、代理服務進程與應用服務器端的連接。為確認連接的唯一性與時效性,代理進程應當維護代理連接表或相關數據庫。安全代理服務器為所有網絡通信提供了一個安全隧道,在建立通道的過程中,存在用户認證的過程。用户經過認證和原始協議請求,通過GSSAPI建立的安全隧道傳送。
3)加密模塊。加密模塊在系統中主要完成對數據的加解密處理,通過調用橢圓曲線加密算法具體實現。模型中採用ECIES加解密方案,具體實現過程採用borZoi算法庫。borZoi是個免費的C++橢圓曲線加密庫,含有完整的源代碼,提供了定義在特徵值為2的有限域上的算法,提供了加密模塊
參考資料