Symmetric-key ciphers can be found in a range of security protocols.
They are primarily used for encrypting communication, data, media, and
a host of other content types.
Many of these ciphers rely on bit-manipulating operations in order
to transform back and forth between plaintext and ciphertext. While
easily implemented in dedicated hardware blocks, some of these
bit-manipulating operations are computationally expensive when
performed in software.
In systems that do a fair amount of encryption/decryption,
implementing the symmetric-key ciphers in
hardware is the preferred way to accelerate their execution. There are,
however, systems in which hardware cryptographic acceleration is
unnecessary or inappropriate.
Examples may include systems that perform only a moderate amount of
encryption/decryption, systems that demand more cryptographic
processing flexibility than that achieved by hardware acceleration,
and/or systems that cannot afford the cost of cryptographic
acceleration.
In cases where acceleration is not the answer, intelligent software
implementations of cryptographic algorithms in general and of
symmetric-key ciphers in particular may prove essential.
This article discusses software implementations of symmetric-key
ciphers, taking a look at several algorithm-level optimizations as well
as low-level instruction selection approaches. Results obtained from
running un-optimized and optimized symmetric-key ciphers on our target
platform, Analog Devices' Blackfin processor, prove that significant
acceleration of symmetric-key ciphers can be attained in software.
A review of Symmetric-Key Cipher
basics
Symmetric-key ciphers (Figure 1, below)
are so named because both ends to a secure communication require access
to the same key. This key is used both for encryption, transforming the
clear plain text into obfuscated cipher text, and for decryption,
recovering the plain text from the obfuscated cipher text.
 |
| Figure
1 - Symmetric-Key Ciphers |
Both parties to a secure communication should maintain the secrecy
of the symmetric-key. If an unauthorized party gained access to the
symmetric-key, such a party would be able to decrypt the ciphertext and
consequently break the confidentiality of the communication. Because of
the secrecy requirement on the key used in symmetric-key ciphers, such
ciphers are also referred to as secret-key, or private-key, ciphers.
Symmetric-key ciphers can be found in a range of security protocols.
Internet
Protocol security (IPSec),
which is a framework of open standards for protecting communications
over IP networks, uses symmetric-key ciphers to implement, among other
things, data confidentiality.
Every time an employee establishes a Virtual
Private Network (VPN) connection to remotely access company
computing resources, the symmetric-key ciphers operating within the
IPSec framework provide the confidentiality of the communication link.
Symmetric-key ciphers are by no means only limited to servers and
PCs, but extend to embedded systems. The widespread use of smart phones
and PDAs to access emails and to carry out e-commerce transactions
necessitates the execution of symmetric-key ciphers on these devices.
Other embedded systems that handle confidential data, such as ATMs,
slot machines, POS terminals, and some medical devices also rely on
symmetric-key ciphers for data confidentiality.
The most common symmetric-key ciphers in use today include
DES/Triple DES and AES. The Data
Encryption Standard (DES) became effective in July 1977.
The secret key used in DES has a length of 56 bits. This key length was
sufficient to provide adequate security in the past.
However, for many applications, a 56-bit key is too short to be
secure against today's cryptanalysts. The DES has now been withdrawn. A
more secure variant of DES is Triple DES,
or officially Triple Data Encryption Algorithm (TDEA). Triple DES is
essentially a serial combination of three DES blocks. Therefore, from
an implementation point of view, DES and Triple DES are almost
identical.
The Advanced
Encryption Standard (AES) superseded DES and became
effective in 2002. It supports secret-key lengths of 128, 192, and 256
bits. AES is enjoying widespread adoption and use worldwide. In many of
the security protocols today, AES and Triple DES are the predominant
symmetric-key ciphers used.