私は、既知の言語で書かれた長い単一アルファベット置換暗号文の暗号解読に帰着する問題を研究しています。この問題は、Sinkov のElementary Cryptanalysisで説明されているように、頻度分析と単語パターンを使用して手動で簡単に解決できます。理論的に検証されたアルゴリズムを見つけるのに苦労しています: Joux のAlgorithmic Cryptanalysisはそのような初歩的な置換をカバーしていません.Gaines のCryptanalysis: A Study of Ciphers and Their Solution (他にどのようなリソースを参照すればよいですか?) .
いくつかのアプローチは非常に明白です。順番に各置換を決定し、次に既知のものを活用することは、途中で間違いを犯さない場合にのみ機能します。発見された有効な単語の数が最大になるまで文字を再割り当てするなど、メタヒューリスティックな最適化を採用すると、検索がいつ終了したかを判断するのが難しくなります。おそらく、バリエーションをテストするための動的プログラミングのアプローチが最適でしょう。または、この質問への回答には、他の単純な方法が含まれている可能性があります。
この種の問題を解決するための好ましいアルゴリズムは何ですか?