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

Обновлено: 04.07.2024

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

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

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

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

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

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

Криптографические программные продукты

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

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

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

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

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

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

Алгоритмы, т.е. сами последовательности действий, не являются секретными.

Стандарты на криптографические алгоритмы

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

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

В России существуют собственные государственные стандарты на алгоритмы шифрования и выработки/проверки электронной подписи: ГОСТ 28147-89, ГОСТ Р 34.10-2012, ГОСТ Р 34.10-2012.

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

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

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

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

В качестве секретной информации используются криптографические ключи.

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

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

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

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

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

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

В асимметричной криптографии применяются так называемые ключевые пары (key pairs). Каждая такая пара состоит из двух связанных между собой ключей. Один из этих ключей — закрытый (private key). Он известен только владельцу ключа и ни при каких условиях не должен быть доступен никому другому. Другой ключ — открытый (public key), он может быть доступен любому желающему.

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

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

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

Сертификаты

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

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

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

Цепочки доверия

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

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

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

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

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

Датчики случайных чисел и создание ключей

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

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

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

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

Но такие датчики устанавливаются не на каждом компьютере. Поэтому часто для создания ключей используется клавиатурный датчик случайных чисел~--- программа, использующая для создания последовательности случайных чисел физический процесс нажатия клавиш пользователем. Для инициализации такого датчика пользователю необходимо нажать определенное количество указываемых ему клавиш (если все клавиши нажаты безошибочно, то нужно 40 нажатий; если пользователь допускает ошибочные нажатия, количество необходимых нажатий увеличивается). Создание ключей с помощью клавиатурного датчика — более медленный процесс, чем создание ключей с помощью аппаратного датчика, но его можно осуществить на любом компьютере.

Хранение закрытых ключей

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

Компрометация ключей

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

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

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

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

Аппаратное шифрование

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

Достоинства аппаратного шифрования

Аппаратные шифраторы имеют ряд достоинств:

  • формируют надёжные ключи шифрования и ЭЦП — аппаратный датчик случайных чисел создаёт действительно случайные числа,
  • сохраняют целостность алгоритма — она гарантируется аппаратной реализацией,
  • шифруют и хранят ключей осуществляются в самой плате шифратора — это затрудняет доступ,
  • загружают ключей в шифрующее устройство с электронных ключей Touch Memory (i-Button) и смарт-карт напрямую, а не через системную шину компьютера и ОЗУ — это исключает возможность перехвата ключей,
  • позволяют реализовать системы разграничения доступа к компьютеру,
  • применяют специализированный процессор для выполнения всех вычислений — это разгружает центральный процессор компьютера,
  • предусматривают возможность использования парафазных шин - это исключает угрозу чтения ключевой информации по колебаниям электромагнитного излучения при создании шифрпроцессора.
  • могут использоваться необученным человеком — шифровальное устройство элементарно подключается к компьютеру или модему, в то время как незаметное внедрение функций шифрования в ОС - достаточно трудоёмкий процесс, осуществляемый профессионалами.

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

Устройства аппаратного шифрования

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

Блоки шифрования

Представляют собой встраиваемые в каналы связи оконечные устройства - шифрующие аппаратные средства[1].

Самодостаточные шифровальные модули

Самодостаточные шифровальные модули самостоятельно выполняют всю работу с ключами. Например, usb-устройство ruToken, ПСКЗИ ШИПКА.

Шифровальные платы расширения



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

Дополнительные возможности аппаратных шифраторов

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

Смарт-карты

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

  • микропроцессор,
  • операционную систему, контролирующую устройство и доступ к объектам в его памяти.

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

Виды смарт-карт

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

  • контактные смарт-карты с интерфейсом ISO 7816,
  • контактные смарт-карты с USB-интерфейсом,
  • бесконтактные (RFID) смарт-карты.

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

Смарт-карты можно разделит по функциональности на: • карты памяти (содержат некоторое количество данных и механизм разграничения доступа к ним), • интеллектуальные карты (содержат микропроцессор и возможность управлять данными на карте).

Контактные смарт-карты с интерфейсом ISO 7816

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

Контактные смарт-карты с USB-интерфейсом

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

Бесконтактные смарт-карты

Карты памяти

Содержат некоторое количество данных и фиксированный механизм разграничения доступа к ним. Как правило, это карты для микроплатежей на транспорте, в парках отдыха, карты лояльности клиентов и др. В качестве механизма ограничения доступа могут выступать как очень простые (однократная запись, пароль, уникальный номер), так и посложнее (взаимная аутентификация с использованием стандартных симметричных криптоалгоритмов AES, DES). Это наиболее распространённый вид смарт-карт.

Интеллектуальные карты

Токены

Токен (также аппаратный токен, USB-ключ, криптографический токен) — компактное устройство, предназначенное для обеспечения информационной безопасности пользователя, также используется для идентификации его владельца, безопасного удаленного доступа к информационным ресурсам и др. Как правило, это физическое устройство, используемое для упрощения аутентификации.
Токены предназначены для электронного удостоверения личности, при этом они могут использоваться как вместо, так и вместе с паролем. Как правило, аппаратные токены небольшого размера и легко умещаются в кармане в виде брелка. Некоторые предназначены для хранения криптографических ключей, таких как электронная подпись или биометрические данные (например, детали дактилоскопического узора). В одни встроена защита от взлома, в другие — мини-клавиатура для ввода PIN-кода или же просто кнопка вызова процедуры генерации и дисплей для вывода сгенерированного ключа. Токены обладают разъёмом USB, функциями RFID или беспроводным интерфейсом Bluetooth для передачи сгенерированной последовательности ключей на клиентскую систему.

Типы паролей

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

  • Токен со статическим паролем. Устройство содержит пароль, который физически скрыт (не виден обладателю), но который передается для каждой аутентификации. Этот тип уязвим для атак повторного воспроизведения.
  • Токен с синхронно динамическим паролем. Устройство генерирует новый уникальный пароль с определенным интервалом времени. Токен и сервер должны быть синхронизированы, чтобы пароль был успешно принят.
  • Токен с асинхронным паролем. Одноразовый пароль генерируется без использования часов, с помощью шифра Вернама или другого криптографического алгоритма.
  • Токен вызов-ответ. Используя криптографию с открытым ключом, можно доказать владение частным ключом, не раскрывая его. Сервер аутентификации шифрует вызов (обычно случайное число или по крайней мере, данные с некоторыми случайными частями) с помощью открытого ключа. Устройство доказывает, что обладает копией соответствующего частного ключа, путем предоставления расшифрованного вызова.
  • Одноразовые пароли, синхронизированные по времени. Синхронизированные по времени одноразовые пароли постоянно меняются в установленное время, например, раз в минуту. Для этого должна существовать синхронизация между токеном клиента и сервером аутентификации. Для устройств, не подключенных к сети, эта синхронизация сделана до того, как клиент приобрел токен. Другие типы токенов синхронизируются, когда токен вставляется в устройство ввода.
  • Одноразовые пароли на основе математического алгоритма. Другой тип одноразовых паролей использует сложный математический алгоритм, например, хэш-цепи, для создания серии одноразовых паролей из секретного ключа. Ни один из паролей нельзя отгадать, даже тогда, когда предыдущие пароли известны. Существует общедоступный, стандартизированный алгоритм OATH; другие алгоритмы покрыты американскими патентами. Каждый новый пароль должен быть уникальным, поэтому неавторизованный пользователь не сможет догадаться, что новый пароль может быть, на основе ранее использованных паролей.

Типы токенов

Токены без подключения

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

Токены с подключением

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

Токены с использованием технологии смарт-карт

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

Беспроводные токены

В отличии от токенов с подключением, беспроводные токены формируют логическую связь с компьютером клиента и не требуют физического подключения. Отсутствие необходимости физического контакта делает их более удобными, чем токены с подключением и токены без подключения. В результате данный тип токенов является популярным выбором для систем входа без ключа и электронных платежей, таких как Mobil Speedpass, которые используют RFID, для передачи информации об аутентификации от токена брелока. Тем не менее существуют различные проблемы безопасности, после исследований в Университете имени Джона Хопкинса, и Лаборатории RSA обнаружили, что RFID метки могут быть легко взломаны. Еще одной проблемой является то, что беспроводные токены имеют относительно короткий срок службы (3-5 лет), в то время как USB-токены могут работать до 10 лет.

Bluetooth-токены

Bluetooth-токены часто включают в себя USB-штекер, т.е. при отсутствии возможности bluetooth-подключения можно использовать USB-вход. Bluetooth-аутентификация работает на расстоянии около 10 метров [5].

Генераторы псевдослучайных двоичных последовательностей

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

Структура генератора

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

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

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

Методы получения псевдослучайных последовательностей

4 EP.jpg

Линейный конгруэнтный генератор (ЛКГ) – это последовательность чисел от 0 до m −1, удовлетворяющая следующему рекуррентному выражению , X0 - начальное значение, a – множитель, b – приращение, m – модуль. У такого генератора период меньше m . Если a , b , m правильно выбраны, то генератор является генератором максимальной длины и имеет период m (например gcd( m, b) = 1). Основным преимуществом линейных конгруэнтных генераторов является их быстрота, за счет малого количества операций на байт и простота реализации. К сожалению, такие генераторы в криптографии используются достаточно редко, поскольку являются предсказуемыми. К сожалению, ЛКГ не может быть использованы для построения поточных шифров – они предсказуемы, впервые были взломаны Joan Boyar. Она также взломала квадратичные генераторы. Нелинейные конгруэнтные генераторы Иногда используют квадратичные и кубические конгруэнтные генераторы, которые обладают большей стойкостью к взлому. Квадратичный конгруэнтный генератор имеет вид . Аналогично задается кубический генератор. Для увеличения размера периода повторения конгруэнтных генераторов часто используют их объединение (суперпозицию) посредством нелинейного преобразования (функции). При этом криптографическая безопасность не уменьшается, но такие генераторы обладают лучшими характеристиками в некоторых статистических тестах. Линейный регистр с обратной связью (LFSR) состоит из двух частей: регистра сдвига и последовательностью ответвления (tap sequence). Регистр сдвига есть последовательность битов. Как только нам нужен следующий бит, все биты регистра сдвига сдвигаются направо и LFSR выдает наиболее значимый бит. При этом наименьший значимый бит определяется посредством вычисления XOR от прочих битов регистра, согласно последовательности ответвления. Теоретически, n -битный LFSR может сгенерировать псевдослучайную последовательность длиной 2n −1 бит перед зацикливанием. Для этого регистр сдвига должен побывать во всех 2n −1 внутренних состояниях (количество состояний именно 2n −1 , а не 2n , т.к. регистр сдвига, состоящий из нулей, вызовет бесконечную последовательность нулей, что не особо удобно). Только некоторые tap sequences проходят через все 2n −1 состояний, LFSR с такими tap sequences называются LFSR максимальной длины.

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

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

Биологический датчик

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

Датчик шума

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

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

Сопроцессор — специализированный процессор, расширяющий возможности центрального процессора компьютерной системы, но оформленный как отдельный функциональный модуль. Физически сопроцессор может быть отдельной микросхемой или может быть встроен в центральный процессор. Безопасность, а особенно сетевая безопасность, является еще одной областью, в которой широко используются сопроцессоры. Когда между клиентом и сервером устанавливается соединение, обычно требуется их взаимная аутентификация. По установленному таким образом безопасному (шифруемому) соединению можно передавать данные и не думать о злоумышленниках, прослушивающих линию. Проблема здесь в том, что безопасность обеспечивается средствами криптографии, а эта область требует весьма объемных вычислений. В криптографии сейчас рассмотрены два основных подхода к защите данных: шифрование с секретным ключом и шифрование с открытым ключом. Первый основан на очень тщательном перемешивании битов. В основе второго подхода лежит умножение и возведение в степень больших чисел (1024-разрядных), что требует исключительно больших временных затрат.

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

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

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

  • алгоритмы шифрования с секретным ключом (симметричные)
    • блочные шифры
    • поточные шифры

    Криптоалгоритмы с секретным ключом

    Идея, лежащая в основе большинства итерационных блочных шифров , состоит в построении криптографически стойкой системы путем последовательного применения относительно простых криптографических преобразований. Принцип многоразового шифрования с помощью простых криптографических преобразований был впервые предложен Шенноном в работе [5.1]: он использовал с этой целью преобразования перестановки и подстановки . Первое из этих преобразований переставляет отдельные символы преобразуемого информационного блока, а второе - заменяет каждый символ (или группу символов) из преобразуемого информационного блока другим символом из того же алфавита (соответственно группой символов того же размера и из того же алфавита). Узлы, реализующие эти преобразования, называются, соответственно, P-блоками ( P-box, permutation box ) и S-блоками ( S-box, substitution box ).

    В 1973-74 гг. Национальное Бюро Стандартов США ( NBS ) опубликовало документы, содержащие требования к криптографическому алгоритму, который мог бы быть принят в качестве стандарта шифрования данных в государственных и частных учреждениях. В 1976 г. в качестве такового стандарта был утвержден алгоритм , разработанный фирмой IBM . В 1977 г. этот стандарт был официально опубликован и вступил в силу как федеральный стандарт США для шифрования данных - Data Encryption Standard или сокращенно DES [5.2].

    В ответ на проблемы с длиной ключа и производительностью, проявившиеся в Triple DES , многие криптографы и компании разработали новые блочные шифры . Наиболее популярными предложениями стали алгоритмы RC2 и RC5 [5.3] корпорации RSA Data Security , IDEA [5.5] компании Ascom , Cast [5.4] компании Entrust , Safer [5.6] компании Cylink и Blowfish [5.7] компании Counterpane Systems . Коммерческие альтернативы DES получили определенное распространение, но ни одна из них не стала стандартом.

    В 1997 г. Национальный институт стандартов и технологий США ( NIST ) объявил о начале программы по принятию нового стандарта криптографической защиты. В октябре 2000 г. конкурс завершился. Победителем был признан шифр Rijndael [5.8], разработанный бельгийцами Д. Дейменом и В. Райменом. Алгоритм Rijndael стал основой для нового американского стандарта AES ( Advanced Encryption Standard ), который в 2001 г. пришел на смену DES и Triple DES и действует и по сей день. Rijndael - это итерационный блочный шифр , имеющий архитектуру " Квадрат ". Он быстрый, простой, защищенный, универсальный и хорошо подходит для реализации на смарт-картах . Шифр имеет переменную длин у блоков и различные длины ключей . Длина ключа и длина блока могут быть равны независимо друг от друга 128, 192 или 256 битам. В стандарте AES определена длина блока , равная 128 битам. Шифр AES характеризуется хорошей устойчивостью по отношению к атакам по мощности и по времени. Именно этот шифр рекомендует использовать Microsoft для симметричного шифрования .

    Отечественный стандарт шифрования носит официальное название " Алгоритм криптографического преобразования ГОСТ 28147-89" [5.10]. Как явствует из его номера, стандарт был принят в СССР в 1989 г. Если охарактеризовать алгоритм ГОСТ в самом общем виде, то он является блочным шифром , построенным по схеме Фейстеля с 32 циклами шифрования . Длина информационного блока - 64 бита, длина ключа - 256 бит .

    Z_2^32 \times Z_2^48 \to Z_2^32

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

    Основная идея поточного шифрования состоит в том, что каждый из последовательных знаков открытого текста подвергается своему преобразованию. В идеале разные знаки открытого текста подвергаются разным преобразованиям, т.е. преобразование, которому подвергаются знаки открытого текста , должно изменяться с каждым следующим моментом времени. Реализуется эта идея следующим образом. Некоторым способом получается последовательность знаков называемая ключевым потоком ( keystream ) или бегущим ключом ( running key , RK ). Затем каждый знак открытого текста подвергается обратимому преобразованию, зависящему от - соответствующего знака ключевого потока.

    Поточные шифры почти всегда работают быстрее и обычно требуют для своей реализации гораздо меньше программного кода, чем блочные шифры . Наиболее известный поточный шифр был разработан Р. Ривестом; это шифр RC4 , который характеризуется переменным размером ключа и байт -ориентированными операциями. На один байт требуется от 8 до 16 действий, программная реализация шифра выполняется очень быстро. Независимые аналитики исследовали шифр , и он считается защищенным. RC4 используется для шифрования файлов в таких изделиях, как RSA SecurPC . Он также применяется для защиты коммуникаций , например, для шифрования потока данных в Интернет-соединениях, использующих протокол SSL .

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

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

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

    Наиболее известные криптосистемы с открытым ключом :

    • Рюкзачная криптосистема ( Knapsack Cryptosystem ) [5.13];
    • Криптосистема RSA ;
    • Криптосистема Эль-Гамаля - EGCS ( El Gamal Cryptosystem );
    • Криптосистема , основанная на свойствах эллиптических кривых - ECCS ( Elliptic Curve Cryptosystems ).

    Применение алгоритмов шифрования с открытым ключом позволяет:

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

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

    Схема ЭЦП должна определять три следующих алгоритма:

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

    RSA [5.14] - криптографическая система с открытым ключом , обеспечивающая оба механизма защиты: шифрование и цифровую подпись. Криптосистема RSA была разработана в 1977 году и названа в честь авторов: Рональда Ривеста, Ади Шамира и Леонарда Адлемана.

    Принцип её действия в следующем. Берутся два больших случайных простых числа и приблизительно равной разрядности и вычисляется их произведение . Затем выбирается число , взаимно простое с произведением и вычисляется число (mod(p-1)(q-1)) " />
    , взаимно простое с .

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

    Схема Эль-Гамаля [5.15] основана на трудности вычисления дискретных логарифмов в конечном поле в сравнении с лёгкостью возведения в степень в том же самом поле .

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

    На схеме Эль-Гамаля базировались стандарты ЭЦП в России и США, принятые в 1994 году [5.17, 5.16] и действовавшие вплоть до 2001 г.

    Последние математические достижения показали, что проблема логарифмирования в конечных полях не является достаточно прочным фундаментом. Наиболее эффективные на сегодняшний день алгоритмы дискретного логарифмирования имеют уже не экспоненциальную, а субэкспоненциальную временную сложность. Это алгоритмы "index-calculus", использующие факторную базу, к числу которых относятся алгоритм Адлемана [5.18], несколько версий " COS " (алгоритма Копперсмита-Одлыжко-Шреппеля) [5.19] и решето числового поля [5.20]. Ведутся работы по повышению эффективности этих алгоритмов. Так, метод, описанный в [5.21], направлен на повышение эффективности решения линейных уравнений в кольцах вычетов, поскольку все субэкспоненциальные методы дискретного логарифмирования сводятся к этой задаче.

    Ряд успешных атак, описанных, например, в [5.23], на системы, основанные на сложности дискретного логарифмирования в конечных полях, привел к тому, в 2001 г. России и США были приняты новые стандарты на ЭЦП [5.22, 5.24]. Процессы формирования и проверки электронной ЭЦП существенно не изменились, однако вместо элементов конечного поля или они оперируют эллиптическими числами, т.е. решениями уравнения эллиптических кривых над указанными конечными полями, а роль операции возведения в степень в конечном поле выполняет операция взятия кратной точки эллиптической кривой . Если старый российский стандарт ЭЦП оперирует 1024-битовыми блоками, то новый - 256-битовыми, но при этом обладает большей стойкостью. Важно отметить, что специальный выбор типа эллиптической кривой позволяет не только во много раз усложнить задачу взлома схемы ЭЦП , но и уменьшить рабочий размер блоков данных. Криптосистемы на основе эллиптической кривой получают все большее распространение скорее как альтернатива , а не замена системам на основе RSA . Они имеют некоторые преимущества, особенно при использовании в устройствах с маломощными процессорами и/или маленькой памятью. Так, согласно стандарту США [5.24] на выработку и верификацию цифровой подписи DSS ( Digital Signature Standard ), ЭЦП может вырабатываться по одному из трех алгоритмов: DSA ( Digital Signature Algorithm ), основанному на проблеме дискретного логарифма в конечном поле , ANSI X9.31 ( RSA DSA ) [5.26] или ANSI X9.63 [5.25] ( EC DSA - алгоритм выработки подписи, основанный на проблеме дискретного логарифма в группе точек эллиптической кривой над конечным полем).

    Шифрование на платформе Windows

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

    На платформах Windows XP и Windows Server 2003 компания Microsoft рекомендует использовать следующие криптографические алгоритмы [5.11]:

    • AES -128 (или AES -192 , или AES -256 );
    • RSA 2048 (или с еще более длинным ключом);
    • SHA-2 (т.е. SHA-256 или SHA-512 );
    • DSA (или SHA-2 / RSA ).

    Криптография Windows Vista (и Longhorn Server ) соответствует рекомендациям Агентства Национальной Безопасности США и Национального института стандартов и технологии ( NIST ) по реализации протоколов " Suite B" [5.12] и предусматривает использование асимметричных криптоалгоритмов на основе эллиптических кривых . Алгоритмы " Suite B" включают:

    • AES (шифрование);
    • EC-DSA (электронно-цифровая подпись);
    • EC-DH или EC-MQV (обмен секретными ключами );
    • SHA-2 (хеширование).

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

    Краткие итоги

    В данной лекции рассмотрены основные понятия и определения из области криптографии . Описаны схемы работы симметричных и асимметричных шифров. Указаны стандарты, регламентирующие использование криптографии в России и США. Представлены рекомендации Microsoft по применению криптографических алгоритмов.

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

    Содержание

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

    Цели криптографии

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

    • Несанкционированного прочтения
    • Преднамеренного нарушения целостности либо ничтожения
    • Нежелательного копирования
    • Фальсификации

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

    Принципы применения

    Есть несколько основополагающих принципов применения криптографических алгоритмов

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

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

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

    Сертификаты



    Структура сертификата

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

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

    Верификация сертификата

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

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

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

    Электронная цифровая подпись (ЭЦП)

    Реализация ЭЦП

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

    Квантовая криптография

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

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

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

    Предпосылки секретности квантового канала связи

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

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

    Хронология событий

    2021: Квантовый компьютер выявил уязвимости в AES шифровании

    8 февраля 2021 года стало известно о том что обнаружение проблем потенциально может привести к опасным последствиям для таких компаний, как Google, Microsoft и IBM.

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

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

    По словам экспертов, проблемы были обнаружены в симметричном алгоритме блочного шифрования Advanced Encryption Standard (AES). Как отметил директор Terra Quantum AG Маркус Пфлич (Markus Pflitsch), им удалось с помощью квантового компьютера не только зафиксировать, но также доказать небезопасность алгоритма шифрования.

    AES был принят в качестве стандарта шифрования правительством США. В июне 2003 года Агентство национальной безопасности США постановило, что шифр AES является достаточно надежным, чтобы использовать его для защиты сведений, составляющих государственную тайну [1] .

    2020: Ученые научились шифровать данные с помощью кристаллов

    13 февраля 2020 года стало известно, что ученые из Университета Глазго (Великобритания) научились использовать кристаллы как генератор случайных чисел для шифрования.



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

    Как сообщил профессор химии Ли Кронин (Lee Cronin), они разработали простого робота, который следил через web-камеру за процессами кристаллизации и преобразовывал разные обнаруженные реакции в последовательность единиц и нулей. Исследователи рассмотрели три различные химические реакции и сравнили их закодированные строки с одной, созданной с помощью генератора псевдослучайных чисел общего назначения Mersenne Twister. Обратная расшифровка такой информации заняла куда больше времени, чем в случае с ранее известными методами, что доказывает эффективность выбранного метода.

    Читайте также: