橢圓曲線加密法

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

基本介紹

  • 中文名:橢圓曲線加密法
  • 外文名:EllipticCurveCryptography
  • 簡稱:ECC
  • 類型:公鑰加密技術
  • 基礎:橢圓曲線理論
概述,特點,套用,

概述

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

特點

橢圓曲線加密算法以其密鑰長度小、安全性能高、整個數字簽名耗時小,使其在智慧型終端套用中有很大的發展潛力,比如掌上電腦、移動手機等都能有更好的表現。而在網路中,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的有限域上的算法,提供了加密模組

相關詞條

熱門詞條

聯絡我們