Страница:
Еще одно важное приложение — верификация правильности пароля доступа. Пароли обычно не хранят в открытом виде — чтобы они не становились легкой добычей похитителей и злоумышленников. Вместо этого в базе хранятся дайджесты паролей. Тогда система, чтобы проверить подлинность пользователя, хеширует представленный им пароль и сравнивает результат со значением, хранящимся в базе дайджестов паролей. И это, конечно, далеко не все. Благодаря свойствам рандомизации, хеш-функции могут использоваться в качестве генераторов псевдослучайных чисел, а благодаря блочной структуре, они иногда выступают в качестве основы алгоритмов шифрования — блочных и поточных. Бывает и наоборот, когда блочный шифр становится основой криптопреобразования, применяемого в циклах хеш-функции.
Короче говоря, хеш-функции стали чуть ли не важнейшим элементом современной криптографии. Они обеспечивают безопасность в повсеместно применяемом протоколе защищенных веб-соединений SSL. Они помогают организовывать эффективное управление ключами в защищенной электронной почте и в программах шифрования телефонии, начиная от самых известных, вроде PGP или Skype, и заканчивая всеми остальными. Если говорить о сетевой безопасности, то хеш-функции используются и в виртуальных частных сетях, и в защите системы доменных имен DNS, и для подтверждения того, что автоматические обновления программ являются подлинными. Внутри операционной системы хеш-функции так или иначе задействованы практически во всех структурах, обеспечивающих безопасность. Иными словами, каждый раз, когда в компьютере или сети происходит что-то, подразумевающее защиту информации, рано или поздно в действие непременно вступает хеш-функция.
Все самые популярные криптоалгоритмы хеширования построены на единой основе — семействе функций 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 в частности заметно повысилось, что связано с общим прогрессом в теории и методах криптоанализа. Пока, правда, даже самая лучшая из атак требует вычислительных ресурсов на грани возможного, да и в этом виде бессильна перед полным набором циклов SHA-1. Однако, как гласит поговорка, бытующая среди сотрудников АНБ: «Атаки всегда становятся только лучше и никогда не становятся хуже». Иначе говоря, для алгоритма SHA-1 начали отмечаться признаки слабости, и все понимают, что пришло время от него отказываться.
Переход к альтернативным хеш-функциям происходит в целом спокойно, без паники, ибо более стойкие альтернативы на ближайшие годы вполне определены. Наиболее очевидная — это родственный алгоритм SHA-256 с длиной хеша 256 бит. Но все алгоритмы семейства SHA построены на конкретном классе хеш-функций MD, появившихся в начале 1990-х годов. За прошедшие с тех пор полтора десятка лет криптографы успели узнать о хеш-функциях очень много нового и, несомненно, сейчас могут сконструировать нечто значительно более мощное.
Почему, собственно, новый стандарт ждут от НИСТ США? Главным образом потому, что эта организация обладает опытом и репутацией, которые устраивают все мировое криптографическое сообщество. Десять лет назад очень похожая ситуация сложилась с алгоритмом шифрования. Все понимали, что алгоритм DES, или Data Encryption Standard, нуждается в замене, но вот на что его менять — было совсем неочевидно. И тогда руководство НИСТ решилось на беспрецедентный шаг — организовать всемирный открытый конкурс на новый криптоалгоритм. Были отобраны пятнадцать предложений из десяти стран (Россию к конкурсу тогда не допустили, прикрывшись формальными придирками к оформлению заявки). И после четырех лет публичных обсуждений и коллективного криптоанализа НИСТ США выбрал бельгийский алгоритм Rijndael, который стал AES, «продвинутым стандартом шифрования» на грядущие десятилетия.
Без преувеличения этот конкурс почти на пятилетку стал главным событием и развлечением для всего мирового сообщества криптографов. Широко известный и часто цитируемый гуру Брюс Шнайер, входивший в одну из команд-перетенденток, остроумно уподобил это соревнование автомобильному дерби на выживание. Лучшие умы криптографической науки вывели на трассу свои алгоритмы как автомобили, а затем стали что есть силы крушить соперников — поскольку к финишу должен прийти только один. Конечно, растянувшиеся на несколько лет дискуссии выглядели куда более пристойно и цивилизованно, нежели мясорубка на трассах автодерби, однако суть процесса была весьма похожа. Кроме того, конкурс стимулировал очень мощный поток новых исследований в сферах криптоанализа и конструирования блочных шифров, отчего выиграло все научное сообщество.
Огромная и плодотворная работа, проведенная НИСТ при организации AES-конкурса, сделала практически очевидной траекторию, по которой следует двигать разработку и выбор новой хеш-функции. Два семинара по хеш-функциям, организованные Институтом в 2005 и 2006 году, только подтвердили, что новый конкурс необходим. И когда он наконец был объявлен, все криптографы восприняли это как должное.
Предложения по новым хеш-функциям будут приниматься до осени 2008-го, а выбор должен быть сделан к концу 2011 года. Более длительный, чем в случае AES, срок отбора кандидатов представляется разумным и обоснованным. Сейчас конструирование безопасной хеш-функции — задача более сложная, чем разработка безопасного алгоритма шифрования. Правда, пока никто не может внятно ответить, почему это так — из-за более сложной математической природы хеш-фунций или же из-за недостаточного понимания предмета.
Вполне возможно, что в ходе начавшегося конкурса прояснится и этот вопрос.
Год первый (2007). Опубликовать для ознакомления и комментариев общественности базовые требования к кандидатам, правила оформления заявок и общие критерии отбора. В третьем квартале завершить этот этап, сформулировать окончательные требования и критерии для кандидатов, к концу года объявить о начале приема заявок.
Год второй (2008). Третий квартал — окончание приема заявок-кандидатов на новую хеш-функцию. В четвертом квартале отобрать кандидатов, отвечающих базовым требованиям, и провести Первую конференцию для объявления функций, участвующих в первом круге конкурса. Представлять кандидатов будут их авторы. Одновременно объявляется прием комментариев (результатов криптоанализа) по всем кандидатам.
Год третий (2009). К четвертому кварталу закончить этап комментариев по кандидатам. (В зависимости от числа отобранных кандидатов, НИСТ оставляет за собой право либо продлить этот этап, либо добавить число этапов для сокращения общего количества кандидатов перед отбором финалистов. Для этого могут понадобиться дополнительные семинары.) В конце года устроить Вторую конференцию для обсуждения результатов анализа, где разработчикам будет предоставлено право внести улучшения в свои алгоритмы.
Год Четвертый (2010). В первом квартале выбрать и объявить финалистов, победивших в первом круге. Подготовить отчет с объяснением выбора. Во втором квартале дать старт очередному кругу, перед началом которого финалистам позволено внести любые улучшения в схему.
Год пЯтый (2011). Во втором квартале закончить этап комментариев общественности, в третьем квартале устроить Финальную конференцию, где будут подведены общие итоги анализа и обсуждений. В четвертом квартале выбрать победителя и до конца года объявить хеш-функцию (или, возможно, хеш-функции) для нового стандарта.
На этом собственно конкурс будет закончен, а в течение 2012 года НИСТ подготовит новую версию федерального стандарта США на хеш-функцию, который, скорее всего, как и AES, фактически станет общемировым.
Кирилл Еськов, журнал «Полдень, XXI век», 2006, #1
Короче говоря, хеш-функции стали чуть ли не важнейшим элементом современной криптографии. Они обеспечивают безопасность в повсеместно применяемом протоколе защищенных веб-соединений 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, «продвинутым стандартом шифрования» на грядущие десятилетия.
Без преувеличения этот конкурс почти на пятилетку стал главным событием и развлечением для всего мирового сообщества криптографов. Широко известный и часто цитируемый гуру Брюс Шнайер, входивший в одну из команд-перетенденток, остроумно уподобил это соревнование автомобильному дерби на выживание. Лучшие умы криптографической науки вывели на трассу свои алгоритмы как автомобили, а затем стали что есть силы крушить соперников — поскольку к финишу должен прийти только один. Конечно, растянувшиеся на несколько лет дискуссии выглядели куда более пристойно и цивилизованно, нежели мясорубка на трассах автодерби, однако суть процесса была весьма похожа. Кроме того, конкурс стимулировал очень мощный поток новых исследований в сферах криптоанализа и конструирования блочных шифров, отчего выиграло все научное сообщество.
Огромная и плодотворная работа, проведенная НИСТ при организации AES-конкурса, сделала практически очевидной траекторию, по которой следует двигать разработку и выбор новой хеш-функции. Два семинара по хеш-функциям, организованные Институтом в 2005 и 2006 году, только подтвердили, что новый конкурс необходим. И когда он наконец был объявлен, все криптографы восприняли это как должное.
Предложения по новым хеш-функциям будут приниматься до осени 2008-го, а выбор должен быть сделан к концу 2011 года. Более длительный, чем в случае AES, срок отбора кандидатов представляется разумным и обоснованным. Сейчас конструирование безопасной хеш-функции — задача более сложная, чем разработка безопасного алгоритма шифрования. Правда, пока никто не может внятно ответить, почему это так — из-за более сложной математической природы хеш-фунций или же из-за недостаточного понимания предмета.
Вполне возможно, что в ходе начавшегося конкурса прояснится и этот вопрос.
Как это будет
В документе НИСТ США, объявляющем о начале конкурса на новый стандарт хеш-функции, приведено «Предварительное расписание» мероприятий, составляющих процесс разработки и выбора. В самом кратком виде намеченная программа выглядит так.Год первый (2007). Опубликовать для ознакомления и комментариев общественности базовые требования к кандидатам, правила оформления заявок и общие критерии отбора. В третьем квартале завершить этот этап, сформулировать окончательные требования и критерии для кандидатов, к концу года объявить о начале приема заявок.
Год второй (2008). Третий квартал — окончание приема заявок-кандидатов на новую хеш-функцию. В четвертом квартале отобрать кандидатов, отвечающих базовым требованиям, и провести Первую конференцию для объявления функций, участвующих в первом круге конкурса. Представлять кандидатов будут их авторы. Одновременно объявляется прием комментариев (результатов криптоанализа) по всем кандидатам.
Год третий (2009). К четвертому кварталу закончить этап комментариев по кандидатам. (В зависимости от числа отобранных кандидатов, НИСТ оставляет за собой право либо продлить этот этап, либо добавить число этапов для сокращения общего количества кандидатов перед отбором финалистов. Для этого могут понадобиться дополнительные семинары.) В конце года устроить Вторую конференцию для обсуждения результатов анализа, где разработчикам будет предоставлено право внести улучшения в свои алгоритмы.
Год Четвертый (2010). В первом квартале выбрать и объявить финалистов, победивших в первом круге. Подготовить отчет с объяснением выбора. Во втором квартале дать старт очередному кругу, перед началом которого финалистам позволено внести любые улучшения в схему.
Год пЯтый (2011). Во втором квартале закончить этап комментариев общественности, в третьем квартале устроить Финальную конференцию, где будут подведены общие итоги анализа и обсуждений. В четвертом квартале выбрать победителя и до конца года объявить хеш-функцию (или, возможно, хеш-функции) для нового стандарта.
На этом собственно конкурс будет закончен, а в течение 2012 года НИСТ подготовит новую версию федерального стандарта США на хеш-функцию, который, скорее всего, как и AES, фактически станет общемировым.