3 PRIVATE SIGNATURE
SEARCHING SCHEME
Problem Statement. The administrator of a large
organization wants to scan its computers, referred to
hereafter as servers, in search of sensitive files. An ef-
ficient private signature searching scheme should not
reveal any information to the server about the signa-
tures being searched or when they have been located.
Solution Overview. Building such a scheme re-
quires a solution with (1) minimal communication
complexity, and (2) a privacy-preserving method for
identifying matching file signatures.
We accomplish the first requirement by observing
that, for each file signature in the administrator’s clas-
sified database, we are only interested in communi-
cating a single bit of information: does this signature
exist on the server? To query for the entire database,
we construct a simple bitmask where individual bits
correspond to specific signatures. The exact one-to-
one mapping from sensitive file signatures to specific
bitmask indices is known only to the administrator.
For the second requirement, we apply the homo-
morphic properties of the semantically secure Pail-
lier encryption system (Paillier, 1999) to our bitmask.
The server can manipulate the bitmask because, in
the Paillier system, multiplying two ciphertexts to-
gether results in an encryption of the sum of the plain-
texts: E (α) ∗E (β) = E (α + β). Plaintexts are repre-
sented as elements of Z
n
and ciphertexts in Z
n
2
, where
n = pq is an RSA number with p < q and p ∤ (q −1).
Now assume the administrator provides the server
with a set of ciphertexts of the form E (2
i
), and for a
given set of ciphertexts, each value of i is used only
once. To discover sensitive files the server computes
the signature of all files it contains and multiplies
(in an oblivious manner) into our encrypted bitmask:
E (2
i
) when the signature is in the classified set, or
E (0) when it is not.
Since each ciphertext is of the form E (2
i
), the
product of all ciphertexts is essentially computing the
binary XOR over the original plaintexts. Giving a
simple example: E (8) ∗E (4) = E (12). In binary:
E (1000) ∗ E (0100) = E (1100), i.e., binary XOR.
The administrator decrypts the final encrypted bit-
mask and uses the private one-to-one mapping to de-
termine matching signatures.
3.1 Formal Construction
Let E (·) denote the Paillier encryption function, C de-
note an ordered set of classified signatures, F denote
the set of file signatures on a server, Q denote a set
of encrypted bitmasks, and H
i
: {0, 1}
∗
→ {0, 1}
h
de-
note a one-way cryptographichash function that maps
arbitrary length input strings to strings of bit-length h.
A private signature searching scheme is a tuple of
algorithms:
Administrator:KeyGen(τ). The administrator ex-
ecutes the key generation algorithm of the Paillier
cryptosystem with security parameter τ to find an ap-
propriate RSA number, n = pq. To guarantee that ele-
ments of Q are correctly represented (i.e., a unit mod
n), select an m such that 2
m
< min{p, q}. Output the
Paillier public key PK = n, corresponding secret key
SK = {p, q}, and maximum supported classified sig-
nature set size m.
Administator:Setup(SK, C , F , k). On input of a
classified signatures set and file signatures set, the ad-
ministrator verifies |C |≤m and m <
p
|F | and aborts
if either test fails. Otherwise, construct a set of k one-
to-one mappings from elements in C to specific bit
positions in our bitmask as follows:
Since C is an ordered set, we take the existing
position of c
i
∈ C and use it as as the correspond-
ing bit position in our bitmask, e.g., the third element
c
3
maps to 2
3
. Now let K be a set of k values se-
lected uniformly at random from Z
n
. Each key, along
with a (keyed) pseudo-random permutation function
PRP
k
(C ), generates a unique permutation of C and
unique mappings from elements to bit positions. Up-
date the secret key to include the set of permutation
keys, i.e., SK = {{p, q}, K }.
Next, compute a set of tables with encrypted val-
ues representing the individual bitmask bits. For each
t ∈ {1, ..., k} and each k
′
∈ K , initialize each table,
D
t
, with s = 2|F | entries of E (0). Select an in-
dex i uniformly at random and for the j-th element
c
j
∈ PRP
k
′
(C ), set D
t
[H
i
(c
j
) mod s] := E (2
j
). If a
collision occurs between any two elements of C , the
entire array is discarded and a new index chosen for
H . Repeat the process until no collisions have oc-
curred and store the index in set I . Note that the
m ≤
p
|F | requirement guarantees the probability of
a collision will always be less than
1
2
(see Choice of
m discussion in Section 4 below).
The final step is to compute k tables, W , with s
entries of E (0) in each table. These tables are used
by the Scan algorithm as “working” tables to store
intermediary results.
Server:Scan(PK, {D , W , I }, F ). This algorithm
outputs a single encryption element representing all
classified signatures present on a server.
For each f ∈F and each i ∈I , let t be the index of
i in I and set W
t
[H
i
( f)] := D
t
[H
i
( f)]. After all signa-
SECRYPT 2011 - International Conference on Security and Cryptography
342