Distributed Programming Paradigms with Cryptography Applications