1、RSA算法 2、DES算法 3、ElGamal算法
4、DSA算法 5、MD5算法 6、BLOWFISH算法
1、RSA算法
它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字以發(fā)明者的名字命名:Ron Rivest Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。
一、RSA算法 :
首先 找出三個(gè)數(shù) p q r
其中 p q 是兩個(gè)相異的質(zhì)數(shù) r 是與 (p-1)(q-1) 互質(zhì)的數(shù)......
p q r 這三個(gè)數(shù)便是 private key
接著 找出 m 使得 rm == 1 mod (p-1)(q-1).....
這個(gè) m 一定存在 因?yàn)?r 與 (p-1)(q-1) 互質(zhì) 用輾轉(zhuǎn)相除法就可以得到了.....
再來(lái) 計(jì)算 n = pq.......
m n 這兩個(gè)數(shù)便是 public key
編碼過(guò)程是 若資料為 a 將其看成是一個(gè)大整數(shù) 假設(shè) a < n....
如果 a >= n 的話 就將 a 表成 s 進(jìn)位 (s <= n 通常取 s = 2^t)
則每一位數(shù)均小於 n 然後分段編碼......
接下來(lái) 計(jì)算 b == a^m mod n (0 <= b < n)
b 就是編碼後的資料......
解碼的過(guò)程是 計(jì)算 c == b^r mod pq (0 <= c < pq)
於是乎 解碼完畢...... 等會(huì)會(huì)證明 c 和 a 其實(shí)是相等的 :)
如果第三者進(jìn)行竊聽(tīng)時(shí) 他會(huì)得到幾個(gè)數(shù): m n(=pq) b......
他如果要解碼的話 必須想辦法得到 r......
所以 他必須先對(duì) n 作質(zhì)因數(shù)分解.........
要防止他分解 最有效的方法是找兩個(gè)非常的大質(zhì)數(shù) p q
使第三者作因數(shù)分解時(shí)發(fā)生困難.........
<定理>
若 p q 是相異質(zhì)數(shù) rm == 1 mod (p-1)(q-1)
a 是任意一個(gè)正整數(shù) b == a^m mod pq c == b^r mod pq
則 c == a mod pq
證明的過(guò)程 會(huì)用到費(fèi)馬小定理 敘述如下:
m 是任一質(zhì)數(shù) n 是任一整數(shù) 則 n^m == n mod m
(換另一句話說(shuō) 如果 n 和 m 互質(zhì) 則 n^(m-1) == 1 mod m)
運(yùn)用一些基本的群論的知識(shí) 就可以很容易地證出費(fèi)馬小定理的........
<證明>
因?yàn)?rm == 1 mod (p-1)(q-1) 所以 rm = k(p-1)(q-1) + 1 其中 k 是整數(shù)
因?yàn)樵?modulo 中是 preserve 乘法的
(x == y mod z and u == v mod z => xu == yv mod z)
所以 c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq
1. 如果 a 不是 p 的倍數(shù) 也不是 q 的倍數(shù)時(shí)
則 a^(p-1) == 1 mod p (費(fèi)馬小定理) => a^(k(p-1)(q-1)) == 1 mod p
a^(q-1) == 1 mod q (費(fèi)馬小定理) => a^(k(p-1)(q-1)) == 1 mod q
所以 p q 均能整除 a^(k(p-1)(q-1)) - 1 => pq | a^(k(p-1)(q-1)) - 1
即 a^(k(p-1)(q-1)) == 1 mod pq
=> c == a^(k(p-1)(q-1)+1) == a mod pq
2. 如果 a 是 p 的倍數(shù) 但不是 q 的倍數(shù)時(shí)
則 a^(q-1) == 1 mod q (費(fèi)馬小定理)
=> a^(k(p-1)(q-1)) == 1 mod q
=> c == a^(k(p-1)(q-1)+1) == a mod q
=> q | c - a
因 p | a
=> c == a^(k(p-1)(q-1)+1) == 0 mod p
=> p | c - a
所以 pq | c - a => c == a mod pq
3. 如果 a 是 q 的倍數(shù) 但不是 p 的倍數(shù)時(shí) 證明同上
4. 如果 a 同時(shí)是 p 和 q 的倍數(shù)時(shí)
則 pq | a
=> c == a^(k(p-1)(q-1)+1) == 0 mod pq
=> pq | c - a
=> c == a mod pq
Q.E.D.
這個(gè)定理說(shuō)明 a 經(jīng)過(guò)編碼為 b 再經(jīng)過(guò)解碼為 c 時(shí) a == c mod n (n = pq)....
但我們?cè)谧鼍幋a解碼時(shí) 限制 0 <= a < n 0 <= c < n
所以這就是說(shuō) a 等於 c 所以這個(gè)過(guò)程確實(shí)能做到編碼解碼的功能.....
二、RSA 的安全性
RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆](méi)有證明破解 RSA就一定需要作大數(shù)分解。假設(shè)存在一種無(wú)須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前, RSA 的一些變種算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。現(xiàn)在,人們已能分解多個(gè)十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n 必須選大一些,因具體適用情況而定。
三、RSA的速度
由于進(jìn)行的都是大數(shù)計(jì)算,使得RSA最快的情況也比DES慢上倍,無(wú)論是軟件還是硬件實(shí)現(xiàn)。速度一直是RSA的缺陷。一般來(lái)說(shuō)只用于少量數(shù)據(jù)加密。
四、RSA的選擇密文攻擊
RSA在選擇密文攻擊面前很脆弱。一般攻擊者是將某一信息作一下偽裝( Blind),讓擁有私鑰的實(shí)體簽署。然后,經(jīng)過(guò)計(jì)算就可得到它所想要的信息。實(shí)際上,攻擊利用的都是同一個(gè)弱點(diǎn),即存在這樣一個(gè)事實(shí):乘冪保留了輸入的乘法結(jié)構(gòu):
( XM )^d = X^d *M^d mod n
前面已經(jīng)提到,這個(gè)固有的問(wèn)題來(lái)自于公鑰密碼系統(tǒng)的最有用的特征--每個(gè)人都能使用公鑰。但從算法上無(wú)法解決這一問(wèn)題,主要措施有兩條:一條是采用好的公鑰協(xié)議,保證工作過(guò)程中實(shí)體不對(duì)其他實(shí)體任意產(chǎn)生的信息解密,不對(duì)自己一無(wú)所知的信息簽名;另一條是決不對(duì)陌生人送來(lái)的隨機(jī)文檔簽名,簽名時(shí)首先使用One-Way HashFunction 對(duì)文檔作HASH處理,或同時(shí)使用不同的簽名算法。在中提到了幾種不同類型的攻擊方法。
五、RSA的公共模數(shù)攻擊
若系統(tǒng)中共有一個(gè)模數(shù),只是不同的人擁有不同的e和d,系統(tǒng)將是危險(xiǎn)的。最普遍的情況是同一信息用不同的公鑰加密,這些公鑰共模而且互質(zhì),那末該信息無(wú)需私鑰就可得到恢復(fù)。設(shè)P為信息明文,兩個(gè)加密密鑰為e1和e2,公共模數(shù)是n,則:
C1 = P^e1 mod n
C2 = P^e2 mod n
密碼分析者知道n、e1、e2、C1和C2,就能得到P。
因?yàn)閑1和e2互質(zhì),故用Euclidean算法能找到r和s,滿足:
r * e1 + s * e2 = 1
假設(shè)r為負(fù)數(shù),需再用Euclidean算法計(jì)算C1^(-1),則
( C1^(-1) )^(-r) * C2^s = P mod n
另外,還有其它幾種利用公共模數(shù)攻擊的方法。總之,如果知道給定模數(shù)的一對(duì)e和d,一是有利于攻擊者分解模數(shù),一是有利于攻擊者計(jì)算出其它成對(duì)的e’和d’,而無(wú)需分解模數(shù)。解決辦法只有一個(gè),那就是不要共享模數(shù)n。
RSA的小指數(shù)攻擊。 有一種提高 RSA速度的建議是使公鑰e取較小的值,這樣會(huì)使加密變得易于實(shí)現(xiàn),速度有
所提高。但這樣作是不安全的,對(duì)付辦法就是e和d都取較大的值。
RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗(yàn),逐漸為人們接受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一。RSA的安全性依賴于大數(shù)的因子分解,但并沒(méi)有從理論上證明破譯RSA的難度與大數(shù)分解難度等價(jià)。即RSA的重大缺陷是無(wú)法從理論上把握它的保密性能如何,而且密碼學(xué)界多數(shù)人士?jī)A向于因子分解不是NPC問(wèn)題。 RSA的缺點(diǎn)主要有:A)產(chǎn)生密鑰很麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。B)分組長(zhǎng)度太大,為保證安全性,n 至少也要 600 bits 以上,使運(yùn)算代價(jià)很高,尤其是速度較慢,較對(duì)稱密碼算法慢幾個(gè)數(shù)量級(jí);且隨著大數(shù)分解技術(shù)的發(fā)展,這個(gè)長(zhǎng)度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。目前,SET( Secure Electronic Transaction )協(xié)議中要求CA采用比特長(zhǎng)的密鑰,其他實(shí)體使用比特的密鑰。
2、DES算法
一、DES算法
美國(guó)國(guó)家標(biāo)準(zhǔn)局1973年開(kāi)始研究除國(guó)防部外的其它部門(mén)的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。加密算法要達(dá)到的目的(通常稱為DES 密碼算法要求)主要為以下四點(diǎn): ☆提供高質(zhì)量的數(shù)據(jù)保護(hù),防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺(jué)的修改;
☆具有相當(dāng)高的復(fù)雜性,使得破譯的開(kāi)銷超過(guò)可能獲得的利益,同時(shí)又要便于理解和掌握;
☆DES密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎(chǔ);
☆實(shí)現(xiàn)經(jīng)濟(jì),運(yùn)行有效,并且適用于多種完全不同的應(yīng)用。
1977年1月,美國(guó)政府頒布:采納IBM公司設(shè)計(jì)的方案作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)(DES
主站蜘蛛池模板:
成年人激情在线
|
九九精品久久
|
欧美一级淫片免费播放口
|
少妇一级淫片免费放播放
|
一级黄色毛片a
|
黄色片视频观看
|
久草在线观看福利
|
国产精品99久久久久久久女警
|
一级α片免费看刺激高潮视频
|
男人午夜小视频
|
视频一区 在线
|
免费欧美一级视频
|
日日狠狠久久偷偷四色综合免费
|
蜜桃欧美性大片免费视频
|
精品一区二区三区免费爱
|
天天舔夜夜操
|
久久影院国产精品
|
99ri精品|
日本高清在线播放
|
美女又黄又www
|
亚洲第一成人在线观看
|
久久久一区二区三区四区
|
免费国产人成网站
|
亚洲四播房|
久久成人亚洲
|
激情久久一区二区
|
欧美人与牲禽动交精品一区
|
九九热精品在线视频
|
久久精品视频免费
|
日韩视频观看
|
色婷婷久久久亚洲一区二区三区
|
av大全在线播放
|
久久精品一二三区白丝高潮
|
久久久精品99
|
91午夜在线观看
|
中文字幕亚洲视频
|
中文字幕www
|
操操日日
|
久久久久二区
|
美女扒开腿让男生桶爽网站
|
精品国产一区二区三区久久久蜜月
|