Pular para o conteúdo
ecdsa.com

Cofator

A razão h = #E / n entre o número de pontos de uma curva elíptica e a ordem prima n do subgrupo usado na criptografia: 1 para as curvas P do NIST e para a secp256k1, 8 para a Curve25519 e 4 para a Curve448.
Também escrito comocurve cofactorsmall subgroup

Quando h é maior que 1, a curva contém subgrupos pequenos, então um ponto fornecido pela outra parte pode estar fora do subgrupo de ordem prima. Os protocolos lidam com isso multiplicando pelo cofator (o Diffie–Hellman com cofator da SP 800-56A), ajustando (clamping) os escalares secretos para múltiplos do cofator (X25519, Ed25519), verificando se o ponto pertence ao subgrupo ou usando uma abstração de ordem prima, como ristretto255 ou decaf448 (RFC 9496).

Bugs reais: em 2017, o problema de cofator do CryptoNote permitia que uma saída do Monero produzisse várias imagens de chave (key images) válidas, o que poderia ter possibilitado gasto duplo até ser corrigido. Verificadores EdDSA que divergem entre a verificação com cofator e a sem cofator (a RFC 8032 §5.1.7 permite as duas) aceitam conjuntos diferentes de assinaturas maliciosas, o que importa em sistemas de consenso.

As curvas de Weierstrass com cofator 1 não têm nenhum desses problemas, e esse é um dos motivos pelos quais as curvas de ordem prima continuam populares em protocolos que precisam de uma semântica de grupo simples, como a computação multipartidária e as funções aleatórias verificáveis.

Padrões e referências

Todos os termos