Secure multi-party computation (MPC) allows several mutually untrusting parties to perform joint computations while keeping their inputs private. This project develops new techniques for constructing two-party secure computation protocols with low communication overhead. Building on the Principal Investigator's prior work for constructing special-purpose secure MPC protocols for greedy algorithms, this project develops new techniques that exploit the algorithmic structure of a function in order to develop more efficient secure computation protocols. The project develops new methods to achieve security against covert adversaries for linear algebraic tasks, graph matching algorithms, and problems from computational geometry. The investigators broadly disseminate the outcomes of the research and software libraries in order to benefit both theoreticians and practitioners. The project includes various educational and outreach activities such as organizing workshops for high-school students. The project has created a wiki for cryptographic constructions and security notions associated with these constructions.