Транспонирующий шифр

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- Криптоаналитики заметили значительное улучшение криптобезопасности при выполнении техники транспонирования. Они также отметили, что повторное шифрование зашифрованного текста с использованием того же шифра транспонирования обеспечивает лучшую безопасность.