公鑰和私鑰技術的區別

時間 2022-05-05 14:32:30

1樓:匿名使用者

(一)對稱加密(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 = ;

private void mnusymmetricencryption_click(object sender, routedeventargs e)

messagebox.show(string.format("data:

encrypted and encoded:", mydata, environment.newline, convert.

tobase64string(ciphertext)));

}private void movebytes(stream source, stream dest)

}解密過程:

private void mnusymmetricdecryption_click(object sender, routedeventargs e)

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))

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

(二)非對稱加密(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)

encrypted and encoded: ",

mydata, environment.newline,

convert.tobase64string(rsaciphertext)));

}解密過程:

private void mnuasymmetricdecryption_click(object sender, routedeventargs e)

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) 解決的辦法是將對稱加密的金鑰使用非對稱加密的公鑰進行加密,然後傳送出去,接收方使用私鑰進行解密得到對稱加密的金鑰,然後雙方可以使用對稱加密來進行溝通。

2樓:代北的魚

回答公鑰加密和私鑰加密的最大區別是什麼?

用途不一樣 公鑰加密 為了保證資料的機密性 私鑰加密 為了保證資料的可靠性、完整性和操作不可否認性

您好,很高興為您服務,希望我的答案能幫助到你,希望能贊,請自動結束服務,謝謝您好,很高興為您服務,希望我的答案能幫助到你,希望能贊,請自動結束服務,謝謝

提問傳統營銷與網路營銷的區別體現在**

回答1.營銷理念不同

傳統市場營銷以顧客滿意為原則,其根本目標是通過滿足顧客的需求而實現企業價值,先有顧客的需求而後才有以需求為基礎的營銷活動,傳統營銷是滯後的。

2.營銷目標不同

傳統營銷策略的核心主要是圍繞產品、**、銷售渠道和**,它強調的是企業利潤的最大化;而網路營銷更加關注顧客、成本、便利、溝通,強調以顧客為中心,通過滿足顧客需求,為顧客提供優質、便利服務而實現企業價值,通過滿足顧客的個性化需求,最終實現企業利潤。

3.營銷方式不同

傳統的營銷方式以銷售者的主動推銷為主,使得顧客與企業之間的關係變得非常僵化,甚至於一些傳統的營銷方式給顧客帶來很多不便利,這是不利於企業長期發展的;網路營銷方式更加強調消費者為中心,企業提供優質服務,而消費者在需求的驅動之下主動通過網路尋求相關資訊,從而使企業與顧客的關係變為真正的合作關係,有利於長期發展。

4.營銷媒介不同

傳統的營銷活動主要是依靠營銷人員與顧客的直接接觸與通過廣告的形式對顧客進行轟炸,使顧客被動接受;而網路營銷主要是以網路為基本平台,可以通過計算機、手機、電視機等網路終端為顧客提供服務而實現營銷的目的。

更多10條

非對稱加密演算法公鑰和私鑰各用於什麼目的

3樓:匿名使用者

公鑰密碼體制的核心思想是:加密和解密採用不同的金鑰。這是公鑰密碼體制和傳統的對稱密碼體制最大的區別。

對於傳統對稱密碼而言,密文的安全性完全依賴於 金鑰的保密性,一旦金鑰洩漏,將毫無保密性可言。但是公鑰密碼體制徹底改變了這一狀況。在公鑰密碼體制中,公鑰是公開的,只有私鑰是需要保密的。

知道公鑰 和密碼演算法要推測出私鑰在計算上是不可行的。這樣,只要私鑰是安全的,那麼加密就是可信的。

顯然,對稱密碼和公鑰密碼都需要保證金鑰的安全,不同之處在於金鑰的管理和分發上面。在對稱密碼中,必須要有一種可靠的手段將加密金鑰(同時也是解密密 鑰)告訴給解密方;而在公鑰密碼體制中,這是不需要的。解密方只需要保證自己的私鑰的保密性即可,對於公鑰,無論是對加密方而言還是對密碼分析者而言都是 公開的,故無需考慮採用可靠的通道進行密碼分發。

這使得金鑰管理和金鑰分發的難度大大降低了。

加密和解密:傳送方利用接收方的公鑰對要傳送的明文進行加密,接受方利用自己的

私鑰進行解密,其中公鑰和私鑰匙相對的,任何乙個作為公鑰,則另乙個

就為私鑰.但是因為非對稱加密技術的速度比較慢,所以,一般採用對稱

加密技術加密明文,然後用非對稱加密技術加密對稱金鑰,即數字信封 技術.

簽名和驗證:傳送方用特殊的hash演算法,由明文中產生固定長度的摘要,然後利用

自己的私鑰對形成的摘要進行加密,這個過程就叫簽名。接受方利用

傳送方的公鑰解密被加密的摘要得到結果a,然後對明文也進行hash操

作產生摘要b.最後,把a和b作比較。此方式既可以保證傳送方的身份不

可抵賴,又可以保證資料在傳輸過程中不會被篡改。

首先要分清它們的概念:

加密和認證

首先我們需要區分加密和認證這兩個基本概念。

加密是將資料資料加密,使得非法使用者即使取得加密過的資料,也無法獲取正確的資料內容, 所以資料加密可以保護資料,防止監聽攻擊。其重點在於資料的安全性。身份認證是用來判斷某個身份的真實性,確認身份後,系統才可以依不同的身份給予不同的 許可權。

其重點在於使用者的真實性。兩者的側重點是不同的。

公鑰和私鑰

其次我們還要了解公鑰和私鑰的概念和作用。

在現代密碼體制中加密和解密是採用不同的金鑰(公開金鑰),也就是非對稱金鑰密碼系統,每個通訊方均需要兩個金鑰,即公鑰和私鑰,這兩把金鑰可以互為加解密。公鑰是公開的,不需要保密,而私鑰是由個人自己持有,並且必須妥善保管和注意保密。

公鑰私鑰的原則:

乙個公鑰對應乙個私鑰。

金鑰對中,讓大家都知道的是公鑰,不告訴大家,只有自己知道的,是私鑰。

如果用其中乙個金鑰加密資料,則只有對應的那個金鑰才可以解密。

如果用其中乙個金鑰可以進行解密資料,則該資料必然是對應的那個金鑰進行的加密。

非對稱金鑰密碼的主要應用就是公鑰加密和公鑰認證,而公鑰加密的過程和公鑰認證的過程是不一樣的,下面我就詳細講解一下兩者的區別。

事例說明下:

例如:比如有兩個使用者alice和bob,alice想把一段明文通過雙鑰加密的技術傳送給bob,bob有一對公鑰和私鑰,那麼加密解密的過程如下:

bob將他的公開金鑰傳送給alice。

alice用bob的公開金鑰加密她的訊息,然後傳送給bob。

bob用他的私人金鑰解密alice的訊息。

那麼bob怎麼可以辨認alice是不是真人還是冒充的.我們只要和上面的例子方法相反就可以了.

alice用她的私人金鑰對檔案加密,從而對檔案簽名。

alice將簽名的檔案傳送給bob。

bob用alice的公鑰解密檔案,從而驗證簽名。

通過例子大家應該有所了解吧!

資本公積和資本溢價的區別,「資本公積 資本溢價」與「資本公積 其他資本公積」有何區別?

1 定義不同。資本公積是指企業在經營過程中由於接受捐贈 股本溢價以及法定財產重估增值等原因所形成的公積金。資本溢價指有限責任公司投資者交付的出資額大於按合同 協議所規定的出資比例計算的部分。2 可以直接用於轉增資本的資本公積,包括資本 或股本 溢價 接受現金捐贈 撥款轉入 外幣資本折算差額和其他資本...

私募是什麼?和公募的區別是什麼,公募和私募,到底什麼區別?這東西到底是幹什麼的?

私募 與公募 區別如下 1 募集的物件不同。公募 的募集物件是廣大社會公眾,即社會不特定的投資者。而私募 募集的物件是少數特定的投資者,包括機構和個人。2.募集的方式不同。公募 募集資金是通過公開發售的方式進行的,而私募 則是通過非公開發售的方式募集,這是私募 與公募 最主要的區別。3.資訊披露要求...

專利無效宣告和現有技術抗辯的區別

專利無效宣告 抗辯 和現有技術抗辯都是專利糾紛制度中的被控侵權人對抗原告訴求的抗辯制度中的具體方式,除此之外,還有 不侵權抗辯 先用權抗辯等。專利無效宣告和現有技術抗辯的區別是 無效宣告抗辯需要向專利複審委員會提出無效宣告請求,指明涉案專利不符合專利法授權的規定,也就是說涉案專利本來就不應該被授權,...

私募基金和公募基金的區別,公募和私募基金有什麼區別

私募 與公募 區別如下 1 募集的物件不同。公募 的募集物件是廣大社會公眾,即社會不特定的投資者。而私募 募集的物件是少數特定的投資者,包括機構和個人。2.募集的方式不同。公募 募集資金是通過公開發售的方式進行的,而私募 則是通過非公開發售的方式募集,這是私募 與公募 最主要的區別。3.資訊披露要求...

私募基金的區別,公募和私募基金有什麼區別

募集的物件不同。公募 的募集物件是廣大社會公眾,即社會不特定的投資者。而私募 募集的物件是少數特定的投資者,包括機構和個人。募集的方式不同。公募 募集資金是通過公開發售的方式進行的,而私募 則是通過非公開發售的方式募集,這是私募 與公募 最主要的區別。資訊披露要求不同。公募 對資訊披露有非常嚴格的要...