Por favor, explique los parámetros de las curvas elípticas RFC5639 incluyendo brainpoolP160r1

1

RFC 5639 brainpoolP160r1 tiene

p = E95E4A5F737059DC60DFC7AD95B3D8139515620F (Wolfram Alpha dice prime)

A = 340E7BE2A280EB74E2BE61BADA745D97E8F7C300

B = 1E589A8595423412134FAA2DBDEC95C8D8675E58

x = BED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3

y = 1667CB477A1A8EC338F94741669C976316DA6321

q = E95E4A5F737059DC60DF5991D45029409E60FC09 (Wolfram Alpha dice prime)

h = 1

No entiendo por qué h = 1 todavía q < p . Pensé que si tenía un tamaño de campo principal, entonces solo hay un subgrupo cíclico de tamaño igual al tamaño del campo (c.f. Lagrange). Este no parece ser el caso para brainpool P160r1

    
pregunta jimouris 22.11.2018 - 04:47
fuente

2 respuestas

0

Esto sería más apropiado en crypto.SX donde se ha abordado varias veces:
enlace
enlace
enlace

Brevemente, el orden de la curva #E (GF (p)) (a veces abreviado n) NO es p, aunque es de magnitud bastante cercana. El grupo de la curva es el grupo finito relevante y está sujeto a Lagrange; cualquier punto de la curva tiene un orden (del subgrupo que genera) dividiendo n, y si n es primo, como se elige para las curvas de Brainpool Prime y también para las curvas de X9 / SECG Prime, cada punto tiene un orden q = n y cofactor h = 1.

    
respondido por el dave_thompson_085 22.11.2018 - 07:17
fuente
0

El orden de la curva $ \ # E (\ mathbb {F} _p) $ es diferente de $ p $ . De hecho, según el teorema de Hasse, $ \ # E (\ mathbb {F} _p) = p + 1-t $ where $ t $ la traza de Frobenius satisface $ | t | < 2 \ sqrt {p} $ . Por lo tanto, la brecha entre $ \ # E (\ mathbb {F} _p) $ y $ p $ es a lo sumo $ 2 \ sqrt {p} $ . Tenga en cuenta que si $ \ # E (\ mathbb {F} _p) = p + 1 $ , $ \ textit { ie} $ $ t = 0 $ , la curva es supersingular. Para brainpool P160r1, el orden es 1332297598440044874827085038830181364212942568457 (160 bits). Puedes jugar con el código de salvia:

p = 0xE95E4A5F737059DC60DFC7AD95B3D8139515620F 
A = 0x340E7BE2A280EB74E2BE61BADA745D97E8F7C300
B = 0x1E589A8595423412134FAA2DBDEC95C8D8675E58
x = 0xBED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3
y = 0x1667CB477A1A8EC338F94741669C976316DA6321
E = EllipticCurve(GF(p),[A,B])
G = E(x,y)
G.order()
E.order()
    
respondido por el Youssef El Housni 23.11.2018 - 10:42
fuente

Lea otras preguntas en las etiquetas