2012
DOI: 10.1007/978-3-642-29320-7_21
|View full text |Cite
|
Sign up to set email alerts
|

Type Checking Cryptography Implementations

Abstract: Cryptographic software development is a challenging field: high performance must be achieved, while ensuring correctness and compliance with low-level security policies. CAO is a domain specific language designed to assist development of cryptographic software. An important feature of this language is the design of a novel type system introducing native types such as predefined sized vectors, matrices and bit strings, residue classes modulo an integer, finite fields and finite field extensions, allowing for ex… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
9
0

Year Published

2014
2014
2019
2019

Publication Types

Select...
2
2
1

Relationship

2
3

Authors

Journals

citations
Cited by 5 publications
(9 citation statements)
references
References 6 publications
0
9
0
Order By: Relevance
“…For example, the size restrictions associated with matrix addition and multiplication are enforced by the type system. The same happens for operations involving bit strings, rings and finite fields, where the type system checks that operator inputs have matching lengths, moduli, etc.s The soundness of this type system has recently been established with respect to the semantics of CAO [19]. This result implies that a correctly typed CAO program can only give rise to a well-defined set of trapped errors.…”
Section: Deductive Verification Of Cao Programsmentioning
confidence: 99%
See 2 more Smart Citations
“…For example, the size restrictions associated with matrix addition and multiplication are enforced by the type system. The same happens for operations involving bit strings, rings and finite fields, where the type system checks that operator inputs have matching lengths, moduli, etc.s The soundness of this type system has recently been established with respect to the semantics of CAO [19]. This result implies that a correctly typed CAO program can only give rise to a well-defined set of trapped errors.…”
Section: Deductive Verification Of Cao Programsmentioning
confidence: 99%
“…The language has been designed to allow the programmer to work over a syntax that is similar to that of C, whilst focusing on the aspects of cryptographic primitive implementation that are most critical for security and efficiency. A detailed specification of CAO can be found in [17,18]. AppendixA includes source code extracted from a CAO implementation of the NaCl crypography library.…”
Section: Deductive Verification Of Cao Programsmentioning
confidence: 99%
See 1 more Smart Citation
“…However, the burden is still on the developer to write constant-time code, as qhasm has no notion of non-interference. CAO [Barbosa et al 2012] and Cryptol [Galois 2016] are higher-level DSLs for crypto implementations, but do not have verified non-interference guarantees.…”
Section: Related Workmentioning
confidence: 99%
“…FaCT [Cauligi et al 2017] is a high-level language that compiles to LLVM which it then verifies with ct-verif [Almeida et al 2016b]. CAO [Barbosa et al 2014[Barbosa et al , 2012 and Cryptol [Galois 2016] are high-level DSLs for crypto implementations, but do not have verified non-interference guarantees. All these efforts are complementary to our low-level approach.…”
Section: Related Workmentioning
confidence: 99%