RSA、Elgamal、背包演算法、Rabin、D-H、ECC橢圓曲線加密演算法。
非對稱加密(公鑰加密):指加密和解密使用不同密鑰的加密演算法,也稱為公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業中有n個用戶,企業需要生成n對密鑰,並分發n個公鑰。假設A用B的公鑰加密消息,用A的私鑰簽名,B接到消息後,首先用A的公鑰驗證簽名,確認後用自己的私鑰解密消息。由於公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得十分簡單。同時,由於每個用戶的私鑰是唯一的,其他用戶除了可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以通過數字簽名確保發送者無法否認曾發送過該信息。
② 入門密碼學④非對稱加密
公鑰密碼(Public-key cryptography) 也稱非對稱式密碼(Asymmetric cryptography)是密碼學的一種演算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰; 公鑰用作加密,私鑰則用作解密 。使用公鑰把明文加密後所得的密文,只能用相對應的私鑰才能解密並得到原本的明文,最初用來加密的公鑰不能用作解密。由於加密和解密需要兩個不同的密鑰,故被稱為非對稱加密;不同於加密和解密都使用同一個密鑰的對稱加密。公鑰可以公開,可任意向外發布;私鑰不可以公開。
1976年以前,所有的加密方法都是同一種模式:加密和解密使用同樣的規則。
1976年,由惠特菲爾德·迪菲(Bailey Whitfield Diffie)和馬丁·赫爾曼(Martin Edward Hellman)在1976年首次發表 迪菲-赫爾曼密鑰交換 。
1977年,Ralph Merkle和Martin Hellman 共同設計了一種具體的公鑰密碼演算法-- Knapsack 。
1978年,羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)共同發表了一種公鑰密碼演算法-- RSA 。
RSA 可以說是現在公鑰密碼的事實標准 。
在對稱密碼中,由於加密和解密的密鑰是相同的,因此必須向接收者配送密鑰。由於解密的密鑰必須被配送給接收者,在傳輸中的過程中存在著被竊聽的問題,這一問題稱為 密鑰配送問題 。
解決密鑰配送問題的方法有以下幾種:
RSA 是世界第一個廣泛使用的公鑰演算法,可以被用於公鑰密碼和數字簽名。RSA公開密鑰密碼體制的原理是:根據數論,尋求兩個大素數比較簡單,而將它們的乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。它的強度被認為與分解一個非常大的數字的難度有關。以現代數字計算機的當前和可預見的速度,在生成 RSA 密鑰時選擇足夠長的素數應該使該演算法無限期地安全。但是,這種信念尚未在數學上得到證明,並且可能有一種快速分解演算法或一種完全不同的破解 RSA 加密的方法。
ab = 1
然而只根據 N 和 E(注意:不是p和q)要計算出 d 是不可能的。因此,任何人都可對明文進行加密,但只有授權用戶(知道D)才可對密文解密。
RSA 是現在最為普及的一種公鑰密碼演算法,但是除了 RSA之外還有其他的公鑰密碼,基於與 RSA 等效復雜度的不同數學,包括 ElGamal 加密 、 Rabin 方式 和 橢圓曲線加密 。
在密碼學中, ElGamal 加密演算法 是一個基於迪菲-赫爾曼密鑰交換的非對稱加密演算法。它在1985年由塔希爾·蓋莫爾(Taher ElGamal)提出。ElGamal加密演算法利用了 求離散對數的困難數。
Rabin 利用了 下平方根的困難度
橢圓曲線密碼 是通過將橢圓曲線上的特定點進行特殊的乘法運算實現,它利用了這種乘法運算的逆運算非常困難這一特性。它的特點是所需的密鑰長度比 RSA 短。
③ 非對稱加密中,公鑰在什麼情況下用於加密,什麼情況用於解密
在進行加密的時候,公鑰用於加密,私鑰用於解密
在進行數字簽名的時候,私鑰用於解密,公鑰用於加密
④ 非對稱加密演算法是什麼
非對稱加密(公鑰加密):指加密和解密使用不同密鑰的加密演算法,也稱為公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業中有n個用戶,企業需要生成n對密鑰,並分發n個公鑰。假設A用B的公鑰加密消息,用A的私鑰簽名,B接到消息後,首先用A的公鑰驗證簽名,確認後用自己的私鑰解密消息。由於公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得 十分簡單。同時,由於每個用戶的私鑰是唯一的,其他用戶除了可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以通過數字簽名確保發送者無法否認曾發送過該信息。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
⑤ 簡要說說對稱加密和非對稱加密的原理以及區別是什麼
對稱加密的原理是數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。
非對稱加密的原理是甲方首先生成一對密鑰同時將其中的一把作為公開密鑰;得到公開密鑰的乙方再使用該密鑰對需要加密的信息進行加密後再發送給甲方;甲方再使用另一把對應的私有密鑰對加密後的信息進行解密,這樣就實現了機密數據傳輸。
對稱加密和非對稱加密的區別為:密鑰不同、安全性不同、數字簽名不同。
一、密鑰不同
1、對稱加密:對稱加密加密和解密使用同一個密鑰。
2、非對稱加密:非對稱加密加密和解密所使用的不是同一個密鑰,需要兩個密鑰來進行加密和解密。
二、安全性不同
1、對稱加密:對稱加密如果用於通過網路傳輸加密文件,那麼不管使用任何方法將密鑰告訴對方,都有可能被竊聽。
2、非對稱加密:非對稱加密因為它包含有兩個密鑰,且僅有其中的「公鑰」是可以被公開的,接收方只需要使用自己已持有的私鑰進行解密,這樣就可以很好的避免密鑰在傳輸過程中產生的安全問題。
三、數字簽名不同
1、對稱加密:對稱加密不可以用於數字簽名和數字鑒別。
2、非對稱加密:非對稱加密可以用於數字簽名和數字鑒別。
⑥ 對稱、非對稱加解密、SSL、HTTPS 詳細介紹
對稱加密:加密和解密使用的是同一個密鑰,信息接收雙方都需事先知道這個密鑰(最常見的對稱加密演算法是DES、AES)。
溫馨提示:閱讀下面內容請對照此網站內的圖片,有助於理解。 http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html
非對稱加密:加密和解密用的是不同的密鑰(最常用的非對稱加密演算法是RSA)。是一對密鑰,公鑰和私鑰,公鑰對外公開,私鑰由自己保存,公鑰可以有很多份拷貝,好比多客戶端和單一伺服器的網路拓撲結構,每一個客戶端上都有一個公鑰,伺服器有一個私鑰,而這個公鑰,是伺服器發給客戶端的。客戶端用公鑰解密接受來的密文,而這個密文是伺服器用私鑰加密的。相反,如果客戶端向伺服器發送請求,客戶端是用伺服器發來的公鑰加密,伺服器接收到密文後,用自己的私鑰去解密。
1.非對稱加密之數字摘要:是採用單向的(不可逆)Hash函數將需要加密的明文加密成一串固定長度(128位)的密文,這一串密文又稱為數字指紋,因為不同的明文形成的摘要不同,而相同的明文形成的摘要必定相同。所以叫數字指紋比較貼切。數字摘要是https確保數據完整性和防篡改的根本原因。(Hash函數包括MD5、SHA這些不屬於加密演算法,因為是不可逆的,只能相當於指紋,而加密演算法是可逆的。Base64也是可逆的。)
2.非對稱加密之數字簽名:做了非對稱加密和數字摘要後,用自己的私鑰對數字摘要加密後就是「數字簽名」,簡單的說就是,經過私鑰加密的數字摘要就是數字簽名。可以把數字簽名附到明文上。
這時候發送的密文中就有數字摘要和數字簽名,接受者只要用發送者的公鑰就能解密簽名,得到摘要信息,然後用Hash函數對收到的原文處理產生一個摘要信息,與解密的摘要信息對比。如果相同,說明收到的信息是完整的,在傳輸的過程中沒有被修改。數字簽名只能夠驗證信息的完整性,數據本身是否加密不屬於數字簽名的控制范圍。
3.非對稱加密之數字證書:只從「明確發送者身份」和「確保數據完整性」,數字簽名就可以完全做到了,但是前提是數字簽名所依賴的密鑰是真是可靠的才可以。如果接受方所持有的公鑰來路有問題或是被替換了,那麼,持有對應私鑰的人就可以冒充發送方發送明文給接受方,但是接收方並不知道。這里的問題就是:對於接受方來說,它怎麼能確定它所得到的公鑰一定是從目標主機那裡發布的,而且沒有被篡改過呢?這時候,我們需要有一個權威的值得信賴的第三方機構(一般是由政府審核並授權的機構)來統一對外發放機構公鑰,只要發送方有這種機構的公鑰,就避免了上述問題的發生。這種機構被稱為證書權威機構(Certificate Authority, CA),它們所發放的包含主機機構名稱、公鑰在內的文件就是人們所說的「數字證書」。
數字證書的頒發過程一般為:用戶首先產生自己的密鑰對,並將公共密鑰及部分個人身份信息傳送給認證中心。認證中心在核實身份後,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然後,認證中心將發給用戶一個數字證書,該證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息。用戶就可以使用自己的數字證書進行相關的各種活動。數字證書由獨立的證書發行機構發布。數字證書各不相同,每種證書可提供不同級別的可信度。可以從證書發行機構獲得您自己的數字證書。
SSL:是安全協議,SSL建立通信的過程分為兩個階段:握手階段和傳輸階段。下圖為握手階段。
SSL協議在握手階段使用的是非對稱加密(上面介紹的很清楚),在傳輸階段使用的是對稱加密(簡單不多贅述),也就是說在SSL上傳送的數據是使用對稱密鑰加密的!這並不奇怪,因為非對稱加密的速度緩慢,耗費資源。其實當客戶端和主機使用非對稱加密方式建立連接後,客戶端和主機就已經決定好了在傳輸過程中使用的對稱加密演算法和對稱加密密鑰,由於這個過程本身是安全可靠的,所以對稱加密密鑰是不可能被竊取的,因此,保證了在傳輸過程中對數據進行對稱加密也是安全可靠的,因為除了客戶端和主機之外,不可能有第三方竊取並解密出對稱加密密鑰!
HTTPS:HTTPS是由SSL+HTTP協議構建的可進行加密傳輸、身份認證(確認客戶端連接的主機是否是真實正確的主機)的網路協議。HTTPS所能實現的安全保證,正式SSL的功勞。
HTTPS劣勢:
https的主要缺點就是性能問題。造成https性能低於http的原因有兩個:
1.對數據進行加解密決定了它比http慢。
2.另外一個重要原因的是https禁用了緩存。
相關測試數據表明使用HTTPS協議傳輸數據的工作效率只有使用HTTP協議傳輸的十分之一。因此對於一個網站來說,只有那對那些安全要求極高的的數據才會選擇使用https進行傳輸。
⑦ 加密那些事--非對稱加密詳解
「非對稱加密也叫公鑰密碼:使用公鑰 加密 ,使用私鑰解密」
在對稱密碼中,由於加密和解密的密鑰是相同的,因此必須向接收者配送密鑰。用於解密的密鑰必須被配送給接收者,這一問題稱為密鑰配送問題。如果使用非對稱加密,則無需向接收者配送用於解密的密鑰,這樣就解決了密鑰配送的問題。
非對稱加密中,密鑰分為加密密鑰和解密密鑰兩種。發送者用加密密鑰對消息進行加密,接收者用解密密鑰對密文進行解密。需理解公鑰密碼,清楚地分加密密鑰和解密密鑰是非常重要的。加密密鑰是發送者加密時使用的,而解密密鑰則是接收者解密時使用的。
加密密鑰和解密密鑰的區別:
a.發送者只需要加密密鑰
b.接收者只需要解密密鑰
c.解密密鑰不可以被竊聽者獲取
d.加密密鑰被竊聽者獲取也沒關系
也就是說,解密密鑰從一開始就是由接收者自己保管的,因此只要將加密密鑰發給發送者就可以解決密鑰配送問題了,而根本不需要配送解密密鑰。
非對稱加密中,加密密鑰一般是公開的。真是由於加密密鑰可以任意公開,因此該密鑰被稱為公鑰(pulickey)。相對地解密密鑰是絕對不能公開的,這個密鑰只能由你自己來使用,因此稱為私鑰(privatekey)****。私鑰不可以被別人知道,也不可以將它發送給別人。
公鑰和私鑰是"一一對應的",一對公鑰和私鑰統稱為密鑰對(keypair)。由公鑰進行加密的密文,必須使用與該公鑰配對的私鑰才能解密。密鑰對中的兩個密鑰之間具有非常密切的的關系(數學上的關系)。因此公鑰和私鑰不能分別單獨生成。
非對稱加密通訊流程
假設A要給B發一條信息,A是發送者,B是接收者,竊聽者C可以竊聽他們之間的通訊內容。
1.B生成一個包含公鑰和私鑰的密鑰對
私鑰由B自行妥善保管
2.B將自己的公鑰發送給A
B的公鑰被C截獲也沒關系。將公鑰發給A,表示B請A用這個公鑰對消息進行加密並發送給他。
3.A用B的公鑰對消息進行加密
加密後的消息只有B的私鑰才能夠解密。
雖然A擁有B的公鑰,但用B的公鑰是無法對密文進行解密的。
4.A將密文發送給B
密文被C截獲也沒關系,C可能擁有B的公鑰,但是B的公鑰是無法進行解密的。
5.B用自己的私鑰對密文進行解密。
參考下圖
RSA是一種非對稱加密演算法,它的名字由三位開發者。即RonRivest、AdiShamir和LeonardAdleman 的姓氏的首字母組成的(Rivest-Shamir-Leonard)
RSA的加密工程可以用下來公式來表達,如下。
也就是說,RSA的密文是對代表明文的數字的E次方求modN的結果。換句話說,就是將明文自己做E次乘法,然後將其結果除以N求余數,這個余數就是密文。
RSA的加密是求明文的E次方modN,因此只要知道E和N這兩個數,任何人都可以完成加密的運算。所以說E和N是RSA加密的密鑰。也就是說E和N的組合就是公鑰
有一個很容易引起誤解的地方需要大家注意一一E和N這兩個數並不是密鑰對(公鑰和私鑰的密鑰對)。E和N兩個數才組成了一個公鑰,因此我們一般會寫成 「公鑰是(E,N)」 或者 「公鑰是{E, N}" 這樣的形式,將E和N用括弧括起來。
1.3.2 RSA解密
RSA的解密和加密一樣簡單,可以用下面的公式來表達:
也就是說,對表示密文的數字的D次方求modN就可以得到明文。換句話說,將密文自己做D次乘法,在對其結果除以N求余數,就可以得到明文 。
這里所使用的數字N和加密時使用的數字N是相同的。數D和數N組合起來就是RSA的解密密鑰,因此D和N的組合就是私鑰。只有知道D和N兩個數的人才能夠完成解密的運算。
大家應該已經注意到,在RSA中,加密和解密的形式是相同的。加密是求 "E次方的mod N」,而解密則是求 "D次方的modN」,這真是太美妙了。
當然,D也並不是隨便什麼數都可以的,作為解密密鑰的D,和數字E有著相當緊密的聯系。否則,用E加密的結果可以用D來解密這樣的機制是無法實現的。
順便說一句, D是解密〈Decryption)的首字母,N是數字(Number)的首字母 。
RSA加密和解密
聲明該文章僅做個人學習使用,無任何商業用途。
原文鏈接:https://blog.csdn.net/atlansi/article/details/111144109
⑧ 非對稱加密演算法是什麼意思
所謂非對稱加密演算法是指用於加密的密鑰與用於解密的密鑰是不同的,而且從加密的密鑰無法推導出解密的密鑰.(加密速度慢,適用與小數據的加密)
非對稱密碼體制的特點:演算法強度復雜、安全性依賴於演算法與密鑰但是由於其演算法復雜,而使得加密解密速度沒有對稱加密解密的速度快.對稱密碼體制中只有一種密鑰,並且是非公開的,如果要解密就得讓對方知道密鑰.所以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了.這樣安全性就大了很多.
給電腦上的文件加密或者文件夾加密,你可以使用超級加密3000。
超級加密3000採用國際上成熟的加密演算法和安全快速的加密方法,可以有效保障數據安全!