橢圓曲線加密演算法,簡稱ECC,是基於橢圓曲線數學理論實現的一種非對稱加密毀核演算法。
相比RSA,ECC優勢是可以使用更短的密鑰,來實現與RSA相當或更高的安全,RSA加密演算法也是純擾一種非對稱加密演算法,在公開密鑰加密和電子商業中RSA被廣泛使用。據研究,160位ECC加密安全性相當於1024位RSA加密,210位ECC加密安全性相當於2048位做余旦RSA加密(有待考證)。
橢圓曲線也可以有運算,像實數的加減乘除一樣,這就需要使用到加群。19世紀挪威的尼爾斯·阿貝爾抽象出了加群(又叫阿貝爾群或交換群)。數學中的群是一個集合,我們為它定義了一個「加法」,並用符號+表示。假定群用 表示,則加法必須遵循以下四個特性:
封閉性:如果a和b都是 的成員,那麼a+b也是 的成員;
結合律:(a + b) + c = a + (b + c);
單位元:a+0=0+a=a,0就是單位元;
逆元:對於任意值a必定存在b,使得a+b=0。
如果再增加一個條件,交換律:a + b = b + a,則稱這個群為阿貝爾群,根據這個定義整數集是個阿貝爾群。
2. des演算法與rsa演算法區別
DES演算法與RSA演算法區別:
1、DES演算法:
優點:密鑰短,加密處理簡單,加密解密速度快,適用於加密大量數據的場合。
缺點:單鍵,不能從一個鍵推導出另一個鍵。
2、RSA演算法:
優點:應用廣泛,加密密鑰與解密密鑰不一樣,一般的加密密鑰稱為私鑰。解密密鑰稱為公鑰,私鑰加密後只能用公鑰解密,當然也可以用公鑰加密,用私鑰解密。
缺點:密鑰大小大,加密解密速度慢,一般用於加密少量數據,如DES密鑰。
(2)比rsa加密快的演算法擴展閱讀:
一、安全性:
RSA的安全性依賴於大數分解,但它是否等同於大數分解還沒有從理論上得到證明,因為沒有證據證明破解RSA一定是大數分解。
如果有一種演算法不需要分解大數,則必須將其修改為分解大數的演算法。RSA演算法的一些變體已被證明等價於大數分解。
不管怎樣,分解n是最明顯的攻擊方式。把大素數分解到多個小數點後是可能的。因此,模n必須更大,這取決於具體的應用。
二、演算法定義:
1、DES演算法定義:是對稱演算法,加密密鑰和解密密鑰是相同的。
2、RSA演算法定義:非對稱演算法,加密密鑰與解密密鑰是不同的,一般的加密密鑰稱為私鑰,解密密鑰稱為公鑰,私鑰加密只能用於解密,當然也可以用於加密,解密用私鑰。
3. 幾種常用數據加密演算法的比較
幾種對稱性加密演算法:AES,DES,3DES
DES是一種分組數據加密技術(先將數據分成固定長度的小數據塊,之後進行加密),速度較快,適用於大量數據加密,而3DES是一種基於DES的加密演算法,使用3個不同密匙對同一個分組數據塊進行3次加密,如此以使得密文強度更高。
相較於DES和3DES演算法而言,AES演算法有著更高的速度和資源使用效率,安全級別也較之更高了,被稱為下一代加密標准。
幾種非對稱性加密演算法:RSA,DSA,ECC
RSA和DSA的安全性及其它各方面性能都差不多,而ECC較之則有著很多的性能優越,包括處理速度,帶寬要求,存儲空間等等。
幾種線性散列演算法(簽名演算法):MD5,SHA1,HMAC
這幾種演算法只生成一串不可逆的密文,經常用其效驗數據傳輸過程中是否經過修改,因為相同的生成演算法對於同一明文只會生成唯一的密文,若相同演算法生成的密文不同,則證明傳輸數據進行過了修改。通常在數據傳說過程前,使用MD5和SHA1演算法均需要發送和接收數據雙方在數據傳送之前就知道密匙生成演算法,而HMAC與之不同的是需要生成一個密匙,發送方用此密匙對數據進行摘要處理(生成密文),接收方再利用此密匙對接收到的數據進行摘要處理,再判斷生成的密文是否相同。
對於各種加密演算法的選用:
由於對稱加密演算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數據量很小時,我們可以考慮採用非對稱加密演算法。
在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的密鑰,然後用對稱加密演算法加密數據,這樣我們就集成了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
如果在選定了加密演算法後,那採用多少位的密鑰呢?一般來說,密鑰越長,運行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。
4. 非對稱加密演算法有哪些
RSA:RSA 是一種目前應用非常廣泛、歷史也比較悠久的非對稱秘鑰加密技術,在1977年被麻省理工學院的羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)三位科學家提出,由於難於破解,RSA 是目前應用最廣泛的數字加密和簽名技術,比如國內的支付寶就是通過RSA演算法來進行簽名驗證。它的安全程度取決於秘鑰的長度,目前主流可選秘鑰長度為 1024位、2048位、4096位等,理論上秘鑰越長越難於破解,按照維基網路上的說法,小於等於256位的秘鑰,在一台個人電腦上花幾個小時就能被破解,512位的秘鑰和768位的秘鑰也分別在1999年和2009年被成功破解,雖然目前還沒有公開資料證實有人能夠成功破解1024位的秘鑰,但顯然距離這個節點也並不遙遠,所以目前業界推薦使用 2048 位或以上的秘鑰,不過目前看 2048 位的秘鑰已經足夠安全了,支付寶的官方文檔上推薦也是2048位,當然更長的秘鑰更安全,但也意味著會產生更大的性能開銷。
DSA:既 Digital Signature Algorithm,數字簽名演算法,他是由美國國家標准與技術研究所(NIST)與1991年提出。和 RSA 不同的是 DSA 僅能用於數字簽名,不能進行數據加密解密,其安全性和RSA相當,但其性能要比RSA快。
ECDSA:Elliptic Curve Digital Signature Algorithm,橢圓曲線簽名演算法,是ECC(Elliptic curve cryptography,橢圓曲線密碼學)和 DSA 的結合,橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的,相比於RSA演算法,ECC 可以使用更小的秘鑰,更高的效率,提供更高的安全保障,據稱256位的ECC秘鑰的安全性等同於3072位的RSA秘鑰,和普通DSA相比,ECDSA在計算秘鑰的過程中,部分因子使用了橢圓曲線演算法。
5. RSA和DES演算法的優缺點、比較
DES演算法:
優點:密鑰較短,加密處理簡單,加解密速度快,適用於加密大量數據的場合。
缺點:密鑰單一,不能由其中一個密鑰推導出另一個密鑰。
RSA演算法升啟知:
優點:應用廣泛,加密密鑰和解密密鑰不一樣,一般加密密鑰稱為私鑰。解密密鑰稱為公鑰,私鑰加密後只能用公鑰解密,,當然也可以用公鑰加密,用私鑰解密。
缺點:密鑰尺寸大,加解密速度慢,一般用來加密少量數據,比如DES的密鑰。
(5)比rsa加密快的演算法擴展閱讀:
安全性
RSA的安全性依賴於大數分解,但是否等同於大數分解一直未能得到理論上的證明,因為沒有證明破解RSA就旁祥一定需要作大數分解。假設存在一種無須分解大數的演算法,那它肯定可以修改成為大數分解演算法。RSA的一些變種演算法已被證明等價於大數分解。
不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個十進制位的大素數。因此,模數n必須選大一些吵消,因具體適用情況而定。
6. 常見的三種加密演算法及區別
1.常見的三種加密演算法及區別
2.加密演算法在HTTPS中的應用
3.MD5的實現原理
簡介:
消息摘要演算法的主要特徵是加密過程 不需要密鑰 ,並且經過加密的數據 無法被解密
特點:
無論輸入的消息有多長,計算出來的消息摘要的 長度總是固定 的
一般地,只要輸入的 消息不同 ,對其進行摘要以後產生的 摘要消息也必不相同 ,但 相同的輸入必會產生相同的輸出
應用場景:
消息摘要演算法主要應用在「數字簽名」領域,作為對明文的摘要演算法
比較:
都是從MD4發展而來,它們的結構和強度等特性有很多相似之處
簡介:
對稱加密指加密和解密使用 相同密鑰 的加密演算法
特點:
對稱加密演算法的特點是演算法公開、 計算量小 、 加密速度快 、加密效率高。不足之處是,交易雙方都使用 同樣鑰匙 ,安全性得不到保證。
應用:
數據傳輸中的加密,防竊取
比較:
AES彌補了DES很多的不足,支持秘鑰變長,分組變長,更加的安全,對內存要求非常低
簡介:
非對稱加密演算法需要兩個密鑰:公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用 公鑰對數據進行加密,只有用對應的私鑰才能解密。用私鑰進行加密,只有對應的公鑰才能進行解密
特點:
演算法強度復雜、安全性依賴於演算法與密鑰。但是由於其演算法復雜,而使得加密解密 速度沒有對稱加密解密的速度快 。
應用場景:
數字簽名、秘鑰傳輸加密
比較:
使用RSA,可以進行加密和簽名的密鑰對。使用DH,只執行加密,沒有簽名機制。
ECC和 RSA 相比,在許多方面都有對絕對的優勢
7. SSL證書是選擇ECC演算法加密好還是RSA演算法好呢
ECC演算法更安全一些。
RSA演算法相比,ECC演算法擁有哪些優勢:
更好的安全性:ECC加密演算法提供更強的保護,比目前的其他加密演算法能更好的防止攻擊,使你的網站和基礎設施比用傳統的加密方法更安全,為移動互聯網安全提供更好的保障。
更好的性能: ECC加密演算法需要較短的密鑰長度來提供更好的安全,例如,256位的ECC密鑰加密強度等同於3072位RSA密鑰的水平(目前普通使用的RSA密鑰長度是2048位)。其結果是你以更低的計算能力代價得到了更高的安全性。經國外有關權威機構測試,在Apache和IIS伺服器採用ECC演算法,Web伺服器響應時間比RSA快十幾倍。
更大的IT投資回報:ECC可幫助保護您的基礎設施的投資,提供更高的安全性,並快速處理爆炸增長的移動設備的安全連接。 ECC的密鑰長度增加速度比其他的加密方法都慢(一般按128位增長,而 RSA則是倍數增長,如:1024 –2048--4096),將延長您現有硬體的使用壽命,讓您的投資帶來更大的回報。
應用說明:如果對瀏覽器信任沒有要求,可以選擇ECC證書,如果存在較低的瀏覽器使用那麼必須採用RSA證書。
8. RSA和AES區別
先了解下AES和RSA的區別,前者屬於 對稱加密 ,後者屬於 非對稱加密 。
1、對稱加密
對稱加密就是加密和解密使用同一個密鑰。
用數學公示表示就是:
▲加密:Ek(P) = C
▲解密:Dk(C) = P
這里E表示加密演算法,D表示解密演算法,P表示明文,C表示密文。
是不是看起來有點不太容易理解?看下圖:
看過間諜局的知友們一定知道電台和密碼本的功能。潛伏裡面孫紅雷通過電台收聽到一堆數字,然後拿出密碼本比對,找到數字對應的漢字,就明白上級傳達的指令。而軍統的監聽台沒有密碼本,只看到一堆沒有意義的數字,這就是對稱演算法的原理。
AES就屬於對稱加密 ,常見的對稱加密方法還有DES、3DES、Blowfish、RC2以及國密的SM4。
2、非對稱加密
對稱加密快而且方便,但是有個缺點——密鑰容易被偷或被破解。非對稱加密就可以很好的避免這個問題。
非對稱演算法 把密鑰分成兩個 ,一個自己持有叫 私鑰 ,另一個發給對方,還可以公開,叫 公鑰 ,用公鑰加密的數據只能用私鑰解開。
▲加密: E公鑰(P) = C
▲解密::D私鑰(C) = P
這下就不用擔心密鑰被對方竊取或被破解了,私鑰由自己保管。
非對稱加密演算法核心原理其實就是設計一個數學難題,使得用公鑰和明文推導密文很容易,但根據公鑰、明文和密文推導私鑰極其難。
RSA 就屬於非對稱加密,非對稱加密還有Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)以及國家商用密碼SM2演算法。
3、AES和RSA
AES和RSA都很安全,至少在目前的計算機體系結構下,沒有任何有效的攻擊方式。量子計算機時代,RSA有一定的破綻,因為利用shro's algorithm,量子計算機窮舉計算質因子速度可以提高N個數量級,能夠在有限的時間內破解RSA密鑰。AES256至少目前並沒有什麼明顯的漏洞。
AES作為對稱加密技術,加密速度很快。 現在高端一點的CPU都帶有AES-NI指令,可以極快的完成加密和解密。
舉例來說,堅果雲存儲系統採用了intel 的AES-NI加速,在採用AES加密和解密的時候,
單核的性能可以超過 1GB Byte/秒,非常非常快,很適合對大量數據進行加解密。
但是AES作為對稱加密技術,如何安全的分發密鑰是一個難題。通過任何方式傳遞密鑰都有泄密的風險。當然,目前我國高大上的量子通信技術或許能很好的解決這個問題。
RSA作為非對稱加密技術的代表, 加解密的速度其實相當慢,只能對小塊的數據進行加解密。但是其非對稱的特點,滿足公鑰可以隨處分發,只有公鑰能解密私鑰加密的數據,只有私鑰能解密公鑰加密的數據。所以很適合用來進行密鑰分發和身份驗證,這兩個應用場景剛好相反。
1)用於對稱秘鑰分發的場景,其他人用公鑰加密對稱的秘鑰,那麼只有授權人才持有私鑰,因此才能解密獲得對應的秘鑰,解決了AES密鑰分發的難題;
2)對於身份驗證的場景,授權人用私鑰加密一段指令,其他人用公鑰解密對應的數據,驗證對應的指令與之前約定的某些特徵一致(例如,這段話必須使用四川口音,像是堅果雲CEO
的標准四川口音==),如果一致,那麼可以確認這個指令就是授權人發出的。
相關趣聞軼事:
RSA除了是一個偉大的發明,被免費開放給所有互聯網用戶使用。它的發明者還以此成立了一家名為 RSA Security 的網路安全公司,這家公司最後被EMC高價收購。這是德藝雙馨的偉大證明, 是「又紅又專」的典範。
RSA的演算法是以三個發明者的名字命名的,三位都是成功的數學家,科學家和企業家,其中的排名第一Ron Rivest,有非常多的傑出貢獻。
RSA是整個互聯網數據安全的基礎,與光纖處於同樣基礎和重要的方式。 大部分的加密和解密的應用都是同時應用RSA和AES。
總結
破解加密的難度除了跟 加密方法 有關,還跟 密鑰長度 以及 加密模式 有很大的關系,就拿AES來說,有AES128和AES256( 代表密鑰長度 ),顯然AES256的安全性能比AES128更高,而AES又要四種模式:ECB、CBC、CFB、OFB( 代表加密模式 )。
RSA1024是屬於非對稱加密,是基於大整數因式分解難度,也就是兩個質數相乘很容易,但是找一個大數的質因子非常困難。量子計算機時代,RSA有一定的風險,具體可以參考: 超鏈接
AES256目前沒有明顯的漏洞,唯一的問題就是如何安全的分發密鑰。
現在大部分的加密解密都是同時應用RSA和AES,發揮各自的優勢,使用RSA進行密鑰分發、協商,使用AES進行業務數據的加解密。