Подстановочные и перестановочные шифры
Классификация методов криптопреобразования по принципу размещения символов в шифре: подстановочные, перестановочные и подстановочно-перестановочные шифры.
Подстановочные шифры.Сущность подстановочного шифрования состоит в том, что, как правило, исходный (М) или зашифрованный текст (С) используют один и тот же алфавит, а ключом является алгоритм подстановки. Такой шифр называется простым, или моноалфавитным. Если используется несколько алфавитов – полиалфавитным.
Пример моноалфавитного шифра – шифр Цезаря: символы исходного алфавита заменяются символами того же алфавита со сдвигом на 3 символа вправо: «A» меняется на «D», «B» – на «E», «W» – на «Z», «X» – на «A» и т. д. (в некоторых случаях во внимание принимается 27-й символ – пробел). Для расшифрования необходимо выполнить обратную замену.
Пример1.
Имеем открытый текст М = «cade». На основе шифра Цезаря С = «gdqh».
Недостаток: такие шифры легко взламываются, поскольку не скрывают частоту (вероятность) применения различных символов в открытом тексте.
Перестановочные шифры.Перестановочные шифры используют перестановку символов исходного сообщения в соответствии с установленным правилом, открытый текст остается неизменным, но символы в нем «перетасовываются». Так, в простом вертикальном перестановочном шифре открытый текст пишется по горизонтали на разграфленном листе бумаги фиксированной длины, а шифртекст считывается по вертикали.
Пример2.
М = «ИНФОРМАТИКА». Запишем этот текст как показано левее.
и | н | ф |
о | р | м |
а | т | и |
к | а |
Считывание по столбцам снизу вверх приводит к такому шифр-тексту: С = «КАОИАТРН_ИМФ».
Принцип записи исходного сообщения и порядок считывания символов может быть различным.
Пример3.
Открытый текст М = «ВАСЯ_ЛЮБИТ_МАШУ», а запишем его так, как показано на рис. ниже.
Осуществляя считывания по уровням, начиная с верхнего, получим следующий шифртекст: С = «СЮ_УАЯЛБТМШВ_ИА».
Существуют еще более сложные перестановочные шифры, но компьютеры достаточно быстро справляются с ними. При этом использование данных шифров требует большого объема памяти.