Cifra de Transposição
Cifra de Transposição é um algoritmo criptográfico em que a ordem dos alfabetos no texto simples é reorganizada para formar um texto cifrado. Nesse processo, os alfabetos em texto simples não são incluídos.
Exemplo
Um exemplo simples de cifra de transposição é columnar transposition cipheronde cada caractere no texto simples é escrito horizontalmente com a largura do alfabeto especificada. A cifra é escrita verticalmente, o que cria um texto cifrado totalmente diferente.
Considere o texto simples hello world, e vamos aplicar a técnica de transposição colunar simples, conforme mostrado abaixo
Os caracteres de texto simples são colocados horizontalmente e o texto cifrado é criado com formato vertical como : holewdlo lr. Agora, o receptor precisa usar a mesma tabela para descriptografar o texto cifrado em texto simples.
Código
O código do programa a seguir demonstra a implementação básica da técnica de transposição colunar -
def split_len(seq, length):
return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
order = {
int(val): num for num, val in enumerate(key)
}
ciphertext = ''
for index in sorted(order.keys()):
for part in split_len(plaintext, len(key)):
try:ciphertext += part[order[index]]
except IndexError:
continue
return ciphertext
print(encode('3214', 'HELLO'))
Explicação
Usando a função split_len(), podemos dividir os caracteres de texto simples, que podem ser colocados em formato de coluna ou linha.
encode O método ajuda a criar texto cifrado com chave especificando o número de colunas e imprime o texto cifrado lendo caracteres em cada coluna.
Resultado
O código do programa para a implementação básica da técnica de transposição colunar fornece a seguinte saída -
Note- Os criptanalistas observaram uma melhoria significativa na segurança criptográfica quando a técnica de transposição é realizada. Eles também observaram que criptografar novamente o texto cifrado usando a mesma cifra de transposição cria melhor segurança.