我知道一个仿射密码用BD代替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
我找不到带有26(y = ax + b mod 26
)
任何人都可以帮我找一个和b?
答案 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个等式,看看是否有效:
以上是什么问题?
编辑:好的,现在我看到尝试在非素数模数中除以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求解原始方程。
请注意,这意味着您没有唯一确定您的仿射变换,仍然存在两种可能性。您需要另一个数据点...