2

最初に、n文字のm配列があり、各配列には必要な単語の未知の (私にとっては) 文字が含まれています (条件: 単語には意味があります)。

たとえば、m = 4、n = 3: array0 = {' t '、' e '、' c '}、array1 = {' g ' ' o ' ' a '}、array2 = {' w ' ' d ' ' y '}、array3 = {' e ' ' o ' ' s '}. 各配列には、正しい文字が 1 つだけ含まれています。配列 0 では最初の文字、配列 1 では 2 番目の文字です。配列2[1] = '

既存の文字の組み合わせをすべて見つける必要があります。つまり、生成された無意味な単語を除外します。英語で「不可能な」音節/文字の組み合わせの規則/規則はありますか?

Vigenereの暗号を攻撃しています。だから、キーの長さとその可能性のある文字を知っています。配列をシャッフルして、意味のない単語をたくさん取得しています。問題はそれらをフィルタリングすることです。私が理解しているように、いくつかの条件は間違った単語を認識するのに役立ちます。たとえば、単語の長さが > 4 の場合、すべての母音文字またはすべての子音文字の単語が間違っています。kk *hh* wwなどの一部の音節も、一般に不可能です。そのようなルールはどこにありますか?

4

2 に答える 2

0

「単語には意味がある」というのは、英語の辞書に載っている単語だと思います。

GregS が提案するように、別の方向から問題に取り組み、辞書を調べるべきだと思います。英語には、文字や綴りに関して多くの例外があり、英語に見える単語の数は、実際の英単語の数よりもはるかに多くなります。そのようにして検索を大幅に削減することはできません。

しかし、長さと可能性のある文字を知っているので、多くの辞書の単語をすばやく捨てることができます. また、メッセージが短すぎない場合は、可能性のある単語でメッセージのデコードを試み、文字、ディグラム、またはトリグラムの頻度でありそうもないデコードを破棄することも非常に高速です。

于 2013-04-19T18:11:33.077 に答える
0

Vigenere暗号を攻撃するためのあなたの戦略に従っているかどうかはわかりません. ただし、次のように対応します。

既存の文字の組み合わせをすべて見つける必要があります。つまり、生成された無意味な単語を除外します。英語で「不可能な」音節/文字の組み合わせの規則/規則はありますか?

はい、確かにそのようなルールはたくさんあります。これらのルールを学習して実装するには、次の 2 つの方法があります。

  1. 英語の形態論をよく研究し、ルールを丁寧に実装する。
  2. 英語のテキストのコーパスでマルコフ モデルをトレーニングします。

1 は、追加のメリットがほとんどないため、作業が大幅に削減されます。

于 2013-12-13T20:37:24.913 に答える