公鑰和私鑰的關係,什麼是公鑰和私鑰?

2022-03-09 16:48:56 字數 6716 閱讀 7648

1樓:酷星宇網路

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

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

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

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

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

一個公鑰對應一個私鑰。 金鑰對中,讓大家都知道的是公鑰,不告訴大家,只有自己知道的,是私鑰。 如果用其中一個金鑰加密資料,則只有對應的那個金鑰才可以解密。

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

2樓:仇巨集毅

現在很多對稱性加密演算法,都是產生一個金鑰對,就是你所問的公私鑰~一般來說公鑰是用來加密的~私鑰是用來解密的~私鑰是公開的,就是用在客戶端~而公鑰則是保密的~舉個例子吧~

由使用者名稱a,和公鑰3,可以得到一個序號5

那麼通過私鑰2,可以把序號5解密成a,

這樣就容易驗證序號的合法性,又不會失密~

3和2的確定是用一些特殊的函式做到的,他們之間有一定的關係,有3可以很容易的推出2來,但有2卻很難推出3來~

大體就是這個意思了~

請教pgp公鑰和私鑰的問題: 我不太懂公鑰和私鑰以及簽名的關係,請高手指點。

3樓:

1.公鑰和私鑰是一對經過演算法得出來的兩個檔案,一個私鑰只對應一個公鑰,也就是有唯一性

金鑰的路徑:*.pkr是公鑰 而 *.skr是私鑰

2.獲得別人的公鑰可以使用pgp 軟體裡的「搜尋」從「keyserver.pgp.

com」伺服器上找到。或者讓對方給你發一個公鑰給你。pgp一般用來發郵件較多,已經支待out look 或第三方郵件客戶端。

發郵件時pgp會檢測到有一個會話(pgp軟體裡可以設定加密方式:所有郵件,指定域名或收件人等等)他會自動查詢本地公鑰且加密傳送出去。要是隻發個檔案的話你可以用pgp軟體裡的「新建 pgp壓縮包」 加密分單獨設密碼或者用對方的公鑰加密。

3.pgp軟體介面左側:公鑰一般都在「全部金鑰」裡、個人的私鑰在「我的私鑰」裡。

「全部金鑰」裡存放的都是別人的公鑰包括你自己的,想把公鑰給別人的話在那個公鑰上」右鍵-->匯出.「即可(是一個*.asc的檔案)。

在選單「金鑰」裡有pgp金鑰環屬性。你會看到公私鑰存放的位置。

4.發郵時件如設定後pgp會自動加密解密。發檔案時在「新建 pgp壓縮包」 加密,週上第2點的後一句。

私鑰不會在別人那裡,只有在自己手裡。除非你發給對方,用對方的公鑰加密檔案,然後對方用自己的私鑰解密用自己公鑰加密的檔案,反之對方用你的公鑰加密發給你。

5.pgp生成的是一對公私鑰是兩個檔案,同上第1點。郵件加密的時候軟體自動幫你用對方的公鑰加密一般你不用管的。檔案加密時注意下發給誰的用誰的公鑰加密,因為有唯一性

追問:1.key中已校驗選項為灰色,不是綠色的勾,請問是否有影響,如有該怎麼修正

答:發郵件肯定會有影響,國為灰色的pgp軟體不會啟用,發郵件是會提示找不到公鑰,需要你手動簽下名,右鍵灰色公鑰「sign」簽名。這種情況一般是由於對方沒有在pgp伺服器上傳後驗證或是pgp軟體的bug.

2.傳送到伺服器的公鑰是跟郵箱掛鉤的,那也就可以直接攻擊郵箱後,重新制作公鑰,用製作公鑰傳送到伺服器替換原本公鑰,這樣就可以冒充原公鑰,用新私鑰解密。這就不安全了啊。

答:一個私鑰只對應一個公鑰,也就是有唯一性。別忘了私鑰只在自己手裡哦。

4樓:匿名使用者

1、pgp生成賬戶時在我的文件中會生成secring-bak(私鑰),pubring-bak(公鑰),匯出時不包含私鑰檔案為2k,包含時為4k,可以用記事本檢視

2、別人的公鑰肯定是別人給你,用自己的公鑰加密,別人是無法檢視的3、在匯出金鑰選擇不包含私鑰(預設沒有選擇),即為公鑰,可以通過金鑰大小或文字開啟檢視

4、不存在公鑰加密再私鑰加密,用誰的公鑰加密,誰才能解密5、看4就可以了,加密檔案時會提示選擇公鑰,可以選擇多個。

簽名: b跟a、c是朋友,c 不認識a,現在c要給a發個快遞,簽名就是b告訴c 地址是a的、沒錯,這就是簽名,,,,簽名是個信任問題,只能減小風險不能規避

什麼是公鑰和私鑰?

5樓:中國大地保險

公鑰和私鑰是通過一種演算法得到的一個金鑰對(即一個公鑰和一個私鑰),將其中的一個向外界公開,稱為公鑰;另一個自己保留,稱為私鑰。通過這種演算法得到的金鑰對能保證在世界範圍內是唯一的。使用這個金鑰對的時候,如果用其中一個金鑰加密一段資料,必須用另一個金鑰解密。

比如用公鑰加密資料就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功。

6樓:匿名使用者

現在很多對稱性加密演算法,都是產生一個金鑰對,就是你所問的公私鑰~一般來說公鑰是用來加密的~私鑰是用來解密的~私鑰是公開的,就是用在客戶端~而公鑰則是保密的~舉個例子吧~

由使用者名稱a,和公鑰3,可以得到一個序號5

那麼通過私鑰2,可以把序號5解密成a,

這樣就容易驗證序號的合法性,又不會失密~

3和2的確定是用一些特殊的函式做到的,他們之間有一定的關係,有3可以很容易的推出2來,但有2卻很難推出3來~

大體就是這個意思了~

金鑰裡面公鑰和私鑰有啥區別

7樓:匿名使用者

聽樓下腦殘的回答就是繞圈子,簡單點說就是一個放在伺服器,一個放在遠端機,do you know ?

8樓:匿名使用者

公鑰和私鑰或者稱非對稱金鑰和對稱金鑰是密碼體制的兩種方式。私鑰體制指加解密的金鑰相同或容易推出,因此加解密的金鑰都是保密的。公鑰體制指加解密金鑰彼此無法推出,公鑰公開,私鑰保密。

由上定義可知,公鑰私鑰是兩種不同的密碼體制,而不是兩個不同的應用或兩個不同的金鑰。因此在加密和簽名應用中,公鑰私鑰均可以使用。

公鑰和私鑰技術的區別

9樓:匿名使用者

(一)對稱加密(symmetric cryptography)

對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的金鑰(secret key),這種方法在密碼學中叫做對稱加密演算法。對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。

對稱加密通常使用的是相對較小的金鑰,一般小於256 bit。因為金鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個金鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果你的金鑰有1 mb大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。

金鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。

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

2023年,美國學者dime和henman為解決資訊公開傳送和金鑰管理問題,提出一種新的金鑰交換協議,允許在不安全的**上的通訊雙方交換資訊,安全地達成一致的金鑰,這就是「公開金鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。

非對稱加密為資料的加密與解密提供了一個非常安全的方法,它使用了一對金鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外洩,而公鑰則可以發給任何請求它的人。非對稱加密使用這對金鑰中的一個進行加密,而解密則需要另一個金鑰。

比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對訊息加密,那麼只有私鑰的持有人--銀行才能對你的訊息解密。與對稱加密不同的是,銀行不需要將私鑰通過網路傳送出去,因此安全性大大提高。

目前最常用的非對稱加密演算法是rsa演算法,是rivest, shamir, 和adleman於2023年發明,他們那時都是在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) 解決的辦法是將對稱加密的金鑰使用非對稱加密的公鑰進行加密,然後傳送出去,接收方使用私鑰進行解密得到對稱加密的金鑰,然後雙方可以使用對稱加密來進行溝通。

SSL中,公鑰,私鑰,證書的字尾名都是些啥

1 root bundle.crt是根證書鏈 公鑰 2 domainname.com.key為私鑰 其中 證書公鑰 私鑰檔案一般以域名命名 證書字尾名crt和cer ssl中,公鑰,私鑰,證書的字尾名都是些啥 linux 下的工具們通常使用 base64 編碼的文字格式,相關常用字尾如下 ssl中,...

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

區別如下 1 募集方式。公募,是通過公開發售來募集資金的 私募,是通過非公開發售來募集資金的。2 募集物件及門檻。3 產品規模。4 資訊披露。我的理解就是募集人群不一樣,公募是檯面上的,可以公開募集,這樣人數再多回都不能稱為非法集資答 私募不能上臺面,只能對極個別人募集,如果募集人數超過50人或更多...

公租房和廉租房的區別,什麼是公租房和廉租房

公租房與廉租房區別 一是申請物件不同。廉租房的申請物件僅限於本市城鎮低收入住房困難家庭,而公租房的申請物件不受區域和戶籍限制。二是收入限制標準不同。主城區申請廉租住房的收入限制標準為家庭人均月收入低於450元 申請公租房的收入限制標準為 單身人士月收入不高於2000元,家庭月收入不高於3000元。三...