Анимация
JavaScript
|
Главная Библионтека сти передаваемых сообщений, хранение информации (документов, баз данных) на носителях в зашифрованном виде. В качестве информации, подлежащей шифрованию и расшифрованию, а также электронной подписи будут рассматриваться тексты (сообщения), построенные на некотором алфавите. Под этими терминами понимается следующее. Алфавит - конечное множество используемых для кодирования информации знаков. Текст (сообщение) - упорядоченный набор из элементов алфавита. В качестве примеров алфавитов, используемых в современных ИС можно привести следующие: алфавит Z33 - 32 буквы русского алфавита (исключая "ё") и пробел; алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8; двоичный алфавит - Z2 = {0,1}; восьмеричный или шестнадцатеричный алфавит. Зашифрование - процесс преобразования открытых данных в зашифрованные при помощи шифра. Вместо термина "открытые данные" часто употребляются термины открытый текст и исходный текст, а вместо "зашифрованные данные" - шифрованный текст. Расшифрование - процесс, обратный зашифрованию, т.е процесс преобразования зашифрованных данных в открытые при помощи ключа. В некоторых источниках отдельно выделяют термин дешифрование, подразумевая под этим восстановление исходного текста на основе шифрованного без знания ключа, то есть методами криптоанализа. Мы в дальнейшем будем считать расшифрование и дешифрование синонимами. Под шифрованием понимается процесс зашифрования или расшифрования. Также термин шифрование (в узком смысле) используется как синоним зашифрования. Однако неверно в качестве синонима шифрования использовать термин «кодирование» (а вместо «шифра» - «код»), так как под кодированием обычно понимают представление информации в виде знаков (букв алфавита). Криптографическая система, или шифр представляет собой семейство Т обратимых преобразований открытого текста в шифрованный. Членам этого семейства можно взаимно однозначно сопоставить число к, называемое ключом. Преобразование Ti определяется соответствующим алгоритмом и значением ключа к. Ключ - конкретное значение некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из семейства. Секретность ключа должна обеспечивать невозможность восстановление исходного текста по шифрованному. Пространство ключей К - это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита. Следует отличать понятия ключ и пароль. Пароль также является секретной последовательностью букв алфавита, однако используется не для шифрования (как ключ), а для аутентификации субъектов. Криптосистемы подразделяются на симметричные и асимметричные (или с открытым (публичным) ключом). В симметричных криптосистемах для зашифрования и для расшифрования используется один и тот же ключ. В системах с открытым ключом используются два ключа -открытый (публичный) и закрытый (секретный), которые математически связаны друг с другом. Информация зашифровывается с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения. Термины распределение ключей и управление ключами относятся к процессам системы обработки информации, содержанием которых является выработка и распределение ключей между пользователями. Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и целостность сообщения. 1.2. Требования к криптографическим системам Процесс криптографического закрытия данных может осуществляться как программно, так и аппаратно. Аппаратная реализация отличается существенно большей стоимостью, однако ей присущи и преимущества: высокая производительность, про- стота, защищенность и т.д. Программная реализация более практична, допускает известную гибкость в использовании. Независимо от способа реализации для современных криптографических систем защиты информации сформулированы следующие общепринятые требования: 1. Знание алгоритма шифрования не должно синжатъ криптостойскости шифра. Это фундаментальное требование было сформулировано в XIX веке Керкхоффом и разделяет криптосистемы общего использования (алгоритм доступен потенциальному нарушителю) и ограниченного использования (алгоритм держится в секрете). Безусловно все массово используемые криптосистемы должны отвечать этому требованию. Взлом шифров в системе сотовой связи GSM или защите дисков DVD от незаконного воспроизведения - наглядные примеры последствий, к которым может привести несоблюдение этого требования. 2. Зашифрованное сообщение должно поддаваться чтению только при наличии ключа. Используемое в программе MS Word 6.0/95 «шифрование» документа на самом деле только запрещало его открытие в данной программе. Сам же текст не шифровался и был доступен для чтения в любом текстовом редакторе. 3. Шифр должен быть стойким даже в случае если нару-щителю известно достаточно большое количество исходных данных и соответствующих им зашифрованных данных. 4. Число операций, необходимых для расшифровывания информации путем перебора всевозможных ключей должно иметь строгую нижнюю оценку и должно либо выходить за пределы возможностей современных компьютеров (с учетом возможности организации сетевых вычислений) или требовать создания использования дорогих вычислительных систем. 5. Незначительное изменение ключа или исходного текста должно приводить к существенному изменению вида зашифрованного текста. Этому требованию не соответствуют практически все шифры донаучной криптографии. 6. Структурные элементы алгоритма шифрования должны быть неизменными. 7. Длина шифрованного текста должна быть равной длине исходного текста. 8. Дополнительные биты, вводимые в сообщение в процессе шифрования, должен быть полностью и надежно скрыты в шифрованном тексте. 9. Не должно быть простых и легко устанавливаемых зависимостей между ключами, последовательно используемыми в процессе шифрования. 10. Любой ключ из множества возможных должен обеспечивать равную криптостойкость. В этом случае принято говорить о линейном (однородном) пространстве ключей. 1.3. Краткие сведения о криптоанализе Криптоанализ как наука выходит за рамки данной книги, однако знание некоторых его положений необходимо для глубокого понимания криптографии. Главным действующим лицом в криптоанализе выступает нарушитель (или криптоаналитик). Под ним понимают лицо (группу лиц), целью которых является прочтение или подделка защищенных криптографическими методами сообщений. В отношении нарушителя принимается ряд допущений, которые как правило кладутся в основу математических или иных моделей: 1. Нарушитель знает алгоритм шифрования (или выработки ЭЦП) и особенности его реализации в конкретном случае, но не знает секретного ключа. 2. Нарушителю доступны все зашифрованные тексты. Нарушитель может иметь доступ к некоторым исходным текстам, для которых известны соответствующие им зашифрованные тексты. 3. Нарушитель имеет в своем распоряжении вычислительные, людские, временные и иные ресурсы, объем которых оправдана потенциальной ценностью информации, которая будет добыта в результате криптоанализа. Попытку прочтения или подделки зашифрованного сообщения, вычисления ключа методами криптоанализа называют криптоатакой или атакой на шифр. Удачную криптоатаку называют взломом. Криптостойкостью называется характеристика шифра, определяющая его стойкость к расшифрованию без знания ключа (т.е. криптоатаке). Показатель криптостойкости - главный па- раметр любой криптосистемы. В качестве показателя криптостойкости можно выбрать: количество всех возможных ключей или вероятность подбора ключа за заданное время с заданными ресурсами; количество операций или время (с заданными ресурсами), необходимое для взлома шифра с заданной вероятностью; стоимость вычисления ключевой информации или исходного текста. Все эти показатели должны учитывать также уровень возможной криптоатаки. Однако следует понимать, что эффективность заш,иты информации криптографическими методами зависит не только от криптостойкости шифра, но и от множества других факторов, включая вопросы реализации криптосистем в виде устройств или программ. При анализе криптостойкости шифра необходимо учитывать и человеческий фактор. Например, подкуп конкретного человека, в руках которого сосредоточена необходимая информация, может стоить на несколько порядков дешевле, чем создание суперкомпьютера для взлома шифра Современный криптоанализ опирается на такие математические науки как теория вероятностей и математическая статистика, алгебра, теория чисел, теория алгоритмов и ряд других. Все методы криптоанализа в целом укладываются в четыре направления. 1. Статистический криптоанализ. Исследует возможности взлома криптосистем на основе изучения статистических закономерностей исходных и зашифрованных сообш,ений. Его применение осложнено тем, что в реальных криптосистемах информация перед шифрованием подвергается сжатию (превра-ш,ая исходный текст в случайную последовательность символов), или в случае гаммирования используются псевдослучайные последовательности большой длины. 2. Алгебраический криптоанализ. Он занимается поиском математически слабых звеньев криптоалгоритмов. К примеру в 1997 году в эллиптических системах был выявлен класс ключей, которые суш,ественно упрош,али криптоанализ. 3. Дифференциальный (или разностный) криптоанализ. Основан на анализе зависимости изменения шифрованного текста от изменения исходного текста. Впервые использован Мер- фи, улучшен Бихэмом и Шамиром для атаки на DES. 4. Линейный криптоанализ. Метод, основанный на поиске линейной аппроксимации между исходным и шифрованным текстом. Предложенный Мацуи, также впервые был применен при взломе DES. Как и дифференциальный анализ в реальных криптосистемах может быть применен только для анализа отдельных блоков криптопреобразований. Опыт взломов криптосистем (в частности, конкурсов, которые регулярно устраивает RSA Data Security) показывает, что главным методом остается "лобовая" атака - проба на ключ. Также как показывает опыт криптосистемы больше страдают от небрежности в реализации. Принято различать несколько уровней криптоатаки в зависимости от объем информации, доступной криптоаналитику. Грубо можно выделить три уровня криптоатаки по нарастанию сложности. Атака по шифрованному тексту (Уровень КА1). Нарушителю доступны все или некоторые зашифрованные сообш,ения. Атака но паре «исходный текст - шифрованный текст». (Уровень КА2). Нарушителю доступны все или некоторые зашифрованные сообш,ения и соответствуюш,ие им исходные со-обш,ения. Атака но выбранной паре «исходный текст - шифрованный текст». (Уровень КАЗ). Нарушитель имеет возможность выбирать исходный текст, получать для него шифрованный текст и на основе анализа зависимостей между ними вычислять ключ. Все современные криптосистемы обладают достаточной стойкостью даже к атакам уровня КАЗ, то есть когда нарушителю доступно по сути шифруюш,ее устройство. 0 [ 1 ] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |