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             Ср 19 Июл 2023 00:00:00                bign96.h(3)
Impressum