Транспонирующий шифр
Transposition Cipher - это криптографический алгоритм, в котором порядок алфавитов в открытом тексте перестраивается для формирования зашифрованного текста. В этом процессе фактические текстовые алфавиты не включаются.
пример
Простой пример транспозиционного шифра: columnar transposition cipherгде каждый символ в простом тексте пишется по горизонтали с указанной шириной алфавита. Шифр пишется вертикально, что создает совершенно другой зашифрованный текст.
Рассмотрим простой текст hello world, и давайте применим технику простой столбчатой транспозиции, как показано ниже
Символы обычного текста размещаются по горизонтали, а зашифрованный текст создается с вертикальным форматом как : holewdlo lr. Теперь получатель должен использовать ту же таблицу для расшифровки зашифрованного текста в обычный текст.
Код
Следующий программный код демонстрирует базовую реализацию метода столбчатого транспонирования:
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'))
Объяснение
Используя функцию split_len(), мы можем разделить символы обычного текста, которые могут быть размещены в столбцовом или строчном формате.
encode Метод помогает создать зашифрованный текст с ключом, определяющим количество столбцов, и печатает зашифрованный текст, читая символы через каждый столбец.
Вывод
Программный код для базовой реализации метода столбчатого транспонирования дает следующий результат:
Note- Криптоаналитики заметили значительное улучшение криптобезопасности при выполнении техники транспонирования. Они также отметили, что повторное шифрование зашифрованного текста с использованием того же шифра транспонирования обеспечивает лучшую безопасность.