Quadrado de Políbio, cifra Bifid

Published by Mubashir Hassan in

O Quadrado de Políbio básico é uma grade quadrada de 5x5 com as letras A-Z escritas nela. "I" e "J" normalmente compartilham uma casa (pois há 26 letras e apenas 25 casas).

12345
1ABCDE
2FGHI/JK
3LMNOP
4QRSTU
5VWXYZ

A cifra Bifid usa o quadrado de Políbio, mas adiciona uma camada de complexidade.

Comece com uma mensagem secreta. Remova os espaços e a pontuação.

plaintext = "ikilledmufasa"

Cifre a mensagem usando a cifra de Políbio básica (consulte meu desafio anterior — clique com o botão direito e selecione "abrir em uma nova aba"), mas escreva os números em duas linhas abaixo da mensagem, desta forma:

ikilledmufasa
2223311342141
4541154251131

Leia os números horizontalmente, em pares:

22 23 31 13 42 14 14 54 11 54 25 11 31

Gere o texto cifrado convertendo esses novos pares de números em novas letras usando o quadrado de Políbio.

ciphertext = "ghlcrddyaykal"

Crie uma função que receba um texto não cifrado ou um texto cifrado e retorne o texto cifrado ou o texto não cifrado correspondente.

Exemplos

bifid("I killed Mufasa!") ➞ "ghlcrddyaykal"

bifid("ghlcrddyaykal") ➞ "ikilledmufasa"

bifid("hi") ➞ "go"

Observações

N/A