-
A cipher is t-secure when a successful attack needs at least ==t== operations.
-
We then express security in bits, where ==“n-bit security” means that about 2^n== operations are needed to compromise some particular security notion.
-
If it takes 1000000 operations, the security level is log2(1000000), or about 20 bits (that is, 1000000 is approximately equal to 2^20).
-
-
Bit security proves useful when ==comparing ciphers’ security levels== but doesn’t provide enough information on the actual cost of an attack.
- It is sometimes too simple an abstraction because ==it just assumes that an n-bit-secure cipher== takes 2n operations to break, whatever these operations are.
==Full Attack Cost==
-
Bit security expresses the cost of the fastest attack against a cipher by estimating ==the order of magnitude of the number of operations== it needs to succeed.
-
Other factors are as follows :
Parallelism
- For example, consider two attacks of 2^56 operations each. The difference between the two is that the second attack can be parallelized but not the first.
- The first attack performs ==256 sequentially dependent operations==, such as xi + 1 = fi(xi) for some x0 and some functions fi (with i from 1 to 256), whereas the second performs ==256 independent operations==, such as xi = fi(x) for some x and i from 1 to 256, which can be executed in parallel.
- Parallel processing can be orders of magnitude faster than sequential processing.
- The first attack, however, ==cannot benefit from having multiple cores available== because each operation relies on the previous operation’s result.
Memory
- Concerning the way space is used, it’s important to consider
- how many memory lookups are required as part of an attack,
- the speed of memory accesses (which may differ between reads and writes),
- the size of the data accessed,
- the access pattern (contiguous or random memory addresses),
- and how data is structured in memory.
Precomputation
- Need to be performed only once and can be reused over subsequent executions of the attack. Precomputation is sometimes called the ==offline stage of an attack.==
Number of Targets
- The greater the number of targets, the greater the attack surface, and ==the more attackers can learn about the keys they’re after.==
- For example, to break one 128-bit key of 2^16 = 65536 target keys, it will take on average 2^128 - 16 = 2^112 evaluations of the cipher. That is, ==the cost (and speed) of the attack decreases as the number of targets increases.==