Boosting the Performance of High-Assurance Cryptography: Parallel Execution and Optimizing Memory Access in Formally-Verified Line-Point Zero-Knowledge
被引:1
|
作者:
Dittmer, Samuel
论文数: 0引用数: 0
h-index: 0
机构:
Stealth Software Technol Inc, Los Angeles, CA USAStealth Software Technol Inc, Los Angeles, CA USA
Dittmer, Samuel
[1
]
Eldefrawy, Karim
论文数: 0引用数: 0
h-index: 0
机构:
SRI Int, 333 Ravenswood Ave, Menlo Pk, CA 94025 USAStealth Software Technol Inc, Los Angeles, CA USA
Eldefrawy, Karim
[2
]
Graham-Lengrand, Stephane
论文数: 0引用数: 0
h-index: 0
机构:
SRI Int, 333 Ravenswood Ave, Menlo Pk, CA 94025 USAStealth Software Technol Inc, Los Angeles, CA USA
Graham-Lengrand, Stephane
[2
]
Lu, Steve
论文数: 0引用数: 0
h-index: 0
机构:
Stealth Software Technol Inc, Los Angeles, CA USAStealth Software Technol Inc, Los Angeles, CA USA
Lu, Steve
[1
]
Ostrovsky, Rafail
论文数: 0引用数: 0
h-index: 0
机构:
Univ Calif Los Angeles, Los Angeles, CA USAStealth Software Technol Inc, Los Angeles, CA USA
Ostrovsky, Rafail
[3
]
Pereira, Vitor
论文数: 0引用数: 0
h-index: 0
机构:
SRI Int, 333 Ravenswood Ave, Menlo Pk, CA 94025 USAStealth Software Technol Inc, Los Angeles, CA USA
Pereira, Vitor
[2
]
机构:
[1] Stealth Software Technol Inc, Los Angeles, CA USA
[2] SRI Int, 333 Ravenswood Ave, Menlo Pk, CA 94025 USA
Despite the notable advances in the development of high-assurance, verified implementations of cryptographic protocols, such implementations typically face significant performance overheads, particularly due to the penalties induced by formal verification and automated extraction of executable code. In this paper, we address some core performance challenges facing computer-aided cryptography by presenting a formal treatment for accelerating such verified implementations based on multiple generic optimizations covering parallelism and memory access. We illustrate our techniques for addressing such performance bottlenecks using the Line-Point Zero-Knowledge (LPZK) protocol as a case study. Our starting point is a new verified implementation of LPZK that we formalize and synthesize using EasyCrypt; our first implementation is developed to reduce the proof effort and without considering the performance of the extracted executable code. We then show how such (automatically) extracted code can be optimized in three different ways to obtain a 3000x speedup and thus matching the performance of the manual implementation of LPZK of [13]. We obtain such performance gains by first modifying the algorithmic specifications, then by adopting a provably secure parallel execution model, and finally by optimizing the memory access structures. All optimizations are first formally verified inside EasyCrypt, and then executable code is automatically synthesized from each step of the formalization. For each optimization, we analyze performance gains resulting from it and also address challenges facing the computer-aided security proofs thereof, and challenges facing automated synthesis of executable code with such an optimization.