對稱加密的加密和解密密鑰都是一樣的。而非對稱加密的加密和解密密鑰是不一樣的。它們的演算法也是不同的。
l 對稱加密演算法
對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密演算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密演算法在分布式網路系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密演算法有DES、IDEA和AES。
傳統的DES由於只有56位的密鑰,因此已經不適應當今分布式開放網路對數據加密安全性的要求。1997年RSA數據安全公司發起了一項「DES挑戰賽」的活動,志願者四次分別用四個月、41天、56個小時和22個小時破解了其用56位密鑰DES演算法加密的密文。即DES加密演算法在計算機速度提升後的今天被認為是不安全的。
AES是美國聯邦政府採用的商業及政府數據加密標准,預計將在未來幾十年裡代替DES在各個領域中得到廣泛應用。AES提供128位密鑰,因此,128位AES的加密強度是56位DES加密強度的1021倍還多。假設可以製造一部可以在1秒內破解DES密碼的機器,那麼使用這台機器破解一個128位AES密碼需要大約149億萬年的時間。(更深一步比較而言,宇宙一般被認為存在了還不到200億年)因此可以預計,美國國家標准局倡導的AES即將作為新標准取代DES。
l 不對稱加密演算法
不對稱加密演算法使用兩把完全不同但又是完全匹配的一對鑰匙—公鑰和私鑰。在使用不對稱加密演算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時採用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。不對稱加密演算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密信息,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。顯然,採用不對稱加密演算法,收發信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由於不對稱演算法擁有兩個密鑰,因而特別適用於分布式系統中的數據加密。廣泛應用的不對稱加密演算法有RSA演算法和美國國家標准局提出的DSA。以不對稱加密演算法為基礎的加密技術應用非常廣泛。
2. 非對稱加密演算法有哪些,安全性能對比
常見的非對稱加密演算法有:RSA、ECC(移動設備用)、Diffie-Hellman、El Gamal、DSA(數字簽名用)
Hash演算法
Hash演算法特別的地方在於它是一種單向演算法,用戶可以通過Hash演算法對目標信息生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標信息。因此Hash演算法常用在不可還原的密碼存儲、信息完整性校驗等。
常見的Hash演算法有MD2、MD4、MD5、HAVAL、SHA
加密演算法的效能通常可以按照演算法本身的復雜程度、密鑰長度(密鑰越長越安全)、加解密速度等來衡量。上述的演算法中,除了DES密鑰長度不夠、MD2速度較慢已逐漸被淘汰外,其他演算法仍在目前的加密系統產品中使用。
3. 非對稱加密演算法的主要演算法
RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
使用最廣泛的是RSA演算法,Elgamal是另一種常用的非對稱加密演算法。
Elgamal由Taher Elgamal於1985年發明,其基礎是DiffieˉHellman密鑰交換演算法,後者使通信雙方能通過公開通信來推導出只有他們知道的秘密密鑰值[DiffieˉHellman]。DiffieˉHellman是Whitfield Diffie和Martin Hellman於1976年發明的,被視為第一種 非對稱加密演算法,DiffieˉHellman 與RSA的不同之處在於,DiffieˉHellman不是加密演算法,它只是生成可用作對稱密鑰的秘密數值。在DiffieˉHellman密鑰交換過程中,發送方和接收方分別生成一個秘密的隨機數,並根據隨機數推導出公開值,然後,雙方再交換公開值。DiffieˉHellman演算法的基礎是具備生成共享密鑰的能力。只要交換了公開值,雙方就能使用自己的私有數和對方的公開值來生成對稱密鑰,稱為共享密鑰,對雙方來說,該對稱密鑰是相同的,可以用於使用對稱加密演算法加密數據。
與RSA相比,DiffieˉHellman的優勢之一是每次交換密鑰時都使用一組新值,而使用RSA演算法時,如果攻擊者獲得了私鑰,那麼他不僅能解密之前截獲的消息,還能解密之後的所有消息。然而,RSA可以通過認證(如使用X.509數字證書)來防止中間人攻擊,但Diff ieˉHellman在應對中間人攻擊時非常脆弱。
4. 非對稱加密演算法的意義是什麼
流程上有問題!流程如果是如下這樣就不會有問題:
A 產生「加密金鑰」跟「解密金鑰」
A 把「加密金鑰」傳給 B
B 使用「加密金鑰」加密訊息
B 把加密訊息傳給給 A
在這個過程中「解密金鑰」一直在A手裡,並沒有任何傳遞。
因此除了A以外的任何人,沒有辦法從將加密訊息解密,包含B自己本身。
5. java 非對稱加密演算法有哪些
1、初始化密鑰 構建密鑰對,生成公鑰、私鑰保存到keymap中
KeyPairGenerator ---> KeyPair --> RSAPublicKey、RSAPrivateKey
2、甲方使用私鑰加密, 加密後在用私鑰對加密數據進行數據簽名,然後發送給乙方
RSACoder.encryptByPrivateKey(data, privateKey);
RSACoder.sign(encodedData, privateKey);
3、乙方則通過公鑰驗證簽名的加密數據,如果驗證正確則在通過公鑰對加密數據進行解密
RSACoder.verify(encodedData, publicKey, sign);
RSACoder.decryptByPublicKey(encodedData, publicKey);
4、乙方在通過公鑰加密發送給甲方
RSACoder.encryptByPublicKey(decodedData, publicKey);
5、甲方通過私鑰解密該數據
RSACoder.decryptPrivateKey(encodedData, privateKey);
6. 非對稱加密演算法是什麼
非對稱加密(公鑰加密):指加密和解密使用不同密鑰的加密演算法,也稱為公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業中有n個用戶,企業需要生成n對密鑰,並分發n個公鑰。假設A用B的公鑰加密消息,用A的私鑰簽名,B接到消息後,首先用A的公鑰驗證簽名,確認後用自己的私鑰解密消息。由於公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得 十分簡單。同時,由於每個用戶的私鑰是唯一的,其他用戶除了可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以通過數字簽名確保發送者無法否認曾發送過該信息。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
7. 非對稱加密演算法的演算法區別
非對稱加密演算法與對稱加密演算法的區別
首先,用於消息解密的密鑰值與用於消息加密的密鑰值不同;
其次,非對稱加密演算法比對稱加密演算法慢數千倍,但在保護通信安全方面,非對稱加密演算法卻具有對稱密碼難以企及的優勢。
為說明這種優勢,使用對稱加密演算法的例子來強調:
Alice使用密鑰K加密消息並將其發送給Bob,Bob收到加密的消息後,使用密鑰K對其解密以恢復原始消息。這里存在一個問題,即Alice如何將用於加密消息的密鑰值發送給 Bob?答案是,Alice發送密鑰值給Bob時必須通過獨立的安全通信信道(即沒人能監聽到該信道中的通信)。
這種使用獨立安全信道來交換對稱加密演算法密鑰的需求會帶來更多問題:
首先,有獨立的安全信道,但是安全信道的帶寬有限,不能直接用它發送原始消息。
其次,Alice和Bob不能確定他們的密鑰值可以保持多久而不泄露(即不被其他人知道)以及何時交換新的密鑰值
當然,這些問題不只Alice會遇到,Bob和其他每個人都會遇到,他們都需要交換密鑰並處理這些密鑰管理問題(事實上,X9.17是一項DES密鑰管理ANSI標准[ANSIX9.17])。如果Alice要給數百人發送消息,那麼事情將更麻煩,她必須使用不同的密鑰值來加密每條消息。例如,要給200個人發送通知,Alice需要加密消息200次,對每個接收方加密一次消息。顯然,在這種情況下,使用對稱加密演算法來進行安全通信的開銷相當大。
非對稱加密演算法的主要優勢就是使用兩個而不是一個密鑰值:一個密鑰值用來加密消息,另一個密鑰值用來解密消息。這兩個密鑰值在同一個過程中生成,稱為密鑰對。用來加密消息的密鑰稱為公鑰,用來解密消息的密鑰稱為私鑰。用公鑰加密的消息只能用與之對應的私鑰來解密,私鑰除了持有者外無人知道,而公鑰卻可通過非安全管道來發送或在目錄中發布。
Alice需要通過電子郵件給Bob發送一個機密文檔。首先,Bob使用電子郵件將自己的公鑰發送給Alice。然後Alice用Bob的公鑰對文檔加密並通過電子郵件將加密消息發送給Bob。由於任何用Bob 的公鑰加密的消息只能用Bob的私鑰解密,因此即使窺探者知道Bob的公鑰,消息也仍是安全的。Bob在收到加密消息後,用自己的私鑰進行解密從而恢復原始文檔。
8. 非對稱加密的主要演算法有哪些
非對稱加密(公鑰加密):指加密和解密使用不同密鑰的加密演算法,也稱為公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業中有n個用戶,企業需要生成n對密鑰,並分發n個公鑰。假設A用B的公鑰加密消息,用A的私鑰簽名,B接到消息後,首先用A的公鑰驗證簽名,確認後用自己的私鑰解密消息。由於公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得 十分簡單。同時,由於每個用戶的私鑰是唯一的,其他用戶除了可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以通過數字簽名確保發送者無法否認曾發送過該信息。
9. 非對稱加密演算法有哪些
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在計算秘鑰的過程中,部分因子使用了橢圓曲線演算法。