什麼情況下用私鑰加密公鑰解密,什麼情況下用公鑰加密私鑰解密?

時間 2021-12-21 18:17:24

1樓:JasonMing

提問有問題。

「加密」這個術語在非對稱裡面就隱含了使用「公鑰」的這個部分,不存在用「私鑰」來「加密」,就像你不可能在平面畫乙個內角和不等於180°的三角形。

你應該問的是「什麼情況下用私鑰編碼,公鑰解碼」。

這倆的含義差很遠,加密解密是encrypt/decrypt,編碼解碼是encode/decode

2樓:無念

先明確定義:

公鑰:公開的金鑰。

私鑰:私有的金鑰。

都是持有私鑰,把公鑰公開。

私鑰加密,公鑰解密=你用了私有金鑰加密,那麼這個內容一定是你寫的=你無法否認這不是你寫的,所以私鑰加密就是簽名。

公鑰加密,私鑰解密=別人用公鑰加密,你用私鑰檢視=這就是加密報文給你乙個人看,公鑰加密的過程就是加密。別人沒有私鑰,都看不了內容。

就是這樣。

3樓:

私鑰加密公鑰解密,稱之為簽名。簽名的目的是驗證訊息傳送者的身份,杜絕偽造。因為私鑰只有訊息傳送者有,所以只有傳送者才能製造訊息。

因為是公鑰,誰都可以解密,所以簽名不是為了保密,而是為了驗證身份。

公鑰加密私鑰解密,稱之為加密,也就是把明文變為加密文,只有接收者才能解讀內容。原理很簡單,需要通訊的時候接收者把公鑰發給傳送者(不怕洩漏,要不怎麼叫公鑰),傳送者用公鑰加密,把秘文發給接受者,半路上被截獲了也沒用,因為要解密需要私鑰,而私鑰只有接收者有。

4樓:仰觀與俯察

對於加密解密工作,任何時候都是公鑰加密,私鑰解密。如果反過來私鑰加密,因為公鑰公開,等於所有人都能解密,等於公開明文,就失去了加密的意義。

題主說的「私鑰加密公鑰解密」,僅僅是指在計算方式上有類似的效果,說法不嚴謹。例如簽名和驗籤。簽名是只有我能簽名,驗證簽名應該是所有人都可以驗證。

所以簽名用私鑰計算,驗籤用公鑰計算。

恰好對於RSA演算法,加解密和簽名驗籤計算方式是一樣的(其他演算法不是這樣),所以簽名驗籤就有了「私鑰加密公鑰解密」的感覺,其實只是巧合。

5樓:

很遺憾, @Serendipity 的回答是錯誤的,任何時候都是用公鑰加密,用私鑰解密

為什麼呢?因為我們說的是加密和解密,而不是其他的。

加解密的目的是保證資訊的私密性,而不是其他的。也就是說,只要我有乙個訊息 ,我用乙個金鑰 把它變成了 ,你從 裡得不到 的任何資訊,然後我通過 和 能把 恢復出來就皆大歡喜了。老早的時候 ,叫對稱加密;現在 和 可以不相等,就叫非對稱加密。

在非對稱加密中, 和 必然是成對出現的。我生成了一對之後,會公開 ,自己留著 .這樣別人給我發的訊息用 加密,只有我能用 解密,很完美。

在任何時候,我都不會用 去加密,讓別人用 解密,因為這毫無意義。

有人會說,這可以證明你是你啊,別人沒有私鑰,就無法加密,你證明了你有私鑰。

這種說法,從原則上說是對的,但現實中沒有這麼用的。同樣的功能,我們用乙個叫作「數字簽名」的密碼原語來實現。

數字簽名是建立在非對稱的基礎上的。也就是說每個使用者都會有一對金鑰,它會公開公鑰,自己儲存私鑰。當他需要證明他認可乙個訊息 時,他會用簽名演算法和自己的私鑰 對 進行簽名,得到簽名結果 。

而其他人則根據訊息 ,簽名 和公鑰 來驗證,得到一位元資訊(也就是1或0,代表驗證成功或失敗)。

(在這裡有必要強調一下,簽名無法恢復出任何關於訊息的資訊,即使你通過hash操作把訊息對映成了乙個很短的字串,你也無法恢復這段字串——或至少,簽名演算法不保證你能恢復)

注意,驗證簽名的演算法是需要原始的訊息作為輸入的,它的輸出只包含1位元。數字簽名 無法恢復訊息 ,只有 作為乙個三元組輸入時,我們才知道它們是不是匹配的。

注意到我們也可以用非對稱加密方案設計乙個簽名方案:簽名過程是用私鑰加密,驗證過程則是用公鑰對簽名解密,再和訊息作對比。若相等則輸出1,否則輸出0。

這說明用私鑰加密比數字簽名範圍更小,它是一種特殊的簽名構造方式。當我們面對「驗證身份」這類問題時,我們求助的是數字簽名方案,而非私鑰加密。就好像張三胃病犯了,他求助的可以是任何乙個醫院的腸胃科大夫,而不一定是XX醫院那個叫羅翔的腸胃科大夫,他也可以求助YY醫院的李四。

而在實際中,常用的簽名方案沒有任何一種是通過用私鑰加密這種方式實現的(RSA可以算是,但不完全是),所以你可以認為,任何情況下都不會用私鑰加密。(其實Full Domain Hash的簽名是這樣的,但其Hash函式屬於簽名的一部分,因此也很難說是在用私鑰加密)

這裡隨便舉乙個常用的數字簽名:Schnor簽名。

金鑰生成就是找乙個群,然後生成群元素 ,正整數 ,計算 . 以及群是公鑰, 是私鑰。

對於乙個訊息 ,隨機生成乙個正整數 ,計算 ,然後再計算 。其中 是個雜湊演算法, 是訊息,兩個豎線代表拼接。再算出 。簽名就是三元組

驗證時,只需要先算出 ,再驗證 是否成立即可。

注意這裡的驗籤雖然是在比較兩個雜湊值,但這個雜湊演算法不是對訊息的那個雜湊,而是簽名演算法的一部分。換句話說,即使把上述所有的訊息換成訊息的雜湊 ,上述簽名演算法同樣不是恢復出 再進行比較的。

最後一部分清楚地解釋了這個問題。

突然發現Katz的名著《Introduction to Modern Cryptography》裡解釋得很清楚:

6樓:呉邕

簽名私鑰加密,傳資訊公鑰加密。

私鑰關鍵在私,只有乙個人可以用。這個固定的人用私。

傳送方是加密方,接收方是解密方。

唯一的那個人用私,發加密,收解密。

所以發訊息只能乙個人收到,這叫加密。 它是乙個人,所以用私鑰,接受算解密,所以私鑰對方。解密,你髮用公鑰。

如果簽名,你想只能你簽名,所以是你用私,對方用公鑰解密驗證是你,別人沒法偽造。

7樓:

私鑰只有一把,自己儲存,要求保密,某種程度上代表了使用者的身份。公鑰可以配很多把,發給很多人,要求公開。公、私鑰成對出現。

私鑰加密公鑰解密:

如果乙個訊息能被乙個公鑰解密,那麼它一定是被這個公鑰對應的唯一一把私鑰加密的,因為公、私鑰一般成對出現。又由於私鑰一般只有一把,隸屬於某個人或機構。所以當訊息能被解密時,加密他的人的身份就不言而喻了。

其實這就是所謂的數字簽名

公鑰加密私鑰解密:

這就是一般理解的加密過程,沒什麼好說的。公鑰加密後的訊息,只有有對應私鑰的人才能解密。常用於典型的加解密場景。以上

8樓:Check-Null

用途不一樣

私鑰加密意味著知道你公鑰的都可以解密,所以通常用來數字簽名公鑰加密意味著只有你的私鑰才可以解密,所以通常用來訊息加密

9樓:月生

前提:私鑰只有自己知道,公鑰所有人都知道,由私鑰可推出公鑰,由公鑰推出私鑰在計算上不可行(在計算上不可行可以理解為用地球上所有的計算機計算,在地球毀滅之前算不出結果)

①當你想保證訊息的機密性(即除合法人員外的其他人無法獲取訊息內容)的時候,用接收者的公鑰加密,接收者收到訊息後,用自己的私鑰解密。這樣由於私鑰被接收者獨佔,其他人無法獲取訊息內容,保證了訊息的機密性;

②當你想保證訊息的不可否認性(即傳送者對自己傳送的訊息無法抵賴)的時候,用傳送者的私鑰加密,由於傳送者的公鑰所有人都知道,所以大家都能獲取訊息內容。但是私鑰是傳送者獨佔的,因此傳送者相當於對訊息進行了簽名操作,即保證了訊息的不可否認性。

10樓:小水

看下面例子:

我跟女友面對面,確認她真的是我女友後,我們互換了公鑰,這是前提(身份認證)。

然後,我想寫信給她「2021-12-15我想你了!」,不能讓其他人看到信件內容,這時,信件是用她的公鑰加密,密文可以通過公共通訊方式傳送出去。她收到後用她的私鑰解密,就看到信件原文(明文)。

別人也能拿到密文,但是看不到內容。她收到信後,用她的私鑰加密「2021-12-15已收到」,傳回來,我用她的公鑰解密,看到了訊息,確認我寫給她的信她確實收到了。

以上過程回答了你的問題。但上述有個很大問題就是,她是看到了信件內容(明文),但她無法確認一定是我發出的。因為她的公鑰正常是公開的。誰都可以通過這種方式發信給她。

擴散一下:她要確認是我發信給她可以這樣操作:

我寫信時,先「2021-12-15我想你了!」用我的私鑰加密,然後再用她的公鑰加密,再傳給她。她拿到後,先用她的私鑰解密,然後再用我的公鑰解密,就解決了。

11樓:WMXPY

非常簡單,只有你自己有私鑰,所有人都可以獲得公鑰。所以當你想發別人能確認這一定是你的資訊的時候私鑰加密。當別人想發只有你能看到的訊息的時候公鑰加密。

12樓:

擁有解密金鑰的人都能檢視訊息內容,所以看你希望有誰能檢視這條訊息就知道了。

密文→只希望通訊對端檢視→只有通訊對端擁有他的私鑰→用對端的公鑰加密

證書→希望所有人都可以檢視→所有人都擁有你的公鑰→用你自己的私鑰加密

為什麼非對稱加密演算法中,能用私鑰解密公鑰加密的內容?

以夢為馬 這是由加密演算法基於的數學問題決定的。加密演算法是基於數學上的困難問題,比如大整數分解 離散對數問題等。困難性能夠保證知道公鑰的前提下,無法獲知私鑰,而私鑰能夠正確解密出使用公鑰加密的訊息。我看前面已經有舉RSA的例子了,那我以EIGamal加密演算法為例吧,它的安全性基於計算離散對數的困...

什麼情況下用England,什麼情況下用Britain?兩者有什麼區別?

Yupeng 同級別比較 UK等同於中國 Britain相當於中國大陸 England相當於東部沿海地區。所以,你在蘇格蘭跟蘇格蘭人說,我超級喜歡England,相當於你在四川跟四川人說,我超級喜歡你們火鍋裡的涮羊肉蘸麻醬。 郭力特 常識問題,給 瘦嘟嘟兒and胖墩墩兒 和 懶癌研究中心 的答案挑個...

在什麼情況下可以用痘痘貼?

周舟 痘痘貼是一種水膠體敷料,本身沒有抗菌抗炎作用,而是利用親水性膠體可吸收滲出液的原理,將毛囊性炎性丘疹和膿包中的膿液及血液吸收,幫助癒合。痘痘貼適合三種情況 1 有膿頭的紅腫型痘痘,吸收膿液,加快癒合 對粉刺 沒有膿頭的痘痘,不起作用。2 平時有用手摸臉 擠壓痘痘壞習慣的,貼上痘痘貼,防止感染 ...