1bign96.h(3) Library Functions Manual bign96.h(3)
2
3
4
6 bign96.h - Подпись Bign уровня 96.
7
8
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)