Puzzle es un algoritmo de cifrado por bloque basado en transposición mas bien que en substitución. Usa la formula siguiente para ordenar el texto plano :

FinalPosition = (InitialPosition * KeyBytes + OtherKeyBytes) modulo(BlockSize)

La idea detrás de esa formula es como cortar cada letra de un libro y barajarlas todas juntas. El resultado es tan grande y mezclado que es posible recrear otro libro completamente diferente desde el. Eso hace revertir el proceso muy difícil sin una contraseña. El algoritmo tiene algunas propiedades interesantes :

- El tamaño del bloque es variable y desconocido para un atacante.
- El tamaño de la llave no tiene limite y es desconocido para un atacante.
- El tamaño de la llave no afecta la velocidad del algoritmo (usar una llave 256 bit es lo mismo que usar una llave de 1024 bit).
- El algoritmo es mucho mas rápido que las funciones criptográficas normales. Pruebas experimentales demostraron una velocidad de 600 Mo/s - 4 cycles/byte con un Intel Core 2 Duo P8600 2.40GHz y 1,2 Go/s - 2 cycles/byte con un Intel i5-3210M 2.50GHz. Los CPUs solo tenían 2 núcleos.