Puzzle est un algorithme de chiffrement par bloque, basé sur de la transposition plutôt que de la substitution. Il utilise la formule suivante pour réorganiser le texte brut :

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

Avec cette formule c'est comme si l'on coupait chaque lettre d'un livre et qu'on les mélangeait. Le résultat du mélange est tellement énorme et confus qu'il est possible de recréer un livre complètement différent à partir du premier. Ce procédé est extrêmement difficile à inverser sans mot de passe.

L'algorithme a quelques propriétés intéressantes :

- La taille d'un bloque est variable et inconnue.
- La taille de la clé de chiffrement est variable et inconnue.
- La taille de la clé n'affecte pas la vitesse de l'algorithme.
- L'algorithme est extrêmement rapide. Les premiers tests expérimentaux ont montré une vitesse de 600 Mo/s - 4 cycles/byte sur un Intel Core 2 Duo P8600 2.40GHz et 1,2 Go/s - 2 cycles/byte sur un Intel i5-3210M 2.50GHz. Les deux processeurs avaient seulement 2 coeurs.