- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Журнал «Компьютерра» № 9 от 06 марта 2007 года - Компьютерра
Шрифт:
Интервал:
Закладка:
Тем не менее есть надежда, что грядущие пять лет напряженных практических поисков кандидата на наилучшую хеш-функцию приведут и к заметным сдвигам в общей теории.
«Рабочая лошадка» криптографииВ отличие от более привычных терминов «шифр» или «ключ» словосочетание «однонаправленная хеш-функция» по сию пору может звучать замысловато даже для людей, достаточно близко знакомых с принципами работы компьютера и его программ. Однако суть этой конструкции прозрачна. Хеш-функция — это (с точностью до деталей) такое математическое преобразование, которое на входе получает файл или «сообщение» произвольной длины и вычисляет для него подающийся на выход «дайджест» (иначе именуемый также «хеш» или «цифровой отпечаток»), то есть последовательность фиксированной (сравнительно небольшой) длины и уникального вида. В принципе, все хеш-функции устроены примерно одинаково — как многократное повторение итераций (циклов) некоторого хитрого преобразования, постепенно ужимающего файл до длины дайджеста с одновременным мощным перемешиванием битов содержимого.
Всякая хорошая хеш-функция действует так, что даже единственное изменение байта или бита в файле на входе приводит на выходе к хеш-значению совершенно иного вида. Иногда даже требуют, чтобы при изменении единственного бита на входе менялось не менее половины битов на выходе — это условие называют лавинным свойством (avalanche property). Кроме того, чтобы быть полезной в криптографии, хеш-функция должна обладать еще двумя важнейшими свойствами.
Во-первых, криптографические хеш-функции должны быть однонаправленными. Под этим принято понимать легкое вычисление в одну сторону и невозможность вычисления в обратную. Иначе говоря, всегда можно и удобно подать нечто на вход и быстро получить соответствующее хеш-значение на выходе, однако нет никакой возможности за разумное время по выходному значению хеш-функции вычислить, что подавалось на вход.
Во-вторых, криптографические хеш-функции не должны иметь коллизий. Это означает, что хотя для каждого хеш-значения в принципе имеется бесконечное число вариантов входных последовательностей, нельзя отыскать два разных входа, дающих одинаковый дайджест (образующих «коллизию»). «Нельзя» здесь понимается опять-таки в вычислительном смысле — «невозможно за приемлемое в реальных условиях время».
Наиболее типичный и повсеместно распространенный способ применения криптографического хеширования — это проверка целостности сообщений. Для простой проверки того, были ли внесены какие-то изменения или искажения в файл на этапе доставки, очень удобно сравнивать дайджесты, вычисляемые до и после передачи информации (или извлечения файла из хранилища, или любого другого события). Другая, близко связанная с первой область — цифровая подпись. Из соображений общей безопасности и для существенного ускорения обработки подавляющее большинство алгоритмов цифровой подписи устроены так, что всегда «подписывается» только дайджест сообщения, а не весь файл.
Еще одно важное приложение — верификация правильности пароля доступа. Пароли обычно не хранят в открытом виде — чтобы они не становились легкой добычей похитителей и злоумышленников. Вместо этого в базе хранятся дайджесты паролей. Тогда система, чтобы проверить подлинность пользователя, хеширует представленный им пароль и сравнивает результат со значением, хранящимся в базе дайджестов паролей. И это, конечно, далеко не все. Благодаря свойствам рандомизации, хеш-функции могут использоваться в качестве генераторов псевдослучайных чисел, а благодаря блочной структуре, они иногда выступают в качестве основы алгоритмов шифрования — блочных и поточных. Бывает и наоборот, когда блочный шифр становится основой криптопреобразования, применяемого в циклах хеш-функции.
Короче говоря, хеш-функции стали чуть ли не важнейшим элементом современной криптографии. Они обеспечивают безопасность в повсеместно применяемом протоколе защищенных веб-соединений SSL. Они помогают организовывать эффективное управление ключами в защищенной электронной почте и в программах шифрования телефонии, начиная от самых известных, вроде PGP или Skype, и заканчивая всеми остальными. Если говорить о сетевой безопасности, то хеш-функции используются и в виртуальных частных сетях, и в защите системы доменных имен DNS, и для подтверждения того, что автоматические обновления программ являются подлинными. Внутри операционной системы хеш-функции так или иначе задействованы практически во всех структурах, обеспечивающих безопасность. Иными словами, каждый раз, когда в компьютере или сети происходит что-то, подразумевающее защиту информации, рано или поздно в действие непременно вступает хеш-функция.
Что применяют?Наиболее широко используемые в мире алгоритмы криптографического хеширования — это SHA-1, MD5 и RIPEMD-160 (если же говорить о России, то еще и ГОСТ Р34.11-94, она же «центробанковская» хеш-функция).
Все самые популярные криптоалгоритмы хеширования построены на единой основе — семействе функций MD (от Message Digest — «дайджест сообщения»), разработанных известным американским ученым Рональдом Райвестом. Поначалу самым удачным считался алгоритм MD4, а когда в нем нашли слабости, Райвест придумал усиленную модификацию под названием MD5.
На основе идей 128-битного MD4 математики Агентства национальной безопасности США создали более стойкий вариант — 160-битный «Безопасный алгоритм хеширования», или SHA. Но если Райвест подробно разъяснял в своих описаниях, чему служит и каким образом повышает безопасность каждый из этапов его алгоритма, то АНБ в присущей спецслужбе манере никаких комментариев не дало. Более того, через некоторое время после публикации SHA был отозван и переиздан в модифицированной, очевидно более сильной версии SHA-1, ставшей федеральным стандартом (прежняя получила название SHA-0).
В Европейском сообществе, в свою очередь, разработали собственный 128-битный стандарт криптографического хеширования, получивший название RIPE-MD и также развивающий идеи Райвеста. По мере осуществления успешных криптоаналитических атак против хеш-функций стали появляться усиленные версии этого алгоритма с увеличенной длиной хеша — RIPEMD-160, -256 и -320. Для SHA, соответственно, в АНБ создали укрепленное семейство SHA-2 с длинами хеша 224, 256, 384 и 512 бит. Российская хеш-функция, построенная на основе отечественных крипторазработок, имеет длину 256 бит.
НИСТ как двигатель прогрессаСложилось так, что хеш-функция, которую с наибольшей вероятностью использует всякий среднестатистический компьютер, — это SHA-1. Эта функция сконструирована безымянными засекреченными умельцами в недрах Агентства национальной безопасности США и с подачи НИСТ запущена во всеобщее употребление в середине 1990-х годов.
За последние годы качество найденных и опубликованных атак в отношении хеш-функций вообще и SHA-1 в частности заметно повысилось, что связано с общим прогрессом в теории и методах криптоанализа. Пока, правда, даже самая лучшая из атак требует вычислительных ресурсов на грани возможного, да и в этом виде бессильна перед полным набором циклов SHA-1. Однако, как гласит поговорка, бытующая среди сотрудников АНБ: «Атаки всегда становятся только лучше и никогда не становятся хуже». Иначе говоря, для алгоритма SHA-1 начали отмечаться признаки слабости, и все понимают, что пришло время от него отказываться.
Переход к альтернативным хеш-функциям происходит в целом спокойно, без паники, ибо более стойкие альтернативы на ближайшие годы вполне определены. Наиболее очевидная — это родственный алгоритм SHA-256 с длиной хеша 256 бит. Но все алгоритмы семейства SHA построены на конкретном классе хеш-функций MD, появившихся в начале 1990-х годов. За прошедшие с тех пор полтора десятка лет криптографы успели узнать о хеш-функциях очень много нового и, несомненно, сейчас могут сконструировать нечто значительно более мощное.
Почему, собственно, новый стандарт ждут от НИСТ США? Главным образом потому, что эта организация обладает опытом и репутацией, которые устраивают все мировое криптографическое сообщество. Десять лет назад очень похожая ситуация сложилась с алгоритмом шифрования. Все понимали, что алгоритм DES, или Data Encryption Standard, нуждается в замене, но вот на что его менять — было совсем неочевидно. И тогда руководство НИСТ решилось на беспрецедентный шаг — организовать всемирный открытый конкурс на новый криптоалгоритм. Были отобраны пятнадцать предложений из десяти стран (Россию к конкурсу тогда не допустили, прикрывшись формальными придирками к оформлению заявки). И после четырех лет публичных обсуждений и коллективного криптоанализа НИСТ США выбрал бельгийский алгоритм Rijndael, который стал AES, «продвинутым стандартом шифрования» на грядущие десятилетия.

