Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Kulikov Ivan  
#1 Оставлено : 17 декабря 2019 г. 13:44:09(UTC)
Kulikov Ivan

Статус: Новичок

Группы: Участники
Зарегистрирован: 04.12.2019(UTC)
Сообщений: 2

Как задавать параметры ACPKM в КриптоПро CSP 5.0? магма и кузнечик ctr-acpkm.
Как задавать длину блока n, длину блока гаммы s, размер регистра сдвига , частоту смены ключа Т?

https://meganorm.ru/Data2/1/4293736/4293736760.pdf
Offline Сонина Лолита  
#2 Оставлено : 27 декабря 2019 г. 16:31:39(UTC)
Сонина Лолита

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.11.2014(UTC)
Сообщений: 27
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 19 раз в 17 постах
Добрый день!
Для того, чтобы шифровать на ключах CALG_GR3412_2015_M (длина блока n=64 бита), CALG_GR3412_2015_K (длина блока n=128 бит) в режиме CTR-ACPKM (длина IV равна n/2 бит, значение по умолчанию — случайное), необходимо дополнительно сделать следующее:

1. Установить на ключ параметры режима (CRYPT_MODE_CTR) (значение по умолчанию — CRYPT_MODE_CFB) и смены ключа (CRYPT_ACPKM_MODE) (значение по умолчанию — CRYPT_SIMPLEMIX_MODE).

DWORD dwCipherMode = CRYPT_MODE_CTR;
CryptSetKeyParam(hProv, hKey, KP_MODE, (PBYTE)&dwCipherMode, 0);
DWORD dwPromixMode = CRYPT_ACPKM_MODE;
CryptSetKeyParam(hProv, hKey, KP_MIXMODE, (PBYTE)&dwPromixMode, 0);

2. Выставить необходимую длину гаммы, установив на ключ параметр KP_MODE_BITS (задается в битах, кратна 8, 8<=dwModeBits<=n, значение по умолчанию равно n).

DWORD dwModeBits = 8;
CryptSetKeyParam(hProv, hKey, KP_MODE_BITS, (PBYTE)&dwModeBits, 0);

3. Выставить частоту смены ключа, установив на ключ параметр KP_MIX_BLOCK_SIZE (задается в числе операций зашифрования. По умолчанию имеет значения 128 для CALG_GR3412_2015_M и 256 для CALG_GR3412_2015_K. Значение должно иметь вид 2^k).

DWORD dwMixBlockSize = 0x400;
CryptSetKeyParam(hProv, hKey, KP_MIX_BLOCK_SIZE, (BYTE*)&dwMixBlockSize, 0);


В случае использования некоторых других режимов, может варьироваться также длина IV, посредством установки на ключ параметра KP_IV_BLOB (CRYPT_DATA_BLOB), в частности:
Для CBC и OFB длина iv может равняться n*z, z >= 1, но не более 2048 бит.
Для CFB длина iv должна находиться в пределах от n до 2048 бит.
Длина IV по умолчанию для этих режимов равна n.

cdbIVBlob.cbData = dwBlockLen*2;
CryptGenRandom(hProv, cdbIVBlob.cbData, cdbIVBlob.pbData);
CryptSetKeyParam(hProv, hKey, KP_IV_BLOB, (BYTE*)&cdbIVBlob, 0);
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Сонина Лолита за этот пост.
Санчир Момолдаев оставлено 15.01.2021(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.