Системы шифрования с частными ключами
Цель работы
Научиться шифровать данные, используя системы с частными ключами.
Краткие теоретические сведения
Системы шифрования с частными ключами также называются симметричными системами, потому что обе связывающиеся стороны имеют тот же самый ключ, а расшифровка – это просто обратное кодирование с помощью ключа. Преимущества: эти системы для данного уровня защиты обладают достаточно невысокой сложностью.
Перестановочные шифры
В перестановочных шифрах позиции символов сообщения изменяются, но значение сообщения остается неизменным. Простой шифр – это специальная таблица, куда сообщение вписывается одним способом, а затем считывается – другим. Например, сообщение вписывается в строки сетки, а считывается по столбцам. Все, что нужно сделать прослушивающему – это определить глубину сетки.
T | H | I | S | I | S | A |
M | E | S | S | A | G | E |
T | O | S | E | N | D |
Рис. 2 Простой перестановочный шифр
Усовершенствование этой методики состоит в том, чтобы читать столбцы сетки в более сложном порядке, чем просто слева направо. Для указания порядка считывания столбцов можно использовать ключевое слово, алфавитное упорядочивание букв которого и определяет порядок чтения столбцов. Например, если бы ключевым словом было слово cipher, то мы вписывали бы шифруемое сообщение в 6 столбцов, а затем считывали бы столбцы в следующем порядке 1(c), 5(e), 4(h), 2(i), 3(p), 6(r). Однако такая система остается все еще очень восприимчивой к нападению по методу проб и ошибок.
Трансформационные шифры
Моноалфавитный шифр
Самый простой тип трансформационного шифра должен брать каждый символ в сообщении и заменять его в зашифрованном тексте другим символом. Символы для зашифрованного текста обычно берутся из того же алфавита, что и сообщения, но это не обязательно. Система называется моноалфавитной из-за того, что каждый символ сообщения всегда преобразуется в один и тот же символ зашифрованного текста. Еще Юлий Цезарь использовал систему преобразования. Он заменял каждую букву сообщения на третью букву из того же алфавита. Термин “подстановка Цезаря” теперь применяется к любому шифру с подобным сдвигом между символами сообщения и алфавитом шифра, даже если этот сдвиг не равен трем. Более безопасной является произвольная подстановка, которая изменяет порядок подстановочных символов. Проблема со всеми моноалфавитными шифрами состоит в том, что их очень просто атаковать с использованием частотного анализа.
Другая проблема с произвольной подстановкой – длина ключа, т.к. должно быть определено преобразование каждого символа. Это непросто запомнить. В простой системе подобного рода, иногда называемой подстановкой Виженера используется специальное кодовое слово, чтобы определить несколько первых подстановок, и затем выставляются остальные буквы. Ключ в форме кодового слова легко запомнить, но шифр очень беден, т.к. последние символы алфавита (такие как w и y) вряд ли будут вообще зашифрованы.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
C | O | D | E | A | B | F | G | H | I | J | K | L | M | N | P | Q | R | S | T | U | V | W | X | Y | Z |
Рис. 3 Шифр с подстановками Виженера
Полиалфавитный шифр
Одним из способов преодоления атаки частного анализа является использование разных алфавитов преобразования, зависящих от позиции символа в сообщении. Данная система называется полиалфавитным шифром Веженера. В этом случае для определения числа подстановок Цезаря, которые будут использоваться для кодирования, применяется специальное кодовое слово. Например, пусть этим кодовым словом будет “code”. Оно определяет четыре алфавита, первый – со сдвигом 2, второй – со сдвигом 14, третий – со сдвигом 3 и четвертый со сдвигом 4.
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | |
c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | |
o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | |
d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | |
e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d |
а
T | H | I | S | I | S | A | M | E | S | S | A | G | E | T | O | B | E | C | O | D | E | D |
V | V | L | W | K | G | D | Q | G | G | V | E | I | S | W | S | D | S | F | S | F | S | G |
б
Рис. 4 Полиалфавитный шифр Веженера:
а – таблица шифрования
б – пример кодирования
Одноразовое заполнение
Можно расширить понятие полиалфавитного шифрования до системы, называемой одноразовым заполнением, которая является единственной полностью безопасной криптосистемой. В полиалфавитном шифровании существует проблема повторения ключа. В системе одноразового заполнения каждое сообщение шифруется с ключом, который потом сбрасывается и никогда не используется снова. Поэтому ключ используется только один раз, давая шифру его название. Криптограмма зависит от сообщения и ключа, но так как ключ уникален для данной передачи и никогда повторно не используется, то подслушивающий не имеет никакой возможности узнать его и взломать шифр. Процесс кодирования может быть очень простым – нужно просто добавлять ключ к
сообщению.
Рис. 5 Система одноразового шифрования
Проблема безопасной транспортировки зашифрованного сообщения заменяется проблемой транспортировки ключа эквивалентной длины и генерации такого ключа. Эта система подходит для посылки относительно небольшого количества очень высокозащищенных данных, в которой ключ можно надежно транспортировать только автономно.
Задания
1. Используя перестановочный шифр с глубиной сетки 8, закодируйте сообщение: “Takeover announcement will be made at noon tomorrow” (Объявление о слиянии компании будет сделано завтра утром).
2. Повторите кодирование, используя перестановочный шифр с ключевым словом “COLUMNAR” (которое используется для определения упорядочивания по столбцам).
3. Используя шифр Цезаря со сдвигом 4, закодируйте сообщение: “Now is the time for all good men to come to the aid of the part” (Для всех хороших людей настало время прийти на помощь партии).
4. Дешифруйте сообщение:
KWWS://ZZZ.DQtHQQD-PRGHOV.FRP/VHFUHt/LQGHA.htPO.
5. Используя шифр Виженера и ключевое слово “hide”, закодируйте”We must meet under the clock” (Мы должны встретиться под часами).
6. Используя поточный шифр и начальный ключ “D”, закодируйте сообщение: “The documents will be sent tomorrow” (Документы будут посланы завтра).
Контрольные вопросы
1. Какие системы называются системами шифрования с частными ключами?
2. Какие виды систем с частными ключами вы знаете?
3. В чем заключается подстановка Виженера?
Лабораторная работа № 3