當前位置:首頁 » 操作系統 » 非對稱密碼演算法與對稱密碼演算法

非對稱密碼演算法與對稱密碼演算法

發布時間: 2022-05-13 02:52:28

A. 什麼是對稱密碼演算法、非對稱密碼演算法SSL使用的是什麼演算法

概括的來說:對稱密碼就是加密與解密用同樣的密鑰, ,它的速度快非對稱密碼,加密用的與解密用的密鑰不相同,比如A,B是一對密鑰,加密用A那解密就要用B, ,它的速度慢以上只是大概的說明,詳細的話,可不是兩三句話的內容SSL中兩種技術都用,把兩種技術結合,非對稱技術用於加密會話密鑰,會話密鑰用來對稱的加密我們的消息,

B. 對稱加密演算法和非對稱加密演算法的區別是什麼

對稱演算法加解密速度快,密鑰對第3方保密,密鑰分發是個問題;
非對稱演算法,密鑰成對生成,公鑰對外發布,但是對大數據的加解密速度比對稱演算法慢。

C. 簡要說說對稱加密和非對稱加密的原理以及區別是什麼

對稱加密的原理是數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。

非對稱加密的原理是甲方首先生成一對密鑰同時將其中的一把作為公開密鑰;得到公開密鑰的乙方再使用該密鑰對需要加密的信息進行加密後再發送給甲方;甲方再使用另一把對應的私有密鑰對加密後的信息進行解密,這樣就實現了機密數據傳輸。

對稱加密和非對稱加密的區別為:密鑰不同、安全性不同、數字簽名不同。

一、密鑰不同

1、對稱加密:對稱加密加密和解密使用同一個密鑰。

2、非對稱加密:非對稱加密加密和解密所使用的不是同一個密鑰,需要兩個密鑰來進行加密和解密。

二、安全性不同

1、對稱加密:對稱加密如果用於通過網路傳輸加密文件,那麼不管使用任何方法將密鑰告訴對方,都有可能被竊聽。

2、非對稱加密:非對稱加密因為它包含有兩個密鑰,且僅有其中的「公鑰」是可以被公開的,接收方只需要使用自己已持有的私鑰進行解密,這樣就可以很好的避免密鑰在傳輸過程中產生的安全問題。

三、數字簽名不同

1、對稱加密:對稱加密不可以用於數字簽名和數字鑒別。

2、非對稱加密:非對稱加密可以用於數字簽名和數字鑒別。

D. 試比較對稱加密演算法與非對稱加密演算法在應用中的優缺點傳統密碼體制與公鑰密碼體制的優缺點

1、對稱加密演算法

優點

加解密的高速度和使用長密鑰時的難破解性。

缺點

對稱加密演算法的安全性取決於加密密鑰的保存情況,但要求企業中每一個持有密鑰的人都保守秘密是不可能的,他們通常會有意無意的把密鑰泄漏出去。如果一個用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有文檔,如果整個企業共用一個加密密鑰,那整個企業文檔的保密性便無從談起。

2、非對稱加密演算法

優點

非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了。這樣安全性就大了很多。

缺點

演算法強度復雜、安全性依賴於演算法與密鑰但是由於其演算法復雜,而使得加密解密速度沒有對稱加密解密的速度快。

3、傳統密碼體制

優點

由於DES加密速度快,適合加密較長的報文。

缺點

通用密鑰密碼體制的加密密鑰和解密密鑰是通用的,即發送方和接收方使用同樣密鑰的密碼體制。

4、公鑰密碼體制

優點

RSA演算法的加密密鑰和加密演算法分開,使得密鑰分配更為方便。

RSA演算法解決了大量網路用戶密鑰管理的難題。

缺點

RSA的密鑰很長,加密速度慢。

(4)非對稱密碼演算法與對稱密碼演算法擴展閱讀

W.Diffie和M.Hellman 1976年在IEEE Trans.on Information刊物上發表了「 New Direction in Cryptography」文章,提出了「非對稱密碼體制即公開密鑰密碼體制」的概念,開創了密碼學研究的新方向。

在通用密碼體制中,得到廣泛應用的典型演算法是DES演算法。DES是由「轉置」方式和「換字」方式合成的通用密鑰演算法,先將明文(或密文)按64位分組,再逐組將64位的明文(或密文),用56位(另有8位奇偶校驗位,共64位)的密鑰,經過各種復雜的計算和變換,生成64位的密文(或明文),該演算法屬於分組密碼演算法。

E. 對稱密鑰演算法與非對稱密鑰演算法有何區別

對稱密鑰演算法與非對稱密鑰演算法的區別
密碼學中兩種常見的密碼演算法為對稱密碼演算法(單鑰密碼演算法)和非對稱密碼演算法(公鑰密碼演算法)。

對稱密碼演算法有時又叫傳統密碼演算法,就是加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數對稱演算法中,加密解密密鑰是相同的。這些演算法也叫秘密密鑰演算法或單密鑰演算法,它要求發送者和接收者在安全通信之前,商定一個密鑰。對稱演算法的安全性依賴於密鑰,泄漏密鑰就意味著任何人都能對消息進行加密解密。只要通信需要保密,密鑰就必須保密。對稱演算法的加密和解密表示為:

Ek(M)=C

Dk(C)=M

對稱演算法可分為兩類。一次只對明文中的單個位(有時對位元組)運算的演算法稱為序列演算法或序列密碼。另一類演算法是對明文的一組位進行運算,這些位組稱為分組,相應的演算法稱為分組演算法或分組密碼。現代計算機密碼演算法的典型分組長度為64位――這個長度大到足以防止分析破譯,但又小到足以方便作用。

這種演算法具有如下的特性:

Dk(Ek(M))=M

常用的採用對稱密碼術的加密方案有5個組成部分(如圖所示)

l)明文:原始信息。

2)加密演算法:以密鑰為參數,對明文進行多種置換和轉換的規則和步驟,變換結果為密文。

3)密鑰:加密與解密演算法的參數,直接影響對明文進行變換的結果。

4)密文:對明文進行變換的結果。

5)解密演算法:加密演算法的逆變換,以密文為輸入、密鑰為參數,變換結果為明文。

對稱密碼術的優點在於效率高(加/解密速度能達到數十兆/秒或更多),演算法簡單,系統開銷小,適合加密大量數據。

盡管對稱密碼術有一些很好的特性,但它也存在著明顯的缺陷,包括:

l)進行安全通信前需要以安全方式進行密鑰交換。這一步驟,在某種情況下是可行的,但在某些情況下會非常困難,甚至無法實現。

2)規模復雜。舉例來說,A與B兩人之間的密鑰必須不同於A和C兩人之間的密鑰,否則給B的消息的安全性就會受到威脅。在有1000個用戶的團體中,A需要保持至少999個密鑰(更確切的說是1000個,如果她需要留一個密鑰給他自己加密數據)。對於該團體中的其它用戶,此種倩況同樣存在。這樣,這個團體一共需要將近50萬個不同的密鑰!推而廣之,n個用戶的團體需要N2/2個不同的密鑰。

通過應用基於對稱密碼的中心服務結構,上述問題有所緩解。在這個體系中,團體中的任何一個用戶與中心伺服器(通常稱作密鑰分配中心)共享一個密鑰。因而,需要存儲的密鑰數量基本上和團體的人數差不多,而且中心伺服器也可以為以前互相不認識的用戶充當「介紹人」。但是,這個與安全密切相關的中心伺服器必須隨時都是在線的,因為只要伺服器一掉線,用戶間的通信將不可能進行。這就意味著中心伺服器是整個通信成敗的關鍵和受攻擊的焦點,也意味著它還是一個龐大組織通信服務的「瓶頸」

非對稱密鑰演算法是指一個加密演算法的加密密鑰和解密密鑰是不一樣的,或者說不能由其中一個密鑰推導出另一個密鑰。1、加解密時採用的密鑰的差異:從上述對對稱密鑰演算法和非對稱密鑰演算法的描述中可看出,對稱密鑰加解密使用的同一個密鑰,或者能從加密密鑰很容易推出解密密鑰;②對稱密鑰演算法具有加密處理簡單,加解密速度快,密鑰較短,發展歷史悠久等特點,非對稱密鑰演算法具有加解密速度慢的特點,密鑰尺寸大,發展歷史較短等特點。

F. 什麼是對稱密碼演算法什麼是非對稱密碼演算法兩者各有什麼優缺點

對稱密碼演算法就是加密和解密用一樣的密鑰
非對稱加密就是加密和解密用不同的密鑰.非對稱加密的演算法復雜度一般比較高.但是在某些場合只能用非對稱的加密.

G. 對稱與非對稱加密演算法有何不同

在談到加密的時候,最新的不一定是最好的。你應該選擇那種合適的、已經被大量公開分析和測試過的加密演算法,因為在密碼學領域是沒有機會去嘗試一個新演算法的。讓我們來看看一些已經被廣泛應用的演算法。
對絕大多數人來說,加密就是將明文轉換為密文的過程,用密鑰(key)或者密碼(secret)來對內容進行加密和解密。這就是對稱加密,相對於其他類型的加密方法(如,非對稱加密),它速度更快。在對稱密匙加密中,應用最為廣泛的是AES(高級加密標准),它包含三個加密模塊:AES-128、AES-192和AES-256,其中任何一種都足以有效保護政府的機密(SECRET)信息,最高機密(TOP SECRET)採用的是192位或者256位長度的密鑰。
對稱密匙加密最大的缺點是:所有參與的部門在他們解密前必須交換他們用於加密的密鑰。這要求必須安全地發布和管理大量密鑰數據,也意味著大多數的密碼服務還需要其他類型的加密演算法。例如為了具備不可抵賴性(non-repudiation),Secure MIME(S/MIME)採用了一種非對稱演算法(公鑰/私鑰演算法),還使用了一種對稱演算法來對隱私和數據進行有效地保護。
非對稱加密演算法採用兩個相互依賴的密鑰:一個進行加密,另一個進行解密。這種相互依賴的關系提供了一些不同特性,其中最重要的也許是數字簽名,它可以確保一條信息被某個特定的實體或者遠程授權的系統或者用戶創建。RSA(Rivest,Shamir and Adleman)非對稱加密演算法被廣泛地應用於電子商務協議(如SSL),考慮到RSA提供了充分長的密鑰並利用了最新的實現方式,它被認為是安全的。由於RSA比對稱密碼要慢很多,所以典型的做法是對數據使用對稱演算法進行加密,然後再使用RSA演算法對較短的對稱密匙進行加密。這使得解密數據所需的密鑰可以安全地隨對稱加密數據一起傳到另一方。
在某種程度上,一個加密哈希的功能與其他加密演算法有所不同。例如,它可以返回一個數據、一個文件或者信息的值。一個好的哈希演算法能夠避免針對某個哈希值產生一個初始輸入,並禁止通過哈希值逆推出初始輸入。MD5和SHA-1曾是被廣泛應用的哈希演算法,但現在它們的加密強度都不夠了,已被SHA-244、SHA-256、SHA-384或SHA-512所代替(這些演算法有時會被統一看成是SHA-2演算法)。微軟甚至表示,早在2005年它就禁止開發者在任何場合都使用DES、MD4和MD5,在某些情況下甚至禁止使用SHA-1加密演算法。雖然針對SHA-2的各個版本還未出現任何攻擊報告,但它們在演算法上和SHA-1很相似,所以SHA-3在未來幾年將會以一種和AES相似的方式被選擇成為新的哈希方式。正如你所能看到的,密碼學領域總是在不斷的變化,並始終和最新的技術發展保持一致

H. 對稱加密演算法和非對稱加密演算法的區別是什麼

(一)對稱加密(Symmetric Cryptography)
對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key),這種方法在密碼學中叫做對稱加密演算法。對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。
對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。
2000年10月2日,美國國家標准與技術研究所(NIST--American National Institute of Standards and Technology)選擇了Rijndael演算法作為新的高級加密標准(AES--Advanced Encryption Standard)。.NET中包含了Rijndael演算法,類名叫RijndaelManaged,下面舉個例子。
加密過程:

private string myData = "hello";
private string myPassword = "OpenSesame";
private byte[] cipherText;
private byte[] salt = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0 };

private void mnuSymmetricEncryption_Click(object sender, RoutedEventArgs e)
{
var key = new Rfc2898DeriveBytes(myPassword, salt);
// Encrypt the data.
var algorithm = new RijndaelManaged();
algorithm.Key = key.GetBytes(16);
algorithm.IV = key.GetBytes(16);
var sourceBytes = new System.Text.UnicodeEncoding().GetBytes(myData);
using (var sourceStream = new MemoryStream(sourceBytes))
using (var destinationStream = new MemoryStream())
using (var crypto = new CryptoStream(sourceStream, algorithm.CreateEncryptor(), CryptoStreamMode.Read))
{
moveBytes(crypto, destinationStream);
cipherText = destinationStream.ToArray();
}
MessageBox.Show(String.Format("Data:{0}{1}Encrypted and Encoded:{2}", myData, Environment.NewLine, Convert.ToBase64String(cipherText)));
}
private void moveBytes(Stream source, Stream dest)
{
byte[] bytes = new byte[2048];
var count = source.Read(bytes, 0, bytes.Length);
while (0 != count)
{
dest.Write(bytes, 0, count);
count = source.Read(bytes, 0, bytes.Length);
}
}

解密過程:

private void mnuSymmetricDecryption_Click(object sender, RoutedEventArgs e)
{
if (cipherText == null)
{
MessageBox.Show("Encrypt Data First!");
return;
}
var key = new Rfc2898DeriveBytes(myPassword, salt);
// Try to decrypt, thus showing it can be round-tripped.
var algorithm = new RijndaelManaged();
algorithm.Key = key.GetBytes(16);
algorithm.IV = key.GetBytes(16);
using (var sourceStream = new MemoryStream(cipherText))
using (var destinationStream = new MemoryStream())
using (var crypto = new CryptoStream(sourceStream, algorithm.CreateDecryptor(), CryptoStreamMode.Read))
{
moveBytes(crypto, destinationStream);
var decryptedBytes = destinationStream.ToArray();
var decryptedMessage = new UnicodeEncoding().GetString(
decryptedBytes);
MessageBox.Show(decryptedMessage);
}
}

對稱加密的一大缺點是密鑰的管理與分配,換句話說,如何把密鑰發送到需要解密你的消息的人的手裡是一個問題。在發送密鑰的過程中,密鑰有很大的風險會被黑客們攔截。現實中通常的做法是將對稱加密的密鑰進行非對稱加密,然後傳送給需要它的人。

(二)非對稱加密(Asymmetric Cryptography)
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。
非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網路發送出去,因此安全性大大提高。
目前最常用的非對稱加密演算法是RSA演算法,是Rivest, Shamir, 和Adleman於1978年發明,他們那時都是在MIT。.NET中也有RSA演算法,請看下面的例子:
加密過程:

private byte[] rsaCipherText;
private void mnuAsymmetricEncryption_Click(object sender, RoutedEventArgs e)
{
var rsa = 1;
// Encrypt the data.
var cspParms = new CspParameters(rsa);
cspParms.Flags = CspProviderFlags.UseMachineKeyStore;
cspParms.KeyContainerName = "My Keys";
var algorithm = new RSACryptoServiceProvider(cspParms);
var sourceBytes = new UnicodeEncoding().GetBytes(myData);
rsaCipherText = algorithm.Encrypt(sourceBytes, true);
MessageBox.Show(String.Format("Data: {0}{1}Encrypted and Encoded: {2}",
myData, Environment.NewLine,
Convert.ToBase64String(rsaCipherText)));
}

解密過程:

private void mnuAsymmetricDecryption_Click(object sender, RoutedEventArgs e)
{
if(rsaCipherText==null)
{
MessageBox.Show("Encrypt First!");
return;
}
var rsa = 1;
// decrypt the data.
var cspParms = new CspParameters(rsa);
cspParms.Flags = CspProviderFlags.UseMachineKeyStore;
cspParms.KeyContainerName = "My Keys";
var algorithm = new RSACryptoServiceProvider(cspParms);
var unencrypted = algorithm.Decrypt(rsaCipherText, true);
MessageBox.Show(new UnicodeEncoding().GetString(unencrypted));
}

雖然非對稱加密很安全,但是和對稱加密比起來,它非常的慢,所以我們還是要用對稱加密來傳送消息,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發送出去。為了解釋這個過程,請看下面的例子:
(1) Alice需要在銀行的網站做一筆交易,她的瀏覽器首先生成了一個隨機數作為對稱密鑰。
(2) Alice的瀏覽器向銀行的網站請求公鑰。
(3) 銀行將公鑰發送給Alice。
(4) Alice的瀏覽器使用銀行的公鑰將自己的對稱密鑰加密。
(5) Alice的瀏覽器將加密後的對稱密鑰發送給銀行。
(6) 銀行使用私鑰解密得到Alice瀏覽器的對稱密鑰。
(7) Alice與銀行可以使用對稱密鑰來對溝通的內容進行加密與解密了。

(三)總結
(1) 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高。
(2) 非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。
電腦上可以試一下超級加密3000.具有文件加密、文件夾加密、數據粉碎、徹底隱藏硬碟分區、禁止或只讀使用USB存儲設備等功能。加密速度塊!並且還有防復制防移動防刪除的功能。每次使用加密文件夾或加密文件後不用再重新加密。而且使用也非常方便,安裝軟體後直接對需要加密的文件夾右擊,選擇超級加密或文件夾保護就可以了。

I. 什麼是對稱密碼和非對密碼,分析這兩種密碼體系的特點和應用領域

一、對稱密碼

1、定義:採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。

2、特點:演算法公開、計算量小、加密速度快、加密效率高。

3、應用領域:由於其速度快,對稱性加密通常在消息發送方需要加密大量數據時使用。

二、非對密碼

1、定義:非對稱密碼指的是非對稱密碼體制中使用的密碼。

2、特點:

(1)是加密密鑰和解密密鑰不同 ,並且難以互推 。

(2)是有一個密鑰是公開的 ,即公鑰 ,而另一個密鑰是保密的 ,即私鑰。

3、應用領域:很好的解決了密鑰的分發和管理的問題 ,並且它還能夠實現數字簽名。

(9)非對稱密碼演算法與對稱密碼演算法擴展閱讀

對稱加密演算法特徵

1、加密方和解密方使用同一個密鑰;

2、加密解密的速度比較快,適合數據比較長時的使用;

3、密鑰傳輸的過程不安全,且容易被破解,密鑰管理也比較麻煩

J. 論述題:對稱加密與非對稱加密的原理,並比較各自的優缺點

1、對稱加密演算法
優點:計算量小、加密速度快、加密效率高
缺點:密碼數量太多,難以管理
2、非對稱加密演算法
優點:安全且密碼數量少
缺點:速度較慢

熱點內容
集群伺服器地址都是一樣的嗎 發布:2024-10-10 01:07:39 瀏覽:325
java怎麼開平方 發布:2024-10-10 01:02:25 瀏覽:486
windowsserver更新伺服器搭建 發布:2024-10-10 00:42:32 瀏覽:657
kz解壓縮 發布:2024-10-10 00:27:19 瀏覽:668
方舟編譯器呢 發布:2024-10-10 00:13:41 瀏覽:914
阿里雲伺服器安裝圖形 發布:2024-10-09 23:40:45 瀏覽:863
cb編譯器怎麼下 發布:2024-10-09 23:37:38 瀏覽:8
編譯translation 發布:2024-10-09 23:24:23 瀏覽:10
伺服器cpu能供多少電腦使用 發布:2024-10-09 23:05:21 瀏覽:351
演算法和嵌入式 發布:2024-10-09 23:04:34 瀏覽:555