I. BACKGROUND OF THE INVENTION
A) Field of the Invention
[0001] The present invention relates to a novel method and apparatus for user identification
and access control based on permuted kernels. The scheme is unrelated to encryption
and secrecy.
B) Prior Art
[0002] In 1985 Goldwasser, Micali and Rackoff proposed a new type of interactive proof system
which reveals no knowledge whatsoever about the assertion except its validity. The
practical significance of these proofs was demonstrated in 1986 by Fiat and Shamir,
who showed how to use zero knowledge proofs to establish user identities and to digitally
sign messages, see U.S. Patent No. 4,748,668. The particular proof system proposed
by Fiat and Shamir was based on the difficulty of extracting square roots modulo composite
numbers, and it was much faster and at least as secure as the known RSA scheme (see
U.S. Patent No. 4,405,829).
II. SUMMARY OF THE INVENTION
[0003] According to the present invention, a method and apparatus for performing a new type
of zero knowledge identification scheme are disclosed. Unlike the RSA and Fiat-Shamir
schemes which manipulate huge (512-bit) numbers, the new scheme uses only small (8-bit)
numbers. The invention can thus be implemented on smart cards with severely limited
RAM, ROM and processing power, and is much faster than the prior art. The security
of the new scheme of the present invention depends on an NP-complete algebraic problem
rather than on factoring, and thus it widens the basis of public key cryptography,
which otherwise may become dangerously dependent on the difficulty of a single problem.
[0004] Throughout the following description of the invention, upper case letters are used
to denote vectors and matrices, and lower case letters are used to denote values.
Greek letters denote permutations over {1,...,n} , and their effect V
π on n-vectors V is defined as the vector W such that w
j = v
π (j) for 1≦ j ≦ n. The effect of permutations on matrices is defined as the column permutation
Aπ = [a
iπ(j)] so that for any matrix A and vector V,

Permutations are composed as functions, and thus V
πσ is defined as the vector W such that w
j = v
π(σ(j)) for 1≦ j ≦ n. All the arithmetic operations are carried out modulo p, where p is
a small number, preferably but not necessarily a prime. The kernel K(A) of a rectangular
m x n matrix A is defined as the set of n-vectors W such that AW = 0 (mod p), where
0 is the m-vector of zeroes. From the foregoing, one can easily see that K(A) is a
linear subspace of Z

and that K(Aσ)=(K(A))σ.
[0005] The permuted kernel problem (PKP) that is utilized in the method and apparatus of
the present invention may be expressed in the following way.
[0006] Given: a m x n matrix A, a n-vector V, and a number p;
[0007] Find: a permutation π such that V
π ∈ K(A).
[0008] The related problems of finding some, all, or randomly chosen vectors in K(A) can
be solved by straightforward techniques in linear algebra. The problem of finding
good approximations in K(A) to a given vector V (and in particular small non-zero
vectors in K(A)) can be solved by more complicated (but polynomial) lattice reduction
techniques. What makes the permuted kernel problem difficult is that one is forced
to choose a kernel vector with a particular set of entries. In fact, it is easy to
see that the problem is NP-complete even for m = 1 and V = (+1,+1,...,+1,-1,-1,...,-1)
since this is just the partition problem for the weights in A. A slightly more complicated
reduction from the problem of 3-partition as noted by Garey and Johnson shows that
the PKP is NP-complete in the strong sense (i.e., its difficulty grows exponentially
in p rather than in log (p), under appropriate assumptions). This makes it possible
to use small numbers in the proposed identification scheme, which greatly enhances
its simplicity and speed.
[0009] The method and apparatus of the present invention implement the permuted kernel problem
in an identification scheme in the following manner. Users agree on a universal matrix
A and a number p, and then each user chooses a random permutation π (which serves
as his secret key) and a random vector V such that V
π ∈ K(A) (which serves as his public key). Users can now establish their identity by
proving their knowledge of the secret permutation π . By using zero knowledge proofs,
provers can guarantee that eavesdroppers and dishonest verifiers will not learn anything
about π which will later enable them to misrepresent themselves as the prover to others.
[0010] The existence of zero knowledge proofs for any problem in NP was demonstrated by
Goldreich, Micali and Wigderson (1986), but their proofs are totally impractical since
they require thousands of interactions between the prover and the verifier. Blum (in
an unpublished manuscript) developed simpler proofs which require fewer interactions,
but each interaction requires tens of thousands of communicated bits (to enable the
prover to commit himself to thousands of independent bits). The Fiat-Shamir proofs
(which improve earlier unpublished proofs of quadratic residuosity by Fischer and
Micali) require few interactions and a small number of communicated bits, but have
a relatively high computational complexity since they require at least 10 modular
multiplications of 512-bit numbers. The main contribution of the present invention
is a novel method and apparatus which enables the construction of a truly practical
zero knowledge proof technique which requires few interactions, a small number of
communicated bits, simple 8-bit arithmetic operations, and compact public and private
keys.
[0011] Accordingly, the principal object of the present invention is the provision of a
new method and apparatus that will make zero knowledge identification schemes more
practical and more effective than heretofore possible.
III. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Other and further objects and advantages of the present invention will be apparent
from the foregoing and the following detailed description of a preferred embodiment
and variants thereof when taken in conjunction with the drawing in which:
Figure 1 is a block diagram showing how the method and apparatus of the present invention
implement the new zero knowledge identification scheme.
[0013] Referring now to the drawing, a preferred embodiment of the present invention will
be described. Each user has a smart card including an I/O, CPU and memory.
[0014] When a user desires to communicate with another user or a central entity appropriately
equipped (what is called herein a "verifier"), for the purpose of proving his identity,
the user-prover must have already selected his/her/its secret key which is a random
permutation π and selected a public key, which is a number p, a matrix A, and a vector
V such that V
π ∈ K(A). This is shown in Figure 1 in box 20. To initiate the identification scheme,
the user-prover chooses or selects a random vector R and a random permutation σ ,
box 26, and computes and sends the cryptographically hashed values of the pairs (σ,AR)
and (πσ,R
σ), box 30, to the verifier. The verifier receives them in box 32, chooses a random
value 0≦c<p and asks the prover to send W = R
σ+ cV
πσ, box 36. The user-prover, in response, computes W and sends to the verifier, who
requests prover to reveal σ or πσ , box 40. The prover receives the request and either
sends σ or πσ, box 46, as requested. In the first case, the verifier checks that (σ,A
σW) hashes to the first given value, and in the second case the verifier checks that
(πσ,W-cV
πσ) hashes to the second given value, box 50. The verifier accepts claim if the test
is successful, box 52.
[0015] An honest prover who knows π will always pass this test, since A
σW = A
σ(R
σ + cV
πσ) = A(R + cV
π) = AR + cAV
π= AR and W - cV
πσ = R
σ by definition. When a dishonest prover tries to choose the committed values, hashed
values of the stated pairs, he should be prepared to answer 2p possible questions.
If he can answer correctly p+2 questions when p is prime, then for the same committed
(σ ,X) and (τ ,Y), there are at least two distinct values C′C˝ whose response vectors
W′W˝ satisfy both conditions. This leads to the following system of equations:
A
σ W′ = X
A
σ W˝ = X
W′-c′V
τ = Y
W˝ - c˝V
τ = Y
[0016] This implies that (W′ - W˝) ∈ K(A
σ) and (W′ - W˝) = (c′ - c˝)V
τ. Since c′ - c˝ ≠ 0, V
τσ⁻¹ ∈ K(A) and thus the secret permutation π = τσ⁻¹ can be extracted from any p+2
correct answers. Consequently, the probability of success when such an π is not known
is at most (p+1)/2p. Since this value is essentially 1/2, only 20 iterations are required
to reduce the probability of cheating below the practical security threshold of 1/1,000,000
for each misrepresentation attempt.
[0017] The apparatus used to carry out the method of the invention is conventional computing
equipment specially programmed as taught herein, and will be known to those skilled
in the art.
[0018] The practice of the present invention can become conceptually simpler by restricting
c to 0 or 1. However, this increases the cheater's probability of success to 3/4 per
iteration, and more than doubles the number of iterations required to reach the desired
security threshold. The (p+1)/2p probability of cheating for the embodiment described
is actually achievable, and thus the bound is tight.
[0019] The technical proof that the scheme can be carried out with zero knowledge is intuitively
very simple: The randomness of R makes the vectors W, AR and R
σ completely random, and the randomness of σ makes the permutation πσ completely random.
The individual messages sent by the prover convey no knowledge, and it is only the
prover's willingness to answer both questions for all the possible c's which convinces
the verifier that the prover is genuine.
[0020] The minimum recommended size of n should be at least 32 for low security applications
and at least 64 for high security applications. For these n the number of permutations
π ranges between 32! = 2¹²⁰ and 64! = 2²⁹⁶, while the fastest attacks appear to require
between 2³²·16! = 2⁷⁶ and 2⁶⁴·32! = 2¹⁸⁴ steps. The prime p should not be too small
(since multiple occurrences of values in V (mod p) reduce its number of distinct permutations),
and should not be too large (since multiprecision arithmetic is slow). The best choice
of p for 8-bit microprocessors seems to be p = 2⁸ - 5 = 251 . The choice of m should
be based on the approximate equation p
m≈ n!, which describes the combination of parameters at which a randomly chosen instance
of PKP is likely to have a unique solution (p
m> n! implies that some of the m rows of A can be discarded without adding spurious
PKP solutions, while p
m< n! implies that some of the entries in π can be arbitrarily fixed without losing
all the PKP solutions). For p = 251 and n = 32, m should be approximately 16, and
for p = 251 and n = 64, m should be approximately 37.
[0021] The matrix A should be randomly chosen. Its rank will almost certainly be m, and
thus the size of K(A) will almost certainly be p
n-m (which varies between 2¹²⁸ and 2²¹⁶ for the choice of parameters discussed above).
Without loss of generality, one can assume that A is given in the block form A = [A′
| I] where A′ is a random m x(n - m) matrix and I is the m x m identity matrix, since
both users and opponents can apply Gauss elimination to the published A without changing
its kernel. Calculating AR (or A
σW) is particularly easy in this representation, since AR = A′R′ + R˝ where R′ and
R˝ are the first n - m and the last m entries in R, respectively.
[0022] To demonstrate the actual time complexity of the new zero knowledge proofs of identity,
consider the concrete case of a 16 x 32 matrix A represented as [A′ | I] and p = 251
. The application of permutations and the addition of vectors of size 32 require negligible
amounts of time. In addition, the prover performs one matrix-vector multiplication
per iteration, and the verifier performs one matrix-vector multiplication every two
iterations (on the average). The simplified 16 x 16 matrix-vector multiplications
require 256 single-byte multiplications, which can be carried out in a few milliseconds
on today's microprocessors. This compares very favorably with number-theoretic schemes,
in which the calculation of the product of two 512-bit numbers requires 4096 single-byte
multiplications (in addition to the overhead caused by the carry propagation and the
modular reduction in multiprecision arithmetic).
[0023] For the same choice of parameters, the communication complexity of the protocol can
be determined. Each vector contains 256 bits, each permutation over {1,2,...,32} can
be described in about 120 bits, and each cryptographically hashed value requires about
64 bits. Since two hashed values, one vector and one permutation, are sent in each
iteration, the total communication is about 500 bits per round, which is smaller than
the number of bits used in one round of the Fiat-Shamir scheme.
[0024] Another advantage of the new scheme (which is particularly important in smart card
applications) is that it needs very little memory: The public key V of each user can
be stored in 256 bits, and the secret key π can be stored in 120 bits. The universal
matrix A′ can be stored as a pseudo random function of i and j, rather than as an
explicit matrix. Since most A′ are usable, fairly simple pseudo random functions can
suffice in practice. The elements of A′ can be generated upon demand (in the original
or permuted order) by invoking this function with appropriate arguments, and thus
the calculation of the matrix-vector product needs only a few bytes of working space.
[0025] The present invention can be extended or modified in a variety of ways. The underlying
field Z
p of integers modulo the prime p can be replaced by any ring structure. In particular,
one can use the ring Z₂
k to replace the modular reductions by truncations. However, this variant enables the
opponent to attack the linear equations with the intermediate moduli 2,4,8,...,2
k-1, which may degrade its security.
[0026] The permutations π and σ can be chosen from any publicly known subgroup, and in particular
the subgroup that stabilizes certain blocks in {1,2,...n} .
[0027] The homogeneous linear equations Σ a
ijv
π (j) = 0 (mod p) can be replaced by the non-homogeneous equations Σa
ijv
π (j) = u
i (mod p), in which U = (u₁,...,u
m) is a given vector. However, these equations can be made homogeneous by adding the
vector U as the last column of A, adding -1 as the last entry of V, and restricting
the permutations to the subgroup that stabilizes the last entry in V. As a result,
this extension can actually be viewed as a special case of the basic homogeneous scheme.
[0028] The vector U in the non-homogeneous case can also be given in permuted form, so that
the problem will be to find two permutations π and τ such that Σ a
ijv
π (j) = U
τ(i)(mod p), given A, V and U. This extension can also be viewed as a special case of
the basic scheme, by adding -I as an additional block to A, concatenating V and U,
and restricting the permutations to the subgroup that stabilizes the first n and the
last m entries in (v₁,...,v
n, u₁,...,u
m).
[0029] In the non-homogeneous case, it is possible to make both A and V universal. For the
variant described in the second paragraph preceding, each user chooses a random permutation
π as his secret key, and publishes U = AV
π as his public key. For the variant described in the preceding paragraph, each user
chooses two random permutations π and τ as his secret key, computes W = AV
π , and publishes U = W
τ -1 as his public key. The main advantage of these variants is that their public key
directories are smaller (with 128 instead of 256 bits per user for n = 32).
[0030] The matrix-vector products in the permuted kernel problem can be replaced by matrix-matrix
products or even by higher order tensor-tensor products.
[0031] To speed up the computations, provers can demonstrate their simultaneous knowledge
of several PKP secrets, or carry out in parallel several iterations of the sequential
zero knowledge proofs. Parallel computers can compute the matrix-vector products in
logarithmic time, since the problem is in the parallel complexity class NC.
[0032] The interactive identification scheme can be turned into a non-interactive signature
scheme by using the general technique introduced in Fiat and Shamir (1986), see U.S.
Patent No. 4,748,668, herein incorporated by reference. However, PKP-based signatures
are much longer than Fiat-Shamir signatures, and their practical significance is unclear.
[0033] Although the present invention has been shown and described with respect to specific
preferred embodiments and variants thereof, nevertheless, changes and modifications
will be apparent which embody the inventive teachings herein. Such are deemed to fall
within the purview of the invention as claimed.
1. A method for identification of a prover to a verifier comprising the steps of:
(a) establishing for the prover a secret key consisting of a permutation π over {
1,2,...n}, and a public key consisting of a number p, a m x n matrix A, and an n-vector
A such that Vπ ∈ K(A) modulo p;
(b) sending by the prover to the verifier the cryptographically hashed values of the
pairs (σ, AR) and (πσ, Rσ ) where R is a random vector and σ is a random permutation, chosen by the prover;
(c) sending by the verifier to the prover a randomly chosen value c in o≦c<p;
(d) determining by the prover and sending to the verifier W = Rσ + cVπσ;
(e) revealing by the prover to the verifier either σ or π σ, whichever one is requested
by the verifier;
(f) determining by the verifier for the case of σ having been revealed that (σ, AσW) hashes to the value of the cryptographically hashed pair (σ ,AR) and for the case
of π σ having been revealed that (πσ, W-cVπσ ) hashes to the value of the cryptographically hashed pair (πσ, Rσ).
2. The method for identification according to claim 1 wherein the sequence of steps
(b), (c), (d), (e) and (f) are iterated t ≧ 1 times, and accepting the prover's claimed
identity only when all the t iterations end successfully.
3. The method for identification according to claim 2 wherein the steps (b), (c),
(d), (e) and (f) are iterated about twenty times.
4. The method for identification according to claim 2 wherein c is selected from a
range smaller than [o,p].
5. The method for identification according to claim 2 wherein n is selected from the
range [32, 64].
6. The method for identification according to claim 2 wherein p is a prime number.
7. The method for identification according to claim 2 wherein p is a power of 2.
8. The method for identification according to claim 2 wherein the arithmetic modulo
p is replaced by arithmetic operations over an arbitrary ring structure.
9. The method for identification according to claim 2 wherein p is 251.
10. The method for identification according to claim 2 wherein m is a value determined
by the approximate equation pm ≈ n!.
11. The method for identification according to claim 2 wherein p is 251 n is 32 and
m is 16.
12. The method for identification according to claim 2 wherein p is 251, n is 64 and
m is 37.
13. The method for identification according to claim 2 wherein the number p and/or
the matrix A are universal and common to many users.
14. Apparatus for identification of a prover to a verifier comprising:
(a) means for establishing for the prover a secret key consisting of a permutation
π over { 1,2,...n } , and a public key consisting of a number p, a m x n matrix A,
and an n-vector A such that Vπ ∈ K(A) modulo p;
(b) means for sending by the prover to the verifier the cryptographically hashed values
of the pairs (σ, AR) and (πσ, Rσ ) where R is a random vector and σ is a random permutation, chosen by the prover;
(c) means for sending by the verifier to the prover a randomly chosen value c in o≦
c< p;
(d) means for determining by the prover and sending to the verifier W = Rσ + cVπσ;
(e) means for revealing by the prover to the verifier either σ or πσ, whichever one
is requested by the verifier;
(f) means for determining by the verifier for the case of σ having been revealed that
(σ, AσW) hashes to the value of the cryptographically hashed pair (σ,AR) and for the case
of π σ having been revealed that (πσ, W-cVπσ ) hashes to the value of the cryptographically hashed pair (πσ, Rσ).
15. Apparatus for identification according to claim 14 wherein the sequence of steps
(b), (c), (d), (e) and (f) are iterated t≧ 1 times, and accepting the prover's claimed
identity only when all the t iterations end successfully.
16. Apparatus for identification according to claim 15 wherein the steps (b), (c),
(d), (e) and (f) are iterated about twenty times.
17. Apparatus for identification according to claim 15 wherein c is selected from
a range smaller than [o,p].
18. Apparatus for identification according to claim 15 wherein n is selected from
the range [32, 64].
19. Apparatus for identification according to claim 15 wherein p is a prime number.
20. Apparatus for identification according to claim 15 wherein p is a power of 2.
21. Apparatus for identification according to claim 15 wherein the arithmetic modulo
p is replaced by arithmetic operations over an arbitrary ring structure.
22. Apparatus for identification according to claim 15 wherein p is 251.
23. Apparatus for identification according to claim 15 wherein m is a value determined
by the approximate equation Pm≈ n!.
24. Apparatus for identification according to claim 15 wherein p is 251 , n is 32
and m is 16.
25. Apparatus for identification according to claim 15 wherein p is 251 , n is 64
and m is 37.
26. Apparatus for identification according to claim 15 wherein the number p and/or
the matrix A are universal and common to many users.