1

2つのテキスト文字列を検索(生成しない)して、すべての非文字を削除して使用した後、1つの文字列を単純な置換で別の文字列に変換できるようにします。

これの動機は、確率分布を介して暗号を攻撃する方法をテストすることであると私が知っているプロジェクトから来ています。単純な換字式暗号で暗号化すると、一貫性のある他の何かに復号化できる、大きくて一貫性のあるプレーンテキストを見つけたいと思います。

これは2つの部分になり、コーパス内でそのような最長の文字列を見つけて、そのコーパスを取得します。


最初の部分は、最初の出現のシーケンスを連続させる置換の後に、文字列をキーオフしたBツリーを使用したある種の攻撃に慣れているように見えます。

HELLOWORLDTHISISIT
1233454637819a9b98

ツリーの各深さに基づいて文字列の最大値と長さを知ることに基づく少しの最適化と、残りはコーディングだけです。


他の部分はかなり複雑になります。検索するテキストの大きなコーパスを生成する方法は?ある種のインターネットスパイダーは、最大量のテキストにアクセスできるので理想的なアプローチのように見えますが、それをテキストだけにストリップする方法はありますか?

質問は; これをより良くする方法について何かアイデアはありますか?


編集:使用されていた暗号は、めちゃくちゃ基本的な26文字の換字式暗号です。

psこれは、私にとっておそらく実際のプロジェクトというよりも、思考実験です。

4

2 に答える 2

1

26あります!異なる置換暗号。これは、88 ビットを少し超える選択になります。

>>> math.log(factorial(26), 2)
88.381953327016262

英語のテキストのエントロピーは、少なくとも 1 文字あたり 2 ビット程度です。そのため、45 ~ 50 文字を超える文字のパッセージが偶然置換されて同等になることを合理的に期待することはできないように思われます。

大規模なコーパスには、まずグーテンベルク プロジェクトとウィキペディアがあります。英語版ウィキペディアのすべての XML ファイルのダンプは、ウィキペディアの Web サイトからダウンロードできます。

于 2008-12-08T01:16:15.557 に答える
0

「コヒーレント」でもある置換を生成するように少し多くのことを求めていると思います。これは、暗号化アルゴリズムがどのテキストがコヒーレントであるかを把握するためのAIの問題です。また、テキストが長いほど、「一貫性のある」結果を作成するのが複雑になります...暗号化するテキストである限り、「キー」が必要なポイントにすぐに近づきます。したがって、それを暗号化するという目的を完全に無効にします。

于 2008-12-07T21:52:20.837 に答える