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

Защита информации

  • ⌛ 2018 год
  • 👀 1532 просмотра
  • 📌 1455 загрузок
  • 🏢️ СТИ НИТУ «МИСиС»
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Защита информации» pdf
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ ИМ. А.А. УГАРОВА (филиал) федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский технологический университет «МИСиС» Кафедра АИСУ Соловьев А.Ю. ЗАЩИТА ИНФОРМАЦИИ Курс лекций для студентов направления 15.03.04 – «Автоматизация технологических процессов и производств» (для всех форм обучения) Одобрено редакционно-издательским советом института Старый Оскол 2018 УДК 004.056.5 ББК 32.81 С603 Рецензент: директор ООО «АРЕС» Ященко Алексей Николаевич. Соловьев А.Ю. Защита информации. Курс лекций. – Старый Оскол: СТИ НИТУ «МИСиС», 2018. – 132с. Курс лекций по курсу «Защита информации» предназначено для студентов направления 15.03.04 – «Автоматизация технологических процессов и производств» для всех форм обучения. Курс лекций содержит: теоретические сведения по всем темам рабочей программы дисциплины; примеры по разделам и темам рабочей программы. Данные примеры могут быть полезными обучающимся для выполнения практических заданий и курсовой работы дисциплины © Соловьев А.Ю. © СТИ НИТУ «МИСиС» 2 СОДЕРЖАНИЕ Предисловие ......................................................................................................... 4 Лекция №1. Основные понятия и определения. Виды угроз .......................... 6 Лекция №2. Социальная инженерия ................................................................ 11 Лекция №3. Понятия криптографии. Симметричные криптосистемы ........ 26 Лекция №4. Асимметричные криптосистемы. ............................................... 72 Лекция №5. Электронная цифровая подпись и хэш-функции. Криптоанализ ...................................................................................................... 92 Лекция №6. Идентификация и аутентификация .......................................... 100 Лекция №7. Формальные модели безопасности. Механизмы защиты и контроля доступа в операционных и информационных системах .......... 108 Лекция №8. Безопасность АСУТП ................................................................ 122 Список использованных источников ............................................................. 130 3 Предисловие В курсе лекций рассматриваются современные аспекты защиты информации. Цель курса лекций научить обучающихся основным терминам и понятиям защиты информации, а именно в области криптографии, безопасного обмена информацией и сохранения целостности передаваемых сообщений. Задачи дисциплины:  Научить обучающихся применять теоретические знания в области защиты информации для решения конкретных практических задач по выбранному направлению подготовки;  Научить обучающихся основным угрозам защиты информации и способам их предотвращения;  Научить обучающихся разбираться в типовых атаках, направленных на ИС и программные продукты;  Научить обучающихся основным видам криптографических алгоритмов и их уязвимостей. Освоение дисциплины приводит к формированию следующих компетенций: № Код Содержание компетенции п/п компетенции 1 ОПК-2 способность решать стандартные задачи профессиональной деятельности на основе информационной и библиографической культуры с применением информационно-коммуникационных технологий и с учетом основных требований информационной безопасности 2 ОПК-3 способностью использовать современные информационные технологии, технику, прикладные программные средства при решении задач профессиональной деятельности 3 способностью аккумулировать научно-техническую ПК-18 информацию, отечественный и зарубежный опыт в 4 № Код Содержание компетенции п/п компетенции области автоматизации технологических процессов и производств, автоматизированного управления жизненным циклом продукции, компьютерных систем управления ее качеством 4 способностью проводить эксперименты по заданным методикам с обработкой и анализом их результатов, ПК-20 составлять описания выполненных исследований и подготавливать данные для разработки научных обзоров и публикаций Дисциплина «Защита информации» входит в базовую часть блока Б1 «Дисциплины (модули)». Для полноценного освоения учебного материала по дисциплине «Защита информации» обучающийся должен использовать знания, полученные при изучении следующих дисциплин:  Математика;  Информатика;  Правовые аспекты защиты информации;  Современные информационные технологии. Дисциплина «Защита информации» используется для освоения следующих дисциплин:  Управление жизненным циклом продукции;  Вычислительные средства и системы;  Проектирование систем управления. 5 Лекция №1. Основные понятия и определения. Виды угроз Под информационной безопасностью мы будем понимать защищенность информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, которые могут нанести неприемлемый ущерб субъектам информационных отношений, в том числе владельцам и пользователям информации и поддерживающей инфраструктуры. Защита информации – это комплекс мероприятий, направленных на обеспечение информационной безопасности. Придерживаясь принятой классификации, будем разделять все источники угроз на внешние и внутренние. Источниками внутренних угроз являются: 1. Сотрудники организации; 2. Программное обеспечение; 3. Аппаратные средства. Внутренние угрозы могут проявляться в следующих формах:  ошибки пользователей и системных администраторов;  нарушения сотрудниками фирмы установленных регламентов сбора, обработки, передачи и уничтожения информации;  ошибки в работе программного обеспечения;  отказы и сбои в работе компьютерного оборудования. К внешним источникам угроз относятся: 1. Компьютерные вирусы и вредоносные программы; 2. Организации и отдельные лица; 3. Стихийные бедствия. Формами проявления внешних угроз являются:  заражение компьютеров программами; 6 вирусами или вредоносными  несанкционированный доступ (НСД) к корпоративной информации;  информационный мониторинг со стороны конкурирующих структур, разведывательных и специальных служб;  действия государственных структур и служб, сопровождающиеся сбором, модификацией, изъятием и уничтожением информации;  аварии, пожары, техногенные катастрофы. Все перечисленные нами виды угроз (формы проявления) можно разделить на умышленные и неумышленные. По данным Института защиты компьютеров (CSI) и ФБР свыше 50% вторжений – дело рук собственных сотрудников компаний. Что касается частоты вторжений, то 21% опрошенных указали, что они испытали рецидивы "нападений". Несанкционированное изменение данных было наиболее частой формой нападения и в основном применялось против медицинских и финансовых учреждений. Свыше 50% респондентов рассматривают конкурентов как вероятный источник "нападений". Наибольшее значение респонденты придают фактам подслушивания, проникновения в информационные системы и "нападениям", в которых "злоумышленники" фальсифицируют обратный адрес, чтобы перенацелить поиски на непричастных лиц. Такими злоумышленниками наиболее часто являются обиженные служащие и конкуренты. По способам воздействия на объекты информационной безопасности угрозы подлежат программные, следующей физические, классификации: радиоэлектронные информационные, и организационно– правовые. К информационным угрозам относятся:  несанкционированный доступ к информационным ресурсам;  незаконное копирование данных в информационных системах; 7  хищение информации из библиотек, архивов, банков и баз данных;  нарушение технологии обработки информации;  противозаконный сбор и использование информации;  использование информационного оружия. К программным угрозам относятся:  использование ошибок и "дыр" в ПО;  компьютерные вирусы и вредоносные программы;  установка "закладных" устройств; К физическим угрозам относятся:  уничтожение или разрушение средств обработки информации и связи;  хищение носителей информации;  хищение программных или аппаратных ключей и средств криптографической защиты данных;  воздействие на персонал; К радиоэлектронным угрозам относятся:  внедрение электронных устройств перехвата информации в технические средства и помещения;  перехват, расшифровка, подмена и уничтожение информации в каналах связи. К организационно–правовым угрозам относятся:  закупки несовершенных или устаревших информационных технологий и средств информатизации;  принятии нарушение требований необходимых законодательства нормативно–правовых информационной сфере. 8 и задержка решений в в По способам Информационной осуществления Безопасности все меры подразделяются обеспечения на правовые, организационные, программные и аппаратные. Организационные меры защиты Организационные меры защиты – это меры, регламентирующие процессы функционирования системы обработки данных, порядок использования ее ресурсов, деятельность персонала, а также порядок взаимодействия пользователей с системой таким образом, чтобы максимально снизить возможность угроз безопасности. Они включают:  мероприятия, осуществляемые при проектировании, строительстве и оборудовании вычислительных центров и других объектов систем обработки данных;  мероприятиям по разработке правил доступа пользователей к ресурсам системы (разработка политики безопасности);  мероприятия, осуществляемые при подборе и подготовке персонала, обслуживающего систему;  организацию охраны и режима допуска к системе;  организацию учета, хранения, использования и уничтожения документов и носителей информации;  распределение реквизитов разграничения доступа;  организацию явного и скрытого контроля за работой пользователей;  мероприятия, осуществляемые при проектировании, разработке, ремонте и модификациях оборудования и программного обеспечения. Программные и аппаратные меры защиты Программные и аппаратные меры защиты основаны на использовании специальных программ и аппаратуры, входящих в состав 9 ИС и выполняющих (самостоятельно или в комплексе с другими средствами) функции защиты:  идентификацию и аутентификацию пользователей;  разграничение доступа к ресурсам;  регистрацию событий;  криптографические преобразования;  проверку целостности системы;  проверку отсутствия вредоносных программ;  программную защиту передаваемой информации и каналов связи;  защиту системы от наличия и появления нежелательной информации;  создание физических препятствий на путях проникновения нарушителей;  мониторинг и сигнализацию соблюдения правильности работы системы;  создание резервных копий ценной информации. 10 Лекция №2. Социальная инженерия Сегодня человеческий фактор в информационной безопасности играет гораздо более важную роль, чем 20 лет назад, когда Интернет не был коммерческим и его пользователями были лишь специалисты. Многие компании, которые думают, что проблему информационной безопасности можно решить просто с помощью аппаратных и программных средств, сильно заблуждаются. Технологии безопасности, которым мы привыкли доверять, – межсетевые экраны, устройства идентификации, средства шифрования, системы обнаружения сетевых атак и другие – малоэффективны в противостоянии хакерам, использующим методы социальной инженерии. Необходима мощная работа с персоналом, обучение сотрудников применению политики безопасности и техникам противостояния социоинженерам – только тогда ваша система безопасности будет комплексной. Социальная инженерия — совокупность подходов в прикладных социальных науках, ориентированных на: * изменение поведения и установок людей; * решение социальных проблем; * адаптацию социальных институтов к изменяющимся условиям; * сохранение социальной активности. (Глоссарий.ру) Собственно, подобные приемы не новы и известны еще со времен глубокой древности. Остается только удивляться тому, что за истекшие тысячелетия человечество так и не научилось противостоять мошенникам и отличать правду ото лжи. Еще удивительнее то, что арсенал злоумышленников не претерпел никаких принципиальных изменений. Напротив, с развитием коммуникационных технологий их задача значительно упростилась. Общаясь по Интернет, вы не видите и не слышите своего собеседника, более того, нет никаких гарантий, что 11 сообщение действительно отправлено тем адреса том, имя которого стоит в заголовке. Атакующий может находиться и в соседней комнате, и в соседнем городе, и даже на соседнем континенте! Все это значительно усложняет идентификацию личности, поиск и доказательство причастности злоумышленника к атаке. Стоит ли удивляться огромной популярности социальной инженерии среди молодежи? К счастью, подавляющее большинство мошенников действует по идентичным или близким шаблонам. Поэтому, изучение приемов их "работы" позволяет распознать обман и не попасться на удочку. Почему используют социальную инженерию? Современные технические средства защиты информации достигли уровня, когда на взлом затрачивается много времени, либо цена защищаемой информации много меньше расходов на её добывание. Вся социальная инженерия основывается на:  слабой безопасности (candy security) — термин, введенный Белловином и Чесвиком из Bell Labs для описания сценария безопасности, где внешняя граница, такая как брандмауэр, прочна, но инфраструктура, расположенная за ним, слаба;  согласно отечественным и зарубежным источникам около 70% (а по некоторым источникам эта цифра еще выше) всех нарушений, связанных с безопасностью информации, совершаются именно сотрудниками предприятия. Проанализировав диаграмму, непроизвольно возникает вопрос: «Почему сотрудник является наибольшим источником угроз?» Можно выделить 5 причин этого факта: 1) при нарушениях, вызванных безответственностью, сотрудник целенаправленно или случайно производит какие-либо действия по компрометации информации, связанные со злым умыслом; 12 2) бывает, что сотрудник предприятия ради самоутверждения (для себя или коллег) затевает своего рода игру «пользователь — против системы». И хотя намерения могут быть безвредными, будет нарушена сама практика безопасности. Такой вид нарушений называется зондированием системы; 3) нарушение может быть вызвано и корыстным интересом. В этом случае сотрудник будет пытаться целенаправленно преодолеть систему защиты для доступа к хранимой, перерабатываемой и обрабатываемой на предприятии информации; 4) известна практика переманивания специалистов, так как это позволяет ослабить конкурента и дополнительно получить информацию о предприятии. Таким образом, не обеспечив закрепление лиц, осведомленных в секретах, талантливых специалистов, невозможно в полной мере сохранить секреты предприятия. Вопросам предупреждения текучести кадров в зарубежных фирмах уделяют большое внимание. Представители японской администрации рассматривают компанию как совокупность различных ресурсов. При этом люди стоят на первом месте, т. к. именно они воплощают технологию и в них в первую очередь заключается конкурентоспособная сила фирмы. То есть текучесть кадров четвертая причина; 5) специалист, работающий с конфиденциальной информацией, испытывает отрицательное психическое воздействие, обусловленное спецификой этой деятельности. Поскольку сохранение чего-либо в тайне противоречит потребности человека в общении путем обмена информацией, сотрудник постоянно боится возможной угрозы утраты документов, содержащих секреты. Выполняя требования режима секретности, сотрудник вынужден действовать в рамках ограничения своей свободы, что может привести к стрессам и психологическим срывам. 13 Виды атак с использованием социальной инженерии Все виды атак подразделяются на: Прямые: 1. a. введение в заблуждение; b. спам; c. шантаж; обратные: 1. Введение в заблуждение (обман) Введение в заблуждение – основной "компонент" социальной инженерии, включающий в себя целый ряд всевозможных техник: выдача себя за другое лицо, отвлечение внимания, нагнетание психологического напряжения и т. д. Конечные цели обмана так же весьма разнообразны. Ниже мы рассмотрим лишь наиболее популярные из них: отъем ПО, получение несанкционированного доступа к конфиденциальной информации и уход от ответственности путем перевода подозрений на постороннее лицо. Бесплатное приобретение программных продуктов Хищение денег – это достаточно рискованный способ мошенничества и, в случае неудачи, он может обернуться лишением свободы на длительный срок. Поэтому, многие предпочитают воровать не деньги, а их материальное воплощение. Предположим, злоумышленнику требуется некоторый программный пакет и/или техническая консультация. Взломать демо-версию или атаковать локальную сеть фирмы разработчика? Чревато! Лучше, представившись журналистом, попросить один экземпляр программы в обмен на обещание разрекламировать ее в некотором популярном журнале. Какая фирма не клюнет на такую заманчивую перспективу? К тому же вместе с продуктом злоумышленник получит и квалифицированную техническую поддержку непосредственно 14 от самих разработчиков, а не девушек-операторов, обслуживающих рядовых клиентов. Уход от ответственности Успешно выполнить атаку – означает решить лишь половину задачи. Злоумышленнику еще предстоит замести за собой следы – уйти от ответственности и не попасться. А это, кстати, намного сложнее! Поэтому, матерые мошенники, похитив энную сумму денег, без тени жалости переводят большую ее часть на счет одного из сотрудников фирмы, который в принципе подходит на роль похитителя. Причем, это должен быть жадный, азартный и умственно недалекий человек, который, обнаружив на своем счете "лишние" деньги, с высокой степенью вероятности рискнет прикарманить добро, само идущее к нему в руки, а не побежит в милицию. Затем следует анонимный звонок (письмо) директору фирмы с сообщением: где следует искать пропавшие деньги и… жертве будет чрезвычайно трудно доказать, что она тут ни при чем, и убедить остальных, что ее подставили. Конечно, путь денег (кто именно перевел их жертве) проследить вполне возможно (особенно, если это крупная сумма), но, во-первых, злоумышленник может переводить деньги через подставное лицо. А, вовторых, даже будучи пойманным, он сможет заявить, что он не главарь, а пешка и вообще не знал, что деньги ворованные. При условии, что злоумышленник оставит себе меньшую часть награбленного, такая легенда будет звучать весьма убедительно. Поэтому, при "разборе полетов" ни в коем случае не хватайте первого попавшегося под руку обвиняемого – в большинстве случаев он действительно ни в чем не виновен. Другой способ "перевода стрелок" заключается в психологической обработке лиц, "помешанных" на подражательстве хакерам, но хакерами не являющимися. Сначала их убеждают, что пребывание в тюрьме – явление вполне нормальное для хакера, затем демонстрируют целую 15 серию эффективных "взломов", чем вызывают глубокое уважение к себе. Наконец, когда "клиент" готов, мошенник предлагает ему стать своим учеником, после чего руками ученика осуществляет реальный взлом. В случае раскрытия преступления ученик может и не выдать своего "наставника" (а при правильной психологической обработке и не выдаст, хоть режь его на куски). А, если даже и выдаст, следствию будет не так-то легко уличить злоумышленника, ведь все предыдущие атаки – фикция! "Наставник" без больших трудов сможет представить все это невинной игрой. Он де, просто забавлялся, не причиняя никому никакого вреда. А о том, кто руководил "учеником" в настоящей атаке, – не имеет ни малейшего представления. Несанкционированный доступ Приемы хищения паролей. Вероятно, самый известный прием похищения пароля – это звонок жертве от имени администратора системы или, напротив, администратору – от имени некоторого пользователя. Просьба в обоих случаях одна, – под каким бы то ни было предлогом сообщить пароль на некоторый ресурс. К счастью, актуальность атак этого типа за последний год незначительна. Однако не стоить питать иллюзий по поводу своей защищенности. Она в большинстве случаев мнимая. Лучший способ выведать пароль – не спрашивать его. Напротив, строго настрого запретить говорить! Это может выглядеть, например, так: «Алло, здравствуйте! С Вами проводит разъяснительную беседу эксперт по безопасности Вася Пупкин. Помните ли Вы, что никогда, ни при каких обстоятельствах, никому не должны сообщать свой пароль? А помните, что пароль должен состоять из комбинации букв и цифр? Кстати, какой он у Вас?» Поразительно, но многие, пропуская «разъяснительную беседу» мимо ушей, называют свой действительный пароль! Причем, атакующий в случае провала ничем не рискует, т.к. вопрос «какой у Вас пароль» можно 16 понимать двояко – какой именно пароль, и какой пароль вообще (длиннее восьми символов, является ли словарным словом или нет и т.д.). Для низко квалифицированных пользователей припасена и другая тактика. О том, что свой пароль разглашать ни в коем случае нельзя, их, вероятнее всего, уже предупредили. Но сказали ли им: где этот пароль хранится и как его можно обойти? Злоумышленник может попросить (а от имени начальника и приказать) выполнить некоторые, вполне безобидные с точки зрения жертвы действия, например, переслать PWL файл по такому-то адресу или создать нового пользователя с пустым паролем. (причем, выполняя по шагам расписанные действия, жертва, возможно, даже не осознает, что она вообще делает). Спам Спам (англ. spam) — рассылка коммерческой, политической и иной рекламы или иного вида сообщений лицам, не выражавшим желания их получать. Легальность массовой рассылки некоторых видов сообщений, для которых не требуется согласие получателей, может быть закреплена в законодательстве страны. Например, это может касаться сообщений о надвигающихся стихийных бедствиях, массовой мобилизации граждан и т. п. В общепринятом значении термин «спам» в русском языке впервые стал употребляться применительно к рассылке электронных писем. Незапрошенные сообщения в системах мгновенного обмена сообщениями (например, ICQ) носят название SPIM (англ. Spam over IM). Наиболее распространенные виды спама Реклама Некоторые компании, занимающиеся легальным бизнесом, рекламируют свои товары или услуги с помощью спама. Они могут осуществлять его рассылку самостоятельно, но чаще заказывают её тем компаниям (или лицам), которые на этом специализируются. Привлекательность такой рекламы заключается в её сравнительно низкой 17 стоимости и (предположительно) большом охвате потенциальных клиентов. Такая незапрошенная реклама может иметь и обратный эффект, вызывая отторжение у получателей, и даже может стать синонимом навязчивой рекламы, как это случилось с ветчиной SPAM. В связи с резким неприятием спама получателями и ужесточением антиспамового законодательства доля легальных товаров и услуг в общем объёме спама сокращается. Существует мнение, что, при правильной организации рекламных рассылок, они действительно могут увеличить продажи, не доставляя получателям особого беспокойства. Основными условиями взаимовыгодности для получателя и организатора рассылки являются:  совмещение ролей организатора рассылок и провайдера услуг электронной почты;  повышение качества целевой аудитории каждого конкретного рекламного письма рассылки;  предупреждение клиентов провайдером о том, что он будет рассылать рекламные письма;  предоставление удобных средств для блокировки нежелательных писем. Следует отметить, однако, что рекламные письма, рассылаемые пользователям с их согласия, по определению не являются спамом. Реклама незаконной продукции С помощью спама часто рекламируют продукцию, о которой нельзя сообщить другими способами — например, порнографию, контрафактные (поддельные) товары, лекарственные средства с ограничениями по обороту, незаконно полученную закрытую информацию (базы данных), контрафактное программное обеспечение. 18 Антиреклама Запрещенная законодательством о рекламе информация — например, порочащая конкурентов и их продукцию, — также может распространяться с помощью спама. «Нигерийские письма» Иногда спам используется для того, чтобы выманить деньги у получателя письма. Наиболее распространенный способ получил название «нигерийские письма», потому что большое количество таких писем приходило из Нигерии. Такое письмо содержит сообщение о том, что получатель письма может получить каким-либо образом большую сумму денег, а отправитель может ему в этом помочь. Затем отправитель письма просит перевести ему немного денег под предлогом, например, оформления документов или открытия счета. Выманивание этой суммы и является целью мошенников. Другие виды спама а. Письма счастья б. Распространение политической пропаганды. в. Массовая рассылка для вывода почтовой системы из строя (DoSатака). г. Массовая рассылка от имени другого лица, для того чтобы вызвать к нему негативное отношение. д. Массовая рассылка писем, содержащих компьютерные вирусы (для их начального распространения). е. Рассылка писем, содержащих душещипательную историю (как правило, о больном, либо пострадавшем в результате несчастного случая ребёнке) с информацией о том, что за каждую пересылку письма некий интернет-провайдер якобы выплатит семье пострадавшего определённую сумму денег «на лечение». Целью такой рассылки является сбор e-mail адресов: после многочисленных пересылок «всем знакомым» в тексте 19 такого письма часто содержатся e-mail адреса всех, кому оно было переслано ранее. А в числе очередных адресатов вполне может оказаться и инициировавший её спамер. Шантаж Используется, когда получить требуемое путем обмана ни к чему не приведут, то злоумышленник может отважиться на прямой шантаж сотрудников фирмы. Статистика показывает, что угроза физической расправы встречается довольно редко, а если и встречается, то в подавляющем большинстве случаев, лишь угрозой и остается. На первом месте лидируют обещания рассказать ревнивому мужу (жене) о супружеской измене – не важно, имела ли она место в действительности или нет. Для этого вовсе не обязательно устанавливать скрытые камеры или заниматься фотомонтажом – достаточно быть хорошим рассказчиком, умеющим убедить собеседника. Опасаясь за распад семьи, многие из нас идут на «мелкие» должностные преступления, оборачивающиеся, тем не менее, значительными убытками для фирмы. Второе место занимают угрозы убедить сына (дочь) в том, что вы не настоящие родители. Поскольку в подростковом возрасте между детьми и родителями часто случаются серьезные конфликты, вероятность того, что ребенок поверит постороннему дяде, чем и нанесет себе тяжелую душевную травму, отнюдь не нулевая! Обратная социальная инженерия Обратная социальная инженерия — социально-инженерная атака, в которой атакующий создает ситуацию, где жертва сталкивается с проблемой, и просит атакующего о помощи. Атакующий «плетет сети» для того, чтобы убедить жертву, что у него есть проблема, которая на самом деле не существует. Или, как в данном случае, проблема, которой пока нет, но атакующий знает, что она будет, так как он ее и создаст. Он представил себя человеком, способным 20 найти решение. Организация этого вида атаки особенно привлекательна для атакующего. Из-за того, что все было спланировано заранее, когда «цель» узнает, что у него есть проблема, он звонит и умоляет о помощи. Атакующий просто сидит и ждет, когда зазвенит телефон — эта тактика более известна, как обратная социальная инженерия. Атакующий, который может заставить жертву позвонить ему, получает мгновенное доверие: «если я позвоню кому-нибудь, кто, как мне кажется, из технической поддержки, я не буду просить его подтвердить свою личность». В этот момент можно считать, что атакующий уже победил. Техники и термины социальной инженерии Все техники социальной инженерии основаны на особенностях принятия решений людьми, называемых когнитивным базисом. Они также могут быть названы особенностью принятия решения человеческой и социальной психологий. Основанной на том что человек должен комулибо доверять в социальной среде воспитания. Претекстинг Претекстинг — это действие, отработанное по заранее составленному сценарию (претексту). В результате цель должна выдать определённую информацию, или совершить определённое действие. Этот вид атак применяется обычно по телефону. Чаще эта техника включает в себя больше, чем просто ложь, и требует каких-либо предварительных исследований (например, персонализации: дата рождения, сумма последнего счёта и др.), с тем, чтобы обеспечить доверие цели. К этому же виду относятся атаки и по онлайн мессенджерам, например, по icq Фишинг Фишинг (англ. phishing, от fishing — рыбная ловля, выуживание) — вид интернет-мошенничества, целью которого является получение доступа к конфиденциальным данным пользователей — логинам и паролям. Это достигается путём проведения массовых рассылок электронных писем от 21 имени популярных брендов, например, от имени социальных сетей (Facebook, Вконтакте), банков (Ситибанк, Альфа-банк), прочих сервисов (Rambler, Mail.ru). В письме часто содержится прямая ссылка на сайт, внешне не отличимый от настоящего. Оказавшись на таком сайте, пользователь может сообщить мошенникам ценную информацию, позволяющую получить доступ к аккаунтам и банковским счетам. Фишинг — одна из разновидностей социальной инженерии, основанная на незнании пользователями основ сетевой безопасности: в частности, многие не знают простого факта: сервисы не рассылают писем с просьбами сообщить свои учётные данные, пароль и прочее. Троянский конь Эта техника эксплуатирует любопытство, либо алчность цели. Злоумышленник отправляет e-mail, содержащий во вложении «клёвый» или «сексуальный» скрин-сейвер, важный апгрейд антивируса, или даже свежий компромат на сотрудника. Такая техника остаётся эффективной, пока пользователи будут слепо кликать по любым вложениям. Дорожное яблоко Этот метод атаки представляет собой адаптацию троянского коня, и состоит в использовании физических носителей. Злоумышленник может подбросить инфицированный CD, или флэш, в месте, где носитель может быть легко найден (туалет, лифт, парковка). Носитель подделывается под официальный, и сопровождается подписью, призванной вызвать любопытство. Пример. Представьте ситуацию: крупный московский офисный центр. Вы входите в лифт и видите на полу компакт-диск с логотипом известной компании и наклейкой: «Строго конфиденциально. Заработная плата сотрудников за 2009 год». Самая естественная человеческая реакция – взять этот диск, отнести в свой офис и вставить в CD-ROM своего рабочего компьютера. Предположим, вы так и сделали. На диске – 22 файл со знакомой иконкой MS Excel. Вы пытаетесь его открыть, но вместо столбиков цифр и фамилий видите лишь сообщение операционной системы: «ошибка, файл поврежден». В этот момент на ваш компьютер, помимо вашей воли и вашего ведома, загружается вредоносная программа. В лучшем случае это «троянец», отслеживающий, какие клавиши вы нажимаете и какие совершаете операции, и передающий эту информацию по мгновенно налаженному каналу связи на чужой компьютер. В худшем варианте – вирус, который в считанные мгновения разрушит вашу информационную систему и распространится по локальной сети, пожирая всю корпоративную информационную систему. Вы ведь подключены к локальной сети, правда? Кви про кво Кви про кво [лат. qui pro quo - одно вместо другого] - недоразумение, возникшее в результате того, что одно лицо, вещь или понятие принято за другое; путаница. Злоумышленник может позвонить по случайному номеру в компанию, и представиться сотрудником техподдержки, опрашивающим, есть ли какие-либо технические проблемы. В случае, если они есть, в процессе их «решения» цель вводит команды, которые позволяют хакеру запустить вредоносное программное обеспечение. Защита пользователей от социальной инженерии Для защиты пользователей от социальной инженерии можно применять как технические, так и антропогенные средства. Антропогенная защита Простейшими методами антропогенной защиты можно назвать а. Привлечение внимания людей к вопросам безопасности. б. Осознание пользователями всей серьезности проблемы и принятие политики безопасности системы. 23 в. Изучение и внедрение необходимых методов и действий для повышения защиты информационного обеспечения. Поскольку информационная безопасность – непрерывный процесс, то для обеспечения максимальной защиты фирмы базируется на обученности персонала и ответственности. На рисунках 4 и 5 приведены рекомендации по выявлению атак. Данные средства имеют один общий недостаток: они пассивны. Огромный процент пользователей не обращает внимание на предупреждения, даже написанные самым заметным шрифтом. Техническая защита К технической защите можно отнести средства, мешающие заполучить информацию и средства, мешающие воспользоваться полученной информацией. В целом средства обеспечения защиты информации в части предотвращения преднамеренных действий в зависимости от способа реализации можно разделить на группы: Технические (аппаратные) средства. Это различные по типу устройства (механические, электромеханические, электронные и др.), которые аппаратными средствами решают задачи защиты информации. Они либо препятствуют физическому проникновению, либо, если проникновение все же состоялось, доступу к информации, в том числе с помощью ее маскировки. Первую часть задачи решают замки, решетки на окнах, защитная сигнализация и др. Вторую — упоминавшиеся выше генераторы шума, сетевые фильтры, сканирующие радиоприемники и множество других устройств, «перекрывающих» потенциальные каналы утечки информации или позволяющих их обнаружить. Преимущества технических средств связаны с их надежностью, независимостью от субъективных факторов, высокой устойчивостью к модификации. Слабые 24 стороны — недостаточная гибкость, относительно большие объем и масса, высокая стоимость. Программные средства включают программы для идентификации пользователей, контроля доступа, шифрования информации, удаления остаточной (рабочей) информации типа временных файлов, тестового контроля системы защиты и др. Преимущества программных средств — универсальность, гибкость, надежность, простота установки, способность к модификации и развитию. Недостатки — ограниченная функциональность сети, использование части ресурсов файл-сервера и рабочих станций, преднамеренным высокая чувствительность изменениям, возможная к случайным зависимость от или типов компьютеров (их аппаратных средств). Смешанные аппаратно-программные средства реализуют те же функции, что аппаратные и программные средства в отдельности, и имеют промежуточные свойства. Организационные средства складываются из организационнотехнических (подготовка помещений с компьютерами, прокладка кабельной системы с учетом требований ограничения доступа к ней и др.) и организационно-правовых (национальные законодательства и правила работы, устанавливаемые руководством конкретного предприятия). Преимущества организационных средств состоят в том, что они позволяют решать множество разнородных проблем, просты в реализации, быстро реагируют на нежелательные действия в сети, имеют неограниченные возможности модификации и развития. Недостатки — высокая зависимость от субъективных факторов, в том числе от общей организации работы в конкретном подразделении. Примеры технических средств защиты: межсетевые экраны, шифрование, proxy-servers, СКУД, системы охраны и сигнализации. 25 Лекция №3. Понятия криптографии. Симметричные криптосистемы Проблемой защиты информации при ее передаче между абонентами люди занимаются на протяжении всей своей истории. Человечеством изобретено множество способов, позволяющих в той или иной мере скрыть смысл передаваемых сообщений от противника. На практике выработалось несколько групп методов защиты секретных посланий. Назовем некоторые из них, применяющиеся так же давно, как и криптографические. Первым способом является физическая защита материального носителя информации от противника. В качестве носителя данных может выступать бумага, компьютерный носитель (DVD-диск, флэш-карта, магнитный диск, жесткий диск компьютера и т.д.). Для реализации этого способа необходим надежный канал связи, недоступный для перехвата. В различное время для этого использовались почтовые голуби, специальные курьеры, радиопередачи на секретной частоте. Методы физической защиты информации используются и в современных автоматизированных системах обработки данных. Так, например, комплексные системы защиты информации невозможны без систем ограждения и физической изоляции, а также без охранных систем. Второй способ защиты информации, известный с давних времен – стеганографическая защита информации. Этот способ защиты основан на попытке скрыть от противника сам факт наличия интересующей его информации. При стеганографическом методе защиты от противника прячут физический носитель данных или маскируют секретные сообщения среди открытой, несекретной информации. К таким способам относят, например, "запрятывание" микрофотографии с тайной информацией в несекретном месте: под маркой на почтовом конверте, под обложкой книги и т.д. К стеганографии относятся также такие известные приемы, как "запрятывание" секретного послания в корешках книг, в пуговицах, в 26 каблуках, в пломбе зуба и т.д. Некоторые из методов были разработаны еще в древние времена. Так, например, греки нашли необычное решение: они брили наголо голову раба и выцарапывали на ней свое послание. Когда волосы на голове раба отрастали вновь, его посылали доставить сообщение. Получатель брил голову раба и прочитывал текст. К сожалению, на отправку сообщения и получение ответа таким способом уходило несколько недель. В более поздние времена в этом направлении наибольшее распространение получили химические (симпатические) чернила. Текст, написанный этими чернилами между строк несекретного сообщения, невидим. Он появлялся только в результате применения определенной технологии проявления. В условиях повсеместного использования информационных технологий возникают новые стеганографические приемы. Например, известен способ, при котором секретное сообщение прячется в файле графического изображения. При использовании этого способа младший значащий бит в описании каждого пикселя изображения заменяется битом сообщения. Разделив все исходное сообщение на биты и разместив эти биты по всему графическому файлу, мы пересылаем изображение с замаскированным сообщением получателю. Графическое изображение при этом меняется не слишком сильно, особенно если использовался режим с большим количеством цветов, например, с глубиной цвета 24 бита на пиксел. Это связано с тем, что человеческий глаз не может различать такое большое количество цветов. В результате в картинке размером всего 32 на 32 точки можно вместить тайное сообщение длиной 1024 бита или 128 байт. Третий способ защиты информации – наиболее надежный и распространенный в наши дни – криптографический . Этот метод защиты информации предполагает преобразование информации для сокрытия ее 27 смысла от противника. Криптография в переводе с греческого означает "тайнопись". В настоящее время криптография занимается поиском и исследованием математических методов преобразования информации. Наряду с криптографией развивается и совершенствуется криптоанализ – наука о преодолении криптографической защиты информации. Криптоаналитики исследуют возможности расшифровывания информации без знания ключей. Успешно проведенный криптоанализ позволяет получить ключ шифрования, или открытый текст, или то и другое вместе. Иногда криптографию и криптоанализ объединяют в одну науку – криптологию (kryptos - тайный, logos - наука), занимающуюся вопросами обратимого преобразования информации с целью защиты от несанкционированного доступа, оценкой надежности систем шифрования и анализом стойкости шифров. В настоящее время криптография прочно вошла в нашу жизнь. Перечислим лишь некоторые сферы применения криптографии в современном информатизированном обществе:  шифрование данных при передаче по открытым каналам связи (например, при совершении покупки в Интернете сведения о сделке, такие как адрес, телефон, номер кредитной карты, обычно зашифровываются в целях безопасности);  обслуживание банковских пластиковых карт;  хранение и обработка паролей пользователей в сети;  сдача бухгалтерских и иных отчетов через удаленные каналы связи;  банковское обслуживание предприятий через локальную или глобальную сеть;  безопасное от несанкционированного доступа хранение данных на жестком диске компьютера (в операционной системе 28 Windows даже имеется специальный термин – шифрованная файловая система (EFS)). До начала ХХ века криптографические методы применялись лишь для шифрования данных с целью защиты от несанкционированного доступа. В двадцатом веке в связи с развитием техники передачи информации на дальние расстояния интерес к криптографии значительно возрос. Благодаря созданию новых криптографических методов расширился и спектр задач криптографии. В настоящее время считается, что криптография предназначена решать следующие задачи:  собственно, шифрование данных с целью защиты от несанкционированного доступа;  проверка подлинности сообщений: получатель сообщения может проверить его источник;  проверка целостности передаваемых данных: получатель может проверить, не было ли сообщение изменено или подменено в процессе пересылки;  обеспечение невозможности отказа, то есть невозможности как для получателя, так и для отправителя отказаться от факта передачи. Системы шифрования варьируются от самых элементарных до очень сложных. И если первые не требуют никаких математических познаний, то в последних используются понятия, знакомые лишь специалистам в некоторых областях математики и информатики. При использовании криптографических методов должны учитываться затраты на защиту информации и на реализацию методов нападения. На практике стремятся к достижению компромисса между стоимостью шифрования и требуемой степенью обеспечения безопасности. В рамках данного курса лекций рассматриваются как простейшие, "докомпьютерные", шифры, известные человечеству на протяжении веков, 29 так и современные системы шифрования, разработанные только в XXI веке. Основные определения Теперь, узнав назначение криптографии, познакомимся с основными терминами, которые будем использовать при изучении криптографических методов защиты информации. Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты. Исходные сообщения обычно называют открытыми текстами. В иностранной литературе для открытого текста используют термин plaintext. Символ - это любой знак, в том числе буква, цифра или знак препинания. Алфавит - конечное множество используемых для кодирования информации символов. Например, русский алфавит содержит 33 буквы от А до Я. Однако этих тридцати трех знаков обычно бывает недостаточно для записи сообщений, поэтому их дополняют символом пробела, точкой, запятой и другими знаками. Алфавит арабских цифр – это символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 . Этот алфавит содержит 10 знаков и с его помощью можно записать любое натуральное число. Любое сообщение может быть записано также с помощью двоичного алфавита, то есть с использованием только нулей и единиц. Сообщение, полученное после преобразования с использованием любого шифра, называется шифрованным сообщением (закрытым текстом, криптограммой). В иностранной литературе для закрытого текста используют термин ciphertext. Преобразование открытого текста в криптограмму называется зашифрованием. Обратное действие называется расшифрованием. В 30 англоязычной литературе терминам "зашифрование/ расшифрование" соответствуют термины "enciphering/deciphering". Ключ – информация, необходимая для шифрования и расшифрования сообщений. С точки зрения русского языка термины "расшифрование" и "дешифрование" являются синонимами. Однако в работах по криптографии последних десятилетий часто эти слова различают. Будем считать, что термины "расшифрование" и "дешифрование" не являются синонимами. Примем, что расшифрованием занимается легальный получатель сообщения (тот, кто знает ключ), а человек, которому послание не предназначено, пытаясь понять его смысл, занимается дешифрованием. Система шифрования, или шифрсистема, – это любая система, которую можно использовать для обратимого изменения текста сообщения с целью сделать его непонятным для всех, кроме тех, кому оно предназначено. Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. способность противостоять криптоанализу). Таким образом, с учетом всех сделанных определений можно дать более точное определение науке "криптография". Криптография изучает построение и использование систем шифрования, в том числе их стойкость, слабости и степень уязвимости относительно различных методов вскрытия. Все методы преобразования информации с целью защиты от несанкционированного доступа делятся на две большие группы: методы шифрования с закрытым ключом и методы шифрования с открытым ключом. Шифрование с закрытым ключом (шифрование с секретным ключом или симметричное шифрование) используется человеком уже довольно долгое время. Для шифрования и расшифрования данных в этих 31 методах используется один и тот же ключ, который обе стороны стараются хранить в секрете от противника. Шифрование с открытым ключом (асимметричное шифрование) стало использоваться для криптографического закрытия информации лишь во второй половине ХХ века. В эту группу относятся методы шифрования, в которых для шифрования и расшифрования данных используются два разных ключа. При этом один из ключей (открытый ключ) может передаваться по открытому (незащищенному) каналу связи. Электронной присоединяемый (цифровой) к использованием подписью сообщению блок криптографического называется данных, обычно полученный преобразования. с Электронная подпись позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения. Криптографическая система защиты информации – система защиты информации, в которой используются криптографические методы для шифрования данных. Требования к криптографическим системам защиты информации Для разрабатываемых в настоящее время криптографических систем защиты информации сформулированы следующие общепринятые требования:  зашифрованное сообщение должно поддаваться чтению только при наличии ключа;  знание алгоритма шифрования не должно влиять на надежность защиты;  любой ключ из множества возможных должен обеспечивать надежную защиту информации;  алгоритм шифрования должен программную, так и аппаратную реализацию. 32 допускать как Не для всех алгоритмов шифрования перечисленные требования выполняются полностью. В частности, требование отсутствия слабых ключей (ключей, которые позволяют злоумышленнику легче вскрыть зашифрованное сообщение) не выполняется для некоторых "старых" блочных шифров. Однако все вновь разрабатываемые системы шифрования удовлетворяют перечисленным требованиям. Исторически дисциплина, криптография изучающая развивалась как практическая и разрабатывающая способы шифрования письменных сообщений. В распоряжении историков имеются данные, что криптографические методы применялись в Древнем Египте, Индии, Месопотамии. Так, например, в записях египетских жрецов есть сведения о системах и способах составления шифрованных посланий. Древние греки оставили документальные подтверждения о различных применяемых ими шифровальных системах. Греками, а вернее спартанцами, во время многочисленных войн применялось одно из первых шифровальных устройств – Сцитала. Сцитала представляла собой цилиндрический жезл определенного диаметра. На Сциталу виток к витку наматывалась узкая полоска папируса (или кожаного ремня). На намотанной ленте вдоль оси жезла писали открытое сообщение. Затем ленту разматывали и переправляли адресату. После снятия папируса с жезла выходило как будто буквы сообщения написаны в беспорядке поперек ленты. Если папирус попадал в руки противника, то секретное сообщение прочитать было невозможно. Для получения исходного текста была необходима Сцитала точно такого же диаметра – на нее наматывалась полученная полоска папируса, строки сообщения совмещались, и в результате можно было прочитать секретное послание. Ключом в данном методе шифрования являлся диаметр Сциталы. Интересно, что изобретение дешифровального "устройства" приписывается Аристотелю. Предполагается, что именно он предложил 33 использовать конусообразное "копье", на которое наматывалась перехваченная лента с зашифрованным сообщением. Лента с буквами передвигалась вдоль оси конуса до тех пор, пока не появлялся осмысленный текст. В Древней Греции использовались и другие шифры. Так, например, там был изобретен шифр, который в дальнейшем стал называться "квадратом Полибия". Согласно этому шифру буквы сообщения заменялись числами, представляющими собой координаты в квадрате 5x5, в который вписаны символы алфавита. Многочисленные исторические документы подтверждают, что в политике и в военном деле широко применялись различные шифры. В арабских странах шифрование сообщений довольно широко использовалось как в военных, так и в политических целях и даже в переписке между торговыми партнерами. Кстати, слово "шифр" арабского происхождения, так же, как и слово "цифра". В VIII – XV веках на свет появляются научные труды, содержащие сведения по криптографии: описания различных шифров и даже некоторых методов криптоанализа. Так, в многотомной энциклопедии "Шауба аль-Аша" упоминается о частотном криптоанализе (то есть анализе, основанном на частоте встречаемости букв открытого и зашифрованного сообщений). В этой же энциклопедии приводится таблица частотных характеристик букв арабского языка. В средние века криптографические методы использовались, прежде всего, в военном деле, шпионаже, дипломатии. Изучением шифров занимались священники, ученые и дипломаты. На практике применялись различные шифры. Первые труды по криптографии созданы в XIV – XVI веках Чикко Симоннети (сотрудником папской канцелярии), Габлиэлем де Лавиндой (секретарем папы Клементия XII), Леоном Баттистой Альберти (знаменитым итальянским архитектором 34 и философом), аббатом Иоганнесом Тритемием, жившем в Германии. Все указанные деятели внесли большой вклад в развитие криптографии, так как не только рассматривали в своих трудах существующие шифры, но и предлагали различные усовершенствованные методы шифрования, а также некоторые простейшие методы криптоанализа. Так, например, в трудах Симоннети и де Лавинды предлагаются шифры пропорциональной замены, в которых наиболее часто встречаемым буквам ставится в соответствие несколько символов для выравнивания частоты встречаемости знаков в шифротексте. Леон Альберти, вероятно, первым предложил так называемые полиалфавитные шифры. Нововведение Альберти состояло в том, чтобы использовать несколько замен в соответствии с ключом. Предполагается, что он также изобрёл первую автоматическую шифровальную машину — шифровальный диск, который осуществлял частичную реализацию его изобретения. В XVII-XVIII веках во многих государствах Европы появились специальные шифровальные службы. В России датой появления криптографической службы специалисты называют 1549 год, когда был создан "посольский приказ", в котором имелось "цифирное" отделение. В эпоху Петра I криптографическая служба была реорганизована в "Посольскую канцелярию". В различные времена криптографией занимались многие политики и ученые. Среди них Пифагор, Аристотель, Платон, Галилей, Д. Порта, Д. Кардано, Л. да Винчи, Ф. Виет, Д. Валлис, Б. Паскаль, И. Ньютон, Ф. Бекон, Х. Гольбах, Ф. Эпинус, Л. Эйлер, П.Ф. Шиллинг, Ч. Беббидж и другие. Огромное влияние на развитие криптографии оказывают достижения научно-технического прогресса. Так, например, в середине XIX века после изобретения телеграфа появилось несколько дипломатических и коммерческих шифров, ориентированных на применение телеграфа. 35 Возрастание скорости передачи данных требовало увеличения скорости шифрования. В конце XIX века появились механические шифраторы Т. Джефферсона и Ч. Уитстона. С конца XIX века криптография стала серьезной отраслью научных знаний и стала изучаться как отдельная наука в военных академиях. В XX веке появились новые возможности по передаче информации на большие расстояния с большой скоростью. В связи с применением радиосвязи расширились возможности доступа к шифрованной информации в процессе ее передачи. Научно-технический прогресс преобразил криптографию, которая стала вначале электромеханической, а затем электронной. В XX веке криптографической деятельности. шифрованию, перехвату по возникает специализация Появляются зашифрованных в специалисты по сообщений, по дешифрованию шифров противника. В 20-х годах XX века для автоматизации процесса шифрования появились многочисленные механические устройства. В частности, широко использовались роторные шифровальные машины, в которых для выполнения операций замены символов применялись механические колеса – роторы. Шифровальные машины преобразовывали открытый текст в зашифрованный, состоящий из символов того же алфавита. После преобразования зашифрованная информация могла передаваться различными способами, например, по радиоканалу. Во всех развитых странах, в том числе и в СССР, создавались высокоскоростные шифрмашины, которые широко применялись во время второй мировой войны и позже. В середине ХХ века разработкой криптографических алгоритмов стали заниматься профессиональные математики и специалисты в области информатики. Существенное влияние на развитие криптографии оказала работа американского инженера-математика К. Шеннона "Теория связи в 36 секретных системах", в которой были сформулированы и математически доказаны условия "невскрываемости" шифров. С 50-х годов ХХ века в криптографии используется электронная вычислительная техника. Начинается создание так называемых блочных шифров, которые позволяют обрабатывать информацию целыми фрагментами или блоками. Первоначально для операций блочного шифрования разрабатывали аппаратные устройства с жесткой логикой, однако стремительное развитие возможностей вычислительной техники позволило создать программные аналоги блочных систем шифрования. Криптографические программные и аппаратные средства стали использоваться в гражданских целях, например, в коммерческих системах передачи информации. С развитием информационных технологий криптография не только приобрела новые сферы применения, но и претерпела значительные изменения. В древние времена в процессе обмена зашифрованными сообщениями участвовало только две стороны, поэтому ключом шифрования необходимо было обеспечить только эти две стороны. В современных информационных системах в процессе передачи информации задействовано множество абонентов, и все они заинтересованы в надежных и удобных каналах получения ключей шифрования. Проблема распределения ключей была решена в двадцатом веке благодаря изобретению нового принципа шифрования – асимметричного шифрования или шифрования с открытым ключом (70-е годы ХХ в.). Основоположниками этого метода шифрования считаются У. Диффи и М. Хеллман. В асимметричных алгоритмах шифрования используются специальные математические функции – односторонние функции. Открытие асимметричных криптосистем позволило еще больше расширить сферы применения криптографии. Именно шифрование с открытым ключом лежит в основе процедур формирования цифровой подписи и 37 проверки подлинности, а, следовательно, и в основе принципов работы банковских пластиковых карт, "электронных" денег и других современных технологий. Новые сферы применения криптографии привлекают математиков к решению криптографических проблем, а также к созданию новых направлений в математике, теории информации и других смежных науках. Криптографические атаки Информация в процессе хранения, передачи и преобразования подвергается воздействию различных атак. Атаки осуществляются противниками (оппонентами, перехватчиками, врагами и т.д.). Основными нарушениями безопасности являются раскрытие информационных ценностей (потеря конфиденциальности), модификация без разрешения автора (потеря целостности) или неавторизованная потеря доступа к этим ценностям (потеря доступности) . Атаки могут быть пассивными и активными. Пассивной называется атака, при которой передаваемые противник сообщения. При не имеет пассивной возможности атаке изменять возможно лишь прослушивание передаваемых сообщений, их дешифрование и анализ трафика. При активной атаке противник имеет возможность модифицировать передаваемые сообщения и даже добавлять свои сообщения. Криптоанализ любого шифра невозможен без учета особенностей текстов сообщений, подлежащих шифрованию. Наиболее простыми характеристиками текстов, используемыми в криптоанализе, являются такие характеристики, как повторяемость букв, пар букв (биграмм) и вообще n-грамм, сочетаемость букв друг с другом, чередование гласных и согласных, и некоторые другие. Такие характеристики изучаются на основе наблюдений текстов достаточно большой длины. 38 Криптографические атаки можно классифицировать по количеству и типу информации, доступной для криптоанализа противником. По данной классификации выделяют следующие виды атак. Атака на основе шифротекста имеется в том случае, когда противник имеет для анализа шифротексты различных неизвестных открытых текстов, зашифрованные на одном и том же ключе. Задача криптоаналитика состоит в получении открытого текста как можно большего числа сообщений или в получении ключа, использованного при шифровании. Полученный ключ будет затем использован для дешифрования других сообщений. Атака на основе известного открытого текста имеет место в том случае, если криптоаналитик получает в свое распоряжение какие-либо открытые тексты, соответствующие раннее переданным зашифрованным сообщениям. Сопоставляя пары "текст-шифротекст", противник пытается узнать секретный ключ, чтобы с его помощью дешифровать все последующие сообщения. Некоторым покажется, что противнику достаточно сложно заполучить в свое распоряжение некоторое количество пар "текст-шифротекст". На самом деле практически всегда возможно достать такие кусочки открытого текста и шифротекста. Криптоаналитик может иметь информацию о формате перехваченного зашифрованного файла: например, знать, что это файл с изображением JPEG, документ Word или Excel, файл базы данных или что-то еще. Все эти и многие другие форматы содержат определенные стандартные заголовки или фрагменты. Таким образом, специалист по криптоанализу сможет сформировать необходимые данные для проведения атаки на основе известного открытого текста. Возможен еще более "серьезный" для передающих сторон вариант – это атака на основе выбранного открытого текста. В этом случае криптоаналитик имеет возможность 39 не только использовать предоставленные ему пары "текст-шифротекст", но и сам формировать нужные ему тексты и шифровать их с помощью того ключа, который он хочет узнать. Известно, что во время второй мировой войны американцы, подкупив охрану, выкрали шифровальную машину в японском посольстве на два дня и имели возможность формировать и подавать ей на вход различные тексты и получать соответствующие шифровки. (Они не могли взломать машину с целью непосредственного определения заложенного в нее секретного ключа, так как это было бы замечено и повлекло бы за собой смену всех ключей.) Долгое время разработчики криптосистем пытались сделать свои алгоритмы шифрования неуязвимыми по отношению только к атакам по шифротексту и обеспечивать организационно невозможность атак по открытому или выбранному тексту. Для этого держали в тайне алгоритмы шифрования, устройства шифровальных машин, тщательно проверяли на надежность персонал, имеющий доступ к криптосистемам. Однако еще в XIX веке специалисты в области криптографии предположили, что секретность алгоритма шифрования не является гарантией от взлома. Более того, в дальнейшем было понято, что понастоящему надежная защищённой, даже система если шифрования противник должна полностью оставаться узнал алгоритм шифрования. Секретность ключа должна быть достаточна для хорошего шифра, чтобы сохранить фундаментальный Керкхоффсом (A. принцип стойкость к впервые был Kerckhoffs) и обычно попыткам взлома. сформулирован называется в Этот 1883 принципом Керкхоффса. Разработчики современных криптографических систем используют именно такой подход, предполагая возможность атак по выбранному тексту. В настоящее время создаваемые алгоритмы шифрования всесторонне изучаются большим числом специалистов, оцениваются по 40 различным показателям, в том числе и по возможности противостоять атакам по выбранному тексту. Общая схема симметричного шифрования Классическая, или одноключевая криптография опирается на использование симметричных алгоритмов шифрования, в которых шифрование и расшифрование отличаются только порядком выполнения и направлением некоторых шагов. Эти алгоритмы используют один и тот же секретный элемент (ключ), и второе действие (расшифрование) является простым обращением первого (шифрования). Поэтому обычно каждый из участников обмена может как зашифровать, так и расшифровать сообщение. Схематичная структура такой системы представлена на рис. 3.1. Рис. 3.1. Общая структура секретной системы, использующей симметричное шифрование На передающей стороне имеются источник сообщений и источник ключей. Источник ключей выбирает конкретный ключ К среди всех возможных ключей данной системы. Этот ключ К передается некоторым 41 способом принимающей стороне, причем предполагается, что его нельзя перехватить, например, ключ передается специальным курьером (поэтому симметричное шифрование называется также шифрованием с закрытым ключом). Источник сообщений формирует некоторое сообщение М, которое затем шифруется с использованием выбранного ключа. В результате процедуры шифрования получается зашифрованное сообщение Е (называемое также криптограммой). Далее криптограмма Е передается по каналу связи. Так как канал связи является открытым, незащищенным, например, радиоканал или компьютерная сеть, то передаваемое сообщение может быть перехвачено противником. На принимающей стороне криптограмму Е с помощью ключа расшифровывают и получают исходное сообщение М. Если М – сообщение, К – ключ, а Е – зашифрованное сообщение, то можно записать E=f(M,K) то есть зашифрованное сообщение Е является некоторой функцией от исходного сообщения криптографической М системе и метод ключа или К. Используемый алгоритм шифрования в и определяет функцию f в приведенной выше формуле. По причине большой избыточности естественных языков непосредственно в зашифрованное сообщение чрезвычайно трудно внести осмысленное изменение, поэтому классическая криптография обеспечивает также защиту от навязывания ложных данных. Если же естественной избыточности оказывается недостаточно для надежной защиты сообщения от модификации, избыточность может быть искусственно увеличена путем добавления к сообщению специальной контрольной комбинации, называемой имитовставкой. 42 Известны разные методы шифрования с закрытым ключом рис. 3.2. На практике часто используются алгоритмы перестановки, подстановки, а также комбинированные методы. Рис. 3.2. Методы шифрования с закрытым ключом В методах перестановки символы исходного текста меняются местами друг с другом по определенному правилу. В методах замены (или подстановки) символы открытого текста заменяются некоторыми эквивалентами шифрованного текста. С целью повышения надежности шифрования текст, зашифрованный с помощью одного метода, может быть еще раз зашифрован с помощью другого метода. В этом случае получается комбинированный или композиционный шифр. Применяемые на практике в настоящее время блочные или поточные симметричные шифры также относятся к комбинированным, так как в них используется несколько операций для зашифрования сообщения. 43 Основное отличие современной криптографии от криптографии "докомпьютерной" заключается в том, что раньше криптографические алгоритмы оперировали символами естественных языков, например, буквами английского или русского алфавитов. Эти буквы переставлялись или заменялись другими по определенному правилу. В современных криптографических алгоритмах используются операции над двоичными знаками, то есть над нулями и единицами. В настоящее время основными операциями при шифровании также являются перестановка или подстановка, причем для повышения надежности шифрования эти операции применяются вместе (комбинируются) и помногу раз циклически повторяются. Методы замены Методы шифрования заменой (подстановкой) основаны на том, что символы исходного текста, обычно разделенные на блоки и записанные в одном алфавите, заменяются одним или несколькими символами другого алфавита в соответствии с принятым правилом преобразования. Одноалфавитная замена Одним из одноалфавитные важных (или подклассов методов моноалфавитные) замены подстановки, в являются которых устанавливается однозначное соответствие между каждым знаком ai исходного алфавита сообщений A и соответствующим знаком ei зашифрованного текста E. Одноалфавитная подстановка иногда называется также простой заменой, так как является самым простым шифром замены. Примером одноалфавитной замены является шифр Цезаря, рассмотренный ранее. В общем случае при одноалфавитной подстановке происходит однозначная замена исходных символов их эквивалентами из вектора 44 замен (или таблицы замен). При таком методе шифрования ключом является используемая таблица замен. Подстановка может быть задана с помощью таблицы, например, как показано на рис. 3.3. Рис. 3.3. Пример таблицы замен для двух шифров В таблице на рис. 3.3 на самом деле объединены сразу две таблицы. Одна (шифр 1) определяет замену русских букв исходного текста на другие русские буквы, а вторая (шифр 2) – замену букв на специальные символы. Исходным алфавитом для обоих шифров будут заглавные русские буквы (за исключением букв "Ё" и "Й"), пробел и точка. Зашифрованное сообщение с использованием любого шифра моноалфавитной подстановки получается следующим образом. Берется очередной знак из исходного сообщения. Определяется его позиция в столбце "Откр. текст" таблицы замен. В зашифрованное сообщение вставляется шифрованный символ из этой же строки таблицы замен. Попробуем зашифровать сообщение "ВЫШЛИТЕ ПОДКРЕПЛЕНИЕ" c использованием этих двух шифров ( рис. 3.4). Для этого берем первую букву исходного сообщения "В". В таблице на рис. 3.3 45 в столбце "Шифр 1" находим для буквы "В" заменяемый символ. Это будет буква "О". Записываем букву "О" под буквой "В". Затем рассматриваем второй символ исходного сообщения – букву "Ы". Находим эту букву в столбце "Откр. текст" и из столбца "Шифр 1" берем букву, стоящую на той же строке, что и буква "Ы". Таким образом получаем второй символ зашифрованного сообщения – букву "Н". Продолжая действовать аналогично, зашифровываем все исходное сообщение (рис. 3.4). Рис. 3.4. Пример шифрования методом прямой замены Полученный таким образом текст имеет сравнительно низкий уровень защиты, так как исходный и зашифрованный тексты имеют одинаковые статистические закономерности. При этом не имеет значения, какие символы использованы для замены – перемешанные символы исходного алфавита или таинственно выглядящие знаки. Многоалфавитные подстановки В целях маскирования естественной частотной статистики исходного языка применяется многоалфавитная подстановка, которая также бывает нескольких видов. В многоалфавитных подстановках для замены символов исходного текста используется не один, а несколько алфавитов. Обычно алфавиты для замены образованы из символов исходного алфавита, записанных в другом порядке. 46 Примером многоалфавитной подстановки может служить схема, основанная на использовании таблицы Вижинера. Этот метод, известный уже в XVI веке, был описан французом Блезом Вижинером в "Трактате о шифрах", вышедшем в 1585 году. В этом методе для шифрования используется таблица, представляющая собой квадратную матрицу с числом элементов NxN, где N — количество символов в алфавите . В первой строке матрицы записывают буквы в порядке очередности их в исходном алфавите, во второй — ту же последовательность букв, но с циклическим сдвигом влево на одну позицию, в третьей — со сдвигом на две позиции и т. д. Для шифрования текста выбирают ключ, представляющий собой некоторое слово или набор символов исходного алфавита. Далее из полной матрицы выписывают подматрицу шифрования, включающую первую строку и строки матрицы, начальными буквами которых являются последовательно буквы ключа В процессе шифрования (рис. 3.5) под каждой буквой шифруемого текста записывают буквы ключа, повторяющие ключ требуемое число раз, затем шифруемый текст по таблице шифрования (http://www.intuit.ru/studies/courses/691/547/lecture/12373?page=3 - table.2.7) заменяют буквами, расположенными на пересечениях линий, соединяющих буквы текста первой строки таблицы и буквы ключа, находящейся под ней. Например, под первой буквой исходного текста "М" записана буква "В" ключа. В таблице кодирования находим столбец, начинающийся с "М" и строку, начинающуюся с "В". На их пересечении располагается буква "О". Она и будет первым символом зашифрованного сообщения (на рис. 3.5 эта буква выделена прямоугольной рамочкой). Следующая буква исходного сообщения – "Е", символ ключа – тоже "Е". Находим 47 пересечение строки, начинающейся с "Е", и столбца, начинающегося с "Е". Это будет буква "Л" – второй символ зашифрованного сообщения. Рис. 3.5. Механизм шифрования многоалфавитной заменой Особенность данного метода многоалфавитной подстановки заключается в том, что каждый из символов ключа используется для шифрования одного символа исходного сообщения. После использования всех символов ключа, они повторяются в том же порядке. Если используется ключ из десяти букв, то каждая десятая буква сообщения шифруется одним и тем же символом ключа. Этот параметр называется периодом шифра. Если ключ шифрования состоит из одного символа, то при шифровании будет использоваться одна строка таблицы Вижинера, следовательно, в этом случае мы получим моноалфавитную подстановку, а именно шифр Цезаря. С целью повышения надежности шифрования текста можно использовать подряд два или более зашифрования по методу Вижинера с разными ключами (составной шифр Вижинера). На практике кроме метода Вижинера использовались также различные модификации этого метода. Например, шифр Вижинера с перемешанным один раз алфавитом. В этом случае для расшифрования 48 сообщения получателю необходимо кроме ключа знать порядок следования символов в таблице шифрования. Еще одним примером метода многоалфавитной подстановки является шифр с бегущим ключом или книжный шифр. В этом методе один текст используется в качестве ключа для шифрования другого текста. В эпоху "докомпьютерной" криптографии в качестве ключа для шифра с бегущим ключом выбирали какую-нибудь достаточно толстую книгу; от этого и произошло второе название этого шифра. Периодом в таком методе шифрования будет длина выбранного в качестве ключа произведения. Методы многоалфавитной подстановки, в том числе и метод Вижинера, значительно труднее поддаются "ручному" криптоанализу. Для вскрытия методов многоалфавитной замены разработаны специальные, достаточно сложные алгоритмы. С использованием компьютера вскрытие метода многоалфавитной подстановки возможно достаточно быстро благодаря высокой скорости проводимых операций и расчетов. В первой половине ХХ века для автоматизации процесса выполнения многоалфавитных подстановок стали широко применять роторные шифровальные машины. Главными элементами в таких устройствах являлись роторы – механические колеса, используемые для выполнения подстановки. Роторная шифровальная машина содержала обычно клавиатуру и набор роторов. Каждый ротор содержал набор символов (по количеству в алфавите), размещенных в произвольном порядке, и выполнял простую одноалфавитную подстановку. После выполнения первой замены символы сообщения обрабатывались вторым ротором и так далее. Роторы могли смещаться, что и задавало ключ шифрования. Некоторые роторные машины выполняли также и перестановку символов в процессе шифрования. Самым известным устройством подобного класса являлась немецкая шифровальная роторная машина Энигма (лат. Enigma 49 — загадка), использовавшаяся во время второй мировой войны. Выпускалось несколько моделей Энигмы с разным числом роторов. В шифрмашине Энигма с тремя роторами можно было использовать 16900 разных алфавитов, и все они представляли собой различные перестановки символов. Методы гаммирования Еще одним частным случаем многоалфавитной подстановки является гаммирование. В этом способе шифрование выполняется путем сложения символов исходного текста и ключа по модулю, равному числу букв в алфавите. Если в исходном алфавите, например, 33 символа, то сложение производится по модулю 33. Такой процесс сложения исходного текста и ключа называется в криптографии наложением гаммы. Пусть символам исходного алфавита соответствуют числа от 0 (А) до 32 (Я). Если обозначить число, соответствующее исходному символу, x, а символу ключа – k, то можно записать правило гаммирования следующим образом: z = x + k (mod N), где z – закодированный символ, N - количество символов в алфавите, а сложение по модулю N - операция, аналогичная обычному сложению, с тем отличием, что если обычное суммирование дает результат, больший или равный N, то значением суммы считается остаток от деления его на N. Например, пусть сложим по модулю 33 символы Г (3) и Ю (31): 3 + 31 (mod 33) = 1, то есть в результате получаем символ Б, соответствующий числу 1. Наиболее часто на практике встречается двоичное гаммирование. При этом используется двоичный алфавит, а сложение производится по модулю два. Операция сложения по модулю 2 часто обозначается , то есть можно записать: z=x+k(mod2)=xk. 50 Операция сложения по модулю два в алгебре логики называется также "исключающее ИЛИ" или по-английски XOR. Рассмотрим пример. Предположим, нам необходимо зашифровать десятичное число 14 методом гаммирования с использованием ключа 12. Для этого вначале необходимо преобразовать исходное число и ключ (гамму) в двоичную форму: 14(10)=1110(2), 12(10)=1100(2). Затем надо записать полученные двоичные числа друг под другом и каждую пару символов сложить по модулю два. При сложении двух двоичных знаков получается 0, если исходные двоичные цифры одинаковы, и 1, если цифры разные: 00=0 01=1 10=1 11=1 Сложим по модулю два двоичные числа 1110 и 1100: Исходное число 1 1 1 0 Гамма 1 1 0 0 Результат 0 0 1 0 В результате сложения получили двоичное число 0010. Если перевести его в десятичную форму, получим 2. Таким образом, в результате применения к числу 14 операции гаммирования с ключом 12 получаем в результате число 2. Каким же образом выполняется расшифрование? Зашифрованное число 2 представляется в двоичном виде и снова производится сложение по модулю 2 с ключом: Зашифрованное число 0 0 1 0 Гамма 1100 Результат 1 1 1 0 51 Переведем полученное двоичное значение 1110 в десятичный вид и получим 14, то есть исходное число. Таким образом, при гаммировании по модулю 2 нужно использовать одну и ту же операцию как для зашифрования, так и для расшифрования. Это позволяет использовать один и тот же алгоритм, а соответственно и одну и ту же программу при программной реализации, как для шифрования, так и для расшифрования. Операция сложения по модулю два очень быстро выполняется на компьютере (в отличие от многих других арифметических операций), поэтому наложение гаммы даже на очень большой открытый текст выполняется практически мгновенно. Благодаря указанным достоинствам метод гаммирования широко применяется в современных технических системах сам по себе, а также как элемент комбинированных алгоритмов шифрования. Сформулируем, как производится гаммирование по модулю 2 в общем случае:  символы исходного текста и гамма представляются в двоичном коде и располагаются один под другим, при этом ключ (гамма) записывается столько раз, сколько потребуется;  каждая пара двоичных знаков складывается по модулю  полученная два; последовательность двоичных знаков кодируется символами алфавита в соответствии с выбранным кодом. На рис. 3.6 показано, как применяется гаммирование к тексту с русскими символами. Символы кодируются в соответствии с принятой кодировкой, а затем производится сложение по модулю 2. При использовании метода гаммирования ключом является последовательность, с которой производится сложение – гамма. Если гамма короче, чем сообщение, предназначенное для зашифрования, гамма 52 повторяется требуемое число раз. Так в примере на рис. 3.6 длина исходного сообщения равна двенадцати байтам, а длина ключа – пяти байтам. Следовательно, для зашифрования гамма должна быть повторена 2 раза полностью и еще один раз частично. Рис. 3.6. Механизм гаммирования Чем длиннее ключ, тем надежнее шифрование методом гаммирования. На практике длина ключа ограничена возможностями аппаратуры обмена данными и вычислительной техники, а именно выделяемыми объемами памяти под ключ, временем обработки сообщения, а также возможностями аппаратуры подготовки и записи последовательностей ключей. Кроме того, для использования ключа вначале необходимо каким-либо надежным способом доставить его обеим 53 сторонам, обменивающимся сообщениями. Это приводит к возникновению проблемы распределения ключей, сложность решения которой возрастает с увеличением длины ключа и количества абонентов в сети передачи сообщений. Методы перестановки При использовании шифров перестановки входной поток исходного текста делится на блоки, в каждом из которых выполняется перестановка символов. Перестановки в классической "докомпьютерной" криптографии получались в результате записи исходного текста и чтения шифрованного текста по разным путям геометрической фигуры. Простейшим примером перестановки является перестановка с фиксированным периодом d. В этом методе сообщение делится на блоки по d символов и в каждом блоке производится одна и та же перестановка. Правило, по которому производится перестановка, является ключом и может быть задано некоторой перестановкой первых d натуральных чисел. В результате сами буквы сообщения не изменяются, но передаются в другом порядке. Например, для d=6 в качестве ключа перестановки можно взять 436215. Это означает, что в каждом блоке из 6 символов четвертый символ становится на первое место, третий – на второе, шестой – на третье и т.д. Пусть необходимо зашифровать такой текст: ЭТО_ТЕКСТ_ДЛЯ_ШИФРОВАНИЯ Количество символов в исходном сообщении равно 24, следовательно, сообщение необходимо разбить на 4 блока. Результатом шифрования с помощью перестановки 436215 будет сообщение _ОЕТЭТ_ТЛСКДИШР_ЯФНАЯВОИ Теоретически, если блок состоит из d символов, то число возможных перестановок В d!=1*2*...*(d-1)*d. последнем примере d=6, следовательно, число перестановок равно 6!=1*2*3*4*5*6=720. Таким 54 образом, если противник перехватил зашифрованное сообщение из рассмотренного примера, ему понадобится не более 720 попыток для раскрытия исходного сообщения (при условии, что размер блока известен противнику). Для повышения криптостойкости можно последовательно применить к шифруемому сообщению две или более перестановки с разными периодами. Другим примером методов перестановки является перестановка по таблице. В этом методе производится запись исходного текста по строкам некоторой таблицы и чтение его по столбцам этой же таблицы. Последовательность заполнения строк и чтения столбцов может быть любой и задается ключом. Существуют и другие способы перестановки, которые можно реализовать программным и аппаратным путем. Например, при передаче данных, записанных в двоичном виде, удобно использовать аппаратный блок, который перемешивает определенным образом с помощью соответствующего электрического монтажа биты исходного n-разрядного сообщения. Так, если принять размер блока равным восьми битам, можно, к примеру, использовать такой блок перестановки, как на рис. 3.7. Рис. 3.7. Аппаратный блок перестановки 55 Для расшифрования на приемной стороне устанавливается другой блок, восстанавливающий порядок цепей. Аппаратно реализуемая перестановка широко используется на практике как составная часть некоторых современных шифров. При перестановке любого вида в зашифрованное сообщение будут входить те же символы, что и в открытый текст, но в другом порядке. Следовательно, статистические закономерности языка останутся без изменения. Это дает криптоаналитику возможность использовать различные методы для восстановления правильного порядка символов. Если у противника есть возможность пропускать через систему шифрования методом перестановки специально подобранные сообщения, то он сможет организовать атаку по выбранному тексту. Так, если длина блока в исходном тексте равна N символам, то для раскрытия ключа достаточно пропустить через шифровальную систему N-1 блоков исходного текста, в которых все символы, кроме одного, одинаковы. Другой вариант атаки по выбранному тексту возможен в случае, если длина блока N меньше количества символов в алфавите. В этом случае можно сформировать одно специальное сообщение из разных букв алфавита, расположив их, например, по порядку следования в алфавите. Пропустив подготовленное таким образом сообщение через шифровальную систему, специалисту по криптоанализу останется только посмотреть, на каких позициях очутились символы алфавита после шифрования, и составить схему перестановки. Мы рассмотрели общую схему симметричного шифрования и классификацию простейших методов шифрования с закрытым ключом. Далее мы познакомимся с принципами построения современных блочных алгоритмов 56 Алгоритмы симметричного шифрования могут обрабатывать исходный текст блоками или потоком. В зависимости от этого различают блочные алгоритмы симметричного шифрования и поточные. Блок текста рассматривается как неотрицательное целое число либо как несколько независимых неотрицательных целых чисел. Длина блока всегда выбирается равной степени двойки, например, 64, 128, 256 бит. Операции, используемые в блочных алгоритмах симметричного шифрования Рассмотрим операции, используемые в большинстве алгоритмов симметричного шифрования. Будем при этом помнить, что рассматриваемые операции применяются к двоичным данным. Любая информация, например, изображения или текст, могут быть представлены в двоичном виде. Благодаря этому при шифровании не приходится задумываться о смысле передаваемых сообщений. Одна из часто используемых операций – операция побитового сложения по модулю 2, обозначаемая XOR или . При сложении по модулю 2 операнды обрабатываются поразрядно. В разряде результата ставится единица, если в соответствующих разрядах операндов присутствует нечетное число единиц. Например, сложим по модулю 2 два 16-разрядных чи Эта операция имеет очень удобное свойство: вычитание по модулю два есть то же самое, что и сложение, поэтому один из операндов может быть получен путем прибавления к сумме другого операнда. Также в блочных алгоритмах шифрования широко используется операция сложения по модулю 232 или по модулю 216. Эта операция 57 представляет собой обыкновенное сложение двоичных чисел без учета переноса в старший 32-й или 16-й разряд результата. Например, сложим по модулю 216 два 16-разрядных числа: Перенос из 15-го разряда, обозначенный в примере как единица в скобках, дальше не используется и поэтому отбрасывается. Циклический сдвиг передвигает цепочку бит на некоторое число разрядов влево или вправо. Двоичное число при выполнении операции сдвига напоминает длинную гусеницу, выползающую с одной стороны туннеля и заползающую с другой. При циклическом сдвиге влево биты, выходящие слева за разрядную сетку дописываются справа на освободившиеся места. При циклическом сдвиге вправо все биты передвигаются цепочкой вправо, а те, которым не хватает места, переносятся в хвост цепочки. Например, выполним циклический сдвиг двоичного числа влево на 3 разряда. Для этого будем 3 раза переписывать двоичные цифры, каждый раз смещая их влево на 1 разряд и перенося знаки, выходящие из пятнадцатого разряда на место нулевого. Аналогично выполняется и циклический сдвиг вправо. Например, при сдвиге вправо на 3 разряда нулевой, первый и второй биты исходного числа выходят из разрядной сетки и запоминаются, все остальные биты 58 перемещаются вправо на 3 позиции, затем запомненные цифры записываются на тринадцатое, четырнадцатое и пятнадцатое места. При выполнении табличной подстановки группа битов отображается в другую группу битов. При этой операции один блок двоичных данных заменяется по определенному правилу или таблице другим блоком. Табличную подстановку в литературе иногда называют заменой с использованием S-блоков или S-box. (Буква S взята от английского слова substitution – подстановка). С помощью операции перемещения биты сообщения переупорядочиваются. Перемещение называют также permutation или Pблоком. Структура блочного алгоритма симметричного шифрования Таким образом, в алгоритмах симметричного шифрования часто используются операции сложения по модулю 2, сложения по модулю 216 или 232, циклического сдвига, замены и перестановки. Эти операции циклически повторяются в алгоритме N раз, образуя так называемые раунды или шаги. Исходными данными для каждого раунда являются выход предыдущего раунда и ключ, который получен по определенному алгоритму из общего ключа шифрования K. Ключ раунда называется подключом Кi. В результате блочный алгоритм шифрования может быть представлен следующим образом (рис. 3.8). 59 Рис. 3.8. Структура блочного алгоритма симметричного шифрования Блочные алгоритмы шифрования применяются к двоичным данным. В общем случае процедура блочного шифрования преобразовывает nбитный блок открытого текста в k-битный блок зашифрованного текста. Число блоков длины n равно 2n. Для того чтобы преобразование было обратимым, каждый из таких блоков должен преобразовываться в свой уникальный блок зашифрованного текста. Длина блока всегда выбирается равной степени двойки, например, 64, 128, 256 бит. Требования к блочному алгоритму шифрования К современным алгоритмам блочного шифрования предъявляют достаточно жесткие требования, связанные с областью применения, возможностью реализации на различных вычислительных платформах и другими факторами. Рассмотрим основные из требований. 1. Алгоритм должен обеспечивать высокий уровень стойкости, и эта стойкость не должна основываться на сохранении втайне самого алгоритма. 2. Незначительное изменение исходного сообщения должно приводить к существенному изменению зашифрованного сообщения даже при использовании одного и того же ключа. 3. Алгоритм должен успешно противостоять атакам по выбранному тексту, то есть таким, чтобы нельзя было узнать ключ, даже зная достаточно много пар (зашифрованное сообщение, 60 незашифрованное сообщение), полученных при шифровании с использованием данного ключа. 4. Алгоритм шифрования должен иметь возможность быть реализованым на различных платформах, которые предъявляют различные требования. используется Для специальная наиболее аппаратура. быстрых Несмотря приложений на это, программные реализации применяются также достаточно часто. Поэтому алгоритм должен допускать эффективную программную реализацию на универсальных микропроцессорах. Алгоритм должен также работать на микроконтроллерах и других процессорах среднего размера. 5. Алгоритм должен использовать простые операции, которые эффективны на микропроцессорах, т.е. исключающее или, сложение, табличные подстановки, умножение по модулю. Не должно использоваться сдвигов переменной длины, побитных перестановок или условных переходов. 6. Алгоритм должен эффективно реализовываться на специализированной аппаратуре, предназначенной для выполнения операций шифрования и расшифрования, то есть реализация алгоритма в виде электронных устройств должна быть экономичной. 7. Алгоритм шифрования должен быть применим во многих приложениях. Алгоритм должен быть эффективен при шифровании файлов данных или большого потока данных, при создании определенного количества случайных битов, а также должна быть возможность его использования для формирования односторонней хеш-функции1. 8. Алгоритм должен быть простым для написания кода, чтобы минимизировать вероятность программных ошибок. Также это дает возможность анализа и уменьшает закрытость алгоритма. 61 9. Алгоритм должен допускать любую случайную строку битов нужной длины в качестве возможного ключа (это называется иметь плоское пространство ключей ). Не должно быть "слабых" ключей, облегчающих криптоанализ. 10. Алгоритм должен легко модифицироваться для различных уровней безопасности и удовлетворять как минимальным, так и максимальным требованиям. Некоторое уточнение необходимо сделать относительно пункта 1, требующего высокую криптостойкость алгоритма шифрования. Обычно под "высокой криптостойкостью" понимают, что шифр должен быть стоек по отношению к атаке по выбранному тексту. Это автоматически подразумевает его стойкость по отношению к атакам по шифротексту и по известному тексту. Однако известно, что при атаке по выбранному тексту шифр всегда может быть взломан путем перебора ключей. Поэтому требование стойкости шифра можно уточнить следующим образом: "Шифр стоек (при атаке по выбранному тексту), если для него не существует алгоритма взлома, существенно более быстрого, чем прямой перебор ключей". Интересно, что по состоянию на сегодняшний день ни для одного используемого шифра не доказано строго соответствие этому определению стойкости. Сеть Фейштеля На рис. 3.8 была представлена общая структура блочного алгоритма шифрования. Понятно, что само преобразование данных выполняется в раундах или шагах шифрования. Какие же действия надо выполнить в одном раунде, чтобы в результате выполнения всего алгоритма получить надежно зашифрованные данные? Большой вклад в исследования принципов разработки блочных шифров внес американский ученый Х. Фейштель (Horst Feistel). Он, в частности, принимал участие в разработке 62 системы шифрования "Люцифер" фирмы IBM. Фейштель предложил структуру, называемую в настоящее время сетью Фейштеля. Сети Фейштеля получили широкое распространение, так как, с одной стороны, они удовлетворяют всем требованиям к алгоритмам симметричного шифрования, а с другой стороны, достаточно просты и удобны в использовании. Раунд, организованный по сети Фейштеля имеет следующую структуру. Входной блок делится на несколько частей равной длины. Эти части блока называются ветвями. Так, например, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Ветви обрабатываются по отдельности, после чего осуществляется циклический сдвиг всех ветвей влево. В случае двух ветвей каждый раунд имеет структуру, показанную на рис. 3.9 Рис. 3.9. i-й раунд сети Фейштеля Функция F называется образующей. Каждый раунд состоит из вычисления функции F для одной ветви и побитового выполнения операции "сумма по модулю 2" результата F с другой ветвью. После этого 63 ветви меняются местами. Число раундов может быть различным для разных алгоритмов. В некоторых алгоритмах рекомендуется от 8 до 32 раундов, в других – больше. В целом увеличение количества раундов увеличивает криптостойкость алгоритма. Возможно, эта особенность и повлияла на столь активное распространение сети Фейштеля, так как для большей криптостойкости достаточно просто увеличить количество раундов, не изменяя сам алгоритм. В последнее время количество раундов не фиксируется, а лишь указываются рекомендуемые пределы. В последнее время все чаще используются различные разновидности сети Фейштеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными. В блочных алгоритмах, построенных на основе сети Фейштеля, основной операцией является вычисление образующей функции F. Эта функция использует подключ раунда и одну ветвь входного блока для вычисления результата. Именно тем, как определяется функция F, системы шифрования и отличаются друг от друга. В некоторых алгоритмах введены также начальные преобразования входного блока данных, придающие некоторую "случайность" входному тексту (это называется рандомизацией данных.) Рандомизация производится для того, чтобы уменьшить естественную избыточность входного сообщения. Поточные шифры Блочный определенной алгоритм длины. предназначен Однако может для шифрования возникнуть блоков необходимость шифрования данных не блоками, а, например, по символам. Поточный шифр (stream cipher) выполняет преобразование входного сообщения по одному биту (или байту) за операцию. Поточный алгоритм шифрования 64 устраняет необходимость разбивать сообщение на целое число блоков достаточно большой длины, следовательно, он может работать в реальном времени. Таким образом, если передается поток символов, каждый символ может шифроваться и передаваться сразу. Работа типичного поточного шифра представлена на рис. 3.10. Рис. 3.10. Принцип работы поточного шифра Генератор ключей выдает поток битов ki, которые будут использоваться в качестве гаммы. Источник сообщений генерирует биты открытого текста хi, которые складываются по модулю 2 с гаммой, в результате чего получаются биты зашифрованного сообщения уi: yi=xiki, i=1,2,….,n Чтобы из шифротекста y1, y2,..., yn восстановить сообщение x1, x2,..., xn, необходимо сгенерировать точно такую же ключевую последовательность k1, yk,..., kn, что и при шифровании, и использовать для расшифрования формулу xi=yiki , i=1,2,….,n Обычно исходное сообщение и ключевая последовательность представляют собой независимые потоки бит. Таким образом, так как шифрующее (и расшифрующее) преобразование для всех поточных шифров одно и то же, они должны различаться только способом 65 построения генераторов ключей. Получается, что безопасность системы полностью зависит от свойств генератора потока ключей. Если генератор потока ключей выдает последовательность, состоящую только из одних нулей (или из одних единиц), то зашифрованное сообщение будет в точности таким же, как и исходный поток битов (в случае единичных ключей зашифрованное сообщение будет инверсией исходного). Если в качестве гаммы используется один символ, представленный, например, восемью битами, то хотя зашифрованное сообщение и будет внешне отличаться от исходного, безопасность системы будет очень низкой. В этом случае при многократном повторении кода ключа по всей длине текста существует опасность его раскрытия статистическим методом. Поясним это на простом примере цифрового текста, закрытого коротким цифровым кодом ключа методом гаммирования. Пример. Пусть известно, что исходное сообщение представляло собой двоично-десятичное число, то есть число, каждая тетрада (четыре бита) которого получена при переводе десятичной цифры 0...9 в двоичный вид. Перехвачено 24 бита зашифрованного сообщения Y, то есть шесть тетрад Y1, Y2, Y3, Y4, Y5, Y6, а именно значение 1100 1101 1110 1111 0000 0001. Известно, что ключ шифрования состоял из четырех бит, которые тоже представляют собой однозначное десятичное число, то есть одно и то же значение 0≤K≤9 использовалось для шифрования каждых четырех бит исходного сообщения. Таким образом, шифрование числа X1, X2, X3, X4, X5, X6 ключом К можно представить в виде системы уравнений: X1K=1100 X2K=1101 X3K=1110 X4K=1111 X5K=0000 X6K=0001 Исходя из условия, что Хi принимает десятичные значения от 0 до 9, для поиска неизвестного К определим все возможные значения X1’; и К, сумма которых по модулю 2 приводит к результату 1100: K = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Y1 = 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 66 --------------------X1’ = 1100 1101 1110 1111 1000 1001 1010 1011 0100 0101 Так как исходное значение состояло из цифр от 0 до 9, то можно исключить из рассмотрения значения ключа 0000, 0001, 0010, 0011, 0110, 0111, так при сложении с ними получаются значения большие 9 в десятичном эквиваленте. Такие значения не могли присутствовать в открытом тексте. Таким образом, первый этап анализа уже позволил сократить количество возможных ключей с десяти до четырех. Для дальнейшего поиска неизвестного К определим все возможные значения X2’; и оставшихся вариантов ключа, сумма которых по модулю 2 приводит к результату Y2 = 1101: K = 0100 0101 1000 1001 Y2 = 1101 1101 1101 1101 --------------------X2’ = 1001 1000 0101 0100 Видно, что этот этап не позволил отбросить ни одного из оставшихся вариантов ключа. Попытаемся это сделать, используя Y3=1110: K = 0100 0101 1000 1001 Y3 = 1110 1110 1110 1110 --------------------X2’ = 1010 1011 0110 0111 После проведения этого этапа становится ясно, что ключом не могли быть значения 0100 и 0101. Остается два возможных значения ключа: 1000(2)=8(10) и 1001(2)=9(10). Дальнейший анализ по данной методике в данном случае, к сожалению, не позволит однозначно указать, какой же из двух полученных вариантов ключа использовался при шифровании. Однако можно считать успехом уже то, что пространство возможных ключей снизилось с десяти до двух. Остается попробовать каждый из двух найденных ключей для 67 дешифровки сообщений и проанализировать смысл полученных вскрытых текстов. В реальных случаях, когда исходное сообщение составлено не только из одних цифр, но и из других символов, использование статистического анализа позволяет быстро и точно восстановить ключ и исходные сообщения при короткой длине ключа, закрывающего поток секретных данных. Принципы использования генераторов псевдослучайных чисел при потоковом шифровании Современная информатика широко использует псевдослучайные числа в самых разных приложениях — от методов математической статистики и имитационного моделирования до криптографии. При этом от качества используемых генераторов псевдослучайных чисел (ГПСЧ) напрямую зависит качество получаемых результатов. ГПСЧ могут использоваться в качестве генераторов ключей в поточных шифрах. Целью использования генераторов псевдослучайных чисел является получение "бесконечного" ключевого слова, располагая относительно малой длиной самого ключа. Генератор псевдослучайных чисел создает последовательность битов, похожую на случайную. На самом деле, конечно же, такие последовательности вычисляются по определенным правилам и не являются случайными, поэтому они могут быть абсолютно точно воспроизведены как на передающей, так и на принимающей стороне. Последовательность ключевых символов, использующаяся при шифровании, должна быть не только достаточно длинной. Если генератор ключей при каждом включении создает одну и ту же последовательность битов, то взломать такую систему также будет возможно. Следовательно, выход генератора потока ключей должен быть функцией ключа. В этом случае расшифровать и прочитать сообщения 68 можно будет только с использованием того же ключа, который использовался при шифровании. Для использования в криптографических целях генератор псевдослучайных чисел должен обладать следующими свойствами: 1. период последовательности должен быть очень большой; 2. порождаемая последовательность должна быть "почти" неотличима от действительно случайной; вероятности порождения различных значений должны 3. быть в точности равны; для того, чтобы только законный получатель мог 4. расшифровать сообщение, следует при получении потока ключевых битов ki использовать и учитывать некоторый секретный ключ, причем вычисление числа ki+1 по известным предыдущим элементам последовательности ki без знания ключа должно быть трудной задачей. При наличии указанных свойств последовательности псевдослучайных чисел могут быть использованы в поточных шифрах. Линейный конгруэнтный генератор псевдослучайных чисел Генераторы псевдослучайных чисел могут работать по разным алгоритмам. Одним из простейших генераторов является так называемый линейный конгруэнтный генератор, который для вычисления очередного числа ki использует формулу ki=(a*ki-1+b)mod c, где а, b, с — некоторые константы, a ki-1 — предыдущее псевдослучайное число. Для получения k1 задается начальное значение k0. Возьмем в качестве примера a=5,b=3,c=11 и пусть k0= 1. В этом случае мы сможем по приведенной выше формуле получать значения от 0 до 10 (так как с = 11). Вычислим несколько элементов последовательности: k1 = (5 * 1 + 3) mod 11 = 8; 69 k2 = (5 * 8 + 3) mod 11 = 10; k3 = (5 * 10 + 3) mod 11 = 9; k4 = (5 * 9 + 3) mod 11 = 4; k5 = (5 * 4 + 3) mod 11 = 1. Полученные значения (8, 10, 9, 4, 1) выглядят похожими на случайные числа. Однако следующее значение k6 будет снова равно 8: k6 = (5 * 1 + 3) mod 11 = 8, а значения k7 и k8 будут равны 10 и 9 соответственно: k7 = (5 * 8 + 3) mod 11 = 10; k8= (5 * 10 + 3) mod 11 = 9. Выходит, наш генератор псевдослучайных чисел повторяется, порождая периодически числа 8, 10, 9, 4, 1. К сожалению, это свойство характерно для всех линейных конгруэнтных генераторов. Изменяя значения основных параметров a, b и c, можно влиять на длину периода и на сами порождаемые значения ki. Так, например, увеличение числа с в общем случае ведет к увеличению периода. Если параметры a, b и c выбраны правильно, то генератор будет порождать случайные числа с максимальным периодом, равным c. При программной реализации значение с обычно устанавливается равным 2b-1 или 2b, где b — длина слова ЭВМ в битах. Достоинством линейных конгруэнтных генераторов псевдослучайных чисел является их простота и высокая скорость получения псевдослучайных значений. Линейные конгруэнтные генераторы находят применение при решении задач моделирования и математической статистики, однако в криптографических целях их нельзя рекомендовать к использованию, так как специалисты по криптоанализу научились восстанавливать всю последовательность ПСЧ по нескольким значениям. Например, предположим, что противник может определить значения k0, k1, k2, k3. Тогда: 70 k1=(a*k0+b) mod c k2=(a*k1+b) mod c k3=(a*k2+b) mod c Решив систему из этих трех уравнений, можно найти a, b и c. Для получения псевдослучайных чисел предлагалось использовать также квадратичные и кубические генераторы: ki=(a12*ki-1+a2*ki-1+b) mod c ki=(a13*ki-1+a22*ki-1+a3*ki-1+b) mod c Однако такие генераторы тоже оказались непригодными для целей криптографии по той же самой причине "предсказуемости". 71 Лекция №4. Асимметричные криптосистемы. Предпосылки создания методов шифрования с открытым ключом и основные определения При использовании шифрования с закрытым ключом возникают две достаточно серьезные проблемы. Первая проблема заключается в изготовлении секретных ключей и доставке их участникам информационного обмена. При большом количестве и территориальной распределенности участников информационного обмена, использующих каналы связи общего назначения, например, обычную или электронную почту, часто бывает сложно гарантировать безопасность доставки такого ключа и его подлинность. В "Поточные шифры и генераторы псевдослучайных чисел. Часть 2" данного курса лекций проблема распределения ключей для симметричного шифрования была подробно рассмотрена. Второй проблемой является обеспечение подлинности партнеров при электронном общении. Развитие деловой переписки и электронной коммерции требует наличия методов, при использовании которых невозможно было бы подменить кого-либо из участников обмена. Получатель корреспонденции должен иметь возможность удостовериться в подлинности документа, а создатель электронного послания должен быть в состоянии доказать свое авторство получателю или третьей стороне. Следовательно, электронные документы должны иметь аналог обычной подписи. Многие криптографы работали над решением этих проблем, в результате чего во второй половине семидесятых годов ХХ века были разработаны принципиально новые подходы, позволяющие решить перечисленные выше (и некоторые другие) задачи. Основой послужило открытие так называемых асимметричных криптоалгоритмов, или методов, в которых процедуры 72 прямого и обратного криптопреобразования выполняются на различных ключах и не имеют между собой очевидных и легко прослеживаемых связей, которые позволили бы по одному ключу определить другой. Асимметричные алгоритмы гораздо больше основаны на свойствах математических функций, чем алгоритмы симметричного шифрования, использующие в основном только операции перестановки и замены. Большой вклад в эти исследования внесли американские ученые У. Диффи (W. Diffie), Э. Хеллман (M. Hellman), Р. Меркль (R. Merkle). Они первыми предложили способы решения обеих задач, которые радикально отличаются от всех предыдущих подходов к шифрованию. Асимметричные алгоритмы шифрования называются также алгоритмами с открытым ключом. В отличие от алгоритмов симметричного шифрования (алгоритмов шифрования с закрытым ключом), в которых для шифрования и расшифрования используется один и тот же ключ, в ассиметричных алгоритмах один ключ используется для шифрования, а другой, отличный от первого, – для расшифрования. Алгоритмы называются асимметричными, так как ключи шифрования и расшифрования разные, следовательно, отсутствует симметрия основных криптографических процессов. Один из двух ключей является открытым (public key) и может быть объявлен всем, а второй – закрытым (private key) и должен держаться в секрете. Какой из ключей, открытый или закрытый, используется для шифрования, а какой для расшифрования, определяется назначением криптографической системы. В настоящее время асимметричные алгоритмы широко применяются на практике, например, для обеспечения информационной безопасности телекоммуникационных сетей, в том числе сетей, имеющих сложную топологию; для обеспечения информационной безопасности в глобальной сети Internet; в различных банковских и платежных системах (в том числе использующих интеллектуальные карты). 73 Алгоритмы шифрования с открытым ключом можно использовать для решения, как минимум, трех задач: Для шифрования передаваемых и хранимых данных в 1. целях их защиты от несанкционированного доступа. Для формирования цифровой подписи под электронными 2. документами. Для распределения секретных ключей, используемых 3. потом при шифровании документов симметричными методами. Односторонние функции Все алгоритмы шифрования с открытым ключом основаны на использовании так называемых односторонних функций. Односторонней функцией (one-way function) называется математическая функция, которую относительно легко вычислить, но трудно найти по значению функции соответствующее значение аргумента. То есть, зная х легко вычислить f(x), но по известному f(x) трудно найти подходящее значение x. Под словом "трудно вычислить" понимают, что для этого потребуется не один год расчетов с использованием ЭВМ. Односторонние функции применяются в криптографии также в качестве хеш-функций. Использовать односторонние функции для шифрования сообщений с целью их защиты не имеет смысла, так как обратно расшифровать зашифрованное сообщение уже не получится. Для целей шифрования используются специальные односторонние функции – односторонние функции с люком (или с секретом) – это особый вид односторонних функций, имеющих некоторый секрет (люк), позволяющий относительно быстро вычислить обратное значение функции. Для односторонней функции с люком f справедливы следующие утверждения: 1. зная х, легко вычислить f(x), 2. по известному значению f(x) трудно найти x, 74 3. зная дополнительно некоторую секретную информацию, можно легко вычислить x. Использование асимметричных алгоритмов для шифрования В 70-х годах ХХ века Диффи и Хеллман предложили принцип шифрования, основанный на использовании двух разных ключей, хотя и связанных между собой, но устроенных так, что вычислить по одному из них (открытому) другой (закрытый) практически невозможно. Этот принцип может быть использован для решения проблемы снабжения пользователей ключами шифрования/расшифрования, а точнее – для устранения этой проблемы. Согласно Диффи и Хеллману предварительно распределяемые закрытые ключи вообще не должны использоваться для шифрования данных (так как секрет, который известен более чем одному человеку, – уже не секрет). Закрытый ключ должен быть известен только одному лицу – его владельцу. Такой принцип использования асимметричных алгоритмов получил название открытого шифрования или шифрованием с открытым ключом. Согласно этому принципу, любой желающий может зашифровать сообщение открытым ключом. Расшифровать сообщение сможет только владелец закрытого ключа. Пусть, например, пользователи А и Б, имеющие возможность обмениваться электронными сообщениями, используют схему открытого шифрования. Предположим, пользователь А должен передать секретное сообщение пользователю Б так, чтобы никто другой не смог его прочитать. Для этого необходимо выполнить следующие действия: 1. Пользователь Б посылает пользователю А свой открытый ключ U по любому каналу связи, например, по электронной почте. 2. Пользователь А шифрует свое сообщение М полученным открытым ключом U и получает зашифрованное сообщение С. 75 3. Зашифрованное сообщение С пересылается пользователю 4. Пользователь Б расшифровывает полученное сообщение Б. С своим закрытым ключом R. Если операцию шифрования обозначить как F, а операцию расшифрования как F-1, то схему протокола обмена информацией между пользователями можно изобразить, как на рис. 4.1. Рис. 4.1. Схема открытого шифрования Использование распределения открытого ключей. шифрования Раньше пользователи снимает перед проблему обменом зашифрованными данными должны были каким-либо образом по закрытому каналу связи согласовывать используемый секретный ключ. Для этого они могли встретиться лично или использовать курьера. Если один из пользователей считал нужный изменить ключ, он должен был передать новый ключ своему абоненту. Криптография с открытыми ключами все упрощает. Теперь абоненты не должны заботиться о возможности компрометации секретного ключа. Пользователи системы связи могут совершенно свободно обмениваться открытыми ключами и зашифрованными ими сообщениями. Если пользователь надежно хранит 76 свой закрытый ключ, никто не сможет прочитать передаваемые сообщения. Для упрощения процедуры обмена в сети передачи сообщений обычно используется база, в которой хранятся открытые ключи всех пользователей. При необходимости любой пользователь системы может запросить из базы открытый ключ другого человека и использовать полученный ключ для шифрования сообщений. Формирование секретных ключей с использованием асимметричных алгоритмов На практике алгоритмы с открытым ключом редко используются для непосредственного шифрования сообщений. Этому препятствует относительная невысокая скорость асимметричных алгоритмов при шифровании и расшифровании больших объемов данных. Данный фактор связан с тем, что основной операцией в системах с открытым ключом является возведение в степень по большому модулю 500-1000 битовых чисел, что при программной реализации производится намного медленнее, чем шифрование того же объема данных классическими симметричными способами. Однако при обработке коротких блоков данных, например, ключей определенной длины, алгоритмы шифрования с открытым ключом могут использоваться достаточно эффективно. Поэтому часто используют следующую комбинированную схему: асимметричный алгоритм применяется для согласования ключа сессии, а затем этот ключ выступает в роли секретного ключа для шифрования сообщений симметричным алгоритмом. Простейший протокол формирования секретного ключа сессии может выглядеть следующим образом (если пользователи некоторой системы связи имеют доступ к базе данных открытых ключей абонентов системы, предоставляемой центром распределения ключей, то они могут получать из нее открытые ключи друг друга): 77 1. Пользователь А получает открытый ключ пользователя Б из центра распределения ключей или непосредственно от пользователя Б. 2. Пользователь А генерирует случайный сеансовый ключ и зашифровывает его полученным открытым ключом. 3. Зашифрованный сеансовый ключ пересылается пользователю Б. 4. Пользователь Б расшифровывает полученный пакет своим закрытым ключом. 5. Пользователи А и Б используют согласованный сеансовый ключ для обмена шифрованными сообщениями. Схему формирования парой пользователей А и В общего секретного ключа К для шифрования - расшифрования можно изобразить следующим образом ( рис. 4.2). Рис. 4.2. Схема формирования общего секретного ключа Эта схема напоминает рис. 4.1, и это неудивительно, ведь в ней используется тот же самый режим шифрования открытым ключом. Отличие заключается в том, что шифруется. В схеме на рис. 4.2 производится шифрование небольшого по размеру сеансового ключа, который в дальнейшем будет использован в качестве секретного ключа при шифровании симметричным алгоритмом. Шифрование небольшого 78 по размеру блока данных выполняется достаточно быстро и не замедляет телекоммуникационные процессы даже в системе с многими тысячами пользователей. Существуют и более сложные протоколы распределения ключей, обеспечивающие взаимное подтверждение подлинности участников сеанса связи, подтверждение достоверности сеанса механизмом запроса-ответа или другие требования. Требования к алгоритмам шифрования с открытым ключом Рассмотрев основные способы применения алгоритмов шифрования с открытым ключом, изучим требования, которым должен, по мнению основоположников теории шифрования с открытым ключом Диффи и Хеллмана, удовлетворять алгоритм шифрования с открытым ключом. Эти требования следующие: 1. Вычислительно легко создавать пару (открытый ключ, закрытый ключ). 2. Вычислительно легко зашифровать сообщение открытым ключом. 3. Вычислительно легко расшифровать сообщение, используя закрытый ключ. 4. Вычислительно невозможно, зная открытый ключ, определить соответствующий закрытый ключ. 5. Вычислительно невозможно, зная только открытый ключ и зашифрованное сообщение, восстановить исходное сообщение. Из этих общих требований видно, что реализация конкретного алгоритма с открытым ключом зависит от соответствующей односторонней функции. Математиками и криптографами предложено большое количество алгоритмов шифрования с открытым ключом, основанных на различных односторонних функциях. Некоторые алгоритмы можно задействовать 79 тремя, рассмотренными ранее способами, в то время как другие могут использоваться только одним или двумя способами. Перед изучением наиболее известных алгоритмов шифрования с открытым ключом, необходимо напомнить, что все асимметричные алгоритмы основаны на свойствах тех или иных математических функций. Доказательства правильности работы рассматриваемых алгоритмов могут быть достаточно сложными, поэтому мы ограничимся изучением основных принципов их работы. Многие криптографические алгоритмы базируются на результатах классической теории чисел. Алгоритм RSA Основные сведения Алгоритм шифрования с открытым ключом RSA был предложен одним из первых в конце 70-х годов ХХ века. Его название составлено из первых букв фамилий авторов: Р.Райвеста (R.Rivest), А.Шамира (A.Shamir) и Л.Адлемана (L.Adleman). Алгоритм RSA является, наверно, наиболее популярным и широко применяемым асимметричным алгоритмом в криптографических системах. Алгоритм основан на использовании того факта, что задача разложения большого числа на простые сомножители является трудной. Криптографическая система RSA базируется на следующих двух фактах из теории чисел: 1. задача проверки числа на простоту является сравнительно легкой; 2. задача разложения чисел вида n = pq ( р и q — простые числа); на множители является очень трудной, если мы знаем только n, а р и q — большие числа (это так называемая задача факторизации). 80 Алгоритм RSA представляет собой блочный алгоритм шифрования, где зашифрованные и незашифрованные данные должны быть представлены в виде целых чисел между 0 и n -1 для некоторого n. Шифрование Итак, рассмотрим сам алгоритм. Пусть абонент А хочет передать зашифрованное сообщение абоненту Б. В этом случае абонент Б должен подготовить пару (открытый ключ; закрытый ключ) и отправить свой открытый ключ пользователю А. Первым этапом является генерация открытого и закрытого ключей. Для этого вначале выбираются два больших простых числа Р и Q. Затем вычисляется произведение N: N = PQ. После этого определяется вспомогательное число f: f = (Р - l)(Q - 1). Затем случайным образом выбирается число d < f и взаимно простое с f. Далее необходимо найти число е, такое, что еd mod f = 1. Числа d и N будут открытым ключом пользователя, а значение е – закрытым ключом. Таким образом, на этом этапе у пользователя должна быть информация, указанная в следующей таблице: Открытый ключ Закрытый ключ N, d e Пользователь системы Так как пользователь Б хочет получить зашифрованное сообщение от пользователя А, значит пользователь Б должен отправить свой открытый ключ (d, N) пользователю А. Числа Р и Q больше не нужны, однако их нельзя никому сообщать; лучше всего их вообще забыть. 81 На этом этап подготовки ключей закончен и можно использовать основной протокол RSA для шифрования данных. Второй этап – шифрование данных. Если абонент А хочет передать некоторые данные абоненту Б, он должен представить свое сообщение в цифровом виде и разбить его на блоки m1, m2, m3, ... , где mi < N. Зашифрованное сообщение будет состоять из блоков сi. Абонент А шифрует каждый блок своего сообщения по формуле ci = mid mod N используя открытые параметры пользователя Б, и пересылает зашифрованное сообщение С=(с1, с2, с3, ...) по открытой линии. Абонент Б, получивший зашифрованное сообщение, расшифровывает все блоки полученного сообщения по формуле mi = ce mod N Все расшифрованные блоки будут точно такими же, как и исходящие от пользователя А. Злоумышленник, перехватывающий все сообщения и знающий всю открытую информацию, не сможет найти исходное сообщение при больших значениях Р и Q. Пример вычислений по алгоритму Пусть пользователь А хочет передать пользователю Б сообщение. В этом случае вначале пользователь Б должен подготовить открытый и закрытый ключи. Пусть им выбраны, например, следующие параметры: Р = 3, Q = 11, N = 3x11 = 33. Тогда f = (Р - l)(Q - 1) = (3-1)(11-1) = 20. Затем пользователь Б выбирает любое число d, не имеющее общих делителей с f (это необходимо для того, чтобы зашифрованное сообщение можно было потом однозначно восстановить). Пусть d = 13. Это число будет одним из компонентов открытого ключа. 82 Далее необходимо найти число е, которое можно будет использовать в качестве закрытого ключа для расшифрования сообщения. Значение е должно удовлетворять соотношению еd mod f = 1. Для малых значений f число е можно найти подбором. В общем случае для поиска е можно использовать обобщенный алгоритм Евклида, приведенный. В нашем случае подходит е=17. (Проверяем: 13*17 mod 20 = 221 mod 20 = 1.) Теперь пользователь Б должен запомнить свой закрытый ключ 17, отправить открытый ключ (13, 33) пользователю А и уничтожить числа Р = 3 и Q = 11. Пользователь А, получивший открытый ключ (13, 33), увидев, что N=33, разбивает исходное сообщение на три блока, причем значение каждого меньше N. Например, пусть имеется три блока m1=8, m2=27, m3,=5. Затем пользователь А шифрует каждый блок: c1=813 mod 33 = 17 c2 = 2713 mod 33 = 15 c3 = 513 mod 33 = 26 Зашифрованное сообщение, состоящее из трех блоков (17, 15, 26), передается пользователю Б, который, используя свой закрытый ключ е = 17 и N=33, расшифровывает сообщение: m1 = 1717 mod 33 = 8 m2 = 1517 mod 33 = 27 m3 = 2617 mod 33 = 5 Таким образом, абонент Б расшифровал сообщение от абонента А. Алгоритм Диффи-Хеллмана Основные сведения Первая публикация данного алгоритма появилась в 70-х годах ХХ века в статье Диффи и Хеллмана, в которой вводились основные понятия 83 криптографии с открытым ключом. Алгоритм Диффи-Хеллмана не применяется для шифрования сообщений или формирования электронной подписи. Его назначение – в распределении ключей. Он позволяет двум или более пользователям обменяться без посредников ключом, который может быть использован затем для симметричного шифрования. Это была первая криптосистема, которая позволяла защищать информацию без использования секретных ключей, передаваемых по защищенным каналам. Схема открытого распределения ключей, предложенная Диффи и Хеллманом, произвела настоящую революцию в мире шифрования, так как снимала основную проблему классической криптографии – проблему распределения ключей. Алгоритм основан на трудности вычислений дискретных логарифмов. Попробуем разобраться, что это такое. В этом алгоритме, как и во многих других алгоритмах с открытым ключом, вычисления производятся по модулю некоторого большого простого числа Р. Вначале специальным образом подбирается некоторое натуральное число А, меньшее Р. Если мы хотим зашифровать значение X, то вычисляем Y = AX mod P. Причем, имея Х, вычислить Y легко. Обратная задача вычисления X из Y является достаточно сложной. Экспонента X как раз и называется дискретным логарифмом Y. Таким образом, зная о сложности вычисления дискретного логарифма, число Y можно открыто передавать по любому каналу связи, так как при большом модуле P исходное значение Х подобрать будет практически невозможно. На этом математическом факте основан алгоритм Диффи-Хеллмана для формирования ключа. Формирование общего ключа Пусть два пользователя, которых условно назовем пользователь 1 и пользователь 2, желают сформировать общий ключ для алгоритма симметричного шифрования. Вначале они должны выбрать большое 84 простое число Р и некоторое специальное число А, 1 < A < P-1, такое, что все числа из интервала [1, 2, ..., Р-1] могут быть представлены как различные степени А mod Р. Эти числа должны быть известны всем абонентам системы и могут выбираться открыто. Это будут так называемые общие параметры. Затем первый пользователь выбирает число Х1 (X1
«Защита информации» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

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

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

Перейти в Telegram Bot