Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Щерба В.В. Криптографическая защита информации

.pdf
Скачиваний:
58
Добавлен:
07.01.2021
Размер:
931.06 Кб
Скачать

31

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

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

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

Существуют так называемые симметричные и асимметричные криптографические системы. Как известно, традиционные криптографические системы используют один и тот же ключ для зашифрования и расшифрования информации. Иногда эти ключи представляются как различающиеся, но один легко выводится из другого, образуя единый секретный ключ системы. Подобная «ключевая» симметрия относительно процессов зашифрования и расшифрования позволила назвать подобные системы симметричными. Криптографические системы второго вида используют два существенно различающихся ключа для зашифрования и расшифрования. Один из ключей не составляет секрета, он выступает в качестве публичного и называется открытым. Второй ключ традиционно является секретным. Знание одного ключа практически не позволяет вычислить значение второго. В связи с этим и по аналогии с наименованием первых систем такие криптографические системы получили название асимметричных.

32

Асимметричные криптографические системы часто называют системами с открытыми ключами.

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

Рассмотрим схемы использования асимметричных криптографических систем.

Каждый из пользователей, например А, системы шифрования получает ключ kА=(kзА, kрА), состоящий из открытого ключа kзА и секретного ключа kрА. Открытый ключ определяет правило зашифрования Еk, а секретный – правило расшифрования Dk. Для любого открытого текста М и любого шифрованного текста С эти преобразования связаны соотношением Dkk,(М)) = С. Открытый ключ не требуется сохранять в тайне; необходимо лишь обеспечить его аутентичность. Знание открытого ключа не позволяет за приемлемое время (или с приемлемой сложностью) определить секретный ключ.

Пользователь В, желая послать конфиденциальное сообщение М пользователю А, получает на общедоступном сервере ключ kзА и алгоритм зашифрования ЕА. Образовав шифрованный текст С = ЕkА(М), пользователь В отправляет его по каналу связи пользователю А. Расшифровать это сообщение может только пользователь А, обладающий секретным ключом kрА. Приняв сообщение С, пользователь А применяет к нему преобразование DkА и получает открытый текст М.

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

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

33

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

Обеспечение целостности информации

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

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

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

34

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

К хэш-функциям или имитовставкам предъявляются следующие требования:

невозможность вычисления значения hk(M) = S для некоторого сообщения М без знания секретного ключа k. Это требование связано

снеобходимостью предотвращения попыток противника по созданию поддельных сообщений;

невозможность подбора по известному сообщению М с извест-

ным значением hk(M)=S другого сообщения М1 с правильным значением hk(M1)=S1 без знания секретного ключа k. Это требование направлено на предотвращение попыток противника модифицировать передаваемые сообщения.

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

ние имитовставки hk(M)=S. Это значение он добавляет к тексту исходного сообщения, образуя сообщение М*= (М, S), которое передается по каналу связи. Получив сообщение М*, пользователь В на ключе k вычисляет значение имитовставки и сравнивает его с полученным значением S. Несовпадение значений свидетельствует о нарушении целостности сообщения. В заключение отметим, что рассмотренная схема предполагает знание секретного ключа k каждым из взаимодействующих пользователей.

Аутентификация источника информации

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

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

(М, hk(M)) и Ek(M, h(M)) или (М, Ek(h(M)).

35

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

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

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

36

сообщения на ключ получателя и отправку. Естественно, такая схема является крайне неудобной.

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

Первый подход состоит в преобразовании сообщения в форму, по которой можно восстановить само сообщение и тем самым проверить его авторство. Здесь цифровой подписью выступает само зашифрованное сообщение. При этом подписанное сообщение имеет ту же длину, что и исходное. Для создания такого подписанного сообщения автор осуществляет зашифрование исходного текста на своем секретном ключе, используя второе преобразование S = D(M). В этой ситуации вычислить значение подписи S может только владелец секретного ключа; проверить правильность подписи может каждый пользователь системы путем ее расшифрования на открытом ключе автора E(S) = M и, тем самым, восстановления текста сообщения. Подобные схемы получили наименование схем цифровой подписи с восстановлением текста.

При втором подходе для заданного сообщения сначала вычисляется значение бесключевой хэш-функции h(M), а затем уже с использованием этого значения формируется цифровая подпись S = D(h(M)). Ясно, что здесь по значению подписи уже нельзя восстановить само сообщение, поэтому подписи передаются вместе с сообщениями. В данном случае длина подписи не зависит от объема сообщения. Такие схемы получили название цифровых подписей с дополнением.

Решение некоторых дополнительных задач

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

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

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

37

пользования ключей, смену, хранение и архивирование ключей, замену или изъятие скомпрометированных, а также уничтожение старых ключей.

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

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

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

38

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

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

Сертификация открытых ключей

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

39

тверждение аутентичности открытого ключа составляет суть задачи сертификации.

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

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

Идентификация сторон, осуществляющих информационное взаимодействие

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

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

40

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]