Session 2 - Improving Security
Privacy Amplification
As previously, we have our protagonists Alice and Bob, trying to communicate in a secure manner, and an eavesdropper Eve, trying to intercept the communication.
As we have seen in Session 1, Alice and Bob need a shared private key to be able to communicate.
If Alice and Bob know each other well, they might attempt to build a private key from common shared knowledge, such as the flavor of the first cone of ice cream they shared, or the name of Bob's cats. Doing so will yield a somewhat "fairly" secret key.
This key will only be fairly secret, as other individuals might also know such shared information, and Eve might be able to gather some through various means.
Naturally, Alice and Bob want to find a scheme to create an actually secret key from this fairly secret starting key.
Introducing privacy amplification :
Alice and Bob share a "weak secret"
While the distribution of
Eve possesses side information
The goal for Alice and Bob is to generate some
The size of
Intuitively, this will be quantified by the min-entropy
Randomness Extraction
Let's first start with a simpler problem, Alice has some source
While Alice could just sample from an actually uniform distribution, or measure
A simple example
If
One can use the same approach for variables which aren't identically distributed, and get a single bit
Seeded extractors
Using a deterministic function to extract randomness (such as
Instead, we need to expand the scope to seeded extractor functions, which use a seed as a source of randomness. However, since this randomness may be costly, the seed should be of relatively small size compared to
A
One might think that one could simply use the seed as randomness, but Alice and Bob could not choose the same seed as a private key without communicating it publicly.
This induces the definition for a strong seeded extractor, where the extractor's input is independent from the seed
A
Why the min-entropy?
Intuitively, the min-entropy gives an estimate of how much randomness there is to extract from
If
Conversely, we will show strong seeded extractors which achieve the extraction of a (mostly) uniform
Hashing
To build a strong seeded extractor, we will make use of hashing functions, which essentially take a long string and map them to shorter strings somewhat uniformally.
We need to introduce classes of hashing functions families, namely 1-universal and 2-universal hash function families :
A family
Notice that the definition has
While a 1-universal family is enough to build a weak extractor, the following definition will let us build a strong one :
A family
Once given such a family, the extractor will use the seed to choose a function in the family, and apply it to
Instead, we will take functions in
Notice how the functions map
Our extractor will now be defined as
How good is Hashing?
To analyze the quality of the hashing functions, we will make use of the leftover hash lemma, which has different formulations depending on whether we consider quantum side information or not.
No side information case
In this case, we don't take into account
Let
With our construction, the seed needs to be of length
To prove this lemma, we will proceed in two steps. First we want to show that the error can be bounded by first showing a bound on the collision probability, and then we bound this collision probability and achieve the result of the bound on the error.
From error to collision probability
As mentionned, we want to bound the error
Bounding the collision probability
Here we make use of the 2-universal family property to bound the collision probability
Side information case
To model side information, we will take
Before proving the statement with side information, we need to dive into the measurements Eve can make. Indeed, finding the optimal measurement to guess
Pretty good measurements
Choosing the measurement
The proof with this pretty good measurement of the quality of our strong seeded extractor follows the same structure as the previous one, however it is quite more involved. If you do want to check it out, it starts page 13 of Lecture 4.
Back to cryptography
Using the results we have just shown, we can now devise a relatively simple protocol for privacy amplification:
- Alice and Bob build their shared weak secret
, which might be correlated to Eve's . - Alice chooses a random seed
for the extractor, and sends it to Bob through the public channel. - Alice and Bob each compute
using the extractor built with hashing functions over the finite field with elements.
This protocol is always correct since Alice and Bob perform the same computation (assuming they have the correct shared
It is also secure, as our seeded extractor gives us the guarantee that
This will be useful for next session, which will discuss key distribution protocols.