Shortcuts
Title Page
Crypto Tools Library (CTL) Based on RVC-CALJunaid Jameel Ahmad and Shujun Li
University of Konstanz, Germany
Introduction
Crypto Tools Library is a set of reconfigurable cryptosystems and cryptographic primitives developed based on RVC-CAL. The main goal is to offer an easy-to-use library for both the cryptography and multimedia communities. For cryptography community, it can be used as a fast prototyping platform for creating cryptosystems and testing their performance. For multimedia community, the CTL can be used: 1) to demonstrate that RVC-CAL is a fast prototyping language capable of developing more applications beyond video codecs; 2) to lay the foundation of developing reconfigurable multimedia security systems by combining VTL and CTL.The CTL is open-source available for downloading at the following SVN site:
Design Principles
The CTL was developed by strictly following the specifications/standards defining the implemented cryptosystems. For block ciphers, both enciphers and deciphers are implemented so that a complete security solution can be built. When it is possible, the CTL FUs are designed to exploit inherent parallelism in the implemented cryptosystems. For instance, for block ciphers based on multiple rounds, the round number is also transmitted among different FUs so that encryption/decryption of different blocks can be parallelized.The CTL is designed so that different cryptosystems can share as many as common basic FUs. We believe that this helps to enhance reusability of the code and reconfigurability of the CTL cryptosystems.
Different from VTL, CTL includes complete solutions of the implemented cryptosystems, which are normally a set of CAL and XDF files.
The naming of the CTL FUs and FU networks follow the normative names of those cryptosystems in their original specifications/standards. When there is no original specification/standard (like ARC4) we use the most commonly used name in the community.
Each CTL cryptosystem has been tested with golden responses extracted from the corresponding specifications/standards or established implementations of the cryptosystems in other programming languages. The CTL is accompanied with a set of testbeds that have been simulated with Orcc.
Current Status
The development of CTL started since March 2010. As of the date of writing this document, the following cryptosystems and basic components for building cryptosystems have been implemented and tested:-
Block ciphers
- Modes of operations: ECB (trivial mode, no CAL file needed), CBC, CFB, OFB, CTR
- AES (Rijndael) as defined in FIPS PUB 197 (2001): AES-128/192/256 encipher and decipher; ECB, CBC, CFB8, CFB64, OFB, CTR
- DES as defined in FIPS PUB 46-3 (1999): Reconfigurable Feistel network; DES encipher and decipher (all modes); ECB, CBC, CFB8, CFB64, OFB, CTR
- TDES (Triple DES) as defined in FIPS 46-3 (1999), NIST SP 800-67 (2008): TDES encipher and decipher; ECB, CBC, CFB8, CFB64, OFB, CTR
- Blowfish as published at Bruce Schneier's Blowfish web page
-
Stream ciphers
- ARC4 (Alleged RC4)
- Rabbit
-
Cryptographic hash functions
- SHA-1/2 as defined in FIPS PUB 180-3 (2008): SHA-1 (SHA-160), SHA-224, SHA-256
- Keyed-hash message authentication code (HMAC) based on SHA-1 (SHA-160), SHA-224, SHA-256
-
Pseudorandom number/bit generators
- LCG (Linear congruential generator): LCG32 (32-bit numbers), LCG64 (64-bit numbers)
- LFSR (Linear feedback shift register): The order of the feedback polynomial is up to 63
- Some common FUs for XORing, muxing, demuxing and token conversion
Future Plan
In the future, we plan to start combining VTL (RVC decoders), RVC encoders and CTL to demonstrate reconfigurable joint multimedia encoding-encryption (JMEE) systems.We will also try to enrich the CTL by including more block ciphers, stream ciphers and hash functions. The following cryptosystems are currently on the to-do list: Blowfish, Twofish, the other six stream ciphers in the eSTREAM portfolio.
So far, no public-key cryptosystem is included in the CTL because big integers support is still missing from RVC-CAL and the supporting tools. We plan to develop a RVC-CAL library to support big integers and useful functions in number theory. Then, we will develop some public-key cryptosystems like RSA and Diffie-Hellman key exchange protocols. The big integers library will also allow us to develop hash functions requiring big integers support, e.g., SHA-348, SHA-512 and some SHA-3 candidates.
Another direction is to develop more optimized editions of CTL cryptosystems. For instance, to enhance the efficiency, bit slicing technique can be used to optimize parallelism in many block ciphers.
Acknowledgments
We thank Marco Mattavelli with the EPFL in Lausanne for valuable discussion on the development of CTL, Matthieu Wipliez and Mickaël Raulet with the IETR/INSA Rennes for technical support on providing the RVC-CAL development tool Orcc.Related Publications
- Junaid Jameel Ahmad, Shujun Li, Ahmad-Reza Sadeghi and Thomas Schneider, "CTL: A Platform-Independent Crypto Tools Library Based on Dataflow Programming Paradigm," accepted to 16th International Conference on Financial Cryptography and Data Security (FC 2012) as a long paper, to be held from February 27 - March 2, 2012, Divi Flamingo Beach Resort, Bonaire, the Netherlands Antilles [Full Edition: IACR ePrint 2011/679] © IFCA
- Junaid Jameel Ahmad, Shujun Li, Ihab Amer and Marco Mattavelli, "Building Multimedia Security Applications in the MPEG Reconfigurable Video Coding (RVC) Framework," in Proceedings of 13th ACM Workshop on Multimedia and Security (ACM MM&Sec 2011, Buffalo, NY, USA, September 29-30, 2011), pages 121-130, 2011 © ACM
Related MPEG Contributions
The following MPEG contribution presents the CTL for the first time as an input document to the MPEG video subgroup.- Junaid Jameel Ahmad, Shujun Li, Marco Mattavelli, Matthieu Wipliez, Mickaël Raulet, "Crypto Tools Library (CTL): Applying RVC-CAL to Multimedia Security Applications," ISO/IEC JTC1/SC29/WG11, MPEG2010/m18404, 94th MPEG Meeting, Guangzhou, China, October 2010
- Junaid Jameel Ahmad and Shujun Li, "Extending the Comparative Study on the Performance of C Code Automatically Generated by ORCC from RVC-CAL Code to a Resource-Constrained Embedded System," ISO/IEC JTC1/SC29/WG11, MPEG2011/m21289, 97th MPEG Meeting, Torino, Italy, July 2011
- Junaid Jameel Ahmad and Shujun Li, "Performance Benchmarking of C Code Automatically Generated by ORCC from RVC-CAL Code on a Quad-Core Machine," ISO/IEC JTC1/SC29/WG11, MPEG2011/m21250, 97th MPEG Meeting, Torino, Italy, July 2011
- Junaid Jameel Ahmad, Shujun Li, Endri Bezati and Marco Mattavelli, "Building Joint Image Encryption-Encoding (JIEE) and Compressed Domain Image Watermarking Systems in the RVC Framework," ISO/IEC JTC1/SC29/WG11, MPEG2011/m21188, 97th MPEG Meeting, Torino, Italy, July 2011
- Junaid Jameel Ahmad, Shujun Li, Ihab Amer, and Marco Mattavelli, "Building Joint MPEG-4 AVC Video Encryption-Encoding (JVEE) System in the RVC Framework," ISO/IEC JTC1/SC29/WG11, MPEG2011/m21185, 97th MPEG Meeting, Torino, Italy, July 2011
- Junaid Jameel Ahmad and Shujun Li, "A comparative study on the performance of C code automatically generated by ORCC from RVC-CAL code," ISO/IEC JTC1/SC29/WG11, MPEG2011/m19383, 95th MPEG Meeting, Daegu, South Korea, January 2011