橢圓曲線密碼體制來源於對橢圓曲線的研究,所謂橢圓曲線指的是由韋爾斯特拉斯(Weierstrass)方程:
y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
所確定的平面曲線。其中系數ai(I=1,2,…,6)定義在某個域上,可以是有理數域、實數域、復數域,還可以是有限域GF(pr),橢圓曲線密碼體制中用到的橢圓曲線都是定義在有限域上的。
橢圓曲線上所有的點外加一個叫做無窮遠點的特殊點構成的集合連同一個定義的加法運算構成一個Abel群。在等式
mP=P+P+…+P=Q (2)
中,已知m和點P求點Q比較容易,反之已知點Q和點P求m卻是相當困難的,這個問題稱為橢圓曲線上點群的離散對數問題。橢圓曲線密碼體制正是利用這個困難問題設計而來。橢圓曲線應用到密碼學上最早是由Neal Koblitz 和Victor Miller在1985年分別獨立提出的。
橢圓曲線密碼體制是目前已知的公鑰體制中,對每比特所提供加密強度最高的一種體制。解橢圓曲線上的離散對數問題的最好演算法是Pollard rho方法,其時間復雜度為,是完全指數階的。其中n為等式(2)中m的二進製表示的位數。當n=234, 約為2117,需要1.6x1023 MIPS 年的時間。而我們熟知的RSA所利用的是大整數分解的困難問題,目前對於一般情況下的因數分解的最好演算法的時間復雜度是子指數階的,當n=2048時,需要2x1020MIPS年的時間。也就是說當RSA的密鑰使用2048位時,ECC的密鑰使用234位所獲得的安全強度還高出許多。它們之間的密鑰長度卻相差達9倍,當ECC的密鑰更大時它們之間差距將更大。更ECC密鑰短的優點是非常明顯的,隨加密強度的提高,密鑰長度變化不大。
德國、日本、法國、美國、加拿大等國的很多密碼學研究小組及一些公司實現了橢圓曲線密碼體制,我國也有一些密碼學者
做了這方面的工作。許多標准化組織已經或正在制定關於橢圓曲線的標准,同時也有許多的廠商已經或正在開發基於橢圓曲線的產品。對於橢圓曲線密碼的研究也是方興未艾,從ASIACRYPTO』98上專門開辟了ECC的欄目可見一斑。
在橢圓曲線密碼體制的標准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它們所開發的橢圓曲線標準的文檔有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。
2003年5月12日中國頒布的無線區域網國家標准 GB15629.11 中,包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全機制,能為用戶的WLAN系統提供全面的安全保護。這種安全機制由 WAI和WPI兩部分組成,分別實現對用戶身份的鑒別和對傳輸的數據加密。WAI採用公開密鑰密碼體制,利用證書來對WLAN系統中的用戶和AP進行認證。證書裡麵包含有證書頒發者(ASU)的公鑰和簽名以及證書持有者的公鑰和簽名,這里的簽名採用的就是橢圓曲線ECC演算法。
加拿大Certicom公司是國際上最著名的ECC密碼技術公司,已授權300多家企業使用ECC密碼技術,包括Cisco 系統有限公司、摩托羅拉、Palm等企業。Microsoft將Certicom公司的VPN嵌入微軟視窗移動2003系統中。
以下資料摘自:http://www.hids.com.cn/data.asp
『貳』 密碼中的數學
密碼是一種用來混淆的技術,它希望將正常的(可識別的)信息轉變為無法識別的信息。當然,對一小部分人來說,這種無法識別的信息是可以再加工並恢復的。密碼在中文裡是「口令」的通稱。登錄網站、電子郵箱和銀行取款時輸入的「密碼」其實嚴格來講應該僅被稱作「口令」,因為它不是本來意義上的「加密代碼」,但是也可以稱為秘密的號碼。主要限定於個別人理解(如一則電文)的符號系統。如密碼電報、密碼式打字機。
「加密代碼」的加密與解密都離不開數學的支持,隨著數學的發展,密碼的加密方式以及解密難度也隨之直線上升。
加密方法
RSA演算法
RSA演算法是第一個能同時用於加密和數字簽名的演算法,也易於理解和操作。RSA演算法是一種非對稱密碼演算法,所謂非對稱,就是指該演算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。
RSA的演算法涉及三個參數,n、e1.e2。其中,n是兩個大質數p、q的積,n的二進製表示時所佔用的位數,就是所謂的密鑰長度。e1和e2是一對相關的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質(互質:兩個正整數只有公約數1時,他們的關系叫互質);再選擇e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n及e1),(n及e2)就是密鑰對。
RSA加解密的演算法完全相同,設A為明文,B為密文,則:A=B^e1 mod n;B=A^e2 mod n;
e1和e2可以互換使用,即:A=B^e2 mod n;B=A^e1 mod n
ECC加密法
ECC演算法也是一個能同時用於加密和數字簽名的演算法,也易於理解和操作。同RSA演算法是一樣是非對稱密碼演算法使用其中一個加密,用另一個才能解密。
公開密鑰演算法總是要基於一個數學上的難題。比如RSA 依據的是:給定兩個素數p、q 很容易相乘得到n,而對n進行因式分解卻相對困難。那橢圓曲線上有什麼難題呢?
考慮如下等式 :
K=kG [其中 K,G為Ep(a,b)上的點,k為小於n(n是點G的階)的整數]
不難發現,給定k和G,根據乘法法則,計算K很容易;但給定K和G,求k就相對困難了。這就是橢圓曲線加密演算法採用的難題。我們把點G稱為基點(base point),k(k<n,n為基點G的階)稱為私有密鑰(privte key),K稱為公開密鑰(public key)。
ECC的功能比RSA強。而令人感興趣的是點和點的過程,這也是其功能之來源。
二方密碼
二方密碼比四方密碼用更少的矩陣。得出加密矩陣的方法和四方密碼一樣。
這種加密法的弱點是若兩個字同列,便採用原來的字母,例如he便加密作HE。約有二成的內容都因此而暴露。
四方密碼
四方密碼用4個5×5的矩陣來加密。每個矩陣都有25個字母(通常會取消Q或將I,J視作同一樣,或改進為6×6的矩陣,加入10個數字)。
替換加密法:用一個字元替換另一個字元的加密方法。
換位加密法:重新排列明文中的字母位置的加密法。
回轉輪加密法:一種多碼加密法,它是用多個回轉輪,每個回轉輪實現單碼加密。這些回轉輪可以組合在一起,在每個字母加密後產生一種新的替換模式。
多碼加密法:
一種加密法,其替換形式是:可以用多個字母來替換明文中的一個字母。
夾帶法:通過隱藏消息的存在來隱藏消息的方法。
三分密碼
首先隨意製造一個3個3×3的Polybius方格替代密碼,包括26個英文字母和一個符號。然後寫出要加密的訊息的三維坐標。訊息和坐標四個一列排起,再順序取橫行的數字,三個一組分開,將這三個數字當成坐標,找出對應的字母,便得到密文。
仿射密碼
仿射密碼是一種替換密碼。它是一個字母對一個字母的。它的加密函數是e(x)=ax+b(mod m),其中 a和m互質。m是字母的數目。
解碼函數是d(x)=a^(x-b)(mod m),其中a^是a在M群的乘法逆元。
波雷費密碼
希爾密碼
維熱納爾方陣
著名的維熱納爾方陣由密碼學家維熱納爾編制,大體與凱撒加密法類似。即二人相約好一個密鑰(單詞),然後把加密後內容給對方,之後對方即可按密碼表譯出明文。密鑰一般為一個單詞,加密時依次按照密鑰的每個字母對照明碼行加密。
由維熱納爾方陣加密的密碼,在沒有密鑰的情況下給破譯帶來了不小的困難。維熱納爾方陣很完美的避開了概率演算法(按每個語種中每個字母出現的概率推算。例如英語中最多的是e),使當時的密碼破譯師必須重新找到新方法破譯。
埃特巴什碼
埃特巴什碼是一個系統:最後一個字母代表第一個字母,倒數第二個字母代表第二個字母。
柵欄加密法
柵欄加密法是一種比較簡單快捷的加密方法。柵欄加密法就是把要被加密的文件按照一上一下的寫法寫出來,再把第二行的文字排列到第一行的後面。相應的破譯方法就是把文字從中間分開,分成2行,然後插入。柵欄加密法一般配合其他方法進行加密。
針孔加密法
這種加密法誕生於近代。由於當時郵費很貴,但是寄送報紙則花費很少。於是人們便在報紙上用針在需要的字下面刺一個孔,等到寄到收信人手裡,收信人再把刺有孔的文字依次排列,連成文章。人們已經很少使用這種加密了。
豬圈加密法
在18世紀時,Freemasons為了使讓其他的人看不懂他所寫而發明的,豬圈密碼屬於替換密碼流,但它不是用一個字母替代另一個字母,而是用一個符號來代替一個字母, 把26個字母寫進下四個表格中,然後加密時用這個字母所挨著表格的那部分來代替。
對稱加密演算法
DES:數據加密標准,速度較快,適用於加密大量數據的場合(塊加密法);
3DES:是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高(塊加密法);
RC2和 RC4:用變長密鑰對大量數據進行加密,比 DES 快(流加密法);
IDEA國際數據加密演算法,使用 128 位密鑰提供非常強的安全性(塊加密法);
AES:高級加密標准,是下一代的加密演算法標准,速度快,安全級別高, AES 標準的一個實現是 Rijndael 演算法(塊加密法);
BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快,而經過改進後就是TWOFISH,AES的候選者之一(塊加密法)。
『叄』 橢圓曲線密碼學的一些具體的內容
⑴ 無窮遠元素(無窮遠點,無窮遠直線)
平面上任意兩相異直線的位置關系有相交和平行兩種。引入無窮遠點,是兩種不同關系統一。
AB⊥L1, L2∥L1,直線AP由AB起繞A點依逆時針方向轉動,P為AP與L1的交點。
Q=∠BAP→p /2 AP → L2
可設想L1上有一點P∞,它為L2和L1的交點,稱之為無窮遠點。
直線L1上的無窮遠點只能有一個。
(因為過A點只能有一條平行於L1的直線L2,而兩直線的交點只能有一個。)
結論:
1*. 平面上一組相互平行的直線,有公共的無窮遠點。
(為與無窮遠點相區別,把原來平面上的點叫做平常點)
2*.平面上任何相交的兩直線L1,L2有不同的無窮遠點。
原因:若否,則L1和L2有公共的無窮遠點P∞,則過兩相異點A和P ∞有相異兩直線,與公理相矛盾。
3*. 全體無窮遠點構成一條無窮遠直線。
註:歐式平面添加上無窮遠點和無窮遠直線,自然構成射影平面。
⑵ 齊次坐標
解析幾何中引入坐標系,用代數的方法研究歐氏空
間。這樣的坐標法也可推廣至攝影平面上,建立平面攝影
坐標系。
牋 L1,L2
L1: a1x+b1y+c1=0
L2: a2x+b2y+c2=0
其中a1,b1不同時為0;a2,b2也不同時為0。
設
D= a1 b1 Dx= b1 c1 Dy= c1 a1
a2 b2 b2 c2 c2 a2
若D≠0,則兩直線L1,L2相交於一平常點P(x,y),其坐標為x=Dx/D,y=Dy/D.
這組解可表為:x/Dx=y/Dy=1/D
(約定:分母Dx,Dy有為0時,對應的分子也要為0)
上述表示可抽象為(Dx,Dy,D).
若 D=0,則L1∥L2,此時L1和L2交於一個無窮遠點P∞。
這個點P∞可用過原點O且平行於L2的一條直線L來指出他
的方向,而這條直線L的方程就是:a2x+b2y=0.
為把平常點和無窮遠點的坐標統一起來,把點的坐標用
(X,Y,Z)表示,X,Y,Z不能同時為0,且對平常點
(x,y)來說,有Z≠0,x=X/Z,y=Y/Z,於是有:
i.e.
X / Dx = Y / Dy = Z / D,
有更好的坐標抽象,X,Y,Z),這樣對於無窮遠點則有Z=0,
也成立。
註:
a).若實數p≠0,則(pX,pY,pZ)與(X,Y,Z)表示同一個點。實質上用(X:Y:Z)表示。3個分量中,只有兩個是獨立的,</pre>
<pre>;具有這種特徵的坐標就叫齊次坐標。
b).設有歐氏直線L,它在平面直角坐標系Oxy上的方程為:
ax+by+c=0
則L上任一平常點(x,y)的齊次坐標為(X,Y,Z),Z≠0,代入得:
aX+bY+cZ=0
給L添加的無窮遠點的坐標(X,Y,Z)應滿足aX+bY=0,Z=0;平面上無窮遠直線方程自然為:Z=0 !!
⑶任意域上的橢圓曲線
K為域,K上的攝影平面P2(K)是一些等價類的集合{(X:Y:Z)}。考慮下面的Weierstrass方程(次數為3的齊次方程):
Y2Z+a1XYZ+a3YZ2=X3+a2X2z+a4XZ2+a6Z3
(其中系數ai∈K,或ai∈K為K的代數閉域)
Weierstrass方程被稱為光滑的或非奇異的是指對所有適合
以下方程的射影點P=(X:Y:Z) ∈ P2(K)來說,
F(X,Y,Z)=Y2Z+a1XYZ+a3YZ2-X3-a2X2Z-a4XZ2-a6Z3=0
在P點的三個偏導數 之中至少有一個不為
0若否稱這個方程為奇異的。
橢圓曲線E的定義:
橢圓曲線E是一個光滑的Weierstrass方程在P2(K)中的
全部解集合。
Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3
註:
a) 在橢圓曲線E上恰有一個點,稱之為無窮遠點。即(0:1:0)用θ表示。
b) 可用非齊次坐標的形式來表示橢圓曲線的Weierstrass方程:
設 x=X/Z,y=Y/Z,於是原方程轉化為:
y2+a1xy+a3y=x3+a2x2+a4x+a6 ⑴
此時,橢圓曲線E就是方程⑴在射影平面P2(K)上的全部平常點解,外加一個無窮遠點θ組成的集合。
c) 若a1,a2,a2,a4,a6∈K,此時橢圓曲線E被稱為定義在K上,用E/K表示。如果E能被限定在K上,那麼E的K--</pre>
<pre>;有理點集合表示為E(K),它為E中的全體有理坐標點的集合外加無窮遠點θ.
⑷實域R上的橢圓曲線
設K=R,此時的橢圓曲線可表為平面上的通常曲線上
的點,外加無窮遠點θ。
實域R上橢圓曲線的點的加法運演算法則:
設L ∈ P2(R)為一條直線。因為E的方程是三次的,所以L可與E在P2(R)恰有三個交點,記為P,Q,R
(注意:如果L與E相切,那麼P,Q,R可以不是相異的)。按下述方式定義E上運算⊙:
設P,Q ∈ E,L為聯接P,Q的直線(若P=Q,則L取過P點的切線);設R為L與E的另一個交點;
再取連接R與無窮遠點的直線L′。則L′與E的另一個交點定義為P ⊙Q。
上頁的實際圖像為橢圓曲線y2=x3 - x的一般化。來自對具體曲線的抽象。對運算更具體一些:
設 P=(x1,y1),Q=(x2,y2),P⊙Q=(x3,y3),
由P Q的定義,設y=αx+β為通過P,Q兩點直線L的方程,可算出:
α=(y2-y1)/(x2-x1),β=y1-αx1
易見,直線L上的一個點(x,αx+β)是在橢圓曲線E上,
當且僅當(αx+β)2= x3 - x。
P⊙Q=(x1,y1) (x2,y2)=(x3,y3) =(x3,-(αx3+β))
其中,x3= α2-x1-x2=((y2-y1) / (x2-x1))2-x1-x2;
y3=-y1+((y2-y1)/(x2-x1))(x1-x3)
當P=Q時:P⊙Q=(x3,y3)算得:
x3=((3x12-1)/2y1)2-2x1; y3= -y1+((3x12-1)/2y1)(x1-x3)
註:
a) 如果直線L與E相交與三點P,Q,R(不一定相異),那麼 (P⊙Q)R=θ(從圖中可見)。
b) 任給P∈E,P⊙θ =P (此時設Q= θ ,易見L=L′)
c) 任給P,Q∈E有:P⊙Q =Q⊙P
d) 設P∈E,那麼可以找到 - P∈E使P -P= θ
e) 任給P,Q,R∈E,有(P⊙Q)⊙R= P⊙(Q⊙R)
綜上所述,知E對 運算形成一個Abel群。
f) 上述規則可開拓到任意域上,特別是有限域上。假定
橢圓曲線是定義在有限域Fq上(q=pm),那麼
E(Fq)={(x,y)∈Fq×Fq | y2+a1xy+a3y=x3+a2x2+a4x+a6} ∪{θ}
它對? 斝緯梢桓鋈海?獮bel群。 令Fq表示q個元素的有限域,用E(Fq)表示定義在Fq上
的一個橢圓曲線E。
定理1.(Hass定理) E(Fq)的點數用#E(Fq)表示,則
| #E(Fq)-q-1|≤2q1/2
⑴ Fp(素域,p為素數)上橢圓曲線
牋 p>3 a,b Fp 4a3+27b2 0 a b
義的Fp上的一個橢圓曲線方程為:
y2=x3+ax+b ⑵
它的所有解(x,y),(x Fp,y Fp),連同一個稱為撐耷鈐?
點敚?俏?齲┑腦?刈槌傻募?霞俏狤(Fp),由Hass定理
知:p+1-2p1/2≤#E(Fp) ≤ p+1+2p1/2
集合E(Fp)對應下面的加法規則,且對加法 形成
一個Abel群:
(i) θ⊙ θ=θ (單位元素)
(ii) (x,y)⊙ θ=(x,y),任給(x,y) ∈E(Fp)
(iii) (x,y)⊙ (x,-y)=θ,任給(x,y) ∈E(Fp),即點(x,y)的逆元
為(x,-y).
(iv) 令(x1,y1),(x2,y2)為E(Fp)中非互逆元,則
(x1,y1)⊙ (x2,y2)=(x3,y3),其中
x3=α2-2x1,y3= α(x1-x3)-y1
且α=(y2-y1)/(x2-x1) ⑶
(v)(倍點運算規則)
設(x1,y1) ∈E(Fp),y1≠0,則2(x1,y1)=(x3,y3),其中
x3= α2-2x1,y3=α(x1-x3)-y1
這里α=(3x12+a)/(2y1) ⑷
註:若#E(Fp)=p+1,曲線E(Fp)稱為超奇異的,否則稱為
非超奇異的。
例子:F23上的一個橢圓曲線
令y2=x3+x+1是F23上的一個方程(a=b=1),則該橢圓曲
線方程在F23上的解為(y2=x3+x+1的點):
(0,1),(0,22),(1,7),(1,16),(3,10),(3,13),(4,0),(5,4),(5,19),(6,4),</pre>
<pre>;(6,19),(7,11),(7,12),(9,7),(9,16),(11,3),(11,20),(12,4),(12,19),(13,7),</pre>
<pre>;(13,16),(17,3),(17,20),(18,3),(18,20),(19,5),(19,18);θ。
群E(F23)有28個點(包括無窮遠點θ)。
2) F2m上的橢圓曲線
F2m上由參數a,b∈F2m,b≠0定義的一個非超奇異橢
圓曲線E(F2m)是方程
y2+xy=x3+ax2+b ⑸
的解集合(x,y),其中x,y∈F2m,連同θ。
E(F2m)的加法規則如下:
(i) θ +θ= θ
(ii) 任給(x,y) ∈E(F2m),則(x,y)⊙ θ=(x,y)
(iii) 任給(x,y) ∈E(F2m),則(x,y)+(x,x+y)= θ,
即點(x,y)的逆為(x,x+y).
(iv) 兩個相異且不互逆的點的加法規則:
令(x1,y1),(x2,y2) ∈E(F2m)且有x1≠x2則
(x1,y1) (x2,y2)=(x3,y3),其中
x3=α2+α+x1+x2+a;
y3=α(x1+x3)+x3+y1.
其中 α= (y2+y1)/(x2+x1)
(v) 倍點規則
令(x1,y1) ∈E(F2m),其中x1≠0。則
2(x1,y1)=(x3,y3),其中
x3= α 2+ α +a,y3=x12+(α +1)x3,這里α =(x1+y1/x1)
易見,群E(F2m)為Abel群。
例:F24上的一個橢圓曲線
f(x)=x4+x+1為F2上的一個不可約多項式,易見
F24=F2[x] / (f(x)) = {(k0,k1,k2,k3) | (k0,k1,k2,k3)=k0+k1α+k2α2+k3α3, </pre>
<pre>;α為f(x)的零點,ki∈F2}
假定F24上的非超奇異橢圓曲線有下述方程定義:
y2+xy=x3+α4x2+1,注意f(α)=0。
方程應表為:
(1000)y2 + (1000)xy = (1000)x3 + (1100)x2 +(1000) 1985年,N. Koblitz和V. Miller分別獨立提出了橢圓曲線密碼體制(ECC),</pre>
<pre>;其依據就是定義在橢圓曲線點群上的離散對數問題的難解性。
⑴知E(Fq)對點的?斣慫閾緯梢桓鯝bel群
設p∈E(Fq),若p的周期很大,即使
p⊙p⊙ …… ⊙p= θ (共有 t個p相加)
成立的最小正整數 t,希望 t 很大。
(t = p的周期,表示為∏(p)=t)。
並且對Q∈E(Fq),定有某個正整數m使
Q=m·p=p⊙ …… ⊙p (共有t個p相加)
定義
m=㏒pQ (m為以p為底Q的對數)。
橢圓曲線上的點形成的群E(Fq),相關它的離散對數
問題是難處理的。 選取基域Fq,Fq的橢圓曲線具體給定為確定的形式。
在E(Fq)中選一個周期很大的點,如選了一個點P=(xp,yp),
它的周期為一個大的素數n,記∏ (P)=n(素數)。
注意:在這個密碼體制中,具體的曲線及點P和它的n都
是公開信息。密碼體制的形式採用EIGamal體制,是完全
類比過來。
a)密鑰的生成
Bob(使用者)執行了下列計算:
i) 在區間[1,n-1]中隨機選取一個整數d。
ii) 計算點Q:=dP (d個P相)
iii) Bob公開自己的公開密鑰-- (E(Fq),p,n,Q)
iv) Bob的私鑰為整數d!
Alice要發送消息m給Bob,Alice執行:
i) 查找Bob的公鑰(E(Fq),p,n,Q),
ii) 將m表示成一個域元素m∈Fq,
iii) 在區間[1,n-1]內選取一個隨機數k,
iv) 依據Bob的公鑰計算點 (x1,y1):=kP(k個P相)
v) 計算點(x2,y2):=kQ,如果x2=0,則回到第iii)步
Ⅵ) 計算C:=m·x2
Ⅶ) 傳送加密數據(x1,y1,C)給Bob
b) Bob的解密過程
Bob收到Alice的密文(x1,y1,C)後,執行
i) 使用私鑰d,計算點(x2,y2):=d(x1,y1),再計算Fq中x2-1=
通過計算m:=C·x2-1,恢復出明文數據
『肆』 橢圓曲線演算法的加密演算法
在橢圓曲線加密(ECC)中,利用了某種特殊形式的橢圓曲線,即定義在有限域上的橢圓曲線。其方程如下:
y²=x³+ax+b(mod p)
這里p是素數,a和b為兩個小於p的非負整數,它們滿足:
4a³+27b²(mod p)≠0 其中,x,y,a,b ∈Fp,則滿足式(2)的點(x,y)和一個無窮點O就組成了橢圓曲線E。
橢圓曲線離散對數問題ECDLP定義如下:給定素數p和橢圓曲線E,對 Q=kP,在已知P,Q的情況下求出小於p的正整數k。可以證明,已知k和P計算Q比較容易,而由Q和P計算k則比較困難,至今沒有有效的方法來解決這個問題,這就是橢圓曲線加密演算法原理之所在。
『伍』 三個應用於公鑰密碼體制的數學難題是什麼
1:大數因子分解難解性
2:離散對數難解性
3:橢圓曲線離散對數難解性
望樓主出納O(∩_∩)O謝謝
『陸』 ECC橢圓曲線密碼應用
1背景簡介
隨著通訊網路特別是Internet的高速發展,利用網路作為信息交流和信息處理變得越來越普遍,社會的傳統事務和業務運作模式受到前所未有的沖擊。目前,無論是國家政府還是企業都正融入這場網路革命中,從其原來的傳統經營模式向網路模式演化。未來的電子政務、電子商務、電子業務將成為不可逆轉的發展趨勢。在與日俱增的網路活動中,人們越來越關心信息安全這個問題。這集中體現在:
(1)網路的身份認證——確認網路客戶的真實身份
(2)信息和數據的保密性——個人或系統機密信息和數據保護
(3)信息和數據完整性——防止不合法的數據修改
(4)不可抵賴性——網路環境下行為的事後的不可抵賴(數字簽名)
信息安全中最核心的技術是密碼技術,基本上可分為序列密碼、對稱密碼(又稱分組密碼)、非對稱密碼(又稱公鑰密碼)三種。
非對稱密碼演算法是支撐解決以上所涉的四個關鍵方面的問題的核心。目前越來越流行的是基於PKI體系模型的解決方案。在PKI體系模型中,客戶端需要一較好的個人信息安全載體,智能卡或智能密碼鑰匙將是一較理想的方式,都必須支持公鑰演算法,而ECC是最適合使用在這一資源受限制的客戶端產品中。
2 橢圓曲線密碼演算法ECC
自公鑰密碼問世以來,學者們提出了許多種公鑰加密方法,它們的安全性都是基於復雜的數學難題。根據所基於的數學難題來分類,有以下三類系統目前被認為是安全和有效的:
(1)大整數因子分解系統(代表性的有RSA),
(2)有限域(數學中的一種代數結構)離散對數系統(代表性的有DSA),
(3)有限域橢園曲線離散對數系統(ECC)。
當前最著名、應用最廣泛的公鑰系統RSA是由Rivet、Shamir、Adelman提出 的(簡稱為RSA系統),它的安全性是基於大整數素因子分解的困難性,而大整數因子分解問題是數學上的著名難題,至今沒有有效的方法予以解決,因此可以確保RSA演算法的安全性。RSA系統是公鑰系統的最具有典型意義的方法,大多數使用公鑰密碼進行加密和數字簽名的產品和標准使用的都是RSA演算法。RSA方法的優點主要在於原理簡單,易於使用。但是,隨著分解大整數方法的進步及完善、計算機速度的提高以及計算機網路的發展(可以使用成千上萬台機器同時進行大整數分解),作為RSA加解密安全保障的大整數要求越來越大。為了保證RSA使用的安全性,其密鑰的位數一直在增加,比如,目前一般認為RSA需要1024位以上的字長才有安全保障。
但是,密鑰長度的增加導致了其加解密的速度大為降低,硬體實現也變得越來越難以忍受,這對使用RSA的應用帶來了很重的負擔,對進行大量安全交易的電子商務更是如此,從而使得其應用范圍越來越受到制約。DSA(Data Signature Algorithm)是基於有限域離散對數問題的數字簽名標准,它僅提供數字簽名,不提供數據加密功能。安全性更高、演算法實現性能更好的公鑰系統橢圓曲線加密演算法ECC(Elliptic Curve Cryptography)基於有限域上橢圓曲線的離散對數計算困難性。人類研究橢圓曲線已有百年以上的歷史,但真正把其應用到密碼學中是1985年由Koblitz(美國華盛頓大學)和Miller(IBM公司) 兩人提出。定義在有限域(Fp 或F(2m))的橢圓曲線(y2=x3+ax+b)上的點(x,y),再加上無窮點O,如按一定的規則運算(估且稱為乘法)將組成一個群(數學中的一種代數結構)。有限域上橢圓曲線乘法群也有相對應的離散對數計算困難性問題。因此,許多公開密碼系統都是基於此問題發展出來的,如類似ELGamal,DSA等密碼系統的ECES,ECDSA。
3 橢圓曲線加密演算法ECC的優點
橢圓曲線加密演算法ECC與RSA方法相比有著很多技術優點:
●安全性能更高
加密演算法的安全性能一般通過該演算法的抗攻擊強度來反映。ECC和其他幾種公鑰系統相比,其抗攻擊性具有絕對的優勢。橢圓曲線的離散對數計算困難性(ECDLP)在計算復雜度上目前是完全指數級,而RSA 亞指數級的。這體現ECC比RSA的每bit安全性能更高。
●計算量小和處理速度快
在一定的相同的計算資源條件下,雖然在RSA中可以通過選取較小的公鑰(可以小到3)的方法提高公鑰處理速度,即提高加密和簽名驗證的速度,使其在加密和簽名驗證速度上與ECC有可比性,但在私鑰的處理速度上(解密和簽名),ECC遠比RSA、DSA快得多。因此ECC總的速度比RSA、DSA要快得多。同時ECC系統的密鑰生成速度比RSA快百倍以上。因此在相同條件下,ECC則有更高的加密性能。
●存儲空間佔用小
ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多。160位 ECC與1024位 RSA、DSA有相同的安全強度。而210位 ECC則與2048bit RSA、DSA具有相同的安全強度。意味著它所佔的存貯空間要小得多。這對於加密演算法在資源受限環境上(如智能卡等)的應用具有特別重要的意義。
●帶寬要求低
當對長消息進行加解密時,三類密碼系統有相同的帶寬要求,但應用於短消息時ECC帶寬要求卻低得多。而公鑰加密系統多用於短消息,例如用於數字簽名和用於對對稱系統的會話密鑰傳遞。帶寬要求低使ECC在無線網路領域具有廣泛的應用前景。
4橢圓曲線加密演算法ECC的相關標准
ECC的這些特點使它在某些領域(如PDA、手機、智能卡)的應用將取代RSA,並成為通用的公鑰加密演算法。許多國際標准化組織(政府、工業界、金融界、商業界等)已將各種橢圓曲線密碼體製作為其標准化文件向全球頒布。ECC標准大體可以分為兩種形式:一類是技術標准,即描述以技術支撐為主的ECC體制,主要有IEEEP1363、ANSI X9.62、ANSI X9.63、SEC1、SEC2、FIP 186-2、ISO/IEC 14888-3。規范了ECC的各種參數的選擇,並給出了各級安全強度下的一組ECC參數。另一類是應用標准,即在具體的應用環境中建議使用ECC技術,主要有ISO/IEC 15946、IETF PKIX、IETF TLS、WAP WTLS等。在標准化的同時,一些基於標准(或草案)的各種橢圓曲線加密、簽名、密鑰交換的軟、硬體也相繼問世。美國RSA數據安全公司在1997年公布了包含ECC的密碼引擎工具包BSAFE 4.0; 以加拿大Certicom為首的安全公司和工業界聯合也研製、生產了以橢圓曲線密碼演算法為核心的密碼產品,還提出了各種安全條件下對橢圓曲線離散對數攻擊的懸賞挑戰。可以相信,ECC技術在信息安全領域中的應用會越來越廣。
『柒』 橢圓加密演算法的公鑰密碼系統的加密演算法ECC與RSA的對比
第六屆國際密碼學會議對應用於公鑰密碼系統的加密演算法推薦了兩種:基於大整數因子分解問題(IFP)的RSA演算法和基於橢圓曲線上離散對數計算問題(ECDLP)的ECC演算法。RSA演算法的特點之一是數學原理簡單、在工程應用中比較易於實現,但它的單位安全強度相對較低。目前用國際上公認的對於RSA演算法最有效的攻擊方法--一般數域篩(NFS)方法去破譯和攻擊RSA演算法,它的破譯或求解難度是亞指數級的。ECC演算法的數學理論非常深奧和復雜,在工程應用中比較難於實現,但它的單位安全強度相對較高。用國際上公認的對於ECC演算法最有效的攻擊方法--Pollard rho方法去破譯和攻擊ECC演算法,它的破譯或求解難度基本上是指數級的。正是由於RSA演算法和ECC演算法這一明顯不同,使得ECC演算法的單位安全強度高於RSA演算法,也就是說,要達到同樣的安全強度,ECC演算法所需的密鑰長度遠比RSA演算法低(見表1和圖1)。這就有效地解決了為了提高安全強度必須增加密鑰長度所帶來的工程實現難度的問題.
『捌』 什麼是橢圓曲線數字簽名演算法
橢圓曲線數字簽名演算法(ECDSA)是使用橢圓曲線密碼(ECC)對數字簽名演算法(DSA)的模擬。ECDSA於1999年成為ANSI標准,並於2000年成為IEEE和NIST標准。它在1998年既已為ISO所接受,並且包含它的其他一些標准亦在ISO的考慮之中。與普通的離散對數問題(discrete logarithm problem DLP)和大數分解問題(integer factorization problem IFP)不同,橢圓曲線離散對數問題(elliptic curve discrete logarithm problem ECDLP)沒有亞指數時間的解決方法。因此橢圓曲線密碼的單位比特強度要高於其他公鑰體制。
數字簽名演算法(DSA)在聯邦信息處理標准FIPS中有詳細論述,稱為數字簽名標准。它的安全性基於素域上的離散對數問題。橢圓曲線密碼(ECC)由Neal Koblitz和Victor Miller於1985年發明。它可以看作是橢圓曲線對先前基於離散對數問題(DLP)的密碼系統的模擬,只是群元素由素域中的元素數換為有限域上的橢圓曲線上的點。橢圓曲線密碼體制的安全性基於橢圓曲線離散對數問題(ECDLP)的難解性。橢圓曲線離散對數問題遠難於離散對數問題,橢圓曲線密碼系統的單位比特強度要遠高於傳統的離散對數系統。因此在使用較短的密鑰的情況下,ECC可以達到於DL系統相同的安全級別。這帶來的好處就是計算參數更小,密鑰更短,運算速度更快,簽名也更加短小。因此橢圓曲線密碼尤其適用於處理能力、存儲空間、帶寬及功耗受限的場合。
ECDSA是橢圓曲線對DSA的模擬。ECDSA首先由Scott和Vanstone在1992年為了響應NIST對數字簽名標准(DSS)的要求而提出。ECDSA於1998年作為ISO標准被採納,在1999年作為ANSI標准被採納,並於2000年成為IEEE和FIPS標准。包含它的其他一些標准亦在ISO的考慮之中。
『玖』 密鑰管理的管理技術
1、對稱密鑰管理。對稱加密是基於共同保守秘密來實現的。採用對稱加密技術的貿易雙方必須要保證採用的是相同的密鑰,要保證彼此密鑰的交換是安全可靠的,同時還要設定防止密鑰泄密和更改密鑰的程序。這樣,對稱密鑰的管理和分發工作將變成一件潛在危險的和繁瑣的過程。通過公開密鑰加密技術實現對稱密鑰的管理使相應的管理變得簡單和更加安全,同時還解決了純對稱密鑰模式中存在的可靠性問題和鑒別問題。 貿易方可以為每次交換的信息(如每次的EDI交換)生成唯一一把對稱密鑰並用公開密鑰對該密鑰進行加密,然後再將加密後的密鑰和用該密鑰加密的信息(如EDI交換)一起發送給相應的貿易方。由於對每次信息交換都對應生成了唯一一把密鑰,因此各貿易方就不再需要對密鑰進行維護和擔心密鑰的泄露或過期。這種方式的另一優點是,即使泄露了一把密鑰也只將影響一筆交易,而不會影響到貿易雙方之間所有的交易關系。這種方式還提供了貿易夥伴間發布對稱密鑰的一種安全途徑。
2、公開密鑰管理/數字證書。貿易夥伴間可以使用數字證書(公開密鑰證書)來交換公開密鑰。國際電信聯盟(ITU)制定的標准X.509,對數字證書進行了定義該標准等同於國際標准化組織(ISO)與國際電工委員會(IEC)聯合發布的ISO/IEC 9594-8:195標准。數字證書通常包含有唯一標識證書所有者(即貿易方)的名稱、唯一標識證書發布者的名稱、證書所有者的公開密鑰、證書發布者的數字簽名、證書的有效期及證書的序列號等。證書發布者一般稱為證書管理機構(CA),它是貿易各方都信賴的機構。數字證書能夠起到標識貿易方的作用,是目前電子商務廣泛採用的技術之一。
3、密鑰管理相關的標准規范。目前國際有關的標准化機構都著手制定關於密鑰管理的技術標准規范。ISO與IEC下屬的信息技術委員會(JTC1)已起草了關於密鑰管理的國際標准規范。該規范主要由三部分組成:一是密鑰管理框架;二是採用對稱技術的機制;三是採用非對稱技術的機制。該規范現已進入到國際標准草案表決階段,並將很快成為正式的國際標准。
數字簽名
數字簽名是公開密鑰加密技術的另一類應用。它的主要方式是:報文的發送方從報文文本中生成一個128位的散列值(或報文摘要)。發送方用自己的專用密鑰對這個散列值進行加密來形成發送方的數字簽名。然後,這個數字簽名將作為報文的附件和報文一起發送給報文的接收方。報文的接收方首先從接收到的原始報文中計算出128位的散列值(或報文摘要),接著再用發送方的公開密鑰來對報文附加的數字簽名進行解密。如果兩個散列值相同,那麼接收方就能確認該數字簽名是發送方的。通過數字簽名能夠實現對原始報文的鑒別和不可抵賴性。
ISO/IEC JTC1已在起草有關的國際標准規范。該標準的初步題目是「信息技術安全技術帶附件的數字簽名方案」,它由概述和基於身份的機制兩部分構成。 密碼學簡介 據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用「恩尼格瑪」密碼機,密碼學在戰爭中起著非常重要的作用。
隨著信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提高,於是在1997年,美國國家標准局公布實施了「美國數據加密標准(DES)」,民間力量開始全面介入密碼學的研究和應用中,採用的加密演算法有DES、RSA、SHA等。隨著對加密強度需求的不斷提高,近期又出現了AES、ECC等。
使用密碼學可以達到以下目的:
保密性:防止用戶的標識或數據被讀取。
數據完整性:防止數據被更改。
身份驗證:確保數據發自特定的一方。
二. 加密演算法介紹根據密鑰類型不同將現代密碼技術分為兩類:對稱加密演算法(秘密鑰匙加密)和非對稱加密演算法(公開密鑰加密)。
對稱鑰匙加密系統是加密和解密均採用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。
非對稱密鑰加密系統採用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。 在對稱加密演算法中,只有一個密鑰用來加密和解密信息,即加密和解密採用相同的密鑰。常用的演算法包括:DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合。
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高;
2000年10月,NIST(美國國家標准和技術協會)宣布通過從15種侯選演算法中選出的一項新的密匙加密標准。Rijndael被選中成為將來的AES。Rijndael是在 1999 年下半年,由研究員Joan Daemen 和 Vincent Rijmen 創建的。AES 正日益成為加密各種形式的電子數據的實際標准。
美國標准與技術研究院 (NIST) 於 2002 年 5 月 26 日制定了新的高級加密標准(AES) 規范。
演算法原理 AES 演算法基於排列和置換運算。排列是對數據重新進行安排,置換是將一個數據單元替換為另一個。AES 使用幾種不同的方法來執行排列和置換運算。
AES 是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192 和 256 位密鑰,並且用 128 位(16位元組)分組加密和解密數據。與公共密鑰密碼使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數據。通過分組密碼返回的加密數據的位數與輸入數據相同。迭代加密使用一個循環結構,在該循環中重復置換和替換輸入數據。
AES與3DES的比較 演算法名稱 演算法類型 密鑰長度 速度 解密時間(建設機器每秒嘗試255個密鑰) 資源消耗 AES 對稱block密碼 128、192、256位 高 1490000億年 低 3DES 對稱feistel密碼 112位或168位 低 46億年 中 常見的非對稱加密演算法如下:
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准);
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
在1976年,由於對稱加密演算法已經不能滿足需要,Diffie 和Hellman發表了一篇叫《密碼學新動向》的文章,介紹了公匙加密的概念,由Rivet、Shamir、Adelman提出了RSA演算法。
隨著分解大整數方法的進步及完善、計算機速度的提高以及計算機網路的發展,為了保障數據的安全,RSA的密鑰需要不斷增加,但是,密鑰長度的增加導致了其加解密的速度大為降低,硬體實現也變得越來越難以忍受,這對使用RSA的應用帶來了很重的負擔,因此需要一種新的演算法來代替RSA。
1985年N.Koblitz和Miller提出將橢圓曲線用於密碼演算法,根據是有限域上的橢圓曲線上的點群中的離散對數問題ECDLP。ECDLP是比因子分解問題更難的問題,它是指數級的難度。
原理——橢圓曲線上的難題 橢圓曲線上離散對數問題ECDLP定義如下:給定素數p和橢圓曲線E,對Q=kP,在已知P,Q 的情況下求出小於p的正整數k。可以證明由k和P計算Q比較容易,而由Q和P計算k則比較困難。
將橢圓曲線中的加法運算與離散對數中的模乘運算相對應,將橢圓曲線中的乘法運算與離散對數中的模冪運算相對應,我們就可以建立基於橢圓曲線的對應的密碼體制。
例如,對應Diffie-Hellman公鑰系統,我們可以通過如下方式在橢圓曲線上予以實現:在E上選取生成元P,要求由P產生的群元素足夠多,通信雙方A和B分別選取a和b,a和b 予以保密,但將aP和bP公開,A和B間通信用的密鑰為abP,這是第三者無法得知的。
對應ELGamal密碼系統可以採用如下的方式在橢圓曲線上予以實現:
將明文m嵌入到E上Pm點,選一點B∈E,每一用戶都選一整數a,0<a<N,N為階數已知,a保密,aB公開。欲向A送m,可送去下面一對數偶:[kB,Pm+k(aAB)],k是隨機產生的整數。A可以從kB求得k(aAB)。通過:Pm+k(aAB)- k(aAB)=Pm恢復Pm。同樣對應DSA,考慮如下等式:
K=kG [其中 K,G為Ep(a,b)上的點,k為小於n(n是點G的階)的整數]
不難發現,給定k和G,根據加法法則,計算K很容易;但給定K和G,求k就相對困難了。
這就是橢圓曲線加密演算法採用的難題。我們把點G稱為基點(base point),k(k<n,n為基點G的階)稱為私有密鑰(privte key),K稱為公開密鑰(public key)。
ECC與RSA的比較 ECC和RSA相比,在許多方面都有對絕對的優勢,主要體現在以下方面:
抗攻擊性強。相同的密鑰長度,其抗攻擊性要強很多倍。
計算量小,處理速度快。ECC總的速度比RSA、DSA要快得多。
存儲空間佔用小。ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多,意味著它所佔的存貯空間要小得多。這對於加密演算法在IC卡上的應用具有特別重要的意義。
帶寬要求低。當對長消息進行加解密時,三類密碼系統有相同的帶寬要求,但應用於短消息時ECC帶寬要求卻低得多。帶寬要求低使ECC在無線網路領域具有廣泛的應用前景。
ECC的這些特點使它必將取代RSA,成為通用的公鑰加密演算法。比如SET協議的制定者已把它作為下一代SET協議中預設的公鑰密碼演算法。
下面兩張表示是RSA和ECC的安全性和速度的比較。 攻破時間(MIPS年) RSA/DSA(密鑰長度) ECC密鑰長度 RSA/ECC密鑰長度比 10 512 106 5:1 10 768 132 6:1 10 1024 160 7:1 10 2048 210 10:1 10 21000 600 35:1 RSA和ECC安全模長得比較 功能 Security Builder 1.2 BSAFE 3.0 163位ECC(ms) 1,023位RSA(ms) 密鑰對生成 3.8 4,708.3 簽名 2.1(ECNRA) 228.4 3.0(ECDSA) 認證 9.9(ECNRA) 12.7 10.7(ECDSA) Diffie—Hellman密鑰交換 7.3 1,654.0 RSA和ECC速度比較 散列演算法也叫哈希演算法,英文是Hash ,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列演算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。
HASH主要用於信息安全領域中加密演算法,它把一些不同長度的信息轉化成雜亂的128位的編碼,這些編碼值叫做HASH值. 也可以說,hash就是找到一種數據內容和數據存放地址之間的映射關系散列是信息的提煉,通常其長度要比信息小得多,且為一個固定長度。加密性強的散列一定是不可逆的,這就意味著通過散列結果,無法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導致散列結果的明顯變化,這稱之為雪崩效應。散列還應該是防沖突的,即找不出具有相同散列結果的兩條信息。具有這些特性的散列結果就可以用於驗證信息是否被修改。
單向散列函數一般用於產生消息摘要,密鑰加密等,常見的有:
MD5(Message Digest Algorithm 5):是RSA數據安全公司開發的一種單向散列演算法。
SHA(Secure Hash Algorithm):可以對任意長度的數據運算生成一個160位的數值;
在1993年,安全散列演算法(SHA)由美國國家標准和技術協會(NIST)提出,並作為聯邦信息處理標准(FIPS PUB 180)公布;1995年又發布了一個修訂版FIPS PUB 180-1,通常稱之為SHA-1。SHA-1是基於MD4演算法的,並且它的設計在很大程度上是模仿MD4的。現在已成為公認的最安全的散列演算法之一,並被廣泛使用。
原理 SHA-1是一種數據加密演算法,該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預映射或信息),並把它們轉化為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。
單向散列函數的安全性在於其產生散列值的操作過程具有較強的單向性。如果在輸入序列中嵌入密碼,那麼任何人在不知道密碼的情況下都不能產生正確的散列值,從而保證了其安全性。SHA將輸入流按照每塊512位(64個位元組)進行分塊,並產生20個位元組的被稱為信息認證代碼或信息摘要的輸出。
該演算法輸入報文的最大長度不超過264位,產生的輸出是一個160位的報文摘要。輸入是按512 位的分組進行處理的。SHA-1是不可逆的、防沖突,並具有良好的雪崩效應。
通過散列演算法可實現數字簽名實現,數字簽名的原理是將要傳送的明文通過一種函數運算(Hash)轉換成報文摘要(不同的明文對應不同的報文摘要),報文摘要加密後與明文一起傳送給接受方,接受方將接受的明文產生新的報文摘要與發送方的發來報文摘要解密比較,比較結果一致表示明文未被改動,如果不一致表示明文已被篡改。
MAC (信息認證代碼)就是一個散列結果,其中部分輸入信息是密碼,只有知道這個密碼的參與者才能再次計算和驗證MAC碼的合法性。MAC的產生參見下圖。 輸入信息 密碼 散列函數 信息認證代碼 SHA-1與MD5的比較 因為二者均由MD4導出,SHA-1和MD5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:
對強行供給的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32 位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對MD5是2數量級的操作,而對SHA-1則是2數量級的操作。這樣,SHA-1對強行攻擊有更大的強度。
對密碼分析的安全性:由於MD5的設計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。
速度:在相同的硬體上,SHA-1的運行速度比MD5慢。 對稱與非對稱演算法比較
以上綜述了兩種加密方法的原理,總體來說主要有下面幾個方面的不同:
一、 在管理方面:公鑰密碼演算法只需要較少的資源就可以實現目的,在密鑰的分配上,兩者之間相差一個指數級別(一個是n一個是n)。所以私鑰密碼演算法不適應廣域網的使用,而且更重要的一點是它不支持數字簽名。
二、 在安全方面:由於公鑰密碼演算法基於未解決的數學難題,在破解上幾乎不可能。對於私鑰密碼演算法,到了AES雖說從理論來說是不可能破解的,但從計算機的發展角度來看。公鑰更具有優越性。
三、 從速度上來看:AES的軟體實現速度已經達到了每秒數兆或數十兆比特。是公鑰的100倍,如果用硬體來實現的話這個比值將擴大到1000倍。
加密演算法的選擇 前面的章節已經介紹了對稱解密演算法和非對稱加密演算法,有很多人疑惑:那我們在實際使用的過程中究竟該使用哪一種比較好呢?
我們應該根據自己的使用特點來確定,由於非對稱加密演算法的運行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的數據時,建議採用對稱加密演算法,提高加解密速度。
對稱加密演算法不能實現簽名,因此簽名只能非對稱演算法。
由於對稱加密演算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數據量很小時,我們可以考慮採用非對稱加密演算法。
在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的密鑰,然後用對稱加密演算法加密數據,這樣我們就集成了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
如果在選定了加密演算法後,那採用多少位的密鑰呢?一般來說,密鑰越長,運行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。
密碼學在現代的應用, 隨著密碼學商業應用的普及,公鑰密碼學受到前所未有的重視。除傳統的密碼應用系統外,PKI系統以公鑰密碼技術為主,提供加密、簽名、認證、密鑰管理、分配等功能。
保密通信:保密通信是密碼學產生的動因。使用公私鑰密碼體制進行保密通信時,信息接收者只有知道對應的密鑰才可以解密該信息。
數字簽名:數字簽名技術可以代替傳統的手寫簽名,而且從安全的角度考慮,數字簽名具有很好的防偽造功能。在政府機關、軍事領域、商業領域有廣泛的應用環境。
秘密共享:秘密共享技術是指將一個秘密信息利用密碼技術分拆成n個稱為共享因子的信息,分發給n個成員,只有k(k≤n)個合法成員的共享因子才可以恢復該秘密信息,其中任何一個或m(m≤k)個成員合作都不知道該秘密信息。利用秘密共享技術可以控制任何需要多個人共同控制的秘密信息、命令等。
認證功能:在公開的信道上進行敏感信息的傳輸,採用簽名技術實現對消息的真實性、完整性進行驗證,通過驗證公鑰證書實現對通信主體的身份驗證。
密鑰管理:密鑰是保密系統中更為脆弱而重要的環節,公鑰密碼體制是解決密鑰管理工作的有力工具;利用公鑰密碼體制進行密鑰協商和產生,保密通信雙方不需要事先共享秘密信息;利用公鑰密碼體制進行密鑰分發、保護、密鑰託管、密鑰恢復等。
基於公鑰密碼體制可以實現以上通用功能以外,還可以設計實現以下的系統:安全電子商務系統、電子現金系統、電子選舉系統、電子招投標系統、電子彩票系統等。
公鑰密碼體制的產生是密碼學由傳統的政府、軍事等應用領域走向商用、民用的基礎,同時互聯網、電子商務的發展為密碼學的發展開辟了更為廣闊的前景。
加密演算法的未來 隨著計算方法的改進,計算機運行速度的加快,網路的發展,越來越多的演算法被破解。
在2004年國際密碼學會議(Crypto』2004)上,來自中國山東大學的王小雲教授做的破譯MD5、HAVAL-128、MD4和RIPEMD演算法的報告,令在場的國際頂尖密碼學專家都為之震驚,意味著這些演算法將從應用中淘汰。隨後,SHA-1也被宣告被破解。
歷史上有三次對DES有影響的攻擊實驗。1997年,利用當時各國 7萬台計算機,歷時96天破解了DES的密鑰。1998年,電子邊境基金會(EFF)用25萬美元製造的專用計算機,用56小時破解了DES的密鑰。1999年,EFF用22小時15分完成了破解工作。因此。曾經有過卓越貢獻的DES也不能滿足我們日益增長的需求了。
最近,一組研究人員成功的把一個512位的整數分解因子,宣告了RSA的破解。
我們說數據的安全是相對的,可以說在一定時期一定條件下是安全的,隨著硬體和網路的發展,或者是另一個王小雲的出現,目前的常用加密演算法都有可能在短時間內被破解,那時我們不得不使用更長的密鑰或更加先進的演算法,才能保證數據的安全,因此加密演算法依然需要不斷發展和完善,提供更高的加密安全強度和運算速度。
縱觀這兩種演算法一個從DES到3DES再到AES,一個從RSA到ECC。其發展角度無不是從密鑰的簡單性,成本的低廉性,管理的簡易性,演算法的復雜性,保密的安全性以及計算的快速性這幾個方面去考慮。因此,未來演算法的發展也必定是從這幾個角度出發的,而且在實際操作中往往把這兩種演算法結合起來,也需將來一種集兩種演算法優點於一身的新型演算法將會出現,到那個時候,電子商務的實現必將更加的快捷和安全。
『拾』 橢圓曲線密碼學的數學理論
ECC的主要優勢是在某些情況下它比其他的方法使用更小的密鑰——比如RSA——提供相當的或更高等級的安全。ECC的另一個優勢是可以定義群之間的雙線性映射,基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。不過一個缺點是加密和解密操作的實現比其他機制花費的時間長。
橢圓曲線密碼學的許多形式有稍微的不同,所有的都依賴於被廣泛承認的解決橢圓曲線離散對數問題的困難性上,對應有限域上橢圓曲線的群。
對橢圓曲線來說最流行的有限域是以素數為模的整數域(參見 模運算)GF(p),或是特徵為2的伽羅華域GF(2m)。後者在專門的硬體實現上計算更為有效,而前者通常在通用處理器上更為有效。專利的問題也是相關的。一些其他素數的伽羅華域的大小和能力也已經提出了,但被密碼專家認為有一點問題。
給定一條橢圓曲線E以及一個域GF(q),我們考慮具有(x,y)形式有理數點E(q)的阿貝爾群,其中x和y都在GF(q)中並且定義在這條曲線上的群運算+在文章橢圓曲線中描述。我們然後定義第二個運算* | Z×E(q)->E(q):如果P是E(q)上的某個點,那麼我們定義2*P=P+P,3*P=2*P+P=P+P+P等等。注意給定整數 j和k,j*(k*P)=(j*k)*P=k*(j*P)。橢圓曲線離散對數問題(ECDLP)就是給定點P和Q,確定整數k使k*P=Q。
一般認為在一個有限域乘法群上的離散對數問題(DLP)和橢圓曲線上的離散對數問題(ECDLP)並不等價;ECDLP比DLP要困難的多。
在密碼的使用上,曲線E(q);和其中一個特定的基點G一起被選擇和公布。一個私鑰k被作為隨機整數來選擇;值P=k*G被作為公鑰來公布(注意假設的ECDLP困難性意味著k很難從P中確定)。如果Alice和Bob有私鑰kA和kB,公鑰是PA和PB,那麼Alice能計算kA*PB=(kA*kB)*G;Bob能計算同樣的值kB*PA=(kB*kA)*G。
這允許一個「秘密」值的建立,這樣Alice和Bob能很容易地計算出,但任何的第三方卻很難得到。另外,Bob在處理期間不會獲得任何關於kA的新知識,因此Alice的私鑰仍然是私有的。
基於這個秘密值,用來對Alice和Bob之間的報文進行加密的實際方法是適應以前的,最初是在其他組中描述使用的離散對數密碼系統。這些系統包括:
Diffie-Hellman — ECDH
MQV — ECMQV
ElGamal discrete log cryptosystem — ECElGamal
DSA — ECDSA
對於ECC系統來說,完成運行系統所必須的群操作比同樣大小的因數分解系統或模整數離散對數系統要慢。不過,ECC系統的擁護者相信ECDLP問題比DLP或因數分解問題要難的多,並且因此使用ECC能用小的多的密鑰長度來提供同等的安全,在這方面來說它確實比例如RSA之類的更快。到目前為止已經公布的結果趨於支持這個結論,不過一些專家表示懷疑。
ECC被廣泛認為是在給定密鑰長度的情況下,最強大的非對稱演算法,因此在對帶寬要求十分緊的連接中會十分有用。
國家標准與技術局和ANSI X9已經設定了最小密鑰長度的要求,RSA和DSA是1024位,ECC是160位,相應的對稱分組密碼的密鑰長度是80位。NIST已經公布了一列推薦的橢圓曲線用來保護5個不同的對稱密鑰大小(80,112,128,192,256)。一般而言,二進制域上的ECC需要的非對稱密鑰的大小是相應的對稱密鑰大小的兩倍。
Certicom是ECC的主要商業支持者,擁有超過130項專利,並且已經以2千5百萬美元的交易獲得了國家安全機構(NSA)的技術許可。他們也已經發起了許多對ECC演算法的挑戰。已經被解決的最復雜的是109位的密鑰,是在2003年初由一個研究團隊破解的。破解密鑰的這個團隊使用了基於生日攻擊的大塊並行攻擊,用超過10,000台奔騰級的PC機連續運行了540天以上。對於ECC推薦的最小密鑰長度163位來說,當前估計需要的計算資源是109位問題的108倍。
在2005年2月16日,NSA宣布決定採用橢圓曲線密碼的戰略作為美國政府標準的一部分,用來保護敏感但不保密的信息。NSA推薦了一組被稱為Suit B的演算法,包括用來密鑰交換的Menezes-Qu-Vanstone橢圓曲線和Diffie-Hellman橢圓曲線,用來數字簽名的橢圓曲線數字簽名演算法。這一組中也包括AES和SHA。