仿射密碼
仿射密碼加密思路:首先將明文乘以金鑰的一部分,然後再加上金鑰的剩餘部分。
假設 x,y,a,b\in Z_{26}\\ 加密:e_k(x) = y\equiv a·x + b\ mod\ 26\\ 解密:d_k(y) = x\equiv a^{-1}·(y-b)\ mod\ 26\\ 金鑰為:k = (a,b), 且滿足限制條件 gcd(a,26) = 1
解密可以很容易地從加密函式中推匯出來:
a·x+b\equiv y\ mod\ 26\\ a·x\equiv (y-b)\ mod \ 26\\ x\equiv a^{-1}·(y-b)\ mod\ 26
gcd(a, 26) = 1 這個限制條件來源於這樣一個事實:解密時需要求金鑰引數 a 的逆元。如果逆元存在,則元素 a 與模數必須為互素。因此, a 必須在如下集合中:
a\in \left\{1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 \right\}
那麼,我們怎樣找到a^{-1}?目前我們只能透過試錯法得到:對於給定的 a, 只需一次嘗試所有可能的值a^{-1}, 直到得到:
a·a^{-1}\equiv 1\ mod\ 26
本作品採用《CC 協議》,轉載必須註明作者和本文連結