Simple High-Level Code for Cryptographic Arithmetic

被引:1
|
作者
Erbsen A. [1 ]
Philipoom J. [1 ]
Gross J. [1 ]
Sloan R. [1 ]
Chlipala A. [1 ]
机构
[1] Erbsen, Andres
[2] Philipoom, Jade
[3] Gross, Jason
[4] Sloan, Robert
[5] Chlipala, Adam
来源
| 1600年 / Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States卷 / 54期
基金
美国国家科学基金会;
关键词
24;
D O I
10.1145/3421473.3421477
中图分类号
学科分类号
摘要
We introduce an unusual approach for implementing cryptographic arithmetic in short high-level code with machinechecked proofs of functional correctness. We further demonstrate that simple partial evaluation is sufficient to transform such initial code into highly competitive C code, breaking the decades-old pattern that the only fast implementations are those whose instruction-level steps were written out by hand. These techniques were used to build an elliptic-curve library that achieves competitive performance for a wide range of prime fields and multiple CPU architectures, showing that implementation and proof effort scales with the number and complexity of conceptually different algorithms, not their use cases. As one outcome, we present the first verified highperformance implementation of P-256, the most widely used elliptic curve. Implementations from our library were included in BoringSSL to replace existing specialized code, for inclusion in several large deployments for Chrome, Android, and CloudFlare. This is an abridged version of the full paper originally presented in IEEE S&P 2019 [10]. We have omitted most proof-engineering details in favor of a focus on the system's functional capabilities. © 2020 Copyright is held by the owner/author(s).
引用
收藏
页码:23 / 30
页数:7
相关论文
共 50 条
  • [1] Simple High-Level Code For Cryptographic Arithmetic - With Proofs, Without Compromises
    Erbsen, Andres
    Philipoom, Jade
    Gross, Jason
    Sloan, Robert
    Chlipala, Adam
    [J]. 2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2019), 2019, : 1202 - 1219
  • [2] High-Level Cryptographic Abstractions
    Kane, Christopher
    Lin, Bo
    Chand, Saksham
    Stoller, Scott D.
    Liu, Yanhong A.
    [J]. PROCEEDINGS OF THE 14TH ACM SIGSAC WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY (PLAS '19), 2019, : 31 - 43
  • [3] High-level library mapping for arithmetic components
    Jha, PK
    Dutt, ND
    [J]. IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, 1996, 4 (02) : 157 - 169
  • [4] Can High-Level Synthesis Compete Against a Hand-Written Code in the Cryptographic Domain? A Case Study
    Homsirikamol, Ekawat
    Gaj, Kris
    [J]. 2014 INTERNATIONAL CONFERENCE ON RECONFIGURABLE COMPUTING AND FPGAS (RECONFIG), 2014,
  • [5] Automatic Implementation of Arithmetic Functions in High-Level Synthesis
    Ge, Liangwei
    Chen, Song
    Yoshimura, Takeshi
    [J]. 2008 9TH INTERNATIONAL CONFERENCE ON SOLID-STATE AND INTEGRATED-CIRCUIT TECHNOLOGY, VOLS 1-4, 2008, : 2341 - 2344
  • [6] The Relationship of Code Coverage Metrics on High-level and RTL Code
    Sanguinetti, John
    Zhang, Eugene
    [J]. 2010 IEEE INTERNATIONAL HIGH LEVEL DESIGN VALIDATION AND TEST WORKSHOP (HLDVT), 2010, : 138 - 141
  • [7] Compiling mercury to high-level C code
    Henderson, F
    Somogyi, Z
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2002, 2304 : 197 - 212
  • [8] High-Level Separation Logic for Low-Level Code
    Jensen, Jonas B.
    Benton, Nick
    Kennedy, Andrew
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (01) : 301 - 313
  • [9] From High-Level Specification to High-Performance Code
    Franchetti, Franz
    Moura, Jose M. F.
    Padua, David A.
    Dongarra, Jack
    [J]. PROCEEDINGS OF THE IEEE, 2018, 106 (11) : 1875 - 1878
  • [10] Application-Specific Arithmetic in High-Level Synthesis Tools
    Uguen, Yohann
    De Dinechin, Florent
    Lezaud, Victor
    Derrien, Steven
    [J]. ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2020, 17 (01)