
- •10.1. Основные понятия криптографии.
- •10.2. Алгоритмы шифрования.
- •10.2.1. Симметричные алгоритмы шифрования.
- •10.2.2. Асимметричные алгоритмы шифрования.
- •10.3. Криптоаналитические атаки.
- •10.4. Шифры.
- •10.4.1. Подстановочные шифры.
- •10.4.2. Перестановочные шифры.
- •10.4.3. Компьютерные алгоритмы шифрования
- •10.5. Электронная цифровая подпись.
10.5. Электронная цифровая подпись.
Собственноручная подпись под документом с давних пор используется людьми в качестве доказательства того факта, что человек, подписавший данный документ, ознакомился и согласен с его содержанием. При передаче электронных документов по каналам связи возникает проблема аутентификации автора документа и самого текста, т.е. установления подлинности автора и отсутствия изменений в полученном документе. Целью аутентификации электронных документов является их защита от возможных видов злоумышленных действий, которым относятся:
- активный перехват - нарушитель, подключившийся к сети, перехватывает документы (файлы) и изменяет их;
- маскарад - абонент С посылает документ абоненту В от имени абонента А;
- ренегатство - абонент А заявляет, что не посылал сообщения абоненту В, хотя на самом деле послал;
- подмена - абонент В изменяет или формирует новый документ и заявляет, что получил его от абонента А;
- повтор - абонент С повторяет ранее переданный документ, который абонент А посылал абоненту В.
Электронная цифровая подпись - дополнительная информация, соответствующая данному электронному документу, которая могла быть сформирована только владельцем некоторого секрета - закрытого ключа и которая позволяет с использованием специального алгоритма установить факт соответствия подписи закрытому ключу подписывающего.
После подписывания сообщения М к нему дописывается цифровая подпись размером 512 бит и текстовое поле. В текстовом поле могут содержаться: дата и время отправки или различные данные об отправителе.
Сообщение М + { Цифровая подпись Текст}
Для формирования цифровой подписи документа обычно создается так называемый дайджест сообщения (message digest), который представляет собой свертку исходного сообщения с помощью специальной хэш-функции (hash - мелко измельчать и перемешивать). Длина дайджеста с одной стороны намного меньше, чем возможные исходные сообщения, а с другой стороны такова, что полный перебор возможных значений является практически невыполнимым. Длина дайджеста, порождаемого алгоритмами Ривеста - MD2,MD4,MD5 равняется 128 битам, а алгоритмом SHA-1 - 160 битам. (Secure Hash Algorithm 1 - алгоритм криптографического хеширования. Для входного сообщения произвольной длины алгоритм генерирует 160-битное хеш-значение. Рекомендован в качестве основного для государственных учреждений в США).
Разрядность в 128 или 160 бит гарантирует, что на сегодняшнее время в мире не существует двух разных документов, имеющих одинаковую свертку.
В системах ЭЦП подписывается не сам документ, а только его свертка. Если на приемной стороне вычисленное получателем самостоятельно хэш-сумма документа совпадает с присланным, то и весь документ признается аутентичным - внести в него изменения, не изменив значение хэш-суммы, невозможно.
Хэширование произхводится с помощью промежуточной вспомогательной переменной разрядностью в n бит. В качестве ее начального значения выбирается произвольное известное всем сторонам значение, например, 0. Входные данные разбиваются на блоки по (k-n) бит. На каждой итерации хэширования со значением промежуточной величины, полученной на предыдущей итерации, объединяется очередная (k-n) - битная порция входных данных, и над получившимся k-битным блоком производится базовое преобразование. В результате весь входной текст оказывается "перемешанным" с начальным значением вспомогательной функции. Из-за характера преобразования базовую функцию еще часто называют сжимающей. Значение вспомогательной величины после финальной итерации поступает на выход хэш-функции.
Система RSA может использоваться для цифровой подписи.
Предположим,
что стороне
нужно отправить стороне
ответ
,
подтверждённый цифровой
подписью.
Алгоритм: Взять открытый текст Создать
цифровую подпись
Передать
пару
|
Алгоритм: Принять пару Взять открытый ключ стороны Проверить подлинность подписи:
|
Наибольшее распространение получили два алгоритма криптостойкого хэширования: алгоритм MD5 (Message digest № 5) (Рональдом Ривестом (Ronald Rivest)) и алгоритм SHA-1 (Sequre Hash Algorithm) (Институт Стандартизации США NIST). Размер значения хэш-функции, вычисленной по алгоритма MD5 равен 128 битам, а значение хэш-функции, вычисленной по алгоритму SHA-1 равен 160 битам.
Использование однонаправленных хэш-функций для подписания документов
На практике криптосистемы с открытым ключом не всегда эффективны при подписании документов значительного объема. В целях экономии времени можно подписывать не сам документ, а хэш-значение, вычисленное для этого документа при помощи однонаправленной хэш-функции. Участники протокола должны только заранее условиться о том, какой алгоритм шифрования с открытым ключом и какую однонаправленную хэш-функцию они будут использовать для подписания документов.
Криптографы придумали множество алгоритмов цифровой подписи. Все они основаны на криптосистемах с открытым ключом. При этом секретная информация используется для того, чтобы поставить подпись под документом, а общедоступная - чтобы проверить подлинность этой подписи. Поэтому часто процесс подписания документа называют шифрованием на тайном ключе, а процесс проверки подлинности подписи — расшифрованием на открытом ключе. Однако это справедливо только для одного алгоритма шифрования с открытым ключом - RSA, а подавляющее большинство остальных алгоритмов цифровой подписи совершенно непригодны для шифрования сообщений.
Битовая строка, которая присоединяется к документу при его подписании (например, хэш-значение файла, зашифрованное на тайном ключе) будет именоваться цифровой подписью.
ГОСТ Р 34.10-2001 («Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи») - российский стандарт ЭЦП от 12 сентября 2001г. Основан на эллиптических кривых. Его стойкость основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции по ГОСТ Р 34.11-94 (российский криптографический стандарт вычисления хэш-функции, дата введения: 23 мая 1994 г., размер хэша: 256 бит, размер блока входных данных: 256 бит).
Отражение атаки при помощи "изюминок"
Файл с хэш-значениями, полученными из паролей, может подвергнуться словарной атаке. Составив словарь примерно из 1 млн самых распространенных паролей, применяют к ним хэш-функцию. В результате он получаем файл объемом до 10 Мбайт, который уместится на нескольких дискетах. Далее украдем с сервера файл с паролями, зашифрованными с помощью хэш-функции, и сравним его со своим файлом, содержащим хэш-значения для самых часто используемых паролей. Совпадающие хэш-значения позволят определить некоторые из паролей.
Существует ряд методов защиты от подделки паролей, подписей и сертификатов, даже если злоумышленнику известны методы построения коллизий для какой-либо хеш-функции.
Одним из методов является метод «salt», применяемый при хранении UNIX-паролей - добавление некоторой последовательности символов перед хешированием. Иногда, эта же последовательность добавляется и к полученному хешу. После такой процедуры, итоговые хеш-таблицы значительно сложнее анализировать, а так как эта последовательность секретна, существенно повышается сложность построения коллизий - злоумышленнику должна быть также известна последовательность «salt».
Другим методом является конкатенация хешей, получаемых от двух различных хеш-функций. При этом, чтобы подобрать коллизии к хеш-функции, являющейся конкатенацией хеш-функций y(x) и z(x), необходимо знать методы построения коллизий и для y(x) и z(x). Недостатком конкатенации является увеличиние размера хеша, что не всегда приемлемо в практических приложениях.
Периодическая сменяемость паролей
Даже при наличии "изюминок" схема аутентификации пользователей путем проверки их паролей имеет один очень серьезный недостаток. Ведь не исключено, что линия связи, соединяющая персональный компьютер с сервером информационно-коммерческой службы, проходит по территориям 33-х стран, законодательство которых по-разному трактует права своих и иностранных граждан на сохранение в тайне их личной переписки. И поэтому узнать пароль, в принципе, может любой, кто сумеет подключиться к этой линии связи или обратиться в память сервера и узнать пароль, прежде чем для него будет вычислено соответствующее хэш-значение. Чтобы уменьшить ущерб от компрометации пароля, его следует периодически менять.
Как выбрать хороший криптографический алгоритм
Безопасность криптосистем можно сравнить с надежностью цепи: чем крепче ее самое слабое звено, тем труднее порвать эту цепь. В хорошей криптосистеме должно быть досконально проверено все - алгоритм, протокол, ключи .
Криптограф в проектируемой криптосистеме должен предусмотреть защиту от атак всех типов, какие только сможет придумать воспаленное воображение криптоаналитика. Криптоаналитику же наоборот достаточно отыскать единственное слабое звено в цепи криптографической зашиты и организовать атаку только против этого звени.
Криптографические алгоритмы, предназначенные для экспорта из США
В настоящее время у пользователей персональных компьютеров имеется возможность применять алгоритмы шифрования, встроенные в различные программные продукты. Достаточно приобрести текстовый редактор Word, редактор электронных таблиц Excel или операционные системы Windows NT.
По настоянию АНБ переделывают используемые криптографические алгоритмы так, что:
время от времени отдельные биты ключа подмешиваются в шифртекст;
ключ имеет длину всего 30 бит вместо официально заявляемых 100 бит, поскольку большинство ключей оказываются эквивалентны;
в начало каждого шифруемого сообщения вставляется фиксированный заголовок, чтобы облегчить криптоаналитическую атаку со знанием открытого текста;
любое шифрованное сообщение содержит некоторый фрагмент открытого текста вместе с соответствующим ему шифртекстом.
Симметричный или асимметричный криптографический алгоритм?
Какой алгоритм лучше - симметричный или асимметричный? Вопрос не вполне корректен, поскольку предусматривает использование одинаковых критериев при сравнении криптосистем с секретным и открытым ключами. А таких критериев просто не существует.
Тем не менее, дебаты относительно достоинств и недостатков двух основных видов криптосистем ведутся давно, начиная с момента изобретения первого алгоритма с открытым ключом. Симметричные криптографические алгоритмы имеют меньшую длину ключа и работают быстрее, чем асимметричные.
Однако, по мнению американского криптолога У. Диффи - одного из изобретателей криптосистем с открытым ключом - их следует рассматривав не как совершенно новую разновидность универсальных криптосистем. Криптография с открытым ключом и криптография с секретным ключом предназначены для решения абсолютно разных проблем, связанных с засекречиванием информации. Симметричные криптографические алгоритмы служат для шифрования данных, они работают на несколько порядком быстрее, чем асимметричные алгоритмы. Криптография с открытым ключом успешно используется - при работе с ключами и с подавляющим большинством криптографических протоколов.
( На практике криптосистемы с открытым ключом используют для шифрования сеансовых ключей, а не для шифрования сообщений. При этом нет необходимости хранить ключи, после окончания сеанса ключ уничтожается. Последовательность шагов в подобной гибридной системе следующая:
Генерируют сеансовый ключ;
Сообщение шифруют симметричным методом, используя сеансовый ключ;
Затем сеансовый ключ шифруют асимметричным методом, используя открытый ключ получателя;
Сообщение и ключ отправляют по сети.
Сообщение
Симметричное
шифрование
Зашифрованное
сообщение
Асимметричное
шифрование
Ключ
ключ
Генератор
ключей каждого сеанса
Открытый
ключ получателя
Рис.12.10. Зашифрование сообщения.
З
Сообщение
Симметричное
шифрование
Зашифрованный
к
Ключ
Асимметричное
шифрование
Закрытый
ключ получателя
Рис.12.11. Расшифрование сообщения.
Аппаратное и программное шифрование.
Аппаратное шифрование.
Большинство средств криптографической защиты данных реализовано в виде спецустройств. Эти устройства встраиваются в линию связи и осуществляют шифрование всей передаваемой но ней информации. Преобладание аппаратного шифрования над программным обусловлено несколькими причинами.
Более высокая скорость. Криптографические алгоритмы состоят из огромного числа сложных операций, выполняемых над битами открытого текста. Современные универсальные компьютеры плохо приспособлены для эффективного выполнения этих операций. Специализированное оборудование умеет делать их быстрее.
Аппаратуру легче физически защитить от проникновения извне. Программа выполняемая на персональном компьютере, практически беззащитна. Вооружившись отладчиком, злоумышленник может внести в нее скрытые изменения, чтобы понизить стойкость используемого криптографического алгоритма, и никто ничего не заметит. Что же касается аппаратуры, то она обычно помещается в особые контейнеры, которые делают невозможным изменение схемы ее функционирования.
Аппаратура шифрования более проста в установке.
Современный рынок аппаратных средств шифрования информации предлагает 3 разновидности таких средств:
- самодостаточные шифровальные модули (они самостоятельно выполняют всю работу с ключами); - блоки шифрования в каналах связи;
- шифровальные платы расширения (для установки в персональные компьютеры).
Большинство устройств первого и второго типов являются узко специализированными и поэтому прежде, чем принимать окончательное решение об их приобретении, необходимо досконально изучить ограничения, которые при установке накладывают эти устройства на соответствующее "железо", операционные системы и прикладное программное обеспечение.
Платы расширения для персональных компьютеров являются более универсальным средством аппаратного шифрования и обычно могут быть легко сконфигурированы таким образом, чтобы шифровать всю информацию, которая записывается на жесткий диск компьютера, а также все данные, пересылаемые на дискеты и в последовательные порты.
Программное шифрование.
Любой криптографический алгоритм может быть реализован в виде соответствующей программы. Преимущества такой реализации очевидны: программные средства шифрования легко копируются, они просты в использовании, их нетрудно модифицировать в соответствии с конкретными потребностями.
Во всех операционных системах имеются встроенные средства шифрования файлов. Обычно они предназначены для шифрования отдельных файлов и работа с ключами целиком возлагается на пользователя. Поэтому применение этих средств требует особого внимания.
Злоумышленник может добраться до компьютера и незаметно внести нежелательные изменения в программу шифрования. Однако основная проблема состоит отнюдь не в этом. Если злоумышленник в состоянии проникнуть в помещение, где установлен компьютер, он вряд ли будет возиться с программой.
Законодательные ограничения
В Своде законов США имеется пункт 2778, который называется "Контроль за экспортом и импортом вооружений". Именно этот пункт является юридической основой для ряда инструкций, именуемых "Правилами контроля за перемещением оружия в мире" (International Traffic in Arms Regulations). Раздел 120.1 ITAR впрямую причисляет к военному снаряжению - ПО, предназначенное для целей эффективного шифрования данных. А это означает, что американским компаниям, желающим экспортировать программы эффективного шифрования, необходимо зарегистрироваться в Государственном департаменте США в качестве торговца военным имуществом и получить там лицензию на экспорт. Все программные средства, произведенные в США и легально экспортируемые за рубеж, обеспечивают ослабленную криптографическую защиту.
Слишком малая длина ключа
Слишком малая длина ключа - одна из причин ненадежности криптографических систем. Причем недостаточную длину ключа могут иметь даже те криптосистемы, в которых применяются самые надежные алгоритмы шифрования.
Первым надежным криптографическим алгоритмом, который вплотную столкнулся с проблемой выбора адекватной длины ключа, стал RSA. Дело в том, что его вскрытие требует разложения на множители (факторизации) очень больших чисел. На сегодняшний день достаточно реальным представляется факторизация 512-битовых чисел. Разложение на множители является одной из самых динамично развивающихся областей криптографии.
Шифрование вокруг нас
Единственным лицензированным шифром в настоящее время является ГОСТ 28147-89, разработанный еще в недрах КГБ. Все остальные криптосистемы, предлагаемые зарубежными и российскими фирмами в виде законченных продуктов или библиотек, включая как устоявшие зарубежные стандарты, так и самостоятельные оригинальные разработки, являются незаконными.
Поскольку наше государство не в состоянии обеспечить граждан надежной информационной защитой, сертифицированными криптографическими средствами, сотни таких программ можно найти в Internet, по адресу ftp.elf.stuba.sk/pub/security). Их распространению способствует нечеткость президентского Указа № 334, в котором не оговорено, что же конкретно понимается под термином "шифрование" данных. Если предположить, что шифрование - это нестандартная кодировка данных, которая серьезно затрудняет возможность их перекодировки в стандартное представление без соответствующего аппаратного или программного обеспечения, то в категорию шифросистем тут же попадут архиваторы (pkzip, arj и r а r ), известные текстовые редакторы (Word и Lexicon), a также средства редактирования графических изображений (Paint и CorelDraw), поскольку все они используют свою собственную нестандартную кодировку, не позволяющую без соответствующих программ просматривать закодированные с их помощью данные.
Попытка придумать универсальный критерий подразделения кодировок на стандартные и нестандартные заранее обречена на провал, т. к. разработчиков программного обеспечения нельзя заставить пользоваться только кодировкой, одобренной указом президента в качестве стандартной. Учитывая неразбериху, царящую в российском законодательстве, неудивительно, что российские пользователи для защиты своей конфиденциальной информации активно применяют архиваторы с парольной защитой, Norton Diskreet, Word, Excel, многочисленные условно-бесплатные программы (PGP, CodeDvag, SecurPC, Secur-all 32, BestCrypt NP, Kremlin и др.).
Вывод : ситуация па рынке криптографических систем не внушает оптимизма. Законодательные ограничения, ошибки в реализации, недружественный интерфейс, недостаточная длина ключа и наличие потайных ходов приводят к тому, что отыскать надежную криптосистему практически невозможно.