• По всему сайту
  • Текстовые страницы
  • Каталог товаров
  • Новости
  • Новости
    • Новости компании
    • Новости в законодательстве
    • Новости отрасли
  • О компании
    • Миссия компании
    • Структура компании
    • Персонал
    • Лицензии и сертификаты
  • Услуги
    • ИТ -аутсорсинг
    • АЦСК
    • Разработка
      • Программное обеспечение
      • Аппаратное обеспечение
    • Консалтинг
    • Исследования
    • Анонимайзер
    • Аренда интернет-магазина
  • Продукты
    • TOP 3
      • Social Card
      • Smart Reader Platform
      • Secure PAC Reader
    • Программные
      • Secure Virtual Drive
      • Crypto Library
      • CryptoPhone
      • CryptoIM
      • Pre-Boot Authentication
      • eHealth Card System
    • Аппаратные
      • IP-шифратор
      • cmToken
      • GOST Key Keeper
      • SAM Hierarchy
  • Магазин
    • Криптология
      • Симметричные
        • Блочные симметричные шифры
        • Потоковые симметричные шифры
        • Хэш-функции
      • Асимметричные
        • Направленное шифрование
        • Выработка общего секрета
        • Электронная цифровая подпись
      • Криптоанализ
        • Криптоанализ БСШ
        • Криптоанализ ПСШ
        • Криптоанализ КАС и ХФ
        • Криптоанализ схем направленного шифрования
        • Криптоанализ схем выработки общего секрета
      • Публикации
      • Терминология
    • Карьера
      • Вакансии
      • Персонал
    • Контакты
      В разделе
      Направленное шифрование
      Выработка общего секрета
      Электронная цифровая подпись
      Направленное шифрование

      1976 год считается годом рождения несимметричной криптографии. В этом году американскими математиками Вайтфилдом Диффи, Мартином Хеллманом и Ральфом Меркле была представлена идеология криптосистемы с открытым ключом.

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

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

      В настоящее время в несимметричной криптографии наиболее широкое распространение получили системы RSA, Эль-Гамаля и Эль-Гамаля на эллиптических кривых.

       

      RSA-система

      RSA – криптографическая система открытого ключа, обеспечивающая такие механизмы защиты как шифрование и цифровая подпись (аутентификация – установление подлинности). Криптосистема RSA разработана в 1977 году и названа в честь ее разработчиков Ronald Rivest, Adi Shamir и Leonard Adleman.

      Алгоритм RSA работает следующим образом: берутся два достаточно больших простых числа p и q и вычисляется их произведение n = p*q; n называется модулем.

      Затем выбирается число e, удовлетворяющее условию 1< e < (p - 1)*(q - 1) и не имеющее общих делителей кроме 1 (взаимно простое) с числом (p - 1)*(q - 1).

      Затем вычисляется число d таким образом, что (e*d - 1) делится на (p - 1)*(q – 1), где

      e – открытый (public) показатель

      d – секретный (private) показатель.

      (n; e) – открытый (public) ключ

      (n; d) – секретный (private) ключ.

      Делители (факторы) p и q можно либо уничтожить либо сохранить вместе с секретным (private) ключом.

      Если бы существовали эффективные методы разложения на сомножители (факторинга), то, разложив n на сомножители (факторы) p и q, можно было бы получить секретный (private) ключ d. Таким образом надежность криптосистемы RSA основана на трудноразрешимой – практически неразрешимой – задаче разложения n на сомножители (то есть на невозможности факторинга n) так как в настоящее время эффективного способа поиска сомножителей не существует.

      Ниже описывается использование системы RSA для шифрования информации (отметим, что создание цифровых подписей на основе RSA несколько отличается; о создании цифровых подписей на основе RSA можно прочесть на странице «Цифровая подпись» текущего раздела).

      Предположим, Корреспондент 1 хочет послать Корреспонденту 2 сообщение M. Для этого Корреспондент 1 создает зашифрованный текст С, возводя сообщение M в степень e и умножая на модуль n: C = M**e* (mod n), где e и n – открытый (public) ключ Корреспондента 2. Затем Корреспондент 1 посылает С (зашифрованный текст) Корреспонденту 2. Чтобы расшифровать полученный текст, Корреспондент 2 возводит полученный зашифрованный текст C в степень d и умножает на модуль n: M = c**d*(mod n); зависимость между e и d гарантирует, что Корреспондент 2 вычислит M верно. Поскольку только Корреспондент 2 знает d, то только он имеет возможность расшифровать полученное сообщение.

       

      Система Эль-Гамаля

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

      Для того чтобы генерировать пару ключей (открытый ключ - секретный ключ), сначала выбирают некоторое большое простое число Р и большое целое число G, причем G < Р. Числа Р и G могут быть распространены среди группы пользователей.

      Затем выбирают случайное целое число X, причем Х<Р. Число Х является секретным ключом и должно храниться в секрете.

      Далее вычисляют Y = GX mod P. Число Y является открытым ключом.

      Для того чтобы зашифровать сообщение М, выбирают случайное целое число К, 1<К<Р -1, такое, что числа К и (Р-1) являются взаимно простыми.

      Затем вычисляют числа:

      a = GK (mod P),

      b = YK М (mod P).

      Пара чисел (а,b) является шифртекстом. Заметим, что длина шифртекста вдвое больше длины исходного открытого текста М.

      Для того чтобы расшифровать шифртекст (а,b), вычисляют

      М = b / aX (mod Р). (*)

      Поскольку

      b / aX = YK M / aX = GKX M / GKX = M (mod P),

      то соотношение (*) справедливо.

      В реальных схемах шифрования необходимо использовать в качестве модуля Р большое целое простое число, имеющее в двоичном представлении длину 512 - 1024 бит.

      ← Назад
      -- -- - - - - - - -- - - - - -- - -- - - - - - -- - -- - - - - - - - - -- ------------ ---- -- - -- - - - - -- - - -- - - -- - - - - -- - -- - - - - - - -- - - - - -- -- --- -- --- -- --
      НовостиО компанииУслугиПродуктыМагазинКриптологияКарьераКонтакты
      Копирайт © 2009 ООО «Криптомаш». Все права защищены.
      Разработка: Rireg.net