Burrows–Wheeler transformation   

(Used for decrypting. Specifying a key will ignore start and end characters)