Шифрование с открытым ключом: определение, особенности и виды алгоритмов

Идея шифрования с открытым ключом впервые была представлена в Стэнфордском университете в 1976 году М. Хеллманом, Р. Меркле и У. Диффи.

Двумя типами алгоритмов PKC являются: RSA - аббревиатура, получившая название в честь изобретателей: Rivest, Shamir and Adelman и DSA (Digital Signature Algorithm). Шифрование PKC эволюционировало для удовлетворения растущих безопасных коммуникационных потребностей многих секторов и отраслей промышленности, особенно военного направления. В отличие от криптографии с симметричным ключом, шифрование с открытым ключом - это относительно новая концепция.

Этапы возникновения криптосистем

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

Этапы процесса создания:

  • 1977 год. Изобретен RSA группой программистов Р. Ривест, А. Шамир и Л. Адлеман.
  • 1978 год. Создан МакЭлис из-за проблем декодирования для кодов Goppa.
  • 1979 год. Вышел Рабин, основанный на проблеме факторинга и связанный с RSA.
  • 1984 год. Издан Chor-Rivest.
  • 1985 год. Вышел Elgamal на основе дискретного логарифма.

Другие асимметричные криптосистемы:

  1. Эллиптический метод на основе эллиптических кривых, напоминающий Elgamal.
  2. Merkle / Hellman - на основе задачи о рюкзаке LUC, как и RSA, образует последовательность Лукаса.
  3. MNLN - такой же, как RSA.

Принцип шифрования, преимущества и недостатки

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

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

Такие криптосистемы применяются для шифрования данных открытым ключом, аутентификации и целостности. Известными примерами, основанными на асимметричных методах, являются OpenPGP или S/MIME, а также криптографические протоколы, такие как SSH, SSL/TLS и даже https основаны на асимметричных криптосистемах.

Преимущества:

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

Недостатками систем шифрования с открытым ключом являются:

  1. Алгоритмы работают очень медленно: примерно в 10 000 раз медленнее симметричных.
  2. Большая требуемая длина ключа.
  3. Проблемы с несколькими получателями, когда сообщение должно быть дополнительно зашифровано.
  4. Средства защиты гибридных процедур.
  5. Риск безопасности, доступный для каждого открытого ключа, также является недостатком систем шифрования с открытым ключом.

Асимметричная криптография

PKC также известен как шифрование с открытым ключом, асимметричное шифрование, асимметричная криптография, асимметричный шифр, асимметричное шифрование ключей и шифрование Diffie-Hellman. PKC - это криптографический алгоритм и компонент криптосистемы, реализованный различными интернет-стандартами, включая безопасность транспортного уровня (TLS), Pretty Good Privacy (PGP), GNU Privacy Guard (GPG), Secure Socket Layer (SSL) и протокол передачи гипертекста (HTTP).

PKC обеспечивает безопасную связь через небезопасный канал, который позволяет считывать сообщение только предполагаемым получателем. Например, A использует открытый ключ B для шифрования сообщения, которое может быть расшифровано с использованием уникального частного ключа B.

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

PKC медленнее, чем методы криптографии секретного ключа (или симметричной криптографии), из-за высоких вычислительных требований. Это явный недостаток систем шифрования с открытым ключом. В отличие от симметричной криптографии, PKC использует фиксированный размер буфера, в зависимости от конкретных и малых объемов данных, которые могут быть зашифрованы и не привязаны в потоках. Поскольку используется широкий диапазон возможных ключей шифрования, PKC является более надежным и менее восприимчивым к попыткам нарушения безопасности.

Метод открытого ключа

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

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

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

Генерация пары RSA

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

  1. Генерировать модуль RSA (n).
  2. Подбирают два простых числа p и q.
  3. Находят производный номер e. Число e должно быть больше 1 и меньше (p - 1) (q - 1). Для e и (p - 1) (q - 1) не должно быть общего фактора, кроме 1.
  4. Выполняют шифрование с помощью открытого ключа.
  5. Пара чисел (n, e) формирует открытый ключ RSA. Хотя n является частью открытого ключа, трудности с факторизацией такого числа обеспечивают, что злоумышленник не может найти за конечное время два простых числа (p & q), используемых для получения n. Это понимание является основой RSA.

Создание секретного ключа состоит в следующем. Частный ключ d вычисляется из p, q и e. Для заданных n и e существует единственное число d. Число d является инверсией e по модулю (p - 1) (q - 1). Это означает, что d - это число меньше (p - 1) (q - 1), но такое, что при умножении на e оно равно 1 по модулю (p - 1) (q - 1). Это соотношение написано математически следующим образом:

ed = 1 mod (p − 1)(q − 1).

Расширенный евклидовый алгоритм принимает p, q и e в качестве входных данных и дает d в качестве вывода. Ниже приведен пример создания пары RSA Key. Для удобства понимания простые числа p & q, взятые здесь, являются небольшими значениями. Практически эти значения должны быть очень значимыми.

Алгоритм вычисления:

  1. Пусть два простых числа равны p = 7 и q = 13. Таким образом, модуль n = pq = 7 x 13 = 91.
  2. Выбирают e = 5, что является допустимым выбором, так как нет числа, которое является общим фактором 5 и (p - 1) (q - 1) = 6 × 12 = 72, за исключением 1. Пара чисел (n, e) = (91, 5) формирует открытый ключ и может быть доступна всем, кому нужно отправить зашифрованные сообщения. Вход p = 7, q = 13 и e = 5. Выход будет равен d = 29.
  3. Убеждаются, что вычисленный d правильный - de = 29 × 5 = 145 = 1 mod 72.
  4. Следовательно, открытый ключ - это (91, 5) и закрытые ключи (91, 29).

Шифрование и дешифрование

Далее процесс шифрования и дешифрования является относительно простым и легко вычисляемым. Интересно, что RSA напрямую не работает со строками битов, как в случае симметричного метода. Он работает с числами по модулю n. Следовательно, необходимо представить открытый текст, как ряд чисел, меньших n.

Шифрование RSA:

  1. Предположим, что отправитель хочет отправить текстовое сообщение кому-то, открытый ключ которого (n, e).
  2. Затем отправитель представляет открытый текст как серию чисел меньше n.
  3. Зашифровать первый открытый текст P, который является номером по модулю n. Процесс шифрования - это простой математический шаг, C = Pe mod n.

Другими словами, зашифрованный текст C равен открытому тексту P, умноженному на него e раз, а затем уменьшенному по модулю n. Это означает, что C также меньше n. Возвращаясь к примеру генерации ключей с открытым текстом P = 10, получаем шифрованный текст: C = 105 mod 91.

Расшифровка RSA:

  1. Процесс дешифрования для RSA также очень прост. Предположим, что получатель пары ключей (n, e) получил текст C.
  2. Получатель поднимает значение C для ключа d. Результат по модулю n будет открытым текстом P: Plaintext = Cd mod n.
  3. Возвращаемся снова к численному примеру, шифрованный текст C = 82 будет дешифрован до числа 10 с использованием закрытого ключа 29: Plaintext = 8229 mod 91 = 10.

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

Функция шифрования - считается однонаправленной функцией преобразования открытого текста в зашифрованный текст и может быть отменена только с помощью секретного ключа d. Трудность определения открытого и закрытого ключа шифрования RSA эквивалентна факторизации модуля n. Таким образом, злоумышленник не может использовать знание открытого ключа RSA для определения секретного ключа RSA, если только он не может определить n. Это также односторонняя функция, переход от значений p & q к модулю n легко, но обратное не представляется возможным.

Если любая из этих двух функций будет не односторонней, то RSA нарушается. Фактически, если технология факторинга эффективно разработана, то RSA больше не будет в безопасности. Сила шифрования RSA резко снижается против атак, если число p и q не являются простыми числами или выбранный открытый ключ e является небольшим числом.

Криптосистема ElGamal

Наряду с RSA, существуют и другие криптосистемы с открытым ключом. Многие из них основаны на разных версиях проблемы дискретного логарифма.

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

Например, простая версия ElGamal, которая работает с числами modulo p. В случае вариантов эллиптической кривой метод основан на совершенно разных системах исчисления. Каждый пользователь криптосистемы ElGamal генерирует пару ключей следующим образом:

  1. Выбор большого простого числа p. Обычно выбирается простое число от 1024 до 2048 бит.
  2. Выбор генераторного элемента g. Это число должно быть от 1 до p - 1.
  3. Он является генератором мультипликативной группы целых чисел по модулю р. Это означает, что для любого целого m co-prime с p существует целое число k такое, что g k = a mod n. Например, 3 является генератором группы 5 (Z 5 = {1, 2, 3, 4}).

N

3 n

3 n mod 5

1

3

3

2

9

4

3

27

2

4

81

1

Выбор секретного ключа. Частным ключом x является любое число, большее 1 и меньше, чем (p-1). Вычисление части открытого ключа. Значение y вычисляется по параметрам p, g и закрытому ключу x следующим образом:

y = gx mod p.

Получение открытого ключа. Открытый ключ ElGamal состоит из трех параметров (p, g, y).Предположим, например, что p = 17 и g = 6. Можно утверждать, что 6 является генератором группы Z 17. Закрытый ключ x может быть любым числом больше 1 и меньше 71, поэтому выбирают x = 5. Затем значение y вычисляется следующим образом:

y = 65 mod 17 = 7.

Таким образом, закрытый ключ равен 62, а открытый ключ - (17, 6, 7).

Эллиптическая кривая ECC

Эллиптическая кривая криптографии (ECC) - это термин, используемый для описания набора криптографических инструментов и протоколов, безопасность которых основана на специальных версиях проблемы дискретного логарифма. Он не использует числа modulo p. ECC основан на наборах чисел, связанных с математическими объектами, называемыми эллиптическими кривыми. Существуют правила для добавления и вычисления кратных этих чисел, как и для чисел по модулю p.

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

Это вызывает переход от чисел по модулю «p» к точкам на эллиптической кривой. Также эквивалентный уровень безопасности может быть получен с более короткими ключами, если используют варианты с эллиптической кривой. Более короткие клавиши приводят к двум преимуществам шифрования информации открытым ключом:

  1. Простота управления ключами.
  2. Эффективное вычисление.

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

RSA

ElGamal

Более эффективный для шифрования.

Более эффективный для дешифрования.

Менее эффективный для дешифрования.

Более эффективный для дешифрования.

Для определенного уровня безопасности в RSA требуются длинные ключи.

Для того же уровня безопасности требуются очень короткие ключи.

Метод широко используется.

Новый метод и пока не очень популярный на рынке.

Протокол Secure Sockets Layer (SSL)

Интернет-трафик, который передает информацию через промежуточные компьютеры, может быть перехвачен третьей стороной:

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

Олицетворение может иметь две формы:

  1. Подмена. Человек может притворяться кем-то другим.
  2. Искажение. Человек или организация могут исказить себя. Например, названный сайт может претендовать на роль в онлайн-магазине мебели, когда он действительно получает платежи по кредитным картам, но никогда не отправляет какие-либо товары.

Криптография с открытым ключом обеспечивает защиту от интернет-атак.

Алгоритм шифрования и его преимущества безопасности

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

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

Цифровые сертификаты выдаются организациями, известными как центры сертификации (ЦС). Основными бизнес-приложениями для криптографии с открытым ключом являются:

  1. Цифровые подписи - контент цифровой подписи с закрытым ключом пользователя проверяется открытым ключом пользователя.
  2. Шифрование - содержимое зашифровывается с помощью открытого ключа и может быть расшифровано только с помощью частного ключа пользователя.

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

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

Инфраструктура открытого инструмента

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

PKI основан на асимметричной криптографии, широко используется сегодня для обеспечения электронной связи для онлайн-покупок, интернет-банкинга и электронной почты, а также для защиты сообщений между миллионами пользователей и веб-сайтов, которые они подключают к использованию HTTPS.

Хотя можно легко шифровать сообщения без PKI, пользователь не можете легко проверить, с кем он общается. Другими словами, инфраструктура PKI помогает ему аутентифицировать или проверять личность, с которой он общается.

Типичная экосистема PKI включает следующие ключевые компоненты:

  1. Политика сертификации - это спецификация безопасности, которая определяет структуру и иерархию экосистемы PKI, а также политики, связанные с управлением ключами, безопасным хранением, обработкой, аннулированием.
  2. Корневой центр сертификации (CA) отвечает за аутентификацию идентичностей в системе.
  3. Промежуточный ЦС сертифицирован корневым ЦС для конкретных целей, определенных политикой сертификата.
  4. Цифровые сертификаты обычно выдаются и подписываются центрами сертификации.
  5. База данных сертификатов хранит их записи.
  6. Служба аннулирования - это серверы, на которых публикуются обновленные списки отзыва сертификатов (CRL) или Online Certificate Status Protocol (OCSP), которые используют CRL и отвечают на проверки отзыва для устройств, которые сами не могут обрабатывать CRL.

Таким образом, асимметричные криптосистемы используются для шифрования, аутентификации и целостности. Если у злоумышленника отсутствует сертификат открытого ключа шифрования, он никогда не сможет воспользоваться секретными данными. Известными примерами, основанными на асимметричных методах, являются OpenPGP или S/MIME. Но также криптографические протоколы, такие как SSH, SSL/TLS или даже https, основаны на асимметричных криптосистемах.

Комментарии