¿Por qué no se pierde seguridad al usar claves públicas de 32 bytes en las firmas de Schnorr en lugar de 33?

Actualmente hay una discusión en la lista de correo sobre cómo truncar el byte 33 de las claves públicas cuando se usa en bip-schnorr.

Las claves públicas son (x, y)coordenadas y las claves públicas comprimidas simplemente reemplazan la ycoordenada con un solo byte que indica su rareza. La ycoordenada completa se puede derivar a partir de la xcoordenada dada y, por lo tanto, la clave pública se puede expresar en solo 33 bytes en lugar de 64.

Al eliminar el byte de "rareza", las claves públicas solo se expresarán mediante la xcoordenada, lo que significa que hay dos puntos potenciales en la curva que podrían representarse. Esto también implica que la misma clave pública única de coordenadas x podría en realidad derivarse de dos claves privadas diferentes .

Mi pregunta es, ¿por qué esto no afecta los supuestos de seguridad de la firma Schnorr? ¿Es solo un efecto sutil, como reemplazar la seguridad de 256 bits con seguridad de 255 bits?

Respuestas (2)

Del borrador bip-schnorr (muy recientemente actualizado):

Las coordenadas Y implícitas no reducen la seguridad cuando se expresan como el número de operaciones de curva elíptica que se espera que realice un atacante para calcular la clave secreta. Un atacante puede normalizar cualquier clave pública dada a un punto cuya coordenada Y sea un residuo cuadrático negando el punto si es necesario. Esto es solo una resta de elementos de campo y no una operación de curva elíptica.

La idea es que si de alguna manera el uso de coordenadas Y implícitas fuera menos seguro, entonces un atacante siempre lo usaría, incluso en una versión del protocolo que tiene coordenadas Y explícitas. El atacante tomaría la clave pública completa, quitaría la coordenada Y, ejecutaría su solucionador ECDLP implícito (presumiblemente más rápido) para encontrar la clave privada, y si el punto real correspondiente a esa clave es lo opuesto a lo que él quiere, voltea la clave privada.

Esto demuestra que la dureza del problema ECDLP no puede verse afectada significativamente al eliminar las coordenadas Y.

Este artículo amplía un poco más la prueba de seguridad (¡con ayudas visuales!)

https://medium.com/blockstream/reduciendo-bitcoin-transaction-sizes-with-x-only-pubkeys-f86476af05d7