Асимметричные алгоритмы Односторонние хэш-функции • • Задача: обеспечение целостности данных; требуется сопоставить каждому массиву данных невоспроизводимую контрольную сумму Механизм: хэш-функция (hash function) – на вход подается блок данных любой длины – на выходе число определенной длины • Свойства: – однонаправленность: подсчитать хэш-сумму легко, а предсказать контекст, который даст заданное значение хэш-суммы невозможно – высокая контекстная чувствительность: любое изменение первоначальных данных (один бит!) приводит к непредсказуемому изменению контрольной суммы • Наиболее широко применяемые алгоритмы расчета контрольных сумм – Message Digest 5 (MD5) – Secure Hash Algorithm 1 (SHA-1) – ГОСТ Р 34.11- 94 (в РФ) 2 Имитовставка (Keyed hash function) 3 Имитовставка (Keyed hash function) • • Задача: передать от объекта А объекту Б открытое сообщение, которое никто не сможет подделать Механизм: – Алиса формирует составной блок данных: открытое письмо + секретный ключ и рассчитывает хэш по этому блоку данных • эту хэш-сумму в западной литературе называют keyd hash function – письмо и хэш передаются Бобу по открытому каналу • это безопасно: не зная секретного ключа, злоумышленник не сможет изменить документ и поделать соответствующее значение хэш- – Боб рассчитывает хэш по аналогичному блоку данных и сверяет значение хэшсуммы с присланным Алисой 4 Имитовставка «у нас» и «у них» • • Режим расчета имитовставки описан в ГОСТ 28147-89 Однако в логика применения различна для традиционной западной Keyed hash function (Keyed HMAC) и имитовставки ГОСТ 2814789: – – • В результате – – 5 Keyed HMAC обычно рассчитывают по контексту, целостность которого требуется контролировать; дополнительные операции могут не выполняться ГОСТ 28147 рассчитывает имитовставку по открытому тексту, который всегда затем шифрует российский алгоритм выглядит довольно высоко защищенным западный алгоритм позволяет «отбраковать» нецелостное сообщение только по хэшсумме, не выполняя трудоемкой операции дешифрования; как следствие – системы Keyed HMAC более устойчивы к DoS-атакам Асимметричные криптосистемы • • Задача: обеспечить конфиденциальность информации в больших открытых системах Задача решается при помощи асимметричных алгоритмов – каждый участник обмена создает ключевую пару – секретный (КС) и открытый (КО) ключ – открытый ключ можно передать партнеру без риска компрометации секретного ключа – шифрование и дешифрование асимметричны: • отправитель (А) шифрует, используя пару ( KСА +KО Б ) • получатель (Б) расшифровывает, используя С О пару (KБ +KА ) • Ключевое управление существенно проще: – N вместо ~N2 секретных ключей 6 Алгоритм Диффи-Хеллмана (Diffie-Hellman) • Великое открытие 1976 года Расчет ключевой пары KСА – расчет комплиментарной пары ключей KА = (g О ?! 1. генерация секретного ключа КС 2. вычисление открытого ключа КО (экспонента) • обратный расчет открытого ключа (логарифм) невозможен, следовательно открытый ключ можно передать кому угодно • g (база) и p (модуль) длинные простые числа, опубликованы в соответствующих стандартах KСА ) mod p ) О KСА = log ( K А g Расчет разделяемого секрета – расчет разделяемого секрета С K О А KАБ = ( KБ С K О Б KБА = ( KА KСБKСА ) mod p = (g ) mod p KСАKСБ ) mod p = (g ) mod p 7 • и получатель, и отправитель могут рассчитать известное только им число K = K (разделяемый секрет) • никто другой его рассчитать не сможет, поскольку не знает секретного ключа АБ БА «Механическая» аналогия 8 Асимметричные криптоалгоритмы • Diffie-Hellmann – основан на невозможности дискретного логарифмирования больших чисел • RSA – Rivest, Shamir, Adelman – дополняет NP-сложную задачу логарифмирования сложной задачей разложения на множители • El Hamal • DSA – Digital Signature algorithm, стандарт США Слева направо: Ади Шамир, Рональд Райвист, Леонард Адлеман, Ральф Меркль, Мартин Хеллман, Витфилд Диффи 9 Электронная цифровая подпись 10 Электронная цифровая подпись • Задача: обеспечение целостности данных, аутентификации отправителя, неотказуемости – – • каждый партнер должен обладать комплементарной парой открытый-секретный ключ партнеры должны обменяться публичными (открытыми ) ключами Свойства ЭЦП: – уникальна – неотъемлема от документа – может быть создана только автором (владельцем секретного ключа ЭЦП) • в случае, если этим ключом владеет только автор, обеспечивает доказательство авторства (выполнения действия) • 11 Регламентируется законодательством – Закон Украины Об электронной цифровой подписи (2003) Свойства асимметричных криптосистем • Преимущества: – решают задачу ключевого управления (отсутствует обмен секретами между участниками защищенного взаимодействия) – обеспечивают неотказуемость на основе ЭЦП • Недостатки: – высокие вычислительные затраты • решение: применение алгоритмов симметричного шифрования – отсутствует прямая возможность аутентификации ключевого обмена • атака «Man in the Middle» 12 Справка: атака «Man in the Middle» 13 Справка: атака «Man in the Middle» • Алиса и Боб попытались обменяться открытыми ключами • Злоумышленник сумел перехватить этот обмен и выдать Алисе свой открытый ключ от имени Боба и наоборот – после этого он сможет расшифровать трафик Алисы, перешифровать его с использованием открытого ключа Боба и передать результат Бобу • конфиденциальность нарушена • Алиса и Боб никогда не узнают о нарушении конфиденциальности 14 Шифрование, дешифрование и генерация ключей в RSA Криптографическая система RSA Генерация ключей Получатель 1. P, Q - простые, N = P · Q 2. φ(N) = (P-1) · (Q-1), φ(N) - функция Эйлера Выбор открытого ключа Y: 1<Y φ(N), НОД(Y, φ(N)) = 1 Вычисление секретного ключа X: X · Y 1 (mod φ(N)) (N,Y) отправителю Отправитель шифрование М (Мi = 0, 1, 2, …, N-1) 3. Ci = MiY (mod N) Получатель расшифрование С(С1, С2, …, Сi, …) 4. Мi = СiX (mod N) Пример Генерация ключей 1. P = 3, Q = 11, N = P · Q = 33 2. φ(N) = (P-1) · (Q-1) = 2 · 10 = 20 Y = 7, НОД(Y, φ(N)) = 1 X · Y = 1 (mod 20), 7 · 3 = 1 (mod 20), Х = 3 Сооб щение: М1М2 32; М1 = 3<33, М2 = 2<33 Шифрование Ci = MiY (mod N) 3. C1 = 37 mod 33 = 2187 mod 33 = 9 C2 = 27 mod 33 = 128 mod 33 = 29 Шифротекст 9,29 Расшифрование Мi = СiX (mod N) 4. М1 = 93 mod 33 = 729 mod 33 = 3 М2 = 293 mod 33 = 24389 mod 33 = 2 Восстановленный текст 3,2 Атаки RSА Генерация ключей, шифрование, и дешифрование в криптосистеме Эль-Гамаля Алгоритм Эль-Гамаля Генерация ключей 1. P, G - простые (P>G) 2. Х - секретный ключ, (случайное целое Х<P) 3. Y - открытый ключ Y = GX mod P Шифрование М 4. К - случайное целое, 1<К<(P-1), НОД(К, P-1) = 1 a = GK mod P b = YKM mod P (a, b) - шифротекст Расшифрование (a, b) 5. M = (b / aX ) mod P Пример Шифрование М = 5 1. Р = 11, G = 2 (P>G) 2. X<P, X = 8 - секретный ключ 3. Y = GX mod P = 28 mod 11= 256 mod 11 = 3 Y = 3 - открытый ключ 4. К = 9, НОД(К, Р-1) = 1, НОД(9, 10) = 1 a = GK mod P = 29 mod 11 = 512 mod 11 = 6 b = YKM mod P = 39 ·5 mod 11 = 19683 · 5 mod 11 = 9 (a, b) = (6, 9) - шифротекст Расшифрование 5. М = (b / aX ) mod P = 9 / 68 mod 11 6 8 M = 9 mod 11 1679619 · M = 9 mod 11 M=5 Управление ключами Проблема обмена открытыми ключами • Асимметричные криптосистемы привлекательны, но требуют специальных мер защиты обмена открытыми ключами (защита от атаки «Man in the Middle») • Возможные сценарии защиты: – Обмен открытыми ключами по доверительному каналу или проверка контрольных сумм открытых ключей по доверительному каналу • крайне неудобно, устраняет все преимущества асимметричной системы – Инфраструктура открытых ключей (Public Key Infrastructure, PKI) • Удостоверяющий центр (Certificate Authority, CA) • ЭЦП удостоверяющего центра оформляется в виде «Сертификата» открытого ключа 23 Основные функции PKI • Инфраструктура открытых ключей: – регистрация пользователей, регистрация запросов на формирование сертификатов – выпуск/обновление сертификатов открытых ключей • по электронному запросу пользователя • по запросу администратора – управление ключами и сертификатами • генерация, именование ключей и сертификатов • хранение сертификатов • распространение сертификатов • отзыв сертификатов • аутентификация, контроль доступа к функциям управления ключами, протоколирование и мониторинг 24 Сертификат X.509 v.3 Сертификат (X.509 v3) Формат сертификата, версия Серийный номер сертификата Алгоритм ЭЦП (идентификатор) Имя издателя сертификата (X.500 issuer name) Период действия сертификата • Типовая архитектура PKI и структура сертификатов (X.509 v.3, CRL v.2) определена в международных стандартах ITU-T X.509 (ISO/IEC/ITU 9594-8) и RFC 2459 • Сертификат X.509 v3 состоит из трех частей – «Тело» сертификата – формат, версия и серийный номер сертификата, атрибуты владельца (subject) и издателя (issuer) сертификата, значение открытого ключа, расширения сертификата – Алгоритм ЭЦП, на котором произведена подпись удостоверяющего центра (certificate authority, CA) – ЭЦП удостоверяющего центра (значение) Имя владельца сертификата (X.500 subject name) Информация об открытом ключе Итентификатор алгоритма Значение Уникальный идентификатор издателя Уникальный идентификатор владельца Расширения сертификата (Extensions) Алгоритм ЭЦП (иднтификатор) ЭЦП на секретном ключе издателя сертификата 25 Архитектурная модель PKI 26 • Выдает сертификаты и CRL • Распространяет сертификаты и CRL • Позволяет контролировать время действия сертификатов Децентрализованное издание сертификатов А • Конечный пользователь генерирует секретный ключ, включает открытый ключ в запрос на сертификат и направляет его для сертификации в удостоверяющий центр – схема обеспечивает уникальность и полную секретность личного ключа пользователя – в этой схеме реализуется строго функция неотказуемости, поэтому такая схема имеет преимущество в юридически значимом электронном документообороте 27 Централизованное издание сертификатов А • Ключевые пару генерирует и распространяет администратор удостоверяющего центра – схема эксплуатационно более проста, чем децентрализованное издание ключей, и может быть рекомендована для «неперсонализированных» приложений, где юридическая значимость ЭЦП не имеет большого значения (например, в VPN) 28 Масштабируемость: иерархия PKI 29 Источники разработки 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Ueli Maurer, «Cryptography. Fundamentals and Applications», advanced technology seminar, Zurich, Switzerland, 2000 B.Schneier, «Security in the real world», Computer security journal, 1999, vol. XV, №4 ISO 7498-2, «Information processing systems—Open Systems Interconnection—Basic Reference Model—Part 2: Security Architecture», 1989. Брюс Шнайер, «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си», Триумф, 2003 Ueli Maurer, «Cryptography 2000±10», Department of Computer Science, Swiss Federal Institute of Technology (ETH), Zurich, CH-8092 Zurich, Switzerland, ftp://ftp.inf.ethz.ch/pub/crypto/publications/FGMO01.pdf Павел Исаев, «Криптографические алгоритмы», Компьютерпресс, март 2002 W.Diffie, M.E.Hellmann, «New directions in cryptography», IEEE Transactions on information theory, vol.22, №6, стр. 644-654, 1976 R.L.Rivest, A.Shamir, L.Adleman, «A method of obtaining digital signatures and public-key cryptosystems», Communications of the ACM, 1978, vol. 21, №2, p.p. 120-126 Chris Brooks, «Computers and Society. Encryption Algorithms», Department of Computer Science, University of San Francisco RFC 1750, S. Crocker, J. Schiller, December 1994 «Randomness Recommendations for Security» 30