如何在密碼學中使用活板門?
給定一個陷門函式,有沒有辦法以一種簡單的方式概括地解釋它將如何在密碼系統中使用?我正在為高中寫一個項目,我正在尋找一種方法來解釋為什麼陷門函式如此有用。
陷門單向函式最直接的用途是創建非對稱密碼系統,例如公鑰加密 (PKE)、密鑰封裝機制 (KEM) 和數字簽名。
類比
活板門單向功能就像一個鎖箱,以打開的配置提供給使用者。任何使用者都可以將物品放入盒子內,然後合上蓋子,這樣就可以將鎖鎖住。只有擁有鑰匙的人才能打開盒子獲得里面的物品。
在這個比喻中,鎖箱本身就是公鑰,而打開盒子的鑰匙就是私鑰。
- 說公鑰是某種鎖箱製造設備可能更準確,但類比只需要如此準確即可。
- 此外,為了簡單起見,我們假設只能用適當的鑰匙打開盒子。
公鑰加密
公鑰加密使任何人都可以加密只能由單個目標收件人解密的消息。這可以通過陷門功能來完成。
使用鎖箱的類比來執行公鑰加密很簡單:只需將您的消息放入鎖箱,合上蓋子,然後將結果發送給密鑰持有人。他們是唯一可以打開盒子並檢索消息的人。
密鑰封裝機制
PKE 技術的缺點是,如果你想發送一個大消息,你可能會在盒子裡沒有空間。解決方案是使用盒子作為密鑰封裝機制。
要將活板門鎖盒用作 KEM,您可以寫下一條相對較小的隨機消息,然後將其插入到盒子中。然後,您使用該隨機消息作為對稱密碼的加密密鑰,並使用它來加密您實際的較大消息。
- 這還具有時間/空間效率更高的優點,因為對稱密碼比陷門花費更少的時間/空間來計算/儲存。
電子簽名
活板門功能的另一種用途是創建數字簽名。鎖箱的類比在這裡稍微有些失效,但希望您已經掌握了活板門功能所提供的不對稱性質。
給定私鑰和陷門函式的任意輸出,您可以*反轉輸出以找到產生它的相應輸入。如果沒有私鑰,其他任何人都無法做到這一點。
給定一個公鑰、一個隨機輸出和相應的輸入,我們可以使用公鑰和輸入來生成輸出。由於除了私鑰持有者之外的任何其他人都很難產生輸入,我們可以假設他們是產生輸入的人。這使我們能夠在不訪問私鑰的情況下驗證私鑰的擁有情況,這構成了數字簽名方案的基礎。我們可以向被認為持有私鑰的實體送出任意隨機輸出,如果他們可以返回相應的輸入,我們就知道我們正在與他們進行通信。
免責聲明
這是一個非常簡化的解釋,它故意忽略了許多細節——我假設提問者什麼都不知道/很少,並且不是在尋找一個嚴格正確的解釋。
*這不一定適用於所有活板門,但無論如何這是一個籠統的解釋,所以我們不會擔心。