本文科普詞條節選自 45 區(ID:block-45)《區塊鏈作弊手冊》

所有文字、插畫和創意都已登記版權,禁止任何形式轉載,我們會派出律師聲討一切侵權行爲

非對稱加密

設想一下,你是個頂級糊塗蟲,出差前不小心將室友的鑰匙裝包帶走了。現在你考慮用快遞服務來寄這把鑰匙,室友可能把爛番茄扔到你臉上,畢竟這麼做,鑰匙被中途拿走而帶來入室偷竊的風險實在太大了。

這描述了一個類似對稱加密的場景。接着想下去,究竟有什麼辦法能將“密鑰”安全地運輸呢?於是,人們發明了非對稱加密算法。

當使用非對稱加密算法時,會生成兩把配對的密鑰,其中一把由私人保管,無需傳輸,所以稱爲私鑰;另一把對外公佈,本身就無需保密,稱爲公鑰。

用了其中一把鑰匙加密的信息,只有配對的另一把鑰匙才能解密,所以公鑰和私鑰形成了唯一對應的關係。

正是基於這種唯一對應的關係,非對稱加密首先可以用來驗證信息發送方的身份。

比如你現在要發送一條信息,用非對稱加密的方法加密,生成了一把私鑰,一把公鑰。你自己保管着私鑰,接收方收到了你的公鑰,因爲公鑰和私鑰是配對的,接收方只要能用你的公鑰來解密這條信息,就能確認這條信息真是由你的私鑰來加密的,也就是可以驗明你是不是發送者本尊。

非對稱加密的另一個用法是保密傳輸。假設有個人想發送一條加密信息給你,你可以生成一把私鑰、一把公鑰,將公鑰發送給對方,讓他用這把公鑰加密後,再將信息發送給你,唯有你纔可以用手中的私鑰解密。

我們可以來看這樣一個真實的案例:有一個叫弗蘭克的美國人,他想鼓勵陌生人將自己的祕密寫下來寄給他,於是印刷了 3000 張帶有回信地址的明信片,站在華盛頓特區的大街上分發給陌生人。

這些祕密本身可以視作需要加密的信息,祕密的主人並不希望這些信息在網上流傳,而僅僅想要投遞給弗蘭克一個人。往弗蘭克那個公開的郵筒投信的舉動,可以類比成用公鑰加密。

只有弗蘭克自己擁有打開這個郵筒的鑰匙,所以只有他可以讀到這些祕密。這把鑰匙,就是私鑰。

驗證身份和保密傳輸,也是非對稱加密在區塊鏈領域最常見的應用場景。

掃碼關注 45 區