Security - Telenor
Security - Telenor
Security - Telenor
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
14<br />
K<br />
m i<br />
Stream<br />
cipher<br />
algorithm<br />
Figure 2 Principles for<br />
synchronous stream cipher<br />
Figure 3 Principles for<br />
block cipher<br />
K<br />
k i<br />
c i<br />
Stream<br />
cipher<br />
algorithm<br />
system (also called public key system), it is<br />
impossible to find K D from knowledge of K E<br />
and the encryption key can be a public parameter<br />
belonging to the entity B. In this case there is a<br />
need for an authenticated key channel from B to<br />
A. Current systems often solve this distribution<br />
problem using certificates and a Public Key<br />
Infrastructure (PKI).<br />
For symmetric systems, the algorithm defining<br />
the encryption/decryption transformation can<br />
either be a block cipher or a stream cipher depending<br />
on the use of internal memory in the<br />
encrypting device.<br />
A stream cipher breaks the plaintext message<br />
into successive characters or bits m 1 , m 2 , ... m n<br />
and encrypts each m i with the i’th element of a<br />
key stream k 1 , k 2 , ... k n derived from the basic<br />
key K and optionally an additional message key.<br />
Most stream ciphers operate bitwise by adding<br />
the message bit and the key stream bit modulo 2,<br />
i.e. c i = m i ⊕ k i . The receiver can now recover<br />
the plaintext bit m i from the ciphertext bit c i by<br />
adding with the corresponding key stream bit k i .<br />
Note that this requires full bit synchronisation<br />
between the encrypting and decrypting devices.<br />
The general principles for a stream cipher are<br />
shown in Figure 2.<br />
A block cipher breaks the plaintext message into<br />
successive blocks M 1 , M 2 , ..., M n and encrypts<br />
each block using the same key K. A typical<br />
block length is 64 or 128 bits. For a fixed key<br />
K, the cryptographic transformation can then be<br />
seen as a permutation on the set of all possible<br />
blocks. The US Data Encryption Standard DES<br />
[3] is a well-known example of a block cipher<br />
using a 56 bits key and operating on 64 bits data<br />
blocks. Note that a block cipher can operate in<br />
M<br />
Block<br />
cipher<br />
C<br />
Block<br />
cipher<br />
M<br />
encryption<br />
decryption<br />
K<br />
K<br />
k i<br />
m i<br />
different modes as defined by the international<br />
standard ISO/IEC IS 10116 [4]. By operating a<br />
block cipher in Cipher Feedback Mode (CBC) or<br />
Output Feedback Mode (OFB), a block cipher<br />
behaves like a stream cipher. There are also standardised<br />
methods for using a block cipher to<br />
compute Message Authentication Codes (MAC)<br />
[5] and for hashing operations [6]. This means<br />
that a strong and efficient block cipher is a<br />
handy tool for implementation of several security<br />
services. The general principle for a block<br />
cipher is shown in Figure 3.<br />
The strength of a cryptographic system relies<br />
heavily on the two components, the encryption<br />
algorithm and the key management system; neither<br />
is simple to design. For the encryption algorithm<br />
several security requirements can be summarised<br />
in the following: Without knowledge<br />
of the secret key, it shall be impossible for an<br />
attacker to find the plaintext, given the ciphertext;<br />
or from known plaintext/ciphertext pairs to<br />
find the secret key. This means that the security<br />
of the system does not depend on the secrecy of<br />
the algorithm itself. When an algorithm is analysed,<br />
it is important to assume that the opponent<br />
has detailed information about the specifications.<br />
3 The Strength of<br />
Cryptographic Algorithms<br />
Cryptographic algorithms are fundamentally<br />
different from other algorithms with respect<br />
to their intended goal. Normally an algorithm is<br />
designed to solve a specific problem like error<br />
correction or finding a path through a complex<br />
network. We are then normally able to prove<br />
that the algorithm solves the problem completely,<br />
even if other and more efficient algorithms<br />
may be found. As long as we can meet<br />
operational requirements, the algorithm will<br />
continue to do its job and it will never be<br />
“worn out” or “broken”.<br />
The goal of an encryption algorithm is to protect<br />
information against all possible attacks of known<br />
and unknown enemies. Even if we are able to<br />
prove that an algorithm is resistant to a specific<br />
attack, we can never be sure that it can withstand<br />
a novel attack tomorrow. Perhaps we can design<br />
an algorithm that is secure against the computational<br />
power of a single enterprise. With the current<br />
growth in processing power, the same algorithm<br />
could be vulnerable to governmental agencies<br />
and dedicated hardware in a few years’<br />
time. We see today that some of the most modern<br />
and secure crypto systems will be easy tasks<br />
for new computational models like DNA computing<br />
[7] and quantum computing [8].<br />
A theoretical foundation for cryptographic systems<br />
may be based on information theory or<br />
computational complexity theory, but neither of<br />
Telektronikk 3.2000