Московский физико-технический институт
Опубликован: 24.08.2004 | Доступ: свободный | Студентов: 24502 / 8721 | Оценка: 4.37 / 4.06 | Длительность: 19:18:00
ISBN: 978-5-9556-0044-4
Лекция 15:

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

< Лекция 14 || Лекция 15: 123 || Лекция 16 >

Криптография как одна из базовых технологий безопасности ОС

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

Шифрование – процесс преобразования сообщения из открытого текста (plaintext) в шифротекст (ciphertext) таким образом, чтобы:

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

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

В методе шифрования с секретным или симметричным ключом имеется один ключ, который используется как для шифрования, так и для расшифровки сообщения. Такой ключ нужно хранить в секрете. Это затрудняет использование системы шифрования, поскольку ключи должны регулярно меняться, для чего требуется их секретное распространение. Наиболее популярные алгоритмы шифрования с секретным ключом: DES, TripleDES, ГОСТ и ряд других.

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

В системах шифрования с открытым или асимметричным ключом (public/ assymmetric key) используется два ключа (см. рис. 15.1). Один из ключей, называемый открытым, несекретным, используется для шифрования сообщений, которые могут быть расшифрованы только с помощью секретного ключа, имеющегося у получателя, для которого предназначено сообщение. Иногда поступают по-другому. Для шифрования сообщения используется секретный ключ, и если сообщение можно расшифровать с помощью открытого ключа, подлинность отправителя будет гарантирована (система электронной подписи). Этот принцип изобретен Уитфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman) в 1976 г.

Шифрование открытым ключом

Рис. 15.1. Шифрование открытым ключом

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

Среди несимметричных алгоритмов наиболее известен RSA, предложенный Роном Ривестом (Ron Rivest), Ади Шамиром (Adi Shamir) и Леонардом Эдлманом (Leonard Adleman). Рассмотрим его более подробно.

Шифрование с использованием алгоритма RSA

Идея, положенная в основу метода, состоит в том, чтобы найти такую функцию y=\Phi(x), для которой получение обратной функции x=f^{-1}(y) было бы в общем случае очень сложной задачей (NP-полной задачей). Например, получить произведение двух чисел n=pxq просто, а разложить n на множители, если p и q достаточно большие простые числа, – NP-полная задача с вычислительной сложностью ~ n^{10}. Однако если знать некую секретную информацию, то найти обратную функцию x=f^{-1}(y) существенно проще. Такие функции также называют односторонними функциями с лазейкой или потайным ходом.

Применяемые в RSA прямая и обратная функции просты. Они базируются на применении теоремы Эйлера из теории чисел.

Прежде чем сформулировать теорему Эйлера, необходимо определить важную функцию \Phi(n) из теории чисел, называемую функцией Эйлера. Это число взаимно простых (взаимно простыми называются целые числа, не имеющие общих делителей) с n целых чисел, меньших n. Например, \Phi(7)=6. Очевидно, что, если p и q – простые числа и p \ne q, то \Phi(p)=p-1, и \Phi(pq)=(p-1)(q-1).

Теорема Эйлера

Теорема Эйлера утверждает, что для любых взаимно простых чисел x и n
(x < n)

x^{\Phi(n)} \mod n = 1

или в более общем виде

x^{k\Phi(n)+1} \mod n = 1

Сформулируем еще один важный результат. Для любого m>0 и 0<e<m, где e и m взаимно просты, найдется единственное 0<d<m, такое, что

de \mod m = 1.

Здесь d легко можно найти по обобщенному алгоритму Евклида (см., например, Д. Кнут. Искусство программирования на ЭВМ, т.2, 4.5.2). Известно, что вычислительная сложность алгоритма Евклида ~ ln n.

Подставляя \Phi(n) вместо m, получим de \mod \Phi(n)=1

или

de = k \Phi(n)+1

Тогда прямой функцией будет

\Phi(x) = x^e \mod n

где x – положительное целое, x < n=pq, p и q – целые простые числа и, следовательно,

\Phi (n)=(p-1)(q-1)

где e – положительное целое и e < \Phi(n). Здесь e и n открыты. Однако p и q неизвестны (чтобы их найти, нужно выполнить разбиение n на множители), следовательно, неизвестна и \Phi(n), а именно они и составляют потайной ход.

Вычислим обратную функцию

\Phi^{-1}(y) = y^d \mod n = x^{ed} \mod n = x^{k \Phi (n)+1} \mod n = x

Последнее преобразование справедливо, поскольку x < n и x и n взаимно просты.

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

  1. Выбрать два очень больших простых числа p и q ;
  2. Вычислить произведение n=pq ;
  3. Выбрать большое случайное число d, не имеющее общих сомножителей с числом (p-1)(q-1) ;
  4. Определить число e, чтобы выполнялось

    (ed) \mod ((p-1)(q-1))=1.

Тогда открытым ключом будут числа e и n, а секретным ключом – числа d и n.

Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее.

  • Разбить шифруемый текст на блоки, где i-й блок представить в виде числа M, величина которого меньше, чем n. Это можно сделать различными способами, например используя вместо букв их номера в алфавите.
  • Зашифровать текст, рассматриваемый как последовательность чисел m(i), по формуле c(i)=(m(i)^{e}) \mod n.

Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо вычислить: m(i) = (c(i)^{d}) \mod n. В результате будет получено множество чисел m(i), которые представляют собой часть исходного текста.

Например, зашифруем и расшифруем сообщение "AБВ", которое представим как число 123.

Выбираем p=5 и q=11 (числа на самом деле должны быть большими).

Находим n=5*11=55.

Определяем (p-1)(q-1)=40. Тогда d будет равно, например, 7.

Выберем e, исходя из (e * 7) \mod 40=1. Например, e=3.

Теперь зашифруем сообщение, используя открытый ключ {3,55}

C1 = (1^{3}) \mod 55 = 1
C2 = (2^{3}) \mod 55 = 8
C3 = (3^{3}) \mod 55 = 27

Теперь расшифруем эти данные, используя закрытый ключ {7,55}.

M1 = (1^{7}) \mod 55 = 1
M2 = (8^{7}) \mod 55 = 2097152 \mod 55 = 2
M3 = (27^{7}) \mod 55 = 10460353203 \mod 55 = 3

Таким образом, все данные расшифрованы.

Заключение

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

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

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

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

< Лекция 14 || Лекция 15: 123 || Лекция 16 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Сергей Семёнов
Сергей Семёнов

Здравствуйте.

Подскажите пожалуйста, где можно найти слайды презентаций для лекций?