![]() |
|
|
Реферат: Баричев С. Криптография без секретовВ конфликтной ситуации В посылает С сообщение m, идентификационный номер idm и множество ключей K’, которое В объявляет сигнатурой m. Тогда посредник С так же, как и В, будет способен проверить сигнатуру. Вероятность раскрытия двух сообщений с одним и тем же значением функции f должна быть очень мала. Чтобы гарантировать это, число n должно быть достаточно большим, а число р должно быть больше 1, но меньше n. Ряд недостатков этой модели очевиден: * должно быть третье лицо - посредник, которому доверяют как получатель, так и отправитель; * получатель, отправитель и посредник должны обменяться существенным объемом информации, прежде чем будет передано реальное сообщение; * передача этой информации должна осуществляться в закрытом виде; * эта информация используется крайне неэффективно, поскольку множества K, V, V’ используются только один раз. Тем не менее даже такая схема цифровой сигнатуры может использоваться в информационных системах, в которых необходимо обеспечить аутентификацию и защиту передаваемых сообщений. Хэш-функцииИспользование цифровой сигнатуры предполагает использование некоторых функций шифрования: S = H(k, T), где S - сигнатура, k - ключ, T - исходный текст. Функция H(k, T) - является хэш-функцией, если она удовлетворяет следующим условиям: 1) исходный текст может быть произвольной длины; 2) само значение H(k, T) имеет фиксированную длину; 3) значение функции H(k, T) легко вычисляется для любого аргумента; 4) восстановить аргумент по значению с вычислительной точки зрения - практически невозможно; 5) функция H(k, T) - однозначна[14]. Из определения следует, что для любой хэш-функции есть тексты-близнецы - имеющие одинаковое значение хэш-функции, так как мощность множества аргументов неограниченно больше мощности множества значений. Такой факт получил название «эффект дня рождения».[15] Наиболее известные из хэш-функций - MD2, MD4, MD5 и SHA. Три алгоритма серии MD разработаны Ривестом в 1989-м, 90-м и 91-м году соответственно. Все они преобразуют текст произвольной длины в 128-битную сигнатуру. Алгоритм MD2 предполагает: · дополнение текста до длины, кратной 128 битам; · вычисление 16-битной контрольной суммы (старшие разряды отбрасываются); · добавление контрольной суммы к тексту; · повторное вычисление контрольной суммы. Алгоритм MD4 предусматривает: · дополнение текста до длины, равной 448 бит по модулю 512; · добавляется длина текста в 64-битном представлении; · 512-битные блоки подвергаются процедуре Damgard-Merkle[16], причем каждый блок участвует в трех разных циклах. В алгоритме MD4 довольно быстро были найдены «дыры», поэтому он был заменен алгоритмом MD5, в котором каждый блок участвует не в трех, а в четырех различных циклах. Алгоритм SHA (Secure Hash Algorithm) разработан NIST (National Institute of Standard and Technology) и повторяет идеи серии MD. В SHA используются тексты более 264 бит, которые закрываются сигнатурой длиной 160 бит. Данный алгоритм предполагается использовать в программе Capstone[17]. Управление ключамиКроме выбора подходящей для конкретной ИС криптографической системы, важная проблема - управление ключами. Как бы ни была сложна и надежна сама криптосистема, она основана на использовании ключей. Если для обеспечения конфиденциального обмена информацией между двумя пользователями процесс обмена ключами тривиален, то в ИС, где количество пользователей составляет десятки и сотни управление ключами - серьезная проблема. Под ключевой информацией понимается совокупность всех действующих в ИС ключей. Если не обеспечено достаточно надежное управление ключевой информацией, то завладев ею, злоумышленник получает неограниченный доступ ко всей информации. Управление ключами - информационный процесс, включающий в себя три элемента: * генерацию ключей; * накопление ключей; * распределение ключей. Рассмотрим, как они должны быть реализованы для того, чтобы обеспечить безопасность ключевой информации в ИС. Генерация ключейВ самом начале разговора о криптографических методах было сказано, что не стоит использовать неслучайные ключи с целью легкости их запоминания. В серьезных ИС используются специальные аппаратные и программные методы генерации случайных ключей. Как правило используют датчики ПСЧ. Однако степень случайности их генерации должна быть достаточно высоким. Идеальным генераторами являются устройства на основе “натуральных” случайных процессов. Например, появились серийные образцы генерации ключей на основе белого радиошума. Другим случайным математическим объектом являются десятичные знаки иррациональных чисел, например p или е, которые вычисляются с помощью стандартных математических методов. В ИС со средними требованиями защищенности вполне приемлемы программные генераторы ключей, которые вычисляют ПСЧ как сложную функцию от текущего времени и (или) числа, введенного пользователем. Накопление ключейПод накоплением ключей понимается организация их хранения, учета и удаления. Поскольку ключ является самым привлекательным для злоумышленника объектом, открывающим ему путь к конфиденциальной информации, то вопросам накопления ключей следует уделять особое внимание. Секретные ключи никогда не должны записываться в явном виде на носителе, который может быть считан или скопирован. В достаточно сложной ИС один пользователь может работать с большим объемом ключевой информации, и иногда даже возникает необходимость организации мини-баз данных по ключевой информации. Такие базы данных отвечают за принятие, хранение, учет и удаление используемых ключей. Итак, каждая информация об используемых ключах должна храниться в зашифрованном виде. Ключи, зашифровывающие ключевую информацию называются мастер-ключами. Желательно, чтобы мастер-ключи каждый пользователь знал наизусть, и не хранил их вообще на каких-либо материальных носителях. Очень важным условием безопасности информации является периодическое обновление ключевой информации в ИС. При этом переназначаться должны как обычные ключи, так и мастер-ключи. В особо ответственных ИС обновление ключевой информации желательно делать ежедневно. Вопрос обновления ключевой информации связан и с третьим элементом управления ключами - распределением ключей. Распределение ключейРаспределение ключей - самый ответственный процесс в управлении ключами. К нему предъявляются два требования: Оперативность и точность распределения Скрытность распределяемых ключей. В последнее время заметен сдвиг в сторону использования криптосистем с открытым ключом, в которых проблема распределения ключей отпадает. Тем не менее распределение ключевой информации в ИС требует новых эффективных решений. Распределение ключей между пользователями реализуются двумя разными подходами: 1. Путем создания одного ли нескольких центров распределения ключей. Недостаток такого подхода состоит в том, что в центре распределения известно, кому и какие ключи назначены и это позволяет читать все сообщения, циркулирующие в ИС. Возможные злоупотребления существенно влияют на защиту. 2. Прямой обмен ключами между пользователями информационной системы. В этом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов. В обоих случаях должна быть гарантирована подлинность сеанса связи. Это можно обеспечить двумя способами: 1. Механизм запроса-ответа, который состоит в следующем. Если пользователь А желает быть уверенным, что сообщения который он получает от В, не являются ложными, он включает в посылаемое для В сообщение непредсказуемый элемент (запрос). При ответе пользователь В должен выполнить некоторую операцию над этим элементом (например, добавить 1). Это невозможно осуществить заранее, так как не известно, какое случайное число придет в запросе. После получения ответа с результатами действий пользователь А может быть уверен, что сеанс является подлинным. Недостатком этого метода является возможность установления хотя и сложной закономерности между запросом и ответом. 2. Механизм отметки времени (“временной штемпель”). Он подразумевает фиксацию времени для каждого сообщения. В этом случае каждый пользователь ИС может знать, насколько “старым” является пришедшее сообщение. В обоих случаях следует использовать шифрование, чтобы быть уверенным, что ответ послан не злоумышленником и штемпель отметки времени не изменен. При использовании отметок времени встает проблема допустимого временного интервала задержки для подтверждения подлинности сеанса. Ведь сообщение с “временным штемпелем” в принципе не может быть передано мгновенно. Кроме этого компьютерные часы получателя и отправителя не могут быть абсолютно синхронизированы. Какое запаздывание “штемпеля” считать подозрительным. Поэтому в реальных ИС, например в системах оплаты кредитных карточек используется именно второй механизм установления подлинности и защиты от подделок. Используемый интервал составляет от одной до нескольких минут. Большое число известных способов кражи электронных денег, основано на “вклинивании” в этот промежуток с подложными запросами на снятии денег. Для обмена ключами можно использовать криптосистемы с открытым ключом, используя тот же алгоритм RSA. Но весьма эффективным оказался алгоритм Диффи-Хелмана, позволяющий двум пользователям без посредников обменяться ключом, который может быть использован затем для симметричного шифрования. Алгоритм Диффи-ХеллманаДиффи и Хелман предложили для создания криптографических систем с открытым ключом функцию дискретного возведения в степень. Необратимость преобразования в этом случае обеспечивается тем, что достаточно легко вычислить показательную функцию в конечном поле Галуа состоящим из p элементов. (p - либо простое число, либо простое в любой степени). Вычисление же логарифмов в таких полях - значительно более трудоемкая операция. Если y=ax,, 1<x<p-1, где - фиксированный элемент поля GF(p), то x=loga y над GF(p). Имея x, легко вычислить y. Для этого потребуется 2 ln(x+y) операций умножения. Обратная задача вычисления x из y будет достаточно сложной. Если p выбрано достаточно правильно, то извлечение логарифма потребует вычислений, пропорциональных L(p) = exp { (ln p ln ln p)0.5 } Для обмена информацией первый пользователь выбирает случайное число x1, равновероятное из целых 1...p-1. Это число он держит в секрете, а другому пользователю посылает число y1 = ax mod p Аналогично поступает и второй пользователь, генерируя x2 и вычислив y2, отправляя его первому пользователю. В результате этого они могут вычислять k12 = ax1x2 mod p. Для того, чтобы вычислить k12, первый пользователь возводит y2 в степень x1. То же делает и второй пользователь. Таким образом, у обоих пользователей оказывается общий ключ k12, который можно использовать для шифрования информации обычными алгоритмами. В отличие от алгоритма RSA, данный алгоритм не позволяет шифровать собственно информацию. Не зная x1 и x2, злоумышленник может попытаться вычислить k12, зная только перехваченные y1 и y2. Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) - потребуется около 1030 операций. Как видно, при всей простоте алгоритма Диффи-Хелмана, вторым его недостатком по сравнению с системой RSA является отсутствие гарантированной нижней оценки трудоемкости раскрытия ключа. Кроме того, хотя описанный алгоритм позволяет обойти проблему скрытой передачи ключа, необходимость аутентификации остается. Без дополнительных средств, один из пользователей не может быть уверен, что он обменялся ключами именно с тем пользователем, который ему нужен. Опасность имитации в этом случае остается. В качестве обобщения сказанного о распределении ключей следует сказать следующее. Задача управления ключами сводится к поиску такого протокола распределения ключей, который обеспечивал бы: * возможность отказа от центра распределения ключей; * взаимное подтверждение подлинности участников сеанса; * подтверждение достоверности сеанса механизмом запроса-ответа, использование для этого программных или аппаратных средств; * использование при обмене ключами минимального числа сообщений. Проблемы и перспективы криптографических системШифрование больших сообщений и потоков данныхЭта проблема появилась сравнительно недавно с появлением средств мультимедиа и сетей с высокой пропускной способностью, обеспечивающих передачу мультимедийных данных. До сих пор говорилось о защите сообщений. При этом под ними подразумевалась скорее некоторая текстовая или символическая информация. Однако в современных ИС и информационных системах начинают применяться технологии, которые требуют передачи существенно больших объемов данных. Среди таких технологий: * факсимильная, видео и речевая связь; * голосовая почта; * системы видеоконференций. Объем передаваемой информации разных типов можно представить на условной диаграмме.
Так как передача оцифрованной звуковой, графической и видеоинформации во многих случаях требует конфиденциальности, то возникает проблема шифрования огромных информационных массивов. Для интерактивных систем типа телеконференций, ведения аудио или видеосвязи, такое шифрование должно осуществляться в реальном масштабе времени и по возможности быть “прозрачным” для пользователей. Это немыслимо без использования современных технологий шифрования. Наиболее распространенным является потоковое шифрование данных. Если в описанных ранее криптосистемах предполагалось, что на входе имеется некоторое конечное сообщение, к которому и применяется криптографический алгоритм, то в системах с потоковым шифрованием принцип другой. Система защиты не ждет, когда закончится передаваемое сообщение, а сразу же осуществляет его шифрование и передачу. Потоковое шифрование данных Наиболее очевидным является побитовое сложение входящей последовательности (сообщения) с некоторым бесконечным или периодическим ключом, получаемым например от генератора ПСП[18]. Примером стандарта потокового шифрования является RC4, разработанный Ривестом. Однако, технические подробности этого алгоритма держатся в секрете[19]. Другим, иногда более эффективным методом потокового шифрования является шифрование блоками. Т.е. накапливается фиксированный объем информации (блок), а затем преобразованный некоторым криптографическим методом передается в канал связи. Использование “блуждающих ключей”Как было неоднократно отмечено, проблема распределения ключей является наиболее острой в крупных информационных системах. Отчасти эта проблема решается (а точнее снимается) за счет использования открытых ключей. Но наиболее надежные криптосистемы с открытым ключом типа RSA достаточно трудоемки, а для шифрования мультимедийных данных и вовсе не пригодны. Оригинальные решения проблемы “ блуждающих ключей” активно разрабатываются специалистами. Эти системы являются некоторым компромиссом между системами с открытыми ключами и обычными алгоритмами, для которых требуется наличие одного и того же ключа у отправителя и получателя. Идея метода достаточно проста. После того, как ключ использован в одном сеансе по некоторому правилу он сменяется другим. Это правило должно быть известно и отправителю, и получателю. Зная правило, после получения очередного сообщения получатель тоже меняет ключ. Если правило смены ключей аккуратно соблюдается и отправителем и получателем, то в каждый момент времени они имеют одинаковый ключ. Постоянная смена ключа затрудняет раскрытие информации злоумышленником. Основная задача в реализации этого метода - выбор эффективного правила смены ключей. Наиболее простой путь - генерация случайного списка ключей. Смена ключей осуществляется в порядке списка. Однако, очевидно список придется каким-то образом передавать. Другой вариант - использование математических алгоритмов, основанных на так называемых перебирающих последовательностях. На множестве ключей путем одной и той же операции над элементом получается другой элемент. Последовательность этих операций позволяет переходить от одного элемента к другому, пока не будет перебрано все множество. Наиболее доступным является использование полей Галуа. За счет возведения в степень порождающего элемента можно последовательно переходить от одного числа к другому. Эти числа принимаются в качестве ключей. Ключевой информацией в данном случае является исходный элемент, который перед началом связи должен быть известен и отправителю и получателю. Надежность таких методов должна быть обеспечена с учетом известности злоумышленнику используемого правила смены ключей. Интересной и перспективной задачей является реализация метода “блуждающих ключей” не для двух абонентов, а для достаточно большой сети, когда сообщения пересылаются между всеми участниками. Шифрование, кодирование и сжатие информацииЭти три вида преобразования информации используются в разных целях, что можно представить в таблице. Как видно эти три вида преобразования информации отчасти дополняют друг друга и их комплексное использование поможет эффективно использовать каналы связи для надежной защиты предаваемой информации. Особенно интересным представляется возможность объединения методов кодирования и шифрования. Можно утверждать, что по сути кодирование - это элементарное шифрование, а шифрование - это элементарное помехоустойчивое кодирование. Другая возможность - комбинирование алгоритмов шифрования и сжатия информации. Задача сжатия состоит в том, чтобы преобразовать сообщение в пределах одного и того же алфавита таким образом, чтобы его длина (количество букв алфавита) стала меньше, но при этом сообщение можно было восстановить без использования какой-то дополнительной информации. Наиболее популярные алгоритмы сжатия - RLE, коды Хаффмана, алгоритм Лемпеля-Зива. Для сжатия графической и видеоинформации используются алгоритмы JPEG и MPEG. Главное достоинство алгоритмов сжатия с точки зрения криптографии состоит в том, что они изменяют статистику входного текста в сторону ее выравнивания[20]. Так, в обычном тексте, сжатом с помощью эффективного алгоритма все символы имеют одинаковые частотные характеристики и даже использование простых системы шифрования сделают текст недоступным для криптоанализа. Разработка и реализация таких универсальных методов - перспектива современных информационных систем[21]. Реализация криптографических методовПроблема реализации методов защиты информации имеет два аспекта: * разработку средств, реализующих криптографические алгоритмы, * методику использования этих средств. Каждый из рассмотренных криптографических методов могут быть реализованы либо программным, либо аппаратным способом. Возможность программной реализации обуславливается тем, что все методы криптографического преобразования формальны и могут быть представлены в виде конечной алгоритмической процедуры. При аппаратной реализации все процедуры шифрования и дешифрования выполняются специальными электронными схемами. Наибольшее распространение получили модули, реализующие комбинированные методы. При этом непременным компонентов всех аппаратно реализуемых методов является гаммирование. Это объясняется тем, что метод гаммирования удачно сочетает в себе высокую криптостойкость и простоту реализации. Наиболее часто в качестве генератора используется широко известный регистр сдвига с обратными связями (линейными или нелинейными). Минимальный период порождаемой последовательности равен 2N-1 бит. Для повышения качества генерируемой последовательности можно предусмотреть специальный блок управления работой регистра сдвига. Такое управление может заключаться, например, в том, что после шифрования определенного объема информации содержимое регистра сдвига циклически изменяется. Другая возможность улучшения качества гаммирования заключается в использовании нелинейных обратных связей. При этом улучшение достигается не за счет увеличения длины гаммы, а за счет усложнения закона ее формирования, что существенно усложняет криптоанализ. Большинство зарубежных серийных средств шифрования основано на американском стандарте DES. Отечественные же разработки, такие как, например, устройство КРИПТОН, использует отечественный стандарт шифрования. Основным достоинством программных методов реализации защиты является их гибкость, т.е. возможность быстрого изменения алгоритмов шифрования. Основным же недостатком программной реализации является существенно меньшее быстродействие по сравнению с аппаратными средствами (примерно в 10 раз). В последнее время стали появляться комбинированные средства шифрования, так называемые программно-аппаратные средства. В этом случае в компьютере используется своеобразный “криптографический сопроцессор”[22] - вычислительное устройство, ориентированное на выполнение криптографических операций (сложение по модулю, сдвиг и т.д.). Меняя программное обеспечения для такого устройства, можно выбирать тот или иной метод шифрования. Такой метод объединяет в себе достоинства программных и аппаратных методов. Таким образом, выбор типа реализации криптозащиты для конкретной ИС в существенной мере зависит от ее особенностей и должен опираться на всесторонний анализ требований, предъявляемых к системе защиты информации. ЗаключениеВ книге сделан обзор наиболее распространенных в настоящее время методов криптографической защиты информации. Выбор для конкретных ИС должен быть основан на глубоком анализе слабых и сильных сторон тех или иных методов защиты. Обоснованный выбор той или иной системы защиты в общем-то должен опираться на какие-то критерии эффективности. К сожалению, до сих пор не разработаны подходящие методики оценки эффективности криптографических систем. Наиболее простой критерий такой эффективности - вероятность раскрытия ключа или мощность множества ключей (М). По сути это то же самое, что и криптостойкость. Для ее численной оценки можно использовать также и сложность раскрытия шифра путем перебора всех ключей. Однако, этот критерий не учитывает других важных требований к криптосистемам: * невозможность раскрытия или осмысленной модификации информации на основе анализа ее структуры, * совершенство используемых протоколов защиты, * минимальный объем используемой ключевой информации, * минимальная сложность реализации (в количестве машинных операций), ее стоимость, * высокая оперативность. Желательно конечно использование некоторых интегральных показателей, учитывающих указанные факторы. Для учета стоимости, трудоемкости и объема ключевой информации можно использовать удельные показатели - отношение указанных параметров к мощности множества ключей шифра. Часто более эффективным при выборе и оценке криптографической системы является использование экспертных оценок и имитационное моделирование. В любом случае выбранный комплекс криптографических методов должен сочетать как удобство, гибкость и оперативность использования, так и надежную защиту от злоумышленников циркулирующей в ИС информации. Содержание От автора____________________________________________________________________ 1 Введение____________________________________________________________________ 2 Терминология_________________________________________________________________________ 3 Требования к криптосистемам____________________________________________________________ 4 Симметричные криптосистемы_________________________________________________ 6 Перестановки__________________________________________________________________________ 7 Системы подстановок___________________________________________________________________ 7 Гаммирование________________________________________________________________________ 13 Датчики ПСЧ_________________________________________________________________________ 13 Стандарт шифрования данных ГОСТ 28147-89_____________________________________________ 15 Системы с открытым ключом_________________________________________________ 19 Алгоритм RSA________________________________________________________________________ 20 Криптосистема Эль-Гамаля_____________________________________________________________ 24 Криптосистемы на основе эллиптических уравнений_________________________________________ 25 Электронная подпись________________________________________________________ 26 Электронная подпись на основе алгоритма RSA_____________________________________________ 27 Цифровая сигнатура___________________________________________________________________ 29 Управление ключами_________________________________________________________ 32 Генерация ключей_____________________________________________________________________ 32 Накопление ключей____________________________________________________________________ 32 Распределение ключей_________________________________________________________________ 33 Проблемы и перспективы криптографических систем____________________________ 36 Шифрование больших сообщений и потоков данных_________________________________________ 36 Использование “блуждающих ключей”____________________________________________________ 37 Шифрование, кодирование и сжатие информации____________________________________________ 39 Реализация криптографических методов___________________________________________________ 40 Заключение_________________________________________________________________ 42 [1] IMHO [2] Здесь и далее m - объем используемого алфавита. [3] n-граммой называется последовательность из n символов алфавита. [4] К вопросу о том, существует ил не существует абсолютно надежная криптосистема. [5] Материал предоставлен Ю. Г. Писаревым [6] ГОСТ 28147-89 закрыт грифом ДСП поэтому дальнейшее изложение сделано по изданию Спесивцев А.В. и др. «Защита информации в персональных ЭВМ», М., Радио и связь, 1992. [7] В настоящее время он возглавляет компанию RSA Data Security [8] Например, в нашумевшей программе PGP [9] В браузерах Интернет от Microsoft и Netscape [10] В теории чисел показано, что вероятность того, что число порядка n будет простым составляет 1/ln n [11] Данные оценки сделаны с учетом развития вычислительной техники вплоть до 2004 года. [12] Однако общего мнения по поводу предпочтительности того или иного метода нет. [13] В РФ принятые стандарты цифровой подписи Р38 и Р39, также как и ГОСТ 28147-89 имеют гриф ДСП [14] При этом разделяют слабую и сильную однозначность. При слабой однозначности для заданного значения T практически невозможно отыскать другой текст Т’, для которого H(k, T) = H(k, T’). При сильной однозначности для любого текста T невозможно найти другой подходящий текст, имеющий то же значение хэш-функции. [15] Факт теории вероятностей: в группе из 23 человек с вероятностью больше 0.5 два и более человека родились в одно и то же число. [16] В отличие от хэш-функции - этот класс преобразований предполагает вычисление для аргументов фиксированной длины также фиксированных по длине значений. [17] Государственная программа США, предполагающая централизованное хранение всех ключей, используемых организациями а частными лицами. [18] Отчасти это метод похож на гаммирование и информацию о способах генерации ПСП можно почерпнуть из соответствующей главы. Но важным отличием потокового шифрования является то, что шифрованию подвергаются не символы сообщения, а отдельные биты. [19] Данный алгоритм является собственностью RSA Data Security, и на его экспорт правительством США наложены серьезные ограничения. [20] Принципиально важно с точки зрения криптостойкости, чтобы сначала осуществлялось сжатие информации а потом шифрование, но не наоборот. [21] Так, в криптографическом пакете PGP перед шифрованием информации происходит ее сжатие по алгоритму, лицензированному у PKWARE. [22] А то и просто специализированный шифровальный микропроцессор как, например, Clipper/ |
![]() |
||
НОВОСТИ | ![]() |
![]() |
||
ВХОД | ![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |