Encryption 将维格纳密码排列成列
据我所知,如果你将一个Vigenere密码排列成列,你可以使用重合度索引来找出密钥长度。 我正在努力编写一个算法,将一段文本排列成列 例如— 12345678910 如果期间为2,则会返回此信息- 1,3,5,7,9 2,4,6,8,10 并对每个字符串执行IOC测试 如该期间为3— 1,4,7,10 2,5,8 3,6,9 并对每个字符串执行IOC测试 等等。Encryption 将维格纳密码排列成列,encryption,vigenere,Encryption,Vigenere,据我所知,如果你将一个Vigenere密码排列成列,你可以使用重合度索引来找出密钥长度。 我正在努力编写一个算法,将一段文本排列成列 例如— 12345678910 如果期间为2,则会返回此信息- 1,3,5,7,9 2,4,6,8,10 并对每个字符串执行IOC测试 如该期间为3— 1,4,7,10 2,5,8 3,6,9 并对每个字符串执行IOC测试 等等。 我已经构建了一个IOC测试,但是我正在努力想一个算法来将文本分割成多个字符,关于如何像计算机科学家一样思考并构建这样的算法,有什么提示
我已经构建了一个IOC测试,但是我正在努力想一个算法来将文本分割成多个字符,关于如何像计算机科学家一样思考并构建这样的算法,有什么提示吗?如果你已经知道密钥长度,那就很简单了。如果你不知道密钥的长度,你必须通过熵来猜测它。以下是Python中的一个示例,例如:
if you_dont_know_key_length:
key_length = find_key_length_by_entropy(ciphertext)
columns = [ciphertext[i::key_length] for i in xrange(key_length)]
任何语言基本上都应该具有相同的构造(选择密文中的每个第n个元素)