Secure Two-Party Computation (2PC) enables a set of parties to compute a function of their inputs while keeping these inputs private. While theoretical solutions for solving 2PC problems were known for decades, efficient implementations have been developed only recently. The delay in implementation was caused by a number of factors, including a substantial performance overhead and limitations of the standard implementation techniques. These difficulties are compounded in mobile devices, which have even additional restrictions on memory, computational power, and bandwidth. There exist low-cost general-purpose protocols for semi-honest parties that can be executed efficiently even on smartphones. However, for the malicious case current protocols are much less efficient. This thesis introduces the first protocol for mobile phones that is secure in the presence of malicious players and a semi-honest, non-colluding server. The protocol takes advantage of a commodity-based setting, where one or multiple servers provide participants with computational material that makes 2PC efficient. Our protocol has two phases:
In an offline phase - where no party knows which function is to be computed nor who else is participating - each party interacts with the server and downloads a file. Later, in the online phase, when two parties decide to execute a 2PC together, they can use the files they have downloaded earlier to execute the computation at low cost. We implement our protocol on Android smartphones and desktops and experimentally show that our mobile solution is more efficient than most of the semi-honest mobile applications in this field. The online phase for evaluating a single AES circuit requires only 2.5 seconds and can be further reduced to 1.2 seconds (amortized time) with multiple executions.