久久综合伊人噜噜色,日本三级香港三级人妇电影精品,亚洲中文色资源,国产高清一区二区三区人妖
汶上信息港
標(biāo)題:
密碼知識
[打印本頁]
作者:
雜七雜八
時間:
2011-1-12 20:57
標(biāo)題:
密碼知識
談起密碼算法,有的人會覺得陌生,但一提起PGP,大多數(shù)網(wǎng)上朋友都很熟悉, 它是一個工具軟件,向認(rèn)證中心注冊后就可以用它對文件進(jìn)行加解密或數(shù)字簽名,PGP所采用的是RSA算法,以后我們會對它展開討論。密碼算法的目的是為了保護(hù)信息的保密性、完整性和安全性,簡單地說就是信息的防偽造與防竊取,這一點(diǎn)在網(wǎng)上付費(fèi)系統(tǒng)中特別有意義。密碼學(xué)的鼻祖可以說是信息論的創(chuàng)始人香農(nóng),他提出了一些概念和基本理論,論證了只有一種密碼算法是理論上不可解的,那就是 One Time Padding,這種算法要求采用一個隨機(jī)的二進(jìn)制序列作為密鑰,與待加密的二進(jìn)制序列按位異或,其中密鑰的長度不小于待加密的二進(jìn)制序列的長度,而且一個密鑰只能使用一次。其它算法都是理論上可解的。如DES算法,其密鑰實(shí)際長度是56比特,作2^56次窮舉,就肯定能找到加密使用的密鑰。所以采用的密碼算法做到事實(shí)上不可解就可以了,當(dāng)一個密碼算法已知的破解算法的時間復(fù)雜度是指數(shù)級時,稱該算法為事實(shí)上不可解的。順便說
5 c4 [/ b* V6 K: q; q' S: _1 B
一下,據(jù)報(bào)道國外有人只用七個半小時成功破解了DES算法。密碼學(xué)在不斷發(fā)展變化之中,因?yàn)槿祟惖挠?jì)算能力也像摩爾定律提到的一樣飛速發(fā)展。作為第一部分,首先談一下密碼算法的概念。
' ` J- F9 u7 \/ t* V, @
; b0 i% H; E" h0 P( I
密碼算法可以看作是一個復(fù)雜的函數(shù)變換,C = F M, Key ),C代表密文,即加密后得到的字符序列,M代表明文即待加密的字符序列,Key表示密鑰,是秘密選定的一個字符序列。密碼學(xué)的一個原則是“一切秘密寓于密鑰之中”,算法可以公開。當(dāng)加密完成后,可以將密文通過不安全渠道送給收信人,只有擁有解密密鑰的收信人可以對密文進(jìn)行解密即反變換得到明文,密鑰的傳遞必須通過安全渠道。目前流行的密碼算法主要有DES,RSA,IDEA,DSA等,還有新近的Liu氏算法,是由華人劉尊全發(fā)明的。密碼算法可分為傳統(tǒng)密碼算法和現(xiàn)代密碼算法,傳統(tǒng)密碼算法的特點(diǎn)是加密和解密必須是同一密鑰,如DES和IDEA等;現(xiàn)代密碼算法將加密密鑰與解密密鑰區(qū)分開來,且由加密密鑰事實(shí)上求不出解密密鑰。這樣一個實(shí)體只需公開其加密密鑰(稱公鑰,解密密鑰稱私鑰)即可,實(shí)體之間就可以進(jìn)行秘密通信,而不象傳統(tǒng)密碼算法似的在通信之前先得秘密傳遞密鑰,其中妙處一想便知。因此傳統(tǒng)密碼算法又稱對稱密碼算法(Symmetric Cryptographic Algorithms ),現(xiàn)代密碼算法稱非對稱密碼算法或公鑰密碼算法( Public-Key Cryptographic Algorithms ),是由Diffie 和Hellman首先在1976年的美國國家計(jì)算機(jī)會議上提出這一概念的。按照加密時對明文的處理方式,密碼算法又可分為分組密碼算法和序列密碼算法。分組密碼算法是把密文分成等長的組分別加密,序列密碼算法是一個比特一個比特地處理,用已知的密鑰隨機(jī)序列與明文按位異或。當(dāng)然當(dāng)分組長度為1時,二者混為一談。這些算法以后我們都會具體討論。
5 x* i9 |: M z0 J9 r1 a
8 ^+ j3 m8 n6 g; \% ~" m) B
RSA算法
4 q* d; ~# }. ]7 x& V d
* B5 d% f' l# o% u
0 k& ]' G) T6 j; @
1978年就出現(xiàn)了這種算法,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字以發(fā)明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理論上的證明。
1 l- X9 ]8 C ^" o+ O, G
$ [# L9 \& V9 K. d5 k5 Z# \
RSA的安全性依賴于大數(shù)分解。公鑰和私鑰都是兩個大素?cái)?shù)( 大于 100個十進(jìn)制位)的函數(shù)。據(jù)猜測,從一個密鑰和密文推斷出明文的難度等同于分解兩個大素?cái)?shù)的積。
- ~* {; ?4 H9 m8 f/ q" b! `+ Z
+ Q% A6 L4 K6 ? k; b7 n8 z
密鑰對的產(chǎn)生。選擇兩個大素?cái)?shù),p 和q 。計(jì)算:
4 T& S- \! w3 x3 P2 `
# a: T: f1 i3 o
n = p * q
4 n, |8 M6 u i. T$ I
0 z3 e8 B& T3 [& K B/ c; F
然后隨機(jī)選擇加密密鑰e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互質(zhì)。最后,利用Euclid 算法計(jì)算解密密鑰d, 滿足
1 h! m& C7 ~5 o2 `8 S
6 ?# I6 k% y, {0 [: l
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )
+ t, f# ?& J: b }
$ ^2 p$ s; A! A4 p+ C# h
其中n和d也要互質(zhì)。數(shù)e和n是公鑰,d是私鑰。兩個素?cái)?shù)p和q不再需要,應(yīng)該丟棄,不要讓任何人知道。
6 @3 ?6 ^+ w$ i' ^& F8 f7 `
1 j6 A0 n9 f6 T; P
加密信息 m(二進(jìn)制表示)時,首先把m分成等長數(shù)據(jù)塊 m1 ,m2,..., mi ,塊長s,其中 2^s <= n, s 盡可能的大。對應(yīng)的密文是:
3 f6 M/ l: Z) q9 h s& D/ N
& j8 I5 Z1 I) k: Z- z: @3 z5 d$ V
ci = mi^e ( mod n ) ( a )
, n1 L7 F& \8 Q4 n. ~
+ P, N K% I7 ^3 x
解密時作如下計(jì)算:
* _9 E$ n. G2 f% Z5 v$ h
- j, n1 F' c$ Z7 r
mi = ci^d ( mod n ) ( b )
: Q1 ]# Q5 _# ^
1 l7 H T/ K! C3 g& X7 ]" k* [
RSA 可用于數(shù)字簽名,方案是用 ( a ) 式簽名, ( b )式驗(yàn)證。具體操作時考慮到安全性和 m信息量較大等因素,一般是先作 HASH 運(yùn)算。
1 I" }3 r L: ~! e) t5 C
3 u/ g8 K0 ?8 I
RSA 的安全性。
- J* q2 Q, L3 [0 y( G4 }
RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆]有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前, RSA的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法?,F(xiàn)在,人們已能分解140多個十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。
6 Z m I3 B4 {4 X
, I8 ]; Y8 `9 r+ A# u: f) K7 ?
RSA的速度。
8 `2 R# y5 S5 g, t7 d; X% a
由于進(jìn)行的都是大數(shù)計(jì)算,使得RSA最快的情況也比DES慢上100倍,無論是軟件還是硬件實(shí)現(xiàn)。速度一直是RSA的缺陷。一般來說只用于少量數(shù)據(jù)加密。
$ Y j9 I5 K( s3 e8 C! V# E
0 f3 m9 i" e3 d* o8 T. z! Z- r
RSA的選擇密文攻擊。
R: z: e7 ^% e- L) p% c
RSA在選擇密文攻擊面前很脆弱。一般攻擊者是將某一信息作一下偽裝(Blind),讓擁有私鑰的實(shí)體簽署。然后,經(jīng)過計(jì)算就可得到它所想要的信息。實(shí)際上,攻擊利用的都是同一個弱點(diǎn),即存在這樣一個事實(shí):乘冪保留了輸入的乘法結(jié)構(gòu):
6 `3 c' l7 \/ P, b! ` W
U* j& q }2 S
( XM )^d = X^d *M^d mod n
, y' A. K/ E7 _# c( Y! C( ]
/ M5 q" w9 V) o# e! I o- Z4 B
前面已經(jīng)提到,這個固有的問題來自于公鑰密碼系統(tǒng)的最有用的特征--每個人都能使用公鑰。但從算法上無法解決這一問題,主要措施有兩條:一條是采用好的公鑰協(xié)議,保證工作過程中實(shí)體不對其他實(shí)體任意產(chǎn)生的信息解密,不對自己一無所知的信息簽名;另一條是決不對陌生人送來的隨機(jī)文檔簽名,簽名時首先使用One-Way HashFunction
. l% v( @+ B$ g4 n' ?
對文檔作HASH處理,或同時使用不同的簽名算法。在中提到了幾種不同類型的攻擊方法。
) U. _$ ]" _& x5 d3 b/ \
2 f& @$ u) c, Q! d. k
RSA的公共模數(shù)攻擊。
0 I% [- |8 [) a3 ^; Y
若系統(tǒng)中共有一個模數(shù),只是不同的人擁有不同的e和d,系統(tǒng)將是危險(xiǎn)的。最普遍的情況是同一信息用不同的公鑰加密,這些公鑰共模而且互質(zhì),那末該信息無需私鑰就可得到恢復(fù)。
* h$ [' |- I1 U5 z' }* c9 W
歡迎光臨 汶上信息港 (http://m.junkejituan.com/)
Powered by Discuz! X3.5