In this paper, we introduce the first general framework for strong privacy-preserving biometric-based remote user authentication based on oblivious RAM (ORAM) protocol and computational fuzzy extractors. We define formal security models for the general framework, and we prove that it can achieve user authenticity and strong privacy. In particular, the general framework ensures that: (1) a strong privacy and a log-linear time-complexity are achieved by using a new tree-based ORAM protocol; (2) a constant bandwidth cost is achieved by exploiting computational fuzzy extractors in the challenge-response phase of remote user authentications.
Privacy-Preserving Biometric-based Remote User Authentication (BRUA) allows an authorized user to anonymously authenticate herself to a remote authentication server using her biometrics. In the literature, BRUA with biometrics privacy has been intensively studied [4,8,9,20,23,28]. Biometrics privacy means that no biometrics should be stored in plaintext at server side, this is because a user may lose its security forever if her secret biometrics is leaked to the authentication server or any outsiders. However, we discover that none of existing schemes ever consider non-biometrics privacy, including identity privacy and access privacy.
Identity privacy and access privacy are essential in the remote user authentication setting. A remote user authentication, that does not achieve identity privacy and access privacy, may leak sensitive information about a user to the authentication server or any outsiders. Let us consider a real-world application: mobile health (mHealth), where patients wish to obtain healthcare information after being authenticated by an authentication server through mobile devices. We assume an authentication server maintains a database of records and each record contains a patient’s “encrypted” biometrics. We also assume that the authentication server must access a patient’s record to authenticate the patient. Identity privacy can ensure that a patient logs in to mHealth system without disclosing her real identity to the authentication server.
We note that the previously mentioned login does not guarantee access privacy. Access privacy means that the authentication server cannot determine which record is being accessed at any time. If the same record is accessed twice, then the authentication server can easily link two accesses made by the same anonymous patient [25,30]. As a result, the authentication server can learn a patient’s sensitive information such as interaction history and login behaviour, and disclose it to third parties afterwards [24]. In contrast, access privacy aims to prevent the authentication server from obtaining such sensitive information.
The practicality of a remote user authentication system (e.g., mHealth) is evaluated by time-complexity and bandwidth cost. First, the time-complexity means that the amount of time it takes for the authentication server to authenticate a user. Second, the bandwidth cost means the number of records transferred between the authentication server and a user in order to authenticate the user. To analyze the bandwidth cost in detail, we assume a remote user authentication includes three phases: early-reshuffle, challenge-response and post-reshuffle. Both early-reshuffle and post-reshuffle allow a patient to reshuffle and re-randomize a set of records in the database, so multiple logins by the same anonymous patient are unlinkable by the authentication server. In the challenge-response phase, a patient proves her authenticity to the authentication server by generating digital signatures based on any messages (e.g., nonces) and transferred records.
In this work, we present the first general framework of biometrics-based remote user authentication that satisfies strong privacy, including biometrics privacy, identity privacy and access privacy, while the time-complexity is log-linear in the number of enrolled users, and the communication bandwidth in the challenge-response phase is constant. We call our framework pBRUA for convenience.
Overview of Techniques. We now explain our key technical insights. First, biometrics privacy and identity privacy can be achieved using the existing techniques such as computational fuzzy extractors [2,21,43] (note that fuzzy extractors are used to convert repeated noisy readings of a secret into the same key of uniform distribution [16]) and anonymous digital signatures [10,44]. Second, for achieving access privacy, to the best of our knowledge, there is no existing solution that can be directly applied to construct pBRUA.1
It is possible to use other alternative solutions to achieve access privacy such as private information retrieval [11] and shuffle index [14], while the ORAM based solution may achieve lower bandwidth complexity.
We shall show that some existing tree-based ORAM protocols can be used to construct BRUA with log-linear time-complexity (see Appendix). However, they cannot achieve constant bandwidth cost in the challenge-response phase. Therefore, we propose a new tree-based ORAM (uORAM) protocol (see Fig. 1). The uORAM not only supports a log-linear time-complexity in the number of records (including all enrolled users’ real records and many dummy records) due to the structure of a binary tree, but also achieves a constant bandwidth in the challenge-response phase.
uORAM in a multiple-user and single-server setting. The individual user stores a small amount of local data in a stash. The server-side storage is treated as a binary tree where each node is a bucket that can hold up to a fixed number of records. If the black record is mapped to the shaded path, then the record must reside in any slot along the path or in the stash.
Our Novel Technique. In pBRUA, a user first reshuffles and re-randomizes a set of records in a tree path in the early-reshuffle phase, which includes a real record (which contains the user’s “encrypted” biometrics) and many dummy records (which contains “encrypted” zeros). The user is required to replace the “encrypted” zeros in the dummy records with secret randomness chosen by the user. In the challenge-response phase, the authentication server “aggregates” the records in the tree path specified by the user and sends the “aggregated” record to the user. Then, the user obtains a cryptographic key from the “aggregated” record using her biometrics and the chosen secret randomness. Such cryptographic key is used to generate a signing/verification key pair to prove her authenticity. In particular, we use the Schnorr signature scheme [36]. This is because the cryptographic key is re-randomized by the user in the early-reshuffles phase. As a result, the Schnorr signature generated by the derived signing key in the challenge-response phase can achieve both user authenticity and constant bandwidth. We stress that we do not use the previously mentioned anonymous digital signatures, which essentially compromise the constant bandwidth, because the number of verification keys transferred between user and server for verifying anonymous signatures has the log-linear time-complexity in the number of records.
Our Contributions. The major contributions of this work are summarized as follows.
General Framework. We propose the first general framework pBRUA using learning with errors (LWE) computational fuzzy extractors [2,21,43], digital signatures [31,41] and a uORAM protocol. The proposed pBRUA achieves the strong privacy, log-linear time-complexity and constant bandwidth in the challenge-response phase. We prove that the proposed pBRUA can achieve user authenticity and strong privacy under standard assumptions.
New ORAM. We propose a new tree-based ORAM (uORAM) for remote user authentications in a multi-user setting, which is built on top of Path ORAM [40] and Ring ORAM [34] (a variant of Path ORAM). The proposed uORAM is proven secure under a variant of standard ORAM security definition [22].
Constant Bandwidth. We show the proposed uORAM (and pBRUA as well) can achieve the constant bandwidth. Constant bandwidth in this work means that the authentication server transfers a single record to an authorized user in the challenge-response phase.
We highlight our contributions in Table 1. We can see that the pBRUA is achieved by proposing a uORAM and exploiting the LWE-based fuzzy extractor (FE) altogether. We remark that the new uORAM protocol can be regarded as an independent cryptographic primitive, if one does not consider the constant bandwidth in the challenge-response (CR) phase.
N is the total number of records, Z (e.g., ) is the number of real records per bucket (more details are referred to Section 3) and (e.g., ) is a smaller number than Z which means an improved overall bandwidth in Ring ORAM
Criteria/Construction
Path
Ring
uORAM
uORAM + FE
Overall bandwidth
CR bandwidth
Related work
ORAM. Oblivious RAM was introduced by Goldreich and Ostrovsky [22] (GO-ORAM), that allows a client to conceal her access pattern as seen by the untrusted storage server. They have proposed two ORAMs: Square-root ORAM and Hierarchical ORAM. The main drawback is: the worst-case cost on bandwidth is linear in the total number of records (or blocks) N. The bandwidth is to measure the amount of communication cost between client and server to serve a client request. For example, the Hierarchical ORAM is with (i.e., poly-logarithmic) complexity, so it hinders its practicality in realistic settings. To reduce the worst-case cost, Shi et al. [37] proposed the tree-based ORAM which manages the ORAM storage into a binary tree, so that achieving the worst-case bandwidth with complexity.
To further reduce the bandwidth cost while keeping a small client storage, Stefanov et al [40] proposed the Path ORAM with bandwidth complexity. The Path ORAM is extremely simple – just 16 lines of pseudocode. Each access can be expressed a fetching and storing a path in the tree stored remotely on the server. However, the overall bandwidth is too high because the server has to pass all blocks in a tree path to client, and the overall bandwidth of Path ORAM depends on the bucket size. To remove such dependence, Ren et al. proposed the Ring ORAM [34] such that fetching one block per bucket in a tree path. Moreover, the Ring ORAM can achieve the on-line bandwidth efficiency by applying the XOR technique [13], which means that returning a single block back to serve a user request. This is important because the on-line bandwidth determines the response time to serve a user request. We note that the Evict operation (see Section 3) in the Ring ORAM is NOT suitable for user authentications because it does not execute on every user request. By contrast, the requested user should push blocks back to ORAM tree after a valid authentication because multiple users share the same ORAM tree.
For achieving the on-line bandwidth efficiency, the untrusted server is allowed to perform matrix multiplication on some blocks (e.g., SSS ORAM [39]) or XOR operation (e.g., Burst ORAM [13] and Ring ORAM [34]). In particular, the Onion ORAM [15] can achieve a constant worst-case bandwidth blowup by allowing the untrusted server to perform the (additive/somewhat) homomorphic encryption on the involved blocks. The bandwidth blowup means the number of blocks transmitted between client and server to serve a client request. For example, Circuit ORAM [42] incurs a lower bound in bandwidth blowup, while Onion ORAM has a bandwidth blowup.
A separate line of research on ORAM is to handle the asynchronous user requests at multi-user setting [6,38], Sahin et al. [35] introduced a new ORAM: Taostore, which relies on a trusted proxy who acts as a middle layer between multiple users and an untrusted server (i.e., “hybrid cloud” model [38]). Meanwhile, many practical ORAMs have been implemented for real-world applications, like secure processors [29,40], secure storage systems [13,38,39] and secure multi-party computations [17,42].
Comparison with Existing ORAMs. First, we notice that some existing tree-based ORAMs can be directly used to construct BRUA with log-linear time-complexity (e.g., the Path ORAM described in Appendix). Then, we compare our uORAM with some existing tree-based ORAMs in Table 2. Our uORAM protocol is unique in design: (1) the authentication server generates certain number of dummy records for padding each bucket during enrollment, in which the dummy records are common resources shared by all enrolled users; (2) an enrolled user maintains her access privacy during authentication, which is usually executed in a short time period; (3) multiple users store their individual key materials securely and maintain stash independently. Our designed uORAM works at non-standard model, secures against an honest-but-curious (or semi-honest) server. It has two round trips in total, and a single server coordinates the authentication requests from multiple users in sequence. We note that the proposed uORAM can store a generic data as required in the existing ORAMs. In this work, we use the LWE-based fuzzy extractor to store biometrics with a specific format, so as to achieve a constant bandwidth for user authentication. If the constant bandwidth is not required in the design goal, then many fuzzy extractors in the literature could be suitable for uORAM which can handle various types of biometrics.
The overall comparison between our uORAM and some tree-based ORAMs. Bandwidth means on-line bandwidth complexity. Standard means no server computation, non-standard means server can perform certain computation such as XOR. “1” round trip means the bandwidth complexity when processing the buckets in parallel. Multi-user means that whether a single ORAM contains the blocks from multiple clients. Asynchronicity means whether server handles multiple client requests asynchronously. Security means whether the untrusted server is semi-honest (SH) or malicious (M). In Ring [34], it achieves on-line bandwidth complexity using the XOR technique. In Taostore [35], the total number of round-trips depends on the number of asynchronous client requests (here we denote it as N/A). In uORAM, the on-line bandwidth complexity covers the challenge-response phase of user authentications
Fuzzy Extractor. Fuzzy extractor (FE) is one of the promising approaches to construct a biometric-based user authentication [8,9,28]. Juels and Wattenberg [26] introduced a cryptography primitive called “fuzzy commitment”. It can be used in the biometric-based authentication systems, because its error-correcting technique can correct certain errors within a suitable metric (e.g., Hamming distance). Dodis et al. [16] formally introduced the notions of “secure sketches” (the sketches are used to recover the original biometrics from a nearby biometrics) and “fuzzy extractors”. In particular, they provided concrete constructions of secure sketches and FEs in three metrics (Hamming distance, set difference and edit distance), and the constructions are information-theoretically secure.
Fuller et al. [21] introduced the first computationally-secure FE from LWE [33] such that the derived cryptographic key equals to the entropy2
To obtain sufficient entropy at one time, a sensor that captures multiple biometrics (e.g., fingerprint and fingervein) has been developed [32], but we do not survey on this research direction since it is beyond the scope of this work.
of the fuzzy biometrics. However, their computational FE is not reusable. Reusability [8] means that a user can produce multiple key and sketch pairs using the same biometrics w (i.e., ). To achieve a reusable FE from LWE, Apon et al. [2] provided a general method to convert non-reusable (resp. weakly reusable) computational fuzzy extractors to weakly reusable (resp. strongly reusable) ones. The strongly reusable FE allows an attacker to obtain the secret key string , in addition to the public sketch . We notice that the weakly reusable FE will suffice for privacy-preserving remote user authentications in this work, and we can achieve the strongly reusability by using the general method proposed in [2] when considering multiple authentication servers. In addition, we present the commonly used notations in Table 3.
Summary of notations
Notation
Meaning
Total number of users/records (blocks)
Height of the binary tree
Block/leaf identifier
Real block/dummy block/Stash
User i public/secret key pair
Distance between vector x and vector y
Threshold value (positive real number)
Enrolled biometrics/noised biometrics
Secure sketch with a secret string s
Tree path from leaf node to the root
The bucket at level ℓ along the tree path
User’s local position map
Block resides somewhere along the path
Paper organization
In the next section, we present some preliminaries which will be used in our proposed construction. In Section 3, we present our uORAM protocol and its security analysis. We then present our general framework of pBRUA in Section 4 and formally prove its security in Section 5. The paper is concluded in Section 6.
Preliminaries
In this section, we present the digital signatures with homomorphic property, a family of universal hash functions and fuzzy extractors from LWE, which will be used in our proposed general framework.
Given a random matrix , and χ be an arbitrary distribution on , the decisional LWE () problem is to distinguish the distribution from a random distribution over . We say that is () secure if no PPT distinguisher of size can distinguish the LWE instances from uniform except with probability ϵ, where and ϵ is a negligible function of the security parameter λ.
Dottling and Muller-Quade [18] showed that one can encode biometrics w as the error term in a LWE problem by splitting it into blocks. Furthermore, to extract the pseudorandom bits, we rely on the result from Akavia et al. [1] such that has simultaneously many hardcore bits.
Ifis () secure, thenwhereanddenotes the first k coordinates of x and.
Digital signatures
We say a digital signature scheme is homomorphic, if the following conditions are held.
Simple Key Generation. and , where is derived from via a deterministic algorithm .
Linearity of Keys., where denotes a deterministic algorithm which takes , a public key and a “shifted” value , outputs the “shifted” public key .
Linearity of Signatures. Two distributions are identical: and , where and denotes a deterministic algorithm which takes , a public key , a message-signature pair and a “shifted” value , outputs the “shifted” signature .
Linearity of Verifications. We require that , and .
Matsuda et al. [31] showed that the Schnorr signature scheme [36] satisfies the homomorphic properties regarding keys and signatures (see Lemma 2 in [31]).
Universal hash function
Let be a universal hash function family whose domain is and whose range is . Let be a vector space, which consists of dimensional of finite ring with prime order q. We define an isomorphism ( is its inverse), and . Note that . A family of universal hash functions is defined as . Specifically, for each invertible element in the seed space , define the hash function as follows: on input , computes , where “·” denotes the multiplication in the extension field . Let , and the output of is . Since the isomorphism ψ between and is applied to the universal hash function family, we can easily get the desired linearity below
Assume a family of functionsis universal, for any random variable W taking values inand any random variable Y,whereand U are uniformly distributed overandrespectively. In particular, such universal hash functions are (average-case, strong) extractors with ϵ-statistically close to uniform. The detailed description of (average) mini-entropyand statistical distancecan be found in [
16
].
Fuzzy extractors
Let and q be a prime number, define two algorithms Gen, Rep of computational FE [21] below.
Input: . ⊳ suppose is a uniform distribution over .
Sample , uniformly.
Compute .
Output: .
Input: . ⊳ where Hamming distance between and w is at most t.
Parse p as (); let .
Let .
Output: .
Note that p denotes the public helper string, and s denotes the secret string. The correctness of computational FE relies on the algorithm [21], which is explicitly shown as follows.
Input: .
Select distinct indices .
Restrict to rows ; Denote these by .
Find linearly independent rows of (if no such rows exist, output abort and stop), and restrict to rows. Denote the result by .
Compute .
If has at most t non-zero coordinates, then outputs ; Otherwise, it returns to step 2.
Recall that , and algorithm can correct at most errors (of Hamming distance) in a random linear code. Also note that with probability at least , none of the rows selected in step 2 have errors (i.e., nearby biometrics w and agree on these rows), thus is a solution to the linear system. Furthermore, we notice that the sketch from LWE satisfies the linearity defined in [31,41]. That is,
where denotes a secure sketch procedure [21], which takes and a value as input, output a distribution over . The sketch from LWE is in the form of .
The computational fuzzy extractors (FE) from LWE has an inherent property: “indistinguishability”. Informally, given two sketches (part of helper data) with respect to two independent biometrics, adversary cannot distinguish them without having decryption keys. We formally prove that the computational FE from LWE is secure in the IND model (note that the adversary here is allowed to access the sketch only). In addition, we discover that both computational FE [21] and its variant reusable FEs [2,43] have such inherent property.
The IND experiment between an adversary and a challenger is defined below.
In the guess stage, is given a challenge sketch , which was not previously simulated by . We define the advantage of as
A computational FE from LWE is said to be IND secure if is negligible in λ for any PPT .
The computational fuzzy extractors from LWE achieves the IND security if theassumption issecure.
Informally, we can think of the sketch (part of helper data p) as an “encryption” of x that where decryption works from any close (i.e., decryption key). Furthermore, we can also think of any two sketches and (in a multi-user setting, we set which is shared among all users) are indistinguishable by any third parties without having decryption keys .
Assume that there exists a PPT breaking the IND security of the computational fuzzy extractors from LWE, then we can construct an algorithm to break the decisional LWE () assumption. The algorithm has almost the same time complexity with . For simplicity, we consider the shared public parameter by all users such that .
Description of adversary for the proof.
The algorithm uses as a subroutine (see Fig. 2, note that v can be either or a random distribution). first generates another distribution which has the same property and distribution as its own challenge distribution. That is, computed distribution (), where u and w are randomly chosen by . If ’s challenge is a real distribution, then it is the computed distribution; Otherwise, it is a random distribution over . By using its challenge and computed distribution, can simulate two sketches for . At guess stage, returns a challenge ciphertext to according to the bit b.
We then analyze the behaviour of on and respectively. In the , the input () satisfies the Rep algorithm of FE described in Section 2.4. Notice that the computed distribution () is also valid and they are uniformly and independently distributed over , because and u is a randomly element in . Thus, can simulate the proper distribution of two challenge sketches (i.e., and ), and the challenge ciphertext is distributed exactly like a real sketch which associates with .
Therefore, we have below, which includes the experiment with respect to (i.e., IND-1) and (i.e., IND-0).
As for , the input distributions to in Fig. 2 are all uniformly distributed over . Therefore, the corresponding computed distribution above are also uniformly and independently distributed over . In particular, the challenge ciphertext is a random distribution over , and independent of bit b. Hence we have
The last term indicates that the random distribution to happen to have the distribution of a real distribution, which is bounded by since . By combing all equations above, we have
We can also show that when public parameter is chosen at random over , while will slightly change to , where . □
A new oblivious RAM
In this section, we present our proposed tree-based ORAM (uORAM). The uORAM protocol is comprised of some novel techniques from Path ORAM [40] and Ring ORAM [34].
Binary Tree. We assume a binary tree of height and leaves. Levels in the tree are numbered from 0 (the root) to L.
Bucket. Each node in the tree is called a bucket with a fixed number (e.g., 4 or 5) of blocks. We guarantee that each bucket has exactly Z real blocks, and we allow the server to pad real blocks if a bucket has less than Z real blocks. We assume S dummy blocks are generated and padded for each bucket by the server. If the client tries to access her real blocks and maintain her access privacy, then she needs to update at least one dummy block in each bucket, which is similar to Path or Ring ORAM. Consequently, the server does not learn any information about the accessed blocks.
Path. Let denote the leaf node in the tree. We define as a set of buckets along the path from leaf to the root, and denotes the bucket in at level ℓ in .
Stash. During the course of the data access, a small number of blocks might overflow from the tree buckets on the server. The client can locally store these overflowing blocks in a local data structure S called stash.
Position Map. The client also locally maintains a position map (see Fig. 1), which stores a public leaf identifier and a secret block identifier such that (i.e., a block is currently mapped to a leaf node with identifier ). The block either resides in some buckets in path , or in the stash S. The position map changes over time as blocks are accessed and remapped.
Operations. uORAM includes the following key operations: EarlyReshuffles, ReadPath and Evict. Here we provide a high-level of these operations.
ReadPath (from Ring ORAM). This operation reads one block from each bucket – the block of interest if found or a dummy block otherwise. Specifically, the ReadPath operation is to select a single block to read from that bucket. The index of the block to read (either real or random) is returned by the GetBlockOffset function. According to the random offset per bucket and the leaf identifier , the server fetches these blocks and passes them to the client. Specifically, the client relies on a small-size Bucket Metadata, which is used to store the per bucket. We stress that the is chosen at random by client. The client must read through all the buckets in a tree path , and each bucket returns either the interested block or a randomly-chosen dummy block.
, for :
if then , return .
EarlyReshuffles (from Ring ORAM). To ensure the ReadPath operation securely read one block per bucket, it requires a maintenance task called EarlyReshuffles on , the path accessed by ReadPath. That is, the client reshuffles the bucket in the path .
for :
.
Evict (from Path ORAM). This operation is to push blocks back from the stash to the ORAM tree and keep the stash occupancy low. First, it reads all the buckets along the lookup path, all the (remaining) real blocks are added to the stash (i.e., ). Meanwhile, the Evict operation writes as many blocks as possible from the stash back to the lookup path, and the evicted blocks from the stash get pushed down as far as they can go (i.e., ). This operation terminates after writing all real blocks from the stash back to the lookup path, and each bucket is guaranteed to have Z real blocks. We denote the and functions as operation, and the pseudocode is also shown in (Line 2–4).
We briefly show the GetBlockOffset, ReadBucket, WriteBucket functions below, we refer reader to [34] for detailed descriptions.
GetBlockOffset is to find the block of interest and return the permuted location of that block, or to return the permuted location of a random dummy block.
ReadBucket is to read exactly Z real blocks in a bucket into the stash . If the bucket contains less than Z real blocks, then the remaining blocks read out are updated dummy blocks (see Main Invariants below).
WriteBucket is to evict up to Z blocks from stash to a bucket. In particular, the location of blocks are randomly reshuffled based on pseudo-random permutation or a truly random permutation. Eventually, the permuted data and its are encrypted and written into the bucket.
Main Invariants. uORAM has three invariants, and we maintain these invariants at any time since they will determine the security of uORAM.
Invariant 1. Every block is mapped to a leaf chosen uniformly at random in the ORAM tree . If a block is mapped to leaf , block is contained either in the stash S or in a bucket along the path from the root to leaf .
Invariant 2. For every bucket in the tree , the physical position of the real and dummy blocks in each bucket are randomly permuted with respect to all past and future writes to that bucket.
Invariant 3. For every bucket along the path from the root to leaf , at least one dummy block in each bucket is randomly updated.
Data Access. uORAM takes () as input, outputs .
⊳ from Ring ORAM
⊳ from Ring ORAM
read block from
if then return to client end if
if then end if
. ⊳ from Path ORAM
To access a block , the client first invokes an operation to read and write the real and dummy blocks on the path with leaf identifier (Line 1). As a result, the client can determine the physical positions of a block of interest and dummy blocks per bucket. Second, the block of interest is remapped to a new random path and the position map is updated accordingly (Line 2 to 3). Third, the client invokes a read path operation to read one block per bucket on that path, and then read that block into stash (Line 4). If block is not found on path ℓ, it must be in Stash (Line 5). Forth, if the access is read/write, then the client updates the content of block (Line 6 to 7). Last, the protocol invokes an eviction operation that reads all remaining real blocks on that path into stash and writes the same path we just read from, percolating blocks down that path (Line 8). We remark that the dummy blocks in the read/write path can be updated using either randomness (w.r.t. EarlyReshuffles operation) or timestamp (w.r.t. Evict operation), both randomness and timestamp are chosen at random by client. We note that timestamp is linked to “time-locked” dummy block, which means we embed a time-lock in a dummy block using a timestamp during Evict operation. In other words, the “time-locked” dummy block can be updated again once the specified timestamp is reached (or “unlocked”). For example, another client may update the “unlocked” dummy block using a new randomness during his EarlyReshuffles operation.
Security definition
We modify the standard ORAM security definition [22]. That is, adding a designated timestamp to the operation of an access pattern. Informally, two access patterns in a specific time-window (i.e., a time period that is considered best from starting to finishing some tasks such as user authentications) should be computationally indistinguishable. A crucial point is, the client makes data requests within an allowable time-window does not leak any useful information about the access pattern.
(Security Definition).
Let
denote a data sequence of M, where denotes the i-th operation is a read or a write, denotes the address for that access, denotes the data being written, and denotes the designated timestamp such that , where ϱ denotes an allowable time-window. Let uORAM() be the resulting sequence of operations between client and server under an uORAM protocol. The uORAM protocol guarantees that: (1) for any and , uORAM() and uORAM() are computationally indistinguishable (by anyone except the client) if ; (2) for any the data returned to the client using uORAM is consistent with (i.e., the uORAM behaves like a valid RAM) with overwhelming probability.
Security Analysis. We prove the security of uORAM using the similar approach described in [34].
EarlyReshuffles operation leaks no information.
We let ReadBucket function read exactly real blocks from random slots. If the bucket contains less than real blocks, the remaining blocks read out are updated dummy blocks. The number means that at least one dummy block in each bucket is updated by the client when reading. Meanwhile, the number of dummy blocks per bucket becomes . Similarly, WriteBucket function writes (i.e., ) encrypted blocks in a data-independent fashion. If there are real blocks to be evicted to that bucket, then updated dummy blocks are added. In particular, the real and dummy blocks are randomly shuffled by the client. Overall, learns nothing during EarlyReshuffles operation. □
ReadPathoperation leaks no information.
The path selected for reading will look random to due to Invariant 1 such that leaves are chosen uniformly at random. From Invariant 2, we know that every bucket is randomly reshuffled. In particular, the real and updated dummy blocks we read are indistinguishable to due to Invariant 3 (the Lemma 2.3 confirms such fact). Therefore, learns nothing during ReadPath operation. □
Evictoperation leaks no information.
The path selected for eviction is chosen uniformly and is public. function reads all remaining real and updated dummy blocks from the bucket stored on the server. The real and updated dummy blocks on the lookup path are stored into stash after . function writes the real and updated dummy blocks from the stash into the specified bucket on the server. In particular, the client writes back all updated dummy blocks to their original format. Meanwhile, the client erases her random permutation in the Bucket Metadata. If there is real blocks to be evicted to that bucket, then “time-locked” blocks are added. The “time-locked” blocks are the blocks that cannot be updated until a designated timestamp is reached. We remark that the real and “time-locked” blocks we write back are indistinguishable to because the specified timestamp is randomly chosen by the client (otherwise, the server may keep a history of the updated dummy blocks if a client updates them multiple times within a time-window ϱ, thus break the unlinkability of uORAM). Therefore, learns nothing during Evict operation within ϱ. □
Stash and bandwidth analysis
Since a small number of blocks might overflow from the tree bucket on the server after Evict operation, the client locally stores these overflowing blocks in the stash . To analyze the stash usage (i.e., measuring the number of real blocks that remain in the stash after Evict operation), we rely on the theoretical result of Path ORAM [40]. The Theorem 1 in [40] has shown that the probability (i.e., the number of real blocks in the stash exceeds R) decreased exponentially in R (i.e., the stash size).
Now, we analyze the overall bandwidth of proposed uORAM, including EarlyReshuffles, ReadPath and Evict operations. The EarlyReshuffles operation reads exactly real blocks and writes back real and dummy blocks per bucket, so the bandwidth is (). The number means that at least one dummy block per bucket is updated by the client due to Invariant 3. We observe that the ReadPath operation first transfers blocks – one from each bucket. Then, the client reads the remaining real and updated dummy blocks into the stash and writes back real and dummy blocks per bucket during Evict operation. So, the overall bandwidth is . We notice that the overall bandwidth of uORAM is higher than a Path or Ring ORAM. However, neither Path ORAM nor Ring ORAM can achieve our design goal (see Appendix).
The proposed general framework
In this section, we first present the security models (user authenticity and strong privacy) for our proposed pBRUA. Then, we show the proposed general framework of pBRUA.
States. We define a system user set with n users, i.e. . We say an instance oracle (i.e., session i of user ) may be used or unused, and a user has an unlimited number of instances called oracles. The oracle is considered as unused if it has never been initialized. Each unused oracle can be initialized with a secret key . The oracle is initialized as soon as it becomes part of a group. After the initialization the oracle is marked as used and turns into the stand-by state where it waits for an invocation to execute a protocol operation. Upon receiving such invocation, the oracle learns its partner id (i.e., a collection of recognized users by the instance oracle ) and turns into a processing state where it sends, receives and processes messages according to the description of the protocol. During that stage, the internal state information is maintained by the oracle. The oracle remains in the processing state until it collects enough information to finalize the user authentications. As soon as the user authentication is accomplished, accepts and terminates the protocol execution meaning that it would not send or receive further messages. If the protocol execution fails then terminates without having accepted. We define as the unique session identifier belonging to user of session i. Specifically, , where is the message transcript among users in . The session identifier means that the session which participates in is defined by a unique session id , and this value is known to all oracles participating in the same session.
Definition
A pBRUA framework consists of the following algorithms:
Setup: The algorithm takes a security parameter λ as input, outputs a public parameter .
Enrollment: This is a non-interactive protocol between a user and an authentication server in a secure channel. The user first generates a secret/public key pair using public parameter , derives a sketch from her biometrics w and a secret string s. Then, she enrolls her identity , public key and sketch to the authentication server. The enrolled users become authorized ones after enrollment. We assume a uniform3
One may question a uniform source is not practical, we stress that the uniform source can be replaced by a non-uniform source (e.g., symbol-fixing source [27]) while the security of FE is held. We use a uniform source here just for simplicity, and the case of the non-uniform source was explicitly discussed in [21,43].
biometrics source and .
Authentication: This is an interactive protocol between an authorized user and an authentication server over a public channel. An authorized user takes public parameter , her nearby biometrics and her enrolled sketch as input, outputs a message-signature pair . The authentication server accepts the user if the message-signature pair is verified as valid under her enrolled public key . The message m contains the ephemeral data transmitted during user authentication, and the nearby biometrics satisfies .
Security models
A secure pBRUA framework should achieve several security goals: user authenticity and user privacy. Below we present corresponding security models to capture these requirements.
Authenticity. Informally, an adversary attempts to impersonate an authorized user and authenticate herself to an authentication server. We define a formal authenticity game between a probabilistic polynomial-time (PPT) adversary and a challenger below.
Setup. first generates public/secret key pairs () for n users and an authentication server in the system. also generates biometrics information and its corresponding sketch for individual users. Eventually, sends all users’ public keys and sketches to .
Training. can make the following queries in an arbitrary sequence to .
Send: If issues a send query in the form of () to simulate a network message for the i-th session of user , then would simulate the reaction of instance oracle upon receiving message m, and return to the response that would generate; If issues a send query in the form of (, ), then creates a new instance oracle and returns to the first protocol message.
Biometrics Reveal: If issues a biometrics reveal query to user i, then returns user i’s biometrics information to .
Secret Key Reveal: If issues a secret key reveal query to user i, then returns user i’s enrolled secret key to .
Challenge. wins the game if all of the following conditions hold.
accepts user . It implies (i.e., session s of server ) exist.
issued neither Biometrics Reveal nor Secret Key Reveal query to user .
, but there exists no instance oracle which has sent m (m denotes the message transcript from user ).
We define the advantage of an adversary in the above game as
We say a pBRUA protocol has user authenticity if for any PPT , is a negligible function of the security parameter λ.
Strong Privacy. Informally, an authentication server is not allowed to identify who are the authorized users in a certain time-window. We define a game between an adversary and a challenger as follows:
Setup: generates public/secret key pairs for n users and an authentication server in the system. In addition, generates biometrics information and its corresponding sketch for individual users. Eventually, sends all public information to , and the authentication server is completely controlled by . tosses a random coin b which will be used later in the game. We denote the original n users set as .
Training: is allowed to issue Send query and at most Secret Key Reveal and Biometrics Reveal queries to . We denote as the set of honest users whose biometrics as well as secrets keys are not corrupted.
Challenge: randomly selects two users as challenge candidates, then removes them from and simulates to by either if or if . chooses a time-window ϱ, lets interact with challenge user in the time-window ϱ.
Finally, outputs as its guess for b. If , then outputs 1; Otherwise, outputs 0. We define the advantage of in the above game as
We say a pBRUA protocol has strong privacy if for any PPT , is a negligible function of the security parameter λ.
Proposed construction
High-level user authentication via uORAM.
High-level Description. Suppose at most n users enroll themselves to an authentication server, and the authentication server built a binary tree to store all users’ enrolled information. Next, an uORAM protocol is executed between an authorized user and the authentication server for user authentications (including early-reshuffle phase, challenge-response phase, and post-reshuffle phase), which is described in Fig. 3. Specifically, in the early-reshuffle phase, an authorized user randomizes and permutes either her real block or a dummy block in each bucket along a tree path (i.e., EarlyReshuffles operation, and the tree path must include her real block). In the challenge-response phase, the authorized user first obtains the permutation of either her real block or a dummy block in each bucket by performing the ReadPath operation. Then, the authorized user derives a message-signature pair based on her real block and the randomized dummy blocks for proving her authenticity. In the post-reshuffle phase, the authorized user re-randomizes all blocks in the tree path (i.e., Evict operation). The proposed pBRUA framework is mainly used to achieve strong privacy for valid user authentications. The proposed pBRUA framework consists of the following building blocks. Meanwhile, we note that a blind signature scheme [7] could be used to prevent an unauthorized user with NO enrolled biometrics from performing a valid user authentication in the pBRUA framework (the detailed explanation is referred to Remark 2).
A LWE-based computational fuzzy extractor .
An Existential Unforgeability under Chosen Message Attack EUF-CMA secure digital signature .
An Indistinguishability of Keys under Chosen Plaintext Attack IK-CPA secure public key encryption .
The uORAM protocol.
Block Structures. The real block consists of two parts: user i’s public key and sketch . The dummy block is of the form , where denotes a random public key, the data in sketch is (i.e., “0”) and the secret string is chosen at random. We stress that the dummy block is a public resource during Enrollment, it becomes a private one during Authentication. The status of real block and dummy block at different phases are shown in Fig. 4, respectively.
The status of real or dummy block in a bucket. The physical position of real or dummy block in the bucket will be permuted at random under EarlyReshuffles operation and Evict operation, respectively. Meanwhile, the hidden message (r1 denotes the randomness and T1 denotes the timestamp) in dummy sketch will be updated accordingly.
Our Construction. Let be a universal hash function with linearity that we reviewed in Section 2.3. For each seed and , we define “” as the set of pre-images of y under . That is, . In particular, means that we choose an element x uniformly from the set , and its dimension is . We run the Setup algorithm first to generate the public parameter in the system. Then, we use a user i and an authentication server to illustrate our general framework.
Enrollment. A user i enroll herself to an authentication server will perform the following
generate a secret/public key pair .
obtain a secret/public string pair , where , (the biometrics distribution is referred to Section 2.4), and public string .
send public values to .
According to the uORAM protocol, regards user i’s public information as an enrolled record, stores into a bucket and returns the leaf identifier of that tree path to user i. The user i can identify her block of interest in a bucket of the lookup path using leaf identifier and block identifier , where and is the secret block identifier.
The Authentication includes early-reshuffle, challenge-response, and post-reshuffle phases. The bandwidth of early-reshuffle phase and post-reshuffle phase are , respectively. In the challenge-response phase, server returns a ciphertext (i.e., aggregated “sketch”) only.
Authentication. The detailed interaction between a user i and authentication server is described in Fig. 5. We use the previously mentioned three phases to present the general framework.
Early-reshuffle Phase: User i performs the operation to update the () for all buckets along the lookup path. Specifically, user i: (1) updates a dummy block as in a bucket, where the randomness is chosen at random by user i (see remark below for detailed description); (2) writes into per bucket along the lookup path.
Challenge-response Phase: User i performs the operation to obtain the random per bucket in the lookup path. Upon receiving an authentication request (i.e., a set of offset and leaf identifier ) from user i, computes an “aggregated” version of requested blocks, which consists of a ( size) set of public keys and sketches: (see correctness below), and returns a single ciphertext and a challenge randomness to user i.
Challenge-response Phase: User i performs the following
choose a response randomness and generate the message .
extract the secret string by running algorithm iff , and obtain the “aggregated” secret key .
generate a message-signature pair and send it to .
Challenge-response Phase: verifies under the “aggregated” public key . If the signature passes the verification, it accepts; Otherwise, it aborts.
Post-reshuffle Phase: User i performs the operation. Specifically, operation reads all remaining real blocks along the lookup path into the local stash S, writes real and updated dummy blocks back to the lookup path.
Instantiations. We hereby try to instantiate the underlying cryptographic building blocks. First, to instantiate the LWE-based computational fuzzy extractors, we could use the fuzzy extractor scheme in [2,21,43]. In particular, we require that all enrolled users share the common public parameters, just like the first reusable fuzzy extractor scheme in [2]. Second, we use the Schnorr signature scheme with homomorphic property to instantiate the underlying digital signatures. Meanwhile, the Waters signature scheme described in [41] should be also suitable for our general framework. Last, the public key encryption scheme (which was used in Bucket Metadata) can be instantiated to ElGamal cryptosystem [19] for achieving IK-CPA security, and we refer readers to [5] for Cramer-Shoup cryptosystem [12] with IK-CCA security which might be alternatively applicable to instantiate our general framework.
Correctness. In the challenge-response phase of user authentication, the returned block is either a block of interest or an updated dummy block in a bucket. Specifically, ReadPath opreation will request blocks in a tree path – one from each bucket. That is, , where and (). We notice that a dummy block after EarlyReshuffles operation will be updated as , where randomness is independently chosen and stored by user i (see remark below). To achieve a constant bandwidth, the authentication server returns a single “aggregated” ciphertext (underline part) to user i: , where , and · denotes the multiplication. More specifically,
where . The user i can obtain the “aggregated” sketch (includes her interested sketch ) by removing the randomness , and the challenge-response of user authentications proceeds as the protocol specified.
The ReadPath operation relies on a metadata: Bucket Metadata. We use an example to illustrate its workflow, and we assume a bucket includes 4 blocks. We also assume the bucket includes a block interested by user i, a block interested by another user j and two dummy blocks , where are chosen at random by server .
The EarlyReshuffles operation includes ReadBucket and WriteBucket functions. The ReadBucket function will read all real blocks from the bucket into the local stash. Specifically, a user i finds her block of interest (interest) and one dummy block (dummy) per bucket in a “compute and compare” manner. In particular, user i updates one dummy block (updated). More concretely,
where randomness is chosen by user i and the updated dummy block can be decrypted by user i only. Afterwards, use i writes back 3 blocks (i.e., one updated dummy block and two real blocks and ) and writes the permuted into the Bucket Metadata (i.e., WriteBucket function). Specifically, user i chooses the at random and encrypts the random by running . Later, if user i performs the ReadPath operation, then she can obtain the random .
The operation requires that the block of interest must be re-randomized as , where is chosen at random and . Other blocks (include dummy blocks) in the same bucket should also be re-randomized accordingly. For example, a block is re-randomized as , where , and is chosen at random. Note that the can be a new biometrics such as . According to the design of uORAM protocol, the dummy block is a common resource shared by all enrolled users, user i should remove her randomness in sketch . To maintain the security of Definition 3.1, user i updates the dummy block to a “time-locked” format: , where denotes a designated timestamp. Once the designated timestamp is reached, the “time-locked” dummy block becomes a public one. We note that an extra (mapping) mechanism could be used to transform a timestamp with the standard format into a distribution over .
Since multiple users share an uORAM protocol and each user has an individual stash, the user should push all real blocks back to the uORAM tree during Evict operation. This is because if real blocks reside in the local stash S, then user authentication may fail. We leave it as a future work to ensure a policy such that the user must push real blocks back to the uORAM tree, or to ensure a valid user authentication even when real blocks are resided in the stash S.
One may notice that an unauthorized (or unenrolled) user with NO biometrics data can be successfully authenticated by the authentication server. This is because the dummy blocks in the tree are common resources, any third parties can distinguish them from real blocks (as described previously). In this way, the unauthorized user updates at least one dummy block in each bucket in a tree path, and utilizes them for generating a valid message-signature pair and authenticating herself to the authentication server. We stress that such security threat is independent from the security concern in our proposed user authenticity model (an adversary tries to impersonate an authorized user). In particular, the unauthorized user authentication will NOT help the adversary (e.g., impersonator) to win the user authenticity game.
To tackle such security threat, we rely on an extra cryptographic tool: signatures on randomizable ciphertexts [7], such that given a signature on a ciphertext, any third parties (know neither the signing key nor the encrypted message) can randomize the ciphertext and adapt the signature to the re-randomized ciphertext. A pair of ciphertext and its signature can be randomized simultaneously and consistently. In particular, a given signature can be transformed into a new one on the same message, which in turn yields a blind signature scheme.
The modified pBRUA framework is described as follows: an authorized user runs the interactive blind signature scheme proposed in [7], to derive a publicly verifiable ciphertext-signature pair during Enrollment. Let the encrypted message be denoted as (i.e., user i’s secret block identifier). In the challenge-response phase of Authentication, an authorized user sends the derived ciphertext-signature pair to the authentication server as the authentication request. The authentication executes the pBRUA protocol if the ciphertext-signature pair is valid (i.e., the anonymous authorized user is an enrolled one). We stress that, the authentication server still cannot link the anonymous authorized user across different authentication sessions, because the ciphertext-signature pair has the blindness, and it can be randomized by the authorized user with the same encrypted message .
Security analysis
In this section, we show the security result of our proposed pBRUA framework.
The proposed pBRUA achieves user authenticity if theassumption issecure, the family of universal hash functionsis ϵ-statistically secure and the digital signature scheme Σ is EUF-CMA secure.
We define a sequence of games and let denote the advantage of the adversary in game . Assume that activates at most m sessions in each game. We highlight the differences between adjacent games by underline. For simplicity, we ignore the technique for constant bandwidth in the following and subsequent proofs.
: This is the original game for user authenticity security.
: This game is identical to game except that the challenger will output a random bit if the authentication server accepts a user i, but (i.e., a session s between user i and server ). Since n users involved in this game, we have:
: This game is identical to game except the following difference: randomly chooses as a guess for the index of the Challenge session. will output a random bit if ’s challenge query does not occur in the g-th session. Therefore we have
: This game is identical to game except that in the g-th session, the k-size pseudorandom bit of hidden secret in the sketch of user i is replaced by a random value U. Below we show that the difference between and is negligible under the assumption.
Let denote a distinguisher against the assumption, who is given a tuple , aims to distinguish the real LWE tuple from a random tuple where . simulates the game for as follows.
Setup. sets up the game for by creating n users with the corresponding block identifiers . randomly selects index i and guesses that the g-th session will happen with regard to user i. sets the sketch of user i as such that , where . sets user i’s enrolled secret key as (its public key is ). honestly generates biometrics, public/secret key pairs and sketches as Enrollment specified for n-1 users. In addition, generates certain dummy public keys and sketches in the system. Eventually, sends all real/dummy enrolled public keys and references to . Note that we choose a random vector from to generate , we omit it in the following proof.
Training. answers ’s queries as follows.
If issues a Send query in the form of to , where includes a re-randomized real sketch and L dummy sketches . chooses a response randomness first, then honestly generates the protocol transcript using user i’s enrolled secret key . Specifically, , where , and the correct offset derives from . More specifically, first obtains the randomness from updated dummy sketches, in which the dummy sketch is . Next, can obtain the correct offset from a real sketch and L dummy sketches, where the offset and the randomness are chosen at random by .
In the g-th session of user i, upon receiving a Send query from , first obtains , where and the computation of correct offset using the same method described above; then generates the re-randomized secret key from (i.e., ) for producing message-signature pair while verifies it using the corresponding public key .
If issues a Biometrics Reveal query to user i, then aborts.
If issues a Secret Key Reveal query to an instance oracle (g-th session of user i), then returns a (re-randomized) secret key to . Notice that is not allowed to obtain user i’s enrolled secret key .
In the Challenge session of user i, if the challenge of is , then the simulation is consistent with ; Otherwise, the simulation is consistent with . If the advantage of is significantly different in and , then can break the . Since at most n users involved in the system, hence we have
: This game is identical to game except that in the g-th session, the enrolled secret key is replaced by a random value u. Below we show that the difference between and is bounded by a negligible probability.
Let simulate the whole environment honestly according to the protocol specification, and it is easy to see that all the queries made to a user can be simulated perfectly using the user’s secret keys and biometrics. In particular, the enrolled secret key of user i is . In the g-th session of user i, to answer the Send query from , will simulate the protocol transcript as follows. first simulates the real sketch as , where , and is randomly chosen by ; then generates a secret/public key pair from a real sketch (with hidden secret ) and L dummy sketches for producing the message-signature pair, where .
We then analyze the statistical distance between distribution at game and distribution at previous game . We notice that the only difference is the simulated value instead of taking the real enrolled secret key as input, and according to Lemma 2.2, we have the statistically distance between and with probability no greater than ϵ. Hence we have
: This game is identical to game except that in the g-th session, outputs a random bit if Forge event happens where ’s Send query includes a valid forgery while user i’s enrolled secret key is not corrupted. Then we have
Let denote a forger against a signature scheme Σ with EUF-CMA security, who is given a public key and a signing oracle , aims to find a forgery . simulates the game for as follows.
Setup. sets up the game for by creating n users with the corresponding block identifiers and biometrics. sets up user i’s enrolled block as , where sketch is . also honestly generates public/secret key pairs and sketches as Enrollment specified for n-1 users. Eventually, sends all enrolled real/dummy public keys and sketches to . Note that cannot link the simulated sketch to the public key since is not allowed to access user i’s biometrics .
Training. answers ’s queries as follows.
If issues a Send query in the form of to , chooses a response randomness first, then simulates the protocol transcript as follows
invoke the signing oracle to obtain a message-signature pair , where ;
obtain the correct offset from , where includes a ( size) set of (re-randomized) real and dummy sketches. Note that the real sketch is ;
generate a signature by using the deterministic algorithm described in Section 2.2; Note that .
return to .
If issues a Secret Key Reveal query to an instance oracle , then returns a re-randomized secret key to . Since is not allowed to reveal the enrolled secret key , the simulation is perfect.
When event occurs (i.e., outputs , where ), checks whether:
the Forge event happens at g-th session;
the message-signature pair was not previously simulated by , where ;
verifies , where and derives from that includes a (L+1 size) set of (re-randomized) real/dummy sketches. Note that is the correct “offset” between and .
If all the above conditions hold, confirms that it as a successful forgery from , then extracts the forgery via using the homomorphic property of Σ. To this end, outputs as its own forgery; Otherwise, aborts the game. Therefore, we have
It is easy to see that in game , has no advantage, i.e.,
Combining the above results together, we have
The proposed pBRUA achieves strong privacy if the family of universal hash functionsis ϵ-statistically secure, the underlying computational fuzzy extractor is IND secure, public key encryption scheme is IK-CPA secure, and the access pattern under uORAM protocol is computationally IND secure.
We define a sequence of games and let denote the advantage of the adversary in game . We also highlight the differences between adjacent games by underline. We assume the Challenge stage between adversary and challenger is executed in a specific time-window.
: This is the original game for user anonymity security.
: This game is identical to game except that at the Challenge stage, we replace the real sketch (i.e., ) by a random vector . Below we show the difference between and is negligible under the assumption that the computational fuzzy extractor (FE) is IND secure.
Let denote an attacker, who is given a common public matrix and two sketches (), aims to break the IND security of the computational FE. simulates the game for as follows.
Setup. sets up the game for by creating n users with corresponding block identifiers and leaf identifiers . sets the common public matrix in the system as . randomly chooses users from user set and sets the enrolled sketches as , and generates biometrics and sketches for other users. In addition, honestly generates enrolled public/secret key pairs for n users.
Training. If issues a Send query in the form of (assuming the bucket includes a real block) to user i during EarlyReshuffles, then performs the following steps
re-randomize the received real/dummy blocks to by using the homomorphic property of public key and computational FE respectively; Note that is derived from .
reshuffle the updated blocks according to the random offset which is based on PRP;
encrypt the , random offset and leaf identifier under enrolled public key , and generate the Bucket MetaData;
write back to the specified bucket as EarlyReshuffles operation specified.
If issues a Send query in the form of (the set includes one real sketch and the involving dummy sketches) to user i, then performs the simulation as follows.
choose the randomness as response;
simulate the message-signature pair using user i’s enrolled secret key and correct offset which derives from two re-randomized sketches and .
perform the Evict operation.
Note that can easily identify the real block by the enrolled public key , and meanwhile, records the re-randomized real public key . Similarly, simulates the response of user j using the same method as above.
Challenge. If issues a Send query in the form of (include a re-randomized block of user i) to challenge user during EarlyReshuffles, then updates (re-randomizes) the received real/dummy blocks to (), where the re-randomized ciphertext derives from a challenge ciphertext due to the linearity property of computational FE. Note that is the challenge ciphertext on message (the message is the offset between two re-randomized sketches). performs the simulation of during Evict operation using the same method described above. Similarly, simulates the response of using the same method when issues a Send query that includes a real block of user j.
Finally, outputs whatever outputs. If guesses the random bit correctly, then can break the IND security of computational FE. Since at most n users involved in the system, hence we have
: This game is identical to game except that at the Challenge stage, we replace the real secret key by a random key . By following the same analysis as described in game of previous proof, we have
: This game is identical to game except that at the Challenge stage, we replace the real public key by a random key . Below we show the difference between and is negligible under the assumption that the public key encryption (PKE) scheme is IK-CPA secure.
Let denote an attacker, who is given two public key pair , aims to break the IK-CPA security of the PKE. simulates the game for as follows.
Setup. sets up the game for by creating n users with corresponding biometrics and sketches (i.e., ). randomly chooses users from user set and sets , and generates public/secret key pair for other users honestly. In addition, honestly generates block identifiers and leaf identifiers for n users in the system.
Training. If issues a Send query in the form of either or to user i, then performs the simulation by following the protocol specification honestly. In particular, simulates the message-signature pair using the method as described in [36], where . Note that can obtain the (one-time) public key ( is derived from ) since the correct offset can be computed from the received real/dummy sketches. simulates the response of user j using the same method.
Challenge. If issues a Send query in the form of to challenge user during EarlyReshuffles, then simulates the ciphertext stored in the Bucket MetaData as , where the challenge ciphertext is on message (e.g., ) obtained from his challenger. honestly performs the simulation of during Evict operation according to the protocol specification. Similarly, can simulate the response of when issues a Send query that includes a real block of user j.
Finally, outputs whatever outputs. If guesses the random bit correctly, then can break the IK-CPA security of PKE. Since at most buckets involved during the EarlyReshuffles operation, we have
: This game is identical to game except that at the Challenge stage, we replace the real block identifier by a random string. Below we show the difference between and is negligible under the assumption that the access patten under uORAM protocol is computationally IND secure.
Let denote an attacker, who is given two access patterns with equal length in the time-window ϱ such that , aims to break the IND security of uORAM protocol. simulates the game for as follows.
Setup. sets up the game for by creating n users with corresponding biometrics , sketches (i.e., ) and public/secret key pairs . In addition, randomly chooses users from user set and sets user ’s access pattern as respectively, and generates both block identifier and leaf identifier for other users honestly. Note that user i’s block identifier is implicitly sets as with respect to access pattern (assuming a user has one unique block identifier ). Also note that generates user ’s leaf identifiers.
Training. If issues a Send query in the form of either or to user i, then simulates the response of user i by following the protocol execution honestly. In particular, perfectly simulates the message-signature pair using user i’s secret key and biometrics. faithfully follows the access pattern w.r.t. user i, the same rule applies to user j.
Challenge. If issues a Send query in the form of either or to challenge user , then constructs an equal length access pattern which includes a random block identifier . Then sends two access patterns to his challenge oracle and obtains a challenge sequence of operations under uORAM protocol and returns it to . In addition, simulates the message-signature pair of using user i’s secret key and correct offset which derives from a ( size) set of real/dummy sketches that obtained from its challenger. Note that can also simulate the response of when issues a Send query that includes a real block of user j.
Finally, outputs whatever outputs. If guesses the random bit correctly, then can break the computationally IND security of uORAM. Hence we have
It is easy to see that in game , has no advantage, i.e.,
Combining the above results together, we have
□
Conclusion
In this work, we have proposed the first general framework of strong privacy-preserving remote user authentication based on a new uORAM protocol and computational fuzzy extractors. The proposed general framework achieves the strong privacy against an honest-but-curious authentication server. In particular, the general framework supports a constant bandwidth cost in the challenge-response phase of user authentications. We have proved the security of the proposed general framework under standard assumptions. As for the future work, we would try to design a strong privacy-preserving user authentication that (1) handles multiple user requests in a concurrent and asynchronous manner [6,38]; or (2) secures against malicious servers [3,35].
Footnotes
Trivial solution
Suppose that we use a single instance of Path ORAM as a black-box with N records of n users (), and we show that we can achieve strong privacy and log-linear time-complexity, not constant bandwidth. Specifically, we let the authentication server construct a binary tree, in which each leaf/non-leaf node is a bucket, each bucket contains a certain number of records and each record contains a user’s enrolled verification key and helper data (or sketch). Note that helper data and a cryptographic key are derived from a user’s biometrics, and the same key can be extracted by inputting a “nearby” biometrics and the helper data [16]. In particular, the cryptographic key is used to derive a signing/verification key pair. The idea is, upon an authentication request, the authentication server retrieves a set of records which reside in the same tree path from the database and returns them back to the user. The authorized user first obtains a cryptographic key from her “nearby” biometrics and her enrolled helper data that are included in the returned helper data set, and then generates an anonymous signature (e.g., group signature [10] or ring signature [44]) using a signing key derived from the cryptographic key. The authentication server verifies the anonymous signature under a number of verification keys that are involved in the returned records set. This solution naturally achieves the log-linear time-complexity due to the structure of a binary tree. However, the bandwidth overhead has the log-linear time-complexity in the number of records N.
To highlight the advantage of uORAM over Path/Ring ORAM in user authentications, we present the following points. First, Path ORAM protocol cannot support a constant bandwidth because the server simply returns all blocks in a tree path to the client. In uORAM (and Path ORAM), the server returns only one block from each bucket on the path, so that eliminating the dependence on the bucket size. Second, Path ORAM cannot support an EarlyReshuffles procedure. The uORAM utilizes an EarlyReshuffles procedure (same as Ring ORAM) to reshuffle the buckets, because the dummy blocks may have been updated too many times. In other words, the user must perform an EarlyReshuffles procedure before actual user authentication, in order to ensure the unlinkability across multiple authentications. Third, Ring ORAM is not suitable for user authentications, due to its Evict procedure (as discussed in the Related Work). Therefore, we must select the ideas from both Path ORAM and Ring ORAM to construct our uORAM, which should be particularly suitable for user authentications. We stress that the constant bandwidth in the challenge-response phase can be achieved if and only if we exploit the LWE-based fuzzy extractor. The benefit is to let the user authenticate herself to the server in a practical manner. In other words, the user can perform a fast login during challenge-response phase, while the early-reshuffle and post-reshuffle phases are used to maintain strong privacy. Lastly, the overall bandwidth in the whole user authentication can be summarized to read and write all real blocks (also includes some “updated” dummy blocks) in a tree path twice.
References
1.
A.Akavia, S.Goldwasser and V.Vaikuntanathan, Simultaneous hardcore bits and cryptography against memory attacks, in: TCC, 2009, pp. 474–495.
2.
D.Apon, C.Cho, K.Eldefrawy and J.Katz, Efficient, reusable fuzzy extractors from LWE, in: International Conference on Cyber Security Cryptography and Machine Learning, 2017, pp. 1–18.
3.
M.Backes, A.Herzberg, A.Kate and I.Pryvalov, Anonymous RAM, in: ESORICS, 2016, pp. 344–362.
4.
M.Barni, T.Bianchi, D.Catalano, M.Di Raimondo, R.Donida Labati, P.Failla, D.Fiore, R.Lazzeretti, V.Piuri, F.Scottiet al., Privacy-preserving fingercode authentication, in: Proceedings of the 12th ACM Workshop on Multimedia and Security, 2010, pp. 231–240. doi:10.1145/1854229.1854270.
5.
M.Bellare, A.Boldyreva, A.Desai and D.Pointcheval, Key-privacy in public-key encryption, in: ASIACRYPT, 2001, pp. 566–582.
6.
V.Bindschaedler, M.Naveed, X.Pan, X.Wang and Y.Huang, Practicing oblivious access on cloud storage: The gap, the fallacy, and the new way forward, in: ACM CCS, 2015, pp. 837–849.
7.
O.Blazy, G.Fuchsbauer, D.Pointcheval and D.Vergnaud, Signatures on randomizable ciphertexts, in: PKC, 2011, pp. 403–422.
X.Boyen, Y.Dodis, J.Katz, R.Ostrovsky and A.D.Smith, Secure remote authentication using biometric data, in: EUROCRYPT, Lecture Notes in Computer Science, Vol. 3494, 2005, pp. 147–163.
10.
D.Chaum and E.Van Heyst, Group signatures, in: EUROCRYPT, 1991, pp. 257–265.
11.
B.Chor, O.Goldreich, E.Kushilevitz and M.Sudan, Private information retrieval, in: Proceedings of IEEE 36th Annual Foundations of Computer Science, 1995, pp. 41–50. doi:10.1109/SFCS.1995.492461.
12.
R.Cramer and V.Shoup, A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack, in: CRYPTO, 1998, pp. 13–25.
13.
J.L.DautrichJr., E.Stefanov and E.Shi, Burst ORAM: Minimizing ORAM response times for bursty access patterns, in: USENIX, 2014, pp. 749–764.
14.
S.De Capitani di Vimercati, S.Foresti, S.Paraboschi, G.Pelosi and P.Samarati, Shuffle index: Efficient and private access to outsourced data, ACM Transactions on Storage (TOS)11(4) (2015), 19.
15.
S.Devadas, M.van Dijk, C.W.Fletcher, L.Ren, E.Shi and D.Wichs, Onion ORAM: A constant bandwidth blowup oblivious RAM, in: TCC, 2016, pp. 145–174.
16.
Y.Dodis, L.Reyzin and A.Smith, Fuzzy extractors: How to generate strong keys from biometrics and other noisy data, in: EUROCRYPT, 2004, pp. 523–540.
17.
J.Doerner and A.Shelat, Scaling ORAM for secure computation, in: ACM CCS, 2017, pp. 523–535.
18.
N.Döttling and J.Müller-Quade, Lossy codes and a new variant of the learning-with-errors problem, in: EUROCRYPT, 2013, pp. 18–34.
19.
T.ElGamal, A public key cryptosystem and a signature scheme based on discrete logarithms, IEEE Transactions on Information Theory31(4) (1985), 469–472. doi:10.1109/TIT.1985.1057074.
20.
Z.Erkin, M.Franz, J.Guajardo, S.Katzenbeisser, I.Lagendijk and T.Toft, Privacy-preserving face recognition, in: PET, 2009, pp. 235–253.
21.
B.Fuller, X.Meng and L.Reyzin, Computational fuzzy extractors, in: ASIACRYPT, 2013, pp. 174–193.
22.
O.Goldreich and R.Ostrovsky, Software protection and simulation on oblivious RAMs, JACM43(3) (1996), 431–473. doi:10.1145/233551.233553.
Is your information on mobile health apps safe?, https://www.cybrary.it/2018/05/information-mobile-health-apps-safe/.
25.
M.S.Islam, M.Kuzu and M.Kantarcioglu, Access pattern disclosure on searchable encryption: Ramification, attack and mitigation, in: NDSS, 2012, p. 12.
26.
A.Juels and M.Wattenberg, A fuzzy commitment scheme, in: ACM CCS, 1999, pp. 28–36.
27.
J.Kamp and D.Zuckerman, Deterministic extractors for bit-fixing sources and exposure-resilient cryptography, SIAM Journal on Computing36(5) (2006), 1231–1247. doi:10.1137/S0097539705446846.
28.
N.Li, F.Guo, Y.Mu, W.Susilo and S.Nepal, Fuzzy extractors for biometric identification, in: ICDCS, 2017, pp. 667–677.
29.
M.Maas, E.Love, E.Stefanov, M.Tiwari, E.Shi, K.Asanovic, J.Kubiatowicz and D.Song, Phantom: Practical oblivious computation in a secure processor, in: ACM CCS, 2013, pp. 311–324.
30.
M.Maffei, G.Malavolta, M.Reinert and D.Schröder, Privacy and access control for outsourced personal records, in: Security and Privacy (SP), 2015, pp. 341–358.
31.
T.Matsuda, K.Takahashi, T.Murakami and G.Hanaoka, Fuzzy signatures: Relaxing requirements and a new construction, in: ACNS, 2016, pp. 97–116.
32.
T.Murakami, T.Ohki and K.Takahashi, Optimal sequential fusion for multibiometric cryptosystems, Information Fusion32 (2016), 93–108. doi:10.1016/j.inffus.2016.02.002.
33.
O.Regev, On lattices, learning with errors, random linear codes, and cryptography, JACM56(6) (2009), 34. doi:10.1145/1568318.1568324.
34.
L.Ren, C.W.Fletcher, A.Kwon, E.Stefanov, E.Shi, M.Van Dijk and S.Devadas, Constants count: Practical improvements to oblivious RAM, in: USENIX, 2015, pp. 415–430.
35.
C.Sahin, V.Zakhary, A.El Abbadi, H.Lin and S.Tessaro, Taostore: Overcoming asynchronicity in oblivious data storage, in: Security and Privacy (SP), 2016, pp. 198–217.
36.
C.-P.Schnorr, Efficient identification and signatures for smart cards, in: CRYPTO, 1989, pp. 239–252.
37.
E.Shi, T.H.Chan, E.Stefanov and M.Li, Oblivious RAM with O((log N)3) worst-case cost, in: ASIACRYPT, 2011, pp. 197–214.
38.
E.Stefanov and E.Shi, Oblivistore: High performance oblivious cloud storage, in: Security and Privacy (SP), 2013, pp. 253–267.
39.
E.Stefanov, E.Shi and D.X.Song, Towards practical oblivious RAM, in: NDSS, 2012.
40.
E.Stefanov, M.Van Dijk, E.Shi, C.Fletcher, L.Ren, X.Yu and S.Devadas, Path ORAM: An extremely simple oblivious RAM protocol, in: ACM CCS, 2013, pp. 299–310.
41.
K.Takahashi, T.Matsuda, T.Murakami, G.Hanaoka and M.Nishigaki, A signature scheme with a fuzzy private key, in: ACNS, 2015, pp. 105–126.
42.
X.Wang, H.Chan and E.Shi, Circuit ORAM: On tightness of the Goldreich–Ostrovsky lower bound, in: ACM CCS, 2015, pp. 850–861.
43.
Y.Wen and S.Liu, Robustly reusable fuzzy extractor from standard assumptions, in: ASIACRYPT, 2018, pp. 459–489.
44.
F.Zhang and K.Kim, ID-based blind signature and ring signature from pairings, in: ASIACRYPT, 2002, pp. 533–547.