Pohlig-Hellman-Cipher

涉及模冪運算的密碼系統

  • April 28, 2021

我正在閱讀初等數論課程中的“密碼學導論”一章,其中我正在研究涉及模冪運算的密碼系統。

教科書(David M. Burton 著)說:

希望隱藏資訊的使用者可能會首先選擇一個(大)素數 p 作為加密模數,並選擇一個正整數 2 < k < p - 2,即加密指數。模數和指數都保密,必須滿足 gcd(k, p - 1) = 1。加密過程開始於通過“數字字母表”將消息轉換為數字形式 M,其中明文的每個字母替換為兩位整數。假設明文數M小於加密模數p;否則,將無法將 M 與與它模 p 相等的較大整數區分開來。

有人可以為我澄清最後一行(斜體)嗎?可能,通過舉例說明為什麼無法將 M 與與它模 p 相等的較大整數區分開來。當 M 大於 p 時究竟會發生什麼?

有人可以為我澄清最後一行(斜體)嗎?

好的,這是一個非常簡單的範例,說明可能會出現什麼問題。

舉一個非常簡單的例子,讓我們考慮 $ p=11 $ (比他們指定的要小,但它的作用是一樣的,它會使計算更簡單),和 $ k=3 $ .

假設我們要加密消息 $ m=2 $ ; 我們要加密的是計算 $ m^k \bmod p $ , 在這種情況下, $ 2^3 \bmod 11 = 8 \bmod 11 = 8 $ . 並且,稍後在文本中,他們將解釋如何解密。

但是,要回答您的問題,假設我們要嘗試加密消息 $ m=13 $ . 在這種情況下,我們會計算 $ 13^3 \bmod 11 = 2197 \bmod 11 = 8 $ . 也就是說,我們得到了完全相同的密文 $ m=2 $ ; 這意味著如果我們得到密文 $ 8 $ ,我們無法判斷原件是否 $ m $ 曾是 $ 2 $ 或者 $ 13 $ (預設情況下,我們假設它小於 $ p $ ,即, $ m=2 $ ).

事實證明,這種加密方法總是處理任何 $ m $ 完全相同的方式 $ m+p $ ; 因此,如果我們收到大於 $ p $ ,總會有一條較小的消息以相同的方式加密。

作為旁注,當我計算 $ m^k \bmod p $ , 我把它寫成 $ m^k $ 然後應用 $ \bmod p $ 手術。這適用於這些小玩具範例,但在實際案例中,我們將 $ m^k $ 成一系列模乘和平方,並在每次乘法/平方之後應用模運算。這與您的問題無關 - 我只是想預測未來可能的混亂來源。

引用自:https://crypto.stackexchange.com/questions/89657