МИСЗКИ книга (1085503), страница 25
Текст из файла (страница 25)
и. 1. Ключевые хэш-функции. Начнем с рассмотрения ключевых хэш-функцнй, так как они предназначены для решения задачи обеспечения целоспюсти передаваемой информации. В криптографических приложениях к ключевым хэшфункциям предъявляются следующие требования: — невозможность фабрикации; — невозможность модификации. Первое требование означает высокую сложность подбора сообщения с правильным значением свертки.
Второе — высокую сложносп подбора для заданного сообщения с известным тачением свертки другого сообщения с правильным значением свертки. Иногда эти свойства объединяют в одно более сильное свойство — свойство вычислительной устойчивости. Это требование означает высокую сложность подбора дяя заданного множества сообщений с известными значениями сверток еще одного сообщения с правильным значением свертки. Причем «высокая сложность» означает такую вычисли~сльную сложность задачи, при которой ее решение с использованием вычислительной техники за реальное время невозможно.
Ключсвые функгпш применяются в ситуациях, когда стороны доверяют друг другу и могут иметь общий секретный ключ. Обычно в этих условиях не требуется, чтобы система обеспечивала защиту в случае отказа получателя от факта получения сообщения или его подмены. Поэтому от ключевых хэшфункций не требуется устойчивости к коллизиям. Обычные атаки на ключевые хэш-фушпщи заключаются в нмнтацни, то есть в передаче сфабрикованных сообщений в пус- 149 ых сообщений с целью том канале, а также в в подмене передаваемых сообщ навязывания при иемиой стороне ложных соо ще йчивости также вытекаег Из свонства вычислитель " ичив ной устоичив невозможность опре деле возможность вычислять так как знание ключа дает возмо функциеи, так значение свертки для любого набора данных.
ни могут строиться на основе алгоКлючевые ~~-функции ~ж~ ритмов блочного шифрования. Тогда одношаговая фунюпш будет иметь вид: 1ь(х,Н) = Еь(х Ю Н), где Еь — алгоритм блочного шифрования. Для вычисления значезшя Ь(М) щ ля ооб ение М предсшвля овательности и-бнтовых блоков М,, Мь ..., ется в виде последовательно м длина сообщения не кратн кратна длине блока, з п оследний блок неким специальным разом св ки имеет еле дующии полного блока. Алгоритм вычисления ерт вид: Н;0, Н = Е„(М; 9 Нь ), ' = 1, ..., Ы, Ь(М) = Ни.
основе одношаговой сжимающей функции, то по известным значениям М и Н = Ь(Х,М) можно вычислять значения этой функции для любых сообщений вида (М,М') с дописанным произвольным окончанием М'. Это объясняется итеративностъю процедуры вычисления функции, в силу которой для нахождения значения Н' = ЩМ,М') не требуется знание ключа 11, доста- ЮЧНО ВОСПОЛЪЗОВатЬСЯ УжЕ ВЫЧИСЛЕННЫМ «ПРОМЕЖУТОЧНЫМ» значением Н. Поэтому такая функция не устойчива к модификации.
В случае когда ключ добавляется в конец сообщения сог ласно формуле Н = Ь| (М) = Ь(М, й), знание коллизии для функции Ь„то есть пары хь хь хз ф хг, такой, что Ь(хю) = Ь(хз), позволясг вычисляп значения Ь(х~,1) = Ь(хв й) для любого ключа Е Погюму трудоемкосп* модификации сообщения М = х~ оцениваетсн не величиной 2', а сравнима с трудоемкостью поиска колли~ии, оцениваемой величиной 2~. В связи с этим более предпочтительными являются способы, при которых ключ вставляется в сообщение не один, а, по «райней мере, два раза. Недостатком такого метода также является слишком ьольшая длина свертки.
Дело в том, что для целей проверки ценистности обычно выбирают длину свертки в пределах 32 — 64 ьит, а для аутентификации необходимо условие п>128. м вином нами алгоритме шифроиа ния ГОСТ 28147-89 называется режимом выра и личеством циклов. Ключевые хэш-функц ни могут гут также строится на осно~ ния значеии . При этом для вычисления бескшочевых хэш-функции. ния сывается к исходному с щен свертки ключ приписываетс нли в конец ги ключ просто дописывать в начало нли в Но если ключ просто ивести к потеициальиь» ходиого сообщения, то , то это может привести к ых с осуществлю слабоьы~юм, лабо —.м, позволяющим в некоторых случаях ос модификацию сообщений. Ь оба ется к началу сообщеги ° — Ь,х) Если функция Ь построена , нап имер, ключ д вля согласно формуле Ьь(х) = Ь( 150 Огрение задачи обеспечения цело иожно закончить, ио прежде чем переходить к следующей задаас криптографии завершим тему хэш-функций. 2.
Бесключевне хэш-функции. Обычно требуется, чтобы бесключевые хэш-функцни об~идали следующими свойсгвами: — однонаправленность; — устойчивость к коллизиям; — устойчивосп* к нахождению второго прообраза. Эти требования означают, соответственно, высокую слож- иисть нахождения сообщения с заданным значением свертки; вары сообщений с одинаковыми значениями свертки; второго 151 для заданного сообщетем же значением свергхн для сообщения с ия СКС-32, представ известным значешгем свертки. с, " отображением и нос, является линейным контрольную сумму, нз этих трех свойств.
~~у не уу~~~~ р О яет ни ОднОму СМОТ~ЖНН~~ ПРЕД ЫДУЩ ки основе алгоритма блочного шифрования так как обратимое Ость ение коллет подбирать входное сообще ф ванном и Общензвест- для любого значения свертки пр ф н фиксиро ном ключе. ХЭШ-ФУНК гнн, УДОВЛЕтВОРЯЮЩЕй формулогг ~а~) Е«(гг)~~, где Ен ваиия. Такая фун ция е ф кцию, агов сжимающую функцию одной ф кцию, определив одношаговую с функцию, из следующих формул: Йх,Н) = Ен(х)9х или 1(;Н) = Е.(Н)ЕН.
кцгй лежит в основе россий "ского стан 94 с НА (Бесиге Наз)г А18ог(гш). риканс для хэш-фунчгцш ния и = ш = 512. Однош овательности значений Н; ф ОСТ 28147-89), каждая из кото схем блочного шифро ф вания (Г п пруст с блоками раз р ме оь рых имеет 256-битовый ключ и опериру бита. 64 ~н.мом реалгпшпш ключевой хэш-функциин обеспечения целосгн ешения задач Его используют как для Р 152 сообщений (совместно с функциями шифрования), так для обнаружения ошибок при передаче файлов через сеть Интернет. Алгоритм вычисления свертки разбит на пять этапов. Этап 1 ление незна нх битов К сворачиввемому сообщению добавляется код 10...0.
Число нулей определяется нз условия: остаток деления длины дополненного сообщения на 512 должен быль равным 448. Этап 2. Обавление ы сорб ния. Длина исходного сообщения, до первою этапа, представляется в виде 64- разрядного числа. Этап 3. али ия М13 б а. В четыре 32- разрядные слова заносягся специальные константы, названные разработчиками магическими. Этап 4.
ка ения. Инициализируются 4 функции, каждая нз которых преобразует трн 32-битных слова в одно. Каждый 512-разрядный блок сообщения поочередно обрабатывается всеми функциями вместе со словами из буфера. Новые значения добавляются к предыдущим значениям, хранящимся в буфере, н алгоритм переходит к обработке следующего 5! 2-разрядного блока. Этап 5. Выво льтата.
Содержимое буфера выдается лак результат свертки длиной 128 бит. Варианты атак на хэш-функции. Простейшая атака с целью сгхгдаиия поддельного сообщения, применимая к любой хэш-функции, состоит в следующем. Злоумышленник может осуществить генерацию некоторого числа (гг) сообщений, вычислить значения их сверток и сравнить получившиеся значения с известными значениями сверток некоюрого множества (из гг) переданных ранее сообщений. Атака окажется успешной при получении хотя бы одного совпадения. Вероятность успеха Р можно оценить по формуле: гГ2 г-1- где л — длина свертки, е — основание натурального лога- ~!пфма.
153 " „.„оятся на основе одтак как большинство хэш функции , то имеется тесная связь атак пошаговых сжимающих функции, то атак с атаками на соответствующ;. . В частности, последняя должна обладать пр актически всеми теми же своиствами, да пр вать мегод «встречи посередине». за в конце со щен об ения обычно дописывают локн с к слабости ба хэш-фучшция. Например, для п построения зе которых построены хэш-фучшция. , основанных на ашор нтмах блочного коллизий хэш-функцшг, лабых ключей илв о использовать наличие с шифрования можи Е ( ) — х), коллизии наличие неподв ижных точек (для которых ь х = х, х ключей, для которых выполияет- ключей (то есть пар различных ключеи, для к ся равенство Ем(х) = Е1з(х)) и т. п.
ГЛАВА 11. Компьютерная криптография. Обеспечение аутентификации Напомним определение третьей задачи криптографии: Обеспечение аутентификации — разработка методов ~юдгверждения подлинности сторон (идентификация) н самой информации в процессе информационного взаимодействия. Информация, передаваемая по каналу связи, должна быть аутентифицирована по источнику, времени созлания, содержанию данных, времени пересылки и т. д. Итак, аутентификация — это установление подлинности. В общем случае этот термин может относиться ко всем аспектам лнформацнонного взаимодействия: сеансу связи, сторонам, передаваемым сообщениям и т. д.
Установление подлинности (то есть проверка н подтверждение) всех аспектов информационного взаимодействия является важной составной частью задачи обеспечения достоверности получаемой информации. Аугентифиукация особенно важна ляя доверяющих друг другу сторон, когда источником угроз может служить не только тре|ъя сторона (противник), но н сторона, с которой осуществляется взаимодействие. 154 Применительно к сеансу связи (транзакцин) аутентификация означает проверку; -целостности соединения, невозможности повторной передачи данных противником и своевременности передачи данных.
Для этого, как правило, используют дополнигельные параметры„позволяющие «сцепнть» передаваемые данные в легко проверяемую последовательносп. Это достигается, например, путем вставки в сообщения некоторых специальным чисел или меток времени. Они позволяют предотвратить попыт«н повторной передачи, изменения порядка следования или обркгной отсылки части переданных сообщений.
При этом такие «ставки в передаваемом сообщении необходимо защищать (например, с помощью шифрования) от возможных подделок и ис«яжений. Применительно к сторонам взаимодействия аутентификация означает проверку одной из сторон того, что взаимодейст- 155 она себя выдаш. вующ ая с ней сторона — именно та, за которую Часто аугентификацию сторон называют также ид ф енти икацией. Ф мально зто некорректно, так как под идентификацией Формально зто н в ого данной сторопонимают процедуру установления присвоенн ика а, кото ое по не уникального системного имени-идентиФикатора, р ть ее от угих сторон.
Обычно идентификация заклочается в предъявлении зтого имени и пред цедуре аутенти аутентификации, то есть подтверждению правильности ф оз Применительно к самой информации аугенпь„икация , п едаваемая по каналу, начает проверку того, что информация, передава является подлинной по содержанию, исто ику, ре чн, в мени созда иия, времени пересылки и т. д. , к ве ке ее неизменности (с момента создания) а в ке целостности. цессе передачи или хранения, то есть пропер ити икация источника ние того, что исходный документ был создан ным источником. и обладают общин Если стороны доверяют друг другу и о л етным ключом, то аутентификацию р сто он можно спг секретным . Действительно, каждо чить применением кода аутентификации.
Д " успешно декодированное получа телом сообщение может ьп . об пп авителем, так как только он знает их щп создано только отправител м, угу сторон релп етный ключ. Для не доверяющих друг другу сто секретный об его се етиого юпо . ние подо н обных задач с использованием общ кр и а ентификацин испи овится невозможным.