cryptographic transformations