2016-10-21 12 views
0

私はcypherのテキストをプレーンテキストに置きたいと思っています。しかし、そこにn! [ a, b, c, d ]エンコードする方法置換の置換

平野:nは、例えば文字

CYPHERの数である可能性[ x, y, z, m ]

だが、私は組み合わせの一つが正しいプレーンテキストであると確信しているとしましょう。私が知っている例で私は4があることを知っている!平文可能ですが、私は私の本当の問題にn個、私はあなたが手紙の周波数解析を行うために必要なコードやアルゴリズム

+0

暗号化されたテキストの大きさはどれくらいですか?その唯一の10文字が苦労するつもりなら –

+0

暗号化されたテキストの長さは270文字ですが、 – eneski

答えて

1

の作品を求めています10.

あるので、Pythonでそれを計算する必要があります。あなたは、これは平文意志を前提としていること

def test_solution(cypher,plaintext,encrypted_text): 
    tab = string.transtab(cypher,plaintext) 
    decrypted = encrypted_text.translate(tab) 
    return (englishFreqMatchScore(decrypted),plaintext, decrypted) 

tests = [test_solution(cypher,k,enc_text) for k in itertools.permutations(plain)] 
print "SOLUTION:",max(tests) 

のメモを書き込むことができるチュートリアルからソースコードを実装した後、ソースのpython

に周波数解析のためにそこにある

https://inventwithpython.com/hacking/chapter20.htmlそれについては、この記事を読んで英語で...文字の頻度は言語によって異なる(私は少なくとも思う)

残念ながらこの問題はnp難しいと思う...あなたが探索しなければならない最良の解決策を見つけるために解空間全体(Nは平文アルファベットの長さを増やすほど難しくなります...)

関連する問題