Secure Multi-party Computation and Its Applications