Cryptography Reference
In-Depth Information
Hence, to use the identification scheme, a user, say
Alice
, whose identity is en-
coded by the string
α
, should first uniformly select a secret string
s
, compute
i
def
=
I
s
(
α
),
ask the trusted third party to place the record (
α,
i
) in the public file, and store the string
s
in a safe place. The viability condition asserts that
Alice
can convince
Bob
of her
identity by executing the identification protocol:
Alice
invokes the program
P
using
the stored string
s
as auxiliary input, and
Bob
uses the program
V
and makes sure that the
common input is the public record containing
α
(which is in the public file). Ignoring
for a moment the algorithm
B
and the random variable
T
n
, the security condition
implies that it is infeasible for a party to impersonate
Alice
if all that this party has
is the public record of
Alice
and some unrelated auxiliary information (represented
by the auxiliary input
z
). However, such a security condition may not suffice in many
applications, since a user wishing to impersonate
Alice
may ask her first to prove
her identity to him/her. The (full) security condition asserts that even if
Alice
has
proved her identity to
Carol
many times in the past, still it is infeasible for
Carol
to
impersonate
Alice
. We stress that
Carol
cannot impersonate
Alice
to
Bob
provided
that she cannot interact concurrently with both
Alice
and
Bob
. In case this condition
does not hold, nothing is guaranteed (and indeed
Carol
can easily impersonate
Alice
by referring
Bob
's questions to
Alice
and answering as
Alice
does).
4.7.5.2. Identification Schemes and Proofs of Knowledge
A natural way to determine a person's identity is to ask him/her to supply a proof of
knowledge of a fact that the person is supposed to know. Let us consider a specific (but
in fact quite generic) example.
Construction 4.7.9 (Identification Scheme Based on a One-Way Function):
Let f be a function. On input an identity
α
∈{
0
,
1
}
n
, the
information-generating
algorithm
uniformly selects a string s
∈{
0
,
1
}
n
and outputs
f
(
s
)
.
(The pair
(
.)
The
identification proto-
col
consists of a proof of knowledge of the inverse of the second element in the
public record. Namely, in order to prove its identity, user
α,
f
(
s
)) is the public record for the user named
α
α
proves that it knows a
string s such that f
(
s
)
r
)
is a record in the public file. (The proof
of knowledge in use is allowed to have negligible knowledge error.)
=
r , where
(
α,
Proposition 4.7.10:
If f is a one-way function and the proof of knowledge in use
is zero-knowledge, then Construction 4.7.9 constitutes an identification scheme.
Hence, identification schemes exist if one-way functions exist. Practical identification
schemes can be constructed based on specific intractability assumptions. For example,
assuming the intractability of factoring, the so-called Fiat-Shamir identification scheme,
which is actually a proof of knowledge of a modular square root, follows.
Construction 4.7.11 (The Fiat-Shamir Identification Scheme, Basic Version):
On input an identity
n
, the
information-generating algorithm
uniformly
selects a composite number N that is the product of two n-bit-long primes and
a residue s
mod
N , and it outputs the pair
(
N
,
s
2
α
∈{
0
,
1
}
mod
N
)
.
(The pair (
α,
(
N
,
s
2