Encryption
如何使用加法創建安全加密方案?
您有一個 4 位長 PIN 碼,每個數字的範圍從 0 到 9,您希望對其進行加密。然後,您將獲得一個從 0 到 9999 的隨機 4 位數字,當將其添加到原始 PIN 時,應該會給出一個完全安全的加密數字。
現在很明顯,只需將兩個數字相加就會產生不均勻分佈(高斯曲線),例如 PIN 為
0000
且隨機數為0001
,您可以放心,原始 PIN 為0000
或0001
,而如果兩個整數加起來到 9999,有 19998 個可能的結果。所以我最初的想法是對總和應用 10000 的 mod(因為有 10000 種可能的組合)應該會導致均勻分佈,從而使這個加密方案非常安全。現在老實說,我真的不知道如何證明這一點,但我的主要問題是如何將這個毫無意義的數字轉換回原始 PIN?這實際上(可能無效)完全安全嗎?這個練習的重點是兩個使用者只有隨機數的常識,所以我認為沒有任何模指數技巧是可以使用的。
您對加法模 10000 的想法是正確的。正確性源於以下事實 $ \mathbb{Z}_{10000} = {0, 1, \dots, 9999} $ 配備加法模 $ 10000 $ 形成一個(有限)群。
讓 $ m \in \mathbb{Z}{10000} $ 表示 PIN 碼。現在選擇一個均勻隨機的元素 $ r \in \mathbb{Z}{10000} $ 並定義 $ c = m + r \bmod 10000 $ . 很容易看出 $ c $ 是均勻隨機元素 $ \mathbb{Z}_{10000} $ .
將兩個數字相加,並僅保留低 4 位數字。要反轉,請添加 10000,然後減去第二個數字並再次僅保留低 4 位。奇蹟般有效。