Useful to start by looking at what security services may be required. Consider both similarities and differences with traditional paper documents. Note that there is a degree of ambiguity as to the meaning of various terms.
No single mechanism can provide all the security services wanted. Usually have a range to choose from. But encryption is a key enabling technology.
Note that in the end, it always comes back to PEOPLE. Technology can only assist so much, always need to be concerned about the role of people in the threat equation - who and why.
Can consider attacks from the perspective of how the flow of information from sender to receiver is influenced.
Useful to catagorise these as passive vs active attacks. Passive attacks only involve monitoring (interception) of the information, leading to loss of confidentiality or traffic analysis (monitoring exchange of information without knowing precise contents), and are hard to prevent. Active attacks involve intervention in the information flow (interception, modification, fabrication), and can be easier to detect.
Knowing that threats exist to assets, its necessary to choose appropriate countermeasures, commensurate with the risk involved, and manage their implementation. The details for this are outside the scope of this course (cf postgrad Computer Security course), but note that encryption is a key enabling technology.
In considering the place of encryption, its useful to use the following two models. The first models information flowing over an insecure communications channel, in the presence of possible opponents. Hence an appropriate security transform (encryption alg) can be used, with suitable keys, possibly negotiated using the presence of a trusted third party.
The second model is concerned with controlled access to information or resources on a computer system, in the presence of possible opponents. Here appropriate controls are needed on the access and within the system, to provide suitable security. Some cryptographic techniques are useful here also.
Briefly review some terminology we'll be using throughout the course.
C = EK(P)
P = EK-1(C)
EK is chosen
EK; K in K : P -> C
P = EK-1; K in K : C -> P
It can be useful to think about cryptographic functions in a mathematical context (but don't let the terminology scare you :-) For any particular cipher, rather than thinking of it as just one function, its actually a whole family of related functions, and in any given case we use the key to pick one of them out. Obviously these functions must have a single unique inverse, or we'd never be able to recover the original message. When talking about the security of our encryption, it is usual to assume that the opponent knows the family of functions, but doesn't know the key and hence which particular instance is being used.
The first classification is based critically on which security service is provided, and the number of keys used (0, 1, 2). The second, on the basis of how the plaintext is processed (in blocks/units or as individual bits/bytes/characters).
All traditional schemes are private-key encryption algorithms, with a single key, used for both encryption and decryption. They are also known as symmetric, since both sender and receiver are equivalent, either can encrypt or decrypt messages.
Attacks use increasing amounts of information about, and ability to manipulate the cipher, short of knowing the key. In all cases assume the attacker knows the details of the algorithm. In practise this is often true, and it can be surprisingly easy to arrange for known or even chosen text to be processed (sending a document that will be relayed, automated response systems etc). In general, if analyse a ciphers resistance to attack in these circumstances gives greater confidence of its security in practise.
| Key Size (bits) | Time (1us/test) | Time (1us/106test) |
|---|---|---|
| 32 | 35.8 mins | 2.15 msec |
| 40 | 6.4 days | 550 msec |
| 56 | 1140 years | 10.0 hours |
| 64 | ~500000 years | 107 days |
| 128 | 5 x 1024years | 5 x 1018 years |
Comment here that its pretty obvious you can just try every key, but it is necessary to be able to recognise when you've cracked the message, either by knowing explicitly the message you want, or being able to recognise it (ie English text for example). Some forms of data (graphics, machine code) can be much much harder to recognise. Also have the circumstance where there is simply insufficient ciphertext to ever be able to recognise the corresponding message (see Shannon entropy theory and unicity distance later).
Unconditional security would be nice, but the only known such cipher is the one-time pad (later). For all reasonable encryption algorithms, have to assume computational security where it either takes too long, or is too expensive, to bother breaking the cipher.