18.04.2013 Views

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

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.

Cryptography<br />

Next: Finite State Machine Minimization Up: Set and String Problems Previous: Text Compression<br />

Cryptography<br />

Input description: A plaintext message T or encrypted text E, and a key k.<br />

Problem description: Encode T using k giving E, or decode E using k back to T.<br />

Discussion: Cryptography has grown substantially in importance in recent years, as computer networks<br />

have made confidential documents more vulnerable to prying eyes. Cryptography is a way to increase<br />

security by making messages difficult to read if they fall into the wrong hands. Although the discipline of<br />

cryptography is at least two thousand years old, its algorithmic and mathematical foundations have<br />

recently solidified to the point where there can now be talk of provably secure cryptosystems.<br />

<strong>The</strong>re are three classes of cryptosystems everyone should be aware of:<br />

● Caesar shifts - <strong>The</strong> oldest ciphers involve mapping each character of the alphabet to a<br />

different letter. <strong>The</strong> weakest such ciphers rotate the alphabet by some fixed number of characters<br />

(often 13), and thus have only 26 possible keys. Better is to use an arbitrary permutation of the<br />

letters, so there are 26! possible keys. Even so, such systems can be easily attacked by counting<br />

the frequency of each symbol and exploiting the fact that `e' occurs more often than `z'. While<br />

there are variants that will make this more difficult to break, none will be as secure as DES or<br />

file:///E|/BOOK/BOOK5/NODE206.HTM (1 of 5) [19/1/2003 1:32:13]

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

Saved successfully!

Ooh no, something went wrong!