методы защиты информации. безопасность баз анных. 1. Математические (криптографические) методы защиты информации (ммзи) элемент системы инженернотехнической защиты информации Вопрос История криптографии
Скачать 0.5 Mb.
|
Тема 8. Хэширование сообщений. Электронная цифровая подпись Цель: Получить представление о принципах криптографического преобразования информации, обеспечивающих ведение электронного документа. Ознакомиться с основными действующими стандартами, реализующими данные принципы. Задачи: 1. Изучить: способы преобразования информации, используемые при создании хэш-образов сообщений; формы и способы деструктивных действий неавторизованных лиц по отношению к электронным документам; порядок формирования и проверки электронной цифровой подписи. 2. Приобрести компетенции: использования действующих стандартов хэширования; использования действующих стандартов цифровой подписи. Содержание темы: 1. Криптографические хэш-функции. Характеристики и алгоритмы выработки хэш-функций. 2. Хэширование по алгоритму ГОСТ Р 34.11-94. 3. Понятие электронной цифровой подписи. Стандарты электронной цифровой подписи. 4. Стандарт цифровой подписи ГОСТ Р 34.10-94. Вопрос 1. Криптографические хэш-функции. Характеристики и алгоритмы выработки хэш-функций. Функция хэширования (хэш-функция) представляет собой преобразование, на вход которого подается сообщение переменной длины М, а выходом является строка фиксированной длины h(M). Иначе говоря, хэш-функция h(.) принимает в качестве аргумента сообщение (документ) М произвольной длины и возвращает хэш-значение (хэш) Н= h(M) фиксированной длины (рис. 13.). Хэш-значение h(M) - это дайджест сообщения М, то есть сжатое двоичное представление основного сообщения М произвольной длины. Хэш-значение h(M) формируется функцией хэширования. Функция хэширования позволяет сжать подписываемый документ М до 128 бит и более (в частности, 128 или 256 бит), тогда как М может быть размером в мегабайт или более. Следует отметить, что значение хэш-функции h(M) зависит сложным образом от документа М и не позволяет восстановить сам документ М. Функция хэширования должна обладать следующими свойствами: 1. Хэш-функция может быть применена к аргументу любого размера. 2. Выходное значение хэш-функции имеет фиксированный размер. Рис. 13. Схема формирования H=h(M) 3. Хэш-функцию h(x) достаточно просто вычислить для любого х. Скорость вычисления хэш-функции должна быть такой, чтобы скорость выработки и проверки ЭЦП при использовании хэш-функции была значительно больше, чем при использовании самого сообщения. 4. Хэш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким как вставки, выбросы, перестановки и т.п. 5. Хэш-функция должна быть однонаправленной, то есть обладать свойством необратимости. Иными словами, задача подбора документа M’, который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима. 6. Вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала; то есть для любого фиксированного х с вычислительной точки зрения невозможно найти х x’ ≠ х, такое что h(x) = h(x). Теоретически возможно, что два различных сообщения могут быть сжаты в одну и ту же свертку (так называемая коллизия, или столкновение). Поэтому для обеспечения стойкости функции хэширования необходимо предусмотреть способ избегать столкновений. Полностью столкновений избежать нельзя, поскольку в общем случае количество возможных сообщений превышает количество возможных выходных значений функции хэширования. Однако вероятность столкновения должна быть низкой. Свойство 5 эквивалентно тому, что h(x) является односторонней функцией. Свойство 6 гарантирует, что не может быть найдено другое сообщение, дающее ту же свертку. Это предотвращает фальсификацию сообщения. Таким образом, функция хэширования может использоваться для обнаружения изменений сообщения, то есть она может служить для формирования криптографической контрольной суммы (также называемой кодом обнаружения изменений или кодом аутентификации сообщения). В этом качестве хэш-функция используется для контроля целостности сообщения, при формировании и проверке электронной цифровой подписи. Хэш-функции широко используются также в целях аутентификации пользователей. В ряде технологий информационной безопасности применяется своеобразный прием шифрования - шифрование с помощью односторонней хэш-функции. Своеобразие этого шифрования заключается в том, что оно, по существу, является односторонним, то есть не сопровождается обратной процедурой - расшифрованием на приемной стороне. Обе стороны (отправитель и получатель) используют одну и ту же процедуру одностороннего шифрования на основе хэш-функции. Вопрос 2. Хэширование по алгоритму ГОСТ Р 34.11-94. Рис. 14. Хэширование по алгоритму ГОСТ Р 34.11-94 Отечественным стандартом генерирования хэш-функции является алгоритм ГОСТ Р 34.11-94. Этот стандарт является обязательным для применения в качестве алгоритма хэширования в государственных организациях РФ и ряде коммерческих организаций. Коротко данный алгоритм хэширования можно описать следующим образом (рис. 14.). Шаг 1. Инициализация регистра хэш-значения. Если длина сообщения не превышает 256 бит - переход к шагу 3, если превышает - переход к шагу 2. Шаг 2. Итеративное вычисление хэш-значения блоков хэшируемых данных по 256 бит с использованием хранящегося в регистре хэш-значения предыдущего блока. Вычисление включает в себя следующие действия: генерацию ключей шифрования на основе блока хэшируемых данных; зашифрование хранящегося в регистре хэш-значения в виде четырех блоков по 64 бит по алгоритму ГОСТ 28147-89 в режиме простой замены; перемешивание результата. Вычисление производится до тех пор, пока длина необработанных входных данных не станет меньше или равной 256 бит. В этом случае - переход к шагу 3. Шаг 3. Дополнение слева битовыми нулями необработанной части сообщения до 256 бит. Вычисление хэш-значения аналогично шагу 2. В результате в регистре оказывается искомое хэш-значение. Вопрос 3. Понятие электронной цифровой подписи. Стандарты электронной цифровой подписи. Электронная цифровая подпись используется для аутентификации текстов, передаваемых по телекоммуникационным каналам. При таком обмене электронными документами существенно снижаются затраты на обработку и хранение документов, ускоряется их поиск. Но возникает проблема аутентификации автора электронного документа и самого документа, то есть установления подлинности автора и отсутствия изменений в полученном электронном документе. Целью аутентификации электронных документов является их защита от возможных видов злоумышленных действий, к которым относятся: активный перехват - нарушитель, подключившийся к сети, перехватывает документы (файлы) и изменяет их; маскарад - абонент С посылает документ абоненту В от имени абонента А; ренегатство - абонент А заявляет, что не посылал сообщения абоненту В, хотя на самом деле послал; подмена - абонент В изменяет или формирует новый документ и заявляет, что получил его от абонента А; повтор - абонент С повторяет ранее переданный документ, который абонент А посылал абоненту В. Эти виды злоумышленных действий могут нанести существенный ущерб банковским и коммерческим структурам, государственным предприятиям и организациям, частным лицам, применяющим в своей деятельности компьютерные информационные технологии. Проблему проверки целостности сообщения и подлинности автора сообщения позволяет эффективно решить методология электронной цифровой подписи. Основные процедуры цифровой подписи. Функционально цифровая подпись аналогична обычной рукописной подписи и обладает ее основными достоинствами: удостоверяет, что подписанный текст исходит от лица, поставившего подпись; не дает самому этому лицу возможности отказаться от обязательств, связанных с подписанным текстом; гарантирует целостность подписанного текста. Электронная цифровая подпись (ЭЦП) представляет собой относительно небольшое количество дополнительной цифровой информации, передаваемой вместе с подписываемым текстом. ЭЦП основана на обратимости асимметричных шифров, а также на взаимосвязанности содержимого сообщения, самой подписи и пары ключей. Изменение хотя бы одного из этих элементов сделает невозможным подтверждение подлинности цифровой подписи. ЭЦП реализуется при помощи асимметричных алгоритмов шифрования и хэш-функций. Технология применения системы ЭЦП предполагает наличие сети абонентов, посылающих друг другу подписанные электронные документы. Для каждого абонента генерируется пара ключей: секретный и открытый. Секретный ключ хранится абонентом в тайне и используется им для формирования ЭЦП. Открытый ключ известен всем другим пользователям и предназначен для проверки ЭЦП получателем подписанного электронного документа. Система ЭЦП включает две основные процедуры: процедуру формирования цифровой подписи; процедуру проверки цифровой подписи. В процедуре формирования подписи используется секретный ключ отправителя сообщения, в процедуре проверки подписи - открытый ключ отправителя. Процедура формирования цифровой подписи. На подготовительном этапе этой процедуры абонент А - отправитель сообщения - генерирует пару ключей: секретный ключ kAи открытый ключ КА. Открытый ключ КАвычисляется из парного ему секретного ключа kA. Открытый ключ КАрассылается остальным абонентам сети (или делается доступным, например, на разделяемом ресурсе) для использования при проверке подписи. Для формирования цифровой подписи отправитель А прежде всего вычисляет значение хэш-функции h(M) подписываемого текста М (рис. 15.). Хэш-функция служит для сжатия исходного подписываемого текста М в дайджест т - относительно короткое число, состоящее из фиксированного небольшого числа битов и характеризующее весь текст М в целом. Далее отправитель А шифрует дайджест т своим секретным ключом kA. Получаемая при этом пара чисел представляет собой цифровую подпись для данного текста М. Сообщение М вместе с цифровой подписью отправляется в адрес получателя. Процедура проверки цифровой подписи. Абоненты сети могут проверить цифровую подпись полученного сообщения М с помощью открытого ключа отправителя КАэтого сообщения (рис. 16.). При проверке ЭЦП абонент В - получатель сообщения М - расшифровывает принятый дайджест т открытым ключом КАотправителя А. Кроме того, получатель сам вычисляет с помощью хэш-функции h(M) дайджест т принятого сообщения Ми сравнивает его с расшифрованным. Если эти два дайджеста –т и т' -совпадают, то цифровая подпись является подлинной. В противном случае либо подпись подделана, либо изменено содержание сообщения. Принципиальным моментом в системе ЭЦП является невозможность подделки ЭЦП пользователя без знания его секретного ключа подписывания. Поэтому необходимо защитить секретный ключ подписывания от несанкционированного доступа. Секретный ключ ЭЦП, аналогично ключу симметричного шифрования, рекомендуется хранить на персональном ключевом носителе в защищенном виде. Рис. 15. Схема формирования электронной цифровой подписи Рис. 16. Схема проверки электронной цифровой подписи Электронная цифровая подпись представляет собой уникальное число, зависящее от подписываемого документа и секретного ключа абонента. В качестве подписываемого документа может быть использован любой файл. Подписанный файл создается из неподписанного путем добавления в него одной или более электронных подписей. Помещаемая в подписываемый файл (или в отдельный файл электронной подписи) структура ЭЦП обычно содержит дополнительную информацию, однозначно идентифицирующую автора подписанного документа. Эта информация добавляется к документу до вычисления ЭЦП, что обеспечивает и ее целостность. Каждая подпись содержит следующую информацию: дату подписи; срок окончания действия ключа данной подписи; информацию о лице, подписавшем файл (Ф.И.О., должность, краткое наименование фирмы); идентификатор подписавшего (имя открытого ключа); собственно цифровую подпись. Важно отметить, что, с точки зрения конечного пользователя, процесс формирования и проверки цифровой подписи отличается от процесса криптографического закрытия передаваемых данных следующими особенностями. При формировании цифровой подписи используется закрытый ключ отправителя, тогда как при зашифровании применяется открытый ключ получателя. При проверке цифровой подписи используется открытый ключ отправителя, а при расшифровывании - закрытый ключ получателя. Проверить сформированную подпись может любое лицо, так как ключ проверки подписи является открытым. При положительном результате проверки подписи делается заключение о подлинности и целостности полученного сообщения, то есть о том, что это сообщение действительно отправлено тем или иным отправителем и не было модифицировано при передаче по сети. Однако, если пользователя интересует, не является ли полученное сообщение повторением ранее отправленного или не было ли оно задержано на пути следования, то он должен проверить дату и время его отправки, а при наличии - порядковый номер. Аналогично асимметричному шифрованию, необходимо обеспечить невозможность подмены открытого ключа, используемого для проверки ЭЦП. Если предположить, что злоумышленник п имеет доступ к открытым ключам, которые хранит на своем компьютере абонент В, в том числе к открытому ключу КАабонента А, то он может выполнить следующие действия: прочитать из файла, в котором содержится открытый ключ КА, идентификационную информацию об абоненте А; сгенерировать собственную пару ключей knи Кn, записав в них идентификационную информацию абонента A; подменить хранящийся у абонента В открытый ключ КАсвоим открытым ключом Кn, но содержащим идентификационную информацию абонента A. После этого злоумышленник п может посылать документы абоненту В, подписанные своим секретным ключом kn. При проверке подписи этих документов абонент В будет считать, что документы подписаны абонентом A и их ЭЦП верна, то есть они не были модифицированы кем-либо. До выяснения отношений непосредственно с абонентом А у абонента В может не появиться сомнений в полученных документах. Открытые ключи ЭЦП можно защитить от подмены с помощью соответствующих цифровых сертификатов. Вопрос 4. Стандарт цифровой подписи ГОСТ Р 34.10-94. Первый отечественный стандарт цифровой подписи обозначается как ГОСТ Р 34.10-94. Алгоритм цифровой подписи, определяемый этим стандартом, концептуально близок к алгоритму DSA В нем используются следующие параметры: р - большое простое число длиной от 509 до 512 бит либо от 1020 до 1024 бит; q - простой сомножитель числа (р - 1), имеющий длину 254-256 бит; а - любое число, меньшее (р- 1), причем такое, что aq mod р = 1; х - некоторое число, меньшее q; у = ах mod р. Кроме того, этот алгоритм использует однонаправленную хэш-функцию H(х).Стандарт ГОСТ Р 34.11-94 определяет хэш-функцию, основанную на использовании стандартного симметричного алгоритма ГОСТ 28147-89. Первые три параметра -p,q и a- являются открытыми и могут быть общими для всех пользователей сети. Число х является секретным ключом. Число у является открытым ключом. Чтобы подписать некоторое сообщение т, а затем проверить подпись, выполняются следующие шаги: 1. Пользователь А генерирует случайное число k, причем k < q. 2. Пользователь А вычисляет значения: r = (аkmod р) mod q, s = (х х r + k(H(m))) mod q. Если H(m) mod q = 0, то значение H(m) mod q принимают равным единице. Если r = 0, то выбирают другое значение k и начинают снова. Цифровая подпись представляет собой два числа: r mod 2256 и s mod 2256. Пользователь А отправляет эти числа пользователю В. 3. Пользователь В проверяет полученную подпись, вычисляя: v = Н(тп)q-2 mod q, z1= (s ∙ v) mod q, z2 = ((q - r) ∙ v) mod q, u = ((az1 ∙ yz2) mod p) mod q. Если u = r, то подпись считается верной. Различие между этим алгоритмом и алгоритмом DSA заключается в том, что в DSA: s - (k-1(x∙r + (H(m)))) mod q, что приводит к другому уравнению верификации. Следует также отметить, что в отечественном стандарте ЭЦП параметр q имеет длину 256 бит. Западных криптографов вполне устраивает q длиной примерно 160 бит. Различие в значениях параметра q является отражением стремления разработчиков отечественного стандарта к получению более безопасной подписи. Этот стандарт вступил в действие с начала 1995 года. Отечественный стандарт цифровой подписи ГОСТ Р 34.10-2001. Отечественный стандарт цифровой подписи ГОСТ Р 34.10-2001 был принят в 2001 году [12]. Этот стандарт разработан взамен первого стандарта цифровой подписи ГОСТ Р 34.10-94. Необходимость разработки стандарта ГОСТ Р 34.10-2001 вызвана потребностью в повышении стойкости электронной цифровой подписи к несанкционированным изменениям. Стойкость ЭЦП основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции по ГОСТ Р 34.11. Перечень литературы и Интернет-ресурсов: 1. А.П.Алферов, А.Ю.Зубов, А.С.Кузьмин, А.В.Черемушкин. Основы криптографии: Учебное пособие. – М.: Гелиос АРВ, 2005. стр. 69-78. 2. В.М. Фомичев. Дискретная математика и криптология Курс лекций. – М.: ДИАЛОГ-МИФИ, 2003. стр. 150-161. 3. Шаньгин В.Ф. Защита компьютерной информации. Эффективные методы и средства. – М.: ДМК Пресс, 2008. стр. 162-171. 4. http://www.fstec.ru/ 5. http://www.cryptopro.ru/ |