ULCL - An Ultra-lightweight Cryptographic Library for Embedded Systems

George Hatzivasilis, Apostolos Theodoridis, Elias Gasparis, Charalampos Manifavas

Abstract

The evolution of embedded systems and their applications in every daily activity, derive the development of lightweight cryptography. Widely used crypto-libraries are too large to fit on constrained devices, like sensor nodes. Also, such libraries provide redundant functionality as each lightweight and ultra-lightweight application utilizes a limited and specific set of crypto-primitives and protocols. In this paper we present the ULCL crypto-library for embedded systems. It is a compact software cryptographic library, optimized for space and performance. The library is a collection of open source ciphers (27 overall primitives). We implement a common lightweight API for utilizing all primitives and a user-friendly API for users that aren’t familiar with cryptographic applications. One of the main novelties is the configurable compilation process. A user can compile the exact set of crypto-primitives that are required to implement a lightweight application. The library is implemented in C and measurements were made on PC, BeagleBone and MemSic IRIS devices. ULCL occupies 4 – 516.7KB of code. We compare our library with other similar proposals and their suitability in different types of embedded devices.

References

  1. Aumasson, J.-P. et al., 2008. Blake implementation. SHA3 contest. Available at: http://131002.net/blake/ .
  2. Babbage, S. & Dodd, M., 2005. MICHEY v2 implementation. eSTREAM project. Available at: http://www.ecrypt.eu.org/stream/e2-mickey.html .
  3. BeagleBoard.org Foundation, 2011. BeagleBone manual. Available at: http://beagleboard.org/bone .
  4. Berbain, C. et al., 2005. SOSEMANUK implementation. eSTREAM project. Available at: http:// www.ecrypt.eu.org/stream/e2-sosemanuk.html .
  5. Bernstein, D. J., 2009. Cryptography in NaCl. Networking and Cryptography library, (Mc 152). Available at: http://cr.yp.to/highspeed/naclcrypto-20090310.pdf .
  6. Bernstein, D. J., 2005. Salsa20 implementation. eSTREAM project. Available at: http:// www.ecrypt.eu.org/stream/e2-salsa20.html .
  7. Bernstein, D. J., Lange, T. & Schwabe, P., 2012. The security impact of a new cryptographic library. Progress in Cryptology- LATINCRYPT 2012, Springer Berlin Heidelberg, LNCS, 7533, pp.159-176. Available at: http://link.springer.com/ chapter/10.1007/978-3-642-33481-8_9 .
  8. Bertoni, G. et al., 2008. SHA-3 (Keccak) implementation. SHA-3 contest. Available at: http:// keccak.noekeon.org/ .
  9. Boesgaard, M. et al., 2005. Rabbit implementation. eSTREAM project. Available at: http:// www.ecrypt.eu.org/stream/e2-rabbit.html .
  10. Canniere, C. de, Dunkelman, O. & Knezevic, M., 2009. KATAN/KTANTAN implementation. Available at: http://www.cs.technion.ac.il/orrd/KATAN/ .
  11. Canniere, C. De & Preneel, B., 2005. TRIVIUM implementation. eSTREAM project. Available at: http://www.ecrypt.eu.org/stream/e2-trivium.html .
  12. Chen, C.-Y. & Chao, H.-C., 2011. A survey of key distribution in wireless sensor networks. In J. & S. Wiley, ed. Security and Communication Networks. Wiley Online Library, p. n/a-n/a. Available at: http://doi.wiley.com/10.1002/sec.354 .
  13. CIFS Library, 2010. DES & 3DES implementation. Available at: http://www.ubiqx.org/proj/ libcifs/source/Auth/ .
  14. CyASSL, 2013. MD5, SHA1, SHA256, SHA512, ARC4 implementatons. Available at: http://www.yassl.com/ yaSSL/Products-cyassl.html .
  15. Dworkin, M., 2001. Recommendation for block cipher modes of operation, NIST special publication, Available at: http://csrc.nist.gov/publications/ nistpubs/800-38a/sp800-38a.pdf .
  16. ECRYPT, 2008, eSTREAM project. Available at: http://www.ecrypt.eu.org/stream/.
  17. Erdelsky, P.J., 2002. AES implementation. Available at: http://www.efgh.com/software/rijndael.htm .
  18. Ferguson, N. et al., 2008. Skein implementation. SHA-3 contest. Available at: http://www.skein-hash.info/ .
  19. Gauravaram, P. et al., 2008. Groestl implementation. SHA-3 contest. Available at: http://www.groestl.info/ .
  20. Gligoroski, D., 2003. Edon-library of reconfigurable cryptographic primitives suitable for embedded systems. In Workshop on cryptographic hardware and embedded systems. Available at: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10. 1.1.13.7586&rep=rep1&type=pdf .
  21. Guo, J. et al., 2011. LED implementation. Available at: http://sites.google.com/site/ledblockcipher/home-1 .
  22. Hell, M., Johansson, T. & Meier, W., 2005. Grain implementation. eSTREAM project. Available at: http://www.ecrypt.eu.org/stream/e2-grain.html .
  23. Hutter, M. & Schwabe, P., 2013. NaCl on 8-bit AVR Microcontrollers. IACR Cryptology ePrint Archive2. Available at: http://eprint.iacr.org/2013/375.pdf.
  24. Klose, D., 2007. PRESENT implementation. Available at: http://www.lightweightcrypto.org/implementations.ph p .
  25. Manifavas, C. et al., 2013. Lightweight Cryptography for Embedded Systems - A Comparative Analysis. 6th International Workshop on Autonomous and Spontaneous Security - SETOP2013, Springer, LNCS, 8247, pp.1-18.
  26. Memsic Inc., 2010. Memsic Isis manual. Available at: http://www.memsic.com/userfiles/files/UserManuals/iris-oem-edition-hardware-ref-manual-7430- 0549-02.pdf .
  27. NIST, 2012. SHA-3 contest. Available at: http://csrc.nist.gov/groups/ST/hash/sha3/Round3/submissions_rnd3.html .
  28. NTT - Secure Platform Laboratories - Information Security Project, 2013. Camellia implementation. Available at: https://info.isl.ntt.co.jp/crypt/ eng/camellia/ .
  29. SONY, 2008. Clefia implementation. Available at: http://www.sony.net/Products/cryptography/clefia/ .
  30. The OpenSSL Project, 2013. Openssl, Available at: http://www.openssl.org .
  31. Wheeler, D. & Needham, R., 1997. XTEA implementation. Available at: http://en.wikipedia.org/ wiki/XTEA .
  32. Wheeler, D. & Needham, R., 1998. XXTEA implementation. Available at: http://en.wikipedia.org/ wiki/XXTEA .
  33. WolfSSL Inc., 2013. CyaSSL embedded SSL library. Available at: http://yassl.com/yaSSL/Productscyassl.html .
  34. Wu, H., 2005. HC-128 implementation. eSTREAM project. Available at: http://www.ecrypt.eu.org/ stream/e2-hc128.html .
  35. Wu, H., 2008. JH implementation. SHA-3 contest. Available at: http://www3.ntu.edu.sg/home/ wuhj/research/jh/ .
Download


Paper Citation


in Harvard Style

Hatzivasilis G., Theodoridis A., Gasparis E. and Manifavas C. (2014). ULCL - An Ultra-lightweight Cryptographic Library for Embedded Systems . In Proceedings of the 4th International Conference on Pervasive and Embedded Computing and Communication Systems - Volume 1: MeSeCCS, (PECCS 2014) ISBN 978-989-758-000-0, pages 247-254. DOI: 10.5220/0004900602470254


in Bibtex Style

@conference{meseccs14,
author={George Hatzivasilis and Apostolos Theodoridis and Elias Gasparis and Charalampos Manifavas},
title={ULCL - An Ultra-lightweight Cryptographic Library for Embedded Systems},
booktitle={Proceedings of the 4th International Conference on Pervasive and Embedded Computing and Communication Systems - Volume 1: MeSeCCS, (PECCS 2014)},
year={2014},
pages={247-254},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004900602470254},
isbn={978-989-758-000-0},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 4th International Conference on Pervasive and Embedded Computing and Communication Systems - Volume 1: MeSeCCS, (PECCS 2014)
TI - ULCL - An Ultra-lightweight Cryptographic Library for Embedded Systems
SN - 978-989-758-000-0
AU - Hatzivasilis G.
AU - Theodoridis A.
AU - Gasparis E.
AU - Manifavas C.
PY - 2014
SP - 247
EP - 254
DO - 10.5220/0004900602470254