В главе будет бегло рассмотрена история криптографии и изучены популярные криптографические алгоритмы, включая улучшенный стандарт шифрования AES, недавно принятый США для защиты важной информации на правительственном уровне. Будут рассмотрены причины широкого использования криптографии с открытым ключом и обмена ключами, а также вопросы их использования на практике. Будет показана теоретическая уязвимость практически всех криптографических алгоритмов к атаке «грубой силы» (атаки в лоб).
Попутно с рассмотрением возможностей криптографической защиты будет рассмотрено восстановление зашифрованных сообщений на примере взлома паролей и атак «злоумышленник посередине» (man-in-the-middle-type attacks). Также будут рассмотрены атаки, позволяющие разрушить систему защиты, основанную на плохой реализации криптостойких алгоритмов. В заключение будет показан способ легкого взлома устаревших криптографических алгоритмов.
Концепции криптографии
Что означает слово
Историческая справка
Фред Кохен (Fred Cohen) предал гласности документально подтвержденные факты использования криптографии в Древнем Египте более 4000 лет тому назад. Юлий Цезарь (Julius Caesar) использовал свой собственный способ шифровки писем, который получил название шифра Цезаря. Идея шифра Цезаря заключалась в замене каждой буквы на третью букву далее по алфавиту. Например,
Подобный шифру Цезаря алгоритм ROT13 (алгоритм сдвига символов на 13 позиций английского алфавита – примитивный способ скрытия электронных посланий от посторонних глаз) используется в системах UNIX до сих пор. Он не годится для хранения секретов в тайне. Алгоритм ROT13 больше подходит для скрытия решений ребусов, шуточных посланий и потенциально оскорбительного текста. Если же подобный текст будет расшифрован, то ответственность за возможно нанесенную обиду ляжет не на отправителя, а на того, кто расшифровал его. Например, мистер G. может получить приведенное ниже сообщение, расшифровав которое он, возможно, оскорбится. Но в зашифрованном виде сообщение никого обидеть не может: V guvax Jvaqbjf fhpxf.
Алгоритм ROT13 очень прост, для того чтобы с ним можно было работать с карандашом в руке и листком бумаги. Достаточно написать алфавит в два ряда со смещением второго ряда на тринадцать букв относительно первого:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
NOPQRSTUVWXYZABCDEFGHIJKLM
Типы криптосистем
В криптографии используется два типа криптосистем: