Целостность. Протоколы аутентификации и электронной подписи
Как уже отмечалось во введении, понятие целостности информации, по-видимому, не допускает математической формализации. В данном разделе мы рассмотрим методы обеспечения целостности на примере двух наиболее важных и распространенных типов криптографических протоколов - схем аутентификации и электронной подписи. 
Назначение и суть протоколов аутентификации (называемых также протоколами идентификации) легко понять на следующем примере. Представим себе информационную систему, которая работает в компьютерной сети и обеспечивает доступ к некоторым данным. У администратора системы имеется список всех ее пользователей вместе с сопоставленным каждому из них набором полномочий, на основе которых осуществляется разграничение доступа к ресурсам системы. Ресурсами могут быть, например, некоторые фрагменты информации, а также функции, выполняемые системой. Одним пользователям может быть разрешено читать одну часть информации, другим - другую ее часть, а третьим - еще и вносить в нее изменения. В данном контексте под обеспечением целостности понимается предотвращение доступа к системе лиц, не являющихся ее пользователями, а также предотвращение доступа пользователей к тем ресурсам, на которые у них нет полномочий. Наиболее распространенный метод разграничения доступа, парольная защита, имеет массу недостатков. Их обсуждение стало общим местом для текстов по компьютерной безопасности, поэтому мы сразу перейдем к криптографической постановке задачи. 
В протоколе имеются два участника - Алиса, которая должна доказать свою аутентичность, и Боб, который эту аутентичность должен проверить. У Алисы имеются два ключа - общедоступный открытый и секретный . Фактически, Алисе нужно доказать, что она знает , и сделать это таким образом, чтобы это доказательство можно было проверить, зная только . 
Напомним, что для удовлетворения этих требований достаточно, чтобы протокол аутентификации был доказательством с нулевым разглашением. Ниже мы приводим протокол Шнорра , один из наиболее эффективных практических протоколов аутентификации. Для его описания нам потребуются некоторые обозначения, которые будут использоваться и в последующих разделах данной главы. 
Пусть и - простые числа такие, что делит . Шнорр предлагает использовать длины порядка 512 битов и - длины порядка 140 битов. Пусть таково, что , . Пусть и . Задача вычисления значения по заданному значению при известных , и называется задачей дискретного логарифмирования (см. главу 4). Для задачи дискретного логарифмирования на данный момент не известно эффективных алгоритмов. Поэтому в криптографии широко используется гипотеза о вычислительной трудности задачи дискретного логарифмирования. Сформулируем ее более строго. Пусть - растущий целочисленный параметр, число выбирается из множества всех простых чисел длины таких, что имеет простой делитель длины не меньше для некоторой константы , - из множества всех таких простых делителей числа ,  - из множества всех чисел таких, что , а . Тогда функция - односторонняя. Рекомендации, данные Шнорром относительно длин чисел и , можно трактовать следующим образом. На тот момент (1989 г.) инвертирование функции считалось практически невыполнимым уже для и длины порядка 512 и 140 битов соответственно. Здесь, однако, следует учитывать, что прогресс в области вычислительной техники и в алгоритмической теории чисел (см. главу 4) может привести к необходимости пересмотра этих величин. 
В качестве секретного ключа схемы аутентификации Алиса выбирает случайное число из . Далее Алиса вычисляет и публикует открытый ключ . Открытые ключи всех участников схемы должны публиковаться таким образом, чтобы исключалась возможность их подмены (такое хранилище ключей называется общедоступным сертифицированным справочником). Эта проблема, называемая часто проблемой аутентичности открытых ключей, составляет отдельный предмет исследований в криптографии и в данной главе не рассматривается.