Справочник от Автор24
Поделись лекцией за скидку на Автор24

Основы информационной безопасности

  • 👀 690 просмотров
  • 📌 668 загрузок
  • 🏢️ ПГУТИ
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Основы информационной безопасности» pdf
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ» ОСНОВЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ Конспект лекций Самара ЛИТЕРАТУРА 1. Отраслевой стандарт ОСТ 45.127-99 «Система обеспечения информационной безопасности Взаимоувязанной сети связи Российской Федерации. Термины и определения». 2. Мельников В. П., Клейменов С. А., Петраков А. М. Информационная безопасность и защита информации. Высшее профессиональное образование. М.: Академия, 2009 г. 3. Несторов С.А. Информационная безопасность и защита информации: Учебное пособие, СПб, 2009. 4. Шаньгин В. Ф. Информационная безопасность компьютерных систем и сетей: учебное пособие, М.: ИД «ФОРУМ» 2008. 5. Официальный сайт Российской газеты. Доктрина информационной безопасности Российской Федерации. М., 1998-2013. 2 6. ОСНОВНЫЕ ПОНЯТИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ (ИБ) 1.1.Постановка задачи сетевой безопасности В области безопасности информационных систем выделяют две основные группы:  безопасность компьютера,  сетевая безопасность. Если компьютер рассматривается как автономная система, то к первой группе относят все задачи защиты данных, хранящихся и обрабатываемых компьютером. К ним относятся: защита ОС, БД. Ко второй группе относятся вопросы сетевой безопасности, т.е. защита данных при их передаче по каналам связи. Сюда же относятся защита от несанкционированного доступа в сеть (НСД). Обе группы задач тесно связаны и трудно отделимы друг от друга. Однако очевидно, что проблемы сетевой безопасности имеют специфические особенности. Автономный компьютер можно эффективно защитить от покушений разными способами, например, запереть клавиатуру на замок, снять винчестер и поместить его в сейф. Сетевой компьютер принципиально не в состоянии отгородиться от внешнего мира, т.к. он должен общаться с другими компьютерами, даже удаленными на значительные расстояния. Поэтому обеспечение безопасности в сети является более сложной задачей. Вход чужого пользователя (даже законного пользователя сети) в личный компьютер является штатной ситуацией, если компьютер находится в сети. Обеспечение сетевой безопасности заключается в том, чтобы сделать чужое проникновение контролируемым, т.е. каждому пользователю сети должны быть четко определены его права по доступу к информации, внешним устройствам и выполнению системных действий на каждом компьютере сети. Другой проблемой сетевой безопасности является перехват и анализ передаваемых сообщений, модификация (искажение) сообщений, а также создание «ложного» трафика. Значительная часть средств обеспечения сетевой ИБ направлена на предотвращение именного этого типа нарушений. Вопросы сетевой ИБ приобретают особую значимость в настоящее время, когда происходит бурное развитие корпоративных сетей, которые для своего функционирования используют сети общего пользования, в частности Интернет. Провайдеры услуг сетей общего пользования редко обеспечивают защиту пользовательских данных в процессе их транспортировки по своим магистралям, возлагая заботы по ИБ на самих пользователей. 1.2.Основные понятия информационной безопасности Безопасность сети – это защита ее от случайного или преднамеренного вмешательства в нормальный процесс функционирования, а также от попыток хищения, изменения или разрушения ее компонентов. Безопасность сети достигается принятием мер по обеспечению конфиденциальности и це3 лостности обрабатываемой информации, а также доступности и целостности компонентов и ресурсов сети. Доступ к информации – это ознакомление с информацией, ее обработка, в частности копирование, модификация или уничтожение информации. Различают санкционированный и несанкционированный доступ к информации. Санкционированный доступ – это доступ, не нарушающий установленные правила разграничения доступа. Несанкционированный доступ (НСД) – это доступ, характеризующийся нарушением установленных правил разграничения доступа. Лицо или процесс, осуществляющий НСД, является нарушителем правил разграничения доступа. НСД является наиболее распространенным видом компьютерных нарушений. Конфиденциальность данных – это статус, предоставляемый данным и определяющий степень их защиты. Конфиденциальность информации – это свойство быть известной только допущенным и прошедшим проверку (авторизированным) субъектам системы (пользователям, процессам, программам). Для остальных субъектов это информация должна быть закрыта. Субъект – это активный компонент системы, который может стать причиной потока информации от объекта к субъекту или изменения состояния системы. Объект – это пассивный компонент системы, хранящий, принимающий или передающий информацию. Доступ к объекту означает доступ к содержащейся в нем информации. Целостность информации обеспечивается в том случае, если данные в системе не отличаются в семантическом отношении от данных в исходных документах, т.е. если не произошло их случайного или преднамеренного искажения или разрушения. Целостность компонента или ресурса системы – это свойство компонента или ресурса быть неизменным в семантическом смысле при функционировании системы в условиях случайных или преднамеренных искажений или разрушающих воздействий. Доступность компонента или ресурса системы – это свойство компонента или ресурса быть доступным для авторизированных законных субъектов системы. Под угрозой безопасности сети понимаются возможные воздействия на сеть, которые прямо или косвенно могут нанести ущерб ее безопасности. Ущерб безопасности подразумевает нарушение состояния защищенности информации, содержащейся и обрабатывающейся в сети. Уязвимость сети – это некоторое неудачное свойство системы, которое делает возможным возникновение и реализацию угрозы. Атака на сеть – это действие, предпринимаемое злоумышленником, которое заключается в поиске и использовании той или иной уязвимости системы. Иными словами, атака – это реализация угрозы безопасности. 4 Целью защиты системы обработки информации является противодействие угрозам безопасности. Безопасная или защищенная система – это система со средствами защиты, которые успешно и эффективно противостоят угрозам безопасности. Комплекс средств защиты – это совокупность программных и аппаратных средств, создаваемых и поддерживаемых для обеспечения ИБ. Комплекс создается и поддерживается в соответствии с принятой в данной организации политикой безопасности. Политика безопасности – это совокупность норм, правил и практических рекомендаций, регламентирующих работу средств защиты сетей от заданного множества угроз безопасности. 1.3.Классификация угроз безопасности корпоративных сетей Для описания угроз безопасности корпоративных сетей предлагается следующая классификация (рисунок 1.1). По характеру воздействия а) пассивное (класс 1.1); б) активное (класс 1.2). Пассивным воздействием на корпоративную сеть (КС) называют воздействие, которое не оказывает непосредственного влияния на работу сети, но способно нарушать ее политику безопасности. Именно отсутствие непосредственного влияния на работу сети приводит к тому, что пассивное удаленное воздействие практически невозможно обнаружить. Примером типового пассивного удаленного воздействия является прослушивание канала связи в сети. При пассивном воздействии, в отличие от активного, не остается никаких следов (от того, что атакующий просмотрит чужое сообщение в системе, ничего не изменится). Под активным воздействием на КС понимается воздействие, оказывающее непосредственное влияние на работу сети (изменение конфигурации КС, нарушение работоспособности и т. д.) и нарушающее принятую в ней политику безопасности. Практически все типы удаленных атак являются активными воздействиями. Это связано с тем, что в самой природе разрушающего воздействия заложено активное начало. Очевидным отличием активного воздействия от пассивного является принципиальная возможность его обнаружения (естественно, с большими или меньшими усилиями), так как в результате его осуществления в системе происходят определенные изменения. 5 Классификация угроз безопасности КС Пассивное По характеру воздействия По цели воздействия Нарушение конфиденциальности информации либо ресурсов По условию начала осуществления воздействия Атаки по запросу от атакуемого объекта По наличию обратной связи с атакуемым объектом По уровню эталонной модели ISO/OSI , на котором осуществляется воздействие Атаки по наступлении ожидаемого события на атакуемом объекте Внутрисегментное Физический Сетевой Канальный Нарушение работоспособности (доступности ) системы Нарушение целостности информации С обратной связью По расположению субъекта атаки относительно атакуемого объекта Активное Без обратной связи (однонаправленная атака ) Межсегментное Сеансовый Транспортный Безусловная атака Прикладной Представительный Рисунок 1.1 – Классификация угроз безопасности корпоративных сетей По цели воздействия: а) нарушение конфиденциальности информации либо ресурсов сети (класс 2.1); б) нарушение целостности информации (класс 2.2); в) нарушение работоспособности (доступности) системы (класс 2.3). Цель большинства атак - получить несанкционированный доступ к информации. Существуют две принципиальные возможности такого доступа: перехват и искажение. Перехват – это получение информации без возмож6 ности ее искажения. Примером перехвата может служить прослушивание канала в сети. Такая атака является пассивным воздействием и ведет к нарушению конфиденциальности информации. Искажение информации означает полный контроль над информационным потоком между объектами системы или возможность передачи сообщений от имени другого объекта. Очевидно, что искажение информации ведет к нарушению ее целостности, то есть представляет собой активное воздействие. Примером удаленной атаки, цель которой - нарушение целостности информации, может служить типовая удаленная атака (УА) "ложный объект КС". Принципиально иной целью атаки является нарушение работоспособности системы. В этом случае основная цель взломщика - добиться, чтобы операционная система на атакованном объекте вышла из строя и, следовательно, для всех остальных объектов системы доступ к ресурсам данного объекта был бы невозможен. Примером удаленной атаки с целью нарушения работоспособности системы, это типовая удаленная атака (УА) "ложный объект КС". По условию начала осуществления воздействия Удаленное воздействие, как и любое другое, может начать осуществляться только при определенных условиях. Существуют три вида таких условий: а) атака после запроса от атакуемого объекта (класс 3.1); б) атака после наступления ожидаемого события на атакуемом объекте (класс 3.2); в) безусловная атака (класс 3.3). В первом случае взломщик ожидает передачи от потенциальной цели атаки запроса определенного типа, который и будет условием начала осуществления воздействия. Примером подобных сообщений в ОС Novell NetWare может служить запрос SAP, а в Internet -запросы DNS и ARP. Такой тип удаленных атак наиболее характерен для КС. При осуществлении атаки класса 3.2 атакующий осуществляет постоянное наблюдение за состоянием операционной системы объекта атаки и при возникновении определенного события в этой системе начинает воздействие. Как и в предыдущем случае, инициатором начала атаки выступает сам атакуемый объект. Примером такого события может быть прерывание сеанса работы пользователя с сервером в ОС Novell NetWare без выдачи команды LOGOUT. При безусловной атаке ее начало не зависит от состояния системы атакуемого объекта, то есть воздействие осуществляется немедленно. Следовательно, в этом случае его инициатором является атакующий. По наличию обратной связи с атакуемым объектом а) с обратной связью (класс 4.1); б) без обратной связи, или однонаправленная атака (класс 4.2). Если взломщику требуется получить ответ на некоторые запросы, переданные на объект воздействия, то есть между атакующим и целью атаки 7 существует обратная связь, которая позволяет ему адекватно реагировать при изменении ситуации, то такое воздействие можно отнести к классу 4.1. Инициатор удаленной атаки без обратной связи, напротив, не реагирует ни на какие изменения, происходящие на атакуемом объекте. Воздействие данного вида обычно осуществляется передачей на атакуемый объект одиночных запросов, ответы на которые атакующему не нужны. По расположению субъекта атаки относительно атакуемого объекта а) внутрисегментное (класс 5.1); б) межсегментное (класс 5.2). Рассмотрим ряд определений. Субъект атаки, или источник атаки - это атакующая программа или оператор, непосредственно осуществляющие воздействие. Хост (host) – сетевой компьютер. Маршрутизатор, или роутер (router) – устройство, обеспечивающее маршрутизацию пакетов обмена в глобальной сети. Подсеть (subnetwork в терминологии Internet) – логическое объединение, совокупность хостов, являющихся частью глобальной сети, для которых маршрутизатором выделен одинаковый номер. Хосты внутри одной подсети могут взаимодействовать непосредственно, минуя маршрутизатор. Сегмент сети (segment) – физическое объединение хостов. Например, сегменты сети образуются совокупностью хостов, подключенных к серверу по схеме "общая шина". При такой схеме подключения каждый хост имеет возможность подвергать анализу любой пакет в своем сегменте. Для осуществления удаленного воздействия чрезвычайно важно, как по отношению друг к другу располагаются субъект и объект атаки, то есть в одном или в разных сегментах они находятся. В случае внутрисегментной атаки, как следует из названия, субъект и объект атаки находятся в одном сегменте, а при межсегментной – в разных. Данный классификационный признак позволяет судить о так называемой степени удаленности атаки. Межсегментное воздействие осуществить значительно труднее, чем внутрисегментное, но и опасность оно представляет гораздо большую. В таком случае объект и субъект атаки могут находиться на расстоянии многих тысяч километров друг от друга, что существенно усложняет возможность непосредственного обнаружения атакующего и адекватной реакции на атаку. По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие а) физический (класс 6.1); б) канальный (класс 6.2); в) сетевой (класс 6.3); г) транспортный (класс 6.4); д) сеансовый (класс 6.5); е) представительный (класс 6.6); ж) прикладной (класс 6.7). Несанкционированный доступ (НСД) является наиболее распространенным и многообразным видом компьютерных нарушений. Суть НСД со8 стоит в получении пользователем (нарушителем) доступа к объекту в нарушение правил разграничения доступа, установленных в соответствии с принятой в организации политикой безопасности. НСД использует любую ошибку в системе защиты и возможен при нерациональном выборе средств защиты, их некорректной установке и настройке. НСД может быть осуществлен как штатными средствами, так и специально созданными аппаратными и программными средствами. Перечислим основные каналы несанкционированного доступа, через которые нарушитель может получить доступ к компонентам сети и осуществить хищение, модификацию и/или разрушение информации:  все штатные каналы доступа к информации (терминалы пользователей, оператора, администратора системы; средства отображения и документирования информации; каналы связи) при их использовании нарушителями, а также законными пользователями вне пределов их полномочий;  технологические пульты управления;  линии связи между аппаратными средствами сети;  побочные электромагнитные излучения от аппаратуры, линий связи, сетей электропитания и заземления и др. Рассмотрим некоторые примеры НСД:  перехват паролей;  "маскарад";  незаконное использование привилегий. Перехват паролей осуществляется специально разработанными программами. При попытке законного пользователя войти в систему программаперехватчик имитирует на экране дисплея ввод имени и пароля пользователя, которые сразу пересылаются владельцу программы-перехватчика, после чего на экран выводится сообщение об ошибке и управление возвращается операционной системе. Пользователь предполагает, что допустил ошибку при вводе пароля. Он повторяет ввод и получает доступ в систему. Владелец программы-перехватчика, получивший имя и пароль законного пользователя, может теперь использовать их в своих целях. Существуют и другие способы перехвата паролей. "Маскарад" – это выполнение каких-либо действий одним пользователем от имени другого пользователя, обладающего соответствующими полномочиями. Целью "маскарада" является приписывание каких-либо действий другому пользователю либо присвоение полномочий и привилегий другого пользователя. Примерами реализации "маскарада" являются:  вход в систему под именем и паролем другого пользователя (этому "маскараду" предшествует перехват пароля);  передача сообщений в сети от имени другого пользователя. "Маскарад" особенно опасен в банковских системах электронных платежей, где неправильная идентификация клиента из-за "маскарада" злоумышленника может привести к большим убыткам законного клиента банка. 9 Незаконное использование привилегий. Большинство систем защиты устанавливают определенные наборы привилегий для выполнения заданных функций. Каждый пользователь получает свой набор привилегий: обычные пользователи – минимальный, администраторы – максимальный. Несанкционированный захват привилегий, например посредством "маскарада", приводит к возможности выполнения нарушителем определенных действий в обход системы защиты. Следует отметить, что незаконный захват привилегий возможен либо при наличии ошибок в системе защиты, либо из-за халатности администратора при управлении системой и назначении привилегий. Компьютерные сети характерны тем, что кроме обычных локальных атак, осуществляемых в пределах одной системы, против объектов сетей предпринимают так называемые удаленные атаки, что обусловлено распределенностью сетевых ресурсов и информации. Злоумышленник может находиться за тысячи километров от атакуемого объекта, при этом нападению может подвергаться не только конкретный компьютер, но и информация, передающаяся по сетевым каналам связи. Под удаленной атакой понимают информационное разрушающее воздействие на распределенную компьютерную сеть, программно осуществленное по каналам связи [56]. В табл.1.1 показаны основные пути реализации угроз безопасности сети при воздействии на ее компоненты. Таблица 1.1 Пути реализации угроз безопасности сети Нарушение конфиНарушение цеНарушение рабоОбъекты денциальности инлостности интоспособности сивоздействия формации формации стемы НСД – подключеНСД – подключение; ние; использоваНСД – изменение Аппаратные ипользование ресурние ресурсов; мо- режимов; вывод из средства сов; хищение носидификация, изме- строя; разрушение телей нение режимов НСД, внедрение Программное НСД – копирование; "троянского коня", НСД – искажение; обеспечение хищение; перехват "вирусов", "чер- удаление; подмена вей" НСД – копирование; НСД – искажение; НСД – искажение; Данные хищение; перехват модификация удаление; подмена Разглашение; пере"Маскарад"; верУход с рабочего Персонал дача сведений о забовка; подкуп места; физическое щите; халатность персонала устранение В табл.1.1. приведены специфические названия и термины: "троянский конь", "вирус", "червь", которые употребляются для именования некоторых распространенных угроз безопасности. Хотя эти названия имеют жаргонный оттенок, они уже вошли в общепринятый компьютерный лексикон. Дадим краткую характеристику этих распространенных угроз безопасности. 10 "Троянский конь" представляет собой программу, которая наряду с действиями, описанными в ее документации, выполняет некоторые другие действия, ведущие к нарушению безопасности системы и деструктивным результатам. Аналогия такой программы с древнегреческим "троянским конем" вполне оправдана, так как в обоих случаях не вызывающая подозрений оболочка таит серьезную угрозу. Термин "троянский конь" был впервые использован хакером Даном Эдварсом, позднее ставшим сотрудником Агентства Национальной Безопасности США. "Троянский конь" использует, в сущности, обман, чтобы побудить пользователя запустить программу со скрытой внутри угрозой. Обычно для этого утверждается, что такая программа выполняет некоторые весьма полезные функции. В частности, такие программы маскируются под какиенибудь полезные утилиты. Опасность "троянского коня" заключается в дополнительном блоке команд, вставленном в исходную безвредную программу, которая затем предоставляется пользователям сети. Этот блок команд может срабатывать при наступлении какого-либо условия (даты, состояния системы) либо по команде извне. Пользователь, запустивший такую программу, подвергает опасности как свои файлы, так и всю сеть в целом. Приведем для примера некоторые деструктивные функции, реализуемые "троянскими конями".  Уничтожение информации. Выбор объектов и способов уничтожения определяется фантазией автора вредоносной программы.  Перехват и передача информации. В частности, известна программа, осуществляющая перехват паролей, набираемых на клавиатуре.  Целенаправленная модификация текста программы, реализующей функции безопасности и защиты системы. "Троянские кони" наносят ущерб посредством хищения информации и явного разрушения программного обеспечения системы. "Троянский конь" является одной из наиболее опасных угроз безопасности. Радикальный способ защиты от этой угрозы заключается в создании замкнутой среды исполнения программ, которые должны храниться и защищаться от несанкционированного доступа. Компьютерный "вирус" представляет собой своеобразное явление, возникшее в процессе развития компьютерной и информационной техники. Суть этого явления состоит в том, что программы-вирусы обладают рядом свойств, присущих живым организмам, – они рождаются, размножаются и умирают. Сетевой "червь" представляет собой разновидность программывируса, которая распространяется по глобальной сети и не оставляет своей копии на магнитном носителе. Этот термин используется для именования программ, которые подобно ленточным червям перемещаются по компьютерной сети от одной системы к другой. Первоначально "черви" были разработаны для поиска в сети других компьютеров со свободными ресурсами, чтобы получить возможность выполнить распределенные вычисления. При правильном использовании технология "червей" может быть весьма полезной. Например, "червь" World 11 Wide Web Worm формирует индекс поиска участков Web. Однако "червь" легко превращается во вредоносную программу. "Червь" использует механизмы поддержки сети для определения узла, который может быть поражен. Затем с помощью этих же механизмов передает свое тело в этот узел и либо активизируется, либо ждет подходящих условий для активизации. Сетевые "черви" являются самым опасным видом вредоносных программ, так как объектом их атаки может стать любой из миллионов компьютеров, подключенных к глобальной сети Internet. Для защиты от "червя" необходимо принять меры предосторожности против несанкционированного доступа к внутренней сети. "Троянские кони", компьютерные вирусы и сетевые "черви" относятся к наиболее опасным угрозам. Для защиты от указанных вредоносных программ применяется ряд мер:  исключение несанкционированного доступа к исполняемым файлам;  тестирование приобретаемых программных средств;  контроль целостности исполняемых файлов и системных областей;  создание замкнутой среды исполнения программ. 1.4.Обеспечение безопасности сетей передачи данных Существуют два подхода к проблеме обеспечения безопасности сетей: "фрагментарный" и комплексный. "Фрагментарный" подход направлен на противодействие четко определенным угрозам в заданных условиях. В качестве примеров реализации такого подхода можно указать отдельные средства управления доступом, автономные средства шифрования, специализированные антивирусные программы и т.п. Достоинством такого подхода является высокая избирательность к конкретной угрозе. Существенным недостатком данного подхода является отсутствие единой защищенной среды обработки информации. Фрагментарные меры защиты информации обеспечивают защиту конкретных объектов только от конкретной угрозы. Даже небольшое видоизменение угрозы ведет к потере эффективности защиты. Комплексный подход ориентирован на создание защищенной среды обработки информации, объединяющей в единый комплекс разнородные меры противодействия угрозам. Организация защищенной среды обработки информации позволяет гарантировать определенный уровень безопасности, что является несомненным достоинством комплексного подхода. К недостаткам этого подхода относятся: ограничения на свободу действий пользователей, большая чувствительность к ошибкам установки и настройки средств защиты, сложность управления. Комплексный подход применяют для защиты сетей крупных организаций или небольших сетей, выполняющих ответственные задачи или обрабатывающих особо важную информацию. Нарушение безопасности информации в сетях крупных организаций может нанести огромный материальный ущерб как самим организациям, так и их клиентам. Поэтому такие организации вынуждены уделять особое внимание гарантиям безопасности и реализовывать комплексную защиту. Комплексного подхода придерживаются 12 большинство государственных и крупных коммерческих предприятий и учреждений. Этот подход нашел свое отражение в различных стандартах. 1.4.1. Основные виды политики безопасности Комплексный подход к проблеме обеспечения безопасности основан на разработанной для конкретной сети политике безопасности. Политика безопасности представляет собой набор норм, правил и практических рекомендаций, на которых строится управление, защита и распределение информации в сети. Политика безопасности регламентирует эффективную работу средств защиты. Она охватывает все особенности процесса обработки информации, определяя поведение системы в различных ситуациях. Политика безопасности реализуется посредством административноорганизационных мер, физических и программно-технических средств и определяет архитектуру системы защиты. Для конкретной организации политика безопасности должна носить индивидуальный характер и зависеть от конкретной технологии обработки информации и используемых программных и технических средств. Политика безопасности определяется способом управления доступом, определяющим порядок доступа к объектам системы. Различают два основных вида политики безопасности: избирательную и полномочную. 1. Избирательная политика безопасности основана на избирательном способе управления доступом. Избирательное (или дискреционное) управление доступом характеризуется заданным администратором множеством разрешенных отношений доступа (например, в виде троек <объект, субъект, тип доступа>). Обычно для описания свойств избирательного управления доступом применяют математическую модель на основе матрицы доступа. Матрица доступа представляет собой матрицу, в которой столбец соответствует объекту системы, а строка – субъекту. На пересечении столбца и строки матрицы указывается тип разрешенного доступа субъекта к объекту. Обычно выделяют такие типы доступа субъекта к объекту, как "доступ на чтение", "доступ на запись", "доступ на исполнение" и т.п. Матрица доступа является самым простым подходом к моделированию систем управления доступом. Она является основой для более сложных моделей. Избирательная политика безопасности широко применяется в коммерческих сетях, так как ее реализация соответствует требованиям коммерческих организаций по разграничению доступа и подотчетности, а также имеет приемлемую стоимость. 2. Полномочная политика безопасности основана на полномочном (мандатном) способе управления доступом. Полномочное (или мандатное) управление доступом характеризуется совокупностью правил предоставления доступа в зависимости от метки конфиденциальности информации и уровня допуска пользователя. Полномочное управление доступом подразумевает, что: a. все субъекты и объекты системы однозначно идентифицированы; 13 b. каждому объекту системы присвоена метка конфиденциальности информации, определяющая ценность содержащейся в нем информации; c. каждому субъекту системы присвоен определенный уровень допуска, определяющий максимальное значение метки конфиденциальности информации объектов, к которым субъект имеет доступ. Чем важнее объект, тем выше его метка конфиденциальности. Поэтому наиболее защищенными оказываются объекты с наиболее высокими значениями метки конфиденциальности. Основным назначением полномочной политики безопасности является регулирование доступа субъектов системы к объектам с различными уровнями конфиденциальности, предотвращение утечки информации с верхних уровней должностной иерархии на нижние, а также блокирование возможных проникновений с нижних уровней на верхние. Помимо управления доступом субъектов к объектам системы проблема защиты информации имеет еще один аспект. Для получения информации о каком-либо объекте системы совсем необязательно искать пути несанкционированного доступа к нему. Необходимую информацию можно получить, наблюдая за обработкой требуемого объекта, т.е. используя каналы утечки информации. В системе всегда существуют информационные потоки. Поэтому администратору необходимо определить, какие информационные потоки в системе являются "легальными", т.е. не ведут к утечке информации, а какие – ведут к утечке. Поэтому возникает необходимость разработки правил, регламентирующих управление информационными потоками в системе. Обычно управление информационными потоками применяется в рамках избирательной или полномочной политики, дополняя их и способствуя повышению надежности системы защиты. Избирательное и полномочное управление доступом, а также управление информационными потоками являются тем фундаментом, на котором строится вся система защиты. 1.4.2. Построение системы защиты сети Под системой защиты сети понимают единую совокупность правовых и морально-этических норм, административно-организационных мер, физических и программно-технических средств, направленных на противодействие угрозам сети с целью сведения к минимуму возможности ущерба. Процесс построения системы защиты включает следующие этапы:  анализ возможных угроз;  планирование системы защиты;  реализация системы защиты;  сопровождение системы защиты. Этап анализа возможных угроз необходим для фиксации состояния сети (конфигурации аппаратных и программных средств, технологии обработки информации) и определения учитываемых воздействий на компоненты системы. Практически невозможно обеспечить защиту от всех воздействий, поскольку невозможно полностью установить все угрозы и способы их реа14 лизаций. Поэтому из всего множества вероятных воздействий выбирают только такие воздействия, которые могут реально произойти и нанести серьезный ущерб. На этапе планирования формулируется система защиты как единая совокупность мер противодействия угрозам различной природы. По способам осуществления все меры обеспечения безопасности компьютерных систем подразделяют на:  правовые (законодательные);  морально-этические;  административные;  физические;  аппаратно-программные. Перечисленные меры безопасности можно рассматривать как последовательность барьеров или рубежей защиты информации. Для того чтобы добраться до защищаемой информации, нужно последовательно преодолеть несколько рубежей защиты. Рассмотрим их подробнее. Первый рубеж защиты, встающий на пути человека, пытающегося осуществить НСД к информации, является чисто правовым. Этот аспект защиты информации связан с необходимостью соблюдения юридических норм при передаче и обработке информации. К правовым мерам защиты информации относятся действующие в стране законы, указы и другие нормативные акты, регламентирующие правила обращения с информацией ограниченного использования и ответственности за их нарушения. Этим они препятствуют несанкционированному использованию информации и являются сдерживающим фактором для потенциальных нарушителей. Второй рубеж защиты образуют морально-этические меры. Этический момент в соблюдении требований защиты имеет весьма большое значение. Очень важно, чтобы люди, имеющие доступ к компьютерам, работали в здоровом морально-этическом климате. К морально-этическим мерам противодействия относятся всевозможные нормы поведения, которые традиционно сложились или складываются в обществе по мере распространения компьютеров в стране. Эти нормы большей частью не являются обязательными, как законодательно утвержденные, но их несоблюдение обычно ведет к падению престижа человека, группы лиц или организации. Морально-этические нормы бывают как неписаными (например, общепризнанные нормы честности, патриотизма и т.д.), так и оформленными в некий свод правил или предписаний. Например, "Кодекс профессионального поведения членов Ассоциации пользователей ЭВМ США" рассматривает как неэтичные действия, которые умышленно или неумышленно:  нарушают нормальную работу компьютерных систем;  вызывают неоправданные затраты ресурсов (машинного времени, памяти, каналов связи и т.п.);  нарушают целостность информации (хранимой и обрабатываемой);  нарушают интересы других законных пользователей и т.п. 15 Третьим рубежом, препятствующим неправомочному использованию информации, являются административные меры. Администраторы всех рангов с учетом правовых норм и социальных аспектов определяют административные меры защиты информации. Административные меры защиты относятся к мерам организационного характера. Они регламентируют:  процессы функционирования сети;  использование ресурсов сети;  деятельность ее персонала;  порядок взаимодействия пользователей с системой, с тем чтобы в наибольшей степени затруднить или исключить возможность реализации угроз безопасности. Административные меры включают:  разработку правил обработки информации в сети;  совокупность действий при проектировании и оборудовании вычислительных центров и других объектов (учет влияния стихии, пожаров, охрана помещений и т.п.);  совокупность действий при подборе и подготовке персонала (проверка новых сотрудников, ознакомление их с порядком работы с конфиденциальной информацией, с мерами ответственности за нарушение правил ее обработки; создание условий, при которых персоналу было бы невыгодно допускать злоупотребления и т.д.);  организацию надежного пропускного режима;  организацию учета, хранения, использования и уничтожения документов и носителей с конфиденциальной информацией;  распределение реквизитов разграничения доступа (паролей, полномочий и т.п.);  организацию скрытого контроля за работой пользователей и персонала сети;  совокупность действий при проектировании, разработке, ремонте и модификации оборудования и программного обеспечения (сертификация используемых технических и программных средств, строгое санкционирование, рассмотрение и утверждение всех изменений, проверка на удовлетворение требованиям защиты, документальная фиксация изменений и т.п.). Четвертым рубежом являются физические меры защиты. К физическим мерам защиты относятся разного рода механические, электро- и электронно-механические устройства или сооружения, специально предназначенные для создания физических препятствий на возможных путях проникновения и доступа потенциальных нарушителей к компонентам системы и защищаемой информации. Пятым рубежом являются аппаратно-программные средства защиты. К ним относятся различные электронные устройства и специальные программы, которые реализуют самостоятельно или в комплексе с другими средствами следующие способы защиты: 16  идентификацию (распознавание) и аутентификацию (проверка подлинности) субъектов (пользователей, процессов);  разграничение доступа к ресурсам сети;  контроль целостности данных;  обеспечение конфиденциальности данных;  регистрацию и анализ событий, происходящих в сети;  резервирование ресурсов и компонентов сети. Большинство из перечисленных способов защиты реализуется криптографическими методами защиты информации. 1.5.Базовые технологии безопасности сетей В разных программных и аппаратных продуктах, предназначенных для защиты данных, часто используются одинаковые подходы, приемы и технические решения. К таким базовым технологиям безопасности относятся аутентификация, авторизация, аудит и технология защищенного канала. 1.5.1. Аутентификация Аутентификация (authentication) предотвращает доступ к сети нежелательных лиц и разрешает вход для легальных пользователей. Термин «аутентификация» в переводе с латинского означает «установление подлинности». Аутентификацию следует отличать от идентификации. Идентификаторы пользователей используются в системе с теми же целями, что и идентификаторы любых других объектов, файлов, процессов, структур данных, но они не связаны непосредственно с обеспечением безопасности. Идентификация заключается в сообщении пользователем системе своего идентификатора, в то время как аутентификация – это процедура доказательства пользователем того, что он есть тот, за кого себя выдает, в частности, доказательство того, что именно ему принадлежит введенный им идентификатор. В процедуре аутентификации участвуют две стороны: одна сторона доказывает свою аутентичность, предъявляя некоторые доказательства, а другая сторона – аутентификатор – проверяет эти доказательства и принимает решение. В качестве доказательства аутентичности используются самые разнообразные приемы:  аутентифицируемый может продемонстрировать знание некоего общего для обеих сторон секрета: слова (пароля) или факта (даты и места события, прозвища человека и т. п.);  аутентифицируемый может продемонстрировать, что он владеет неким уникальным предметом (физическим ключом), в качестве которого может выступать, например, электронная магнитная карта;  аутентифицируемый может доказать свою идентичность, используя собственные биохарактеристики: рисунок радужной оболочки глаза или отпечатки пальцев, которые предварительно были занесены в базу данных аутентификатора. Сетевые службы аутентификации строятся на основе всех этих приемов, по чаще всего для доказательства идентичности пользователя используются пароли. Простота и логическая ясность механизмов аутентификации 17 на основе паролей в какой-то степени компенсирует известные слабости паролей. Это, во-первых, возможность раскрытия и разгадывания паролей, а во-вторых, возможность «подслушивания» пароля путем анализа сетевого трафика. Для снижения уровня угрозы от раскрытия паролей администраторы сети, как правило, применяют встроенные программные средства для формирования политики назначения и использования паролей: задание максимального и минимального сроков действия пароля, хранение списка уже использованных паролей, управление поведением системы после нескольких неудачных попыток логического входа и т. п. Перехват паролей по сети можно предупредить путем их шифрования перед передачей в сеть. 1.5.2. Авторизация доступа Средства авторизации (authorization) контролируют доступ легальных пользователей к ресурсам системы, предоставляя каждому из них именно те права, которые ему были определены администратором. Кроме предоставления прав доступа пользователям к каталогам, файлам и принтерам система авторизации может контролировать возможность выполнения пользователями различных системных функций, таких как локальный доступ к серверу, установка системного времени, создание резервных копий данных, выключение сервера и т. п. Система авторизации наделяет пользователя сети правами выполнять определенные действия над определенными ресурсами. Процедуры авторизации реализуются программными средствами, которые могут быть встроены в операционную систему или в приложение, а также могут поставляться в виде отдельных программных продуктов. При этом программные системы авторизации могут строиться на базе двух схем: □ централизованная схема авторизации, базирующаяся на сервере; □ децентрализованная схема, базирующаяся на рабочих станциях. В первой схеме сервер управляет процессом предоставления ресурсов пользователю. Главная цель таких систем – реализовать «принцип единого входа». В соответствии с централизованной схемой пользователь один раз логически входит в сеть и получает на все время работы некоторый набор разрешений по доступу к ресурсам сети. Система Kerberos с ее сервером безопасности и архитектурой клиент-сервер является наиболее известной системой этого типа. Системы TACACS и RADIUS, часто применяемые совместно с системами удаленного доступа, также реализуют этот подход. При втором подходе рабочая станция сама является защищенной – средства защиты работают на каждой машине, и сервер не требуется. В крупных сетях часто применяется комбинированный подход предоставления пользователю прав доступа к ресурсам сети: сервер удаленного доступа ограничивает доступ пользователя к подсетям или серверам корпоративной сети, то есть к укрупненным элементам сети, а каждый отдельный сервер сети сам по себе ограничивает доступ пользователя к своим внутренним ресурсам: разделяемым каталогам, принтерам или приложениям. 18 1.5.3. Аудит Аудит (auditing) – фиксация в системном журнале событий, связанных с доступом к защищаемым системным ресурсам. Подсистема аудита современных ОС позволяет дифференцированно задавать перечень интересующих администратора событий с помощью удобного графического интерфейса. Средства учета и наблюдения обеспечивают возможность обнаружить и зафиксировать важные события, связанные с безопасностью, или любые попытки создать, получить доступ или удалить системные ресурсы. Аудит используется для того, чтобы засекать даже неудачные попытки «взлома» системы. Учет и наблюдение означает способность системы безопасности «шпионить» за выбранными объектами и их пользователями и выдавать сообщения тревоги, когда кто-нибудь пытается читать или модифицировать системный файл. Если кто-то пытается выполнить действия, определенные системой безопасности для отслеживания, то система аудита пишет сообщение в журнал регистрации, идентифицируя пользователя. Системный менеджер может создавать отчеты о безопасности, которые содержат информацию из журнала регистрации. Для «сверхбезопасных» систем предусматриваются аудио- и видеосигналы тревоги, устанавливаемые на машинах администраторов, отвечающих за безопасность. Поскольку никакая система безопасности не гарантирует защиту на уровне 100%, то последним рубежом в борьбе с нарушениями оказывается система аудита. Действительно, после того как злоумышленнику удалось провести успешную атаку, пострадавшей стороне не остается ничего другого, как обратиться к службе аудита. Если при настройке службы аудита были правильно заданы события, которые требуется отслеживать, то подробный анализ записей в журнале может дать много полезной информации. Эта информация, возможно, позволит найти злоумышленника или, по крайней мере, предотвратить повторение подобных атак путем устранения уязвимых мест в системе защиты. 1.5.4. Технология защищенного канала Технология защищенного канала призвана обеспечивать безопасность передачи данных по открытой транспортной сети, например по Интернету. Защищенный канал подразумевает выполнение трех основных функций:  взаимную аутентификацию абонентов при установлении соединения, которая может быть выполнена, например, путем обмена паролями;  защиту передаваемых по каналу сообщений от несанкционированного доступа, например, путем шифрования;  подтверждение целостности поступающих по каналу сообщений, например, путем передачи одновременно с сообщением его дайджеста. Совокупность защищенных каналов, созданных предприятием в публичной сети для объединения своих филиалов, часто называют виртуальной частной сетью (Virtual Private Network, VPN). 19 Существуют разные реализации технологии защищенного канала, которые, в частности, могут работать на разных уровнях модели OSI. Так, функции популярного протокола SSL соответствуют представительному уровню модели OSI. Новая версия сетевого протокола IP предусматривает все функции – взаимную аутентификацию, шифрование и обеспечение целостности, – которые по определению свойственны защищенному каналу, а протокол туннелирования РРТР защищает данные на канальном уровне. В зависимости от места расположения программного обеспечения защищенного канала различают две схемы его образования:  схему с конечными узлами, взаимодействующими через публичную сеть (Рис. 1.2, а);  схему с оборудованием поставщика услуг публичной сети, расположенным на границе между частной и публичной сетями (Рис. 1.2, б). В первом случае защищенный канал образуется программными средствами, установленными на двух удаленных компьютерах, принадлежащих двум разным локальным сетям одного предприятия и связанных между собой через публичную сеть. Преимуществом этого подхода является полная защищенность канала вдоль всего пути следования, а также возможность использования любых протоколов создания защищенных каналов, лишь бы на конечных точках канала поддерживался один и тот же протокол. Недостатки заключаются в избыточности и децентрализованности решения. Избыточность состоит в том, что вряд ли стоит создавать защищенный канал на всем пути прохождения данных: уязвимыми для злоумышленников обычно являются сети с коммутацией пакетов, а не каналы телефонной сети или выделенные каналы, через которые локальные сети подключены к территориальной сети. Поэтому защиту каналов доступа к публичной сети можно считать избыточной. Децентрализация заключается в том, что для каждого компьютера, которому требуется предоставить услуги защищенного канала, необходимо отдельно устанавливать, конфигурировать и администрировать программные средства защиты данных. Подключение каждого нового компьютера к защищенному каналу требует выполнения этих трудоемких работ заново. 20 Рисунок 1.2 – Два способа образования защищенного канала Во втором случае клиенты и серверы не участвуют в создании защищенного канала – он прокладывается только внутри публичной сети с коммутацией пакетов, например, внутри Интернета. Канал может быть проложен, например, между сервером удаленного доступа поставщика услуг публичной сети и пограничным маршрутизатором корпоративной сети. Это хорошо масштабируемое решение, управляемое централизованно как администратором корпоративной сети, так и администратором сети поставщика услуг. Для компьютеров корпоративной сети канал прозрачен – программное обеспечение этих конечных узлов остается без изменений. Такой гибкий подход позволяет легко образовывать новые каналы защищенного взаимодействия между компьютерами независимо от их места расположения. Реализация этого подхода сложнее – нужен стандартный протокол образования защищенного канала, требуется установка у всех поставщиков услуг программного обеспечения, поддерживающего такой протокол, необходима поддержка протокола производителями пограничного коммуникационного оборудования. Однако вариант, когда все заботы по поддержании защищенного канала берет на себя поставщик услуг публичной сети, оставляет сомнения в надежности защиты: во-первых, незащищенными оказываются каналы доступа к публичной сети, во-вторых, потребитель услуг чувствует себя в полной зависимости от надежности поставщика услуг. И, тем не менее, специалисты прогнозируют, что именно вторая схема в ближайшем будущем станет основной в построении защищенных каналов. 21 7. ПРИНЦИПЫ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ Криптография представляет собой совокупность методов преобразования данных, направленных на то, чтобы сделать эти данные недоступными для противника. Такие преобразования позволяют решить две главные проблемы защиты данных: проблему конфиденциальности (путем лишения противника возможности извлечь информацию из канала связи) и проблему целостности (путем лишения противника возможности изменить сообщение так, чтобы изменился его смысл, или ввести ложную информацию в канал связи). Проблемы конфиденциальности и целостности информации тесно связаны между собой, поэтому методы решения одной из них часто применимы для решения другой. 2.1.Схема симметричной криптосистемы Обобщенная схема криптографической системы, обеспечивающей шифрование передаваемой информации, показана на рис.2.1. К М Отправитель С Шифрование ЕК (М) М Расшифрование DК (С) Получатель Перехватчик Рисунок 2.1 – Обобщенная схема криптосистемы Отправитель генерирует открытый текст исходного сообщения М, которое должно быть передано законному получателю по незащищенному каналу. За каналом следит перехватчик с целью перехватить и раскрыть передаваемое сообщение. Для того чтобы перехватчик не смог узнать содержание сообщения М, отправитель шифрует его с помощью обратимого преобразования ЕК и получает шифртекст (или криптограмму) С = ЕК (М), который отправляет получателю. Законный получатель, приняв шифртекст С, расшифровы-вает его с помощью обратного преобразования D = ЕК–1 и получает исходное сообщение в виде открытого текста М: 22 DK (C) = ЕК–1 (ЕК (М)) = M. Преобразование ЕК выбирается из семейства криптографических преобразований, называемых криптоалгоритмами. Параметр, с помощью которого выбирается отдельное используемое преобразование, называется криптографическим ключом К. Криптосистема имеет разные варианты реализации: набор инструкций, аппаратные средства, комплекс программ компьютера, которые позволяют зашифровать открытый текст и расшифровать шифр-текст различными способами, один из которых выбирается с помощью конкретного ключа К. Криптографическая система – это однопараметрическое семейство (E K )KK обратимых преобразований ЕК : M  C из пространства M сообщений открытого текста в пространство C шифрованных текстов. Параметр К (ключ) выбирается из конечного множества K , называемого пространством ключей. Преобразование шифрования может быть симметричным или асимметричным относительно преобразования расшифрования. Это важное свойство функции преобразования определяет два класса криптосистем:  симметричные (одноключевые) криптосистемы;  асимметричные (двухключевые) криптосистемы (с открытым ключом). Схема симметричной криптосистемы с одним секретным ключом показана на рис.2.1. В ней используются одинаковые секретные ключи в блоке шифрования и блоке расшифрования. 2.2.Схема асимметричной криптосистемы Обобщенная схема асимметричной криптосистемы с двумя разными ключами К1 и К2 показана на рис. 2.2. В этой криптосистеме один из ключей является открытым, а другой – секретным. К1 К2 М С М Отправитель Шифрование Расшифрование EK (M) DK (C) 1 Получатель 2 Перехватчик Рисунок 2.2 – Обобщенная схема асимметричной криптосистемы с открытым ключом В симметричной криптосистеме секретный ключ надо передавать отправителю и получателю по защищенному каналу распространения ключей, 23 например такому, как курьерская служба. На рис. 2.1 этот канал показан "экранированной" линией. Существуют и другие способы распределения секретных ключей, они будут рассмотрены позднее. В асимметричной криптосистеме передают по незащищенному каналу только открытый ключ, а секретный ключ сохраняют на месте его генерации. На рис. 2.3 показан поток информации в криптосистеме в случае активных действий перехватчика. Активный перехватчик не только считывает все шифртексты, передаваемые по каналу, но может также пытаться изменять их по своему усмотрению. Любая попытка со стороны перехватчика расшифровать шифртекст С для получения открытого текста М или зашифровать свой собственный текст М’ для получения правдоподобного шифртекста С’, не имея подлинного ключа, называется крипто-аналитической атакой. К М’ М Отправитель Шифрование ЕK (М) С Расшифрование DК (С) Перехватчик Получатель С’ Рисунок 2.3 – Поток информации в криптосистеме при активном перехвате сообщений Если предпринятые криптоаналитические атаки не достигают поставленной цели и криптоаналитик не может, не имея подлинного ключа, вывести М из С или С’ из М’, то считается, что такая криптосистема является криптостойкой. Криптоанализ – это наука о раскрытии исходного текста зашифрованного сообщения без доступа к ключу. Успешный анализ может раскрыть исходный текст или ключ. Он позволяет также обнаружить слабые места в криптосистеме, что, в конечном счете, ведет к тем же результатам. Фундаментальное правило криптоанализа, впервые сформулированное голландцем А.Керкхоффом еще в XIX веке заключается в том, что стойкость шифра (криптосистемы) должна определяться только секретностью ключа. Иными словами, правило Керкхоффа состоит в том, что весь алгоритм шифрования, кроме значения секретного ключа, известен криптоаналитику противника. Это обусловлено тем, что криптосистема, реализующая семейство криптографических преобразований, обычно рассматривается как открытая система. 24 2.3.Аппаратно-программные средства защиты компьютерной информации Аппаратно-программные средства, обеспечивающие повышенный уровень защиты можно разбить на пять основных групп (Рис. 2.4). Первую группу образуют системы идентификации и аутентификации пользователей. Такие системы применяются для ограничения доступа случайных и незаконных пользователей к ресурсам компьютерной системы. Общий алгоритм работы этих систем заключается в том, чтобы получить от пользователя информацию, удостоверяющую его личность, проверить ее подлинность и затем предоставить (или не предоставить) этому пользователю возможность работы с системой. При построении подобных систем возникает проблема выбора информации, на основе которой осуществляются процедуры идентификации и аутентификации пользователя. Можно выделить следующие типы: (1) секретная информация, которой обладает пользователь (пароль, персональный идентификатор, секретный ключ и т.п.); эту информацию пользователь должен запомнить или же могут быть применены специальные средства хранения этой информации); (2) физиологические параметры человека (отпечатки пальцев, рисунок радужной оболочки глаза и т.п.) или особенности поведения человека (особенности работы на клавиатуре и т.п.). Системы идентификации, основанные на первом типе информации, принято считать традиционными. Системы идентификации, использующие второй тип информации, называются биометрическими. Вторую группу средств, обеспечивающих повышенный уровень защиты, составляют системы шифрования дисковых данных. Основная задача, решаемая такими системами, состоит в защите от несанкционированного использования данных, расположенных на магнитных носителях. Обеспечение конфиденциальности данных, располагаемых на магнитных носителях, осуществляется путем их шифрования с использованием симметричных алгоритмов шифрования. Основным классификационным признаком для комплексов шифрования служит уровень их встраивания в компьютерную систему. Работа прикладных программ с дисковыми накопителями состоит из двух этапов – “логического” и “физического”. Логический этап соответствует уровню взаимодействия прикладной программы с операционной системой (например, вызов сервисных функций чтения/записи данных). На этом уровне основным объектом является файл. Физический этап соответствует уровню взаимодействия операционной системы и аппаратуры. В качестве объектов этого уровня выступают структуры физической организации данных - сектора диска. В результате, системы шифрования данных могут осуществлять криптографические преобразования данных на уровне файлов (защищаются отдельные файлы) и на уровне дисков (защищаются диски целиком). Другим классификационным признаком систем шифрования дисковых данных является способ их функционирования. 25 По способу функционирования системы шифрования дисковых данных делят на два класса: (1) системы “прозрачного” шифрования; (2) системы, специально вызываемые для осуществления шифрования. Аппаратно-программные средства защиты информации Системы идентификации и аутентификации пользователей Системы шифрования дисковых данных Системы шифрования данных, передаваемых по сетям Системы аутентификации электронных данных Средства управления ключевой информацией Рисунок 2.4 – Аппаратно-программные средства защиты компьютерной информации В системах прозрачного шифрования (шифрования “на лету”) криптографические преобразования осуществляются в режиме реального времени, незаметно для пользователя. Например, пользователь записывает подготовленный в текстовом редакторе документ на защищаемый диск, а система защиты в процессе записи выполняет его шифрование. Системы второго класса обычно представляют собой утилиты, которые необходимо специально вызывать для выполнения шифрования. К ним относятся, например, архиваторы со встроенными средствами парольной защиты. К третьей группе средств относятся системы шифрования данных, передаваемых по компьютерным сетям. Различают два основных способа шифрования: канальное шифрование и оконечное (абонентское) шифрование. В случае канального шифрования защищается вся передаваемая по каналу связи информация, включая служебную. Соответствующие процедуры шифрования реализуются с помощью протокола канального уровня семиуровневой эталонной модели взаимодействия открытых систем OSI. 26 Этот способ шифрования обладает следующим достоинством - встраивание процедур шифрования на канальный уровень позволяет использовать аппаратные средства, что способствует повышению производительности системы. Однако, у данного подхода имеются существенные недостатки: - шифрованию на данном уровне подлежит вся информация, включая служебные данные транспортных протоколов; это осложняет механизм маршрутизации сетевых пакетов и требует расшифрования данных в устройствах промежуточной коммутации (шлюзах, ретрансляторах и т.п.); - шифрование служебной информации, неизбежное на данном уровне, может привести к появлению статистических закономерностей в шифрованных данных; это влияет на надежность защиты и накладывает ограничения на использование криптографических алгоритмов. Оконечное (абонентское) шифрование позволяет обеспечить конфиденциальность данных, передаваемых между двумя прикладными объектами (абонентами). Оконечное шифрование реализуется с помощью протокола прикладного или представительного уровня эталонной модели OSI. В этом случае защищенным оказывается только содержание сообщения, вся служебная информация остается открытой. Данный способ позволяет избежать проблем, связанных с шифрованием служебной информации, но при этом возникают другие проблемы. В частности, злоумышленник, имеющий доступ к каналам связи компьютерной сети, получает возможность анализировать информацию о структуре обмена сообщениями, например, об отправителе и получателе, о времени и условиях передачи данных, а также об объеме передаваемых данных. Четвертую группу средств защиты составляют системы аутентификации электронных данных. При обмене электронными данными по сетям связи возникает проблема аутентификации автора документа и самого документа, т.е. установление подлинности автора и проверка отсутствия изменений в полученном документе. Для аутентификации электронных данных применяют код аутентификации сообщения (имитовставку) или электронную цифровую подпись. При формировании кода аутентификации сообщения и электронной цифровой подписи используются разные типы систем шифрования. Код аутентификации сообщения МАС (Message Authentication Code) формируют с помощью симметричных систем шифрования данных. Проверка целостности принятого сообщения осуществляется путем проверки кода MAC получателем сообщения. В отечественном стандарте симметричного шифрования данных (ГОСТ 28147-89) предусмотрен режим выработки имитовставки, обеспечивающий имитозащиту, т.е. защиту системы шифрованной связи от навязывания ложных данных. Имитовставка вырабатывается из открытых данных посредством специального преобразования шифрования с использованием секретного ключа 27 и передается по каналу связи в конце зашифрованных данных. Имитовставка проверяется получателем сообщения, владеющим секретным ключом, путем повторения процедуры, выполненной ранее отправителем, над полученными открытыми данными. Электронная цифровая подпись (ЭЦП) представляет собой относительно небольшое количество дополнительной аутентифицирующей цифровой информации, передаваемой вместе с подписываемым текстом. Для реализации ЭЦП используются принципы асимметричного шифрования. Система ЭЦП включает процедуру формирования цифровой подписи отправителем с использованием секретного ключа отправителя и процедуру проверки подписи получателем с использованием открытого ключа отправителя. Пятую группу средств, обеспечивающих повышенный уровень защиты, образуют средства управления ключевой информацией. Под ключевой информацией понимается совокупность всех используемых в компьютерной системе или сети криптографических ключей. Безопасность любого криптографического алгоритма определяется используемыми криптографическими ключами. В случае ненадежного управления ключами злоумышленник может завладеть ключевой информацией и получить полный доступ ко всей информации в компьютерной системе или сети. Основным классификационным признаком средств управления ключевой информацией является вид функции управления ключами. Различают следующие основные виды функций управления ключами: генерация ключей, хранение ключей и распределение ключей. Способы генерации ключей различаются для симметричных и асимметричных криптосистем. Для генерации ключей симметричных криптосистем используются аппаратные и программные средства генерации случайных чисел, в частности, схемы с применением блочного симметричного алгоритма шифрования. Генерация ключей для асимметричных криптосистем представляет существенно более сложную задачу в связи с необходимостью получения ключей с определенными математическими свойствами. Функция хранения ключей предполагает организацию безопасного хранения, учета и удаления ключей. Для обеспечения безопасного хранения и передачи ключей применяют их шифрование с помощью других ключей. Такой подход приводит к концепции иерархии ключей. В иерархию ключей обычно входят главный ключ (мастер-ключ), ключ шифрования ключей и ключ шифрования данных. Следует отметить, что генерация и хранение мастер-ключей являются критическими вопросами криптографической защиты. Распределение ключей является самым ответственным процессом в управлении ключами. Этот процесс должен гарантировать скрытность распределяемых ключей, а также оперативность и точность их распределения. Различают два основных способа распределения ключей между пользователями компьютерной сети: 1) применение одного или нескольких центров распределения ключей; 2) прямой обмен сеансовыми ключами между пользователями. 28 3. СОВРЕМЕННЫЕ СИММЕТРИЧНЫЕ КРИПТОСИСТЕМЫ Рассеивание представляет собой распространение влияния одного знака открытого текста на много знаков шифртекста, что позволяет скрыть статистические свойства открытого текста. Перемешивание предполагает использование таких шифрующих преобразований, которые усложняют восстановление взаимосвязи статистических свойств открытого и шифрованного текстов. Однако шифр должен не только затруднять раскрытие, но и обеспечивать легкость зашифрования и расшифрования при известном пользователю секретном ключе. Распространенным способом достижения эффектов рассеивания и перемешивания является использование составного шифра, т.е. такого шифра, который может быть реализован в виде некоторой последовательности простых шифров, каждый из которых вносит свой вклад в значительное суммарное рассеивание и перемешивание. В составных шифрах в качестве простых шифров чаще всего используются простые перестановки и подстановки. При перестановке просто перемешивают символы открытого текста, причем конкретный вид перемешивания определяется секретным ключом. При подстановке каждый символ открытого текста заменяют другим символом из того же алфавита, а конкретный вид подстановки также определяется секретным ключом. Следует заметить, что в современном блочном шифре блоки открытого текста и шифртекста представляют собой двоичные последовательности обычно длиной 64 бита. В принципе каждый блок может принимать 264 значений. Поэтому подстановки выполняются в очень большом алфавите, содержащем 19 до 264 "символов". При многократном чередовании простых перестановок и подстановок, управляемых достаточно длинным секретным ключом, можно получить очень стойкий шифр с хорошим рассеиванием и перемешиванием. Рассмотренные ниже криптоалгоритмы DES, IDEA и отечественный стандарт шифрования данных построены в полном соответствии с указанной методологией. 3.1 Классическая сеть Фейстеля Сетью Фейстеля называется методика обратимых преобразований текста, при которой значение, вычисленное от одной из частей текста, накладывается на другие части. Сеть Фейстеля представляет собой модификацию метода смешивания текущей части шифруемого блока с результатом некоторой функции, вычисленное от другой независимой части того же блока. Эта методика обеспечивает выполнение важного требования о многократном использовании ключа и материала исходного блока информации. Часто структуру сети выполняют таким образом, чтобы использовать для шифрования и расшифрования один и тот же алгоритм. Структура классической сети Фейстеля показана на рис. 3.1 29 . Рисунок 3.1 – Структура классической сети Фейстеля Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме Фейстеля их две. Величины Vi называются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функциии и последующего наложения ее результата на другую ветвь с обменом местами называется циклом или раундом сети Фейстеля. Оптимальное число раундов K − от 8 до 32. Увеличение количества раундов значительно повышает криптостойкость любого симметричного блочного шифра. Благодаря этой особенности сети Фейстеля получили широкое распространение – при обнаружении слабого места в алгоритме почти всегда достаточно не переписывая сам алгоритм увеличить количество раундов на 4-8. В соответствии с описанной методикой построены блочные симметричные криптоалгоритмы DES, IDEA, ГОСТ 28147-89 и ряд других алгоритмов. 3.2. Американский стандарт шифрования данных DES Стандарт шифрования данных DES (Data Encryption Standard) опубликован в 1977 г. Национальным бюро стандартов США. Стандарт DES предназначен для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США. Алгоритм, положенный в основу стандарта, распространялся достаточно быстро, и уже в 1980 г. был одобрен Национальным институтом стандартов и технологий США (НИСТ). С этого момента DES превращается в стандарт не только по названию (Data Encryption Standard), но и фактически. Появляются программное обеспечение и специализированные микроЭВМ, предна30 значенные для шифрования и расшифрования информации в сетях передачи данных. К настоящему времени DES является наиболее распространенным алгоритмом, используемым в системах защиты коммерческой информации. Более того, реализация алгоритма DES в таких системах становится признаком хорошего тона. Основные достоинства алгоритма DES:  используется только один ключ длиной 56 бит;  зашифровав сообщение с помощью одного пакета программ, для расшифровки можно использовать любой другой пакет программ, соответствующий стандарту DES;  относительная простота алгоритма обеспечивает высокую скорость обработки;  достаточно высокая стойкость алгоритма. Алгоритм DES использует комбинацию подстановок и перестановок. DES осуществляет шифрование 64-битовых блоков данных с помощью 64битового ключа, в котором значащими являются 56 бит (остальные 8 бит – проверочные биты для контроля на четность). Дешифрование в DES является операцией, обратной шифрованию, и выполняется путем повторения операций шифрования в обратной последовательности. Обобщенная схема процесса шифрования в алгоритме DES показана на 3.2. Процесс шифрования заключается в начальной перестановке битов 64-битового блока, шестнадцати циклах шифрования и, наконец, в конечной перестановке битов. Исходный текст Начальная перестановка 16 раз Шифрование ключ Конечная перестановка Шифртекст Рисунок 3.2 – Обобщенная схема шифрования в алгоритме DES Все приводимые таблицы являются стандартными и должны включаться в реализацию алгоритма DES в неизменном виде. Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа. При описании алгоритма DES (рис. 3.3) применены следующие обозначения: 31 L и R – последовательности битов (левая (left) и правая (right)); Входная последовательность битов 1,2,... 64 Начальная перестановка Р L0 R0 1,2,... 32 1,2,... 32 K1 f R1 = L0 Å f(R0,K1) L 1 = R0 K2 f R2 = L1 Å f(R1,K2) L2 = R1 Ki f R15 = L14 Å f(R14,K15) L15 = R14 K16 f R14 = L15 Å f(R15,K16) L16 = R15 Конечная перестановка IР -1 Выходная последовательность битов (шифртекст) 1,2,... 64 Рисунок 3.3 – Структура алгоритма DES LR – конкатенация последовательностей L и R, т.е. такая последовательность битов, длина которой равна сумме длин L и R; в последовательности LR биты последовательности R следуют за битами последовательности L; – операция побитового сложения по модулю 2. Пусть из файла исходного текста считан очередной 64-битовый (8байтовый) блок Т. Этот блок Т преобразуется с помощью матрицы начальной перестановки IP (табл. 3.1). Таблица 3.1 Матрица начальной перестановки IP 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7 Биты входного блока Т (64 бита) переставляются в соответствии с матрицей IP: бит 58 входного блока Т становится битом 1, бит 50 – битом 2 и т.д. Эту перестановку можно описать выражением Т0 = IP(T). Полученная после32 довательность битов Т0 разделяется на две последовательности: L0 – левые или старшие биты, R0 – правые или младшие биты, каждая из которых содер-жит 32 бита. Затем выполняется итеративный процесс шифрования, состоящий из 16 шагов (циклов). Пусть Тi – результат i-й итерации: Тi = Li Ri, где Li = t1 t2 ... t32 (первые 32 бита); Ri = t33 t34 ... t64 (последние 32 бита). Тогда результат i-й итерации описывается следующими формулами: Li = Ri–1, i = 1, 2, ..., 16; Ri = Li–1 f (Ri–1, Ki), i = 1, 2, ..., 16. Функция f называется функцией шифрования. Ее аргументами являются последовательность Ri–1, получаемая на предыдущем шаге итерации, и 48-битовый ключ Кi, который является результатом преобразования 64битового ключа шифра К. (Подробнее функция шифрования f и алгоритм получения ключа Кi описаны ниже.) На последнем шаге итерации получают последовательности R16 и L16 (без перестановки местами), которые конкатенируются в 64-битовую последовательность R16 L16. По окончании шифрования осуществляется восстановление позиций битов с помощью матрицы обратной перестановки IP–1 (табл.3.2). 33 Матрица обратной перестановки IP 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 17 64 63 62 61 60 59 58 57 –1 Таблица 3.2 32 31 30 29 28 27 26 25 Пример того, как соотносятся элементы первой строки матрицы IP–1 с элементами матрицы IP приведен в табл. 3.3. Таблица 3.3 Связь элементов матриц Элемент матрицы IP–1 40 8 48 16 56 ... Элемент матрицы IP 01 02 03 04 05 ... Процесс расшифрования данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в обратном порядке. Это означает, что расшифровываемые данные сначала переставляются в соответствии с матрицей IP–1, а затем над последовательностью битов R16L16 выполняются те же действия, что и в процессе шифрования, но в обратном порядке. Итеративный процесс расшифрования может быть описан следующими формулами: Ri–1 = Li, i = 1, 2, ..., 16; Li–1 = Ri f (Li, Ki), i = 1, 2, ..., 16. Таким образом, для процесса расшифрования с переставленным входным блоком R16L16 на первой итерации используется ключ К16, на второй итерации – К15 и т.д. На 16-й итерации используется ключ К1. На последнем шаге итерации будут получены последовательности L0 и R0, которые конкатенируются в 64-битовую последовательность L0R0. Затем в этой последовательности 64 бита переставляются в соответствии с матрицей IP. Результат такого преобразования – исходная последовательность битов (расшифрованное 64-битовое значение). Теперь рассмотрим, что скрывается под преобразованием, обозначенным буквой f. Схема вычисления функции шифрования f (Ri–1,Ki) показана на рис. 3.4. 34 Ri–1 (32 бита) Расширитель E 48 бит S1 S2 S3 S4 S5 Кi (48 бит) S6 S7 S8 Перестановка битов Р 32 бита f (Ri–1 ,Кi ) Рисунок 3.4 – Схема вычисления функции шифрования f Для вычисления значения функции f используются:  функция Е (расширение 32 бит до 48);  функция S1, S2, ..., S8 (преобразование 6-битового числа в 4-битовое);  функция Р (перестановка битов в 32-битовой последовательности). Приведем определения этих функций. Аргументами функции шифрования f являются Ri–1 (32 бита) и Ki (48 бит). Результат функции Е (Ri–1) есть 48-битовое число. Функция расширения Е, выполняющая расширение 32 бит до 48 (принимает блок из 32 бит и порождает блок из 48 бит), определяется табл. 3.4. В соответствии с табл. 3.4 первые три бита E (Ri–1) – это биты 32, 1 и 2, а последние – 31, 32, 1. Полученный результат (обозначим его E(Ri–1)) складывается по модулю 2 (операция XOR) с текущим значением Таблица 3.4 Функция расширения E 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 ключа Кi и затем разбивается на восемь 6-битовых блоков В1, В2, ..., В8: Е (Ri–1 i = В1 В2 ... В8. 35 Далее каждый из этих блоков используется как номер элемента в функциях-матрицах S1, S2, ..., S8, содержащих 4-битовые значения (табл. 3.5). Таблица 3.5 Н о м е р с т р о к и 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Функции преобразования S1, S2, ..., S8 Номер столбца 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 S1 4 1 4 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 S2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 S3 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 S4 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 S5 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 S6 9 14 15 5 2 8 12 3 7 0 4 10 1 13 1 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 S7 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 S8 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 Следует отметить, что выбор элемента в матрице Sj осуществляется достаточно оригинальным образом. Пусть на вxод матрицы Sj поступает 6битовый блок Bj = b1 b2 b3 b4 b5 b6, тогда двухбитовое число b1 b6 указывает номер строки матрицы, а четырехбитовое число b2 b3 b4 b5 – номер столбца. Например, если на вход матрицы S1 поступает 6-битовый блок В1= b1 b2 b3 b4 b5 b6 = 100110, то 2-битовое число b1 b6 = 10(2) = 2(10) указывает строку с номером 2 матрицы S1, а 4-битовое число b2 b3 b4 b5=0011(2)=3(10) указывает столбец с номером 3 матрицы S1. Это означает, что в матрице S1 блок В1 = 100110 выбирает элемент на пересечении строки с номером 2 и столбца с номером 3, т.е. элемент 8(10) = 36 =1000(2). Совокупность 6-битовых блоков В1, В2,..., В8 обеспечивает выбор четырехбитового элемента в каждой из матриц S1, S2, ..., S8. В результате получаем S1(В1) S2(В2) S3(В3) ... S8(В8), т.е. 32-битовый блок (поскольку матрицы Sj содержат 4-битовые элементы). Этот 32-битовый блок преобразуется с помощью функции перестановки битов Р (табл.3.6). Таким образом, функция шифрования f (Ri–1, Ki) = P(S1(B1), ..., S8(B8)). Как нетрудно заметить, на каждой итерации используется новое значение ключа Кi (длиной 48 бит). Новое значение ключа Кi вычисляется из начального ключа К (рис.3.5). Ключ К представляет собой 64-битовый блок с 8 битами контроля по четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64. Для удаления контрольных битов и подготовки ключа к работе используется функция G первоначальной подготовки ключа (табл. 3.7). Ключ К Функция С0 (28 бит) Сдвиг влево С1 Сдвиг влево С2 Сдвиг влево С16 G D0 (28 бит) Сдвиг влево D1 Функция H К1 Сдвиг влево D2 Функция H К2 Сдвиг влево D16 Функция H К16 Табл. 3.7 разделена на две части. Результат преобразования G(K) разбивается на две половины С0 и D0 по 28 бит каждая. Первые четыре строки матрицы G определяют, как выбираются биты последовательности С0 (первым битом С0 будет бит 57 ключа шифра, затем бит 49 и т.д., а последними битами – биты 44 и 36 ключа). Рисунок 3.5 – Схема алгоритма вычисления ключей Ki Таблица 3.6 Функция P перестановки битов Таблица 3.7 Функция G первоначальной подготовки ключа (переставленная выборка 1) 37 16 29 1 5 2 32 19 22 7 12 15 18 8 27 13 11 20 28 23 31 24 3 30 4 21 17 26 10 14 9 6 25 57 1 10 19 63 7 14 21 49 58 2 11 55 62 6 13 41 50 59 3 47 54 61 5 33 42 51 60 39 46 53 28 25 34 43 52 31 38 45 20 17 26 35 44 23 30 37 12 9 18 27 36 15 22 29 4 Следующие четыре строки матрицы G определяют, как выбираются биты последовательности D0 (т.е. последовательность D0 будет состоять из битов 63, 55, 47, ...,12, 4 ключа шифра). Как видно из табл. 3.7, для генерации последовательностей С0 и D0 не используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут служить для других целей (например, для контроля по четности). Таким образом, в действительности ключ шифра является 56-битовым. После определения С0 и D0 рекурсивно определяются Сi и Di, I = 1, 2, ..., 16. Для этого применяются операции циклического сдвига влево на один или два бита в зависимости от номера шага итерации, как показано в табл. 3.8. Операции сдвига выполняются для последовательностей Сi и Di независимо. Например, последовательность С3 получается посредством циклического сдвига влево на две позиции последовательности С2, а последовательность D3 – посредством сдвига влево на две позиции последовательности D2, С16 и D16 получаются из С15 и D15 посредством сдвига влево на одну позицию. Таблица 3.8 Таблица сдвигов si для вычисления ключа Количество si Номер сдвигов влево, итерации бит 1 2 3 4 5 6 7 8 1 1 2 2 2 2 2 2 Номер итераци и 9 10 11 12 13 14 15 16 Количество si сдвигов влево, бит 1 2 2 2 2 2 2 1 Ключ Кi, определяемый на каждом шаге итерации, есть результат выбора конкретных битов из 56-битовой последовательности Сi Di и их перестановки. Другими словами, ключ Кi=H(Сi Di), где функция H определяется матрицей, завершающей обработку ключа (табл. 3.9). 38 Таблица 3.9 Функция H завершающей обработки ключа (переставленная выборка 2) 14 3 23 16 41 30 44 46 17 28 19 7 52 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32 Как следует из табл.3.9, первым битом ключа Кi будет 14-й бит последовательности Сi Di, вторым – 17-й бит, 47-м битом ключа Кi будет 29-й бит Сi Di, а 48-м битом – 32-й бит Сi Di. 3.2.1. Основные режимы работы алгоритма DES Алгоритм DES вполне подходит как для шифрования, так и для аутентификации данных. Он позволяет непосредственно преобразовывать 64битовый входной открытый текст в 64-битовый выходной шифрованный текст, однако данные редко ограничиваются 64 разрядами. Чтобы воспользоваться алгоритмом DES для решения разнообразных криптографических задач, разработаны четыре рабочих режима:  электронная кодовая книга ECB (Electronic Code Book);  сцепление блоков шифра CBC (Cipher Block Chaining);  обратная связь по шифртексту CFB (Cipher Feed Back);  обратная связь по выходу OFB (Output Feed Back). Режим "Электронная кодовая книга" Длинный файл разбивают на 64-битовые отрезки (блоки) по 8 байтов. Каждый из этих блоков шифруют независимо с использованием одного и того же ключа шифрования (рис.3.6). Основное достоинство – простота реализации. Недостаток – относительно слабая устойчивость против квалифицированных криптоаналитиков. Из-за фиксированного характера шифрования при ограниченной длине блока 64 бита возможно проведение криптоанализа "со словарем". Блок такого размера может повториться в сообщении вследствие большой избыточности в тексте на естественном языке. 39 М1 64 DES М2 64 DES . .. . .. Мn 64 DES С1 64 С2 64 . .. Сn 64 С1 64 С2 64 . .. Сn 64 DES М1 64 DES М2 64 . .. . .. DES Мn Шифрование Расшифрование 64 Рисунок 3.6 – Схема алгоритма DES в режиме электронной кодовой книги Это приводит к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками шифртекста, что дает криптоаналитику некоторую информацию о содержании сообщения. Режим "Сцепление блоков шифра" В этом режиме исходный файл М разбивается на 64-битовые блоки: М = М1М2...Мn. Первый блок М1 складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется ежедневно и держится в секрете (рис.3.7). Полученная сумма затем шифруется с использованием ключа DES, известного и отправителю, и получателю информации. Полученный 64битовый шифр С1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64-битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста. Таким образом, для всех i = 1…n (n – число блоков) результат шифрования Сi определяется следующим образом: Сi = =DES (Мi i–1), где С0 = IV – начальное значение шифра, равное начальному вектору (вектору инициализации). Очевидно, что последний 64-битовый блок шифртекста является функцией секретного ключа, начального вектора и каждого бита 40 IV IV 64 64 М1 64 М2 64 М3 64 DES Шифрование DES Шифрование DES Шифрование С1 64 С2 64 С3 64 С1 64 С2 64 С3 64 DES DES DES Расшифрование Расшифрование Расшифрование М1 64 М2 64 М3 64 Рисунок 3.7 – Схема алгоритма DES в режиме сцепления блоков шифра открытого текста независимо от его длины. Этот блок шифртекста называют кодом аутентификации сообщения (КАС). Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением. Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче. Блок Мi является функцией только Сi–1 и Сi. Поэтому ошибка при передаче приведет к потере только двух блоков исходно-го текста. Режим "Обратная связь по шифру" В этом режиме размер блока может отличаться от 64 бит (рис.3.8). Файл, подлежащий шифрованию (расшифрованию), считывается последовательными блоками длиной k битов (k =1…64). Входной блок (64-битовый регистр сдвига) вначале содержит вектор инициализации, выровненный по правому краю. Предположим, что в результате разбиения на блоки мы получили n блоков длиной k битов каждый (остаток дописывается нулями или пробелами). Тогда для любого i =1…n блок шифр-текста С i = Mi i–1, где Рi–1 обозначает k старших битов предыдущего зашифрованного блока. Обновление сдвигового регистра осуществляется путем удаления его старших k битов и записи Сi в регистр. Восстановление зашифрованных данных также выполняется относительно просто: Рi–1 и Сi вычисляются аналогичным образом и 41 Мi=Сi Шифрование Рi–1. Расшифрование Сдвиг Вх. блок 64– k Сдвиг 1k DES шифрование Вых. блок k 64– k k Обратная связь k бит Обратная связь k бит 64- k 1k 64- k 1k Шифртекст k бит k 1 Вх. блок DES шифрование k 1k k Вых. блок Шифртекст k бит k 1 Открытый текст k бит 1 k Открытый текст k бит 1 k Рисунок 3.8 – Схема алгоритма DES в режиме обратной связи по шифртексту Режим "Обратная связь по выходу" Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме СFB, а именно – входной блок вначале содержит вектор инициализации IV, выровненный по правому краю (рис.3.9). При этом для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом. Положим М = М 1 М 2 ... Mn. Для всех i = 1… n Сi=Mi i, где Рi – старшие k битов операции DES (Сi–1). Отличие от режима обратной связи по шифртексту состоит в методе обновления сдвигового регистра. Это осуществляется путем отбрасывания старших k битов и дописывания справа Рi. 42 Шифрование Расшифрование Сдвиг Вх. блок Сдвиг 64– k 64– k k 1k DES шифрование Вых. блок k Обратная связь k бит Обратная связь k бит 1k k 1k k Вых. блок Шифртекст k бит 1 k Открытый текст k бит 1 64- k 1k 1 Вх. блок DES шифрование 64- k Шифртекст k бит k k Открытый текст k бит 1 k Рисунок 3.9 – Схема алгоритма DES в режиме обратной связи по выходу 3.3. Области применения алгоритма DES Каждому из рассмотренных режимов (ЕСВ, СВС, CFB, OFB) свойственны свои достоинства и недостатки, что обусловливает области их применения. Режим ЕСВ хорошо подходит для шифрования ключей: режим CFB, как правило, предназначается для шифрования отдельных символов, а режим OFB нередко применяется для шифрования в спутниковых системах связи. Режимы СВС и CFB пригодны для аутентификации данных. Эти режимы позволяют использовать алгоритм DES для:  интерактивного шифрования при обмене данными между терминалом и главной ЭВМ;  шифрования криптографического ключа в практике автоматизированного распространения ключей;  шифрования файлов, почтовых отправлений, данных спутников и других практических задач. Первоначально стандарт DES предназначался для шифрования и расшифрования данных ЭВМ. Однако его применение было обобщено и на аутентификацию. В системах автоматической обработки данных человек не в состоянии просмотреть данные, чтобы установить, не внесены ли в них какие-либо изменения. При огромных объемах данных, проходящих в современных системах обработки, просмотр занял бы слишком много времени. К тому же избыточность данных может оказаться недостаточной для обнаружения ошибок. Даже в тех случаях, когда просмотр человеком возможен, данные могут быть изменены таким образом, что обнаружить эти изменения человеку очень трудно. Например, "do" может быть заменено на "do not", "$1900" – на 43 "$9100". Без дополнительной информации человек при просмотре может легко принять измененные данные за подлинные. Такие опасности могут существовать даже при использовании шифрования данных. Поэтому желательно иметь автоматическое средство обнаружения преднамеренных и непреднамеренных изменений данных. Обыкновенные коды, обнаруживающие ошибки, непригодны, так как если алгоритм образования кода известен, противник может выработать правильный код после внесения изменений в данные. Однако с помощью алгоритма DES можно образовать криптографическую контрольную сумму, которая может защитить как от случайных, так и преднамеренных, но несанкционированных изменений данных. Этот процесс описывает стандарт для аутентификации данных ЭВМ (FIPS 113). Суть стандарта состоит в том, что данные зашифровываются в режиме обратной связи по шифртексту (режим CFB) или в режиме сцепления блоков шифра (режим СВС), в результате чего получается окончательный блок шифра, представляющий собой функцию всех разрядов открытого текста. После этого сообщение, которое содержит открытый текст, может быть передано с использованием вычисленного окончательного блока шифра, служащего в качестве криптографической контрольной суммы. Одни и те же данные можно защитить, пользуясь как шифрованием, так и аутентификацией. Данные защищаются от ознакомления шифрованием, а изменения обнаруживаются посредством аутентификации. Алгоритм аутентификации можно применить как к открытому, так и к зашифрованному тексту. При финансовых операциях, когда в большинстве случаев реализуются и шифрование, и аутентификация, последняя применяется и к открытому тексту. Шифрование и аутентификацию используют для защиты данных, хранящихся в ЭВМ. Во многих ЭВМ пароли зашифровывают необратимым образом и хранят в памяти машины. Когда пользователь обращается к ЭВМ и вводит пароль, последний зашифровывается и сравнивается с хранящимся значением. Если обе зашифрованные величины одинаковы, пользователь получает доступ к машине, в противном случае следует отказ. Нередко зашифрованный пароль вырабатывают с помощью алгоритма DES, причем ключ полагается равным паролю, а открытый текст – коду идентификации пользователя. С помощью алгоритма DES можно также зашифровать файлы ЭВМ для их хранения. Одним из наиболее важных применений алгоритма DES является защита сообщений электронной системы платежей (ЭСП) при операциях с широкой клиентурой и между банками. Алгоритм DES реализуется в банковских автоматах, терминалах в торговых точках, автоматизированных рабочих местах и главных ЭВМ. Диапазон защищаемых им данных весьма широк – от оплат $50 до переводов на многие миллионы долларов. Гибкость основного алгоритма DES позволяет использовать его в самых разнообразных областях применения электронной системы платежей. 44 3.4. Комбинирование блочных алгоритмов В настоящее время блочный алгоритм DES считается относительно безопасным алгоритмом шифрования. Он подвергался тщательному криптоанализу в течение 20 лет, и самым практичным способом его взламывания является метод перебора всех возможных вариантов ключа. Ключ DES имеет длину 56 бит, поэтому существует 256 возможных вариантов такого ключа. Если предположить, что суперкомпьютер может испытать миллион вариантов ключа за секунду, то потребуется 2285 лет для нахождения правильного ключа. Если бы ключ имел длину 128 бит, то потребовалось бы 1025 лет (для сравнения: возраст Вселенной около 1010 лет). Нетрудно представить себе, что при постоянном прогрессе возможностей компьютерной техники недалеко то время, когда машины поиска ключа DES методом полного перебора станут экономичными для мощных в финансовом отношении государственных и коммерческих организаций. Возникает естественный вопрос: нельзя ли использовать DES в качестве строительного блока для создания другого алгоритма с более длинным ключом? В принципе существует много способов комбинирования блочных алгоритмов для получения новых алгоритмов. Одним из таких способов комбинирования является многократное шифрование, т.е. использование блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста. Двухкратное шифрование блока открытого текста одним и тем же ключом не приводит к положительному результату. При использовании одного и того же алгоритма такое шифрование не влияет на сложность криптоаналитической атаки полного перебора. Рассмотрим эффективность двухкратного шифрования блока открытого текста с помощью двух разных ключей. Сначала шифруют блок Р ключом К1, а затем получившийся шифртекст ЕК1(Р) шифруют ключом К2. В результате двухкратного шифрования получают криптограмму С = ЕК2(ЕК1(Р)). Расшифрование является обратным процессом: Р = DК1(DК2(C)). Если блочный алгоритм обладает свойствами группы, то всегда найдется такой ключ К3, что С = ЕК2(ЕК1(Р)) = ЕК3(Р). Если же блочный алгоритм не является группой, то результирующий двухкратно шифрованный блок текста окажется намного сложнее для взламывания методом полного перебора вариантов. Вместо 2n попыток, где n – длина ключа в битах, потребуется 22n попыток. В частности, если n=64, то двухкратно зашифрованный блок текста потребует 2128 попыток для нахожде-ния ключа. Однако Р.Меркль и М.Хеллман показали на примере DES, что, используя метод "обмена времени на память" и криптоаналитическую атаку "встреча посредине", можно взломать такую схему двухкратного шифрования за 45 2n+1 попыток [34]. Хотя эта атака потребует очень большого объема памяти (для алгоритма с 56-битовым ключом потребуется 256 64-битовых блоков или 1017 бит памяти). Более привлекательную идею предложил У.Тачмен [125]. Суть этой идеи состоит в том, чтобы шифровать блок открытого текста Р три раза с помощью двух ключей К1 и К2 (рис.3.10). Процедура шифрования: С = ЕК1(DК2 (EК1(Р))), т.е. блок открытого текста Р сначала шифруется ключом К1, затем расшифровывается ключом К2 и окончательно зашифровывается ключом К1. Этот режим иногда называют режимом EDE (encrypt-decrypt-encrypt). Введение в данную схему операции расшифрования DК2 позволяет обеспечить совместимость этой схемы со схемой однократного использования алгоритма DES. Если в схеме трехкратного использования DES выбрать все ключи одинаковыми, то эта схема превращается в схему однократного использования DES. К1 P DES ЕК К2 A DES DК К1 B DES ЕК C Шифрование К1 C DES DК К2 B DES EК К1 A DES DК P Расшифрование Рисунок 3.10 – Схемы трехкратного применения алгоритма DES с двумя разными ключами Процедура расшифрования выполняется в обратном порядке: Р = DК1(ЕК2(DК1(C))), т.е. блок шифртекста С сначала расшифровывается ключом К1, затем зашифровывается ключом К2 и окончательно расшифровывается ключом К1. Если исходный блочный алгоритм имеет n-битовый ключ, то схема трехкратного шифрования имеет 2n-битовый ключ. Чередование ключей К1 и К2 позволяет предотвратить криптоаналитическую атаку "встреча посредине". Данная схема приводится в стандартах Х9.17 и ISO 8732 в качестве средства улучшения характеристик алгоритма DES. При трехкратном шифровании можно применить три различных ключа. При этом возрастает общая длина результирующего ключа. Процедуры шифрования и расшифрования описываются выражениями: С = ЕК3(DК2(EК1(P))), Р = DК1(ЕК2(DК3(C))). 46 Трехключевой вариант имеет еще большую стойкость. Очевидно, что если требуется повысить безопасность большого парка оборудования, использующего DES, то гораздо дешевле переключиться на схемы трехкратных DES, чем переходить на другой тип криптосхем. 3.5. Алгоритм шифрования данных IDEA Алгоритм IDEA (International Data Encryption Algorithm) является блочным шифром. Он оперирует 64-битовыми блоками открытого текста. Несомненным достоинством алгоритма IDEA является то, что его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для расшифрования. Первая версия алгоритма IDEA была предложена в 1990 г., ее авторы – Х.Лей и Дж.Мэсси. Первоначальное название алгоритма PES (Proposed Encryption Standard). Улучшенный вариант этого алгоритма, разработанный в 1991 г., получил название IPES (Improved Proposed Encryption Standard). В 1992 г. IPES изменил свое имя на IDEA. Как и большинство других блочных шифров, алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, причем все процессы легко реализуются аппаратными и программными средствами. В алгоритме IDEA используются следующие математические операции:  поразрядное сложение по модулю 2 (операция "исключающее ИЛИ"); опе сложение беззнаковых целых по модулю 216 (модуль 65536); операция обозначается как ⊞ ;  умножение целых по модулю (216+1) (модуль 65537), рассматриваемых как беззнаковые целые, за исключением того, что блок из 16 нулей рассматривается как 216; операция обозначается как ⊙. Все операции выполняются над 16-битовыми субблоками. Эти три операции несовместимы в том смысле, что:  никакая пара из этих трех операций не удовлетворяет ассоциативному закону, например a ⊞ (b a⊞  никакая пара из этих трех операций не удовлетворяет дистрибутивному закону, например a ⊞ (b⊙ a ⊞ b)⊙ (a ⊞ c). Комбинирование этих трех операций обеспечивает комплексное преобразование входа, существенно затрудняя крипто-анализ IDEA по сравнению с DES, который базируется исключительно на операции "исключающее ИЛИ". Общая схема алгоритма IDEA приведена на рис.3.11. 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле имеет место следующая последовательность операций: (1) ⊙ – умножение субблока Х1 и первого подключа. 47 ⊞ – сложение субблока Х2 и второго подключа. ⊞ – сложение субблока Х3 и третьего подключа. ⊙ – умножение субблока Х4 и четвертого подключа. – сложение результатов шагов (1) и (3). – сложение результатов шагов (2) и (4). ⊙ – умножение результата шага (5) и пятого подключа. ⊞ – сложение результатов шагов (6) и (7). ⊙ – умножение результата шага (8) с шестым подключом. ⊞ – сложение результатов шагов (7) и (9). – сложение результатов шагов (1) и (9). – сложение результатов шагов (3) и (9). – сложение результатов шагов (2) и (10). – сложение результатов шагов (4) и (10). Выходом цикла являются четыре субблока, которые получают как результаты выполнения шагов (11), (12), (13) и (14). В завершение цикла переставляют местами два внутренних субблока (за исключением последнего цикла), и в результате формируется вход для следующего цикла. X1 X2 X3 X4 (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) Z1 (1) Z2 (1) Z3 Z5 1-й цикл (1) Z4 (1) (9) Z6(1) Семь циклов Z1 (9) Z2 Y1 (9) Z3 Y2 (9) Завершение вывода Z4 Y3 (9) Y4 Обозначения: Xi – 16-битовый субблок открытого текста, i = 1…4 Yi – 16-битовый субблок шифртекста, i = 1…4 Zj(r) – 16-битовый подключ (субблок ключа), j = 1…6, r = 1…8 – поразрядное суммирование по модулю 2 16-битовых субблоков – сложение по модулю 216 16-битовых целых – умножение по модулю 216 16-битовых целых (с нулевым субблоком, соответствующим 216) 48 Рисунок 3.11 – Схема алгоритма IDEA (режим шифрования) После восьмого цикла осуществляют заключительное преобразование выхода: (1) ⊙ – умножение субблока Х1 и первого подключа. (2) ⊞ – сложение субблока Х2 и второго подключа. (3) ⊞ – сложение субблока Х3 и третьего подключа. (4) ⊙ – умножение субблока Х4 и четвертого подключа. Наконец, эти результирующие четыре субблока Y1…Y4 вновь объединяют для получения блока шифртекста. Создание подключей Zj также относительно несложно. Алгоритм использует всего 52 подключа (по шесть для каждого из восьми циклов и еще четыре для преобразования выхода). Сначала 128-битовый ключ делят на восемь 16-битовых подключей. Это – первые восемь подключей для алгоритма (шесть подключей – для первого цикла и первые два подключа – для второго цикла). Затем 128-битовый ключ циклически сдвигается влево на 25 бит и снова делится на восемь подключей. Первые четыре из них используют во втором цикле; последние четыре – в третьем цикле. Ключ снова циклически сдвигается влево еще на 25 бит для получения следующих восьми подключей и т.д., пока выполнение алгоритма не завершится. Расшифрование осуществляют аналогичным образом, за исключением того, что порядок использования подключей становится обратным, причем ряд значений подключей заменяется на обратные значения. Подключи расшифрования являются в основном либо аддитивными, либо мультипликативными обратными величинами подключей шифрования (табл.3.10). Для реализации алгоритма IDEA было принято предположение, что нулевой субблок равен 216= –1; при этом мультипликативная обратная величина от 0 равна 0 [121]. Вычисление значений мультипликативных обратных величин требует некоторых затрат, но это приходится делать только один раз для каждого ключа расшифрования. Алгоритм IDEA может работать в любом режиме блочного шифра, предусмотренном для алгоритма DES. Алгоритм IDEA обладает рядом преимуществ перед алгоритмом DES. Он значительно безопаснее алгоритма DES, поскольку 128-битовый ключ алгоритма IDEA вдвое больше ключа DES. Внутренняя структура алгоритма IDEA обеспечивает лучшую устойчивость к криптоанализу. Существующие программные реализации алгоритма IDEA примерно вдвое быстрее реализаций алгоритма DES. Алгоритм IDEA шифрует данные Таблица 3.10 Подключи шифрования и расшифрования алгоритма IDEA Цикл Подключи шифрования Подключи расшифрования 49 1 2 3 4 5 6 7 8 Преобразование выхода Z1(1) Z2(1) Z3(1) Z4(1) Z5(1) Z6(1) Z1(9)–1 Z6(8) Z1(2) Z2(2) Z3(2) Z4(2) Z5(2) Z6(2) Z1(8)–1 Z6(7) Z1(3) Z2(3) Z3(3) Z4(3) Z5(3) Z6(3) Z1(7)–1 Z6(6) Z1(4) Z2(4) Z3(4) Z4(4) Z5(4) Z6(4) Z1(6)–1 Z6(5) Z1(5) Z2(5) Z3(5) Z4(5) Z5(5) Z1(5)–1 Z6(5) Z6(4) (6) (6) (6) (6) (6) (6) Z1 Z2 Z3 Z4 Z5 Z6 Z1(4)–1 Z6(3) Z1(7) Z2(7) Z3(7) Z4(7) Z5(7) Z6(7) Z1(3)–1 Z6(2) Z1(8) Z2(8) Z3(8) Z4(8) Z5(8) Z6(8) Z1(2)–1 Z6(1) Z1(9) Z2(9) Z3(9) Z4(9) –Z2(9) –Z3(9) Z4(9)–1 Z5(8) –Z3(8) –Z2(8) Z4(8)–1 Z5(7) –Z3(7) –Z2(7) Z4(7)–1 Z5(6) –Z3(6) –Z2(6) Z4(6)–1 Z5(5) –Z3(5) –Z2(5) Z4(5)–1 Z5(4) –Z3(4) –Z2(4) Z4(4)–1 Z5(3) –Z3(3) –Z2(3) Z4(3)–1 Z5(2) –Z3(2) –Z2(2) Z4(2)–1 Z5(1) Z1(1)–1 –Z2(1) –Z3(1) Z4(1)–1 на IBM PC/486 со скоростью 2,4 Мбит/с. Реализация IDEA на СБИС шифрует данные со скоростью 177 Мбит/с при частоте 25 Мгц. Алгоритм IDEA запатентован в Европе и США. 3.6. Отечественный стандарт шифрования данных В нашей стране установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отдельных вычислительных комплексах и ЭВМ, который определяется ГОСТ 28147-89. Стандарт обязателен для организаций, предприятий и учреждений, применяющих криптографическую защиту данных, хранимых и передаваемых в сетях ЭВМ, в отдельных вычислительных комплексах и ЭВМ. Этот алгоритм криптографического преобразования данных предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. Алгоритм шифрования данных представляет собой 64-битовый блочный алгоритм с 256-битовым ключом. При описании алгоритма используются следующие обозначения: L и R – последовательности битов; LR – конкатенация последовательностей L и R, в которой биты последовательности R следуют за битами последовательности L; – операция побитового сложения по модулю 2; ⊞ – операция сложения по модулю 232 двух 32-разрядных двоичных чисел; ⊞´– операция сложения двух 32-разрядных чисел по модулю 232 –1. Два целых числа a a 232 –1, a= (a32a31 ... a2a1), b = (b32, b31, ..., b2, b1), представленные в двоичном виде, т.е. a= a32 31 + a31 30 +...+ a2 1 + a1, 50 b = b32 31 + b31 30 +...+ b2 1 + b1, суммируются по модулю 232 (операция ⊞) по следующему правилу: a ⊞ b = a + b, если a + b < 232, 32 a ⊞ b = a + b – 232, если a . Правила суммирования чисел по модулю 232 – 1: a ⊞´ b = a + b, если a + b < 232– 1, 32 a ⊞´ b = a + b – (232 – 1), если a – 1.     Алгоритм предусматривает четыре режима работы: шифрование данных в режиме простой замены; шифрование данных в режиме гаммирования; шифрование данных в режиме гаммирования с обратной связью; выработка имитовставки. Режим простой замены Для реализации алгоритма шифрования данных в режиме простой замены используется только часть блоков общей криптосистемы (рис.3.12). Обозначения на схеме: N1, N2 – 32-разрядные накопители; СМ1 – 32-разрядный сумматор по модулю 232 (⊞); СМ2 – 32R – 32-разрядный регистр циклического сдвига; КЗУ – ключевое запоминающее устройство на 256 бит, состоящее из восьми 32-разрядных накопителей Х0, Х1, Х2, ..., Х7; S – блок подстановки, состоящий из восьми узлов замены (S-блоков замены) S1, S2, S3, ..., S7, S8. Зашифрование открытых данных в режиме простой замены. Открытые данные, подлежащие зашифрованию, разбивают на 64-разрядные блоки Т0. Процедура зашифрования 64-разрядного блока Т0 в режиме простой замены включает 32 цикла (j = 1…32). В ключевое запоминающее устройство вводят 256 бит ключа К в виде восьми 32-разрядных подключей (чисел) Кi: К=К7К6К5К4К3К2К1К0. Последовательность битов блока Т0=(a1(0), a2(0), ..., a31(0), a32(0), b1(0), b2(0),..., b31(0), b32(0)) разбивают на две последовательности по 32 бита: b(0) a(0), где b(0) – левые или старшие биты, a(0) – правые или младшие биты.Эти последовательности вводят в накопители N1 и N2 перед началом первого цикла зашифрования. В результате начальное заполнение накопителя N1 a (0) = (a32(0), a31(0), ..., a2(0), a1(0)), 32, 31, ... 2, 1 1 начальное заполнение накопителя N2 b(0) = (b32(0), b31(0), ..., b2(0), b1(0)). 51 32, 31, ... 2, N Т0 32 … номер разряда N2 1 2 b N …1 1 a Тш 32 … …1 32 … …1 КЗУ X0 (K0 ) X1 (K1 ) X2 (K2 ) X3 (K3 ) X4 (K4 ) X5 (K5 ) X6 (K6 ) X7 (K7 ) СМ 1 S8 S 7 S6 S5 S4 S3 S2 S1 S R 32 … 32 … …1 …1 СМ 2 Рисунок 3.12 – Схема реализации режима простой замены Первый цикл (j=1) процедуры зашифрования 64-разрядного блока открытых данных можно описать уравнениями:  a(1)  f(a(0)  b(1)  a(0). K 0 )  b(0), Здесь a (1) – заполнение N1 после 1-го цикла зашифровaния; b (1) – заполнение N2 после 1-го цикла зашифрования; f – функция шифрования. Аргументом функции f является сумма по модулю 232 числа a(0) (начального заполнения накопителя N1) и числа К0 – подключа, считываемого из накопителя Х0 КЗУ. Каждое из этих чисел равно 32 битам. Функция f включает две операции над полученной 32-разрядной суммой (a (0) ⊞ К0). Первая операция называется подстановкой (заменой) и выполняется блоком подстановки S. Блок подстановки S состоит из восьми узлов замены (S-блоков замены) S1,S2,...,S8 с памятью 64 бит каждый. Поступающий из СМ1 на блок подстановки S 32-разрядный вектор разбивают на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в четырехразрядный вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати четырехразрядных двоичных чисел в диапазоне 0000…1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем четырехразрядные выходные векторы последовательно объединяют в 32-разрядный вектор. Узлы замены (таблицыперестановки) представляют собой ключевые элементы, которые являются 52 общими для сети ЭВМ и редко изменяются. Эти узлы замены должны сохраняться в секрете. Вторая операция – циклический сдвиг влево (на 11 разрядов) 32-разрядного вектора, полученного с выхода блока подстановки S. Циклический сдвиг выполняется регистром сдвига R. Далее результат работы функции шифрования f суммируют поразрядно по модулю 2 в сумматоре СМ2 с 32-разрядным начальным заполнением b(0) накопителя N2. Затем полученный на выходе СМ2 результат (значение a(1)) записывают в накопитель N1, а старое значение N1 (значение a(0)) переписывают в накопитель N2 (значение b(1) = a(0)). Первый цикл завершен. Последующие циклы осуществляются аналогично, при этом во втором цикле из КЗУ считывают заполнение Х1 – подключ К1, в третьем цикле – подключ К2 и т.д., в восьмом цикле – подключ К7. В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й подключи из КЗУ считываются в том же порядке: К0, К1, К2,...,К6, К7. В последних восьми циклах с 25-го по 32-й порядок считывания подключей из КЗУ обратный: К7, К6, ..., К2, К1, К0. Таким образом, при зашифровании в 32 циклах осуществляется следующий порядок выборки из КЗУ подключей: К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0. В 32-м цикле результат из сумматора СМ2 вводится в накопитель N2, а в накопителе N1 сохраняется прежнее заполнение. Полученные после 32-го цикла зашифрования заполнения накопителей N1 и N2 являются блоком зашифрованных данных Тш, соответствующим блоку открытых данных Т0. Уравнения зашифрования в режиме простой замены имеют вид: a(j)  f(a(j  1) K j1(mod 8) )  b(j  1)  b(j)  a(j  1) a(j)  f(a(j  1) K 32 j )  b(j  1)  b(j)  a(j  1) a(32)  a(31)  b(32)  f(a(31) K 0 )  b(31) при j=1…24, при j=25…31, при j=32 где a (j) = (a32(j), a31(j), ..., a1(j)) – заполнение N1 после j-го цикла зашифрования; b (j) = (b32(j), b31(j), ..., b1(j)) – заполнение N2 после j-го цикла зашифрования, j=1…32. Блок зашифрованных данных Тш (64 разряда) выводится из накопителей N1, N2 в следующем порядке: из разрядов 1…32 накопителя N1, затем из разрядов 1…32 накопителя N2, т.е. начиная с младших разрядов: Тш = (a1(32), a2(32), ..., a32(32), b1(32), b2(32), ..., b32(32)). Остальные блоки открытых данных зашифровываются в режиме простой замены аналогично. 53 Расшифрование в режиме простой замены. Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид, что и при зашифровании (см. рис. 3.12). В КЗУ вводят 256 бит ключа, на котором осуществлялось зашифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки Тш по 64 бита в каждом. Ввод любо-го блока Тш = (a1(32), a2(32), ..., a32(32), b1(32), b2(32), ..., b32(32)) в накопители N1 и N2 производят так, чтобы начальное значение накопителя N1 имело вид (a32(32), a31(32), ..., a2(32), a1(32)), 32, 31, ..., 2, 1 1 а начальное заполнение накопителя N2 – вид (b32(32), b31(32), ..., b2(32), b1(32)). 32, 31, ..., 2, 1 2 Расшифрование осуществляется по тому же алгоритму, что и зашифрование, с тем изменением, что заполнения накопителей X 0, Х1, ..., Х7 считываются из КЗУ в циклах расшифрования в следующем порядке: 54 К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0. Уравнения расшифрования имеют вид: a(32  j)  f(a(32  j  1) K j1 )  b(32  j  1)  при j=1…8; b(32  j)  a(32  j  1) a(32  j)  f(a(32  j  1) K 32 j(mod 8) )  b(32  j  1)  при j=9…31; b(32  j)  a(32  j  1)  a(0)  a(1)  b(0)  f(a(1) K 0 )  b(1) при j=32. Полученные после 32 циклов работы заполнения накопителей N1 и N2 образуют блок открытых данных Т0 = (a1(0), a2(0), ..., a32(0), b1(0), b2(0),..., b32(0)), соответствующий блоку зашифрованных данных Тш. При этом состояние накопителя N1 (a32(0), a31(0), ..., a2(0), a1(0)), 32, 31, ..., 2, 1 1 состояние накопителя N2 (b32(0), b31(0), ..., b2(0), b1(0)). 32, 31, ..., 2, 1 2 Аналогично расшифровываются остальные блоки зашифрованных данных. Если алгоритм зашифрования в режиме простой замены 64-битового блока Т0 обозначить через А, то А(Т0) = А(a (0), b(0)) = (a (32), b(32))=Тш. Следует иметь в виду, что режим простой замены допустимо использовать для шифрования данных только в ограниченных случаях – при выработке ключа и зашифровании его с обеспечением имитозащиты для передачи по каналам связи или для хранения в памяти ЭВМ. Режим гаммирования Зашифрование открытых данных в режиме гаммирования. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования, показана на рис.3.13. Открытые данные разбивают на 64-разрядные блоки Т0(1), Т0(2), ..., Т0(i), ..., Т0(m), где Т0(i) – i-й 64-разрядный блок открытых данных, i = 1…m, m определяется объемом шифруемых данных. Эти блоки поочередно зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 в сумматоре СМ5 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита, т.е. Гш=(Гш(1), Гш(2), ..., Гш(i), Гш(m)), 55 где Гш(i) – i-й 64-разрядный блок, i = 1…m. (i) (i) Tш (T0 ) СМ5 С1 N6 (i) С2 32… …1 …1 32… …1 32… …1 32… …1 32… …1 32… …1 32… N4 N2 КЗУ N5 СМ3 N3 N1 СМ1 S Схема режима простой замены (i) Гш …1 32… СМ4 (i) T0 (Tш ) R СМ2 2 Рисунок 3.13 – Схема реализации режима гаммирования Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока Гш(m) отбрасывается. Уравнение зашифрования данных в режиме гаммирования имеет вид (i) Тш(i) = Т0(i) ш , где Гш(i)=А(Yi–1 ⊞ C2, Zi–1 ⊞´C1), i=1…m; Тш(i) – i-й блок 64-разрядного блока зашифрованного текста; А(·) – функция зашифрования в режиме простой замены; С1, С2 – 32-разрядные двоичные константы; Yi, Zi – 32-разрядные двоичные последовательности. Величины Yi, Zi определяются итерационно по мере формирования гаммы Гш следующим образом: ~ (Y0, Z0) = А ( S ), ~ где S – синхропосылка (64-разрядная двоичная последова-тельность), (Yi, Zi) = (Yi–1 ⊞ С2, Zi–1 ⊞ C1), i = 1…m. Рассмотрим реализацию процедуры зашифрования в режиме гаммирования. В накопители N6 и N5 заранее записаны 32-разрядные двоичные константы С1 и С2, имеющие следующие значения (в шестнадцатеричной форме): С1 = 01010104(16), С2 = 01010101(16). 56 В КЗУ вводится 256 бит ключа; в накопители N1 и N2 – 64-разрядная двоичная последовательность (синхропосылка) ~ S = (S1, S2, ..., S64). ~ Синхропосылка S является исходным заполнением накопителей N1 и N2 для последовательной выработки m блоков гаммы шифра. Исходное заполнение накопителя N1: (S32, S31, ...,S2, S1); 32, 31, ..., 2, 1 1 исходное заполнение накопителя N2: (S64, S63, ..., S34, S33). 2 ~ Исходное заполнение N1 и N2 (синхропосылка S ) зашифровывается в режиме простой замены. Результат зашифрования ~ A( S ) = (Y0, Z0) переписывается в 32-разрядные накопители N3 и N4 так, что заполнение N1 переписывается в N3, а заполнение N2 – в N4. Заполнение накопителя N4 суммируют по модулю (232 –1) в сумматоре СМ4 с 32-разрядной константой С1 из накопителя N6. Результат записывается в N4. Заполнение накопителя N3 суммируется по модулю 232 в сумматоре СМ3 с 32-разрядной константой С2 из накопителя N5. Результат записывается в N3. Заполнение N3 переписывают в N1, а заполнение N4 – в N2, при этом заполнения N3, N4 сохраняются. Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1, N2 образует первый 64-разрядный блок гаммы шифра Гш(1)= 1(1), 2(1), ..., (1) (1) 63 64 ), который суммируют поразрядно по модулю 2 в сумматоре СМ 5 с первым 64-разрядным блоком открытых данных Т0(1) = (t1(1), t2(1), ..., t63(1), t64(1)). В результате суммирования по модулю 2 значений Гш(1) и Т0(1) получают первый 64-разрядный блок зашифрованнных данных: (1) (1) (1) (1) (1) Тш(1) = Гш(1) 1 2 63 64 ), (1) (1) = ti(1) i , i = 1…64. Для получения следующего 64-разрядного блока гаммы шифра Гш(2) заполнение N4 суммируется по модулю (232 –1) в сумматоре СМ4 с константой С1 из N6. Результат записывается в N4. Заполнение N3 суммируется по модулю 232 в сумматоре СМ3 с константой С2 из N5. Результат записывается в N3. Новое заполнение N3 переписывают в N1, а новое заполнение N4 – в N2 , при этом заполнения N3 и N4 сохраняют. Заполнения N1, N2 зашифровывают в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра Гш(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2): i 57 Тш(2) = Гш(2) (2) . Аналогично вырабатываются блоки гаммы шифра Гш(3), Гш(4), ..., Гш(m) и зашифровываются блоки открытых данных Т0(3), Т0(4), ..., Т0(m). ~ В канал связи или память ЭВМ передаются синхропосылка S и блоки зашифрованных данных Тш(1), Тш(2), ..., Тш(m). Расшифрование в режиме гаммирования. При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. рис.3.13). Уравнение расшифрования: Т0(i) = Тш(i) Гш(i) = Tш(i) A (Yi–1 ⊞ C2, Zi–1 ⊞´ C1), i = 1…m. Следует отметить, что расшифрование данных возможно только при наличии синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ или передаваться по каналам связи вместе с зашифрованными данными. Рассмотрим реализацию процедуры расшифрования. В КЗУ вводят 256 бит ключа, с помощью которого осуществляется зашифрование данных Т0(1), Т0(2), ..., Т0(m). В накопители N1 и N2 вводится синхропосылка, и осуществляется процесс выработки m блоков гаммы шифра Гш(1), Гш(2), ..., Гш(m). Блоки зашифрованных данных Тш(1), Тш(2), ..., Тш(m) суммируются поразрядно по модулю 2 в сумматоре СМ5 с блоками гаммы шифра Гш(1), ..., Гш(m). В результате получаются блоки открытых данных Т0(1), Т0(2), ..., Т0(m); при этом Т0(m) может содержать меньше 64 разрядов. Режим гаммирования с обратной связью Зашифрование открытых данных в режиме гаммирования с обратной связью. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования с обратной связью, имеет вид, показанный на рис. 3.14. Открытые данные, разбитые на 64-разрядные блоки Т0(1), Т0(2), ..., Т0(m), зашифровываются в режиме гаммирования с обратной связью путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита: Гш = (Гш(1), Гш(2), ..., Гш(m)). Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Гш(m) отбрасывается. Уравнения зашифрования в режиме гаммирования с обратной связью имеют вид: ~ (1) Тш(1) = А ( S Т0(1) = Гш(1) 0 , Тш(i) = A (Тш(i–1)) Т0(i) = Гш(i) Т0(i), i = 2…m. 58 (Tш(i-1) ) Tш(i) (T0(i) ) СМ T0(i) (Tш(i) ) 5 (i) Гш N2 32… N1 …1 32… …1 32… …1 КЗУ X0 (K0 ) X1 (K1 ) X2 (K2 ) X3 (K3 ) X4 (K4 ) X5 (K5 ) X6 (K6 ) X7 (K7 ) СМ 1 S 8 S7 S6 S5 S4 S3 S2 S1 S R 32… …1 32… …1 32… …1 СМ 2 Рисунок 3.14 – Схема реализации режима гаммирования с обратной связью Здесь Тш(i) – i-й 64-разрядный блок зашифрованного текста; А(·) – функция зашифрования в режиме простой замены; m – определяется объемом открытых данных. Аргументом функции А (·) на первом шаге итеративного алгоритма яв~ ляется 64-разрядная синхропосылка S , а на всех последующих шагах – предыдущий блок зашифрованных дан-ных Тш(i–1). Процедура зашифрования данных в режиме гаммирования с обратной связью реализуется следующим образом. В КЗУ вводятся 256 бит ключа. В ~ накопители N1 и N2 вводится синхро-посылка S = (S1, S2, ..., S64) из 64 бит. Исходное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопи~ телей N1 и N2 образует первый 64-разрядный блок гаммы шифра Гш(1)=A( S ), который суммируется поразрядно по модулю 2 в сумматоре СМ5 с первым 64-разрядным блоком открытых данных Т0(1) = (t1(1), t2(1),..., t64(1)). В результате получают первый 64-разрядный блок зашифрованных данных (1) ТШ(1) = ГШ(1) 0 , (1) (1) (1) где ТШ(1) 1 2 64 ). Блок зашифрованных данных ТШ(1) одновременно является также исходным состоянием накопителей N1, N2 для выработки второго блока гаммы шифра ГШ(2), и поэтому по обратной связи ТШ(1) записывается в указанные накопители N1 и N2. Заполнение накопителя N1 59 (1) (1) (1) 32 31 2 32, 31, ..., 2, (1) 1 ). ряда N1 1 Заполнение накопителя N2 (1) (1) (1) 63 34 33 ). (1) 64 N2 Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра ГШ(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2): (2) ГШ(2) = ТШ(2). Выработка последующих блоков гаммы шифра ГШ(i) и зашифрование соответствующих блоков открытых данных Т0(i) (i=3…m) производится аналогично. Если длина последнего m-го блока открытых данных Т0(m) меньше 64 разрядов, то из ГШ(m) используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются. ~ В канал связи или память ЭВМ передаются синхропосылка S и блоки зашифрованных данных ТШ(1), ТШ(2), ..., ТШ(m). Расшифрование в режиме гаммирования с обратной связью. При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. рис.3.14). Уравнения расшифрования: ~ (1) Т0(1) = А( S ) Тш(1) = Гш(1) ш , Т0(i) = Гш(i) Тш(i) = A (Тш(i–1) ) Тш(i), i = 2…m. 32, 31, ..., 2, 1 Реализация процедуры расшифрования зашифрованных данных в режиме гаммирования с обратной связью происходит следующим образом. В КЗУ вводят 256 бит того же ключа, на котором осуществлялось зашифрование открытых блоков Т0(1), Т0(2), ..., Т0(m). В накопители N1 и N2 вво~ дится синхропосылка S . Исходное заполнение накопителей N1 и N2 (синхро~ посылка S ) зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение N1 и N2 образует первый блок гаммы шифра ~ ГШ(1) = А( S ), который суммируется поразрядно по модулю 2 в сумматоре СМ5 с блоком зашифрованных данных ТШ(1). В результате получается первый блок открытых данных (1) Т0(1) = Гш(1) ш . Блок зашифрованных данных Тш(1) является исходным заполнением накопителей N1 и N2 для выработки второго блока гаммы шифра ГШ(2): ГШ(2) = А(ТШ(1)). Полученное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Образованный в результате зашифрования блок ГШ(2) суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком зашифрованных данных ТШ(2). В результате получают второй блок от60 крытых данных. Аналогично в N1, N2 последовательно записывают блоки зашифрованных данных ТШ(2), ТШ(3), ..., ТШ(m), из которых в режиме простой замены вырабатываются блоки гаммы шифра ГШ(3), ГШ(4), ..., ГШ(m). Блоки гаммы шифра суммируются поразрядно по модулю 2 в сумматоре СМ5 с блоками зашифрованных данных ТШ(3),ТШ(4), ..., ТШ(m). В результате получают блоки открытых данных Т0(3), Т0(4), ..., Т0(m), при этом последний блок открытых данных Т0(m) может содержать меньше 64 разрядов. Режим выработки имитовставки Имитовставка – это блок из Р бит, который вырабатывают по определенному правилу из открытых данных с использованием ключа и затем добавляют к зашифрованным данным для обеспечения их имитозащиты. Имитозащита – это защита системы шифрованной связи от навязывания ложных данных. В стандарте ГОСТ 28147-89 определяется процесс выработки имитовставки, который единообразен для любого из режимов шифрования данных. Имитовставка Ир вырабатывается из блоков открытых данных либо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не зашифровываются. Значение параметра Р (число двоичных разрядов в имитовставке) определяется криптографическими требованиями с учетом того, что вероятность навязывания ложных помех равна 1/2р. Для выработки имитовставки открытые данные представляют в виде последовательности 64-разрядных блоков Т0(i), i = 1…m. ~ Первый блок открытых данных Т0(1) подвергают преобразованию A (·), соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. В качестве ключа для выработки имитовставки используют ключ длиной 256 бит, по которому шифруют данные. ~ Полученное после 16 циклов 64-разрядное число A (Т0(1)) суммируют по модулю 2 со вторым блоком открытых данных Т0(2). Результат суммирования ~ ~ (2) ( A (Т0(1) 0 ) снова подвергают преобразованию A (·). ~ ~ (2) Полученное 64-разрядное число A ( A (Т0(1) 0 ) суммируют по моду~ лю 2 с третьим блоком Т0(3) и снова подвергают преобразованию A (·), получая 64-разрядное число ~ ~ ~ A ( A ( A (Т0(1) (2) (3) 0 ), и т.д. Последний блок Т0(m) (при необходимости дополненный нулями до полного 64-разрядного блока) суммируют по модулю 2 с результатом вычислений на шаге (m–1), после чего зашифровывают в режиме простой замены, ~ используя преобразование A (·). 61 Из полученного 64-разрядного числа выбирают отрезок Ир (имитовставку) длиной Р бит: Ир = [a(m)32–p+1(16), a(m)32–p+2(16), ..., a(m)32(16)], где ai(m) – i-й бит 64-разрядного числа, полученного после 16-го цикла по~ следнего преобразования A (·), 32 – i Имитовставка Ир передается по каналу связи или в память ЭВМ в конце зашифрованных данных, т.е. Тш(1), Тш(2), ..., Тш(m), Ир. Поступившие к получателю зашифрованные данные Тш(1), Тш(2), ..., Тш(m) расшифровываются, и из полученных блоков открытых данных Т0(1), Т0(2), ..., Т0(m) аналогичным образом вырабатывается имитовставка Ир . Эта имитовставка Ир сравнивается с имитовставкой Ир, полученной вместе с зашифрованными данными из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок полученные при расшифровании блоки открытых данных Т0(1), Т0(2), ..., Т0(m) считают ложными. 3.7. Блочные и поточные шифры Проектирование алгоритмов шифрования данных основано на рациональном выборе функций, преобразующих исходные (незашифрованные) сообщения в шифртекст. Идея непосредствен-ного применения такой функции ко всему сообщению реализуется очень редко. Практически все применяемые криптографические методы связаны с разбиением сообщения на большое число фраг-ментов (или знаков) фиксированного размера, каждый из которых шифруется отдельно. Такой подход существенно упрощает задачу шифрования, так как сообщения обычно имеют различную длину. Различают три основных способа шифрования: поточные шифры, блочные шифры и блочные шифры с обратной связью. Для классификации методов шифрования данных следует выбрать некоторое количество характерных признаков, которые можно применить для установления различий между этими методами. Будем полагать, что каждая часть или каждый знак сообщения шифруется отдельно в заданном порядке. Можно выделить следующие характерные признаки методов шифрования данных: 1) Выполнение операций с отдельными битами или блоками. Известно, что для некоторых методов шифрования знаком сообщения, над которым производят операции шифрования, является отдельный бит, тогда как другие методы оперируют конечным множеством битов, обычно называемым блоком. 2) Зависимость или независимость функции шифрования от результатов шифрования предыдущих частей сообщения. 3) Зависимость или независимость шифрования отдельных знаков от их положения в тексте. В некоторых методах знаки шифруются с использова62 нием одной и той же функции независимо от их положения в сообщении, а в других методах, например при поточном шифровании, различные знаки сообщения шифруются с учетом их положения в сообщении. Это свойство называют позиционной зависимостью или независимостью шифра. 4) Симметрия или асимметрия функции шифрования. Эта важная характеристика определяет существенное различие между обычными симметричными (одноключевыми) криптосистемами и асимметричными (двухключевыми) криптосистемами с открытым ключом. Основное различие между ними состоит в том, что в асимметричной криптосистеме знания ключа шифрования (или расшифрования) недостаточно для раскрытия соответствующего ключа расшифрования (или шифрования). В табл. 3.11 приведены типы криптосистем и их основные характеристики. Таблица 3.11 Основные характеристики криптосистем Тип криптосистемы Наличие Операции с Зависимость от симметрии Позиционная битами или предыдущих функции зависимость блоками знаков шифрования Поточного шифрования Биты Не зависит Зависит Симметричная Блочного шифрования Блоки Не зависит Не зависит Симметричная или несимметричная С обратной связью от шифртекста Биты или блоки Зависит Не зависит Симметричная Поточное шифрование состоит в том, что биты открытого текста складываются по модулю 2 с битами псевдослучайной последовательности. К достоинствам поточных шифров относятся высокая скорость шифрования, относительная простота реализации и отсутствие размножения ошибок. Недостатком является необходимость передачи информации синхронизации перед заголовком сообщения, которая должна быть принята до расшифрования любого сообщения. Это обусловлено тем, что если два различных сообщения шифруются на одном и том же ключе, то для расшифрования этих сообщений требуется одна и та же псевдослучайная последовательность. Такое положение может создать угрозу криптостойкости системы. Поэтому часто используют дополнительный, случайно выбираемый ключ сообщения, который передается в начале сообщения и применяется для модификации ключа шифрования. В результате разные сообщения будут шифроваться с помощью различных последовательностей. Поточные шифры широко применяются для шифрования преобразованных в цифровую форму речевых сигналов и цифровых данных, требующих оперативной доставки потребителю информации. До недавнего времени такие применения были преобладающими для данного метода шифрования. Это обусловлено, в частности, относительной простотой проектирования и 63 реализации генераторов хороших шифрующих последовательностей. Но самым важным фактором, конечно, является отсутствие размножения ошибок в поточном шифре. Стандартным методом генерирования последовательностей для поточного шифрования является метод, применяемый в стандарте шифрования DES в режиме обратной связи по выходу (режим OFB). При блочном шифровании открытый текст сначала разбивается на равные по длине блоки, затем применяется зависящая от ключа функция шифрования для преобразования блока открытого текста длиной m бит в блок шифртекста такой же длины. Достоинством блочного шифрования является то, что каждый бит блока шифртекста зависит от значений всех битов соответствующего блока открытого текста, и никакие два блока открытого текста не могут быть представлены одним и тем же блоком шифртекста. Алгоритм блочного шифрования может использоваться в различных режимах. Четыре режима шифрования алгоритма DES фактически применимы к любому блочному шифру: режим прямого шифрования или шифрования с использованием электронной книги кодов ЕСВ (Electronic code Book), шифрование со сцеплением блоков шифртекста СВС (Cipher block chaining), шифрование с обратной связью по шифртексту CFB (Cipher feedback) и шифрование с обратной связью по выходу OFB (Output feedback). Основным достоинством прямого блочного шифрования ECB является то, что в хорошо спроектированной системе блочного шифрования небольшие изменения в шифртексте вызывают большие и непредсказуемые изменения в соответствующем открытом тексте, и наоборот. Вместе с тем применение блочного шифра в данном режиме имеет серьезные недостатки. Первый из них заключается в том, что вследствие детерминированного характера шифрования при фиксированной длине блока 64 бита можно осуществить криптоанализ шифртекста "со словарем" в ограниченной форме. Это обусловлено тем, что идентичные блоки открытого текста длиной 64 бита в исходном сообщении представляются идентичными блоками шифртекста, что позволяет криптоаналитику сделать определенные выводы о содержании сообщения. Другой потенциальный недостаток этого шифра связан с размножением ошибок. Результатом изменения только одного бита в принятом блоке шифртекста будет неправильное расшифрование всего блока. Это, в свою очередь, приведет к появлению искаженных битов (от 1 до 64) в восстановленном блоке исходно-го текста. Из-за отмеченных недостатков блочные шифры редко применяются в указанном режиме для шифрования длинных сообщений. Однако в финансовых учреждениях, где сообщения часто состоят из одного или двух блоков, блочные шифры широко используют в режиме прямого шифрования. Такое применение обычно связано с возможностью частой смены ключа шифрования, поэтому вероятность шифрования двух идентичных блоков открытого текста на одном и том же ключе очень мала. Криптосистема с открытым ключом также является системой блочного шифрования и должна оперировать блоками довольно большой длины. Это обусловлено тем, что криптоаналитик знает открытый ключ шифрования и мог бы заранее вычислить и составить таблицу соответствия блоков откры64 того текста и шифртекста. Если длина блоков мала, например 30 бит, то число возможных блоков не слишком большое (при длине 30 бит это 230 = 9 ), и может быть составлена полная таблица, позволяющая моментально расшифровать любое сообщение с использованием известного открытого ключа. Асимметричные криптосистемы с открытым ключом подробно разбираются в следующей главе. Наиболее часто блочные шифры применяются в системах шифрования с обратной связью. Системы шифрования с обратной связью встречаются в различных практических вариантах. Как и при блочном шифровании, сообщения разбивают на ряд блоков, состоящих из m бит. Для преобразования этих блоков в блоки шифртекста, которые также состоят из m бит, используются специальные функции шифрования. Однако если в блочном шифре такая функция зависит только от ключа, то в блочных шифрах с обратной связью она зависит как от ключа, так и от одного или более предшествующих блоков шифртекста. Практически важным шифром с обратной связью является шифр со сцеплением блоков шифртекста СВС. В этом случае m бит предыдущего шифртекста суммируются по модулю 2 со следующими m битами открытого текста, а затем применяется алгоритм блочного шифрования под управлением ключа для получения следующего блока шифртекста. Еще один вариант шифра с обратной связью получается из стандартного режима CFB алгоритма DES, т.е. режима с обратной связью по шифртексту. Достоинством криптосистем блочного шифрования с обратной связью является возможность применения их для обнаружения манипуляций сообщениями, производимых активными перехватчиками. При этом используется факт размножения ошибок в таких шифрах, а также способность этих систем легко генерировать код аутентификации сообщений. Поэтому системы шифрования с обратной связью используют не только для шифрования сообщений, но и для их аутентификации. Криптосистемам блочного шифрования с обратной связью свойственны некоторые недостатки. Основным из них является размножение ошибок, так как один ошибочный бит при передаче может вызвать ряд ошибок в расшифрованном тексте. Другой недостаток связан с тем, что разработка и реализация систем шифрования с обратной связью часто оказываются более трудными, чем систем поточного шифрования. На практике для шифрования длинных сообщений применяют поточные шифры или шифры с обратной связью. Выбор конкретного типа шифра зависит от назначения системы и предъявляемых к ней требований. 65 4. АСИММЕТРИЧНЫЕ КРИПТОСИСТЕМЫ 4.1. Концепция криптосистемы с открытым ключом Эффективными системами криптографической защиты данных являются асимметричные криптосистемы, называемые также криптосистемами с открытым ключом. В таких системах для зашифрования данных используется один ключ, а для расшифрования – другой ключ (отсюда и название – асимметричные). Первый ключ является открытым и может быть опубликован для использования всеми пользователями системы, которые зашифровывают данные. Расшифрование данных с помощью открытого ключа невозможно. Для расшифрования данных получатель зашифрованной информации использует второй ключ, который является секретным. Разумеется, ключ расшифрования не может быть определен из ключа зашифрования. Обобщенная схема асимметричной криптосистемы с открытым ключом показана на рис. 4.1. В этой криптосистеме применяют два различных ключа: Кв – открытый ключ отправителя А; kв – секретный ключ получателя В. Генератор ключей целесообразно располагать на стороне получателя В (чтобы не пересылать секретный ключ kв по незащищенному каналу). Значения ключей Кв и kв зависят от начального состояния генератора ключей. Раскрытие секретного ключа kв по известному открытому ключу Кв должно быть вычислительно неразрешимой задачей. Характерные особенности асимметричных криптосистем: 1. Открытый ключ Кв и криптограмма С могут быть отправлены по незащищенным каналам, т.е. противнику известны Кв и С. 2. Алгоритмы шифрования и расшифрования Ев : М  С, Dв : С  М являются открытыми. Отправитель А Сообщение М E в Незащищенный канал Криптограмма С Ключ Кв Получатель В М Dв Ключ kв Генератор ключей Противник Начальное условие Рисунок 4.1 – Обобщенная схема асимметричной криптосистемы с открытым ключом Защита информации секретности ключа kв. в асимметричной криптосистеме основана на 66 У.диффи и м.хеллман сформулировали требования, выполнение которых обеспечивает безопасность асимметричной криптосистемы: 1. Вычисление пары ключей (Кв, kв) получателем В на основе начального условия должно быть простым. 2. Отправитель А, зная открытый ключ Кв и сообщение М, может легко вычислить криптограмму С = EK (М) = Ев (М). (4.1) B 3. Получатель В, используя секретный ключ kв и криптограмму С, может легко восстановить исходное сообщение М = Dk (С) = Dв(С) = Dв [Ев(М)]. (4.2) в 4. Противник, зная открытый ключ Кв, при попытке вычислить секретный ключ kв наталкивается на непреодолимую вычислительную проблему. 5. Противник, зная пару (Кв, С), при попытке вычислить исходное сообщение М наталкивается на непреодолимую вычислительную проблему [28]. 4.2. Однонаправленные функции Концепция асимметричных криптографических систем с открытым ключом основана на применении однонаправленных функций. Неформально однонаправленную функцию можно определить следующим образом. Пусть X и Y – некоторые произвольные множества. Функция f:XY является однонаправленной, если для всех xX можно легко вычислить функцию y = f (x), где yY. И в то же время для большинства yY достаточно сложно получить значение xX, такое, что f (x)=y (при этом полагают, что существует по крайней мере одно такое значение x). Основным критерием отнесения функции f к классу однонаправленных функций является отсутствие эффективных алгоритмов обратного преобразования Y  X. В качестве первого примера однонаправленной функции рассмотрим целочисленное умножение. Прямая задача – вычисление произведения двух очень больших целых чисел P и Q, т.е. нахождение значения N = PQ, (4.3) является относительно несложной задачей для ЭВМ. Обратная задача – разложение на множители большого целого числа, т.е. нахождение делителей P и Q большого целого числа N = PQ, является практически неразрешимой задачей при достаточно больших значениях N. По современным оценкам теории чисел при целом N2664 и PQ для разложения числа N потребуется около 1023 операций, т.е. задача практически неразрешима на современных ЭВМ. 67 Следующий характерный пример однонаправленной функции – это модульная экспонента с фиксированными основанием и модулем. Пусть A и N – целые числа, такие, что 1 А < N. Определим множество ZN: ZN = {0, 1, 2, ..., N –1}. Тогда модульная экспонента с основанием А по модулю N представляет собой функцию fA,N : ZN  ZN, fA,N (x) = Ax (mod N), (4.4) где X – целое число, 1 x  N –1. Существуют эффективные алгоритмы, позволяющие достаточно быстро вычислить значения функции fA,N (x). Если y = Ax, то естественно записать x = logA (у). Поэтому задачу обращения функции fA,N(x) называют задачей нахождения дискретного логарифма или задачей дискретного логарифмирования. Задача дискретного логарифмирования формулируется следующим образом. Для известных целых A, N, Y найти целое число X, такое, что Ax mod N = y. Алгоритм вычисления дискретного логарифма за приемлемое время пока не найден. Поэтому модульная экспонента считается однонаправленной функцией. По современным оценкам теории чисел при целых числах A  2664 и N  2664 решение задачи дискретного логарифмирования (нахождение показателя степени x для известного y) потребует около 1026 операций, т.е. эта задача имеет в 103 раз большую вычислительную сложность, чем задача разложения на множители. При увеличении длины чисел разница в оценках сложности задач возрастает. Следует отметить, что пока не удалось доказать, что не существует эффективного алгоритма вычисления дискретного логарифма за приемлемое время. Исходя из этого, модульная экспонента отнесена к однонаправленным функциям условно, что, однако, не мешает с успехом применять ее на практике. Вторым важным классом функций, используемых при построении криптосистем с открытым ключом, являются так называемые однонаправленные функции с "потайным ходом" (с лазейкой). Дадим неформальное определение такой функции. Функция f:XY относится к классу однонаправленных функций с "потайным ходом" в том случае, если она является однонаправленной и, кроме того, возможно эффективное вычисление обратной функции, если известен "потайной ход" (секретное число, строка или другая информация, ассоциирующаяся с данной функцией). В качестве примера однонаправленной функции с "потайным ходом" можно указать используемую в криптосистеме RSA модульную экспоненту с 68 фиксированными модулем и показателем степени. Переменное основание модульной экспоненты используется для указания числового значения сообщения M либо криптограммы C 4.3. Криптосистема шифрования данных RSA Алгоритм RSA предложили в 1978 г. три автора: Р.Райвест (Rivest), А.Шамир (Shamir) и А.Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Алгоритм RSA стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи. Надежность алгоритма основывается на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов. В криптосистеме RSA открытый ключ Кв, секретный ключ kв, сообщение М и криптограмма С принадлежат множеству це-лых чисел ZN = {0, 1, 2, ..., N –1}, (4.5) где N – модуль: N = PQ. (4.6) Здесь P и Q – случайные большие простые числа. Для обеспечения максимальной безопасности выбирают P и Q равной длины и хранят в секрете. Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N. Открытый ключ Кв выбирают случайным образом так, чтобы выполнялись условия: 1< Кв   (N), НОД (Кв,  (N)) =1, (4.7)  (N)=(P –1) (Q –1), (4.8) где  (N) – функция Эйлера. Функция Эйлера  (N) указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно проcты с N. Второе из указанных выше условий означает, что открытый ключ Кв и функция Эйлера  (N) должны быть взаимно простыми. Далее, используя расширенный алгоритм Евклида, вычисляют секретный ключ kв, такой, что или kв  Кв  1 (mod  (N)) (4.9) kв = Кв–1 (mod (P –1)(Q –1)). Это можно осуществить, так как получатель В знает пару простых чисел (P,Q) и может легко найти  (N). Заметим, что kв и N должны быть взаимно простыми. Открытый ключ Кв используют для шифрования данных, а секретный ключ kв – для расшифрования. Преобразование шифрования определяет криптограмму С через пару (открытый ключ Кв, сообщение М) в соответствии со следующей формулой: C = EK (M) = EВ (M) = MK (mod N). (4.10) B B 69 В качестве алгоритма быстрого вычисления значения C используют ряд последовательных возведений в квадрат целого M и умножений на M с приведением по модулю N. Обращение функции C = MK (mod N), т.е. определение значения M по известным значениям C, Кв и N, практически не осуществимо при N  2 512. Однако обратную задачу, т.е. задачу расшифрования криптограммы С, можно решить, используя пару (секретный ключ kв, криптограмма С) по следующей формуле: М = Dk (С) = DВ (C) = Ck (mod N). (4.11) B B B Процесс расшифрования можно записать так: DВ(EВ (М)) = М. (4.12) Подставляя в (4.12) значения (4.10) и (4.11), получаем: K k (M ) = М (mod N) или K k = M (mod N). (4.13) M Величина  (N) играет важную роль в теореме Эйлера, которая утверждает, что если НОД (x, N) =1, то B B B B x(N)  1 (mod N), или в несколько более общей форме xn(N)+1  x (mod N). (4.14) Сопоставляя выражения (4.13) и (4.14), получаем Кв  kв = n   (N) +1 или, что то же самое, Кв  kв 1 (mod  (N)). Именно поэтому для вычисления секретного ключа kв используют соотношение (4.9). Таким образом, если криптограмму C = MK (mod N) возвести в степень kв, то в результате восстанавливается исходный открытый текст М, так как K k K k = Mn(N)+1  M (mod N). (M ) = M Таким образом, получатель В, который создает криптосистему, защищает два параметра: 1) секретный ключ kв и 2) пару чисел (P,Q), произведение которых дает значение модуля N. С другой стороны, получатель В открывает значение модуля N и открытый ключ Кв. Противнику известны лишь значения Кв и N. Если бы он смог разложить число N на множители P и Q, то он узнал бы "потайной ход" – тройку чисел {P,Q,Кв}, вычислил значение функции Эйлера  (N) = (P –1) (Q –1) и определил значение секретного ключа kв. B B B B B 70 Однако, как уже отмечалось, разложение очень большого N на множители вычислительно не осуществимо (при условии, что длины выбранных P и Q составляют не менее 100 десятичных знаков). 4.3.1. Процедуры шифрования и расшифрования в криптосистеме RSA Предположим, что пользователь А хочет передать пользователю В сообщение в зашифрованном виде, используя криптосистему RSA. В таком случае пользователь А выступает в роли отправителя сообщения, а пользователь В – в роли получателя. Как отмечалось выше, криптосистему RSA должен сформировать получатель сообщения, т.е. пользователь В. Рассмотрим последовательность действий пользователя В и пользователя А. 1. Пользователь В выбирает два произвольных больших простых числа P и Q. 2. Пользователь В вычисляет значение модуля N = P * Q. 3. Пользователь В вычисляет функцию Эйлера  (N) = (P –1) (Q –1) и выбирает случайным образом значение открытого ключа Кв с учетом выполнения условий: 1< Кв   (N), НОД (Кв,  (N)) =1. 4. Пользователь В вычисляет значение секретного ключа kв, используя расширенный алгоритм Евклида при решении сравнения kв  Кв–1 (mod  (N)). 5. Пользователь В пересылает пользователю А пару чисел (N, Кв) по незащищенному каналу. Если пользователь а хочет передать пользователю в сообщение м, он выполняет следующие шаги. 6. Пользователь А разбивает исходный открытый текст М на блоки, каждый из которых может быть представлен в ви-де числа Мi = 0, 1, 2, ..., N –1. 7. Пользователь А шифрует текст, представленный в виде последовательности чисел Мi по формуле K Ci = M (mod N) B i и отправляет криптограмму пользователю B. 8. Пользователь С1, С2, С3, ..., Ci, ... В расшифровывает принятую С1, С2, С3, ..., Ci, ..., используя секретный ключ kв, по формуле k Мi = C (mod N). криптограмму B i В результате будет получена последовательность чисел Мi, которые представляют собой исходное сообщение М. Чтобы алгоритм RSA имел практическую ценность, необходимо иметь возможность без существенных 71 затрат генерировать большие простые числа, уметь оперативно вычислять значения ключей Кв и kв. 4.3.2. Безопасность и быстродействие криптосистемы RSA Безопасность алгоритма RSA базируется на трудности решения задачи факторизации больших чисел, являющихся произведениями двух больших простых чисел. Действительно, криптостойкость алгоритма RSA определяется тем, что после формирования секретного ключа kв и открытого ключа Кв "стираются" значения простых чисел Р и Q, и тогда исключительно трудно определить секретный ключ kв по открытому ключу Кв, поскольку для этого необходимо решить задачу нахождения делителей Р и Q модуля N. Разложение величины N на простые множители Р и Q позволяет вычислить функцию  (N) = (P –1)(Q –1) и затем определить секретное значение kв, используя уравнение Кв  kв 1 (mod  (N)). Другим возможным способом криптоанализа алгоритма RSA является непосредственное вычисление или подбор значения функции  (N) = (P –1)(Q –1). Если установлено значение  (n), то сомножители P и Q вычисляются достаточно просто. В самом деле, пусть x = P + Q = N +1 –  (N), y = (P – Q)2 = (Р + Q)2 – 4N. Зная  (N), можно определить x и затем y; зная x и y, можно определить числа Р и Q из следующих соотношений: P = 1/2 (x + y ), Q = 1/2 (x – y ). Однако эта атака не проще задачи факторизации модуля N [28]. Задача факторизации является трудно разрешимой задачей для больших значений модуля N. Сначала авторы алгоритма RSA предлагали для вычисления модуля N выбирать простые числа P и Q случайным образом, по 50 десятичных разрядов каждое. Считалось, что такие большие числа N очень трудно разложить на простые множители. Один из авторов алгоритма RSA, P. Pайвест, полагал, что разложение на простые множители числа из почти 130 десятичных цифр, приведенного в их публикации, потребует более 40 квадриллионов лет машинного времени. Однако этот прогноз не оправдался из-за сравнительно быстрого прогресса компьютеров и их вычислительной мощности, а также улучшения алгоритмов факторизации. Ряд алгоритмов факторизации приведен в [45]. Один из наиболее быстрых алгоритмов, известных в настоящее время, алгоритм NFS (Number Field Sieve) может выполнить факторизацию большого числа N (с числом десятичных разрядов больше 120) за число шагов, оцениваемых величиной 2(ln n )1 / 3 (ln(lnn ))2 / 3 . В 1994 г. было факторизовано число со 129 десятичными цифрами. Это удалось осуществить математикам А.Ленстра и М.Манасси посредством e 72 организации распределенных вычислений на 1600 компьютерах, объединенных сетью, в течение восьми месяцев. По мнению А.Ленстра и М.Манасси, их работа компрометирует криптосистемы RSA и создает большую угрозу их дальнейшим применениям. Теперь разработчикам криптоалгоритмов с открытым ключом на базе RSA приходится избегать применения чисел длиной менее 200 десятичных разрядов. Самые последние публикации предлагают применять для этого числа длиной не менее 250 – 300 десятичных разрядов. Была сделана попытка расчета оценок безопасных длин ключей асимметричных криптосистем на ближайшие 20 лет исходя из прогноза развития компьютеров и их вычислительной мощности, а также возможного совершенствования алгоритмов факторизации. Эти оценки (табл.4.1.) даны для трех групп пользователей (индивидуальных пользователей, корпораций и государственных организаций), в соответствии с различием требований к их информационной безопасности. Конечно, данные оценки следует рассматривать как сугубо приблизительные, как возможную тенденцию изменений безопасных длин ключей асимметричных криптосистем со временем. Таблица 4.1 Оценки длин ключей для асимметричных криптосистем, бит Год Отдельные пользователи Корпорации Государственные организации 1995 2000 2005 2010 2015 768 1024 1280 1280 1536 1280 1280 1536 1536 2048 1536 1536 2048 2048 2048 Криптосистемы RSA реализуются как аппаратным, так и программным путем. Для аппаратной реализации операций зашифрования и расшифрования RSA разработаны специальные процессоры. Эти процессоры, реализованные на сверхбольших интегральных схемах (Сбис), позволяют выполнять операции RSA, связанные с возведением больших чисел в колоссально большую степень по модулю N, за относительно короткое время. И все же аппаратная реализация RSA примерно в 1000 раз медленнее аппаратной реализации симметричного криптоалгоритма DES. Одна из самых быстрых аппаратных реализаций RSA с модулем 512 бит на сверхбольшой интегральной схеме имеет быстродействие 64 Кбит/с. Лучшими из серийно выпускаемых СБИС являются процессоры фирмы CYLINK, выполняющие 1024-битовое шифрование RSA. Программная реализация RSA примерно в 100 раз медленнее программной реализации DES. С развитием технологии эти оценки могут несколько изменяться, но асимметричная криптосистема RSA никогда не достигнет быстродействия симметричных криптосистем. Следует отметить, что малое быстродействие криптосистем RSA ограничивает область их применения, но не перечеркивает их ценность. 73 4.4. Схема шифрования Полига – Хеллмана Схема шифрования Полига – Хеллмана [121] сходна со схемой шифрования RSA. Она представляет собой несимметричный алгоритм, поскольку используются различные ключи для шифрования и расшифрования. В то же время эту схему нельзя отнести к классу криптосистем с открытым ключом, так как ключи шифрования и расшифрования легко выводятся один из другого. Оба ключа (шифрования и расшифрования) нужно держать в секрете. Аналогично схеме RSA криптограмма C и открытый текст P определяются из соотношений: С = Ре mod n, P = Cd mod n, где ed 1 (по модулю некоторого составного числа). В отличие от алгоритма RSA в этой схеме число n не определяется через два больших простых числа; число n должно оставаться частью секретного ключа. Если кто-либо узнает значения e и n, он сможет вычислить значение d. не зная значений e или d, противник будет вынужден вычислять значение e = logP C (mod n). Известно, что это является трудной задачей. Схема шифрования Полига – Хеллмана запатентована в США и Канаде. 4.5. Схема шифрования Эль Гамаля Схема Эль Гамаля, предложенная в 1985 г., может быть использована как для шифрования, так и для цифровых подписей. Безопасность схемы эль гамаля обусловлена сложностью вычисления дискретных логарифмов в конечном поле. Для того чтобы генерировать пару ключей (открытый ключ – секретный ключ), сначала выбирают некоторое большое простое число Р и большое целое число G, причем G < P. Числа Р и G могут быть распространены среди группы пользователей. Затем выбирают случайное целое число X, причем X
«Основы информационной безопасности» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 493 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot