Charm: a framework for rapidly prototyping cryptosystems
- PDF / 2,454,347 Bytes
- 18 Pages / 595.276 x 790.866 pts Page_size
- 102 Downloads / 216 Views
REGULAR PAPER
Charm: a framework for rapidly prototyping cryptosystems Joseph A. Akinyele · Christina Garman · Ian Miers · Matthew W. Pagano · Michael Rushanan · Matthew Green · Aviel D. Rubin
Received: 17 September 2012 / Accepted: 9 February 2013 / Published online: 7 March 2013 © Springer-Verlag Berlin Heidelberg 2013
Abstract We describe Charm, an extensible framework for rapidly prototyping cryptographic systems. Charm provides a number of features that explicitly support the development of new protocols, including support for modular composition of cryptographic building blocks, infrastructure for developing interactive protocols, and an extensive library of re-usable code. Our framework also provides a series of specialized tools that enable different cryptosystems to interoperate. We implemented over 40 cryptographic schemes using Charm, including some new ones that, to our knowledge, have never been built in practice. This paper describes our modular architecture, which includes a built-in benchmarking module to compare the performance of Charm primitives to existing C implementations. We show that in many cases our techniques result in an order of magnitude decrease in code size, while inducing an acceptable performance impact. Lastly, the Charm framework is freely available to the research community and to date, we have developed a large, active user base. J. A. Akinyele (B) · C. Garman · I. Miers · M. W. Pagano · M. Rushanan · M. Green · A. D. Rubin Department of Computer Science, Johns Hopkins University, 3400 N. Charles St., 21218 Baltimore, MD, USA e-mail: [email protected] C. Garman e-mail: [email protected] I. Miers e-mail: [email protected] M. W. Pagano e-mail: [email protected] M. Rushanan e-mail: [email protected] M. Green e-mail: [email protected] A. D. Rubin e-mail: [email protected]
Keywords Privacy
Applied cryptography · Protocols · Software ·
1 Introduction Recent developments in cryptography have the potential to greatly impact real world systems. Advances in lattices and pairings have driven new paradigms for securely processing and protecting sensitive information such as identity-based encryption [17,19,27,57,76] and attribute-based encryption [14,58,69,77], and privacy-preserving schemes such as ring signatures [22,36], group signatures [18,25] and anonymous credentials [29,30]. Without these kind of advances, a number of results in top security conferences would not be possible [15,64,79]. Unfortunately, many potentially useful and novel schemes exist only in research papers and have not actually been implemented. A few of these schemes find their way into isolated C libraries that are maintained purely by their creator, executed only as proof of concept and are operated solely in their own limited domain. While elliptic curves and lattices enabled some of these advances, they also substantially increased the complexity: writing software for cryptosystems no longer involves only number theory and modular arithmetic. This is doubly problematic because the size of typical C imp
Data Loading...