03.12.2012 Views

Security - Telenor

Security - Telenor

Security - Telenor

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!