Domain Extension Techniques in Cryptography