Контекст, используемый при создании ключа, связан с низким значением экспоненты
Этот дефект возникает при попытке создания ключа RSA с помощью объекта контекста, связанного с низкой открытой степенью.
Например, в объекте контекста задается общая степень 3, а затем она используется для создания ключа.
/* Set public exponent */ ret = BN_dec2bn(&pubexp, "3"); /* Initialize context */ ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); pkey = EVP_PKEY_new(); ret = EVP_PKEY_keygen_init(kctx); /* Set public exponent in context */ ret = EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp); /* Generate key */ ret = EVP_PKEY_keygen(kctx, &pkey);
Низкая общая степень RSA делает некоторые виды атак более повреждающими, особенно когда используется слабая схема заполнения или заполнение вообще не используется.
Рекомендуется использовать публичную экспоненту 65537. Использование более высокой публичной степени может замедлить выполнение операций.
| Группа: Криптография |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
CRYPTO_RSA_LOW_EXPONENT |
| Воздействие: среднее |
| CWE ID: 310, 326, 327, 522 |
Find defects (-checkers) | Incompatible padding for RSA algorithm operation | Missing blinding for RSA algorithm | Missing padding for RSA algorithm | Weak padding for RSA algorithm