1bign96.h(3)                Library Functions Manual                bign96.h(3)
2
3
4

NAME

6       bign96.h - Подпись Bign уровня 96.
7
8

SYNOPSIS

10       #include 'bee2/crypto/bign.h'
11
12
13   Функции
14       err_t bign96StdParams (bign_params *params, const char *name)
15           Загрузка стандартных долговременных параметров
16       err_t bign96ValParams (const bign_params *params)
17           Проверка долговременных параметров
18       err_t bign96GenKeypair (octet privkey[24], octet pubkey[48], const
19           bign_params *params, gen_i rng, void *rng_state)
20           Генерация пары ключей
21       err_t bign96ValKeypair (const bign_params *params, const octet
22           privkey[24], const octet pubkey[48])
23           Проверка пары ключей
24       err_t bign96ValPubkey (const bign_params *params, const octet
25           pubkey[48])
26           Проверка открытого ключа
27       err_t bign96CalcPubkey (octet pubkey[48], const bign_params *params,
28           const octet privkey[24])
29           Построение открытого ключа по личному
30       err_t bign96Sign (octet sig[34], const bign_params *params, const octet
31           oid_der[], size_t oid_len, const octet hash[24], const octet
32           privkey[24], gen_i rng, void *rng_state)
33           Выработка ЭЦП
34       err_t bign96Sign2 (octet sig[34], const bign_params *params, const
35           octet oid_der[], size_t oid_len, const octet hash[24], const octet
36           privkey[24], const void *t, size_t t_len)
37           Детерминированная выработка ЭЦП
38       err_t bign96Verify (const bign_params *params, const octet oid_der[],
39           size_t oid_len, const octet hash[24], const octet sig[34], const
40           octet pubkey[48])
41           Проверка ЭЦП
42

Подробное описание

44       Подпись Bign96 -- это подпись Bign при снижении уровня стойкости до l =
45       96 и следующих корректировках: 1) уменьшается длина s0, первой часть
46       подписи: с 96 битов до 80; 2) в детерминированном режиме выработки
47       подписи (функция bign96Sign2) для построения одноразового личного ключа
48       вместо алгоритма belt-wblock используется алгоритм belt-32block
49       (шифрование полутора блоков). Последний алгоритм определен в СТБ
50       34.101.31-2020 как вспомогательный для алгоритма belt-fmt.
51
52       Повторяются соглашения и интерфейсы модуля bee2/crypto/bign.
53
54       Ожидается [ERR_BAD_INPUT]
55           Все входные указатели корректны.
56

Функции

58   err_t bign96CalcPubkey (octet pubkey[48], const bign_params * params, const
59       octet privkey[24])
60       При долговременных параметрах params по личному ключу privkey строится
61       открытый ключ pubkey.
62
63       Ожидается [ERR_BAD_PARAMS]
64           Параметры params корректны.
65
66       Ожидается [ERR_BAD_PRIVKEY]
67           Личный ключ privkey корректен.
68
69       Возвращает
70           ERR_OK, если открытый ключ успешно построен, и код ошибки в
71           противном случае.
72
73       Аргументы
74           pubkey открытый ключ
75           params долговременные параметры
76           privkey личный ключ
77
78   err_t bign96GenKeypair (octet privkey[24], octet pubkey[48], const
79       bign_params * params, gen_i rng, void * rng_state)
80       При долговременных параметрах params генерируются личный privkey и
81       открытый pubkey ключи. При генерации используется генератор rng и его
82       состояние rng_state.
83
84       Ожидается [ERR_BAD_PARAMS]
85           Параметры params корректны.
86
87       Ожидается [ERR_BAD_RNG]
88           Генератор rng (с состоянием rng_state) корректен.
89
90       Ожидается
91           Используется криптографически стойкий генератор rng.
92
93       Возвращает
94           ERR_OK, если ключи успешно сгенерированы, и код ошибки в противном
95           случае.
96
97       Аргументы
98           privkey личный ключ
99           pubkey открытый ключ
100           params долговременные параметры
101           rng генератор случайных чисел
102           rng_state [in/out] состояние генератора
103
104   err_t bign96Sign (octet sig[34], const bign_params * params, const octet
105       oid_der[], size_t oid_len, const octet hash[24], const octet
106       privkey[24], gen_i rng, void * rng_state)
107       Вырабатывается подпись sig сообщения с хэш-значением hash, полученном с
108       помощью алгоритма с идентификатором [oid_len]oid_der, заданным
109       DER-кодом. Подпись вырабатывается на личном ключе privkey. При
110       выработке ЭЦП используются долговременные параметры params и генератор
111       rng с состоянием rng_state.
112
113       Ожидается [ERR_BAD_PARAMS]
114           Параметры params корректны.
115
116       Ожидается [ERR_BAD_OID]
117           Идентификатор oid_der корректен.
118
119       Ожидается [ERR_BAD_INPUT]
120           Буферы sig и hash не пересекаются.
121
122       Ожидается [ERR_BAD_PRIVKEY]
123           Личный ключ privkey корректен.
124
125       Ожидается [ERR_BAD_RNG]
126           Генератор rng (с состоянием rng_state) корректен.
127
128       Ожидается
129           Генератор rng является криптографически стойким.
130
131       Возвращает
132           ERR_OK, если подпись выработана, и код ошибки в противном случае.
133
134       Аргументы
135           sig подпись
136           params долговременные параметры
137           oid_der идентификатор хэш-алгоритма
138           oid_len длина oid_der в октетах
139           hash хэш-значение
140           privkey личный ключ
141           rng генератор случайных чисел
142           rng_state [in/out] состояние генератора
143
144   err_t bign96Sign2 (octet sig[34], const bign_params * params, const octet
145       oid_der[], size_t oid_len, const octet hash[24], const octet
146       privkey[24], const void * t, size_t t_len)
147       Вырабатывается подпись sig сообщения с хэш-значением hash, полученном с
148       помощью алгоритма с идентификатором [oid_len]oid_der, заданным
149       DER-кодом. Подпись вырабатывается на личном ключе privkey. При
150       выработке ЭЦП используются долговременные параметры params. Одноразовый
151       личный ключ генерируется с использованием дополнительных данных
152       [t_len]t. Если t == 0, то дополнительные данные не используются.
153
154       Ожидается [ERR_BAD_PARAMS]
155           Параметры params корректны.
156
157       Ожидается [ERR_BAD_OID]
158           Идентификатор oid_der корректен.
159
160       Ожидается [ERR_BAD_INPUT]
161           Буферы sig и hash не пересекаются.
162
163       Ожидается [ERR_BAD_PRIVKEY]
164           Личный ключ privkey корректен.
165
166       Возвращает
167           ERR_OK, если подпись выработана, и код ошибки в противном случае.
168
169       Аргументы
170           sig подпись
171           params долговременные параметры
172           oid_der идентификатор хэш-алгоритма
173           oid_len длина oid_der в октетах
174           hash хэш-значение
175           privkey личный ключ
176           t дополнительные данные
177           t_len размер дополнительных данных
178
179   err_t bign96StdParams (bign_params * params, const char * name)
180       В params загружаются стандартные долговременные параметры с именем
181       name. Поддерживается только одно имя: '1.2.112.0.2.0.34.101.45.3.0'.
182
183       Возвращает
184           ERR_OK, если параметры успешно загружены, и код ошибки в противном
185           случае.
186
187       Аргументы
188           params стандартные параметры
189           name имя параметров
190
191   err_t bign96ValKeypair (const bign_params * params, const octet
192       privkey[24], const octet pubkey[48])
193       При долговременных параметрах params проверяется корректность личного
194       ключа privkey и соответствие ему открытого ключа pubkey.
195
196       Ожидается [ERR_BAD_PARAMS]
197           Параметры params корректны.
198
199       Возвращает
200           ERR_OK, если пара корректна, и код ошибки в противном случае.
201
202       Аргументы
203           params долговременные параметры
204           privkey личный ключ
205           pubkey открытый ключ
206
207   err_t bign96ValParams (const bign_params * params)
208       Проверяется корректность долговременных параметров params.
209
210       Возвращает
211           ERR_OK, если параметры корректны, и код ошибки в противном случае.
212
213       Аргументы
214           params долговременные параметры
215
216   err_t bign96ValPubkey (const bign_params * params, const octet pubkey[48])
217       При долговременных параметрах params проверяется корректность открытого
218       ключа pubkey.
219
220       Ожидается [ERR_BAD_PARAMS]
221           Параметры params корректны.
222
223       Возвращает
224           ERR_OK, если ключ корректен, и код ошибки в противном случае.
225
226       Аргументы
227           params долговременные параметры
228           pubkey проверяемый ключ
229
230   err_t bign96Verify (const bign_params * params, const octet oid_der[],
231       size_t oid_len, const octet hash[24], const octet sig[34], const octet
232       pubkey[48])
233       Проверяется ЭЦП sig сообщения с хэш-значением hash. При проверке
234       используются долговременные параметры params и открытый ключ pubkey.
235       Считается, что хэш-значение hash получено с помощью алгоритма с
236       идентификатором [oid_len]oid_der, заданным DER-кодом.
237
238       Ожидается [ERR_BAD_PARAMS]
239           Параметры params корректны.
240
241       Ожидается [ERR_BAD_OID]
242           Идентификатор oid_der корректен.
243
244       Ожидается [ERR_BAD_PUBKEY]
245           Открытый ключ pubkey корректен.
246
247       Возвращает
248           ERR_OK, если подпись корректна, и код ошибки в противном случае.
249
250       Прим.
251           При нарушении ограничений на ЭЦП возвращается код ERR_BAD_SIG.
252
253       Аргументы
254           params долговременные параметры
255           oid_der идентификатор хэш-алгоритма
256           oid_len длина oid_der в октетах
257           hash хэш-значение
258           sig подпись
259           pubkey открытый ключ
260

Автор

262       Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.
263
264
265
266Библиотека Bee2                 Пт 23 Июн 2023                     bign96.h(3)
Impressum