Безопасность информационных систем
Лабораторная работа 4. Обмен ключами по Диффи-Хеллману
Для защиты информации в вычислительных сетях используется такой е криптографического преобразования как шифрование, в котором всегда различают два элемента: ключ и алгоритм. При этом ключом является секретное состояние некоторых параметров алгоритма криптопреобразования сообщения.
На практике в зависимости от способа применения ключа различают i типа криптографических систем:
Одноключевые (симметричные)
Двухключевые (несимметричные)
В одноключевых системах, называемых традиционными, ключи шифрования и расшифрования (л.р.2) либо одинаковы, либо легко выводятся один из другого, об' печивая таким образом единый общий ключ. Такой ключ является секретные передается получателю сообщения только по защищенному каналу связи.
Однако при этом имеет место следующий парадокс: если для обмена ее секретного ключа используется защищенный канал, то нет необходимости шифровать конфиденциальные сообщения, гораздо проще отправить их по это: каналу.
Отмеченный парадокс может быть исключен использованием идеи Диффи и Хеллмана, которые предложили способ выработки секретного ключа без предварительного согласования между абонентами сети путем обмена информацией по открытому каналу. Этот способ был предложен Диффи и Хеллманом в 1976 году и опубликован в ряде работ по криптографии. Реализация такого способа привела к появлению открытого шифрования. Абонент сего открыто сообщал о том, каким образом зашифровать к нему сообщение, расшифровать же его мог только он сам.
Основную роль при выработке секретного ключа в данном случае играют математические операции, когда прямая операция сравнительно проста, а обратная — практически трудно реализуема.
Прямая операция: возвести основание а в степень р и взять остаток по модулю m вида:
L = ap mod m.
Обратная операция: найти р, зная L, а и т.
Обратная операция (задача) при этом может быть решена простым перебором значений р, но практически не решается при больших значениях р .
В предлагаемом алгоритме выработки секретного ключа известны основание а и mod m.
Отправитель сообщения с помощью генератора случайных чисел (ГСЧ) получает случайное число X (1 < х < т), вычисляет значение L0 = ay mod т и посылает L0 получателю.
Получатель принимает L0 вырабатывает с помощью своего ГСЧ случайное число Y (1 < у < т), вычисляет значение Lp = ay mod т и посылает Lp отправителю.
Отправитель принимает Lp, вычисляет К0 = Lpx = ауx mod т. Получатель вычисляет Кp = L0y = ауx mod т.
Так как К0 = Кp., то это число и является общим секретным ключом.
Злоумышленник, перехватив L0 и Lp , не знает случайных чисел х и у и не сможет расшифровать исходный текст сообщения.
Практика.
Составьте программное обеспечение, реализующее алгоритм обмена ключами. Ключи должны автоматически формироваться в файлы. Должна быть обеспечена наглядность выполнения алгоритма. Для созданного программного обеспечения проведите тестирование не менее чем на 10 различных наборах данных.
Лабораторная работа 5. Шифр RSA
Защита данных с помощью криптографического преобразования является эффективным решением проблемы их безопасности. Зашифрованные данные доступны лишь тем, кто знает, как их расшифровать, то есть тем, кто обладает соответствующим ключом шифрования.
Одним из наиболее перспективных криптографических стандартов на шифрование данных являются системы с открытым ключом. В таких системах для шифрования используется один ключ, а для расшифрования другой. Первый ключ является открытым и может быть опубликован для шифрования своей информации любым пользователем сети. Получатель зашифрованной информации для расшифровки данных использует второй ключ, являющийся секретным. При этом должно соблюдаться следующее условие: секретный ключ не может быть определен из опубликованного открытого ключа.
Криптографические системы с открытым ключом используют необратимые или односторонние функции, обладающие важным свойством: при заданном значении х относительно просто вычислить значение f (х), однако, если у = f (х), то нет простого пути для вычисления значения х, то есть очень трудно рассчитать значение обратной функции 1 // f(y).
В настоящее время широко используется метод криптографической защиты данных с открытым ключом RSA, получившим название по начальным буквам фамилий его изобретателей (Rivest, Shamir, Adleman). На основе метода RSA разработаны алгоритмы шифрования, успешно применяемые для защиты информации. Он обладает высокой криптостойкостью и может быть реализован при использовании относительно несложных программных и аппаратных средств. Данный метод позволил решить проблему обеспечения персональных подписей в условиях безбумажной передачи и обработки данных. Описание схем формирования шифротекста в алгоритмах типа RSA приведено в различной литературе.
Использование метода RSA для криптографической защиты информации может быть пояснено с помощью структурной схемы, представленной на рисунке.
Функционирование криптосистемы на основе метода RSA предполагает формирование открытого и секретного ключей. С этой целью необходимо выполнить следующие математические операции:
Выбираем два больших простых числа р и q, понимая под простыми числами такие числа, которые делятся на само себя и число 1
Определяем n = pxq ,
Вычисляем число k = (p-1) (q –1),
Выбираем большое случайное число d, взаимно простое с числом k (взаимно простое число — это число, которое не имеет ни одного общего делителя, кроме числа 1)
Определяем число е, для которого истинным является соотношение
(e х d) mod k = l
Принимаем в качестве открытого ключа пару чисел {е, n}
Формирование секретного ключа в виде пары чисел {d, n}
Для зашифровки передаваемых данных с помощью открытого ключа {е, n} необходимо выполнить операции:
Разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде чисел M(i) = 0,1,..., n –1
Зашифровать текст в виде последовательности чисел M(i) по формуле
C(i) = (M(i)e) mod n
Расшифрование шифротекста производится с помощью секретного ключа {d, n} при выполнении следующих вычислений:
M(i) = (C(i)d) mod n
В результате получаем последовательность чисел M(i), представляющих исходные данные. На практике при использовании метода RSA длина р и q составляет 100 и более десятичных знаков, что обеспечивает высокую криптостойкость шифротекста.

Практика
Составьте программное обеспечение, реализующее алгоритм RSA. Исходные данные должны передаваться через файлы: файл с открытым ключом, закрытым ключом и шифруемая информация. Для созданного программного обеспечения проведите тестирование не менее чем на 10 различных наборах данных.
Лабораторная работа 6. Циклические коды
Принцип работы – метод проверки целостности массива бит, основанный на свойствах операции взятия остатка в полиномиальной арифметике по модулю 2 с основными операциями 0+0=0, 0+1=1, 1+0=1, 1+1=0, 0*0=0, 0*1=0, 1*0=0, 1*1=1.
CRC Cyclic Redundancy Check - (Циклический избыточный контрольный код) результат операции взятия остатка от деления проверяемого битового массива на некоторое число-делитель, которое обладает специфическими свойствами равномерно "размазывать" изменение в некотором бите массива на возможно большее число бит результата. Это число-делитель, называемое образующим полиномом, выбирается так, чтобы само являлось полиномиально простым - не делилось полиномиально нацело на любые числа от 2 до самого себя. кроме того, есть и другие критерии выбора полинома, направленные на уменьшение вероятности пропуска типичных ошибок в каналах передачи данных, так что самостийно выдумывать полиномы - дело не только трудное, но и вредное.
Полином может быть записан как в виде суммы степеней с ненулевыми (а значит - единичными) коэффициентами, так и маской этих единичек. Порядок записи единиц в маске однозначно связан с порядком обработки бит в проверяемом массиве, потому что в процессе расчета CRC промежуточный результат необходимо циклически сдвигать в ту же сторону, что и биты проверяемого массива, причем сдвигать так, чтобы вытеснялись старшие степени полинома. Самая старшая степень в маске не учитывается, она определяет только число бит маски. Ниже старшие степени отделены пропусками. Чтобы реализовать проверку с применением CRC, помимо маски полинома и порядка следования бит в массиве (определяющего направление циклического сдвига), необходимо знать начальное значение CRC и метод завершающей модификации результата вычисления CRC.
Типичные методы, применяемые для контроля целостности данных при передаче и хранении:
CCITT-CRC-32 [Все распространенные архиваторы и протоколы с CRC-32] биты массива обрабатываются, начиная с младшего бита в байте - LSB. Образующий полином: X^0+X^1+X^2+X^4+X^5+X^7+X^8+X^10+X^11+X^12+X^16+X^22+X^23+X^ 26 +X^32 Маска = EDB88320h, в которой правые цифры соответствуют старшим степеням, сдвиг выполняется вправо. Начальное значение - 0xFFFFFFFF. Конечная модификация - поразрядная инверсия всех битов результата.
CCITT-DOS-16 [архиватор LHA и, вероятно, некоторые другие с CRC-16] биты массива обрабатываются, начиная с младшего бита в байте - LSB. Образующий полином: X^0+X^2+X^15 +X^16 Маска = A001h, в которой правые цифры соответствуют старшим степеням, сдвиг выполняется вправо. Начальное значение - 0000. Конечная модификация - отсутствует.
CCITT-CRC-16 [протоколы передачи данных с CRC-16, Контроль EMSI] биты массива обрабатываются, начиная со старшего бита в байте - MSB. Образующий полином: X^16+ X^12+X^5+X^0 Маска = 0x1021, в которой левые цифры соответствуют старшим степеням, сдвиг выполняется влево. Начальное значение - 0x0000. Конечная модификация - отсутствует.
Теперь собственно описание вычисления: Рабочая переменная W соответствующей разрядности, в которой будет накапливаться результат, инициализируется начальным значением. Затем для каждого бита m входного массива выполняются следующие действия: W сдвигается на 1 бит (о направлении сдвига см. выше) В освободившийся бит W помещается нуль. Бит, только что вытолкнутый из W, сравнивается с битом m. если они не совпали, выполняется операция исключающего ИЛИ над W и маской полинома, результат заносится в W. И так, пока не будут обработаны все биты массива. После чего над W производится конечная модификация.
Можно сказать, что обычно так CRC считают только в схемных реализациях. Потому, что это очень медленно - ведь число циклов равно числу бит массива. При реализации на программном уровне обработка ведется восьмерками бит - байтами. Заводится табличка из 256 элементов. Каждое значение - результат расчета CRC над восьмеркой бит индекса элемента: for i := 0 to 255 do tab[i] := count_crc(i); После этого расчет CRC для массива можно вести байтами. Начало и конец расчета, как и раньше. А цикл идет для каждого байта Q: W := W XOR Q; W := сдвиг(W, 8) XOR таb[ W ]
При LSB-порядке Q операция XOR выполняется над младшими битами W, а при MSB-порядке - над старшими. Индексом в таблице служат именно эти биты.
Байтовый табличный метод требует ощутимых затрат памяти под таблицу. Для CRC-32 требуется таблица размером в килобайт. Если килобайт памяти для реализации с одним циклом на байт массива это перебор, можно предложить компромиссный вариант - считать СRC, не восьмерками, а четверками бит. CRC-32-таблица из 16 значений займет 64 байта, но скорость будет несколько ниже, чем при большой таблице, хотя существенно выше, чем без нее вообще.
В реализации расчета CRC для z-modem'а есть один тонкий момент. Там допущено отклонение от базовой схемы. Две строки поменяли местами: W := сдвиг(W, 8) XOR таb[ W ]; W := W XOR Q
В результате получается не чистый CRC: контрольный код z-modem'а для массивов до двух байт размером "равен" самому массиву. Например, для массива из двух байт 3 и 8, контрольный код будет равен 0308h.
[И наконец, одно маленькое замечание. Операция вычисления CRC обратима. Не в том смысле, конечно, что по CRC можно восстановить весь массив, а в том, что если дано CRC разрядности N и дан некоторый массив, в котором где-нибудь можно поменять подряд N бит, то подогнать этот массив под заданную CRC не сложнее, чем посчитать CRC. СRC не является кpиптографически устойчивой хеш-функцией.]
Практика
Составьте алгоритмическое и программное обеспечение, реализующее алгоритм CRC. В качестве исходных данные – файл. Для созданного программного обеспечения проведите тестирование не менее чем на 10 различных наборах данных.
Литература
Доктрина информационной безопасности Российской Федерации. 2000г. Утв. Президентом РФ от 9 сентября 2000 г. № Пр-1895 // Российская газета. — 2000. — 28 сентября (№187).
Об электронно-цифровой подписи. Федеральный закон РФ от 10 января 2001г. №1-ФЗ // Собрание законодательства РФ. — 2002. — № 2 — ст. 127.
Гостехкомиссия России. Руководящий документ. Безопасность информационных технологий. Критерии оценки безопасности информационных технологий, 2003.
Гостехкомиссия России. Руководящий документ. Концепция защиты средств вычислительной техники от несанкционированного доступа к информации. Москва, 1992.
Гостехкомиссия России. Руководящий документ. Средств вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации. Москва, 1992.
Гостехкомиссия России. Руководящий документ. Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированные систем и требований по защите информации. Москва, 1992.
ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. — М.: Госстандарт СССР, 1989.
ГОСТ 34.10-94. Информационная технология. Криптографическая защита информации. Система электронно-цифровой подписи на базе асимметричного криптографического алгоритма. — М.: Госстандарт России, 1994.
ГОСТ 34.10-01. Информационная технология. Криптографическая защита информации. Система электронно-цифровой подписи на базе асимметричного криптографического алгоритма. — М.: Госстандарт России, 2001.
ГОСТ 34.11-94. Информационная технология. Криптографическая защита информации. Функция хэширования. — М.: Госстандарт России, 1994.
Анин Б. Ю. Защита компьютерной информации. — СПб.: БХВ — Санкт-Петербург, 2000. — 384 с.
Гайкович В. Ю., Першин А. Ю. Безопасность электронных банковских систем. — М.: Единая Европа, 1994. — 365 с.
Герасименко В. А. Защита информации в автоматизированных системах обработки данных. В 2-х кн. — М.: Энергоатомиздат, 1994.
Герасименко В. А., Малюк А. А. Основы защиты информации. — М.: «Инкомбук», 1997. — 540 с.
Грушко А. А., Тимонина Е. Е. Теоретические основы защиты информации — М.: Изд-во агентства «Яхтсмен», 1996. — 192 с.
Зегжда Д. П., Ивашко А. М. Основы безопасности информационных систем. — М.: Горячая линия - Телеком, 2000. — 452 с.
Касперский Е. Компьютерные вирусы: что это такое и как с ними бороться — М.: СК Пресс, 1998. — 288 с.
Мельников В. В. Защита информации в компьютерных системах. —— М.: Финансы и статистика. 1997. — 364 с.
Мещеряков Р. В., Шелупанов А. А. Специальные вопросы информационной безопасности. — Томск.: Изд-во ИОА ТНЦ СО РАН, 2003 — 250 с.
Мещеряков Р. В., Шелупанов А. А., Белов Е. Б., Лось В. П. Основы информационной безопасности. — М.:Горячая линия-Телеком, 2006.— 540 с.
Партыка Т. Л., Попов И. И. Информационная безопасность. — М.:: ФОРУМ: ИНФРА-М, 2002 — 368 с.
Программно-аппаратные средства обеспечения информационной безопасности. Защита программ и данных: Учебное пособие для вузов / П. Ю. Белкин, О. О. Михальский, А. С. Першаков и др. — М.: Радио и связь, 2000. — 168 с.
Программно-аппаратные средства обеспечения информационной безопасности. Защита в операционных системах: Учебное пособие для вузов / В. Г. Проскурин, С. В. Крутов, И. В. Мацкевич — М.: Радио и связь, 2000. — 168 с.
Романец Ю. В., Тимофеев П. А., Шаньгин В. Ф. Защиты информации в компьютерных системах. — М.: Радио и связь, 2001. — 378 с.
Самосук М. Компьютерное пиратство / Защита программного обеспечения. Под ред. Гроубера. - М.: Мир, 1992/
Семкин С. Н., Семкин А. Н. Основы информационной безопасности объектов обработки информации. Научно-практическое пособие. — Орел.: Труд, 2000. — 300 с.
Теоретические основы компьютерной безопасности: Учебное пособие для вузов / П. Н. Девянин, О. О. Михальский, Д. И. Правиков и др. — М.: Радио и связь, 2000. — 192 с.
Чижухин Г. Н. основы защиты информации в вычислительных системах и сетях ЭВМ: Учебное пособие. — Пенза.: Изд-во Пенз. гос. ун-та, 2001. — 164 с.
Хоффман Л. Дж. Современные методы защиты информации / Пер. с англ. – М.: Советское радио, 1980. — 268 с.
Shneier B. Applied cryptography, 2nd Edition, John & Sons, 1996/ (Шнайдер Б. Прикладная криптография. – М.: Мир, 1999)
Trusted Computer System Evaluation Ctriteria. US Department of Defence 5200.28-STD, 1993.
Учебное издание
МЕЩЕРЯКОВ Роман Валерьевич
МОКИНА Елена Евгеньевна
Безопасность
информационных систем
Учебное пособие
Корректура И.О. Фамилия
Компьютерная верстка И.О. Фамилия
Дизайн обложки И.О. Фамилия
Подписано к печати 00.00.2013. Формат 60х84/16. Бумага «Снегурочка». Печать XEROX. Усл.печ.л. 9,01. Уч.-изд.л. 8,16. Заказ 000-13. Тираж 100 экз. | ||
![]() | Национальный исследовательский Томский политехнический университет Система менеджмента качества Издательства Томского политехнического университета сертифицирована NATIONAL QUALITY ASSURANCE по стандарту BS EN ISO 9001:2008 | ![]() |
![]() Тел./факс: 8(3822)56-35-35, www.tpu.ru |
1 Приводится по работе [20]
2 Приводится по работе [20]
3 Приводится по работе [20]
4Приводится по работе [19]
5 Приводится по работе [19]
6 Приводится по работам [20, 30]
7 Приводится по работам [19, 28]
страница 1 ... страница 30страница 31страница 32страница 33
скачать
Другие похожие работы: