Si a un atacante solo se le dieran 256 bits y fueran un hash SHA256 o una clave de curva elíptica de 256 bits, ¿podrían saber cuál es?
Por curiosidad, ¿podrían diferenciar entre lo anterior y un bloque cifrado AES256, o una firma ECDSA de 256 bits?
Su suposición principal de que el tamaño de la clave está directamente relacionado con el formato de las claves, los parámetros o el tamaño de salida no se mantiene.
Normalmente, el atacante solo tendría acceso a una clave de EC pública, que normalmente no es de 256 bits, sino un punto en la curva. Este punto consta de dos valores de coordenadas prefijados con un indicador (puntos comprimidos o no comprimidos).
Por lo general, una clave, pública o privada, se codificaría utilizando algún tipo de estructura ASN.1 DER (PKCS # 8 / X9.62). Por lo tanto, el formato de cualquiera de las claves es generalmente mucho más grande que el tamaño de la clave. Esto es diferente de, por ejemplo, cifrados simétricos donde las claves solo consisten en bits aleatorios.
Las firmas ECDSA, al igual que las claves públicas de ECDSA, constan de dos componentes con el tamaño (aproximado) del tamaño de la clave ECC. Por lo general, la firma es ASN.1 DER codificada también. Por lo tanto, sería bastante fácil distinguirlo de un bloque cifrado AES256.
Todo lo dicho, las claves privadas de EC (parámetro S) normalmente son completamente aleatorias. Y como la salida de SHA256 también debería parecer perfectamente aleatoria para un atacante, no habría nada que distinguir entre los dos.
Sin embargo, si el atacante tiene acceso a la clave o al hash, esperaría que también tuvieran acceso a alguna combinación de texto simple / texto cifrado para verificar qué algoritmo se usó.
Lea otras preguntas en las etiquetas public-key-infrastructure ecc sha