【发布时间】:2016-08-17 21:32:12
【问题描述】:
我目前使用 numpy 在 python 中创建了一个 3x3 矩阵(将每个值初始化为 0)。我想创建一个小型 python 程序,蛮力矩阵中每个可能的 KEY 组合。例如:
[1, 0, 0
0, 0, 0
0, 0, 0]
[1, 1, 0
0, 0, 0
0, 0, 0]
等等……一直到:
[9, 9, 9
9, 9, 9
9, 9, 9]
看起来很微不足道,但由于某种原因我无法理解它。 我这样做的原因是因为我想得到每个矩阵组合的逆(使用 numpy 很容易)并将它乘以另一个矩阵,直到我得到我正在寻找的解决方案......基本上我正在尝试对 Crypto Hill Cipher 进行暴力破解。
非常感谢您的帮助!
【问题讨论】:
-
什么是“KEY”组合?
-
你不是说
[[1, 0, 0], [0, 0, 0], [0, 0, 0]]吗? -
@user2357112:一个非奇异的 3x3 矩阵,在环中以字母表的大小为模(通常为 26,在本例中显然为 10)进行乘法运算。
-
如果它应该是非奇异的,那么这些例子似乎都不是有效的。
-
@user2357112:这是真的。提问者没有说,但希尔密码中的密钥必须有一个逆才能解密。我猜提问者的第一步是遍历所有内容,奇异矩阵稍后将被明确地消除,或者因为它们不可能是正确的键。我提到了它,以防有人知道在给定约束的情况下修剪搜索空间的方法。
标签: python numpy matrix brute-force