25.02.2013 Views

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

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.

Another public key algorithm, the very first ever invented, is Diffie-Hellman. This<br />

is a key exchange algorithm; that is, it is used for securely establishing a shared<br />

secret over an insecure channel. The communicating parties exchange public<br />

information from which they derive a key. An eavesdropper cannot reconstruct<br />

the key from the information that went through the insecure channel. More<br />

precisely, the reconstruction is computationally infeasible. The security of<br />

Diffie-Hellman relies on the difficulty of calculating discrete logarithms in finite<br />

fields. After the shared secret has been established, it can then be used to derive<br />

keys for use with symmetric key algorithms such as DES.<br />

Diffie-Hellman makes the secure derivation of a shared secret key possible, but it<br />

does not authenticate the parties. For authentication, another public key<br />

algorithm must be used, such as RSA.<br />

Unfortunately, public key algorithms, while providing for easier key management,<br />

privacy, authentication, <strong>and</strong> non-repudiation, also have some disadvantages.<br />

The most important one is that they are slow <strong>and</strong> difficult to implement in<br />

hardware. For example, RSA is 100 to 10,000 times slower than DES, depending<br />

on implementation. Because of this, public key algorithms generally are not used<br />

for bulk encryption. Their most important use is key exchange <strong>and</strong><br />

authentication. Another notable disadvantage is that they are susceptible to<br />

certain cryptanalytic attacks to which symmetric algorithms are resistant.<br />

Therefore, a good cryptographic system (cryptosystem) makes use of both<br />

worlds. It uses public key algorithms in the session establishment phase for<br />

authentication <strong>and</strong> key exchange, <strong>and</strong> then a symmetric one for encrypting the<br />

consequent messages.<br />

For the interested reader, we give more detailed information of the two most<br />

important asymmetric algorithms, which involve modular arithmetic. An<br />

arithmetic operation modulo m means that the result of that operation is divided<br />

by m <strong>and</strong> the remainder is taken. For example: 3 * 6 mod 4 = 2, since 3 * 6 = 18<br />

<strong>and</strong> dividing 18 by 4 gives us 2 as the remainder.<br />

RSA public key algorithm<br />

RSA is used in the ISAKMP/Oakley framework as one of the possible<br />

authentication methods. The principle of the RSA algorithm is as follows:<br />

1. Take two large primes, p <strong>and</strong> q.<br />

2. Find their product n = pq; n is called the modulus.<br />

3. Choose a number, e, less than n <strong>and</strong> relatively prime to (p-1)(q-1), which<br />

means that e <strong>and</strong> (p-1)(q-1) have no common factor other than 1.<br />

4. Find its inverse, d mod (p-1)(q-1), which means that ed = 1 mod (p-1)(q-1).<br />

Chapter 22. <strong>TCP</strong>/<strong>IP</strong> security 783

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

Saved successfully!

Ooh no, something went wrong!