МИСЗКИ книга (1085503), страница 24
Текст из файла (страница 24)
В самом деле, если в сети используется единый для всех модуль и, то такая организация связи не обеспечивает конфиденциальности, несмотря на то, что базовая система КБА может 143 быть стойкой. Выражаясь другими словами, говорят о несостоятельности протокола с общим модулем. Несостоятельность следует из того, что знание произвольной пары экспонент (еь 4) позволяет, как было отмечено, разложить л на множители. Поэтому любой корреспондент данной сети имеет возможность найти тайный ключ любого другого корреспондента. Как отмечалось ранее, системы шифрования с открытыми ключами работают сравнительно медленно. Для повышения скорости шифрования КБА на практике используют малую экспоненту шифрования.
Если выбрать число е неболыаим нли таким, чтобы в его двоичной записи было мало единиц, то процедуру шифрования можно значительно ускорить. Например, выбрав е = 3 (при этом ии р — 1, ни д — 1 не должны делиться на 3), мы сможем реализовать шифрование с помощью одного возведения в квадрат по модулю и и одного перемножения. Выбрав е = 2'6+1 = 65537— число, двоичная запись которого содержит только две 1, мы сможем реализовать шифрование с помощью 16 возведений и квадрат по модулю и и одного перемножения.
Если экспонента г выбирается случайно, то реализация шифрования по алгоритму КЗА потребует в возведений в квадрат по модулю и и в среднем в/2 умножений по тому же модулю, где в — длина двоичной за писи числа л. Вместе с тем выбор небольшой экспоненты е может привести к негативным последствиям. Дело в том, что у нс скольких корреспондентов могут оказаться одинаковые экспо ненты е. Это позволит криптоаналитику вскрьпь шифротекст к случае отправки сообщения нескольким адресатам. Выбор малой экспоненты расшнфровання д также нежела телен в связи с возможностью определения а простым перебо РОМ.
ин мации в Другими словами, необходимо обеспечить чить неизменность мации в процессе передачи или хранении. Реше ии. ешение этой олагает разработку средств, позволяющих обнаруживать не столько случайные искажения скажения (для этой цели вполне подходят методы теории кодирования с обна правлением ошибок ск я с наружением и исоши окл, сколько целенаправленное навязывание информацию вносится избыточность. Как этого в передавае противником ложной информации. Для мую стся добавя правило, это достиганации, вычисляемой с д синем к щению некото ой рой проверочной комбивычисляемой с помощью специального алгоритма и играющей роль контрольной суммы для яученного сообщения. Главн проверки целостности по- щения. лавное отличие такого метода от методов теории ко — овахшя " состоит в том, что агаоригм Вынаботки проверочной комбинации является «крипто зависящим от секретного ключа.
Без знания ключа в оятност ер ь успешного навязывания противни ча. знания секретного женной или ложной ин противником искажнои информации мала. Таим вероятность слуши а жит мерой имитостойкости шифра, то есп об снос ности самою фра противостоять активным атакам со со стороны противника. так„для проверки целостности к сообщению М добавляется проверочная комбинация Б, называемая кодо ка ии ая ко м аутвоти и. ц со щения или имитовставкой. В случ й. этом случае по ватель вычисляет значение проверочной комбинации и сравнивает его с пол нн ученным контрольным значением Ь. Несовпадение говорит о том, что данные бы е ыли изменены. ьч 145 ГЛАВА 10. Компьютерная инто а кр гр ия. Обеспечение целостности Переидем к рассмотрению второй задачи крипто афии— задаче обеспечения целостности.
Напомним определение. Обеспечение целостности — гарантирование невозможности несанкционированного изменения ин и елост ин рмации. гаоб ц ности необходим простой и над наружения любых манипуляций с данн . Мани ежиыи критерий данными включают ными. пуляции с ми включают вставку, удаление и замену. Как правило, код аутентификации является значением неипго афической (зависящей от секретного ключа) хэш-функции от данного сообщения: Ь~(М) = . кодам уг тификации предъявляются определенные требования. К ним относятся: — невозможность вычисления значения ь(М) = данного сообщения М без знания ключа 1; ения М1 с извест известным значением Ь~(М) = Б другого сообщения М1 с из ест ным значением )ь(М1) = 31 без знания ключа 1. Первое требование направлено против создания подлезь ных (сфабрикованных) сообщений при атаках типа имитация; второе — против модиф реда емы с збще лч г атаках типа подмена.
Рассмотрим подробнее, что предсгавля сгавляют собой хэл~ функции. Хэш-функции — это функции, предназн аченные дл1 «сжатия» произвольного сообщения или набора данных, запи вую комбинацию фиксированной длины, называемую сверткой Хэш-функции имеют разнообразные применения прн проведс нии статистических экспериментов, при тестнро овании логичс стройств, при построении алгоритмов быстрого поиска» ских у й оверки целостности записей в базах данных.
Н»чр пров осуществления быстрого поиска нужного щ сооб ения в большом списке сообщений различной длины удобнее сравнивать друг другом не сами щ ссюбщения, а короткие значения их сверток, в~ х с . Основным тр« ающих одновременно роль контрольных сумм. сновным тр« Р бованнем к таким хэш-функциям является р р авноме ность ра« пределения их значении прн случайно ре м выбо значений арг) ментов.
я ля ешенв В криптографии хэш-фуикпин применяются д р следующих задач: анных пр» — построения систем контроля целостности д их передаче илн хранении; — аугентификацни источника данных. 146 При решении первой задачи для каждого набора данных вычисляется значение хэш-функции (называемое кодом аутентификации сообщения или имнтовставкой), которое передается илн хранится вместе с самими даннымн. Прн получении данных пользователь вычисляет значение свертки и сравнивает его с имеющимся контрольным значением.
Несовпадение говорит о том, что данные были изменены. Хэш-функция, служащая для выработки имнтовставки, должна позволять (в отличие от обычной контрольной суммы) осуществлять обнаружение не только случайных ошибок в наборах данных, возникающих при их хранении и передаче, но и сигнализировать об активных атаках злоумышленника, пытающегося осуществить навязывание ложной ннфор»шции. Для того чтобы злоумышленник не смог самостоятельно вычислить контрольное значение свертки и тем самым осуществить успешную имитацию или подмену данных, хэш-функция должна зависеть от секретного, не известного злоумышленнику, параметра— ключа пользователя. Этот ключ должен быть известен передающей н проверяющей сторонам. Такие хэш-функции называются клечсвьиии.
Имитовставки, формируемые с помощью ключевых хэшфункций, не должны позволять противнику создавать поддельные (сфабрикованные) сообщения при атаках типа имитация и модифицировать передаваемые сообщения при атаках типа «подмена». При решении второй задачи — аутентификации источника данных — мы имеем дело с не доверяющими друг другу сторонами. В связи с этим подход, при котором обе стороны облалшот одним и тем же секретным ключом, уже непрю~еннм. В такой ситуации применяют схемы цифровой подписи, позволяющие осуществлять аугентнфикацию источника данных. Как правило, лри этом сообщение, прежде чем быть подписано личной подписью, основанной на секретном ключе пользователя, «сжимается» с помощью хэш-функции, выполняющей функцию кода обнаружения ошибок.
В данном случае хэш-функция не зависит от секретного ключа н может быль фиксирована и известна всем. Такие функции называются бесключевыми. Основными требованиями к ним являются гарантии невозможности подмены под- 147 писанного документа, а также подбора двух различных сообщс ний с одинаковым значением хэш-функцни (в этом случае гово рят, что такая пара сообщений образует коллизию). Обычно число возможных сообщений значительно прс восходит число возможных значений евер(ок, в силу чего дл» каждого значения свертки имеется большое множество прообра зов, то есп, сообщений с заданным значением хэш-функцни. Как правило, хэш-функции строят на основе так называс мых одношаговых сжимающих функций у = Г(х(,х1) двух перс менных, где х, и у — двоичные векторы длины т и и соответст венно, причем л — длина свертки.
Для получения значения Ь(М) сообщение М сначала разбивается на блоки длины т (при этом если длина сообщения не кратна т, то последний блок некии специальным образом дополняется до полного), а затем к полу ченным блокам Мь Мь ..., Мн применяют следующую последе нательную процедуру вычисления свертки; Не — — г, Н,= 1(минь(),1= 1,...,ж, Н(М) = Н Здесь и — некоторый фиксированный начальный вектор.
При таком подходе свойства хэш-функции л полностын определяются свойствами одношаговой сжимающей функции Е Как уже отмечалось, есть два типа криптографическвь хэш-функций — ключевые и бесключевые. Первые применяются в системах с симметричными ключами. Именно ключевые хэш функции называют кодами аутентификсщии сообщений, так каь они дают возможность без дополнительных средств гарантиро вать как правильность источника данных, так и целостность данных в системах с доверяющими друг другу пользователями. Бесключевые хэш-функции называкпся кодами обнаруз(се ния ошибок.
Они дают возможность с помощью дополнительныь средств (например, шифрования, использования защищенного канала или цифровой подписи) гарантировать целостность дан ных. Эти хэш-функции могут примеюпъся в системах как с до веряющими„так и не доверяющими друг другу пользователями. 148 Возвращаясь к приведенной формуле заметим, что если функция г зависит от ключа, то вектор г можно положить равным нулевому вектору. Если же функция 1 не зависит от ключа„ то для исключения возможности перебора коротких сообщений (лри попытках обращения хэш-функции) вектор г макно составить из фрагментов, указывающих дату, время, номер сообщения и т.