Учебники

Криптография — Краткое руководство

Происхождение криптографии

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

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

Слово «криптография» было придумано путем объединения двух греческих слов: «крипто» означает скрытый и «графен» означает письменность.

История криптографии

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

Корни криптографии находятся в римской и египетской цивилизациях.

Иероглиф — древнейшая криптографическая техника

Первое известное свидетельство криптографии можно проследить до использования «иероглифа». Около 4000 лет назад египтяне общались посредством сообщений, написанных иероглифами. Этот код был секретом, известным только писцам, которые передавали сообщения от имени королей. Один из таких иероглифов показан ниже.

Иероглиф

Позже ученые перешли к использованию простых моно-буквенных шифров замещения в течение 500-600 до н.э. Это включало замену алфавитов сообщения другими алфавитами с каким-то секретным правилом. Это правило стало ключом для извлечения сообщения из искаженного сообщения.

Более ранний римский метод криптографии, широко известный как шифр Цезаря, основанный на смещении букв сообщения на согласованное число (обычно выбирали три), получатель этого сообщения затем сдвигал бы буквы обратно на то же число. и получите оригинальное сообщение.

Цезарь Сдвиг Шифр

стеганография

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

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

стеганография

Эволюция криптографии

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

  • Усовершенствованные методы кодирования, такие как Vigenere Coding, появились в 15 веке, когда предлагалось перемещать буквы в сообщении с несколькими переменными местами вместо того, чтобы перемещать их на одинаковое количество мест.

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

  • В начале 20- го века изобретение механических и электромеханических машин, таких как роторная машина Enigma, предоставило более совершенные и эффективные средства кодирования информации.

  • В период Второй мировой войны криптография и криптоанализ стали чрезмерно математическими.

Усовершенствованные методы кодирования, такие как Vigenere Coding, появились в 15 веке, когда предлагалось перемещать буквы в сообщении с несколькими переменными местами вместо того, чтобы перемещать их на одинаковое количество мест.

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

В начале 20- го века изобретение механических и электромеханических машин, таких как роторная машина Enigma, предоставило более совершенные и эффективные средства кодирования информации.

В период Второй мировой войны криптография и криптоанализ стали чрезмерно математическими.

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

Современная криптография

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

Характеристики современной криптографии

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

Классическая криптография Современная криптография
Он манипулирует традиционными символами, т.е. буквами и цифрами напрямую. Он работает с двоичными битовыми последовательностями.
Он в основном основан на «безопасности через неизвестность». Методы, используемые для кодирования, держались в секрете, и только стороны, участвующие в общении, знали о них. Он опирается на общеизвестные математические алгоритмы кодирования информации. Секретность достигается с помощью секретного ключа, который используется в качестве семени для алгоритмов. Вычислительная сложность алгоритмов, отсутствие секретного ключа и т. Д. Не позволяют злоумышленнику получить исходную информацию, даже если он знает алгоритм, используемый для кодирования.
Это требует всей криптосистемы для конфиденциального общения. Современная криптография требует, чтобы стороны, заинтересованные в безопасной связи, обладали только секретным ключом.

Контекст криптографии

Криптология, изучение криптосистем, может быть разделена на две ветви —

  • криптография
  • криптоанализа

Типы криптографии

Что такое криптография?

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

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

Что такое криптоанализ?

Искусство и наука взлома зашифрованного текста называется криптоанализом.

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

Примечание. Криптография связана с проектированием криптосистем, в то время как криптоанализ изучает взлом криптосистем.

Службы безопасности криптографии

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

конфиденциальность

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

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

Целостность данных

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

Целостность данных не может предотвратить изменение данных, но предоставляет средство для определения того, были ли данные манипулированы несанкционированным образом.

Аутентификация

Аутентификация обеспечивает идентификацию отправителя. Получатель подтверждает, что полученные данные были отправлены только идентифицированным и проверенным отправителем.

Сервис аутентификации имеет два варианта —

  • Аутентификация сообщения идентифицирует отправителя сообщения безотносительно к маршрутизатору или системе, которая отправила сообщение.

  • Аутентификация объекта является гарантией того, что данные были получены от конкретного объекта, скажем, с определенного веб-сайта.

Аутентификация сообщения идентифицирует отправителя сообщения безотносительно к маршрутизатору или системе, которая отправила сообщение.

Аутентификация объекта является гарантией того, что данные были получены от конкретного объекта, скажем, с определенного веб-сайта.

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

Неотрекаемость

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

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

Примитивы криптографии

Примитивы криптографии — это не что иное, как инструменты и методы криптографии, которые можно выборочно использовать для предоставления набора требуемых служб безопасности —

  • шифрование
  • Хэш-функции
  • Коды аутентификации сообщений (MAC)
  • Цифровые подписи

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

Примитивы Сервис

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

Криптосистемы

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

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

Cryptosystem

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

Цель этой простой криптосистемы состоит в том, что в конце процесса только отправитель и получатель будут знать открытый текст.

Компоненты криптосистемы

Различные компоненты базовой криптосистемы следующие:

  • Простой текст. Это данные, которые должны быть защищены во время передачи.

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

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

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

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

  • Ключ расшифровки. Это значение, которое известно получателю. Ключ дешифрования связан с ключом шифрования, но не всегда идентичен ему. Приемник вводит ключ дешифрования в алгоритм дешифрования вместе с зашифрованным текстом для вычисления открытого текста.

Простой текст. Это данные, которые должны быть защищены во время передачи.

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

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

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

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

Ключ расшифровки. Это значение, которое известно получателю. Ключ дешифрования связан с ключом шифрования, но не всегда идентичен ему. Приемник вводит ключ дешифрования в алгоритм дешифрования вместе с зашифрованным текстом для вычисления открытого текста.

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

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

Типы криптосистем

По сути, существует два типа криптосистем, основанных на способе, которым шифрование-дешифрование выполняется в системе:

  • Шифрование симметричного ключа
  • Асимметричное шифрование ключа

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

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

Процесс шифрования, в котором для шифрования и дешифрования информации используются одни и те же ключи, называется Symmetric Key Encryption.

Исследование симметричных криптосистем называется симметричной криптографией . Симметричные криптосистемы также иногда называют криптосистемами с секретным ключом .

Вот несколько хорошо известных примеров методов шифрования с симметричным ключом: Digital Encryption Standard (DES), Triple-DES (3DES), IDEA и BLOWFISH.

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

До 1970 года все криптосистемы использовали шифрование с симметричным ключом. Даже сегодня его актуальность очень высока, и он широко используется во многих криптосистемах. Маловероятно, что это шифрование исчезнет, ​​поскольку оно имеет определенные преимущества по сравнению с шифрованием с асимметричным ключом.

Существенными особенностями криптосистемы, основанной на шифровании с симметричным ключом, являются:

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

  • Ключи рекомендуется регулярно менять, чтобы предотвратить любую атаку на систему.

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

  • В группе из n человек, чтобы обеспечить двустороннюю связь между любыми двумя людьми, количество ключей, необходимое для группы, составляет n × (n — 1) / 2 .

  • Длина ключа (число битов) в этом шифровании меньше, и, следовательно, процесс шифрования-дешифрования происходит быстрее, чем шифрование с асимметричным ключом.

  • Требуемая для выполнения симметричного алгоритма вычислительная мощность компьютерной системы меньше.

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

Ключи рекомендуется регулярно менять, чтобы предотвратить любую атаку на систему.

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

В группе из n человек, чтобы обеспечить двустороннюю связь между любыми двумя людьми, количество ключей, необходимое для группы, составляет n × (n — 1) / 2 .

Длина ключа (число битов) в этом шифровании меньше, и, следовательно, процесс шифрования-дешифрования происходит быстрее, чем шифрование с асимметричным ключом.

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

Задача криптосистемы с симметричным ключом

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

  • Установление ключа — перед любым сообщением и отправитель, и получатель должны согласовать секретный симметричный ключ. Это требует надежного механизма установления ключа на месте.

  • Проблема доверия — поскольку отправитель и получатель используют один и тот же симметричный ключ, существует неявное требование, чтобы отправитель и получатель «доверяли» друг другу. Например, может случиться так, что получатель потерял ключ для атакующего, а отправитель не проинформирован.

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

Проблема доверия — поскольку отправитель и получатель используют один и тот же симметричный ключ, существует неявное требование, чтобы отправитель и получатель «доверяли» друг другу. Например, может случиться так, что получатель потерял ключ для атакующего, а отправитель не проинформирован.

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

Асимметричное шифрование ключа

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

Асимметричное шифрование ключа

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

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

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

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

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

  • Host2 использует свой закрытый ключ для извлечения открытого текста.

  • Длина ключей (количество бит) в этом шифровании велика, и, следовательно, процесс шифрования-дешифрования медленнее, чем шифрование симметричным ключом.

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

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

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

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

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

Host2 использует свой закрытый ключ для извлечения открытого текста.

Длина ключей (количество бит) в этом шифровании велика, и, следовательно, процесс шифрования-дешифрования медленнее, чем шифрование симметричным ключом.

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

Симметричные криптосистемы являются естественной концепцией. Напротив, криптосистемы с открытым ключом довольно сложны для понимания.

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

Вызов криптосистемы с открытым ключом

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

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

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

Связь между схемами шифрования

Краткое описание основных свойств ключа двух типов криптосистем приведено ниже —

Симметричные криптосистемы Криптосистемы с открытым ключом
Отношения между ключами Так же Разные, но математически связанные
Ключ шифрования симметричный общественного
Ключ дешифрования симметричный Частный

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

Принцип Керкхоффа для криптосистемы

В 19 веке голландский криптограф А. Керкхофф выдвинул требования хорошей криптосистемы. Керкхофф заявил, что криптографическая система должна быть защищенной, даже если все о системе, кроме ключа, является общедоступным. Шесть принципов проектирования, определенных Kerckhoff для криптосистемы, —

  • Криптосистема должна быть практически неразрушимой, если не математически.

  • Попадание криптосистемы в руки злоумышленника не должно приводить к каким-либо компрометациям системы, предотвращая любые неудобства для пользователя.

  • Ключ должен быть легко сообщаемым, запоминающимся и изменяемым.

  • Зашифрованный текст должен передаваться по телеграфу, небезопасному каналу.

  • Устройство шифрования и документы должны быть портативными и работоспособными для одного человека.

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

Криптосистема должна быть практически неразрушимой, если не математически.

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

Ключ должен быть легко сообщаемым, запоминающимся и изменяемым.

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

Устройство шифрования и документы должны быть портативными и работоспособными для одного человека.

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

Второе правило в настоящее время известно как принцип Керкхоффа . Он применяется практически во всех современных алгоритмах шифрования, таких как DES, AES и т. Д. Эти общедоступные алгоритмы считаются полностью безопасными. Безопасность зашифрованного сообщения зависит исключительно от безопасности секретного ключа шифрования.

Хранение алгоритмов в секрете может служить существенным препятствием для криптоанализа. Однако хранить алгоритмы в секрете возможно только тогда, когда они используются в строго ограниченном круге.

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

Атаки на криптосистемы

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

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

Пассивные атаки

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

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

Пассивные атаки

Активные атаки

Активная атака включает в себя изменение информации каким-либо образом путем проведения некоторого процесса обработки информации. Например,

  • Изменение информации несанкционированным способом.

  • Инициирование непреднамеренной или несанкционированной передачи информации.

  • Изменение данных аутентификации, таких как имя отправителя или отметка времени, связанная с информацией

  • Несанкционированное удаление данных.

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

Изменение информации несанкционированным способом.

Инициирование непреднамеренной или несанкционированной передачи информации.

Изменение данных аутентификации, таких как имя отправителя или отметка времени, связанная с информацией

Несанкционированное удаление данных.

Отказ в доступе к информации для законных пользователей (отказ в обслуживании).

Активные атаки

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

Предположения атакующего

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

Окружающая среда вокруг криптосистемы

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

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

Детали Схемы Шифрования

Конструкция криптосистемы основана на следующих двух алгоритмах криптографии:

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

  • Запатентованные алгоритмы — детали алгоритма известны только разработчикам системы и пользователям.

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

Запатентованные алгоритмы — детали алгоритма известны только разработчикам системы и пользователям.

В случае проприетарных алгоритмов безопасность обеспечивается за счет неясности. Частные алгоритмы не могут быть самыми сильными алгоритмами, поскольку они разрабатываются собственными силами и не могут быть тщательно исследованы на предмет их слабости.

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

Таким образом, первое предположение о среде безопасности состоит в том, что алгоритм шифрования известен злоумышленнику .

Наличие зашифрованного текста

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

Наличие открытого текста и шифротекста

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

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

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

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

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

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

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

Криптографические атаки

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

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

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

  • Атаки только зашифрованным текстом ( COA). В этом методе злоумышленник имеет доступ к набору зашифрованного текста. У него нет доступа к соответствующему тексту. COA считается успешным, когда соответствующий открытый текст может быть определен из заданного набора зашифрованного текста. Иногда ключ шифрования может быть определен из этой атаки. Современные криптосистемы защищены от атак только зашифрованным текстом.

  • Известная атака открытого текста (KPA). В этом методе злоумышленник знает открытый текст для некоторых частей зашифрованного текста. Задача состоит в том, чтобы расшифровать остальную часть зашифрованного текста, используя эту информацию. Это может быть сделано путем определения ключа или с помощью другого метода. Лучший пример этой атаки — линейный криптоанализ против блочных шифров.

  • Выбранная атака открытым текстом (CPA) — в этом методе злоумышленник имеет зашифрованный текст по своему выбору. Таким образом, у него есть пара шифртекст-открытый текст по своему выбору. Это упрощает его задачу определения ключа шифрования. Примером этой атаки является дифференциальный криптоанализ, применяемый как к блочным шифрам, так и к хеш-функциям. Популярная криптосистема с открытым ключом, RSA, также уязвима для атак с использованием открытого текста.

  • Атака по словарю — эта атака имеет много вариантов, каждый из которых включает в себя составление «словаря». В простейшем методе этой атаки злоумышленник создает словарь зашифрованных текстов и соответствующих открытых текстов, которые он выучил за определенный период времени. В будущем, когда злоумышленник получает зашифрованный текст, он обращается к словарю, чтобы найти соответствующий открытый текст.

  • Атака грубой силы (BFA). В этом методе злоумышленник пытается определить ключ, пытаясь использовать все возможные ключи. Если длина ключа составляет 8 бит, то число возможных ключей составляет 2 8 = 256. Злоумышленник знает зашифрованный текст и алгоритм, теперь он пытается все 256 ключей по одному для расшифровки. Время завершения атаки будет очень большим, если ключ длинный.

  • Атака на день рождения — это атака методом грубой силы. Он используется против криптографической хэш-функции. Когда учеников в классе спрашивают об их днях рождения, ответом является одна из возможных 365 дат. Предположим, что день рождения первого студента — 3 августа. Затем, чтобы найти следующего студента, чья дата рождения — 3 августа, нам нужно запросить 1,25 * √365 ≈ 25 студентов.

    Аналогично, если хеш-функция выдает 64-битные хеш-значения, возможные хеш-значения составляют 1,8×10 19 . При многократной оценке функции для разных входов ожидается, что один и тот же выход будет получен после примерно 5,1 × 10 9 случайных входов.

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

  • Атака «Человек посередине» (MIM) . Целями этой атаки являются в основном криптосистемы с открытыми ключами, в которых обмен ключами происходит до установления связи.

    • Хост A хочет связаться с хостом B , поэтому запрашивает открытый ключ B.

    • Злоумышленник перехватывает этот запрос и отправляет свой открытый ключ.

    • Таким образом, что бы ни отправлял хост A на хост B , злоумышленник может читать.

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

    • Злоумышленник отправляет свой открытый ключ как открытый ключ A, так что B принимает его так, как если бы он брал его у A.

  • Атака по боковому каналу (SCA) — этот тип атаки не направлен против какого-либо конкретного типа криптосистемы или алгоритма. Вместо этого он запускается, чтобы использовать слабость в физической реализации криптосистемы.

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

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

  • Анализ ошибок. Атаки. В этих атаках в криптосистеме возникают ошибки, и злоумышленник изучает полученные данные для получения полезной информации.

Атаки только зашифрованным текстом ( COA). В этом методе злоумышленник имеет доступ к набору зашифрованного текста. У него нет доступа к соответствующему тексту. COA считается успешным, когда соответствующий открытый текст может быть определен из заданного набора зашифрованного текста. Иногда ключ шифрования может быть определен из этой атаки. Современные криптосистемы защищены от атак только зашифрованным текстом.

Известная атака открытого текста (KPA). В этом методе злоумышленник знает открытый текст для некоторых частей зашифрованного текста. Задача состоит в том, чтобы расшифровать остальную часть зашифрованного текста, используя эту информацию. Это может быть сделано путем определения ключа или с помощью другого метода. Лучший пример этой атаки — линейный криптоанализ против блочных шифров.

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

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

Атака грубой силы (BFA). В этом методе злоумышленник пытается определить ключ, пытаясь использовать все возможные ключи. Если длина ключа составляет 8 бит, то число возможных ключей составляет 2 8 = 256. Злоумышленник знает зашифрованный текст и алгоритм, теперь он пытается все 256 ключей по одному для расшифровки. Время завершения атаки будет очень большим, если ключ длинный.

Атака на день рождения — это атака методом грубой силы. Он используется против криптографической хэш-функции. Когда учеников в классе спрашивают об их днях рождения, ответом является одна из возможных 365 дат. Предположим, что день рождения первого студента — 3 августа. Затем, чтобы найти следующего студента, чья дата рождения — 3 августа, нам нужно запросить 1,25 * √365 ≈ 25 студентов.

Аналогично, если хеш-функция выдает 64-битные хеш-значения, возможные хеш-значения составляют 1,8×10 19 . При многократной оценке функции для разных входов ожидается, что один и тот же выход будет получен после примерно 5,1 × 10 9 случайных входов.

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

Атака «Человек посередине» (MIM) . Целями этой атаки являются в основном криптосистемы с открытыми ключами, в которых обмен ключами происходит до установления связи.

Хост A хочет связаться с хостом B , поэтому запрашивает открытый ключ B.

Злоумышленник перехватывает этот запрос и отправляет свой открытый ключ.

Таким образом, что бы ни отправлял хост A на хост B , злоумышленник может читать.

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

Злоумышленник отправляет свой открытый ключ как открытый ключ A, так что B принимает его так, как если бы он брал его у A.

Атака по боковому каналу (SCA) — этот тип атаки не направлен против какого-либо конкретного типа криптосистемы или алгоритма. Вместо этого он запускается, чтобы использовать слабость в физической реализации криптосистемы.

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

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

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

Практичность атак

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

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

Традиционные шифры

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

В этой главе мы обсудим эту технику и ее применение для разработки различных криптосистем.

Ранее криптографические системы

Прежде чем продолжить, вам нужно знать некоторые факты об исторических криптосистемах —

  • Все эти системы основаны на схеме шифрования с симметричным ключом .

  • Единственная служба безопасности, предоставляемая этими системами, — это конфиденциальность информации.

  • В отличие от современных систем, которые являются цифровыми и обрабатывают данные как двоичные числа, более ранние системы работали над алфавитами в качестве основного элемента.

Все эти системы основаны на схеме шифрования с симметричным ключом .

Единственная служба безопасности, предоставляемая этими системами, — это конфиденциальность информации.

В отличие от современных систем, которые являются цифровыми и обрабатывают данные как двоичные числа, более ранние системы работали над алфавитами в качестве основного элемента.

Эти более ранние криптографические системы также называют шифрами. В общем, шифр — это просто набор шагов (алгоритм) для выполнения как шифрования, так и соответствующего дешифрования.

Цезарь Шифр

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

Эта криптосистема обычно называется шифром сдвига . Идея состоит в том, чтобы заменить каждый алфавит другим алфавитом, который «сдвинут» на некоторое фиксированное число от 0 до 25.

Для такого типа схемы отправитель и получатель договариваются о «секретном числе сдвига» для сдвига алфавита. Этот номер от 0 до 25 становится ключом шифрования.

Название «Цезарь шифр» иногда используется для описания шифра сдвига, когда используется «сдвиг трех».

Процесс шифрования сдвига

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

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

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

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

Процесс шифрования сдвига

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

  • Затем он заменяет зашифрованную букву открытым текстом на скользящей линейке внизу. Следовательно, зашифрованный текст «WXWRULDO» расшифровывается как «учебник». Чтобы расшифровать сообщение, закодированное со сдвигом 3, сгенерируйте открытый текст с использованием сдвига «-3», как показано ниже:

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

Затем он заменяет зашифрованную букву открытым текстом на скользящей линейке внизу. Следовательно, зашифрованный текст «WXWRULDO» расшифровывается как «учебник». Чтобы расшифровать сообщение, закодированное со сдвигом 3, сгенерируйте открытый текст с использованием сдвига «-3», как показано ниже:

Процесс сдвига шифра1

Значение безопасности

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

Простой Подстановочный Шифр

Это улучшение Цезаря Шифра. Вместо смещения алфавитов на некоторое число, эта схема использует некоторую перестановку букв в алфавите.

Например, AB… ..YZ и ZY …… BA — это две очевидные перестановки всех букв алфавита. Перестановка — не что иное, как перемешанный набор алфавитов.

С 26 буквами в алфавите, возможные перестановки 26! (Факториал 26), который равен 4х10 26 . Отправитель и получатель могут выбрать любую из этих возможных перестановок в качестве алфавита зашифрованного текста. Эта перестановка является секретным ключом схемы.

Процесс простой замены шифра

  • Напишите алфавиты A, B, C, …, Z в естественном порядке.

  • Отправитель и получатель выбирают произвольно выбранную перестановку букв алфавита.

  • Под алфавитами естественного порядка запишите выбранную перестановку букв алфавита. Для шифрования отправитель заменяет все незашифрованные буквы заменой буквы перестановки, которая находится непосредственно под ней в таблице. Этот процесс показан на следующем рисунке. В этом примере выбранная перестановка — это K, D, G, …, O. Точка открытого текста «зашифрована» в «MJBXZ».

Напишите алфавиты A, B, C, …, Z в естественном порядке.

Отправитель и получатель выбирают произвольно выбранную перестановку букв алфавита.

Под алфавитами естественного порядка запишите выбранную перестановку букв алфавита. Для шифрования отправитель заменяет все незашифрованные буквы заменой буквы перестановки, которая находится непосредственно под ней в таблице. Этот процесс показан на следующем рисунке. В этом примере выбранная перестановка — это K, D, G, …, O. Точка открытого текста «зашифрована» в «MJBXZ».

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

Простой Подстановочный Шифр

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

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

Значение безопасности

Simple Substitution Cipher — это значительное улучшение по сравнению с Cesar Cipher. Возможное количество ключей велико (26!), И даже современные вычислительные системы еще недостаточно мощны, чтобы удобно начать атаку методом взлома, чтобы взломать систему. Тем не менее, Simple Substitution Cipher имеет простую конструкцию и подвержен ошибкам проектирования, скажем, при выборе очевидной перестановки эта криптосистема может быть легко взломана.

Моноалфавитный и Полиалфабетический Шифр

Моноалфавитный шифр — это шифр замещения, в котором для данного ключа алфавит шифра для каждого простого алфавита фиксируется на протяжении всего процесса шифрования. Например, если «A» зашифровано как «D», для любого числа вхождений в этом открытом тексте «A» всегда будет зашифровано до «D».

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

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

Playfair Cipher

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

В шифре playfair изначально создается таблица ключей. Таблица ключей представляет собой сетку алфавитов 5 × 5, которая служит ключом для шифрования открытого текста. Каждый из 25 алфавитов должен быть уникальным, и одна буква алфавита (обычно J) исключается из таблицы, поскольку нам нужно только 25 алфавитов вместо 26. Если открытый текст содержит J, то он заменяется на I.

Отправитель и получатель совершают самоубийство по определенному ключу, например, «учебники». В таблице ключей первые символы (идущие слева направо) в таблице — это фраза, исключая повторяющиеся буквы. Остальная часть таблицы будет заполнена оставшимися буквами алфавита в естественном порядке. Таблица ключей работает, чтобы быть —

Таблица ключей

Процесс Playfair Cipher

  • Сначала текстовое сообщение разбивается на пары из двух букв (орграфов). Если есть нечетное количество букв, Z добавляется к последней букве. Допустим, мы хотим зашифровать сообщение «спрятать деньги». Это будет записано как —

    HI DE MO NE YZ

  • Правила шифрования —

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

  • T U О р я «H» и «I» находятся в одном столбце, поэтому для их замены используйте букву ниже. HI → QC
    L S В С
    D Е F г ЧАС
    К M N п Q
    В W Икс Y Z

Сначала текстовое сообщение разбивается на пары из двух букв (орграфов). Если есть нечетное количество букв, Z добавляется к последней букве. Допустим, мы хотим зашифровать сообщение «спрятать деньги». Это будет записано как —

HI DE MO NE YZ

Правила шифрования —

Если обе буквы находятся в одном и том же столбце, возьмите букву ниже каждой (возвращаясь к началу, если внизу)

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

  • T U О р я «D» и «E» находятся в одном ряду, поэтому для их замены необходимо взять буквы справа от них. DE → EF
    L S В С
    D Е F г ЧАС
    К M N п Q
    В W Икс Y Z

Если обе буквы находятся в одном ряду, возьмите букву справа от каждой из них (возвращаясь влево, если в крайнем правом углу)

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

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

Playfair Cipher

Используя эти правила, результат шифрования «скрыть деньги» с ключом «учебники» будет —

КК EF NU MF ZV

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

Значение безопасности

Он также является шифром замещения и его трудно взломать по сравнению с простым шифром замещения. Как и в случае замещающего шифра, криптоанализ возможен и на шифре Playfair, однако он будет против 625 возможных пар букв (25×25 алфавитов) вместо 26 различных возможных алфавитов.

Шифр Playfair использовался главным образом для защиты важных, но не критичных секретов, поскольку он быстр в использовании и не требует специального оборудования.

Vigenere Cipher

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

Например, предположим, что ключ «точка». Каждый алфавит ключа преобразуется в соответствующее ему числовое значение: в этом случае

p → 16, o → 15, i → 9, n → 14 и t → 20.

Таким образом, ключ: 16 15 9 14 20.

Процесс Vigenere Cipher

  • Отправитель и получатель выбирают ключ. Скажите «точка» является ключом. Числовое представление этого ключа: «16 15 9 14 20».

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

Отправитель и получатель выбирают ключ. Скажите «точка» является ключом. Числовое представление этого ключа: «16 15 9 14 20».

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

Vigenere Cipher

  • Теперь он сдвигает каждый открытый текст на число, написанное под ним, чтобы создать зашифрованный текст, как показано ниже —

Теперь он сдвигает каждый открытый текст на число, написанное под ним, чтобы создать зашифрованный текст, как показано ниже —

Создать зашифрованный текст

  • Здесь каждый символ открытого текста был сдвинут на разную величину — и эта сумма определяется ключом. Ключ должен быть меньше или равен размеру сообщения.

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

Здесь каждый символ открытого текста был сдвинут на разную величину — и эта сумма определяется ключом. Ключ должен быть меньше или равен размеру сообщения.

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

Зашифрованный текст в обратном порядке

Значение безопасности

Vigenere Cipher был разработан путем настройки стандартного шифра Цезаря, чтобы снизить эффективность криптоанализа на зашифрованном тексте и сделать криптосистему более надежной. Это значительно более безопасно, чем обычный Цезарь Шифр .

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

Варианты Vigenere Cipher

Есть два особых случая шифра Vigenere —

  • Длина ключевого слова такая же, как и у открытого сообщения. Этот случай называется Vernam Cipher . Это более безопасно, чем типичный шифр Vigenere.

  • Vigenere шифр становится криптосистемой с совершенной секретностью, которая называется One-time pad .

Длина ключевого слова такая же, как и у открытого сообщения. Этот случай называется Vernam Cipher . Это более безопасно, чем типичный шифр Vigenere.

Vigenere шифр становится криптосистемой с совершенной секретностью, которая называется One-time pad .

Одноразовый блокнот

Обстоятельства:

  • Длина ключевого слова равна длине открытого текста.
  • Ключевое слово представляет собой случайно сгенерированную строку алфавитов.
  • Ключевое слово используется только один раз.

Значение безопасности

Давайте сравним шифр Shift с одноразовой накладкой.

Shift Cipher — легко взломать

В случае шифра сдвига все сообщение могло иметь сдвиг от 1 до 25. Это очень маленький размер и очень простое взлома. Однако теперь, когда каждый символ имеет свой собственный индивидуальный сдвиг от 1 до 26, возможные ключи для сообщения растут в геометрической прогрессии.

Одноразовый блокнот — невозможно сломать

Допустим, мы шифруем имя «точка» одноразовым блокнотом. Это текст из 5 букв. Чтобы разбить зашифрованный текст грубой силой, вам нужно попробовать все возможности ключей и провести вычисления для (26 x 26 x 26 x 26 x 26) = 26 5 = 11881376 раз. Это для сообщения с 5 алфавитами. Таким образом, для более длинного сообщения вычисление растет экспоненциально с каждым дополнительным алфавитом. Это делает невозможным в вычислительном отношении взломать шифротекст грубой силой.

Шифр транспонирования

Это другой тип шифра, где порядок алфавитов в открытом тексте переупорядочен для создания зашифрованного текста. Фактические текстовые алфавиты не заменяются.

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

Например, открытым текстом является «золотая статуя в одиннадцатой пещере», а выбранный секретный случайный ключ — «пять». Мы размещаем этот текст горизонтально в таблице с номером столбца, равным значению ключа. Полученный текст показан ниже.

Шифр транспонирования

Зашифрованный текст получается путем чтения столбца вертикально вниз от первого до последнего столбца. Зашифрованный текст — «gnuneaoseenvltiltedasehetivc».

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

Затем получатель записывает полученный зашифрованный текст вертикально вниз и слева направо. Чтобы получить текст, он читает по горизонтали слева направо и сверху вниз.

Современное симметричное шифрование ключа

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

Блочные шифры

В этой схеме простой двоичный текст обрабатывается блоками (группами) битов одновременно; т. е. выбирается блок битов открытого текста, на этом блоке выполняется серия операций для генерации блока битов зашифрованного текста. Количество битов в блоке фиксировано. Например, схемы DES и AES имеют размеры блоков 64 и 128 соответственно.

Потоковые шифры

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

Блочные и потоковые шифры

Блочный шифр

Основная схема блочного шифра изображается следующим образом:

Блочный шифр

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

Размер блока

Хотя любой размер блока является приемлемым, при выборе размера блока необходимо учитывать следующие аспекты.

  • Избегайте очень маленького размера блока — скажем, размер блока составляет m бит. Тогда возможные комбинации битов открытого текста равны 2 м . Если злоумышленник обнаруживает блоки простого текста, соответствующие некоторым ранее отправленным блокам зашифрованного текста, то злоумышленник может запустить тип «словарной атаки», создав словарь пар открытого текста / зашифрованного текста, отправленных с использованием этого ключа шифрования. Больший размер блока усложняет атаку, так как словарь должен быть больше.

  • Не иметь очень большой размер блока — при очень большом размере блока шифр становится неэффективным для работы. Такие открытые тексты должны быть дополнены перед шифрованием.

  • Мультипликаторы 8 бит . Предпочтительный размер блока кратен 8, поскольку его легко реализовать, поскольку большинство процессоров компьютера обрабатывают данные в виде 8 бит.

Избегайте очень маленького размера блока — скажем, размер блока составляет m бит. Тогда возможные комбинации битов открытого текста равны 2 м . Если злоумышленник обнаруживает блоки простого текста, соответствующие некоторым ранее отправленным блокам зашифрованного текста, то злоумышленник может запустить тип «словарной атаки», создав словарь пар открытого текста / зашифрованного текста, отправленных с использованием этого ключа шифрования. Больший размер блока усложняет атаку, так как словарь должен быть больше.

Не иметь очень большой размер блока — при очень большом размере блока шифр становится неэффективным для работы. Такие открытые тексты должны быть дополнены перед шифрованием.

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

Заполнение в блочном шифре

Блочные шифры обрабатывают блоки фиксированных размеров (скажем, 64 бита). Длина открытых текстов в основном не кратна размеру блока. Например, 150-битный открытый текст предоставляет два блока по 64 бита каждый с третьим блоком баланса 22 бита. Последний блок битов должен быть дополнен избыточной информацией, чтобы длина конечного блока была равна размеру блока схемы. В нашем примере оставшиеся 22 бита должны иметь дополнительные 42 избыточных бита, добавленных для обеспечения полного блока. Процесс добавления битов в последний блок называется заполнением .

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

Схемы блочного шифра

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

  • Стандарт цифрового шифрования (DES) — популярный блочный шифр 1990-х годов. Теперь он считается «битым» блочным шифром, в основном из-за его небольшого размера ключа.

  • Triple DES — это вариант схемы, основанной на повторных приложениях DES. Это все еще уважаемые блочные шифры, но неэффективные по сравнению с новыми более быстрыми доступными блочными шифрами.

  • Advanced Encryption Standard (AES) — это относительно новый блочный шифр, основанный на алгоритме шифрования Rijndael, который выиграл конкурс дизайна AES.

  • IDEA — это достаточно сильный блочный шифр с размером блока 64 и размером ключа 128 бит. В ряде приложений используется шифрование IDEA, включая ранние версии протокола Pretty Good Privacy (PGP). Использование схемы IDEA имеет ограниченное применение из-за проблем с патентами.

  • Twofish — эта схема блочного шифра использует размер блока 128 бит и ключ переменной длины. Это был один из финалистов AES. Он основан на более раннем блочном шифре Blowfish с размером блока 64 бита.

  • Serpent — блочный шифр с размером блока 128 бит и длиной ключа 128, 192 или 256 бит, который также был финалистом конкурса AES. Это медленнее, но имеет более безопасный дизайн, чем другие блочные шифры.

Стандарт цифрового шифрования (DES) — популярный блочный шифр 1990-х годов. Теперь он считается «битым» блочным шифром, в основном из-за его небольшого размера ключа.

Triple DES — это вариант схемы, основанной на повторных приложениях DES. Это все еще уважаемые блочные шифры, но неэффективные по сравнению с новыми более быстрыми доступными блочными шифрами.

Advanced Encryption Standard (AES) — это относительно новый блочный шифр, основанный на алгоритме шифрования Rijndael, который выиграл конкурс дизайна AES.

IDEA — это достаточно сильный блочный шифр с размером блока 64 и размером ключа 128 бит. В ряде приложений используется шифрование IDEA, включая ранние версии протокола Pretty Good Privacy (PGP). Использование схемы IDEA имеет ограниченное применение из-за проблем с патентами.

Twofish — эта схема блочного шифра использует размер блока 128 бит и ключ переменной длины. Это был один из финалистов AES. Он основан на более раннем блочном шифре Blowfish с размером блока 64 бита.

Serpent — блочный шифр с размером блока 128 бит и длиной ключа 128, 192 или 256 бит, который также был финалистом конкурса AES. Это медленнее, но имеет более безопасный дизайн, чем другие блочные шифры.

В следующих разделах мы сначала обсудим модель блочного шифра, а затем DES и AES, два наиболее влиятельных современных блочных шифра.

Feistel Block Cipher

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

Процесс шифрования

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

Структура Фейстеля показана на следующем рисунке —

Фейстел Структура

  • Входной блок для каждого раунда разделен на две половины, которые можно обозначить как L и R для левой половины и правой половины.

  • В каждом раунде правая половина блока R проходит без изменений. Но левая половина, L, проходит через операцию, которая зависит от R и ключа шифрования. Сначала мы применяем функцию шифрования ‘f’, которая принимает два ввода — ключ K и R. Функция производит вывод f (R, K). Затем мы XOR вывод математической функции с L.

  • В реальной реализации шифра Фейстеля, такого как DES, вместо использования полного ключа шифрования во время каждого раунда ключ, зависимый от раунда (подключ), получается из ключа шифрования. Это означает, что в каждом раунде используется другой ключ, хотя все эти подключи связаны с исходным ключом.

  • Шаг перестановки в конце каждого раунда меняет местами модифицированный L и немодифицированный R. Следовательно, L для следующего раунда будет R текущего раунда. И R для следующего раунда будет выходом L текущего раунда.

  • Выше шаги замещения и перестановки образуют «раунд». Количество раундов определяется алгоритмом разработки.

  • После завершения последнего раунда два субблока R и L объединяются в этом порядке, образуя блок зашифрованного текста.

Входной блок для каждого раунда разделен на две половины, которые можно обозначить как L и R для левой половины и правой половины.

В каждом раунде правая половина блока R проходит без изменений. Но левая половина, L, проходит через операцию, которая зависит от R и ключа шифрования. Сначала мы применяем функцию шифрования ‘f’, которая принимает два ввода — ключ K и R. Функция производит вывод f (R, K). Затем мы XOR вывод математической функции с L.

В реальной реализации шифра Фейстеля, такого как DES, вместо использования полного ключа шифрования во время каждого раунда ключ, зависимый от раунда (подключ), получается из ключа шифрования. Это означает, что в каждом раунде используется другой ключ, хотя все эти подключи связаны с исходным ключом.

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

Выше шаги замещения и перестановки образуют «раунд». Количество раундов определяется алгоритмом разработки.

После завершения последнего раунда два субблока R и L объединяются в этом порядке, образуя блок зашифрованного текста.

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

Процесс дешифрования

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

Говорят, что этот процесс почти одинаков и не совсем одинаков. В случае дешифрования единственное отличие состоит в том, что подключи, используемые при шифровании, используются в обратном порядке.

Окончательный обмен «L» и «R» на последнем шаге шифра Фейстеля имеет важное значение. Если они не меняются местами, то полученный зашифрованный текст не может быть расшифрован с использованием того же алгоритма.

Количество раундов

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

Стандарт шифрования данных

Стандарт шифрования данных (DES) — это блочный шифр с симметричным ключом, опубликованный Национальным институтом стандартов и технологий (NIST).

DES является реализацией шифра Фейстеля. Используется 16 круглая структура Фейстеля. Размер блока составляет 64 бита. Хотя длина ключа составляет 64 бита, эффективная длина ключа DES составляет 56 бит, так как 8 из 64 бит ключа не используются алгоритмом шифрования (функционируют только как контрольные биты). Общая структура DES изображена на следующей иллюстрации —

DES Структура

Поскольку DES основан на шифре Фейстеля, все, что требуется для определения DES, — это

  • Круглая функция
  • Ключевое расписание
  • Любая дополнительная обработка — начальная и конечная перестановка

Начальная и конечная перестановка

Начальная и конечная перестановки представляют собой прямые блоки перестановок (P-блоки), которые являются противоположными друг другу. Они не имеют криптографического значения в DES. Начальная и конечная перестановки показаны следующим образом:

Начальная и конечная перестановка

Круглая функция

Сердцем этого шифра является функция DES, ф . Функция DES применяет 48-битный ключ к крайним правым 32 битам для получения 32-битного вывода.

Круглая функция

  • Блок перестановки расширений — поскольку правый ввод 32-битный, а круглая клавиша 48-битная, сначала нужно расширить правый ввод до 48 бит. Логика перестановок графически изображена на следующем рисунке —

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

Перестановочная логика

  • Графически изображенная логика перестановок обычно описывается как таблица в спецификации DES, показанной как показано

Графически изображенная логика перестановок обычно описывается как таблица в спецификации DES, показанной как показано

DES спецификация

  • XOR (отбеливатель). — После перестановки расширения DES выполняет операцию XOR для расширенной правой части и клавиши округления. Круглый ключ используется только в этой операции.

  • Коробки замещения. — S-блоки выполняют реальное микширование (путаница). DES использует 8 S-блоков, каждый с 6-битным входом и 4-битным выходом. Обратитесь к следующей иллюстрации —

XOR (отбеливатель). — После перестановки расширения DES выполняет операцию XOR для расширенной правой части и клавиши округления. Круглый ключ используется только в этой операции.

Коробки замещения. — S-блоки выполняют реальное микширование (путаница). DES использует 8 S-блоков, каждый с 6-битным входом и 4-битным выходом. Обратитесь к следующей иллюстрации —

S-боксы

  • Правило S-box показано ниже —

Правило S-box показано ниже —

S-box Rule

  • Всего имеется восемь таблиц S-box. Выход всех восьми s-блоков затем объединяется в 32-битную секцию.

  • Прямая перестановка — 32-битный выход S-блоков затем подвергается прямой перестановке с правилом, показанным на следующем рисунке:

Всего имеется восемь таблиц S-box. Выход всех восьми s-блоков затем объединяется в 32-битную секцию.

Прямая перестановка — 32-битный выход S-блоков затем подвергается прямой перестановке с правилом, показанным на следующем рисунке:

Прямая перестановка

Генерация ключей

Генератор круглых ключей создает шестнадцать 48-битных ключей из 56-битного ключа шифрования. Процесс генерации ключа изображен на следующей иллюстрации —

Генерация ключей

Логика для удаления четности, сдвига и сжатия P-box приведена в описании DES.

Анализ DES

DES удовлетворяет обоим желаемым свойствам блочного шифра. Эти два свойства делают шифр очень сильным.

  • Эффект лавин — небольшое изменение в открытом тексте приводит к очень большим изменениям в зашифрованном тексте.

  • Полнота — каждый бит зашифрованного текста зависит от множества бит открытого текста.

Эффект лавин — небольшое изменение в открытом тексте приводит к очень большим изменениям в зашифрованном тексте.

Полнота — каждый бит зашифрованного текста зависит от множества бит открытого текста.

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

DES оказался очень хорошо разработанным блочным шифром. Не было никаких существенных криптоаналитических атак на DES кроме полного поиска ключа.

Тройной DES

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

Прагматичный подход заключался не в полном отказе от DES, а в изменении способа использования DES. Это привело к измененным схемам Triple DES (иногда их называют 3DES).

Кстати, есть два варианта Triple DES, известные как Triple DES с 3 ключами (3TDES) и Triple DES с 2 ключами (2TDES).

3-KEY Triple DES

Перед использованием 3TDES пользователь сначала генерирует и распространяет ключ 3TDES K, который состоит из трех разных ключей DES K 1 , K 2 и K 3 . Это означает, что фактический ключ 3TDES имеет длину 3 × 56 = 168 бит. Схема шифрования иллюстрируется следующим образом:

Схема шифрования

Процесс шифрования-дешифрования выглядит следующим образом:

  • Зашифруйте блоки открытого текста, используя один DES с ключом K 1 .

  • Теперь расшифруйте вывод шага 1, используя один DES с ключом K 2 .

  • Наконец, зашифруйте вывод шага 2, используя один DES с ключом K 3 .

  • Результатом шага 3 является зашифрованный текст.

  • Расшифровка зашифрованного текста является обратным процессом. Пользователь сначала расшифровывает с помощью K 3, затем шифрует с помощью K 2 и, наконец, дешифрует с помощью K 1 .

Зашифруйте блоки открытого текста, используя один DES с ключом K 1 .

Теперь расшифруйте вывод шага 1, используя один DES с ключом K 2 .

Наконец, зашифруйте вывод шага 2, используя один DES с ключом K 3 .

Результатом шага 3 является зашифрованный текст.

Расшифровка зашифрованного текста является обратным процессом. Пользователь сначала расшифровывает с помощью K 3, затем шифрует с помощью K 2 и, наконец, дешифрует с помощью K 1 .

Благодаря такому дизайну Triple DES как процесса шифрования-дешифрования-шифрования можно использовать реализацию 3TDES (аппаратную) для одного DES, задав для K 1, K 2 и K 3 одинаковое значение. Это обеспечивает обратную совместимость с DES.

Второй вариант Triple DES (2TDES) идентичен 3TDES за исключением того, что K 3 заменяется на K 1 . Другими словами, пользователь шифрует незашифрованные блоки с помощью ключа K 1, затем дешифрует с помощью ключа K 2 и, наконец, снова шифрует с помощью K 1 . Следовательно, длина ключа 2TDES составляет 112 бит.

Системы Triple DES значительно более безопасны, чем один DES, но они, очевидно, намного медленнее, чем шифрование с использованием одного DES.

Расширенный стандарт шифрования

Наиболее популярный и широко распространенный алгоритм симметричного шифрования, который, вероятно, встречается в настоящее время, — это Advanced Encryption Standard (AES). Он найден как минимум в шесть раз быстрее, чем тройной DES.

Нужна была замена для DES, поскольку его размер ключа был слишком мал. С ростом вычислительной мощности он был признан уязвимым для исчерпывающей атаки поиска ключа. Triple DES был разработан, чтобы преодолеть этот недостаток, но он был найден медленным.

Особенности AES следующие:

  • Симметричный ключ симметричный блочный шифр
  • 128-битные данные, 128/192/256-битные ключи
  • Сильнее и быстрее, чем Triple-DES
  • Предоставить полную спецификацию и детали дизайна
  • Программное обеспечение, реализуемое на C и Java

Операция AES

AES является итеративным, а не шифром Фейстеля. Он основан на «сети замещения-перестановки». Он состоит из серии связанных операций, некоторые из которых включают замену входов конкретными выходами (подстановки), а другие — перемешивание битов (перестановок).

Интересно, что AES выполняет все свои вычисления в байтах, а не в битах. Следовательно, AES рассматривает 128 битов блока открытого текста как 16 байтов. Эти 16 байтов расположены в четыре столбца и четыре строки для обработки в виде матрицы —

В отличие от DES, количество раундов в AES является переменным и зависит от длины ключа. AES использует 10 раундов для 128-битных ключей, 12 раундов для 192-битных ключей и 14 раундов для 256-битных ключей. Каждый из этих раундов использует различный 128-битный ключ раунда, который рассчитывается из исходного ключа AES.

Схема структуры AES приведена на следующем рисунке —

Структура AES

Процесс шифрования

Здесь мы ограничимся описанием типичного раунда шифрования AES. Каждый раунд состоит из четырех подпроцессов. Процесс первого раунда изображен ниже —

Процесс первого раунда

Подстановка байтов (SubBytes)

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

ShiftRows

Каждая из четырех строк матрицы смещена влево. Любые записи, которые «отваливаются», повторно вставляются с правой стороны строки. Сдвиг осуществляется следующим образом —

  • Первый ряд не смещен.

  • Второй ряд сдвинут на одну (байтовую) позицию влево.

  • Третий ряд смещен на две позиции влево.

  • Четвертый ряд смещен на три позиции влево.

  • Результатом является новая матрица, состоящая из тех же 16 байтов, но смещенных относительно друг друга.

Первый ряд не смещен.

Второй ряд сдвинут на одну (байтовую) позицию влево.

Третий ряд смещен на две позиции влево.

Четвертый ряд смещен на три позиции влево.

Результатом является новая матрица, состоящая из тех же 16 байтов, но смещенных относительно друг друга.

MixColumns

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

Addroundkey

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

Процесс дешифрования

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

  • Добавить круглый ключ
  • Смешайте столбцы
  • Сдвиг строк
  • Подстановка байтов

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

AES Анализ

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

Однако, как и для DES, безопасность AES гарантируется только в том случае, если она правильно реализована и используется хорошее управление ключами.

Режимы работы блочного шифра

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

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

Режим электронной кодовой книги (ECB)

Этот режим является наиболее простым способом обработки последовательности последовательно перечисленных блоков сообщений.

операция

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

  • Затем он берет второй блок открытого текста и выполняет тот же процесс с тем же ключом и так далее, и так далее.

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

Затем он берет второй блок открытого текста и выполняет тот же процесс с тем же ключом и так далее, и так далее.

Режим ECB является детерминированным , то есть, если незашифрованный блок P1, P2,…, Pm зашифрован дважды под одним и тем же ключом, выходные блоки зашифрованного текста будут одинаковыми.

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

Режим ЕЦБ

Анализ режима ЕЦБ

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

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

Режим цепочки блоков шифрования (CBC)

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

операция

Работа в режиме CBC изображена на следующем рисунке. Шаги следующие:

  • Загрузите n-битный вектор инициализации (IV) в верхний регистр.

  • XOR n-битный блок открытого текста со значением данных в верхнем регистре.

  • Зашифруйте результат операции XOR базовым блочным шифром с помощью ключа K.

  • Подайте блок зашифрованного текста в верхний регистр и продолжайте работу, пока не будут обработаны все блоки открытого текста.

  • Для дешифрования данные IV подвергаются операции XOR с дешифрованием первого блока зашифрованного текста. Первый блок зашифрованного текста также вводится для регистрации замены IV для дешифрования следующего блока зашифрованного текста.

Загрузите n-битный вектор инициализации (IV) в верхний регистр.

XOR n-битный блок открытого текста со значением данных в верхнем регистре.

Зашифруйте результат операции XOR базовым блочным шифром с помощью ключа K.

Подайте блок зашифрованного текста в верхний регистр и продолжайте работу, пока не будут обработаны все блоки открытого текста.

Для дешифрования данные IV подвергаются операции XOR с дешифрованием первого блока зашифрованного текста. Первый блок зашифрованного текста также вводится для регистрации замены IV для дешифрования следующего блока зашифрованного текста.

CBC Mode

Анализ режима CBC

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

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

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

Режим обратной связи с шифром (CFB)

В этом режиме каждый блок зашифрованного текста «возвращается» в процесс шифрования для шифрования следующего блока открытого текста.

операция

Работа режима CFB изображена на следующем рисунке. Например, в настоящей системе блок сообщений имеет биты размера s, где 1 <s <n. Режим CFB требует вектора инициализации (IV) в качестве начального случайного n-битного входного блока. IV не должен быть секретным. Шаги операции —

  • Загрузите IV в верхний регистр.

  • Зашифруйте значение данных в верхнем регистре с помощью базового блочного шифра с ключом K.

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

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

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

  • Аналогичные шаги выполняются для расшифровки. Предварительно решенный IV изначально загружается в начале расшифровки.

Загрузите IV в верхний регистр.

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

Возьмите только число «s» старших значащих битов (левых битов) вывода процесса шифрования и зашифруйте их с помощью блока сообщений открытого текста «s», чтобы сгенерировать блок зашифрованного текста.

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

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

Аналогичные шаги выполняются для расшифровки. Предварительно решенный IV изначально загружается в начале расшифровки.

Режим CFB

Анализ режима CFB

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

У CFB есть очень странная особенность. В этом режиме пользователь расшифровывает зашифрованный текст, используя только процесс шифрования блочного шифра. Алгоритм дешифрования базового блочного шифра никогда не используется.

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

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

С другой стороны, ошибка передачи распространяется из-за смены блоков.

Режим обратной связи (OFB)

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

Генерируемый поток ключей XOR-редактируется с блоками открытого текста. Режим OFB требует IV как начальный случайный n-битный входной блок. IV не должен быть секретным.

Операция изображена на следующей иллюстрации —

Режим OFB

Счетчик (CTR) режим

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

операция

Как шифрование, так и дешифрование в режиме CTR изображены на следующей иллюстрации. Шаги в действии —

  • Загрузка начального значения счетчика в верхний регистр одинакова как для отправителя, так и для получателя. Он играет ту же роль, что и IV в режиме CFB (и CBC).

  • Зашифруйте содержимое счетчика ключом и поместите результат в нижний регистр.

  • Возьмите первый незашифрованный блок P1 и XOR это к содержимому нижнего регистра. Результатом этого является C1. Отправьте C1 получателю и обновите счетчик. Обновление счетчика заменяет обратную связь зашифрованного текста в режиме CFB.

  • Продолжайте в том же духе, пока последний незашифрованный блок не будет зашифрован.

  • Расшифровка — обратный процесс. Блок зашифрованного текста XORed с выводом зашифрованного содержимого значения счетчика. После расшифровки каждого блока зашифрованного текста счетчик обновляется так же, как и в случае шифрования.

Загрузка начального значения счетчика в верхний регистр одинакова как для отправителя, так и для получателя. Он играет ту же роль, что и IV в режиме CFB (и CBC).

Зашифруйте содержимое счетчика ключом и поместите результат в нижний регистр.

Возьмите первый незашифрованный блок P1 и XOR это к содержимому нижнего регистра. Результатом этого является C1. Отправьте C1 получателю и обновите счетчик. Обновление счетчика заменяет обратную связь зашифрованного текста в режиме CFB.

Продолжайте в том же духе, пока последний незашифрованный блок не будет зашифрован.

Расшифровка — обратный процесс. Блок зашифрованного текста XORed с выводом зашифрованного содержимого значения счетчика. После расшифровки каждого блока зашифрованного текста счетчик обновляется так же, как и в случае шифрования.

Режим CTR

Анализ режима счетчика

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

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

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

Однако режим CTR обладает практически всеми преимуществами режима CFB. Кроме того, это не распространяет ошибку передачи вообще.

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

Криптография с открытым ключом

В отличие от криптографии с симметричным ключом, мы не находим исторического использования криптографии с открытым ключом. Это относительно новая концепция.

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

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

Процесс шифрования и дешифрования изображен на следующей иллюстрации —

Криптография с открытым ключом

Наиболее важные свойства схемы шифрования с открытым ключом —

  • Различные ключи используются для шифрования и дешифрования. Это свойство, которое устанавливает эту схему отличной от симметричной схемы шифрования.

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

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

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

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

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

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

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

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

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

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

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

Существует три типа схем шифрования с открытым ключом. Мы обсудим их в следующих разделах —

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

Эта криптосистема является одной из исходных систем. Это остается наиболее используемой криптосистемой даже сегодня. Система была изобретена тремя учеными Роном Ривестом, Ади Шамиром и Леном Адлеманом, и, следовательно, она называется криптосистемой RSA.

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

Генерация пары ключей RSA

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

  • Генерация модуля RSA (n)

    • Выберите два больших простых числа, p и q.

    • Рассчитайте n = p * q. Для надежного неразрушимого шифрования пусть n будет большим числом, обычно не менее 512 бит.

  • Найти производное число (е)

    • Число e должно быть больше 1 и меньше (p — 1) (q — 1).

    • Не должно быть общего множителя для e и (p — 1) (q — 1), за исключением 1. Другими словами, два числа e и (p — 1) (q — 1) взаимно просты.

  • Форма открытого ключа

    • Пара чисел (n, e) образует открытый ключ RSA и становится открытой.

    • Интересно, что хотя n является частью открытого ключа, сложность факторизации большого простого числа гарантирует, что злоумышленник не сможет найти за конечное время два простых числа (p & q), использованных для получения n. Это сила ОГА.

  • Генерация закрытого ключа

    • Закрытый ключ d рассчитывается из p, q и e. Для данных n и e существует уникальное число d.

    • Число d является обратной величиной e по модулю (p — 1) (q — 1). Это означает, что d является числом, меньшим (p — 1) (q — 1), так что при умножении на e оно равно 1 по модулю (p — 1) (q — 1).

    • Это соотношение записано математически следующим образом:

Генерация модуля RSA (n)

Выберите два больших простых числа, p и q.

Рассчитайте n = p * q. Для надежного неразрушимого шифрования пусть n будет большим числом, обычно не менее 512 бит.

Найти производное число (е)

Число e должно быть больше 1 и меньше (p — 1) (q — 1).

Не должно быть общего множителя для e и (p — 1) (q — 1), за исключением 1. Другими словами, два числа e и (p — 1) (q — 1) взаимно просты.

Форма открытого ключа

Пара чисел (n, e) образует открытый ключ RSA и становится открытой.

Интересно, что хотя n является частью открытого ключа, сложность факторизации большого простого числа гарантирует, что злоумышленник не сможет найти за конечное время два простых числа (p & q), использованных для получения n. Это сила ОГА.

Генерация закрытого ключа

Закрытый ключ 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 приведен ниже. (Для простоты понимания простые числа p & q, взятые здесь, являются небольшими значениями. На практике эти значения очень высоки).

  • Пусть два простых числа p = 7 и q = 13. Таким образом, модуль n = pq = 7 x 13 = 91.

  • Выберите e = 5, что является допустимым выбором, поскольку не существует числа с общим множителем 5 и (p — 1) (q — 1) = 6 × 12 = 72, кроме 1.

  • Пара чисел (n, e) = (91, 5) образует открытый ключ и может быть доступна любому, кому мы хотим отправлять нам зашифрованные сообщения.

  • Введите p = 7, q = 13 и e = 5 в расширенный евклидов алгоритм. Выход будет d = 29.

  • Проверьте правильность рассчитанного значения d, рассчитав:

Пусть два простых числа p = 7 и q = 13. Таким образом, модуль n = pq = 7 x 13 = 91.

Выберите e = 5, что является допустимым выбором, поскольку не существует числа с общим множителем 5 и (p — 1) (q — 1) = 6 × 12 = 72, кроме 1.

Пара чисел (n, e) = (91, 5) образует открытый ключ и может быть доступна любому, кому мы хотим отправлять нам зашифрованные сообщения.

Введите p = 7, q = 13 и e = 5 в расширенный евклидов алгоритм. Выход будет d = 29.

Проверьте правильность рассчитанного значения d, рассчитав:

de = 29 × 5 = 145 = 1 mod 72
  • Следовательно, открытый ключ (91, 5) и закрытый ключ (91, 29).

Следовательно, открытый ключ (91, 5) и закрытый ключ (91, 29).

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

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

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

RSA шифрование

  • Предположим, отправитель хочет отправить текстовое сообщение тому, чей открытый ключ (n, e).

  • Затем отправитель представляет открытый текст в виде последовательности чисел, меньшей n.

  • Для шифрования первого открытого текста P, который является числом по модулю n. Процесс шифрования является простым математическим шагом, так как —

Предположим, отправитель хочет отправить текстовое сообщение тому, чей открытый ключ (n, e).

Затем отправитель представляет открытый текст в виде последовательности чисел, меньшей n.

Для шифрования первого открытого текста P, который является числом по модулю n. Процесс шифрования является простым математическим шагом, так как —

C = P e mod n
  • Другими словами, зашифрованный текст C равен открытому тексту P, умноженному на него e раз, а затем уменьшенному по модулю n. Это означает, что C также число меньше n.

  • Возвращаясь к нашему примеру генерации ключей с открытым текстом P = 10, мы получаем зашифрованный текст C —

Другими словами, зашифрованный текст C равен открытому тексту P, умноженному на него e раз, а затем уменьшенному по модулю n. Это означает, что C также число меньше n.

Возвращаясь к нашему примеру генерации ключей с открытым текстом P = 10, мы получаем зашифрованный текст C —

C = 10 5 mod 91

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

  • Процесс дешифрования для RSA также очень прост. Предположим, что получатель пары открытого ключа (n, e) получил зашифрованный текст C.

  • Получатель поднимает C до уровня своего личного ключа d. Результат по модулю n будет открытым текстом P.

Процесс дешифрования для RSA также очень прост. Предположим, что получатель пары открытого ключа (n, e) получил зашифрованный текст C.

Получатель поднимает C до уровня своего личного ключа d. Результат по модулю n будет открытым текстом P.

Plaintext = C d mod n
  • Возвращаясь снова к нашему числовому примеру, зашифрованный текст C = 82 расшифровывается до номера 10 с использованием закрытого ключа 29 —

Возвращаясь снова к нашему числовому примеру, зашифрованный текст C = 82 расшифровывается до номера 10 с использованием закрытого ключа 29 —

Plaintext = 82 29 mod 91 = 10

Анализ RSA

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

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

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

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

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

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

Сила шифрования RSA резко снижается против атак, если числа p и q не являются большими простыми числами и / или выбранный открытый ключ e является небольшим числом.

Эль-Гамальская криптосистема

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

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

Давайте рассмотрим простую версию ElGamal, которая работает с числами по модулю p. В случае вариантов эллиптической кривой она основана на совершенно разных системах счисления.

Генерация пары ключей Эль-Гамаля

Каждый пользователь криптосистемы ElGamal генерирует пару ключей следующим образом:

  • Выбор большого простого числа p. Обычно выбирается простое число длиной от 1024 до 2048 бит.

  • Выбор элемента генератора g.

    • Это число должно быть от 1 до p — 1, но не может быть любым числом.

    • Это генератор мультипликативной группы целых чисел по модулю p. Это означает, что для любого целого числа m, взаимно простого с p, существует такое целое число k, что g k = a mod n.

      Например, 3 является генератором группы 5 (Z 5 = {1, 2, 3, 4}).

Выбор большого простого числа p. Обычно выбирается простое число длиной от 1024 до 2048 бит.

Выбор элемента генератора g.

Это число должно быть от 1 до p — 1, но не может быть любым числом.

Это генератор мультипликативной группы целых чисел по модулю p. Это означает, что для любого целого числа m, взаимно простого с p, существует такое целое число k, что g k = a mod n.

Например, 3 является генератором группы 5 (Z 5 = {1, 2, 3, 4}).

N 3 н 3 n мод 5
1 3 3
2 9 4
3 27 2
4 81 1
  • Выбор закрытого ключа. Закрытый ключ x — это любое число больше 1 и меньше p − 1.

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

Выбор закрытого ключа. Закрытый ключ x — это любое число больше 1 и меньше p − 1.

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

y = g x mod p
  • Получение открытого ключа. Открытый ключ Эль-Гамаля состоит из трех параметров (p, g, y).

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

Получение открытого ключа. Открытый ключ Эль-Гамаля состоит из трех параметров (p, g, y).

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

y = 6 5 mod 17 = 7
  • Таким образом, закрытый ключ равен 62, а открытый ключ — (17, 6, 7).

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

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

Генерирование пары ключей Эль-Гамаля сравнительно проще, чем эквивалентный процесс для RSA. Но шифрование и дешифрование немного сложнее, чем RSA.

Эль-Гамаль Шифрование

Предположим, отправитель желает отправить открытый текст кому-то, чей открытый ключ ElGamal (p, g, y), затем —

  • Отправитель представляет собой открытый текст в виде последовательности чисел по модулю p.

  • Для шифрования первого открытого текста P, который представлен в виде числа по модулю p. Процесс шифрования для получения зашифрованного текста C выглядит следующим образом:

    • Произвольно сгенерировать число k;
    • Вычислить два значения С1 и С2, где —

Отправитель представляет собой открытый текст в виде последовательности чисел по модулю p.

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

C1 = g k mod p
C2 = (P * y k ) mod p
  • Отправьте зашифрованный текст C, состоящий из двух отдельных значений (C1, C2), отправленных вместе.

  • Ссылаясь на наш пример генерации ключей Эль-Гамаля, приведенный выше, открытый текст P = 13 шифруется следующим образом:

    • Произведите случайное число, скажем, к = 10
    • Вычислить два значения С1 и С2, где —

Отправьте зашифрованный текст C, состоящий из двух отдельных значений (C1, C2), отправленных вместе.

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

C1 = 6 10 mod 17
C2 = (13 * 7 10 ) mod 17 = 9
  • Отправьте зашифрованный текст C = (C1, C2) = (15, 9).

Отправьте зашифрованный текст C = (C1, C2) = (15, 9).

Эль-Гамальская расшифровка

  • Чтобы расшифровать зашифрованный текст (C1, C2) с помощью закрытого ключа x, предпринимаются следующие два шага:

    • Вычислить модульную обратную величину (C1) x по модулю p, которая равна (C1) -x , обычно называемому коэффициентом дешифрования.

    • Получите открытый текст, используя следующую формулу —

Чтобы расшифровать зашифрованный текст (C1, C2) с помощью закрытого ключа x, предпринимаются следующие два шага:

Вычислить модульную обратную величину (C1) x по модулю p, которая равна (C1) -x , обычно называемому коэффициентом дешифрования.

Получите открытый текст, используя следующую формулу —

C2 × (C1) -x  mod p = Plaintext
  • В нашем примере для расшифровки зашифрованного текста C = (C1, C2) = (15, 9) с использованием закрытого ключа x = 5 коэффициент дешифрования равен

В нашем примере для расшифровки зашифрованного текста C = (C1, C2) = (15, 9) с использованием закрытого ключа x = 5 коэффициент дешифрования равен

15 -5  mod 17 = 9
  • Извлечь открытый текст P = (9 × 9) мод 17 = 13.

Извлечь открытый текст P = (9 × 9) мод 17 = 13.

Эль-Гамаль Анализ

В системе ElGamal каждый пользователь имеет закрытый ключ x. и имеет три компонента открытого ключа — простой модуль p, генератор g и открытый Y = g x mod p . Сила Эль-Гамаля основана на сложности проблемы дискретного логарифма.

Размер безопасного ключа обычно> 1024 бит. Сегодня используется даже ключ длиной 2048 бит. Что касается скорости обработки, Elgamal довольно медленный, он используется в основном для протоколов аутентификации ключей. Из-за более высокой эффективности обработки варианты ElGamal с эллиптической кривой становятся все более популярными.

Криптография с эллиптической кривой (ECC)

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

ECC основан на наборах чисел, которые связаны с математическими объектами, называемыми эллиптическими кривыми. Существуют правила сложения и вычисления кратных этих чисел, так же как и для чисел по модулю p.

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

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

Более короткие ключи дают два преимущества:

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

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

Схемы RSA и Эль-Гамаля — Сравнение

Давайте кратко сравним схемы RSA и Эль-Гамаля по различным аспектам.

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

Целостность данных в криптографии

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

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

Угрозы целостности данных

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

Пассивные угрозы

Этот тип угроз существует из-за случайных изменений в данных.

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

  • Коды с исправлением ошибок и простые контрольные суммы, такие как циклические проверки избыточности (CRC), используются для обнаружения потери целостности данных. В этих методах дайджест данных вычисляется математически и добавляется к данным.

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

Коды с исправлением ошибок и простые контрольные суммы, такие как циклические проверки избыточности (CRC), используются для обнаружения потери целостности данных. В этих методах дайджест данных вычисляется математически и добавляется к данным.

Активные угрозы

В этом типе угроз злоумышленник может манипулировать данными со злым умыслом.

  • На самом простом уровне, если данные не дайджест, они могут быть изменены без обнаружения. Система может использовать методы добавления CRC к данным для обнаружения любой активной модификации.

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

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

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

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

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

Криптография Хеш-функции

Хеш-функции чрезвычайно полезны и появляются практически во всех приложениях информационной безопасности.

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

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

Хэш-функции

Особенности хеш-функций

Типичные особенности хеш-функций —

  • Выход фиксированной длины (значение хэша)

    • Хэш-функция охватывает данные произвольной длины до фиксированной длины. Этот процесс часто называют хэшированием данных .

    • В общем, хеш намного меньше, чем входные данные, поэтому хеш-функции иногда называют функциями сжатия .

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

    • Хеш-функция с n-битным выходом называется n-битной хеш-функцией . Популярные хеш-функции генерируют значения от 160 до 512 бит.

  • Эффективность операции

    • Обычно для любой хеш-функции h с входом x вычисление h (x) является быстрой операцией.

    • Вычислительные хеш-функции намного быстрее, чем симметричное шифрование.

Выход фиксированной длины (значение хэша)

Хэш-функция охватывает данные произвольной длины до фиксированной длины. Этот процесс часто называют хэшированием данных .

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

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

Хеш-функция с n-битным выходом называется n-битной хеш-функцией . Популярные хеш-функции генерируют значения от 160 до 512 бит.

Эффективность операции

Обычно для любой хеш-функции h с входом x вычисление h (x) является быстрой операцией.

Вычислительные хеш-функции намного быстрее, чем симметричное шифрование.

Свойства хеш-функций

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

  • Сопротивление до изображения

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

    • Другими словами, если хеш-функция h создала хеш-значение z, то будет трудно найти любое входное значение x, которое хэширует к z.

    • Это свойство защищает от злоумышленника, который имеет только хэш-значение и пытается найти входные данные.

  • Сопротивление второго изображения

    • Это свойство означает, что заданы входные данные и их хэш, должно быть трудно найти другой входной файл с тем же хешем.

    • Другими словами, если хеш-функция h для входа x создает хеш-значение h (x), то должно быть трудно найти любое другое входное значение y такое, что h (y) = h (x).

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

  • Сопротивление столкновению

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

    • Другими словами, для хеш-функции h трудно найти любые два различных входа x и y, для которых h (x) = h (y).

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

    • Это свойство очень мешает злоумышленнику найти два входных значения с одинаковым хешем.

    • Кроме того, если хеш-функция устойчива к столкновениям, она является второй устойчивой к изображениям.

Сопротивление до изображения

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

Другими словами, если хеш-функция h создала хеш-значение z, то будет трудно найти любое входное значение x, которое хэширует к z.

Это свойство защищает от злоумышленника, который имеет только хэш-значение и пытается найти входные данные.

Сопротивление второго изображения

Это свойство означает, что заданы входные данные и их хэш, должно быть трудно найти другой входной файл с тем же хешем.

Другими словами, если хеш-функция h для входа x создает хеш-значение h (x), то должно быть трудно найти любое другое входное значение y такое, что h (y) = h (x).

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

Сопротивление столкновению

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

Другими словами, для хеш-функции h трудно найти любые два различных входа x и y, для которых h (x) = h (y).

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

Это свойство очень мешает злоумышленнику найти два входных значения с одинаковым хешем.

Кроме того, если хеш-функция устойчива к столкновениям, она является второй устойчивой к изображениям.

Разработка алгоритмов хеширования

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

Размер каждого блока данных варьируется в зависимости от алгоритма. Обычно размеры блоков составляют от 128 до 512 бит. Следующая иллюстрация демонстрирует хэш-функцию —

Структура хэш-функции

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

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

Алгоритм хеширования

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

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

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

Алгоритм хеширования — это процесс использования хеш-функции, определяющий, как сообщение будет разбито и как результаты предыдущих блоков сообщений объединяются воедино.

Популярные хэш-функции

Давайте кратко рассмотрим некоторые популярные хеш-функции —

Дайджест сообщения (MD)

MD5 был самой популярной и широко используемой хэш-функцией в течение нескольких лет.

  • Семейство MD состоит из хеш-функций MD2, MD4, MD5 и MD6. Он был принят как Интернет-стандарт RFC 1321. Это 128-битная хеш-функция.

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

  • В 2004 году столкновения были обнаружены в MD5. Сообщалось, что аналитическая атака была успешной только через час с использованием компьютерного кластера. Эта атака столкновения привела к взлому MD5 и, следовательно, больше не рекомендуется для использования.

Семейство MD состоит из хеш-функций MD2, MD4, MD5 и MD6. Он был принят как Интернет-стандарт RFC 1321. Это 128-битная хеш-функция.

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

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

Безопасная хеш-функция (SHA)

Семейство SHA состоит из четырех алгоритмов SHA; SHA-0, SHA-1, SHA-2 и SHA-3. Хотя из одной семьи, есть структурно разные.

  • Первоначальная версия — SHA-0, 160-битная хеш-функция, была опубликована Национальным институтом стандартов и технологий (NIST) в 1993 году. Она имела несколько слабых мест и не стала очень популярной. Позднее, в 1995 году, SHA-1 был разработан для исправления предполагаемых недостатков SHA-0.

  • SHA-1 является наиболее широко используемым из существующих хеш-функций SHA. Он используется в нескольких широко используемых приложениях и протоколах, включая протокол Secure Socket Layer (SSL).

  • В 2005 году был найден метод для выявления коллизий для SHA-1 в течение практического периода времени, что делает долгосрочную возможность использования SHA-1 сомнительной.

  • Семейство SHA-2 имеет еще четыре варианта SHA: SHA-224, SHA-256, SHA-384 и SHA-512 в зависимости от количества бит в их хэш-значении. О хэш-функции SHA-2 пока не сообщалось об успешных атаках.

  • Хотя SHA-2 — сильная хеш-функция. Хотя существенно отличается, его базовый дизайн все еще следует за дизайном SHA-1. Следовательно, NIST призвал к созданию новых конкурентоспособных конструкций хэш-функций.

  • В октябре 2012 года NIST выбрал алгоритм Keccak в качестве нового стандарта SHA-3. Keccak предлагает множество преимуществ, таких как эффективная производительность и хорошая устойчивость к атакам.

Первоначальная версия — SHA-0, 160-битная хеш-функция, была опубликована Национальным институтом стандартов и технологий (NIST) в 1993 году. Она имела несколько слабых мест и не стала очень популярной. Позднее, в 1995 году, SHA-1 был разработан для исправления предполагаемых недостатков SHA-0.

SHA-1 является наиболее широко используемым из существующих хеш-функций SHA. Он используется в нескольких широко используемых приложениях и протоколах, включая протокол Secure Socket Layer (SSL).

В 2005 году был найден метод для выявления коллизий для SHA-1 в течение практического периода времени, что делает долгосрочную возможность использования SHA-1 сомнительной.

Семейство SHA-2 имеет еще четыре варианта SHA: SHA-224, SHA-256, SHA-384 и SHA-512 в зависимости от количества бит в их хэш-значении. О хэш-функции SHA-2 пока не сообщалось об успешных атаках.

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

В октябре 2012 года NIST выбрал алгоритм Keccak в качестве нового стандарта SHA-3. Keccak предлагает множество преимуществ, таких как эффективная производительность и хорошая устойчивость к атакам.

RIPEMD

RIPEND — это аббревиатура для дайджеста сообщения оценки примитивов RACE. Этот набор хеш-функций был разработан открытым исследовательским сообществом и широко известен как семейство европейских хеш-функций.

  • В комплект входят RIPEND, RIPEMD-128 и RIPEMD-160. Также существуют 256 и 320-битные версии этого алгоритма.

  • Оригинальный RIPEMD (128 бит) основан на принципах проектирования, используемых в MD4 и обеспечивает сомнительную безопасность. 128-разрядная версия RIPEMD пришла в качестве быстрой замены для устранения уязвимостей в оригинальной версии RIPEMD.

  • RIPEMD-160 является улучшенной версией и наиболее широко используемой версией в семействе. 256 и 320-битные версии снижают вероятность случайного столкновения, но не имеют более высокого уровня безопасности по сравнению с RIPEMD-128 и RIPEMD-160 соответственно.

В комплект входят RIPEND, RIPEMD-128 и RIPEMD-160. Также существуют 256 и 320-битные версии этого алгоритма.

Оригинальный RIPEMD (128 бит) основан на принципах проектирования, используемых в MD4 и обеспечивает сомнительную безопасность. 128-разрядная версия RIPEMD пришла в качестве быстрой замены для устранения уязвимостей в оригинальной версии RIPEMD.

RIPEMD-160 является улучшенной версией и наиболее широко используемой версией в семействе. 256 и 320-битные версии снижают вероятность случайного столкновения, но не имеют более высокого уровня безопасности по сравнению с RIPEMD-128 и RIPEMD-160 соответственно.

джакузи

Это 512-битная хеш-функция.

  • Он взят из модифицированной версии Advanced Encryption Standard (AES). Одним из дизайнеров был Винсент Раймен, один из создателей AES.

  • Три версии Whirlpool были выпущены; а именно, WHIRLPOOL-0, WHIRLPOOL-T и WHIRLPOOL.

Он взят из модифицированной версии Advanced Encryption Standard (AES). Одним из дизайнеров был Винсент Раймен, один из создателей AES.

Три версии Whirlpool были выпущены; а именно, WHIRLPOOL-0, WHIRLPOOL-T и WHIRLPOOL.

Применение хеш-функций

Существует два непосредственных применения хеш-функции на основе ее криптографических свойств.

Хранение пароля

Хэш-функции обеспечивают защиту для хранения паролей.

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

  • Файл паролей состоит из таблицы пар в форме (идентификатор пользователя, h (P)).

  • Процесс входа изображен на следующей иллюстрации —

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

Файл паролей состоит из таблицы пар в форме (идентификатор пользователя, h (P)).

Процесс входа изображен на следующей иллюстрации —

Процесс входа

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

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

Проверка целостности данных

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

Процесс изображен на следующей иллюстрации —

Проверка целостности данных

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

Аутентификация сообщений

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

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

Код аутентификации сообщения (MAC)

Алгоритм MAC — это криптографический метод с симметричным ключом, обеспечивающий аутентификацию сообщения. Для установления процесса MAC отправитель и получатель совместно используют симметричный ключ K.

По сути, MAC — это зашифрованная контрольная сумма, сгенерированная для базового сообщения, которое отправляется вместе с сообщением для обеспечения аутентификации сообщения.

Процесс использования MAC для аутентификации изображен на следующей иллюстрации —

MAC

Давайте теперь попробуем понять весь процесс в деталях —

  • Отправитель использует какой-то общеизвестный алгоритм MAC, вводит сообщение и секретный ключ K и выдает значение MAC.

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

  • Отправитель пересылает сообщение вместе с MAC. Здесь мы предполагаем, что сообщение отправлено открытым текстом, поскольку мы заинтересованы в обеспечении аутентификации источника сообщения, а не конфиденциальности. Если требуется конфиденциальность, то сообщение нуждается в шифровании.

  • При получении сообщения и MAC получатель передает полученное сообщение и общий секретный ключ K в алгоритм MAC и повторно вычисляет значение MAC.

  • Получатель теперь проверяет равенство только что вычисленного MAC с MAC, полученным от отправителя. Если они совпадают, то получатель принимает сообщение и уверяет себя, что сообщение было отправлено предполагаемым отправителем.

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

Отправитель использует какой-то общеизвестный алгоритм MAC, вводит сообщение и секретный ключ K и выдает значение MAC.

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

Отправитель пересылает сообщение вместе с MAC. Здесь мы предполагаем, что сообщение отправлено открытым текстом, поскольку мы заинтересованы в обеспечении аутентификации источника сообщения, а не конфиденциальности. Если требуется конфиденциальность, то сообщение нуждается в шифровании.

При получении сообщения и MAC получатель передает полученное сообщение и общий секретный ключ K в алгоритм MAC и повторно вычисляет значение MAC.

Получатель теперь проверяет равенство только что вычисленного MAC с MAC, полученным от отправителя. Если они совпадают, то получатель принимает сообщение и уверяет себя, что сообщение было отправлено предполагаемым отправителем.

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

Ограничения MAC

Есть два главных ограничения MAC, оба из-за его симметричного характера работы —

  • Установление общего секрета.

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

    • Это требует установления общего секрета до использования MAC.

  • Неспособность обеспечить невозвращение

    • Безотказность — это гарантия того, что отправитель сообщения не может отрицать ранее отправленные сообщения, а также обязательства или действия.

    • Метод MAC не предоставляет услугу безотказности. Если отправитель и получатель участвуют в споре о происхождении сообщения, MAC не может предоставить доказательство того, что отправитель действительно отправил сообщение.

    • Хотя никакая третья сторона не может вычислить MAC, отправитель может отрицать отправку сообщения и утверждать, что получатель подделал его, так как невозможно определить, какая из двух сторон вычислила MAC.

Установление общего секрета.

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

Это требует установления общего секрета до использования MAC.

Неспособность обеспечить невозвращение

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

Метод MAC не предоставляет услугу безотказности. Если отправитель и получатель участвуют в споре о происхождении сообщения, MAC не может предоставить доказательство того, что отправитель действительно отправил сообщение.

Хотя никакая третья сторона не может вычислить MAC, отправитель может отрицать отправку сообщения и утверждать, что получатель подделал его, так как невозможно определить, какая из двух сторон вычислила MAC.

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

Криптография Цифровые подписи

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

Точно так же цифровая подпись — это метод, который связывает человека / сущность с цифровыми данными. Эта привязка может быть независимо подтверждена как получателем, так и любой третьей стороной.

Цифровая подпись — это криптографическое значение, которое рассчитывается на основе данных и секретного ключа, известного только подписывающему лицу.

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

Модель цифровой подписи

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

Модель Цифровая Подпись

Следующие пункты подробно объясняют весь процесс —

  • У каждого человека, принимающего эту схему, есть пара открытый-закрытый ключ.

  • Обычно пары ключей, используемые для шифрования / дешифрования и подписи / проверки, различны. Закрытый ключ, используемый для подписи, называется ключом подписи, а открытый ключ — ключом проверки.

  • Подписывающий передает данные в хеш-функцию и генерирует хеш-данные.

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

  • Верификатор подает цифровую подпись и ключ проверки в алгоритм проверки. Алгоритм проверки дает некоторое значение в качестве вывода.

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

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

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

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

Обычно пары ключей, используемые для шифрования / дешифрования и подписи / проверки, различны. Закрытый ключ, используемый для подписи, называется ключом подписи, а открытый ключ — ключом проверки.

Подписывающий передает данные в хеш-функцию и генерирует хеш-данные.

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

Верификатор подает цифровую подпись и ключ проверки в алгоритм проверки. Алгоритм проверки дает некоторое значение в качестве вывода.

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

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

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

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

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

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

Важность цифровой подписи

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

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

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

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

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

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

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

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

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

Шифрование с цифровой подписью

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

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

Это может быть заархивировано путем объединения цифровых подписей со схемой шифрования. Давайте кратко обсудим, как выполнить это требование. Есть две возможности: подписать, затем зашифровать и зашифровать, затем подписать .

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

Шифрование с цифровой подписью

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

Инфраструктура открытых ключей

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

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

Ключевой менеджмент

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

Замечено, что криптографические схемы редко подвергаются риску из-за недостатков их конструкции. Однако они часто скомпрометированы из-за плохого управления ключами.

Есть несколько важных аспектов управления ключами, которые заключаются в следующем —

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

  • Управление ключами имеет дело со всем жизненным циклом ключей, как показано на следующем рисунке —

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

Управление ключами имеет дело со всем жизненным циклом ключей, как показано на следующем рисунке —

Управление ключами LifeCycle

  • Существует два конкретных требования к управлению ключами для криптографии с открытым ключом.

    • Секретность закрытых ключей. На протяжении всего жизненного цикла ключа секретные ключи должны оставаться в секрете от всех сторон, кроме тех, кто является владельцем и имеет право использовать их.

    • Заверение открытых ключей. В криптографии с открытым ключом открытые ключи находятся в открытом доступе и рассматриваются как открытые фрагменты данных. По умолчанию нет никаких гарантий того, является ли открытый ключ правильным, с кем он может быть связан или для чего он может быть использован. Таким образом, управление ключами открытых ключей должно быть более четко ориентировано на обеспечение назначения открытых ключей.

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

Секретность закрытых ключей. На протяжении всего жизненного цикла ключа секретные ключи должны оставаться в секрете от всех сторон, кроме тех, кто является владельцем и имеет право использовать их.

Заверение открытых ключей. В криптографии с открытым ключом открытые ключи находятся в открытом доступе и рассматриваются как открытые фрагменты данных. По умолчанию нет никаких гарантий того, является ли открытый ключ правильным, с кем он может быть связан или для чего он может быть использован. Таким образом, управление ключами открытых ключей должно быть более четко ориентировано на обеспечение назначения открытых ключей.

Наиболее важное требование «обеспечения безопасности открытого ключа» может быть достигнуто с помощью инфраструктуры открытого ключа (PKI), системы управления ключами для поддержки криптографии с открытым ключом.

Инфраструктура открытых ключей (PKI)

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

  • Сертификат открытого ключа, обычно называемый «цифровым сертификатом».
  • Токены закрытого ключа.
  • Центр сертификации.
  • Орган регистрации.
  • Система управления сертификатами.

Цифровой сертификат

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

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

  • Цифровые сертификаты основаны на стандарте МСЭ X.509, который определяет стандартный формат сертификатов для сертификатов открытых ключей и подтверждения сертификации. Следовательно, цифровые сертификаты иногда также называют сертификатами X.509.

    Открытый ключ, относящийся к клиенту пользователя, хранится в цифровых сертификатах Удостоверяющим центром (CA) вместе с другой соответствующей информацией, такой как информация о клиенте, срок действия, использование, эмитент и т. Д.

  • CA цифровой подписывает всю эту информацию и включает цифровую подпись в сертификат.

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

Цифровые сертификаты основаны на стандарте МСЭ X.509, который определяет стандартный формат сертификатов для сертификатов открытых ключей и подтверждения сертификации. Следовательно, цифровые сертификаты иногда также называют сертификатами X.509.

Открытый ключ, относящийся к клиенту пользователя, хранится в цифровых сертификатах Удостоверяющим центром (CA) вместе с другой соответствующей информацией, такой как информация о клиенте, срок действия, использование, эмитент и т. Д.

CA цифровой подписывает всю эту информацию и включает цифровую подпись в сертификат.

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

Процесс получения цифрового сертификата физическим или юридическим лицом изображен на следующем рисунке.

Цифровой сертификат

Как показано на рисунке, CA принимает заявку от клиента для сертификации своего открытого ключа. После надлежащей проверки личности клиента ЦС выдает этому клиенту цифровой сертификат.

Удостоверяющий орган (CA)

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

Ключевые функции CA

Ключевые функции CA следующие:

  • Генерация пар ключей — CA может генерировать пару ключей независимо или совместно с клиентом.

  • Выдача цифровых сертификатов — CA можно рассматривать как PKI-эквивалент паспортного агентства — CA выдает сертификат после того, как клиент предоставит учетные данные для подтверждения своей личности. CA затем подписывает сертификат, чтобы предотвратить изменение деталей, содержащихся в сертификате.

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

  • Проверка сертификатов — CA предоставляет свой открытый ключ в среде, чтобы помочь проверить его подпись на цифровом сертификате клиента.

  • Отзыв сертификатов. Время от времени CA отзывает сертификат, выданный по какой-либо причине, например из-за компрометации закрытого ключа пользователем или потери доверия к клиенту. После отзыва CA ведет список всех отозванных сертификатов, доступных для среды.

Генерация пар ключей — CA может генерировать пару ключей независимо или совместно с клиентом.

Выдача цифровых сертификатов — CA можно рассматривать как PKI-эквивалент паспортного агентства — CA выдает сертификат после того, как клиент предоставит учетные данные для подтверждения своей личности. CA затем подписывает сертификат, чтобы предотвратить изменение деталей, содержащихся в сертификате.

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

Проверка сертификатов — CA предоставляет свой открытый ключ в среде, чтобы помочь проверить его подпись на цифровом сертификате клиента.

Отзыв сертификатов. Время от времени CA отзывает сертификат, выданный по какой-либо причине, например из-за компрометации закрытого ключа пользователем или потери доверия к клиенту. После отзыва CA ведет список всех отозванных сертификатов, доступных для среды.

Классы сертификатов

Есть четыре типичных класса сертификата —

  • Класс 1 — Эти сертификаты можно легко получить, указав адрес электронной почты.

  • Класс 2 — Эти сертификаты требуют предоставления дополнительной личной информации.

  • Класс 3 — эти сертификаты могут быть приобретены только после проверки личности запрашивающего лица.

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

Класс 1 — Эти сертификаты можно легко получить, указав адрес электронной почты.

Класс 2 — Эти сертификаты требуют предоставления дополнительной личной информации.

Класс 3 — эти сертификаты могут быть приобретены только после проверки личности запрашивающего лица.

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

Орган регистрации (РА)

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

Система управления сертификатами (CMS)

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

Личные ключи

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

Различные поставщики часто используют разные, а иногда и собственные форматы хранения для хранения ключей. Например, Entrust использует собственный формат .epf, а Verisign, GlobalSign и Baltimore используют стандартный формат .p12.

Иерархия ЦА

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

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

  • Корневой ЦС находится на вершине иерархии ЦС, а сертификат корневого ЦС является самозаверяющим сертификатом.

  • CA, которые непосредственно подчинены корневому CA (например, CA1 и CA2), имеют сертификаты CA, которые подписаны корневым CA.

  • CA в подчиненных CA в иерархии (например, CA5 и CA6) имеют свои сертификаты CA, подписанные подчиненными CA более высокого уровня.

Корневой ЦС находится на вершине иерархии ЦС, а сертификат корневого ЦС является самозаверяющим сертификатом.

CA, которые непосредственно подчинены корневому CA (например, CA1 и CA2), имеют сертификаты CA, которые подписаны корневым CA.

CA в подчиненных CA в иерархии (например, CA5 и CA6) имеют свои сертификаты CA, подписанные подчиненными CA более высокого уровня.

Иерархии центра сертификации (ЦС) отражаются в цепочках сертификатов. Цепочка сертификатов отслеживает путь сертификатов от ветви в иерархии до корня иерархии.

На следующем рисунке показана иерархия CA с цепочкой сертификатов, ведущей от сертификата объекта через два подчиненных сертификата CA (CA6 и CA3) к сертификату CA для корневого CA.

CA Иерархия

Проверка цепочки сертификатов — это процесс проверки правильности, правильности подписи и надежности конкретной цепочки сертификатов. Следующая процедура проверяет цепочку сертификатов, начиная с сертификата, который представляется для аутентификации —

  • Клиент, подлинность которого проверяется, предоставляет свой сертификат, как правило, вместе с цепочкой сертификатов до корневого центра сертификации.

  • Верификатор получает сертификат и проверяет его с помощью открытого ключа эмитента. Открытый ключ эмитента находится в сертификате эмитента, который находится в цепочке рядом с сертификатом клиента.

  • Теперь, если вышестоящий ЦС, подписавший сертификат эмитента, доверен верификатору, проверка успешна и на этом останавливается.

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

Клиент, подлинность которого проверяется, предоставляет свой сертификат, как правило, вместе с цепочкой сертификатов до корневого центра сертификации.

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

Теперь, если вышестоящий ЦС, подписавший сертификат эмитента, доверен верификатору, проверка успешна и на этом останавливается.

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

Криптография — преимущества и недостатки

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

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

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

Криптография — преимущества

Криптография является важным средством защиты информации. Предоставляет четыре основных сервиса информационной безопасности —

  • Конфиденциальность — техника шифрования может защитить информацию и сообщения от несанкционированного раскрытия и доступа к информации.

  • Аутентификация — криптографические методы, такие как MAC и цифровые подписи, могут защитить информацию от подделки и подделки.

  • Целостность данных — криптографические хэш-функции играют важную роль в обеспечении пользователей целостностью данных.

  • Безотказность — цифровая подпись обеспечивает услугу безотказности для защиты от спора, который может возникнуть из-за отказа отправителя передать сообщение.

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

Аутентификация — криптографические методы, такие как MAC и цифровые подписи, могут защитить информацию от подделки и подделки.

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

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

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

Криптография — Недостатки

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

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

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

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

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

  • Криптография поставляется за плату. Стоимость с точки зрения времени и денег —

    • Добавление криптографических методов в обработку информации приводит к задержке.

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

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

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

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

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

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

Криптография поставляется за плату. Стоимость с точки зрения времени и денег —

Добавление криптографических методов в обработку информации приводит к задержке.

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

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

Будущее криптографии

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

Квантовые вычисления — это новое явление. В то время как современные компьютеры хранят данные, используя двоичный формат, называемый «бит», в котором могут храниться «1» или «0»; квантовый компьютер хранит данные, используя квантовую суперпозицию нескольких состояний. Эти многозначные состояния хранятся в «квантовых битах» или «кубитах». Это позволяет вычислять числа на несколько порядков быстрее, чем традиционные транзисторные процессоры.

Чтобы понять мощность квантового компьютера, рассмотрим RSA-640, число с 193 цифрами, которое может быть вычислено восемьюдесятью компьютерами с частотой 2,2 ГГц в течение 5 месяцев, один квантовый компьютер будет иметь коэффициент менее 17 секунд. Числа, на вычисление которых обычно уходят миллиарды лет, могут занять несколько часов или даже минут с полностью разработанным квантовым компьютером.

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