Sponsor:

Your company here, and a link to your site. Click to find out more.

bign96.h - Man Page

Подпись Bign уровня 96.

Synopsis

#include 'bee2/crypto/bign.h'

Функции

err_t bign96StdParams (bign_params *params, const char *name)
Загрузка стандартных долговременных параметров
err_t bign96ValParams (const bign_params *params)
Проверка долговременных параметров
err_t bign96GenKeypair (octet privkey[24], octet pubkey[48], const bign_params *params, gen_i rng, void *rng_state)
Генерация пары ключей
err_t bign96ValKeypair (const bign_params *params, const octet privkey[24], const octet pubkey[48])
Проверка пары ключей
err_t bign96ValPubkey (const bign_params *params, const octet pubkey[48])
Проверка открытого ключа
err_t bign96CalcPubkey (octet pubkey[48], const bign_params *params, const octet privkey[24])
Построение открытого ключа по личному
err_t bign96Sign (octet sig[34], const bign_params *params, const octet oid_der[], size_t oid_len, const octet hash[24], const octet privkey[24], gen_i rng, void *rng_state)
Выработка ЭЦП
err_t bign96Sign2 (octet sig[34], const bign_params *params, const octet oid_der[], size_t oid_len, const octet hash[24], const octet privkey[24], const void *t, size_t t_len)
Детерминированная выработка ЭЦП
err_t bign96Verify (const bign_params *params, const octet oid_der[], size_t oid_len, const octet hash[24], const octet sig[34], const octet pubkey[48])
Проверка ЭЦП

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

Подпись Bign96 -- это подпись Bign при снижении уровня стойкости до l = 96 и следующих корректировках: 1) уменьшается длина s0, первой часть подписи: с 96 битов до 80; 2) в детерминированном режиме выработки подписи (функция bign96Sign2) для построения одноразового личного ключа вместо алгоритма belt-wblock используется алгоритм belt-32block (шифрование полутора блоков). Последний алгоритм определен в СТБ 34.101.31-2020 как вспомогательный для алгоритма belt-fmt.

Повторяются соглашения и интерфейсы модуля bee2/crypto/bign.

Ожидается [ERR_BAD_INPUT]

Все входные указатели корректны.

Функции

err_t bign96CalcPubkey (octet pubkey[48], const bign_params * params, const octet privkey[24])

При долговременных параметрах params по личному ключу privkey строится открытый ключ pubkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Возвращает

ERR_OK, если открытый ключ успешно построен, и код ошибки в противном случае.

Аргументы

pubkey открытый ключ  
params долговременные параметры  
privkey личный ключ

err_t bign96GenKeypair (octet privkey[24], octet pubkey[48], const bign_params * params, gen_i rng, void * rng_state)

При долговременных параметрах params генерируются личный privkey и открытый pubkey ключи. При генерации используется генератор rng и его состояние rng_state.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_RNG]

Генератор rng (с состоянием rng_state) корректен.

Ожидается

Используется криптографически стойкий генератор rng.

Возвращает

ERR_OK, если ключи успешно сгенерированы, и код ошибки в противном случае.

Аргументы

privkey личный ключ  
pubkey открытый ключ  
params долговременные параметры  
rng генератор случайных чисел  
rng_state [in/out] состояние генератора

err_t bign96Sign (octet sig[34], const bign_params * params, const octet oid_der[], size_t oid_len, const octet hash[24], const octet privkey[24], gen_i rng, void * rng_state)

Вырабатывается подпись sig сообщения с хэш-значением hash, полученном с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом. Подпись вырабатывается на личном ключе privkey. При выработке ЭЦП используются долговременные параметры params и генератор rng с состоянием rng_state.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_INPUT]

Буферы sig и hash не пересекаются.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Ожидается [ERR_BAD_RNG]

Генератор rng (с состоянием rng_state) корректен.

Ожидается

Генератор rng является криптографически стойким.

Возвращает

ERR_OK, если подпись выработана, и код ошибки в противном случае.

Аргументы

sig подпись  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
hash хэш-значение  
privkey личный ключ  
rng генератор случайных чисел  
rng_state [in/out] состояние генератора

err_t bign96Sign2 (octet sig[34], const bign_params * params, const octet oid_der[], size_t oid_len, const octet hash[24], const octet privkey[24], const void * t, size_t t_len)

Вырабатывается подпись sig сообщения с хэш-значением hash, полученном с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом. Подпись вырабатывается на личном ключе privkey. При выработке ЭЦП используются долговременные параметры params. Одноразовый личный ключ генерируется с использованием дополнительных данных [t_len]t. Если t == 0, то дополнительные данные не используются.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_INPUT]

Буферы sig и hash не пересекаются.

Ожидается [ERR_BAD_PRIVKEY]

Личный ключ privkey корректен.

Возвращает

ERR_OK, если подпись выработана, и код ошибки в противном случае.

Аргументы

sig подпись  
params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
hash хэш-значение  
privkey личный ключ  
t дополнительные данные  
t_len размер дополнительных данных

err_t bign96StdParams (bign_params * params, const char * name)

В params загружаются стандартные долговременные параметры с именем name. Поддерживается только одно имя: '1.2.112.0.2.0.34.101.45.3.0'.

Возвращает

ERR_OK, если параметры успешно загружены, и код ошибки в противном случае.

Аргументы

params стандартные параметры  
name имя параметров

err_t bign96ValKeypair (const bign_params * params, const octet privkey[24], const octet pubkey[48])

При долговременных параметрах params проверяется корректность личного ключа privkey и соответствие ему открытого ключа pubkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Возвращает

ERR_OK, если пара корректна, и код ошибки в противном случае.

Аргументы

params долговременные параметры  
privkey личный ключ  
pubkey открытый ключ

err_t bign96ValParams (const bign_params * params)

Проверяется корректность долговременных параметров params.

Возвращает

ERR_OK, если параметры корректны, и код ошибки в противном случае.

Аргументы

params долговременные параметры

err_t bign96ValPubkey (const bign_params * params, const octet pubkey[48])

При долговременных параметрах params проверяется корректность открытого ключа pubkey.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Возвращает

ERR_OK, если ключ корректен, и код ошибки в противном случае.

Аргументы

params долговременные параметры  
pubkey проверяемый ключ

err_t bign96Verify (const bign_params * params, const octet oid_der[], size_t oid_len, const octet hash[24], const octet sig[34], const octet pubkey[48])

Проверяется ЭЦП sig сообщения с хэш-значением hash. При проверке используются долговременные параметры params и открытый ключ pubkey. Считается, что хэш-значение hash получено с помощью алгоритма с идентификатором [oid_len]oid_der, заданным DER-кодом.

Ожидается [ERR_BAD_PARAMS]

Параметры params корректны.

Ожидается [ERR_BAD_OID]

Идентификатор oid_der корректен.

Ожидается [ERR_BAD_PUBKEY]

Открытый ключ pubkey корректен.

Возвращает

ERR_OK, если подпись корректна, и код ошибки в противном случае.

Прим.

При нарушении ограничений на ЭЦП возвращается код ERR_BAD_SIG.

Аргументы

params долговременные параметры  
oid_der идентификатор хэш-алгоритма  
oid_len длина oid_der в октетах  
hash хэш-значение  
sig подпись  
pubkey открытый ключ

Автор

Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.

Info

Вт 23 Янв 2024 00:00:00 Библиотека Bee2