High-Level Cryptographic Abstractions

被引:0
|
作者
Kane, Christopher [1 ]
Lin, Bo [1 ]
Chand, Saksham [1 ]
Stoller, Scott D. [1 ]
Liu, Yanhong A. [1 ]
机构
[1] SUNY Stony Brook, Stony Brook, NY 11794 USA
关键词
cryptographic API; declarative configuration; high-level abstraction; AUTHENTICATION; ENCRYPTION; PROTOCOLS; SECURE; TOOL;
D O I
10.1145/3338504.3357343
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
The interfaces exposed by commonly used cryptographic libraries are clumsy, complicated, and assume an understanding of cryptographic algorithms. The challenge is to design high-level abstractions that require minimum knowledge and effort to use while also allowing maximum control when needed. This paper proposes such high-level abstractions consisting of simple cryptographic primitives and full declarative configuration. These abstractions can be implemented on top of any cryptographic library in any language. We have implemented these abstractions in Python, and used them to write a wide variety of well-known security protocols, including Signal, Kerberos, and TLS. We show that programs using our abstractions are much smaller and easier to write than using low-level libraries, where size of security protocols implemented is reduced by about a third on average. We show our implementation incurs a small overhead, less than 5 microseconds for shared key operations and less than 341 microseconds (< 1%) for public key operations. We also show our abstractions are safe against main types of cryptographic misuse reported in the literature.
引用
收藏
页码:31 / 43
页数:13
相关论文
共 50 条
  • [1] High-level nondeterministic abstractions in C++
    Michel, Laurent
    See, Andrew
    Van Hentenryck, Pascal
    [J]. PRINCIPLES AND PRACTICE OF CONSTRAINT PROGRAMMING - CP 2006, 2006, 4204 : 359 - 374
  • [2] Efficient High-Level Abstractions for Web Programming
    Richard-Foy, Julien
    Barais, Olivier
    Jezequel, Jean-Marc
    [J]. ACM SIGPLAN NOTICES, 2014, 49 (03) : 53 - 60
  • [3] Tapeworm: High-level abstractions of shared accesses
    Keleher, PJ
    [J]. USENIX ASSOCIATION PROCEEDINGS OF THE THIRD SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION (OSDI '99), 1999, : 201 - 214
  • [4] Simple High-Level Code for Cryptographic Arithmetic
    Erbsen, Andres
    Philipoom, Jade
    Gross, Jason
    Sloan, Robert
    Chlipala, Adam
    [J]. 1600, Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States (54): : 23 - 30
  • [5] Supporting high-level abstractions through XML technology
    Li, XG
    Agrawal, G
    [J]. LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2004, 2958 : 127 - 146
  • [6] High-Level Programming Abstractions for Distributed Graph Processing
    Kalavri, Vasiliki
    Vlassov, Vladimir
    Haridi, Seif
    [J]. IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, 2018, 30 (02) : 305 - 324
  • [7] Heterogeneous distributed computing based on high-level abstractions
    Vinas, M.
    Fraguela, B. B.
    Andrade, D.
    Doallo, R.
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2018, 30 (17):
  • [8] High-level abstractions for message-passing parallel programming
    Chan, F
    Cao, JN
    Sun, YD
    [J]. PARALLEL COMPUTING, 2003, 29 (11-12) : 1589 - 1621
  • [9] High-Level Abstractions and Modular Debugging for FPGA Design Validation
    Iskander, Yousef
    Patterson, Cameron
    Craven, Stephen
    [J]. ACM TRANSACTIONS ON RECONFIGURABLE TECHNOLOGY AND SYSTEMS, 2014, 7 (01)
  • [10] High-Level Stream Parallelism Abstractions with SPar Targeting GPUs
    Rockenbach, Dinei A.
    Griebler, Dalvan
    Danelutto, Marco
    Fernandes, Luiz G.
    [J]. PARALLEL COMPUTING: TECHNOLOGY TRENDS, 2020, 36 : 543 - 552