Срочная компьютерная помощь
  ua   ru
Ремонт компьютеровРемонт ноутбуковВосстановление информацииКомпьютерная помощьКонтактная информация
Ремонт принтеровРемонт сканеровРемонт мониторовРемонт техникиСети Wi-Fi


  Поиск по сайту:
Главное меню

Бесплатная консультация




Акции




Вызов специалиста онлайн



Статьи и обзоры

    Криптография– наука о математических методах обеспечения конфиденциальности(невозможности прочтения информации посторонним) и аутентичности (целостности иподлинности авторства) информации. Другими словами, криптография изучает методышифрования информации, то есть способы защиты данных, применяемые для хранениякритически важной информации в ненадежных источниках или передачи ее понезащищенным каналам связи.

2.1. Алгоритмы и стандарты шифрования

    В зависимости от используемых ключей шифрование условно можно разделить наследующие виды.

♦ Симметричное шифрование, при котором ключ для шифрования и дешифрованияпредставляет собой один и тот же ключ (на обыденном уровне – просто пароль).

♦ Асимметричное шифрование: подразумевает использование двух различных ключей– открытого и закрытого. Открытый ключ, как правило, передается в открытом виде,закрытый же всегда держится в тайне.

    Известны также и другие виды шифрования, такие, например, как тайнопись. Алгоритмы тайнописи по известным причинам не являются публичными: постороннимлицам неизвестен сам алгоритм шифрования; закон преобразования знают толькоотправитель и получатель сообщения. Одним из ярких примеров таких систем можносчитать одноразовые блокноты. Именно одноразовые блокноты (One-time Pad, или OTP)можно назвать единственной теоретически невзламываемой системой шифрования.Одноразовый блокнот представляет собой список чисел в случайном порядке, используемыйдля кодирования сообщения. Как это и следует из названия, OTP может быть использовантолько один раз. Одноразовые блокноты широко применяются в информационных средах сочень высоким уровнем безопасности (но только для коротких сообщений). Так, в СоветскомСоюзе OTP использовался для связи разведчиков с Москвой.

    Симметричное шифрованиеКак было уже сказано выше, при симметричном шифровании для шифрования идешифрования данных используется один и тот же ключ. Понятно, что ключ алгоритмадолжен сохраняться в секрете обеими сторонами. Говоря простым языком, в данном случаепод ключом подразумевается пароль, который, разумеется, должен держаться в тайне.

    Популярными алгоритмами симметричного шифрования являются:

♦ DES (значительно устарел) и TripleDES (3DES);

♦ AES (Rijndael);♦ ГОСТ 28147-89;

♦ Blowfish.Основными параметрами алгоритмов симметричного шифрования можно считать:

♦ стойкость;

♦ длину ключа;

♦ количество раундов;

♦ длину обрабатываемого блока;

♦ сложность аппаратной/программной реализации.

Итак, начнем.

    Data Encryption Standard (DES).Алгоритм Data Encryption Standard (DES) былразработан компанией IBM в начале 1970-х гг. Национальный институт стандартов итехнологий США (NIST) принял на вооружение алгоритм (публикация FIPS 46) для DES в1977 году. Дальнейшей модификации алгоритм подвергался в 1983, 1988, 1993 и 1999 годах.

    До недавнего времени DES был "стандартом США", поскольку правительство этойстраны рекомендовало применять его для реализации различных систем шифрованияданных. Однако несмотря на то что изначально DES планировалось использовать не более10-15 лет, попытки его замены начались только в 1997 году.

    DES использует ключ длиной 56 бит. По сегодняшним меркам, такая длина ключанеприемлема. DES является блочным алгоритмом шифрования, обрабатывающимединовременно один 64-битный блок открытого текста. В алгоритме DES выполняются 16циклов шифрования с различным подключом в каждом из циклов. Ключ подвергаетсядействию своего собственного алгоритма для образования 16 подключей (рис. 2.1).

Рис. 2.1.Схема работы DES

Рис. 2.1.Схема работы DES

    Рассмотрим работу алгоритма подробнее. Входной блок данных, состоящий из 64 бит,преобразуется в выходной блок идентичной длины. Ключ шифрования должен быть известенкак отправляющей, так и принимающей сторонам. В алгоритме широко используютсяперестановки битов текста.

    Вводится функция F, которая работает с 32-разрядными словами исходного текста ® ииспользует в качестве параметра 48-разрядный ключ (J). Схема работы функции F показанана рис. 2.1. Сначала 32 входных разряда расширяются до 48, при этом некоторые разрядыповторяются.

    Для полученного 48-разрядного кода и ключа выполняется операция сложения помодулю 2. Результирующий 48-разрядный код преобразуется в 32-разрядный с помощьюS-матриц.

    Исходный 48-разрядный код делится на восемь групп по шесть разрядов. Первый ипоследний разряды в группе используются в качестве адреса строки, а средние четыреразряда – в качестве адреса столбца. В результате каждые шесть бит кода преобразуются вчетыре бита, а весь 48-разрядный код – в 32-разрядный (для этого нужно восемь S-матриц).Существуют разработки, позволяющие выполнять шифрование в рамках стандарта DES аппаратным образом, что обеспечивает довольно высокое быстродействие.

    Чтобы все-таки разобраться во всех тонкостях алгоритма DES, будет вполне уместнопривести описание так называемой сети Фейштеля (иногда называют сетью Файстеля),которая и стоит в основе DES.

    В 1973 году Хорст Фейштель (Horst Feistel) в журнале Scientific American опубликовалстатью "Cryptography and Computer Privacy", в которой раскрыл некоторые важные аспектышифрования, а также ввел конструкцию, названную впоследствии сетью Фейштеля. Этасхема была использована в проекте Lucifer фирмы IBM, над которым работали Фейштель иДон Копперсмит (Don Coppersmith). Данный проект был скорее экспериментальным, но сталбазисом для Data Encryption Standard (DES). Итеративная структура алгоритма позволялаупростить его реализацию в аппаратных средах.

    Уместно заметить, что следующие блочные шифры как раз таки используютклассическую или модифицированную сеть Фейштеля в своей основе: Blowfish, Camellia,CAST, DES, FEAL, ГОСТ 28147-89, KASUMI, LOKI97, Lucifer, MacGuffin, MARS,MAGENTA, MISTY1, RC2, RC5, RC6, Skipjack, TEA, Triple DES, Twofish, XTEA.

    TripleDES (3DES).Очевидная нестойкость DES стала причиной поисков некойальтернативы. В 1992 году исследования показали, что DES можно использовать трижды дляобеспечения более мощного шифрования. Так появился тройной DES (3DES). Тройной DESиспользуется либо с двумя, либо с тремя ключами. Используемый при этом ключобеспечивает большую мощность в сравнении с обычным DES.

    Advanced Encrypt Standard (AES).Вскоре после выхода DES обнаружилась очевиднаяслабость алгоритма. Необходимость в принятии нового стандарта была более чем явной:небольшая длина ключа DES (56 бит) позволяла применить метод грубой силы против этогоалгоритма. Кроме того, архитектура DES была ориентирована на аппаратную реализацию, ипрограммная реализация алгоритма на платформах с ограниченными ресурсами не даваланеобходимого быстродействия. Модификация TDES обладала достаточной длиной ключа, нопри этом была еще медленнее. TDES не просуществовал столь долго, чтобы можно былоговорить о том, что алгоритм стоек и надежен. Ему на смену, как и следовало ожидать,пришел более стойкий и надежный алгоритм – AES, который, между прочим, был выбран врезультате конкурса и принят в качестве американского стандарта шифрования правительством США. Немного о самом конкурсе.

  2 января 1997 года NIST (Национальный Институт Стандартов и Техн ологий)объявляет о намерении найти замену DES, являвшемуся американским стандартом с 1977года. NIST принял достаточное количество предложений от заинтересованных сторон о том,каким образом следует выбирать алгоритм. Активный отклик со стороны открытогокриптографического сообщества привел к объявлению конкурса 12 сентября 1997 года.Алгоритм могла предложить практически любая организация или группа исследователей.Минимальные требования к новому стандарту были следующими:

♦ это должен быть блочный шифр;

♦ длина блока должна составлять 128 бит;

♦ алгоритм должен работать с ключами длиной 128, 192 и 256 бит;

♦ использовать операции, легко реализуемые как аппаратно (в микрочипах), так ипрограммно (на персональных компьютерах и серверах);

♦ ориентироваться на 32-разрядные процессоры;

♦ не усложнять без необходимости структуру шифра, чтобы все заинтересованныестороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма иубедиться, что в нем не заложено каких-либо недокументированных возможностей.

    Кроме всего вышеперечисленного, алгоритм, который претендует на то, чтобы стать стандартом, должен распространяться по всему миру без платы за пользование патентом.

    20 августа 1998 года на первой конференции AES был объявлен список из 15 кандидатов, а именно: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97,MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent и Twofish.

    Понятное дело, что в последующих обсуждениях эти алгоритмы подвергались самому тщательному анализу, причем исследовались не только криптографические свойства, такиекак стойкость к известным атакам и отсутствие слабых ключей, но и практические аспектыреализации. Так, особое внимание при выборе алгоритма было направлено на оптимизациюскорости выполнения кода на различных архитектурах (от ПК до смарт-карт и аппаратныхреализаций), возможность оптимизации размера кода, возможность распараллеливания.

    В марте 1999 года прошла вторая конференция AES, а в августе 1999 года былиобъявлены пять финалистов, среди которых оказались: MARS, RC6, Rijndael, Serpent иTwofish. Все они были разработаны авторитетными криптографами, имеющими мировоепризнание. На 3-й конференции AES в апреле 2000 года все авторы представили своиалгоритмы.

    В Нью-Йорке 13 и 14 апреля 2000 года, незадолго до завершения второго этапа, прошлатретья конференция AES. Двухдневная конференция была разделена на восемь сессий почетыре в день. На сессиях первого дня обсуждались вопросы, связанные спрограммируемыми матрицами (FGPA), проводилась оценка реализации алгоритмов наразличных платформах, в том числе PA-RISC, IA-64, Alpha, высокоуровневых смарт-картах исигнальных процессорах, сравнивалась производительность претендентов на стандарт,анализировалось количество раундов в алгоритмах-кандидатах. На второй день былпроанализирован Rijndael с сокращенным количеством раундов и показана его слабость вэтом случае, обсуждался вопрос об интегрировании в окончательный стандарт всех пятиалгоритмов-претендентов, еще раз тестировались все алгоритмы. В конце второго дня былапроведена презентация, на которой претенденты рассказывали о своих алгоритмах, ихдостоинствах и недостатках. О Rijndael как о лидере рассказал Винсент Риджмен (VincentRijmen), заявивший о надежности защиты, высокой общей производительности и простотеархитектуры своего кандидата.

    2 октября 2000 года было объявлено, что победителем конкурса стал алгоритм Rijndael,и началась процедура стандартизации. 28 февраля 2001 года был опубликован проект, а 26ноября 2001 года AES был принят как FIPS 197.

    Строго говоря, AES и Rijndael не одно и то же, так как Rijndael поддерживает широкийдиапазон длин ключей и блоков.

    Особо следует подчеркнуть тот факт, что алгоритм Rijndael не похож на большинствоизвестных алгоритмов симметричного шифрования, в основе которых лежит сеть Фейштеля.Напомним нашим читателям, что особенность сети Фейштеля состоит в том, что входноезначение разбивается на два и более субблоков, часть из которых в каждом раундеобрабатывается по определенному закону, после чего накладывается на необрабатываемыесубблоки.

    В отличие от ГОСТ 28147, который будет рассмотрен ниже, алгоритм Rijndaelпредставляет блок данных в виде двухмерного байтового массива размером 4 х 4, 4 х 6 или 4х 8 (допускается использование нескольких фиксированных размеров шифруемого блокаинформации). Все операции выполняются с отдельными байтами массива, а также снезависимыми столбцами и строками.

    Алгоритм Rijndael предусматривает выполнение четырех последовательных преобразований.

    1. BS (ByteSub) – табличная замена каждого байта массива (рис. 2.2).

Рис. 2.2.Табличная замена каждого байта массива

Рис. 2.2.Табличная замена каждого байта массива

    2. SR (ShiftRow) – сдвиг строк массива. При этой операции первая строка остается безизменений, а остальные циклически побайтно сдвигаются влево на фиксированноеколичество байт, зависящее от размера массива. Например, для массива размером 4 х 4строки 2, 3 и 4 сдвигаются на 1, 2 и 3 байта соответственно (рис. 2.3).

    3. Следующим идет MC (MixColumn) – операция над независимыми столбцамимассива, когда каждый столбец по определенному правилу умножается на фиксированнуюматрицу C(X) (рис. 2.4).

     4. Заключительный этап – AK (AddRoundKey) – добавление ключа. Каждый битмассива складывается по модулю 2 с соответствующим битом ключа раунда, который, всвою очередь, определенным образом вычисляется из ключа шифрования (рис. 2.5).

Рис. 2.3.Сдвиг строк массива

Рис. 2.3.Сдвиг строк массива

Рис. 2.4.Операция MixColumn

Рис. 2.4.Операция MixColumn

Рис. 2.5.Операция добавления ключа

Рис. 2.5.Операция добавления ключа

    Вышеперечисленные преобразования шифруемых данных поочередно выполняются вкаждом раунде (рис. 2.6).

Рис. 2.6.Последовательность раундов Rijndael

Рис. 2.6.Последовательность раундов Rijndael

    В алгоритме Rijndael количество раундов шифрования ® переменное (10, 12 или 14раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотренонесколько фиксированных размеров).

    Почему же Rijndael стал новым стандартом шифрования, опередившим другиеалгоритмы? Прежде всего, он обеспечивает высокую скорость шифрования, причем на всехплатформах: как при программной, так и при аппаратной реализации. Алгоритм отличаетсяудачным механизмом распараллеливания вычислений по сравнению с другими алгоритмами,представленными на конкурс. Кроме того, требования к ресурсам для его работыминимальны, что важно при его использовании в устройствах, обладающих ограниченнымивычислительными возможностями.

    При всех преимуществах и оригинальности алгоритма AES можно было бы считатьабсолютом надежности и стойкости, но, как оно всегда и бывает, совершенных продуктовнет.

    26 мая 2006 года на конференции Quo Vadis IV Николя Тадеуш Куртуа (польскийкриптограф, проживающий во Франции) представил практическое доказательствосуществования алгебраических атак, оптимизированных против шифра AES-Rijndael. Заполтора часа на своем ноутбуке он осуществил демо-взлом всего лишь по несколькимшифртекстам близкого аналога Rijndael. Хотя это был только модельный шифр, он являлсятаким же стойким, в него не было добавлено существенных слабостей, он имел такие жехорошие диффузионные характеристики и устойчивость ко всем известным до этого видамкриптоанализа. Единственным отличием были лишь измененные в рамках моделиалгебраических атак параметры S-блоков и уменьшенное для наглядности количествораундов. Однако этого было достаточно, чтобы убедить скептиков в реальностиалгебраических атак и несовершенстве даже такого, казалось бы, совершенного методашифрования.

    ГОСТ 28147.Следующим алгоритмом симметричного шифрования, который мырассмотрим, станет ГОСТ 28147-89. Это советский и российский стандарт симметричногошифрования, введенный 1 июля 1990 года. Стандарт обязателен для организаций,предприятий и учреждений, применяющих криптографическую защиту данных, хранимых ипередаваемых в сетях ЭВМ, в отдельных вычислительных комплексах или ЭВМ.

    Алгоритм был разработан в бывшем Главном Управлении КГБ СССР или в одном изсекретных НИИ в его системе. Первоначально имел гриф (ОВ или СС – точно неизвестно),затем гриф последовательно снижался и к моменту официального проведения алгоритмачерез Госстандарт СССР в 1989 году был снят. Алгоритм остался ДСП (как известно, ДСП несчитается грифом). В 1989 году стал официальным стандартом СССР, а позже, после распадаСССР, федеральным стандартом Российской Федерации.

    С момента опубликования ГОСТа на нем стоял ограничительный гриф "Дляслужебного пользования", и формально шифр был объявлен "полностью открытым" только вмае 1994 года. По известным причинам, история создания шифра и критерии егопроектирования до сих пор неизвестны.

    ГОСТ 28147-89 представляет собой блочный шифр с 256-битным ключом и 32 цикламипреобразования, оперирующий 64-битными блоками. Основа алгоритма – уже известная намсеть Фейштеля. Основным режимом шифрования по ГОСТ 28147-89 является режим простойзамены (определены также более сложные режимы гаммирования и гаммирования собратной связью). Рассмотрим механизм работы алгоритма подробнее.

    При работе ГОСТ 28147-89 информация шифруется блоками по 64 бита (такиеалгоритмы называются блочными), которые затем разбиваются на два субблока по 32 бита(N1 и N2). После завершения обработки субблока N1 его значение складывается созначением субблока N2 (сложение выполняется по модулю 2, то есть применяетсялогическая операция XOR – исключающее ИЛИ), а затем субблоки меняются местами.Данное преобразование выполняется определенное количество раз (раундов): 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются две операции (рис.2.7).

Рис. 2.7.Преобразование выполняется определенное количество раз

Рис. 2.7.Преобразование выполняется определенное количество раз

    Первая операция подразумевает наложение ключа. Содержимое субблока N1складывается по модулю 2 с 32-битной частью ключа Kx. Полный ключ шифрованияпредставляется в виде конкатенации 32-битных подключей: K0, K1, K2, K3, K4, K5, K6, K7.В процессе шифрования используется один из этих подключей, в зависимости от номерараунда и режима работы алгоритма.

    Вторая операция осуществляет табличную замену. После наложения ключа субблок N1разбивается на восемь частей по четыре бита, значение каждой из которых заменяется всоответствии с таблицей замены для данной части субблока. После этого выполняетсяпобитовый циклический сдвиг субблока влево на 11 бит.

    Алгоритм, определяемый ГОСТ 28147-89, может работать в четырех режимах:

    ♦ простой замены;

    ♦ гаммирования;

    ♦ гаммирования с обратной связью;

    ♦ генерации имитоприставок.

    В генерации имитоприставок используется одно и то же описанное выше шифрующеепреобразование, но, поскольку назначение режимов различно, осуществляется этопреобразование в каждом из них по-разному.

    В режиме простой замены для зашифровки каждого 64-битного блока информациивыполняются 32 описанных выше раунда. Каждый из блоков шифруется независимо отдругого, то есть результат шифрования каждого блока зависит только от его содержимого(соответствующего блока исходного текста). При наличии нескольких одинаковых блоковисходного (открытого) текста соответствующие им блоки шифртекста тоже будутодинаковы, что дает дополнительную полезную информацию для пытающегося вскрытьшифр криптоаналитика. Поэтому данный режим применяется в основном для шифрованиясамих ключей шифрования (очень часто реализуются многоключевые схемы, в которых поряду соображений ключи шифруются друг на друге). Для шифрования собственноинформации предназначены два других режима работы: гаммирования и гаммирования с обратной связью.

    В режиме гаммирования каждый блок открытого текста побитно складывается помодулю 2 с блоком гаммы шифра размером 64 бита. Гамма шифра – это специальнаяпоследовательность, которая получается в результате определенных операций с регистрамиN1 и N2 .

    1. В регистры N1 и N2 записывается их начальное заполнение – 64-битная величина,называемая синхропосылкой.

    2. Выполняется зашифровка содержимого регистров N1 и N2 (в данном случаесинхропосылки) в режиме простой замены.

    3. Содержимое регистра N1 складывается по модулю (232– 1) с константой C1, равной224 + 216 + 28 + 24, а результат сложения записывается в регистр N1.

    4. Содержимое регистра N2 складывается по модулю 232 с константой C2, равной 224 +216 + 28 + 1, а результат сложения записывается в регистр N2.

    5. Содержимое регистров N1 и N2 подается на выход в качестве 64-битного блокагаммы шифра (в данном случае N1 и N2 образуют первый блок гаммы).

    Если необходим следующий блок гаммы (то есть нужно продолжить зашифровку илирасшифровку), выполняется возврат к операции 2.

    Для расшифровки гамма вырабатывается аналогичным образом, а затем к битамзашифрованного текста и гаммы снова применяется операция XOR.

    Для выработки нужной для расшифровки гаммы шифра у пользователя,расшифровывающего криптограмму, должны быть тот же ключ и то же значениесинхропосылки, которые применялись при зашифровке информации. В противном случаеполучить исходный текст из зашифрованного не удастся.

    В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка несекретна,однако есть системы, где синхропосылка является таким же секретным элементом, как иключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит)увеличивается еще на 64 бит секретной синхропосылки, которую также можнорассматривать как ключевой элемент.

    В режиме гаммирования с обратной связью для заполнения регистров N1 и N2 ,начиная со второго блока, используется не предыдущий блок гаммы, а результатзашифровки предыдущего блока открытого текста. Первый же блок в данном режимегенерируется полностью аналогично предыдущему.

    Рассматривая режим генерации имитоприставок, следует определить понятие предметагенерации. Имитоприставка – это криптографическая контрольная сумма, вычисляемая сиспользованием ключа шифрования и предназначенная для проверки целостностисообщений. При генерации имитоприставки выполняются следующие операции: первый64-битный блок массива информации, для которого вычисляется имитоприставка,записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простойзамены (выполняются первые 16 раундов из 32). Полученный результат суммируется помодулю 2 со следующим блоком информации с сохранением результата в N1 и N2.

    Цикл повторяется до последнего блока информации. Получившееся в результате этихпреобразований 64-битное содержимое регистров N1 и N2 или его часть и называетсяимитоприставкой. Размер имитоприставки выбирается исходя из требуемой достоверностисообщений: при длине имитоприставки r бит вероятность, что изменение сообщенияостанется незамеченным, равна 2^.Чаще всего используется 32-битная имитоприставка, тоесть половина содержимого регистров. Этого достаточно, поскольку, как любая контрольнаясумма, имитоприставка предназначена прежде всего для защиты от случайных искаженийинформации. Для защиты же от преднамеренной модификации данных применяются другиекриптографические методы – в первую очередь электронная цифровая подпись.

    При обмене информацией имитоприставка служит своего рода дополнительнымсредством контроля. Она вычисляется для открытого текста при зашифровке какой-либоинформации и посылается вместе с шифртекстом. После расшифровки вычисляется новоезначение имитоприставки, которое сравнивается с присланной. Если значения не совпадают,значит, шифртекст был искажен при передаче или при расшифровке использовалисьневерные ключи. Особенно полезна имитоприставка для проверки правильностирасшифровки ключевой информации при использовании многоключевых схем.

    Алгоритм ГОСТ 28147-89 считается достаточно сильным – в настоящее время для егораскрытия не существует более эффективных методов, чем упомянутый выше Brute Force.Высокая стойкость алгоритма достигается в первую очередь за счет большой длины ключа,равной 256 бит. К тому же при использовании секретной синхропосылки эффективная длинаключа увеличивается до 320 бит, а засекречивание таблицы замен прибавляетдополнительные биты. Кроме того, криптостойкость ГОСТ 28147-89 уже при 32 раундахможно считать более чем достаточной, и это притом, что полный эффект рассеиваниявходных данных достигается уже после восьми раундов.

    На сегодняшний день алгоритм ГОСТ 28147-89 полностью удовлетворяет всемтребованиям криптографии и обладает теми же достоинствами, что и другие алгоритмы, нолишен их недостатков. К очевидным достоинствам этого алгоритма можно отнести:

    ♦ эффективность реализации и, соответственно, высокое быстродействие насовременных компьютерах;

   ♦ бесперспективность силовой атаки (XSL-атаки в учет не берутся, так как ихэффективность на данный момент полностью не доказана).

    Однако же, как оно всегда и бывает, алгоритм не лишен недостатков: тривиальнодоказывается, что у ГОСТа существуют "слабые" ключи и S-блоки, но в стандарте неописываются критерии выбора и отсева "слабых". Кроме того, стандарт не специфицируе талгоритм генерации S-блоков (таблицы замен). С одной стороны, это может являтьсядополнительной секретной информацией (помимо ключа), а с другой – поднимает рядпроблем: нельзя определить криптостойкость алгоритма, не зная заранее таблицы замен;реализации алгоритма от различных производителей могут использовать разные таблицы замен и могут быть несовместимы между собой.

        Асимметричное шифрование

    В отличие от алгоритмов симметричного шифрования, где используется один и тот жеключ как для расшифровки, так и для зашифровки, алгоритмы асимметричного шифрованияиспользуют открытый (для зашифровки) и закрытый, или секретный (для расшифровки),ключи.

    На практике один ключ называют секретным, а другой – открытым. Секретный ключсодержится в тайне владельцем пары ключей. Открытый ключ передается публично воткрытом виде. Следует отметить тот факт, что если у абонента имеется один из парыключей, то другой ключ вычислить невозможно.

    Открытый ключ вычисляется из секретного: kl = f(k2). Асимметричные алгоритмышифрования основаны на применении однонаправленных функций. Согласно определениюфункция y = f(x) является однонаправленной, если ее можно легко вычислить для всехвозможных вариантов x, а для большинства возможных значений y достаточно сложновычислить такое значение x, при котором y = f(x) .

    Примером однонаправленной функции может служить умножение двух больших чисел:N = S х G. Само по себе, с точки зрения математики, такое умножение представляет собойпростую операцию. Однако обратная операция (разложение N на два больших множителя),называемая также факторизацией, по современным временным оценкам представляет собойдостаточно сложную математическую задачу.

    Ну что ж, рассмотрим некоторые из алгоритмов асимметричного шифрования.

    Алгоритм Диффи–Хеллмана. В 1976 году Уитфилд Диффи (Whitfield Diffie) и МартинХеллман (Martin Hellman) разработали свою систему шифрования с открытым ключом.Система Диффи–Хеллмана разрабатывалась для решения проблемы распространения ключейпри использовании систем шифрования с секретными ключами. Идея заключалась в том,чтобы применять безопасный метод согласования секретного ключа без передачи ключакаким-либо другим способом. Следовательно, необходимо было найти безопасный способполучения секретного ключа с помощью того же метода связи, для которого разрабатываласьзащита. Суть алгоритма Диффи–Хеллмана заключается в следующем. Предположим, чтодвум точкам (S1 и S2) требуется установить между собой безопасное соединение, длякоторого необходимо согласовать ключ шифрования.

    ♦ S1 и S2 принимают к использованию два больших целых числа a и b, причем 1 < a

    ♦ S1 выбирает случайное число i и вычисляет I = ai × mod b. S1 передает I абоненту S2.

    ♦ S2 выбирает случайное число j и вычисляет J = aj × mod b. S2 передает J абоненту S1 .

    ♦ S1 вычисляет k1 = Ji × mod b.

    ♦ S2 вычисляет k2 = Ij × mod b.

    Имеем k1 = k2 = ai × j х mod b, следовательно, k1 и k2 являются секретными ключами,предназначенными для использования при передаче других данных.

    Даже если допустить, что злоумышленнику каким-то образом удастся прослушатьпередаваемый трафик, то ему будут известны a, b, I и J. Тем не менее остаются в секрете i и j.Уровень безопасности системы зависит от сложности нахождения i при известном I = ai ×mod b. Эта задача называется задачей дискретного логарифмирования и считается оченьсложной (то есть с помощью современного вычислительного оборудования ее решитьпрактически невозможно), если числа очень велики. Следовательно, a и b необходимовыбирать очень тщательно. Например, оба числа b и (b – 1)/2 должны быть простыми ииметь длину не менее 512 бит. Рекомендуемая длина чисел составляет 1024 бита.

   Алгоритм RSA был разработан в 1978 году тремя соавторами и получил  свое названиепо первым буквам фамилий разработчиков (Rivest, Shamir, Adleman). В основе стойкостиалгоритма стоит сложность факторизации больших чисел и вычисления дискретныхлогарифмов. Основной параметр алгоритма RSA – модуль системы N, по которомупроводятся все вычисления в системе, а N = R х S (R и S – секретные случайные простыебольшие числа, обычно одинаковой размерности).

    Секретный ключ k2 выбирается случайным образом и должен соответствоватьследующим условиям: 1 < k2 < F(N) и НОД (k2, F(N))= 1, где НОД – наибольший общийделитель. Иными словами, k1 должен быть взаимно простым со значением функции ЭйлераF(N) , причем последнее равно количеству положительных целых чисел в диапазоне от 1 доN, взаимно простых с N, и вычисляется как F(N) = (R – 1) × (S – 1) .

    Открытый ключ kl вычисляется из соотношения (k2 х kl) = 1 × mod F(N). Для этогоиспользуется обобщенный алгоритм Евклида (алгоритм вычисления наибольшего общегоделителя). Зашифровка блока данных M по алгоритму RSA выполняется следующимобразом: C = Mkl × mod N. Поскольку в реальной криптосистеме с использованием RSAчисло k1 весьма велико (в настоящее время его размерность может доходить до 2048 бит),прямое вычисление Mk1 нереально. Для его получения применяется комбинациямногократного возведения M в квадрат с перемножением результатов. Обращение даннойфункции при больших размерностях неосуществимо; иными словами, невозможно найти Mпо известным C, N и kl. Однако, имея секретный ключ k2, при помощи несложныхпреобразований можно вычислить M = Ck2 × mod N. Очевидно, что, помимо собственносекретного ключа, необходимо обеспечивать секретность параметров R и S. Еслизлоумышленник добудет их значения, то сможет вычислить и секретный ключ k2.

    В настоящее время криптосистема RSA применяется в самых различных продуктах, наразличных платформах и во многих отраслях. Достаточно вспомнить ее использование воперационных системах Microsoft, Apple, Sun и Novell, чтобы представить всю"грандиозность" RSA. В аппаратной составляющей алгоритм RSA широко используется взащищенных телефонах, на сетевых платах Ethernet, на смарт-картах, в криптографическомоборудовании Zaxus (Racal). Ко всему прочему, алгоритм входит в состав всех основныхпротоколов для защищенных коммуникаций Интернет, в том числе S/MIME, SSL и S/WAN, а также используется во многих правительственных учреждениях, государственныхлабораториях и университетах. На осень 2000 года технологии с применением алгоритмаRSA были лицензированы более чем 700 компаниями.

    Алгоритм Эль-Гамаля.Эль-Гамаль (Taher Elgamal) разработал вариант системы Диффи–Хеллмана. Он усовершенствовал этот алгоритм и получил один алгоритм дляшифрования и один для обеспечения аутентификации. Алгоритм Эль-Гамаля не былзапатентован (в отличие от RSA) и таким образом стал более дешевой альтернативой, так какне требовалась уплата лицензионных взносов. Поскольку этот алгоритм базируется насистеме Диффи–Хеллмана, то его стойкость обеспечивается сложностью решения все той жезадачи дискретного логарифмирования.

    Алгоритм цифровой подписи (Digital Signature Algorithm).Алгоритм DSA былразработан правительством США как стандартный алгоритм для цифровых подписей (см.разд. 2.3). Данный алгоритм базируется на системе Эль-Гамаля, но позволяет осуществлятьтолько аутентификацию. Конфиденциальность этим алгоритмом не обеспечивается.

    Шифрование с использованием эллиптических кривых.Эллиптические кривыебыли предложены для использования в системах шифрования в 1985 году. Системышифрования с использованием эллиптических кривых (ECC) основываются на отличной отфакторизации или дискретного логарифмирования математической задаче. Данная задачазаключается в следующем: имея две точки A и B на эллиптической кривой, такие что A = kB,очень трудно определить целое число k. Несмотря на некоторую «экзотичность»,использование ECC перед алгоритмом RSA или Диффи–Хеллмана в ряде случаев даетсущественное преимущество. Самым большим из таких преимуществ является то, что ключимогут иметь существенно меньшую длину (по причине сложности задачи). И это без потери стойкости! Как результат, вычисления производятся быстрее с сохранением того же уровня безопасности. Так, безопасность, обеспечиваемая 160-битным ключом ECC, может бытьприравнена к 1024-битному ключу RSA.

    Достоинства и недостатки симметричного и асимметричного методов шифрования

      Основной недостаток симметричного шифрования заключается в необходимостипубличной передачи ключей – "из рук в руки". На этот недостаток нельзя не обратитьвнимание, так как при такой системе становится практически невозможным использованиесимметричного шифрования с неограниченным количеством участников. В остальном жеалгоритм симметричного шифрования можно считать достаточно проработанным иэффективным, с минимальным количеством недостатков, особенно на фоне асимметричногошифрования. Недостатки последнего не столь значительны, чтобы говорить о том, чтоалгоритм чем-то плох, но тем не менее.

    Первый недостаток ассиметричного шифрования заключается в низкой скоростивыполнения операций зашифровки и расшифровки, что обусловлено необходимостьюобработки ресурсоемких операций. Как следствие, требования к аппаратной составляющейтакой системы часто бывают неприемлемы.

    Другой недостаток – уже чисто теоретический, и заключается он в том, чтоматематически криптостойкость алгоритмов асимметричного шифрования пока еще недоказана.

    Дополнительные проблемы возникают и при защите открытых ключей от подмены,ведь достаточно просто подменить открытый ключ легального пользователя, чтобывпоследствии легко расшифровать его своим секретным ключом.

    Какими бы недостатками и преимуществами ни обладало ассиметричное исимметричное шифрование, необходимо отметить лишь то, что наиболее совершенныерешения– это те, которые удачно сочетают в себе алгоритмы обоих видов шифрования.

    2.2. Электронная цифровая подпись

      Электронная цифровая подпись (ЭЦП) – реквизит электронного документа,предназначенный для удостоверения источника данных и защиты данного электронногодокумента от подделки. Электронная цифровая подпись представляет собойпоследовательность символов, полученную в результате криптографическогопреобразования электронных данных. ЭЦП добавляется к блоку данных, позволяетполучателю блока проверить источник и целостность данных и защититься от подделки.ЭЦП используется в качестве аналога собственноручной подписи.

   Благодаря цифровым подписям многие документы – паспорта, избирательные бюллетени, завещания, договора аренды – теперь могут существовать в электронной форме,а любая бумажная версия будет в этом случае только копией электронного оригинала.

    Основные термины, применяемые при работе с ЭЦП

    Закрытый ключ– это некоторая информация длиной 256 бит, которая хранится внедоступном другим лицам месте на дискете, смарт-карте, touch memory. Работает закрытыйключ только в паре с открытым ключом.

    Открытый (public) ключиспользуется для проверки ЭЦП получаемыхдокументов-файлов; технически это некоторая информация длиной 1024 бита. Открытыйключ работает только в паре с закрытым ключом.

    Код аутентификации– код фиксированной длины, вырабатываемый из данных сиспользованием секретного ключа и добавляемый к данным с целью обнаружения фактаизменений хранимых или передаваемых по каналу связи данных.

    Средства электронно-цифровой подписи– аппаратные и/или программные средства,обеспечивающие:

    ♦ создание электронной цифровой подписи в электронном документе с использованиемзакрытого ключа электронной цифровой подписи;

    ♦ подтверждение с использованием открытого ключа электронной цифровой подписиподлинности ЭЦП в электронном документе;

        ♦ создание закрытых и открытых ключей электронных цифровых подписей.

    ЭЦП – это просто

    Начнем с того, что ЭЦП – это вовсе не «зверь», и никаких специальных знаний,навыков и умений для ее использования не потребуется.

    Каждому пользователю ЭЦП, участвующему в обмене электронными документами,генерируются уникальные открытый и закрытый (секретный) криптографические ключи.

    Ключевым элементом является секретный ключ, с помощью которого производитсяшифрование электронных документов и формируется электронно-цифровая подпись.Секретный ключ остается у пользователя и выдается ему на отдельном носителе: это можетбыть дискета, смарт-карта или другой носитель. Хранить его нужно в секрете от другихпользователей сети.

    В Удостоверяющем Центре (третья сторона, или так называемый "арбитр") находитсядубликат открытого ключа, создана библиотека сертификатов открытых ключей.Удостоверяющий Центр обеспечивает регистрацию и надежное хранение открытых ключейво избежание внесения искажений или попыток подделки.

    Когда пользователь устанавливает под электронным документом свою электроннуюцифровую подпись, на основе секретного ключа ЭЦП и содержимого документа путемкриптографического преобразования вырабатывается некоторое большое число, которое иявляется электронно-цифровой подписью данного пользователя под данным конкретнымдокументом. Это число добавляется в конец электронного документа или сохраняется вотдельном файле. В подпись заносится следующая информация:

♦ имя файла открытого ключа подписи;

♦ информация о лице, сформировавшем подпись;

♦ дата формирования подписи.

    Пользователь, получивший подписанный документ и имеющий открытый ключ ЭЦПотправителя, на их основании выполняет обратное криптографическое преобразование,обеспечивающее проверку электронной цифровой подписи отправителя. Если ЭЦП поддокументом верна, то это значит, что документ действительно подписан отправителем и втекст документа не внесено никаких изменений. В противном случае будет выдаватьсясообщение, что сертификат отправителя не является действительным.

    Управление ключами

    Важной проблемой всей криптографии с открытым ключом, в том числе и систем ЭЦП,является управление открытыми ключами. Необходимо обеспечить доступ любогопользователя к подлинному открытому ключу любого другого пользователя, защитить этиключи от подмены злоумышленником, а также организовать отзыв ключа в случае егокомпрометации.

    Задача защиты ключей от подмены решается с помощью сертификатов. Сертификатпозволяет удостоверить заключенные в нем данные о владельце и его открытый ключподписью какого-либо доверенного лица. В централизованных системах сертификатов(например, PKI – Public Key Infrastructure) используются центры сертификации,поддерживаемые доверенными организациями. В децентрализованных системах (например,PGP – Pretty Good Privacy) путем перекрестного подписания сертификатов знакомых идоверенных людей каждым пользователем строится сеть доверия.

    Управлением ключами занимаются центры распространения сертификатов.Обратившись к такому центру, пользователь может получить сертификат какого-либопользователя, а также проверить, не отозван ли еще тот или иной открытый ключ.

    ЭЦП под микроскопом

    Рассмотрим принцип работы ЭЦП подробнее. Схема электронной подписи обычновключает в себя следующие составляющие:

♦ алгоритм генерации ключевых пар пользователя;

♦ функцию вычисления подписи;

♦ функцию проверки подписи.

    Функция вычисления подписи на основе документа и секретного ключа пользователявычисляет собственно подпись.В зависимости от алгоритма функция вычисления подписиможет быть детерминированной или вероятностной. Детерминированные функции всегдавычисляют одинаковую подпись по одинаковым входным данным. Вероятностные функциивносят в подпись элемент случайности, что усиливает криптостойкость алгоритмов ЭЦП.Однако для вероятностных схем необходим надежный источник случайности (либоаппаратный генератор шума, либо криптографически надежный генератор псевдослучайныхбит), что усложняет реализацию.

    В настоящее время детерминированные схемы практически не используются. Даже визначально детерминированные алгоритмы сейчас внесены модификации, превращающие ихв вероятностные (так, в алгоритм подписи RSA вторая версия стандарта PKCS#1 добавилапредварительное преобразование данных (OAEP), включающее в себя, среди прочего,зашумление).

    Функция проверки подписи проверяет, соответствует ли она данному документу иоткрытому ключу пользователя. Открытый ключ пользователя доступен всем, так что любойможет проверить подпись под данным документом.

    Поскольку подписываемые документы переменной (и достаточно большой) длины, всхемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисленияхэша используются криптографические хэш-функции, что гарантирует выявление измененийдокумента при проверке подписи. Хэш-функции не являются частью алгоритма ЭЦП,поэтому в схеме может быть использована любая надежная хэш-функция. Что же такое хэш?

    Хэширование представляет собой преобразование входного массива данных в короткоечисло фиксированной длины (которое называется хэшем или хэш-кодом), таким образомчтобы, с одной стороны, это число было значительно короче исходных данных, но, с другойстороны, с большой вероятностью однозначно им соответствовало.

    Продолжим. Алгоритмы ЭЦП делятся на два больших класса:

♦ обычные цифровые подписи;

♦ цифровые подписи с восстановлением документа.

    Обычные цифровые подписи необходимо пристыковывать к подписываемомудокументу. К этому классу относятся, например, алгоритмы, основанные на эллиптическихкривых (ECDSA, ГОСТ Р34.10-2001, ДСТУ 4145-2002). Цифровые подписи свосстановлением документа содержат в себе подписываемый документ: в процессе проверкиподписи автоматически вычисляется и тело документа. К этому классу относится один изсамых популярных алгоритмов – RSA, который мы рассмотрим в конце раздела.

    Следует различать электронную цифровую подпись и код аутентичности сообщения,несмотря на схожесть решаемых задач (обеспечение целостности документа иневозможности отказа от авторства). Алгоритмы ЭЦП относятся к классу асимметричныхалгоритмов, в то время как коды аутентичности вычисляются по симметричным схемам.

    Можно сказать, что цифровая подпись обеспечивает следующие виды защиты.

♦ Удостоверение источника документа. В зависимости от деталей определениядокумента могут быть подписаны такие поля, как "автор", "внесенные изменения", "меткавремени" и т. д.

♦ Защита от изменений документа. При любом случайном или преднамеренномизменении документа (или подписи) изменится хэш, и, следовательно, подпись станетнедействительной.

♦ Невозможность отказа от авторства. Поскольку создать корректную подпись можно,лишь зная закрытый ключ, а он известен только владельцу, то владелец не может отказатьсяот своей подписи под документом.Совершенно очевидно, что ЭЦП вовсе не совершенна. Возможны следующие угрозыцифровой подписи, при которых злоумышленник может:

♦ подделать подпись для выбранного им документа;

♦ подобрать документ к данной подписи, чтобы подпись к нему подходила;

♦ подделать подпись для хоть какого-нибудь документа;

♦ подменить открытый ключ (см. подразд. "Управление ключами" разд. 2.2) на свойсобственный, выдавая себя за владельца;

♦ обманом заставить владельца подписать какой-либо документ, например, используяпротокол слепой подписи;

♦ подписать любой документ от имени владельца ключа, если закрытый ключ ужеукраден.

    При использовании надежной хэш-функции вычислительно сложно создатьподдельный документ с таким же хэшем, как и у подлинного. Однако эти угрозы могутреализоваться из-за слабостей конкретных алгоритмов хэширования, подписи или ошибок вих реализациях.

    RSA как фундамент ЭЦП

    Не секрет, что наибольшую популярность среди криптоалгоритмов цифровой подписиприобрела RSA (применяется при создании цифровых подписей с восстановлениемдокумента).

    На начало 2001 года криптосистема RSA являлась наиболее широко используемойасимметричной криптосистемой (криптосистемой открытого ключа) и зачастую называетсястандартом де факто. Вне зависимости от официальных стандартов существование такогостандарта чрезвычайно важно для развития электронной коммерции и вообще экономики.Единая система открытого ключа допускает обмен документами с электронно-цифровымиподписями между пользователями различных государств, приминяющими различноепрограммное обеспечение на различных платформах; такая возможность насущнонеобходима для развития электронной коммерции.

    Распространение системы RSA дошло до такой степени, что ее учитывают присоздании новых стандартов. Первым при разработке стандартов цифровых подписей в 1997году был разработан стандарт ANSI X9.30, поддерживающий Digital Signature Standard(стандарт цифровой подписи). Годом позже был введен ANSI X9.31, в котором сделанакцент на цифровые подписи RSA, что отвечает фактически сложившейся ситуации, вчастности для финансовых учреждений.

    До недавнего времени главным препятствием для замены бумажногодокументооборота электронным были недостатки защищенной аутентификации(установления подлинности); почти везде контракты, чеки, официальные письма, юридические документы все еще выполняются на бумаге.

    Появление цифровой подписи на основе RSA сделало осуществление электронныхопераций достаточно безопасным и надежным.

    Алгоритм RSA предполагает, что посланное закодированное сообщение может бытьпрочитано адресатом и только им. Как было уже сказано выше, в этом алгоритмеиспользуется два ключа – открытый и секретный. Данный алгоритм привлекателен также вслучае, когда большое количество субъектов (N) должно общаться по схеме "все-со-всеми".В случае симметричной схемы шифрования каждый из субъектов каким-то образом должендоставить свои ключи всем остальным участникам обмена, при этом суммарное количествоиспользуемых ключей будет достаточно велико при большом значении N. Применениеасимметричного алгоритма требует лишь рассылки открытых ключей всеми участниками,суммарное количество ключей равно N.

    Сообщение представляется в виде числа M. Шифрование осуществляется с помощьюобщедоступной функции f(M) , и только адресату известно, как выполнить операцию f-1.Адресат выбирает два больших простых (prime) числа p и q, которые делает секретными. Онобъявляет n = pq и число d, c (d, p – 1) = (d, q – 1) = 1 (один из возможных способоввыполнить это условие – выбрать d больше, чем p/2 и q/2). Шифрование производится поформуле: f(M) = Md х mod n, где M и f(M) оба < n – 1 . Оно может быть вычислено заразумное время, даже если M, d и n содержат весьма большое количество знаков. Адресатвычисляет M на основе Md, используя свое знание p и q. Если dc ≡ (p_1)1, тогда (Md)e ≡ p1.

    Исходный текст M получается адресатом из зашифрованного F(M) путемпреобразования: M = (F(M))e (mod pq). Здесь как исходный текст, так и зашифрованныйрассматриваются как длинные двоичные числа.

    Аналогично (Md)e ≡ qM, если dc ≡ (q_1)1. е удовлетворяет этим двум условиям, если cd ≡(p_1)(q_1)1.Мы можем позволить е = x, когда x является решением уравнения dx + (p – 1)(q –1)y = 1.

    Так как (Md)e –M делимо на p и q, оно делимо и на pq. Следовательно, мы можемопределить M, зная Md, вычислив его значение в степени е и определив остаток от деленияна pq. Для соблюдения секретности важно, чтобы, зная n, нельзя было вычислить p и q. Еслиn содержит 100 цифр, подбор шифра связан с перебором приблизительно 1050 комбинаций.Данная проблема изучается уже около 100 лет.

    Теоретически можно предположить, что возможно выполнение операции f-l безвычисления p и q. Но в любом случае задача эта непроста, и разработчики считают ее труднофакторизуемой.

    Предположим, что мы имеем зашифрованный текст f(M) и исходный текст M и хотимнайти значения p и q. Нетрудно показать, что таких исходных данных для решения задачинедостаточно – надо знать все возможные значения Mi.

    Проясним использование алгоритма RSA на конкретном примере. Выберем двапростых числа p = 7; q = l7 (на практике эти числа во много раз длиннее).В этом случае n =pq будет равно ll9. Теперь необходимо выбрать е. Выберем е = 5. Следующий шаг связан сформированием числа d, так чтобы de = 1 х mod [(p – 1)(q – 1)]. d = 77 (использованрасширенный алгоритм Евклида). d – секретный ключ, а е и n характеризуют открытыйключ. Пусть текст, который нам нужно зашифровать, представляется M = 19. С = Me х modn. Получаем зашифрованный текст C = 66. Этот "текст" может быть послан соответствующему адресату. Получатель дешифрует полученное сообщение, используя М =Cd х mod n и C = 66. В результате получается M = 19.

    На практике общедоступные ключи могут помещаться в специальную базу данных.При необходимости послать партнеру зашифрованное сообщение можно сделать сначалазапрос его открытого ключа. Получив его, можно запустить программу шифрации, арезультат ее работы послать адресату.

    Возможно ли взломать ЭЦП?

    Взлом ЭЦП фактически сводится к взлому алгоритма шифрования. В данном случаевозможные варианты взлома мы рассмотрим на примере алгоритма RSA.

    Существует несколько способов взлома RSA. Наиболее эффективная атака – найтисекретный ключ, соответствующий необходимому открытому ключу. Это позволитнападающему читать все сообщения, зашифрованные открытым ключом, и подделыватьподписи. Такую атаку можно провести, найдя главные сомножители (факторы) общегомодуля n – p и q. На основании p, q и e (общий показатель) нападающий может легковычислить частный показатель d. Основная сложность – поиск главных сомножителей(факторинг) n. Безопасность RSA зависит от разложения на сомножители (факторинга), чтоявляется трудной задачей, не имеющей эффективных способов решения.

    Фактически, задача восстановления секретного ключа эквивалентна задаче разложенияна множители (факторинга) модуля: можно использовать d для поиска сомножителей n, инаоборот: можно использовать n для поиска d. Надо отметить, что усовершенствованиевычислительного оборудования само по себе не уменьшит стойкость криптосистемы RSA,если ключи будут иметь достаточную длину. Фактически же совершенствованиеоборудования увеличивает стойкость криптосистемы.

    Другой способ взломать RSA состоит в том, чтобы найти метод вычисления корнястепени e из mod n. Поскольку С = Me х mod n, то корнем степени e из mod n являетсясообщение M. Вычислив корень, можно вскрыть зашифрованные сообщения и подделатьподписи, даже не зная секретный ключ. Такая атака не эквивалентна факторингу, но внастоящее время неизвестны методы, которые позволяют взломать RSA таким образом.Однако в особых случаях, когда на основе одного и того же показателя относительнонебольшой величины шифруется достаточно много связанных сообщений, есть возможностьвскрыть сообщения. Упомянутые атаки – единственные способы расшифровать всесообщения, зашифрованные данным ключом RSA. 

    Существуют и другие типы атак, позволяющие, однако, расшифровать только односообщение и не позволяющие нападающему вскрыть прочие сообщения, зашифрованные темже ключом. Кроме того, изучалась возможность расшифровывания части зашифрованногосообщения.

    Самое простое нападение на отдельное сообщение – атака по предполагаемомуоткрытому тексту. Нападающий, имея зашифрованный текст, предполагает, что сообщениесодержит какой-то определенный текст (например, "Штирлиц – Плей-шнеру"). Затемшифрует предполагаемый текст открытым ключом получателя и сравнивает полученныйтекст с имеющимся зашифрованным текстом. Такую атаку можно предотвратить, добавив вконец сообщения несколько случайных битов. Другая атака на единственное сообщениеприменяется в том случае, если отправитель посылает одно и то же сообщение M тремкорреспондентам, каждый из которых использует общий показатель e = 3. Зная это,нападающий может перехватить эти сообщения и расшифровать сообщение M.

    Такую атаку также можно предотвратить, вводя перед каждым шифрованием всообщение несколько случайных битов. Кроме того, существуют несколько видов атак позашифрованному тексту (или атаки отдельных сообщений с целью подделки подписи), прикоторых нападающий создает некоторый зашифрованный текст и получаетсоответствующий открытый текст, например, заставляя обманным путемзарегистрированного пользователя расшифровать поддельное сообщение. Разумеется,существуют и атаки, нацеленные не на криптосистему непосредственно, а на уязвимые меставсей системы коммуникаций в целом. Такие атаки не могут рассматриваться как взлом RSA,так как говорят не о слабости алгоритма, а скорее об уязвимости конкретной реализации.Например, нападающий может завладеть секретным ключом, если тот хранится без должнойпредосторожности. Необходимо подчеркнуть, что для полной защиты недостаточно защитить выполнение алгоритма RSA и принять меры математической безопасности, то естьиспользовать ключ достаточной длины, так как на практике наибольший успех имеют атакина незащищенные этапы управления ключами системы RSA.

    2.3. Современные технологии аутентификации.

    Смарт-картыСмарт-карты, подобно Memory-картам, представляют собой пластиковые карты совстроенной микросхемой (ICC, integrated circuit card – карта с интегрированнымиэлектронными схемами). Однако смарт-карты представляют собой более сложноеустройство, содержащее микропроцессор и операционную систему, контролирующуюустройство и доступ к объектам в его памяти. Кроме того, смарт-карты, как правило,обладают возможностью проводить криптографические вычисления.

    Назначение смарт-карт – одно-и двухфакторная аутентификация пользователя,хранение информации и проведение криптографических операций в доверенной среде.

    Напомню нашим читателям, что двухфакторная аутентификация подразумевает подсобой использование двух атрибутов, удостоверяющих личность, например: пароль иотпечаток пальцев, смарт-карта и сетчатка глаза и т. д.

    Смарт-карты находят все более широкое применение в различных областях – от системнакопительных скидок до кредитных и дебетовых карт, студенческих билетов и телефоновстандарта GSM.

    В зависимости от встроенной микросхемы все смарт-карты делятся на несколькоосновных типов, кардинально различающихся по выполняемым функциям:

♦ карты памяти;

♦ микропроцессорные карты;

♦ карты с криптографической логикой.

    Карты памяти предназначены для хранения информации. Память на таких типах картможет быть свободной для доступа или содержать логику контроля доступа к памяти картыдля ограничения операций чтения и записи данных.

   Микропроцессорные карты предназначены и для хранения информации, но, в отличиеот обычных, они содержат специальную программу или небольшую операционную систему,позволяющую преобразовывать данные по определенному алгоритму, защищатьинформацию, хранящуюся на карте, при передаче, чтении и записи.

    Карты с криптографической логикой используются в системах защиты информации дляпринятия непосредственного участия в процессе шифрования данных или выработкикриптографических ключей, электронных цифровых подписей и другой необходимойинформации для работы системы.

    Считыватели для смарт-карт

    Несмотря на название – устройство для чтения смарт-карт, – большинство оконечныхустройств, или устройств сопряжения (IFD, InterFace Device), способны как считывать, так изаписывать, если позволяют возможности смарт-карты и права доступа. Устройства длячтения смарт-карт могут подключаться к компьютеру посредством последовательного порта,слота PCMCIA, последовательной шины USB. По методу считывания информации картыделятся на следующие:

♦ контактные;

♦ бесконтактные;

♦ со сдвоенным интерфейсом.

    Контактные карты взаимодействуют со считывателем, соприкасаясь металлическойконтактной площадкой карты с контактами считывателя. Данный метод считывания простореализуем, но повышает износ карты при частом использовании. Контактная смарт-картасостоит из трех частей:

♦ контактная область:

• шесть или восемь контактов квадратной или овальной формы;

• позиции контактов выполнены в соответствии со стандартом ISO-7816;

♦ чип (микропроцессор карты);

♦ пластиковая основа.

    Устройства чтения смарт-карт могут быть интегрированы в клавиатуру.Некоторые производители выпускают другие виды аппаратных устройств,представляющие собой интеграцию контактной смарт-карты с устройством чтениясмарт-карты. Они по свойствам памяти и вычислительным возможностям полностьюаналогичны смарт-картам. Наиболее популярны аппаратные "ключи", использующие портUSB. USB-ключи привлекательны для некоторых организаций, поскольку USB становитсястандартом, находящим все большее распространение в новых компьютерах: организации ненужно приобретать для пользователей какие бы то ни было считыватели.

    «Страшная анатомия» смарт – возможен ли взлом?

    Согласно объективной статистике, в 2002 году по всему миру было продано почти 2млрд интеллектуальных карточек со встроенным микрочипом, и в ближайшие годыожидается рост продаж подобных устройств.

    В чем заключается такая популярность смарт-карт? Вероятно, в том, что областьприменения этих "девайсов" все время расширяется: от банковской и телефонной карты доцифрового паспорта-идентификатора. Массовая экспансия смарт-карт потребовала отпроизводителей чего-то большего, чем просто заверения о безопасности технологии "smart".

    А можно ли взломать смарт-карту, и если да, то как это сделать?

    Можно. Согласно шокирующей объективной статистике, уже примерно с 1994 годапрактически все (включая европейские, а затем американские и азиатские) из известных нато время смарт-карточных чипов, применявшихся в системах платного телевидения, былиуспешно взломаны при помощи методов обратной инженерии. А вы думаете, откуда наприлавках популярных рынков появились системы для просмотра закрытых ТВ-каналов?Если кому-то из читателей вдруг покажется, что взлом банковской смарт-карты сроднифантастике, смеем вас уверить, что это не так. Все дело в том, что и без того закрытыесведения подобного рода просто-напросто стараются не разглашать, дабы не нарушитьрепутацию обслуживающих банковских структур.

    Рассмотрим некоторые из методов, применяемых в настоящее время для вскрытия.Отметим, что профессиональный взлом, как правило, подразумевает совместноеиспользование нескольких методик.

    Анализ информации из побочных каналов подразумевает, что взломщик с помощьюспециализированной аппаратуры снимает электромагнитную картину побочного излучения впитании, интерфейсных соединениях, в схемах процессора и других узлах, прямым иликосвенным образом задействованных в генерации, преобразовании или передаче рабочегосигнала.

       Программные атаки подразумевают использование самого обычного интерфейсавзаимодействия с процессором смарт-карты. Как правило, в этом случае взлом возможенблагодаря наличию явных уязвимостей средств защиты протоколов или криптографическихалго итмов.

   Технологии внедрения, или микрозондирование .При этом используется микроскоп,и с помощью микроманипулятора атакующий полу чает доступ непосредственно к рабочейзоне чипа, где пошагово (побитно) регистрируется прохождение информации.

    Технологии индуцированных сбоев подразумевают создание внештатных условийработы чипа, чтобы открыть потенциальные каналы доступа к защищенной информации.Например, в конце сентября 1996 года научный коллектив из Bellcore(научно-исследовательский центр американской компании Bell) сообщил о том, чтообнаружена серьезная потенциальная слабость общего характера в защищенныхкриптографических устройствах, в частности в смарт-картах для электронных платежей (D.Boneh, R.A. DeMillo, R.J. Lipton «On the Importance of Checking Cryptographic Protocols forFaults»; www.demiLLo.com/PDF/smart.pdf).


    Выезд компьютерного мастера в районы: Троещина, Оболонь, Позняки, Теремки, Борщаговка, Шулявка, Дарница, Соломенка, Осокорки, Лесной, Березняки, Подол, Виноградар, Демеевка, Русановка, Лукьяновка, Татарка, Академгородок, Святошино, ДВРЗ, Гончарка, Голосеево, Академгородок, Беличи, Корчеватое, Китаево, Жуляны, Борисполь, Бровары, Вышневе




Ссылки