【问题标题】:How to decrypt a vigenere columnar transposition cipher如何解密 vigenere 柱状转置密码
【发布时间】:2015-05-13 13:23:47
【问题描述】:

我正在通过旧考试,我的期末考试将在几天后完成。我想解密一个密文,它首先由 vigenere 加密,然后由 columna 转置加密。如何解密才能得到原始消息?

message -> rgyqhbmnwaazxcajittuzqyagkx
vigenere key -> final
columnar transposition key -> exam

我已经为此花费了几个小时,但没有得到任何结果。我首先想通过柱状解密,然后是 Vigenere。我认为输出应该看起来是英语,但我只是越来越垃圾。我的vigenere代码在下面,我想问题出在柱状上,我遇到的所有代码都以数字为键,但我有一个字母键。

def decrypt(message, password):
    decrypted = ''
    for i in range(0, len(message)):
        letter = ord(message[i]) - ord(password[i%len(password)]) + 65
        if letter < 65:
            letter += 26
        decrypted += chr(letter)
    return decrypted

谢谢

【问题讨论】:

    标签: python python-2.7 encryption transpose vigenere


    【解决方案1】:

    柱状换位确实以单词而不是数字为键。如果“考试”是关键,那么你从左边写出消息以四行写入,然后从上到下读取密文,从第 3 列开始,然后是第 1 列,然后是第 4 列,然后是第 2 列。顺序来自字母“e”、“x”、“a”、“m”的字母顺序:“2nd”、“4th”、“1st”、“3rd”。

    例如,加密“THIS IS THE MESSAGE”:

    E  X  A  M
    ----------
    T  H  I  S
    I  S  T  H
    E  M  E  S  
    S  A  G  E
    

    --> ITEG TIES SHSE HSMA

    即“ITEGTIESSSHSEHSMA”。

    要解密,请执行相反的操作。我不想为你解决你的作业,但我会说,当你通过“exam”的柱状转置正确解密时,你会发现一个以“nzrawq...”开头的字符串

    当您使用 vigenere 密码进一步解密该字符串时,您确实会发现英文单词,特别是以“ireallywant...”开头的字符串

    【讨论】:

    • 你不能把我训练得更好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多