0

我知道仿射密码用 SG 代替 BD。我需要以 的形式找到加密公式,y = a x + b其中 a 和 b 是系数。根据上面的信息,我最终不得不方程: a+b=18所以 3a+b=6 我的工作是这样的:

a+b=18 and 3a + b = 6-> 3a+18-a=6->  2a= 6-18 -> 2a=14 (as it is mod 26)

b=18-a 

2a=? 

所以,O 想乘以2 mod 26

我找不到数字 2 与 26 ( y = ax + b mod 26)的乘法逆

谁能帮我找到a和b?

4

3 回答 3

4

那是因为 2 没有乘法逆模 26:因为 13*2=0,所以不存在 K 使得 K * a = 1。你的模数必须是素数。尝试查找中国剩余定理以获取更多信息。

更具体地说,整数 mod 26 不是一个字段(一个数学集合,其中除 0 之外的每个元素都有一个乘法逆元)。任何 a * b = 0 的环,对于某些 a!=0 和 b!=0,都不是一个域。

事实上,一个字段总是有 p^n 个元素,其中 p 是质数,n 是正整数。最简单的字段只是整数模素数,但对于素数幂,您需要构建一个更复杂的系统。因此,简而言之,使用不同的模数,例如 29。

于 2009-11-12T15:18:43.430 回答
2

a = 7 有效吗?2*7 = 14。因此,b = 11。

让我们检查两个方程,看看是否有效:

  • 7+11 = 18(检查第一个等式)。
  • 3*7+11=21+11=32=6。

以上有什么问题?

编辑:好的,现在我知道尝试在非素数模中除以 2 会出现什么问题,因为它类似于除以 0。您可以采用 ribond 的使用中国剩余定理的建议并拆分方程成另一对:

模式 13:a+b=5, 3a+b=6。(2a = 1 = 14 => a=7。b = 18-7 = 11。)

模 2:a+b=0。3a+b=0(注意这是同一个方程,并且有一对可能的解,其中 a 和 b 为 0 或 1。)

因此,我认为您的问题有独特的解决方案。

于 2009-11-12T15:19:01.997 回答
0

其他海报是正确的,因为没有 2 模 26 的倒数,所以你不能通过乘以 2 的倒数来解决 2a=14 mod 26。但这并不意味着 2a=14 mod 26 不是可解决的。

考虑一般方程 cx = d mod n (在您的情况下为 c=2,d=14,n=26)。令 g = gcd(c,n)。只有当 g 除以 d 时,方程 cx=d 才有解。如果 g 除以 d,则实际上有多个解(其中 g 个)。方程 (c/g)x = d/g mod n/g 具有唯一解(称为 x_0),因为 c/g 与 n/g 互质,因此具有逆。原方程的解是 x_0, x_0 + n/g, ..., x_0 + (g-1)n/g。

在您的情况下,c=2,d=14,n=26 和 g=2。g 除以 d,所以首先求解方程 (2/2)x = (14/2) mod (26/2),得到 7。所以 7 和 7+13=20 都求解原始方程。

请注意,这意味着您尚未唯一确定仿射变换,仍然存在两种可能性。您需要另一个数据点...

于 2010-01-05T04:51:43.317 回答