Los ID de OpenPGP son partes de la huella digital SHA-1, como definido en el estándar . Una ID de clave corta son los últimos 32 bits, y la ID de clave larga son los últimos 64 bits. Una colisión generalmente toma un promedio de 2 operaciones n / 2 , donde n es el tamaño del hash en bits. La generación de colisiones para las ID cortas y las ID largas es trivial, ya que requiere un promedio de 2 operaciones 16 y 2 32 , respectivamente. Una colisión en este caso se define como la creación de dos entradas de hash diferentes que tienen resúmenes idénticos. En realidad, incluso es posible colisionar con la huella dactilar SHA-1 completa, como Google ha mostrado . La colisión de una huella digital completa de OpenPGP no requiere nada más que la colisión de un solo hash SHA-1. Esto es difícil, pero es posible con suficiente poder de cómputo.
Crear una preimagen es diferente. A diferencia de una colisión, un ataque de preimagen requiere crear una entrada que coincida con un resumen de hash específico. El atacante no puede proporcionar ambas entradas, solo una, lo que hace que sea un ataque mucho más difícil. A diferencia de un ataque de colisión, un ataque de preimagen requiere un total de 2 operaciones n para un hash de tamaño n . Debido a esto, la creación de una imagen previa para una ID corta requiere solo 2 operaciones 32 , lo cual es francamente trivial. Hacer lo mismo para una ID larga requiere 2 operaciones 64 , lo cual no es fácil, pero está lejos de ser imposible. Hacer lo mismo con la huella digital de 160 bits es simplemente imposible con la tecnología actual.
En resumen:
+-------------+-----------+------------+
| | Collision | Preimage |
+-------------+-----------+------------+
| Short ID | Trivial | Easy |
+-------------+-----------+------------+
| Long ID | Easy | Hard |
+-------------+-----------+------------+
| Fingerprint | Hard | Impossible |
+-------------+-----------+------------+