ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ. ПРОЦЕССЫ ФОРМИРОВАНИЯ И ПРОВЕРКИ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ. INFORMATION TECHNOLOGY. CRYPTOGRAPHIC DATA SECURITY. FORMATION AND VERIFICATION PROCESSES OF [ELECTRONIC] DIGITAL SIGNATURE ГОСТ Р 34.10-2001 ПОСТАНОВЛЕНИЕ ГОСУДАРСТВЕННЫЙ КОМИТЕТ РФ ПО СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ 12 сентября 2001 г. N 380-ст (Д) УТВЕРЖДЕН Постановлением Госстандарта России от 12 сентября 2001 года N 380-ст Дата введения - 1 июля 2002 года Предисловие 1. Разработан Главным управлением безопасности связи Федерального агентства правительственной связи и информации при Президенте Российской Федерации с участием Всероссийского научно-исследовательского института стандартизации (ВНИИстандарт). Внесен Федеральным агентством правительственной связи и информации при Президенте Российской Федерации. 2. Принят и введен в действие Постановлением Госстандарта России от 12 сентября 2001 г. N 380-ст. 3. Настоящий стандарт разработан с учетом терминологии и концепций международных стандартов ИСО 2382-2-76 "Обработка данных. Словарь. Часть 2. Арифметические и логические операции", ИСО/МЭК 9796-91 "Информационная технология. Методы защиты. Схема цифровой подписи с восстановлением сообщения", серии ИСО/МЭК 14888 "Информационная технология. Методы защиты. Цифровые подписи с приложением" и серии ИСО/МЭК 10118 "Информационная технология. Методы защиты. Хэш-функции". 4. Взамен ГОСТ Р 34.10-94. Введение Настоящий стандарт содержит описание процессов формирования и проверки электронной цифровой подписи (ЭЦП), реализуемой с использованием операций группы точек эллиптической кривой, определенной над конечным простым полем. Стандарт разработан взамен ГОСТ Р 34.10-94. Необходимость разработки настоящего стандарта вызвана потребностью в повышении стойкости ЭЦП к несанкционированным изменениям. Стойкость ЭЦП основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции по ГОСТ Р 34.11. Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО 2382-2 [1], ИСО/МЭК 9796 [2], серии ИСО/МЭК 14888 [3] - [5] и серии ИСО/МЭК 10118 [6] - [9]. Примечание. Основная часть стандарта дополнена тремя Приложениями: - А - дополнительные термины в области ЭЦП; - Б - описание контрольного примера; - В - перечень публикаций (библиография) в области ЭЦП. 1. Область применения Настоящий стандарт определяет схему электронной цифровой подписи (ЭЦП) (далее по тексту - цифровая подпись), процессы формирования и проверки цифровой подписи под заданным сообщением (документом), передаваемым по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения. Внедрение цифровой подписи на базе настоящего стандарта повышает, по сравнению с действующей схемой цифровой подписи, уровень защищенности передаваемых сообщений от подделок и искажений. Стандарт рекомендуется использовать в новых системах обработки информации различного назначения, а также при модернизации действующих систем. 2. Нормативные ссылки В настоящем стандарте использована ссылка на следующий стандарт: ГОСТ Р 34.11-94. Информационная технология. Криптографическая защита информации. Функции хэширования. 3. Определения и обозначения 3.1. Определения. В настоящем стандарте использованы следующие термины: 3.1.1. Дополнение (appendix): Строка бит, формируемая из цифровой подписи и произвольного текстового поля (ИСО/МЭК 14888-1 [3]). 3.1.2. Ключ подписи (signature key): Элемент секретных данных, специфичный для субъекта и используемый только данным субъектом в процессе формирования цифровой подписи (ИСО/МЭК 14888-1 [3]). 3.1.3. Ключ проверки (verification key): Элемент данных, математически связанный с ключом подписи и используемый проверяющей стороной в процессе проверки цифровой подписи (ИСО/МЭК 14888-1 [3]). 3.1.4. Параметр схемы ЭЦП (domain parameter): Элемент данных, общий для всех субъектов схемы цифровой подписи, известный или доступный всем этим субъектам (ИСО/МЭК 14888-1 [3]). 3.1.5. Подписанное сообщение (signed message): Набор элементов данных, состоящий из сообщения и дополнения, являющегося частью сообщения. 3.1.6. Последовательность псевдослучайных чисел (pseudo-random number sequence): Последовательность чисел, полученная в результате выполнения некоторого арифметического (вычислительного) процесса, используемая в конкретном случае вместо последовательности случайных чисел (ИСО 2382-2 [1]). 3.1.7. Последовательность случайных чисел (random number sequence): Последовательность чисел, каждое из которых не может быть предсказано (вычислено) только на основе знания предшествующих ему чисел данной последовательности (ИСО 2382-2 [1]). 3.1.8. Процесс проверки подписи (verification process): Процесс, в качестве исходных данных которого используются подписанное сообщение, ключ проверки и параметры схемы ЭЦП и результатом которого является заключение о правильности или ошибочности цифровой подписи (ИСО/МЭК 14888-1 [3]). 3.1.9. Процесс формирования подписи (signature process): Процесс, в качестве исходных данных которого используются сообщение, ключ подписи и параметры схемы ЭЦП, а в результате формируется цифровая подпись (ИСО/МЭК 14888-1 [3]). 3.1.10. Свидетельство (witness): Элемент данных, представляющий соответствующее доказательство достоверности (недостоверности) подписи проверяющей стороне (ИСО/МЭК 14888-1 [3]). 3.1.11. Случайное число (random number): Число, выбранное из определенного набора чисел таким образом, что каждое число из данного набора может быть выбрано с одинаковой вероятностью (ИСО 2382-2 [1]). 3.1.12. Сообщение (message): Строка бит ограниченной длины (ИСО/МЭК 9796 [2]). 3.1.13. Хэш-код (hash-code): Строка бит, являющаяся выходным результатом хэш-функции (ИСО/МЭК 14888-1 [3]). 3.1.14. Хэш-функция (hash-function): Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам: 1) по данному значению функции сложно вычислить исходные данные, отображенные в это значение; 2) для заданных исходных данных трудно найти другие исходные данные, отображаемые с тем же результатом; 3) трудно найти какую-либо пару исходных данных с одинаковым значением хэш-функции. Примечание. Применительно к области ЭЦП свойство 1 подразумевает, что по известной ЭЦП невозможно восстановить исходное сообщение; свойство 2 подразумевает, что для заданного подписанного сообщения трудно подобрать другое (фальсифицированное) сообщение, имеющее ту же ЭЦП, свойство 3 подразумевает, что трудно подобрать какую-либо пару сообщений, имеющих одну и ту же подпись. 3.1.15. [Электронная] цифровая подпись (digital signature): Строка бит, полученная в результате процесса формирования подписи. Данная строка имеет внутреннюю структуру, зависящую от конкретного механизма формирования подписи. Примечание. В настоящем стандарте в целях сохранения терминологической преемственности с действующими отечественными нормативными документами и опубликованными научно-техническими изданиями установлено, что термины "цифровая подпись" и "электронная цифровая подпись (ЭЦП)" являются синонимами. 3.2. Обозначения. В настоящем стандарте использованы следующие обозначения: V - множество всех двоичных векторов длиной 256 бит; 256 V - множество всех двоичных векторов произвольной бесконечность конечной длины; Z - множество всех целых чисел; р - простое число, р > 3; F - конечное простое поле, представляемое как множество из р р целых чисел {0, 1,..., р - 1}; b (mod p) - минимальное не отрицательное число, сравнимое с b по модулю р; М - сообщение пользователя, М принадлежит V ; бесконечность _ _ (h ||h ) - конкатенация (объединение) двух двоичных векторов; 1 2 а, b - коэффициенты эллиптической кривой; m - порядок группы точек эллиптической кривой; q - порядок подгруппы группы точек эллиптической кривой; О - нулевая точка эллиптической кривой; Р - точка эллиптической кривой порядка q; d - целое число - ключ подписи; Q - точка эллиптической кривой - ключ проверки; дзета - цифровая подпись под сообщением М. 4. Общие положения Общепризнанная схема (модель) цифровой подписи (см. 6 ИСО/МЭК 14888-1 [3]) охватывает три процесса: - генерация ключей (подписи и проверки); - формирование подписи; - проверка подписи. В настоящем стандарте процесс генерации ключей (подписи и проверки) не рассмотрен. Характеристики и способы реализации данного процесса определяются вовлеченными в него субъектами, которые устанавливают соответствующие параметры по взаимному согласованию. Механизм цифровой подписи определяется посредством реализации двух основных процессов (см. раздел 6): - формирование подписи (см. 6.1); - проверка подписи (см. 6.2). Цифровая подпись предназначена для аутентификации лица, подписавшего электронное сообщение. Кроме того, использование ЭЦП предоставляет возможность обеспечить следующие свойства при передаче в системе подписанного сообщения: - осуществить контроль целостности передаваемого подписанного сообщения; - доказательно подтвердить авторство лица, подписавшего сообщение; - защитить сообщение от возможной подделки. Схематическое представление подписанного сообщения показано на рисунке 1. --------- Дополнение -------- / -------------- ------------------------ - - -- |Сообщение М |-----|Цифровая подпись дзета|Текст -------------- ------------------------ - - -- Рисунок 1. Схема подписанного сообщения Поле "текст", показанное на данном рисунке и дополняющее поле "цифровая подпись", может, например, содержать идентификаторы субъекта, подписавшего сообщение, и/или метку времени. Установленная в настоящем стандарте схема цифровой подписи должна быть реализована с использованием операций группы точек эллиптической кривой, определенной над конечным простым полем, а также хэш-функции. Криптографическая стойкость данной схемы цифровой подписи основывается на сложности решения задачи дискретного логарифмирования в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции. Алгоритм вычисления хэш-функции установлен в ГОСТ Р 34.11. Параметры схемы цифровой подписи, необходимые для ее формирования и проверки, определены в 5.2. Стандарт не определяет процесс генерации параметров схемы цифровой подписи. Конкретный алгоритм (способ) реализации данного процесса определяется субъектами схемы цифровой подписи исходя из требований к аппаратно-программным средствам, реализующим электронный документооборот. Цифровая подпись, представленная в виде двоичного вектора длиной 512 бит, должна вычисляться с помощью определенного набора правил, изложенных в 6.1. Набор правил, позволяющих либо принять, либо отвергнуть цифровую подпись под полученным сообщением, установлен в 6.2. 5. Математические соглашения Для определения схемы цифровой подписи необходимо описать базовые математические объекты, используемые в процессах ее формирования и проверки. В данном разделе установлены основные математические определения и требования, накладываемые на параметры схемы цифровой подписи. Пусть задано простое число р > 3. Тогда эллиптической кривой Е, определенной над конечным простым полем F , называется множество пар p чисел (х, y), х, y принадлежат F , удовлетворяющих тождеству: p 2 3 y тождественно = x + ax + b (mod p), (1) 3 2 где a, b принадлежат F и 4а + 27b не сравнимо с нулем по модулю р. p Инвариантом эллиптической кривой называется величина J(E), удовлетворяющая тождеству: 3 4a J(E) тождественно = 1728 ---------- (mod p). (2) 3 2 4a + 27b Коэффициенты a, b эллиптической кривой Е, по известному инварианту J(E), определяются следующим образом: a тождественно = 3k (mod p), { (3) b тождественно = 2k (mod p), J(E) где k = ----------- (mod p), J(E) /= 0 или 1728. 1728 - J(E) Пары (х, y), удовлетворяющие тождеству (1), называются точками эллиптической кривой Е; х и y - соответственно х- и yкоординатами точки. Точки эллиптической кривой будем обозначать Q(x, y) или просто Q. Две точки эллиптической кривой равны, если равны их соответствующие х- и y-координаты. На множестве всех точек эллиптической кривой Е введем операцию сложения, которую будем обозначать знаком "+". Для двух произвольных точек Q (x , y ) и Q (x , y ) эллиптической кривой Е 1 1 1 2 2 2 рассмотрим несколько вариантов. Пусть координаты точек Q и Q удовлетворяют условию х /= х . 1 2 1 2 В этом случае их суммой будем называть точку Q (x , y ), 3 3 3 координаты которой определяются сравнениями: 2 x тождественно = лямбда - x - x (mod p), 3 1 2 { (4) y тождественно = лямбда(x - x ) - y (mod p), 3 1 3 1 y - y 2 1 где лямбда тождественно = ------- (mod p). x - x 2 1 Если выполнены равенства х = х и y = y /= 0, то определим 1 2 1 2 координаты точки Q следующим образом: 3 2 x тождественно = лямбда - 2x (mod p), 3 1 { (5) y тождественно = лямбда(x - x ) - y (mod p), 3 1 3 1 2 3x + a 1 где лямбда тождественно = ------- (mod p). 2y 1 В случае, когда выполнено условие х = x и 1 2 y тождественно = -y (mod p), сумму точек Q и Q будем называть 1 2 1 2 нулевой точкой О, не определяя ее х- и y-координаты. В этом случае точка Q называется отрицанием точки Q . Для нулевой точки О 2 1 выполнены равенства: Q + О = О + Q = Q, (6) где Q - произвольная точка эллиптической кривой Е. Относительно введенной операции сложения множество всех точек эллиптической кривой E, вместе с нулевой точкой, образуют конечную абелеву (коммутативную) группу порядка m, для которого выполнено неравенство: - - p + 1 - 2\/p <= m <= p + 1 + 2\/p. (7) Точка Q называется точкой кратности k или просто кратной точкой эллиптической кривой Е, если для некоторой точки Р выполнено равенство: Q = P + ... + P = kP. (8) \--- ---/ k 5.2. Параметры цифровой подписи. Параметрами схемы цифровой подписи являются: - простое число р - модуль эллиптической кривой, удовлетворяющее 255 неравенству р > 2 . Верхняя граница данного числа должна определяться при конкретной реализации схемы цифровой подписи; - эллиптическая кривая Е, задаваемая своим инвариантом J(E) или коэффициентами a, b принадлежит F ; p - целое число m - порядок группы точек эллиптической кривой Е; - простое число q - порядок циклической подгруппы группы точек эллиптической кривой Е, для которого выполнены следующие условия: m = nq, n принадлежит Z, n >= 1 { ; (9) 254 256 2 < q < 2 - точка Р /= О эллиптической кривой Е, с координатами (х , y ), удовлетворяющая равенству qР = О; p p - хэш-функция h(*):V ---> V , отображающая бесконечность 256 сообщения, представленные в виде двоичных векторов произвольной конечной длины, в двоичные вектора длины 256 бит. Хэш-функция определена в ГОСТ Р 34.11. Каждый пользователь схемы цифровой подписи должен обладать личными ключами: - ключом подписи - целым числом d, удовлетворяющим неравенству 0 < d < q; - ключом проверки - точкой эллиптической кривой Q с координатами (x , y ), удовлетворяющей равенству dP = Q. q q На приведенные выше параметры схемы цифровой подписи накладываются следующие требования: t - должно быть выполнено условие р /= 1 (mod q), для всех целых t = 1, 2,...В, где В удовлетворяет неравенству В >= 31; - должно быть выполнено неравенство m /= p; - инвариант кривой должен удовлетворять условию J(E) /= 0 или 1728. 5.3. Двоичные векторы. Для определения процессов формирования и проверки цифровой подписи необходимо установить соответствие между целыми числами и двоичными векторами длины 256 бит. Рассмотрим следующий двоичный вектор длиной 256 бит, в котором младшие биты расположены справа, а старшие - слева. - - h = (альфа ,..., альфа ), h принадлежит V , (10) 255 0 256 где альфа , i = 0,..., 255 равно либо 1, либо 0. Будем i считать, что число альфа принадлежит Z соответствует двоичному - вектору h, если выполнено равенство: 255 i альфа = SUM альфа 2 . (11) i=0 i - - Для двух двоичных векторов h и h , соответствующих целым 1 2 числам альфа и бета, определим операцию конкатенации (объединения) следующим образом. Пусть: - h = (альфа ,..., альфа ), 1 255 0 - (12) h = (бета ,..., бета ), 2 255 0 тогда их объединение имеет вид: - - h ||h = (альфа ,..., альфа , бета ,..., бета ) (13) 1 2 255 0 255 0 и представляет собой двоичный вектор длиной 512 бит, составленный из - - коэффициентов векторов h и h . 1 2 С другой стороны, приведенные формулы определяют способ разбиения - двоичного вектора h длиной 512 бит на два двоичных вектора длиной 256 бит, конкатенацией которых он является. 6. Основные процессы В данном разделе определены процессы формирования и проверки цифровой подписи под сообщением пользователя. Для реализации данных процессов необходимо, чтобы всем пользователям были известны параметры схемы цифровой подписи, удовлетворяющие требованиям 5.2. Кроме того, каждый пользователь должен иметь ключ подписи d и ключ проверки подписи Q(x , y ), которые также должны q q удовлетворять требованиям 5.2. 6.1. Формирование цифровой подписи. Для получения цифровой подписи под сообщением М принадлежит V необходимо выполнить следующие действия (шаги) по бесконечность алгоритму I. - Шаг 1 - вычислить хэш-код сообщения M:h = h(M). (14) Шаг 2 - вычислить целое число альфа, двоичным представлением - которого является вектор h, и определить: е тождественно = альфа (mod q). (15) Если е = 0, то определить е = 1. Шаг 3 - сгенерировать случайное (псевдослучайное) целое число k, удовлетворяющее неравенству: 0 < k < q. (16) Шаг 4 - вычислить точку эллиптической кривой С = kР и определить: r тождественно = x (mod q), (17) c где х - х-координата точки С. Если r = 0, то вернуться к шагу 3. c Шаг 5 - вычислить значение: s тождественно = (rd + ke)(mod q). (18) Если s = 0, то вернуться к шагу 3. - - Шаг 6 - вычислить двоичные векторы r и s, соответствующие r и s, - - и определить цифровую подпись дзета = (r||s) как конкатенацию двух двоичных векторов. Исходными данными этого процесса являются ключ подписи d и подписываемое сообщение М, а выходным результатом - цифровая подпись дзета. Схематическое представление процесса формирования цифровой подписи приведено на рисунке 2. -------------------------- | Исходные данные | | (сообщение М и ключ | | подписи d) | ------------------------------------------------------------------ | Процесс формирования | | | подписи \/ | | ----------------------------------------------- | | | Шаг 1 - вычисление хэш-функции | | | ----------------------------------------------- | | \/ | | ----------------------------------------------- | | | Шаг 2 - вычисление альфа и определение е | | | ----------------------------------------------- | | \/ | | ------------------------------------------------ | | | Шаг 3 - вычисление k |<--- | | ------------------------------------------------ | | | \/ | | | ------------------------------------------------ | | | |Шаг 4 - вычисление точки эллиптической кривой | | | | | С = kP, r тождественно = x (mod q) | | | | | c | | | | ------------------------------------------------ | | | \/ | | | ----------- Да | | | | r = 0 |---------------------| | | ----------- | | | Нет \/ | | | ----------------------------------------------- | | | | Шаг 5 - вычисление s | | | | ----------------------------------------------- | | | \/ | | | ----------- Да | | | | s = 0 |---------------------- | | ----------- | | Нет \/ | | ----------------------------------------------- | | | Шаг 6 - определение цифровой подписи дзета | | | ----------------------------------------------- | | \/ | ------------------------------------------------------------------ | Выходной результат | | (цифровая подпись) | -------------------------- Рисунок 2. Схема процесса формирования цифровой подписи 6.2. Проверка цифровой подписи. Для проверки цифровой подписи дзета под полученным сообщением М необходимо выполнить следующие действия (шаги) по алгоритму II. Шаг 1 - по полученной подписи дзета вычислить целые числа r и s. Если выполнены неравенства 0 < r < q, 0 < s < q, то перейти к следующему шагу. В противном случае подпись неверна. Шаг 2 - вычислить хэш-код полученного сообщения М: - h = h(M). (19) Шаг 3 - вычислить целое число альфа, двоичным представлением - которого является вектор h, и определить: e тождественно = альфа (mod q). (20) Если е = 0, то определить е = 1. -1 Шаг 4 - вычислить значение ню тождественно = е (mod q). (21) Шаг 5 - вычислить значения: z тождественно = s ню (mod q), 1 (22) z тождественно = -r ню (mod q). 2 Шаг 6 - вычислить точку эллиптической кривой С = z P + z Q и 1 2 определить: R тождественно = x (mod q), (23) c где х - x-координата точки С. c Шаг 7 - если выполнено равенство R = r, то подпись принимается, в противном случае подпись неверна. Исходными данными этого процесса являются подписанное сообщение М, цифровая подпись дзета и ключ проверки Q, а выходным результатом - свидетельство о достоверности или ошибочности данной подписи. Схематическое представление процесса проверки цифровой подписи приведено на рисунке 3. ---------------------------------------------------------------------------- | ------------------------------------ | | | Исходные данные (цифровая подпись| | | | дзета, полученное сообщение М и | | | | ключ проверки Q) | | | --------------------------------------------------- | | |Процесс проверки \/ | | | | подписи------------------------------- | | | | | Шаг 1 - вычисление r и s по | | | | | | полученной подписи дзета | | | | | ------------------------------- | | | | \/ | | | | ------------- Нет | | | | | 0 < r < q |-----------------|--->- | | | | 0 < s < q | Подпись неверна | | | | | ------------- | | | | | Да \/ | | | | | ------------------------------- | | | | | |Шаг 2 - вычисление хэш-функ- | | | | | | |ции полученного сообщения М | | | | | | ------------------------------- | | | | | \/ | | | | | ------------------------------- | | | | | | Шаг 3 - вычисление альфа и | | | | | | | определение е | | | | | | ------------------------------- | | | | | \/ | | | | | ------------------------------- | | | | | | Шаг 4 - вычисление ню | | | | | | ------------------------------- | | | | | | | | | | | \/ | | | | | ------------------------------- | | | | | | Шаг 5 - вычисление z и z | | | | | | | 1 2 | | | | | | ------------------------------- | | | | | \/ | | | | | ------------------------------- | | | | | |Шаг 6 - вычисление точки эл- | | | | | | |липтической кривой С = z P + | | | | | | | 1 | | | | | | |z Q и определение R | | | | | | | 2 | | | | | | ------------------------------- | | | | | \/ | | | | | -------------Нет | | | | | | R = r |----------------|--->| | | | ------------- Подпись неверна| | | | | Да \/ | | | | --------------------------------------------------- | | | | Выходной результат | | | | | (подпись верна) | | | | ------------------------- \/ | | --------------------------- | | |Выход из процесса | | | |ПРОверки с отрицательным | | | | результатом | | | --------------------------- | ---------------------------------------------------------------------------- Рисунок 3. Схема процесса проверки цифровой подписи Приложение А (справочное) ДОПОЛНИТЕЛЬНЫЕ ТЕРМИНЫ В ОБЛАСТИ ЭЦП В настоящем Приложении приведены дополнительные международные термины, применяемые в рассматриваемой и смежных областях. А.1. Заполнение (padding): Дополнение строки данных лишними битами (ИСО/МЭК 10118-1 [6]). А.2. Идентификационные данные (identification data): Последовательность элементов данных, включая отличительный идентификатор объекта, принадлежащая объекту и используемая для его обозначения (ИСО/МЭК 14888-1 [3]). А.3. Уравнение цифровой подписи (signature equation): Уравнение, определяемое функцией цифровой подписи (ИСО/МЭК 14888-1 [3]). А.4. Функция проверки (verification function): Функция процесса проверки, определяемая ключом проверки, выдающая в качестве результата вычисленное значение свидетельства о достоверности подписи (ИСО/МЭК 14888-1 [3]). А.5. Функция цифровой подписи (signature function): Функция в процессе формирования подписи, определяемая ключом подписи и параметрами схемы ЭЦП. Эта функция в качестве исходных данных получает часть исходных данных и, возможно, формирователь последовательности псевдослучайных чисел (рандомизатор), а в результате выдает вторую часть цифровой подписи. Приложение Б (справочное) КОНТРОЛЬНЫЙ ПРИМЕР Данное Приложение носит справочный характер и не является частью стандарта. Приводимые ниже значения параметров р, a, b, m, q, P, а также значения ключей подписи и проверки d и Q рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящем стандарте. Все числовые значения приведены в десятичной и шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления. Символ "\\" обозначает перенос числа на новую строку. Например, запись: 12345\ 67890 10 499602D2 16 представляет целое число 1234567890, соответственно, в десятичной и шестнадцатеричной системах счисления. Б.1. Параметры схемы цифровой подписи. Для формирования и проверки цифровой подписи должны быть использованы следующие параметры (см. 5.2). Б.1.1. Модуль эллиптической кривой. В данном примере параметру р присвоено следующее значение: р = 57896044618658097711785492504343953926\ 634992332820282019728792003956564821041 10 р = 8000000000000000000000000000000000000000000000000000000000000431 . 16 Б.1.2. Коэффициенты эллиптической кривой. В данном примере параметры а и b принимают следующие значения: а = 7 10 a = 7 16 b = 43308876546767276905765904595650931995\ 942111794451039583252968842033849580414 10 b = 5FBFF498AA938CE739B8E022FBAFEF40563F6E6A3472FC2A514C0CE9DAE23B7E . 16 Б.1.3. Порядок группы точек эллиптической кривой. В данном примере параметр m принимает следующее значение: m = 5789604461865809771178549250434395392\ 7082934583725450622380973592137631069619 10 m = 8000000000000000000000000000000150FE8A1892976154C59CFC193ACCF5B3 . 16 Б.1.4. Порядок циклической подгруппы группы точек эллиптической кривой. В данном примере параметр q принимает следующее значение: q = 5789604461865809771178549250434395392\ 7082934583725450622380973592137631069619 10 q = 8000000000000000000000000000000150FE8A1892976154C59CFC193ACCF5B3 . 16 Б.1.5. Коэффициенты точки эллиптической кривой. В данном примере координаты точки Р принимают следующие значения: х = 2 р 10 x = 2 р 16 y = 40189740565390375033354494229370597\ р 75635739389905545080690979365213431566280 10 y = 8E2A8A0E65147D4BD6316030E16D19\ p C85C97F0A9CA267122B96ABBCEA7E8FC8 . 16 Б.1.6. Ключ подписи. В данном примере считается, что пользователь обладает следующим ключом подписи d: d = 554411960653632461263556241303241831\ 96576709222340016572108097750006097525544 10 d = 7A929ADE789BB9BE10ED359DD39A72C\ 11B60961F49397EEE1D19CE9891EC3B28 . 16 Б.1.7. Ключ проверки. В данном примере считается, что пользователь обладает ключом проверки Q, координаты которого имеют следующие значения: х = 57520216126176808443631405023338071\ q 176630104906313632182896741342206604859403 10 x = 7F2B49E270DB6D90D8595BEC458B5\ q 0C58585BA1D4E9B788F6689DBD8E56FD80B 16 y = 17614944419213781543809391949654080\ q 031942662045363639260709847859438286763994 10 y = 26F1B489D6701DD185C8413A977B3\ q CBBAF64D1C593D26627DFFB101A87FF77DA . 16 Б.2. Процесс формирования цифровой подписи (алгоритм I). Пусть после выполнения шагов 1 - 3 по алгоритму I (6.1) были получены следующие числовые значения: е = 2079889367447645201713406156150827013\ 0637142515379653289952617252661468872421 10 е = 2DFBC1B372D89A1188C09C52E0EE\ C61FCE52032AB1022E8E67ECE6672B043EE5 16 k = 538541376773484637314038411479966192\ 1504003434302020712960838528893196233395 10 k = 77105C9B20BCD3122823C8CF6FCC\ 7B956DE33814E95B7FE64FED924594DCEAB3 . 16 При этом кратная точка С = kР имеет координаты: х = 297009809158179528743712049839382569\ c 90422752107994319651632687982059210933395 10 х = 41AA28D2F1AB148280CD9ED56FED\ c A41974053554A42767B83AD043FD39DC0493 16 y = 328425352786846634770946653225170845\ c 06804721032454543268132854556539274060910 10 y = 489C375A9941A3049E33B34361DD\ c 204172AD98C3E5916DE27695D22A61FAE46E . 16 Параметр r = х (mod q) принимает значение: c r = 297009809158179528743712049839382569\ 90422752107994319651632687982059210933395 10 r = 41AA28D2F1AB148280CD9ED56FED\ A41974053554A42767B83AD043FD39DC0493 . 16 Параметр s = (rd + ke) (mod q) принимает значение: s = 57497340027008465417892531001914703\ 8455227042649098563933718999175515839552 10 s = 1456C64BA4642A1653C235A98A60249BCD6D3F746B631DF928014F6C5BF9C40 . 16 Б.3. Процесс проверки цифровой подписи (алгоритм II). Пусть после выполнения шагов 1 - 3 по алгоритму II (6.2) было получено следующее числовое значение: е = 2079889367447645201713406156150827013\ 0637142515379653289952617252661468872421 10 е = 2DFBC1B372D89A1188C09C52E0EE\ С61FCE52032AB1022Е8Е67ЕСЕ6672В043ЕЕ5 . 16 -1 При этом параметр ню = e (mod q) принимает значение: ню = 176866836059344686773017138249002685\ 62746883080675496715288036572431145718978 10 ню = 271A4EE429F84EBC423E388964555BB\ 29D3BA53C7BF945E5FAC8F381706354C2 . 16 Параметры z = s ню (mod q) и z = -r ню (mod q) принимают 1 2 значения: z = 376991675009019385568410572935126561\ 1 08841345190491942619304532412743720999759 10 z = 5358F8FFB38F7C09ABC782A2DF2A\ 1 3927DA4077D07205F763682F3A76C9019B4F 16 z = 141719984273434721125159179695007657\ 2 6924665583897286211449993265333367109221 10 z = 3221B4FBBF6D101074EC14AFAC2D4F7\ 2 EFAC4CF9FEC1ED11BAE336D27D527665 . 16 Точка С = z P + z Q имеет координаты: 1 2 x = 2970098091581795287437120498393825699\ c 0422752107994319651632687982059210933395 10 x = 41AA28D2F1AB148280CD9ED56FED\ c A41974053554A42767B83AD043FD39DC0493 16 y = 3284253527868466347709466532251708450\ c 6804721032454543268132854556539274060910 10 y = 489C375A9941A3049E33B34361DD\ c 204172AD98C3E5916DE27695D22A61FAE46E . 16 Тогда параметр R = x (mod q) принимает значение: c R = 2970098091581795287437120498393825699\ 0422752107994319651632687982059210933395 10 R = 41AA28D2F1AB148280CD9ED56FED\ A41974053554A42767B83AD043FD39DC0493 . 16 Поскольку выполнено равенство R = r, то цифровая подпись принимается. Приложение В (справочное) БИБЛИОГРАФИЯ <*> -------------------------------- <*> Оригиналы международных стандартов ИСО/МЭК - во ВНИИКИ Госстандарта России. [1] ИСО 2382-2-76. Обработка данных. Словарь. Часть 2. Арифметические и логические операции [2] ИСО/МЭК 9796-91. Информационная технология. Методы защиты. Схема цифровой подписи с восстановлением сообщения [3] ИСО/МЭК 14888-1-98. Информационная технология. Методы защиты. Цифровые подписи с приложением. Часть 1. Общие положения [4] ИСО/МЭК 14888-2-99. Информационная технология. Методы защиты. Цифровые подписи с приложением. Часть 2. Механизмы на основе подтверждения подлинности [5] ИСО/МЭК 14888-3-99. Информационная технология. Методы защиты. Цифровые подписи с приложением. Часть 3. Механизмы на основе сертификата [6] ИСО/МЭК 10118-1-94. Информационная технология. Методы защиты. Хэш-функции. Часть 1. Общие положения [7] ИСО/МЭК 10118-2-94. Информационная технология. Методы защиты. Хэш-функции. Часть 2. Хэш-функции с использованием n-битного блочного алгоритма шифрации [8] ИСО/МЭК 10118-3-98. Информационная технология. Методы защиты. Хэш-функции. Часть 3. Десятичные хэш-функции [9] ИСО/МЭК 10118-4-98. Информационная технология. Методы защиты. Хэш-функции. Часть 4. Хэш-функции, использующие модульную арифметику |