Шифруемся! Все что ты хотел знать о криптографии и алгоритмах шифрования

Xakep, номер #046, стр. 046-058-1


ManderX (forother@fromru.com)

Еще в далекие времена вопрос о приватном хранении информации был очень актуальным. Рассмотреть хотя бы Египет. Когда умирали фараоны, их тела мумифицировали, а затем их хоронили с папирусами. На них были написаны секретные слова, с помощью которых умерший мог попасть на небеса. Вскоре (около 2000 лет до н.э.) египтян перестали устраивать незашифрованные пароли, и они разработали основы криптографии! Ранняя криптография была примитивна и часто состояла в перестановке символов, например, "фараон" преобразуем в "нфоаар", алгоритм такого шифрования разгадать несложно. Небезызвестный Юлий Цезарь предпочитал один из таких способов шифрования, состоявший в сдвиге на три позиции вперед (например, буква "а" будет - "в").

Зачем все это читать?

Во-первых, возможно, тебе самому придется шифровать данные (помни: владеть инфой - значит тщательно хранить ее), и ты должен знать об алгоритмах шифровки, а также как шифровать. Во-вторых, наверняка ты часто вытаскивал /etc/passwd и скармливал их потрошителю (John the Ripper), так что тебе интересно будет узнать, как такие проги работают. В-третьих, лишних знаний просто не бывает.

Основные понятия

Криптография - от греческого kryptos (скрытый) и grapho (письмо). Т.е. это наука о скрытом письме. С помощью криптографии создается текст, который может прочитать только посвященный человек. Для остальных это будут непонятные символы.

Стенография - наука о размещение передаваемых данных, скрывающем наличие этой информации. Т.е. данные, например, можно скрепить с картинкой формата .jpg. Это не означает, что данные тяжело расшифровать, но чтобы декодировать, их надо сначала найти =)!

Виды шифрования:

1. Симметричное шифрование - вид шифрования, для кодирования и декодирования нужен один и тот же ключ (private key).

2. Асимметричное шифрование - вид шифрования, для кодирования и декодирования нужны два ключа, общедоступный и секретный. Яркий пример - PGP.

Алгоритмы резюмирования сообщений - алгоритмы, обеспечивающие высокую степень надежности, особенно хорошо подходят для проверки целостности файлов. Tripwire (о ней ][ тебе не раз писал) - программа, автоматически создающая моментальный снимок исходной ОС и генерирующая по алгоритму MD5 (или какому-нибудь другому) значения для последующего сравнения.

Как взламывают пароли

Интересно ли тебе узнать, как программы типа John the Ripper взламывают пароли? Очень просто! Допустим, у нас есть пароль в зашифрованном виде zJKJH75GA. Также нам известен алгоритм шифрования, например, DES (рассмотрим его чуть позже). Программа типа Джона берет слова из словаря, шифрует их с помощью алгоритма DES, а полученный результат сравнивает с zJKJH75GA. Если все сошлось, следовательно пароль, то слово, которое мы только что зашифровали. Таким образом, John the Ripper - это простой шифратор с функцией сравнения.

Алгоритмы шифрования и резюмирования сообщений

Рассматривать математический формулы мы не будем (не дай Бог, у кого котелок закипит), просто по ходу материала я буду давать ссылки, где ты сможешь узнать больше о каком-нибудь алгоритме. Так что пока просто рассмотрим различные типы шифрования:

Содержание  Вперед на стр. 046-058-2