---
title: "\"Р 1323565.1.062-2025. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Схема формирования и проверки кода проверки\""
number: "Р 1323565.1.062-2025"
issuer: "Федеральное агентство по техническому регулированию и метрологии"
status: действует
canonical: "https://bukva.ai/docs/shema-r-1323565-1-062-2025"
---

## "Р 1323565.1.062-2025. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Схема формирования и проверки кода проверки"

# "Р 1323565.1.062-2025. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Схема формирования и проверки кода проверки"

(утв. и введены в действие Приказом Росстандарта от 09.07.2025 N 725-ст)

> [!IMPORTANT]
> Документ [введен](#p100008) в действие с 01.09.2025.


<a id="p100001"></a>Утверждены и введены в действие
Приказом Федерального агентства
по техническому регулированию
и метрологии
от 9 июля 2025 г. N 725-ст

<a id="p100002"></a>**РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ**

<a id="p100003"></a>**ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ**

<a id="p100004"></a>**КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ**

<a id="p100005"></a>**СХЕМА ФОРМИРОВАНИЯ И ПРОВЕРКИ КОДА ПРОВЕРКИ**

<a id="p100006"></a>Р 1323565.1.062-2025

<a id="p100007"></a>ОКС 35.040

<a id="p100008"></a>Дата введения
1 сентября 2025 года


### <a id="p100009"></a>Предисловие


<a id="p100010"></a>1 РАЗРАБОТАНЫ Центром защиты информации и специальной связи ФСБ России
<a id="p100011"></a>2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
<a id="p100012"></a>3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 9 июля 2025 г. N 725-ст
<a id="p100013"></a>**4 ВВЕДЕНЫ ВПЕРВЫЕ**

<a id="p100014"></a>Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомления и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)


### <a id="p100015"></a>Введение


<a id="p100016"></a>Настоящие рекомендации содержат описание схемы формирования и проверки кода проверки, длина которого при аналогичном уровне стойкости меньше длины кода проверки, который может быть сформирован в соответствии со схемой электронной цифровой подписи, определенной в [ГОСТ 34.10](https://bukva.ai/docs/standart-gost-34-10-2018). Указанная схема реализуется с использованием операций в группе точек эллиптической кривой, определенной над конечным простым полем.
<a id="p100017"></a>Описываемая схема формирования и проверки кода проверки представляет собой модифицированный вариант схемы электронной цифровой подписи, предложенной К.П. Шнорром в [[1]](#p100268).
<a id="p100018"></a>Необходимость разработки настоящих рекомендаций вызвана потребностью в определении криптографического преобразования, позволяющего выявить фальсификацию кода идентификации при проверке кода проверки, сформированного с использованием кода идентификации. Криптографическая стойкость предлагаемой схемы основывается на предположении о вычислительной трудности задачи дискретного логарифмирования в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции, определенной в [ГОСТ 34.11](https://bukva.ai/docs/standart-gost-34-11-2018).


### <a id="p100019"></a>1 Область применения


<a id="p100020"></a>Настоящие рекомендации определяют криптографическое преобразование формирования кода проверки из кода идентификации, позволяющее выявить фальсификацию кода идентификации при проверке кода проверки.


### <a id="p100021"></a>2 Нормативные ссылки


<a id="p100022"></a>В настоящих рекомендациях использованы нормативные ссылки на следующие стандарты:
<a id="p100023"></a>[ГОСТ 34.10](https://bukva.ai/docs/standart-gost-34-10-2018) Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
<a id="p100024"></a>[ГОСТ 34.11](https://bukva.ai/docs/standart-gost-34-11-2018) Информационная технология. Криптографическая защита информации. Функция хэширования
<a id="p100025"></a>*Примечание* - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку.


### <a id="p100026"></a>3 Термины, определения и обозначения


<a id="p100027"></a>В настоящих рекомендациях применены следующие термины с соответствующими определениями.

#### <a id="p100028"></a>3.1 Термины и определения

<a id="p100029"></a>3.1.1 ключ формирования кода проверки: Элемент секретных данных, специфичный для субъекта и используемый только данным субъектом в процессе формирования кода проверки.
<a id="p100030"></a>3.1.2 ключ проверки кода проверки: Элемент данных, математически связанный с ключом формирования кода проверки и используемый проверяющей стороной в процессе проверки кода проверки.
<a id="p100031"></a>3.1.3 код маркировки: Уникальная последовательность символов, состоящая из кода идентификации и кода проверки.
<a id="p100032"></a>3.1.4 код идентификации: Последовательность символов, представляющая собой уникальный номер экземпляра товара.
<a id="p100033"></a>3.1.5 код проверки: Последовательность символов, сформированная в результате криптографического преобразования кода идентификации и позволяющая выявить фальсификацию кода идентификации.
<a id="p100034"></a>3.1.6 параметр схемы формирования и проверки кода проверки: Элемент данных, общий для всех субъектов схемы формирования и проверки кода проверки, известный или доступный всем этим субъектам.
<a id="p100035"></a>3.1.7 псевдослучайная последовательность: Последовательность, порожденная детерминированным устройством или программой, обладающая свойствами, близкими к свойствам типичных реализаций идеальной случайной последовательности.
<a id="p100036"></a>3.1.8 процесс формирования кода проверки: Процесс, в качестве исходных данных которого используются код идентификации, ключ формирования кода проверки и параметры схемы формирования и проверки кода проверки, а в результате формируется код проверки.
<a id="p100037"></a>3.1.9 процесс проверки кода проверки: Процесс, в качестве исходных данных которого используются код маркировки, ключ проверки кода проверки и параметры схемы формирования и проверки кода проверки, результатом которого является свидетельство о правильности или ошибочности кода проверки.
<a id="p100038"></a>3.1.10 свидетельство: Элемент данных, представляющий соответствующее доказательство достоверности (недостоверности) кода проверки проверяющей стороне.
<a id="p100039"></a>3.1.11 случайное число: Случайная величина, имеющая равновероятное распределение на заданном конечном алфавите.
<a id="p100040"></a>3.1.12

| <a id="p100041"></a><a id="p100042"></a>хэш-код: Строка бит, являющаяся выходным результатом хэш-функции.<br>[ГОСТ 34.11-2018, [пункт 3.1.5](https://bukva.ai/docs/standart-gost-34-11-2018#p100062)] |
| --- |

<a id="p100043"></a>3.1.13

| <a id="p100044"></a><a id="p100045"></a><a id="p100046"></a><a id="p100047"></a><a id="p100048"></a>хэш-функция: Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам:<br>1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение;<br>2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции;<br>3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение.<br>[ГОСТ 34.11-2018, [пункт 3.1.6](https://bukva.ai/docs/standart-gost-34-11-2018#p100064)] |
| --- |


#### <a id="p100049"></a>3.2 Обозначения

<a id="p100050"></a>В настоящих рекомендациях применены следующие обозначения:
<a id="p100051"></a>Z - множество целых чисел;
<a id="p100052"></a>Fp - конечное простое поле, представленное как множество из p целых чисел {0, 1, ... , p - 1};
<a id="p100053"></a>V* - множество всех двоичных векторов-строк конечной размерности (далее - строки), включая пустую строку;
<a id="p100054"></a>Vn - множество всех двоичных строк размерности n, где n - неотрицательное целое число;
<a id="p100055"></a> $N_{0}$ - множество всех неотрицательных целых чисел;
<a id="p100056"></a> $|\overline{h}|$ - число компонент (длина) строки $\overline{h} \in V^{*}$ (если $\overline{h}$ - пустая строка, то $|\overline{h}| = 0$ );
<a id="p100057"></a> $\overline{h_{1}}||\overline{h_{2}}$ - конкатенация строк $\overline{h_{1}}$ , $\overline{h_{2}} \in V^{*}$ , т.е. строка из $V_{|h_{1}| + |h_{2}|}$ , в которой подстрока с большими номерами компонент из $V_{|h_{1}|}$ совпадает со строкой $\overline{h_{1}}$ , а подстрока с меньшими номерами компонент из $V_{|h_{2}|}$ совпадает со строкой $\overline{h_{2}}$ ;
<a id="p100058"></a>b(mod p) - минимальное неотрицательное число, сравнимое с b по модулю p;
<a id="p100059"></a>I2BSl: $N_{0} \rightarrow V_{l}$ - биективное отображение, ставящее в соответствие целому числу $\alpha \in N_{0}$ , двоичная длина которого равна l<sub>0</sub>, l<sub>0</sub> <= l, его двоичное представление:
1) <a id="p100060"></a>если l0 = l и $\alpha = \sum_{i = 0}^{l - 1} \alpha_{i}2^{i}$ , где ${}_{\alpha_{i} \in}{_{0,1}}$ , i = 0, ... , l - 1, то $\overline{h} = (\alpha_{l - 1},...,\alpha_{0})$ , $\overline{h} \in V_{l}$ ;
2) <a id="p100061"></a>если l0 < l и $\alpha = \sum_{i = 0}^{l_{0} - 1} \alpha_{i}2^{i}$ , где ${}_{\alpha_{i} \in}{_{0,1}}$ , i = 0, ... , l0 - 1, то $\overline{h} = 0^{l - l_{0}}||(\alpha_{l_{0} - 1},...,\alpha_{0})$ , $\overline{h} \in V_{i}$ , $0^{l - l_{0}}$ - строка, состоящая из l - l0 нулей;
<a id="p100062"></a>BS2Il: $V_{l} \rightarrow N_{0}$ - отображение, обратное отображению I2BSl, т.е. $BS2I_{l} = I2BS_{l}^{- 1}$ ;
<a id="p100063"></a>MSBl: ${}^{V^{*}\} \cup _{i = 0il}^{{}^{l - 1}V \rightarrow V}$ - отображение, ставящее в соответствие строке $\alpha_{m - 1}||...||\alpha_{1}||\alpha_{0}$ , m >= l, строку $\alpha_{m - 1}||...||\alpha_{m - l + 1}||\alpha_{m - l}$ , ${}_{\alpha_{i} \in}{_{0,1}}$ i = 0, 1, ... , m - 1;
<a id="p100064"></a>LSBl: ${}^{V^{*}\} \cup _{i = 0il}^{{}^{l - 1}V \rightarrow V}$ - отображение, ставящее в соответствие строке $\alpha_{m - 1}||...||\alpha_{1}||\alpha_{0}$ , m >= l, строку $\alpha_{l - 1}||...||\alpha_{1}||\alpha_{0}$ , ${}_{\alpha_{1} \in}{_{0,1}}$ i = 0, 1, ... , m - 1;
<a id="p100065"></a>H512: $V^{*} \rightarrow V_{512}$ - хэш-функция, описанная в [ГОСТ 34.11](https://bukva.ai/docs/standart-gost-34-11-2018), с длиной хэш-кода 512 бит;
<a id="p100066"></a>H: V* Vl - отображение, представляющее собой композицию отображений H512 и MSBl, т.е. отображение вида MSBl(H512(·)), где l < 512.


### <a id="p100067"></a>4 Общие положения


<a id="p100068"></a>Схема (модель) формирования и проверки кода проверки охватывает следующие процессы:
- <a id="p100069"></a>процесс формирования кода проверки (см. [6.2](#p100101));
- <a id="p100070"></a>процесс проверки кода проверки (см. [6.3](#p100118)).
<a id="p100071"></a>В настоящих рекомендациях процесс генерации пар ключей формирования кода проверки и соответствующих ключей проверки кода проверки не рассмотрен. Характеристики и способы реализации данного процесса определяются вовлеченными в него субъектами, которые устанавливают соответствующие параметры по взаимному согласованию.
<a id="p100072"></a>Использование кода проверки предоставляет возможность обеспечить решение следующих задач криптографической защиты информации по отношению к коду идентификации:
- <a id="p100073"></a>обеспечение аутентификации источника данных,
- <a id="p100074"></a>обеспечение проверки целостности кода идентификации.
<a id="p100075"></a>Схематическое представление кода маркировки показано на [рисунке 1](#p100077).

<a id="p100076"></a> ![4 Общие положения](https://i.bukva.ai/NeLlUgCF/img_0.png) 

<a id="p100077"></a>Рисунок 1 - Схема кода маркировки

<a id="p100078"></a>Установленная в настоящих рекомендациях схема формирования и проверки кода проверки должна быть реализована с использованием операций группы точек эллиптической кривой, определенной над конечным простым полем, а также хэш-функции.
<a id="p100079"></a>Криптографическая стойкость данной схемы формирования и проверки кода проверки основывается на предположении о вычислительной трудности задачи дискретного логарифмирования в группе точек эллиптической кривой, а также на стойкости используемой хэш-функции по [ГОСТ 34.11](https://bukva.ai/docs/standart-gost-34-11-2018) с длиной хэш-кода 512 бит.
<a id="p100080"></a>Перечень параметров схемы формирования и проверки кода проверки, необходимых для его формирования и проверки, и требования к ним определены в [разделе 5](#p100082). Рекомендуемые значения параметров схемы формирования и проверки кода проверки приведены в [6.4](#p100136).
<a id="p100081"></a>Настоящие рекомендации не определяют процесс выработки параметров схемы формирования и проверки кода проверки. Конкретный алгоритм (способ) реализации данного процесса определяется исходя из требований по информационной безопасности.


### <a id="p100082"></a>5 Перечень параметров схемы формирования и проверки кода проверки


<a id="p100083"></a>В настоящем описании используются математические объекты, аналогичные математическим объектам, введенным в [ГОСТ 34.10](https://bukva.ai/docs/standart-gost-34-10-2018).
<a id="p100084"></a>Параметрами схемы формирования и проверки кода проверки являются:
- <a id="p100085"></a>простое число p - модуль эллиптической кривой, при этом 22l-1 < p < 22l, где l - параметр безопасности, l >= 85;
- <a id="p100086"></a>эллиптическая кривая E, определенная над конечным простым полем Fp, задаваемая коэффициентами a, $b \in F_{p}$ , при этом 4a3 + 27b2 не сравнимо с нулем по модулю p;
- <a id="p100087"></a>целое число m - порядок группы точек эллиптической кривой E;
- <a id="p100088"></a>простое число q - порядок циклической подгруппы группы точек эллиптической кривой E, для которого выполнены следующие условия:

<a id="p100089"></a> ![формула](https://i.bukva.ai/NeLlUgCF/img_1.png) (1)

- <a id="p100090"></a>точка P /= 0 эллиптической кривой E, с координатами (xp, yp), для которой справедливо qP = 0, где 0 - нулевая точка эллиптической кривой.
<a id="p100091"></a>К приведенным параметрам, по аналогии с [ГОСТ 34.10](https://bukva.ai/docs/standart-gost-34-10-2018), предъявляются следующие требования:
- <a id="p100092"></a>pt /= 1 (mod q), t = 1, 2, ..., t', где выбор t' осуществляется из соображений обеспечения уровня стойкости схемы и зависит от размера параметра безопасности;
- <a id="p100093"></a>m /= p;
- <a id="p100094"></a>J(E) /= 0, J(E) /= 1728, где $J(E) = 1728 \frac{4a^{3}}{4a^{3} + 27b^{2}} (modp)$ .


### <a id="p100095"></a>6 Основные процессы



#### <a id="p100096"></a>6.1 Общие сведения

<a id="p100097"></a>Выбирается параметр безопасности l, в соответствии с которым формируется эллиптическая кривая, параметры которой, в частности, параметр q, должны удовлетворять требованиям, указанным в [разделе 5](#p100082). Параметр l выбирается в зависимости от требований по информационной безопасности. Рекомендуемые значения параметров схемы формирования и проверки кода проверки определены в [6.4](#p100136).
<a id="p100098"></a>Каждому коду идентификации или набору кодов идентификации должны соответствовать:
- <a id="p100099"></a>ключ формирования кода проверки d, который случайно выбирается из множества {1, 2, ..., q - 1};
- <a id="p100100"></a>ключ проверки кода проверки Q, вычисленный по правилу Q = dP.

#### <a id="p100101"></a>6.2 Процесс формирования кода проверки

<a id="p100102"></a>Для получения кода проверки для кода идентификации $M \in V^{*}$ необходимо выполнить следующие действия.
<a id="p100103"></a>Шаг 1 - выработать (псевдо)случайное число ${}_{k \in}{_{1,2,...,q - 1}}$ .
<a id="p100104"></a>Шаг 2 - вычислить C = kP.
<a id="p100105"></a>Шаг 3 - вычислить r = xC(mod q), где xC - x-координата точки C. Если r = 0, то вернуться на [шаг 1](#p100103).
<a id="p100106"></a>Шаг 4 - вычислить $\overline{r} = I2BS_{2l}(r)$ .
<a id="p100107"></a>Шаг 5 - вычислить x'Q = xQ(mod q), где xQ - x-координата точки Q.
<a id="p100108"></a>Шаг 6 - вычислить $\overline{h} = I2BS_{2l}(x'_{Q})$ .
<a id="p100109"></a>Шаг 7 - вычислить $\overline{s_{0}} = H(\overline{r}||\overline{h}||M)$ .
<a id="p100110"></a>Шаг 8 - вычислить целое число $s_{0} = BS2I_{l}(\overline{s_{0}})$ . Если s0 = 0, то вернуться на [шаг 1](#p100103).
<a id="p100111"></a>Шаг 9 - вычислить целое число s1 = (k + s0d)(mod q). Если s1 = 0, то вернуться на [шаг 1](#p100103).
<a id="p100112"></a>Шаг 10 - вычислить $\overline{s_{1}} = I2BS_{2l}(s_{1})$ .
<a id="p100113"></a>Шаг 11 - определить код проверки $\sigma$ как конкатенацию векторов $(\overline{s_{0}}||\overline{s_{1}})$ .
<a id="p100114"></a>Исходными данными этого процесса являются ключ формирования кода проверки d, ключ проверки кода проверки Q и код идентификации M, а выходным результатом - код проверки $\sigma$ .
<a id="p100115"></a>Схема формирования кода проверки приведена на [рисунке 2](#p100117).

<a id="p100116"></a> ![6.2 Процесс формирования кода проверки](https://i.bukva.ai/NeLlUgCF/img_2.png) 

<a id="p100117"></a>Рисунок 2 - Процесс формирования кода проверки


#### <a id="p100118"></a>6.3 Процесс проверки кода проверки

<a id="p100119"></a>Для проверки кода проверки $\sigma = (\overline{s_{0}}||\overline{s_{1}}) \in V_{3l}$ для кода идентификации $M \in V^{*}$ необходимо выполнить следующие действия.
<a id="p100120"></a>Шаг 1 - выделить строки $\overline{s_{0}} = MSB_{l}(\sigma)$ и $\overline{s_{1}} = LSB_{2l}(\sigma)$ из кода проверки $\sigma$ , где $\overline{s_{0}} \in V_{1}$ и $\overline{s_{1}} \in V_{2l}$ .
<a id="p100121"></a>Шаг 2 - вычислить $s_{0} = BS2I_{l}(\overline{s_{0}})$ . Если выполнено неравенство s0 > 0, то перейти к [следующему шагу](#p100122). В противном случае, код проверки не принимается.
<a id="p100122"></a>Шаг 3 - вычислить $s_{1} = BS2I_{2l}(\overline{s_{1}})$ . Если выполнены неравенства 0 < s1 < q, то перейти к [следующему шагу](#p100123). В противном случае, код проверки не принимается.
<a id="p100123"></a>Шаг 4 - вычислить C' = s1P - s0Q. Если C' /= 0, то перейти к [следующему шагу](#p100124). В противном случае код проверки не принимается.
<a id="p100124"></a>Шаг 5 - определить целое число r = xC'(mod q), где xC'-x - x-координата точки C'. Если выполнено неравенство r > 0, то перейти к [следующему шагу](#p100125). В противном случае, код проверки не принимается.
<a id="p100125"></a>Шаг 6 - вычислить $\overline{r} = I2BS_{2l}(r)$ .
<a id="p100126"></a>Шаг 7 - вычислить x'Q = xQ (mod q), где xQ - x-координата точки Q.
<a id="p100127"></a>Шаг 8 - вычислить $\overline{h} = I2BS_{2l}(x\prime_{Q})$ .
<a id="p100128"></a>Шаг 9 - вычислить $\overline{s}'_{0} = H(\overline{r}||\overline{h}||M)$ .
<a id="p100129"></a>Шаг 10 - проверить выполнение равенства $\overline{s}'_{0} = \overline{s_{0}}$ ;
<a id="p100130"></a>а) если равенство выполняется, то код проверки принимается;
<a id="p100131"></a>б) если равенство не выполняется, то код проверки не принимается.
<a id="p100132"></a>Исходными данными этого процесса являются код идентификации M, код проверки $\sigma$ и ключ проверки кода проверки Q, а выходным результатом является элемент данных, представляющий доказательство достоверности или недостоверности кода проверки проверяющей стороне (свидетельство).
<a id="p100133"></a>Схема проверки кода проверки приведена на [рисунке 3](#p100135).

<a id="p100134"></a> ![6.3 Процесс проверки кода проверки](https://i.bukva.ai/NeLlUgCF/img_3.png) 

<a id="p100135"></a>Рисунок 3 - Процесс проверки кода проверки


#### <a id="p100136"></a>6.4 Рекомендуемые значения параметров схемы формирования и проверки кода проверки

<a id="p100137"></a>Для формирования кода проверки длины 255 бит (параметр безопасности l = 85) рекомендуется использовать следующие значения параметров схемы формирования и проверки кода проверки (все числовые значения приведены в шестнадцатеричной и десятичной системах счисления, порядок обозначения которых определен в [приложении А](#p100159)):
<a id="p100138"></a>Модуль эллиптической кривой:
<a id="p100139"></a>p = 3fffffffffffffffff00000000000000000000002ef16
<a id="p100140"></a>p = 149657767662684458823930561810124558272617822080279910
<a id="p100141"></a>Коэффициенты эллиптической кривой:
<a id="p100142"></a>a = 3fffffffffffffffff00000000000000000000002ec16
<a id="p100143"></a>a = 149657767662684458823930561810124558272617822080279610
<a id="p100144"></a>b = 1f14b1241bc62e5eac1d602517c6eea1480788823ae16
<a id="p100145"></a>b = 72679489520108724054932649990100019445157094858027010
<a id="p100146"></a>Порядок группы точек эллиптической кривой:
<a id="p100147"></a>m = 3ffffffffffffffffeffff160d7625a5e8672f9784916
<a id="p100148"></a>m = 149657767662684458823930560042467860791896926279892110
<a id="p100149"></a>Порядок циклической подгруппы группы точек эллиптической кривой:
<a id="p100150"></a>q = 3ffffffffffffffffeffff160d7625a5e8672f9784916
<a id="p100151"></a>q = 149657767662684458823930560042467860791896926279892110
<a id="p100152"></a>Координаты точки эллиптической кривой P:
<a id="p100153"></a>xP = 31ddd8b0f8cf15d9fef8c58a8fd24a2e060ba2e42bd16
<a id="p100154"></a>xp = 116608159307130894051961819589168015068595893031801310
<a id="p100155"></a>yP = 20531a4d0073d7d37ea314e76ad14caff9a9c0b072216
<a id="p100156"></a>yp = 75587976249187891932370294073714948801933617470032210
<a id="p100157"></a>Описание процедуры выработки рекомендованных значений параметров схемы формирования и проверки кода проверки приведено в [приложении Б](#p100248).





<a id="p100158"></a>Приложение А
(справочное)

<a id="p100159"></a>**КОНТРОЛЬНЫЙ ПРИМЕР**

<a id="p100160"></a>А.1 Общие сведения
<a id="p100161"></a>Приводимые ниже значения ключей формирования кода проверки и проверки кода проверки d и Q, а также иные параметры могут быть использованы для проверки корректной работы конкретной реализации схемы формирования и проверки кода проверки, описанной в настоящих рекомендациях.
<a id="p100162"></a>Целые неотрицательные числа приводятся в десятичных записях с нижними индексами 10, а двоичные числа - в шестнадцатеричных записях с нижними индексами 16. Символ "\\" обозначает перенос числа на новую строку. Например, записи

<a id="p100163"></a>12345\\
6789010
499602d216

<a id="p100164"></a>представляют целое число 1234567890 в десятичной и шестнадцатеричной системах счисления соответственно.
<a id="p100165"></a>Двоичные строки представлены в шестнадцатеричной системе счисления.
<a id="p100166"></a>А.2 Параметры схемы формирования и проверки кода проверки
<a id="p100167"></a>В данном примере используются параметры схемы формирования и проверки кода проверки, определенные в [6.4](#p100136).
<a id="p100168"></a>А.2.1 Сообщение M
<a id="p100169"></a>В данном примере для формирования кода проверки и его проверки используется следующее сообщение M (код идентификации):
<a id="p100170"></a>M = fbe2e5f0eee3c820fbeafaebef20fffbf0e1e0f0f520e0ed20e8ece0ebe5f0f2f120fff0eeec\\
<a id="p100171"></a>0f2f120fff0eeec20f120faf2fee5e2202ce8f6f3ede220e<sub>8</sub>e6eee1e8f0f2d1202ce8f0f2e5e220e5d116
<a id="p100172"></a>M = 2433560348790683595942386271312251858560436724123772656834669\\
<a id="p100173"></a>38824584982360245413570902683278421647314442981930883111995087827166566924466822\\
<a id="p100174"></a>07836864328513515134102121171502510
<a id="p100175"></a>А.2.2 Ключ формирования кода проверки и ключ проверки кода проверки
<a id="p100176"></a>В данном примере для формирования кода проверки и его проверки используются ключ формирования кода проверки d и ключ проверки кода проверки Q (приведены x-координата и y-координата точки Q), которые определены ниже:
<a id="p100177"></a>d = 27fcd195b33e248a<sub>6</sub>cf091f2277919f8b14e5b2b16416
<a id="p100178"></a>d = 93507045482596901835905549981906765071901218116029210
<a id="p100179"></a>xQ = 02c60321891a3f569fb031721e80cb85d<sub>6</sub>a76b3a364916
<a id="p100180"></a>xQ = 103768403734515980028497766198178594629243150442247310
<a id="p100181"></a>yQ = 031<sub>1d</sub>41c245c4861c00df3beef93d00511ab6956b95f16
<a id="p100182"></a>yQ = 114848971893648348689039303862117758560993923555158310
<a id="p100183"></a>А.3 Процесс формирования кода проверки
<a id="p100184"></a>После выполнения [шагов 1](#p100103) - [11 по 6.2](#p100113) были получены следующие значения:
<a id="p100185"></a>[Шаг 1](#p100103). Выработано (псевдо)случайное число ${}_{k \in}{_{1,2,...,q - 1}}$ .
<a id="p100186"></a>k = 85496315899846694378024401846770554794294755143978410
<a id="p100187"></a>[Шаг 2](#p100104). Вычислено C = kP с координатами:
<a id="p100188"></a>xC = 83892182428381763831030612702665991585538120529368510
<a id="p100189"></a>yC = 56387054170243391978656773622580720061714744272511610
<a id="p100190"></a>[Шаг 3](#p100105). Вычислено r = xc(mod q), где xC - x-координата точки C:
<a id="p100191"></a>r = 83892182428381763831030612702665991585538120529368510
<a id="p100192"></a>[Шаг 4](#p100106). Вычисление $\overline{r} = I2BS_{2l}(r)$ :
<a id="p100193"></a> $\overline{r} = 023e037ba65be36f40cb2bde10757ffc6d04180b1a75_{16}$ 
<a id="p100194"></a>[Шаг 5](#p100107). Вычислено x'Q = xQ(mod q), где xQ - x-координата точки Q:
<a id="p100195"></a>x'Q = 103768403734515980028497766198178594629243150442247310
<a id="p100196"></a>[Шаг 6](#p100108). Вычислено $\overline{h} = I2BS_{2l}(x'_{Q})$ :
<a id="p100197"></a> $\overline{h} = 02c60321891a3f569fb031721e80cb85d6a76b3a3649_{16}$ 
<a id="p100198"></a>[Шаг 7](#p100109). Произведена конкатенация $\overline{r}||\overline{h}||M$ :
<a id="p100199"></a> ![формула](https://i.bukva.ai/NeLlUgCF/img_4.png) 
<a id="p100200"></a>Вычисление $\overline{s_{0}} = H(\overline{r}||\overline{h}||M) = MSB_{l}(H_{512}(\overline{r}||\overline{h}||M))$ :
<a id="p100201"></a> $\overline{s_{0}} = 02e4c0e05788f98518a68a_{16}$ 
<a id="p100202"></a>[Шаг 8](#p100110). Вычислено $s_{0} = BS2I_{l}(\overline{s_{0}})$ :
<a id="p100203"></a>s0 = 349810913772568242294951410
<a id="p100204"></a>[Шаг 9](#p100111). Вычислено s1 = (k + s0d)(mod q):
<a id="p100205"></a>s<sub>1</sub> = 83734158847884807411274133400016652793576604169008110
<a id="p100206"></a>[Шаг 10](#p100112). Вычислено $\overline{s_{1}} = I2BS_{2l}(s_{1})$ :
<a id="p100207"></a> $\overline{s_{1}} = 023ceeaf6cf59dc81661e7b4b6cb673b40fa57fb7fe1_{16}$ 
<a id="p100208"></a>[Шаг 11](#p100113). Определен код проверки $\sigma$ как конкатенация векторов $(\overline{s_{0}}||\overline{s_{1}})$ :
<a id="p100209"></a> $\sigma = 0b9303815e23e614629a2a3ceeaf6cf59dc81661e7b4b6cb673b40fa57fb7fe1_{16}$ 
<a id="p100210"></a>А.4 Процесс проверки кода проверки
<a id="p100211"></a>Пусть после выполнения [шагов 1](#p100120) - [10 по 6.3](#p100129) были получены следующие числовые значения:
<a id="p100212"></a>[Шаг 1](#p100120). Выделены строки $\overline{s_{0}} = MSB_{l}(\sigma)$ и $\overline{s_{1}} = LSB_{2l}(\sigma)$ :
<a id="p100213"></a> $\overline{s_{0}} = 02e4c0e05788f98518a68a_{16}$ 
<a id="p100214"></a> $\overline{s_{1}} = 023ceeaf6cf59dc81661e7b4b6cb673b40fa57fb7fe1_{16}$ 
<a id="p100215"></a>[Шаг 2](#p100121). Вычислено $s_{0} = BS2I_{l}(\overline{s_{0}})$ :
<a id="p100216"></a>s0 = 349810913772568242294951410
<a id="p100217"></a>[Шаг 3](#p100122). Вычислено $s_{1} = BS2I_{2l}(\overline{s_{1}})$ :
<a id="p100218"></a>s1 = 83734158847884807411274133400016652793576604169008110
<a id="p100219"></a>[Шаг 4](#p100123). Вычислено C' = s1P - s0Q. Далее приведем пошаговое вычисление координат точки C'. Точка s1P имеет координаты:
<a id="p100220"></a> $x_{s_{1}P} = 827112205696313783789925481884565970890942820725415_{10}$ 
<a id="p100221"></a> $y_{s_{1}P} = 216375601503505061466566583559484089568457507988052_{10}$ 
<a id="p100222"></a>Точка s0Q имеет координаты:
<a id="p100223"></a>xs<sub>0</sub>Q = 59069164408719304573685693928611271794192658099237110
<a id="p100224"></a>ys<sub>0</sub>Q = 149534216613495419303039459129855050704642563831437910
<a id="p100225"></a>Точка - s0Q имеет координаты:
<a id="p100226"></a> $x_{- s_{0}Q} = 590691644087193045736856939286112717941926580992371_{10}$ 
<a id="p100227"></a> $y_{- s_{0}Q} = 1235510491890395208911026802695075679752582488420_{10}$ 
<a id="p100228"></a>Точка C' имеет координаты:
<a id="p100229"></a>xC' = 83892182428381763831030612702665991585538120529368510
<a id="p100230"></a>yC' = 56387054170243391978656773622580720061714744272511610
<a id="p100231"></a>[Шаг 5](#p100124). Вычислено r = xC'(mod q):
<a id="p100232"></a>r = 83892182428381763831030612702665991585538120529368510
<a id="p100233"></a>[Шаг 6](#p100125). Вычислено $\overline{r} = I2BS_{2l}(r)$ :
<a id="p100234"></a> $\overline{r} = 023e037ba65be36f40cb2bde10757ffc6d04180b1a75_{16}$ 
<a id="p100235"></a>[Шаг 7](#p100126). Вычислено x'Q = xQ(mod q):
<a id="p100236"></a>x'Q = 103768403734515980028497766198178594629243150442247310
<a id="p100237"></a>[Шаг 8](#p100127). Вычислено $\overline{h} = I2BS_{2l}(x_{Q}\prime)$ :
<a id="p100238"></a> $\overline{h} = 02c60321891a3f569fb031721e80cb85d6a76b3a3649_{16}$ 
<a id="p100239"></a>[Шаг 9](#p100128). Произведена конкатенация $\overline{r}||\overline{h}||M$ :
<a id="p100240"></a> ![формула](https://i.bukva.ai/NeLlUgCF/img_5.png) 
<a id="p100241"></a>Вычислено $H_{512}(\overline{r}||\overline{h}||M)$ :
<a id="p100242"></a> ![формула](https://i.bukva.ai/NeLlUgCF/img_6.png) 
<a id="p100243"></a>Вычислено $\overline{s}'_{0} = H(\overline{r}||\overline{h}||M) = MSB_{l}(H_{512}(\overline{r}||\overline{h}||M))$ :
<a id="p100244"></a> $\overline{s}'_{0} = 02e4c0e05788f98518a68a_{16}$ 
<a id="p100245"></a>[Шаг 10](#p100129). Проверено выполнение равенства $\overline{s}'_{0} = \overline{s_{0}}$ .
<a id="p100246"></a>Поскольку выполнено равенство $\overline{s}'_{0} = \overline{s_{0}}$ , то код проверки принимается.





<a id="p100247"></a>Приложение Б
(справочное)

<a id="p100248"></a>**ВЫРАБОТКА РЕКОМЕНДОВАННЫХ ЗНАЧЕНИЙ ПАРАМЕТРОВ**
**СХЕМЫ ФОРМИРОВАНИЯ И ПРОВЕРКИ КОДА ПРОВЕРКИ**

<a id="p100249"></a>Выработка рекомендованных значений параметров схемы формирования и проверки кода проверки, приведенных в [6.4](#p100136), осуществлялась псевдослучайным образом с использованием алгоритма (см. [[2]](#p100270)), а именно:
1. <a id="p100250"></a>Простое число p длины 170 бит (длины 2l, где l = 85) определено модулем эллиптической кривой и принимает значение:

<a id="p100251"></a>p = 3fffffffffffffffff00000000000000000000002ef16,

<a id="p100252"></a>p = 149657767662684458823930561810124558272617822080279910.

2. <a id="p100253"></a>Коэффициент эллиптической кривой a = -3(mod p) и принимает значение:

<a id="p100254"></a>a = 149657767662684458823930561810124558272617822080279610.

3. <a id="p100255"></a>Коэффициент эллиптической кривой b вычисляется как решение сравнения $b^{2} \equiv \frac{a^{3}}{\kappa} (modp)$ и принимает значение:

<a id="p100256"></a>b = 72679489520108724054932649990100019445157094858027010,

<a id="p100257"></a>где число $\kappa$ вычисляется по правилу $\kappa = w^{*}(modp)$ и принимает значение:

<a id="p100258"></a> $\kappa = 1248643653760573497156290147000575489471201915613_{10}$ ,

<a id="p100259"></a>где число w* вычисляется по правилу w* = BS2I161(w') и принимает значение:

<a id="p100260"></a>w* = 124864365376057349715629014700057548947120191561310,

<a id="p100261"></a>где число w' вычисляется по правилу w' = LBS161(w) и принимает значение:

<a id="p100262"></a>w' = dab71e2ef6d1a1284ed6973612f9d0b4d6d7b2dd16,

<a id="p100263"></a>где число w вычисляется по правилу w = H512(W) и принимает значение:

<a id="p100264"></a> ![формула](https://i.bukva.ai/NeLlUgCF/img_7.png) 

<a id="p100265"></a>где число W принимает значение:

<a id="p100266"></a> ![формула](https://i.bukva.ai/NeLlUgCF/img_8.png) 






## <a id="p100267"></a>БИБЛИОГРАФИЯ



<table>
<colgroup><col width="6%"><col width="29%"><col width="65%"></colgroup>
<tr><td><a id="p100268"></a>[1]</td><td colspan="2"><a id="p100269"></a>C.P. Schnorr. Efficient identification and signatures for smart cards. In G. Brassard, editor, Advances in Cryptology - CRYPTO' 89 Proceedings, pages 239 - 252, New York, NY, 1990. Springer New York</td></tr>
<tr><td><a id="p100270"></a>[2]</td><td><a id="p100271"></a>ИСО/МЭК 15946-5:2022</td><td><a id="p100272"></a>Информационная технология. Методы и средства обеспечения безопасности. Криптографические методы на основе эллиптических кривых. Часть 5. Построение эллиптических кривых (Information security - Cryptographic techniques based on elliptic curves - Part 5: Elliptic curve generation)</td></tr>
</table>







<table>
<colgroup><col width="50%"><col width="50%"></colgroup>
<tr><td><a id="p100273"></a>УДК 681.3.06:006.354</td><td><a id="p100274"></a>ОКС 35.040</td></tr>
<tr><td colspan="2"><a id="p100275"></a>Ключевые слова: коды идентификации, коды проверки, защита информации, формирование кода проверки, проверка кода проверки</td></tr>
</table>




<a id="p100276"></a>

---
