乘法逆?

时间:2009-11-12 15:13:43

标签: security encryption computer-science discrete-mathematics

我知道一个仿射密码用BD代替BD。我需要以y = a x + b的形式找到加密公式,其中a和b是系数。 从上面的信息我最终得到方程式: a+b=183a+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

的乘法逆

我找不到带有26(y = ax + b mod 26

的数字2的乘法逆

任何人都可以帮我找一个和b?

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:2)

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

让我们检查2个等式,看看是否有效:

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

以上是什么问题?

编辑:好的,现在我看到尝试在非素数模数中除以2可能会出错,因为它类似于除以0.你可以采用ribond的建议使用中国剩余定理和将方程式分成另一对:

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

mod 2:a + b = 0。 3a + b = 0(注意这是相同的等式,并且有一对可能的解决方案,其中a和b为0或1。)

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

答案 2 :(得分: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求解原始方程。

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