Automatic predicate abstraction of C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Symbolic Model Checking without BDDs
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Multiparty Computation from Threshold Homomorphic Encryption
EUROCRYPT '01 Proceedings of the International Conference on the Theory and Application of Cryptographic Techniques: Advances in Cryptology
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Behavioral consistency of C and verilog programs using bounded model checking
Proceedings of the 40th annual Design Automation Conference
Privacy-preserving distributed k-means clustering over arbitrarily partitioned data
Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining
Fairplay—a secure two-party computation system
SSYM'04 Proceedings of the 13th conference on USENIX Security Symposium - Volume 13
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Protocols for secure computations
SFCS '82 Proceedings of the 23rd Annual Symposium on Foundations of Computer Science
How to generate and exchange secrets
SFCS '86 Proceedings of the 27th Annual Symposium on Foundations of Computer Science
Improved Garbled Circuit: Free XOR Gates and Applications
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
A Practical Universal Circuit Construction and Secure Evaluation of Private Functions
Financial Cryptography and Data Security
FairplayMP: a system for secure multi-party computation
Proceedings of the 15th ACM conference on Computer and communications security
Sharemind: A Framework for Fast Privacy-Preserving Computations
ESORICS '08 Proceedings of the 13th European Symposium on Research in Computer Security: Computer Security
A Proof of Security of Yao’s Protocol for Two-Party Computation
Journal of Cryptology
Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications
Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications
Privacy-Preserving Face Recognition
PETS '09 Proceedings of the 9th International Symposium on Privacy Enhancing Technologies
Improved Garbled Circuit Building Blocks and Applications to Auctions and Computing Minima
CANS '09 Proceedings of the 8th International Conference on Cryptology and Network Security
Secure Two-Party Computation Is Practical
ASIACRYPT '09 Proceedings of the 15th International Conference on the Theory and Application of Cryptology and Information Security: Advances in Cryptology
Secure evaluation of private linear branching programs with medical applications
ESORICS'09 Proceedings of the 14th European conference on Research in computer security
TASTY: tool for automating secure two-party computations
Proceedings of the 17th ACM conference on Computer and communications security
Faster secure two-party computation using garbled circuits
SEC'11 Proceedings of the 20th USENIX conference on Security
VMCrypt: modular software architecture for scalable secure computation
Proceedings of the 18th ACM conference on Computer and communications security
DiVer: SAT-based model checking platform for verifying large scale systems
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
On private scalar product computation for privacy-preserving data mining
ICISC'04 Proceedings of the 7th international conference on Information Security and Cryptology
A practical implementation of secure auctions based on multiparty integer computation
FC'06 Proceedings of the 10th international conference on Financial Cryptography and Data Security
Constant-Round private function evaluation with linear complexity
ASIACRYPT'11 Proceedings of the 17th international conference on The Theory and Application of Cryptology and Information Security
Faster secure two-party computation with less memory
Proceedings of the 8th ACM SIGSAC symposium on Information, computer and communications security
AUTOCRYPT: enabling homomorphic computation on servers to protect sensitive web content
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
More efficient oblivious transfer and extensions for faster secure computation
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
PICCO: a general-purpose compiler for private distributed computation
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
Challenges in compiler construction for secure two-party computation
Proceedings of the First ACM workshop on Language support for privacy-enhancing technologies
Lessons learned with PCF: scaling secure computation
Proceedings of the First ACM workshop on Language support for privacy-enhancing technologies
PCF: a portable circuit format for scalable two-party secure computation
SEC'13 Proceedings of the 22nd USENIX conference on Security
Hi-index | 0.00 |
The practical application of Secure Two-Party Computation is hindered by the difficulty to implement secure computation protocols. While recent work has proposed very simple programming languages which can be used to specify secure computations, it is still difficult for practitioners to use them, and cumbersome to translate existing source code into this format. Similarly, the manual construction of two-party computation protocols, in particular ones based on the approach of garbled circuits, is labor intensive and error-prone. The central contribution of the current paper is a tool which achieves Secure Two-Party Computation for ANSI C. Our work is based on a combination of model checking techniques and two-party computation based on garbled circuits. Our key insight is a nonstandard use of the bit-precise model checker CBMC which enables us to translate C programs into equivalent Boolean circuits. To this end, we modify the standard CBMC translation from programs into Boolean formulas whose variables correspond to the memory bits manipulated by the program. As CBMC attempts to minimize the size of the formulas, the circuits obtained by our tool chain are also size efficient; to improve the efficiency of the garbled circuit evaluation, we perform optimizations on the circuits. Experimental results with the new tool CBMC-GC demonstrate the practical usefulness of our approach.