Your Secrets are Safe with Julia: A Compiler for Secure Computation
summary
Proof of concept compiler Ramparts converts a subset of Julia into integer arithmetic circuits for homomorphic encryption using Crucible symbolic execution and the Palisade HE library The system targets integer rings so only additions multiplications and limited division by powers of two are supported Loops must be unrolled and matrix shapes must be concrete A 64×64 image yields ~4,000 variables performance is still 5–10 orders of magnitude slower but equivalence to optimized integer algorithms is proven up to 8×8 with SMT queries Ramparts compiler Crucible symbolic execution Palisade HE library
AI-written summary · about
chapters (22)
- 0:00Introduction
- 0:52Takeaways
- 1:51Homomorphic Encryption
- 2:33Rhythmatic Circuits
- 8:51Bad Performance
- 9:31Image Processing
- 10:07Image Sharpening
- 11:45Symbolic Execution
- 12:13Bulk Manipulation
- 12:41Multivalued Expressions
- 13:30SymbolicExecution
- 15:58Water
- 17:28Open Source
- 19:07Julia Dynamic Features
- 20:42Using Crucible
- 26:58Architecture
- 28:32Questions
- 30:47What we learned
- 31:52No free lunches
- 35:19Large circuits
- 36:57Limitations
- 37:52Grackle
related talks
58mFast Cryptographic Code via Partial Evaluation
15mMy Journey in Secure Compilation
17mRobust Constant-Time Cryptography
37mFrontiers in Cryptography
35mVeracruz: Privacy-preserving mutliparty computation using trusted hardware
16mMitigating Transient-Execution Attacks with CHERI Compartments
49mCompiling to preserve our privacy
33mInteraction Preserving Compilers for Secure Computation
