2

最初,我有m个包含n 个字符的数组,其中每个数组包含所需单词的未知(对我而言)字符(条件:单词有意义)。

例如m =4,n =3:array0={' t ',' e ',' c ' },array1={' g''o''a ' } , array2= { ' w''d ' ' y '}, array3 = {'e''o ' 's ' }。每个数组只包含一个正确的字母:在array0中是第一个字母,在array1中-第二个......所以,可能的秘密词是' code ':array0[2] =' c ',array1[1] =' o ',数组2[1] = '

我需要找到所有现有的字母组合,即排除生成的无意义单词。英语中“不可能”的音节/字母组合是否有任何规则/规则?

我正在攻击 Vigenere 的密码。所以,我知道密钥的长度及其可能的字符。我正在改组我的数组并得到许多无意义的单词。问题是过滤它们。据我了解,某些条件可以帮助识别错误的单词。例如,如果字长 > 4,则所有元音字符或所有辅音字符都是错误的。某些音节,例如kk *hh* ww,一般来说也是不可能的。我在哪里可以找到这样的规则?

4

2 回答 2

0

我假设您所说的“单词有意义”是指它是英语词典中的单词。

我相信您应该按照 GregS 的建议从另一个方向解决问题,并通过字典。英语在字母和拼写方面有很多例外,看起来像英语的单词数量比实际的英语单词数量要多得多。您将无法以这种方式大幅减少搜索。

但是因为您知道长度和可能的字符,所以您可以快速抛出许多字典单词。此外,如果消息不是太短,那么尝试使用可能的单词对消息进行解码也会非常快,并通过字母、二字或三字频率丢弃不太可能的解码。

于 2013-04-19T18:11:33.077 回答
0

我不确定我是否遵循您攻击 Vigenere 密码的策略。然而,为了回应:

我需要找到所有现有的字母组合,即排除生成的无意义单词。英语中“不可能”的音节/字母组合是否有任何规则/规则?

是的,确实有很多这样的规则。有两种学习和实施这些规则的方法:

  1. 认真学习英语的词法,一丝不苟地执行规则。
  2. 在英文文本语料库上训练马尔可夫模型。

1 将大大减少工作量,而几乎没有额外的好处。

于 2013-12-13T20:37:24.913 回答