- •1. Криптографические методы
- •1.1.1 Зачем нужны криптографические протоколы
- •1.1.2 Распределение ролей
- •1.1.3 Протоколы с арбитражем
- •1.1.4 Протокол с судейством
- •1.1.5 Самоутверждающийся протокол
- •1.1.6 Разновидности атак на протоколы
- •1.1.7 Доказательство с нулевым разглашением конфиденциальной информации
- •1.1.8 Протокол доказательства с нулевым разглашением конфиденциальной информации
- •1.1.9 Параллельные доказательства с нулевым разглашением конфиденциальной информации
- •1.1.10 Неинтерактивные протоколы доказательства с нулевым разглашением конфиденциальной информации
- •1.1.11 Удостоверение личности с нулевым разглашением конфиденциальной информации
- •1.1.12 Неосознанная передача информации
- •1.1.13 Анонимные совместные вычисления
- •1.2 Симметричная криптография (одноключевая, с секретным ключом)
- •1.2.1 Симметричная (секретная) методология
- •1.2.2 Симметричные алгоритмы
- •Подстановка Цезаря
- •Многоалфавитные системы. Системы одноразового использования.
- •Системы шифрования Вижинера
- •Гаммирование (Потоковое шифрование)
- •Датчики псч
- •Конгруэнтные датчики
- •Датчики м-последовательностей
- •1.3 Асимметричная криптография (с открытым ключом)
- •1.3.1 Асимметричная (открытая) методология
- •1.3.2 Асимметричные алгоритмы
- •1.4 Цифровой дайджест и хэш-функции
- •1.4.1 Криптографические хэш-функции
- •1.4 Цифровая подпись. Цифровая отметка времени
- •Назад | Оглавление | Вперед
1. Криптографические методы
1.1 Понятие криптографического протокола
1.2 Симметричная криптография
1.3 Асимметричная криптография
1.4 Цифровой дайджест и хэш-функции
1.5 Цифровая подпись. Цифровая отметка времени
1.1 Понятие криптографического протокола
В Криптографии часто используются термины «алгоритм» и «протокол». Интуитивно смысл этих терминов достаточно понятен. Они широко используются и в других научно-технических областях знаний. Алгоритм – одно из основных понятий в программировании и вычислительной математике, протокол – в связи.
В дальнейшем изложении под алгоритмом мы будем понимать набор команд, действий, инструкций, вычислений, которые необходимо выполнить для того, чтобы из исходных данных получить тот или иной результат. При этом в процессе выполнения алгоритма могут возникать новые данные как результат преобразования исходных данных, либо как результат осуществления случайного выбора на каком-либо шаге алгоритма, либо как результат выполнения (вычислителем) измерений параметров окружения (внешних объектов). Алгоритм выполняется некоторым субъектом (вычислителем).
Для того, чтобы протокол приводил к желаемой цели, необходимо выполнение следующих условий:
корректность протокола – совокупность действий, предусмотренных протоколом, должна обеспечить получение требуемого результата при всех возможных ситуациях;
полнота и однозначность определения – протокол должен специфицировать действия каждого участника протокола для всех возможных ситуаций;
непротиворечивость – результаты, полученные различными участниками протокола, не должны быть противоречивыми;
осведомленность и согласие участников протокола – каждый субъект заранее должен знать протокол и все шаги, которые он должен выполнить; все субъекты должны быть согласны играть свою роль.
Криптографические протоколы – это такие протоколы, в которых используется криптографические преобразования данных. Хотя криптографические протоколы часто используют те или иные алгоритмы шифрования, их целью не обязательно является секретность. Например, стороны криптографического протокола могут желать подписать одновременно какой-либо контракт, провести электронную жеребьевку, идентифицировать участников телеконференции и т.п.
Шифрование данных и вычисление односторонних функций представляют собой выполнение соответствующего алгоритма. Если протокол использует некоторую криптографическую функцию, то она должна быть стойкой. Даже если используемые алгоритмы шифрования являются стойкими, то этот еще не гарантирует стойкость протокола. Для того, чтобы криптографический протокол был стойким, необходимо, чтобы используемые криптографические алгоритмы были стойкими именно в условиях конкретного применения.
В криптосистемах предполагается существование потенциального нарушителя (в практических приложениях это идеальное понятие вполне материализовано). Разработчики криптографических алгоритмов и протоколов предусматривают по возможности наиболее полный перечень возможных действий нарушителя (или группы нарушителей) и стремятся обеспечить достижение цели протокола с учетом всех возможных атак. Атака на алгоритм, протокол или криптосистему состоит в выполнении нарушителем таких действий, с помощью которых он пытается прочитать криптограмму, взломать односторонние функции (т.е. вычислить значение аргумента по значению функции), выдать себя за другого субъекта, навязать ложные сообщения, расширить свои полномочия и в общем случае создать условия, при которых корректность использования алгоритмов и протоколов криптосистемы будет нарушена. Если такие действия нарушителя возможны, то говорят, что криптосистема уязвима по отношению к такой-то атаке.