A Pragmatic Introduction to Secure Multi-Party Computation