Private retrieval of digital objects

A database (104) maintains one or more groups (106) of digital objects (202). A user (102) wishes to retrieve one or more digital objects (202) from the database (104), without the database (104) being able to determine which particular digital objects (202) have been retrieved. In addition, the database (104) should not allow the user (102) to retrieve any digital objects (202) to which the user (102) has not been granted access. The user (102) requests the groups (106) containing the digital objects (202) the user (102) wishes to download, but does not identify the digital objects (202) within each group (106) that the user (102) is interested in. Using a symmetric key cryptosystem, the database (104) generates a key (204) for and encrypts each digital object (202) in the requested group (106) into ciphertext (206), and additionally encrypts each key (204). The database (104) transmits the ciphertexts (206) and encrypted keys (208) to the user (102). The user (102) identifies the keys (208) associated with the digital objects (202) of interest, and further encrypts the keys (208), returning the changed keys (506) to the A database (104). The database (104) reverses its encryption of the keys (506), and transmits the partially decrypted keys (510) back to the user (102). The user (102) then applies the user's (102) own decryption algorithm to the keys (510), and then uses the decrypted keys (204) to decrypt the digital objects (202) of interest.

TECHNICAL FIELD

The present invention relates generally to secure and private communications enabling retrieval of digital objects from a computerized database.

BACKGROUND ART

The World Wide Web (WWW) has evolved from a service focused on academic areas and offering scientific content into a medium for common users to access information of various origins. While surfing the Web, many users are not aware that a large number of organizations such as those in the marketing industry are gathering their private information. This information is supplemented when a user accesses a Web site, clicks a Web page, makes an electronic purchase, or downloads a file. From all the records and computerized analysis, the information collector can build a digital dossier about the users—what they do, where they go, what they read, what they buy, etc.

There has, therefore, been general recognition of the need for privacy protection on the Internet. One situation in which privacy is a large concern is when databases containing users' personal information are accessed. To illustrate, suppose there is a database that maintains groups of digital objects, and a user wishes to retrieve a subset of the digital objects. Two desirable constraints on database access are as follows:1) the user can access data the user wants, without disclosing to the database the specific digital objects actually desired; and2) the user can not get any additional information from the database without the consent of the database.
The first constraint is referred to as user privacy and the second constraint is referred to as database security.

One example that illustrates these concepts is the task of providing electronic newspaper services over the Internet. A database maintains a collection of digital news articles. Assuming that a subscriber request n articles, database security requires that the subscriber gets only n articles, while the user privacy requires that the database cannot determine which n specific articles are retrieved by the subscriber.

The problem of private information retrieval was reviewed by B. Chor, O. Goldreich, E. Kushilevaita, and M. Sudan, “Private Information Retrieval,”Proceedings of the36th Annual Symposium on Foundations of Computer Science,pp, 41–50, 1995. The authors were connected with information-theoretical security and proposed solution using multiple databases. However, the security of this solution relies on the assumption that the multiple databases do not communicate with each other, which is not guaranteed to be the case, and is additionally outside of the user's control and ability to independently verify.

Private information retrieval schemes using a single database were later proposed in B. Chor and N. Gilboa, “Computational Private Information Retrieval,”Proceedings of the29th Annual ACM Symposium on Theory of Computing,pp. 304–313, 1997, and E. Kushilevita and R. Ostrovsky, “Single-Database Computationally Private Information Retrieval, ”Proceeding of the38th annual Symposium on Foundation of Computer Science, 1997. These solutions are concerned with security based on computational assumption theory, and in particular the difficulty of factoring large prime numbers, as is done in the well-known RSA encryption scheme. However, the computational costs of these solutions are prohibitively large due to their bit-by-bit processing approach. For example, the scheme in the Kushilevita and Ostrovsky reference requires a computational cost on the order of O(N) multiplication modulo a 1024-bit number just to retrieve 1 bit of information, where N is the number of bits of data maintained by the database.

The requirement of database security in the context of private information retrieval was studied in Y. Gertner, Y. Ishai, E. Kushilevita and T. Malkin, “Protecting Data Privacy in Private Information Retrieval Schemes,”Proceedings of the30th ACM Annual Symposium on Theory of Computing,1998.

All of the proposed solutions to the problem of private information retrieval described above employ the bit-by-bit processing approach. Therefore, they have only theoretical values, and are not feasible in practical applications, because of the time that would be required to solve each problem.

Therefore, what is needed is a way of allowing a user to achieve information retrieval from a database in an efficient manner while maintaining privacy.

DISCLOSURE OF INVENTION

In accordance with the present invention, there is provided a way to allow a user (102) to achieve private information retrieval from a database (104) in an efficient manner. The database (104) maintains one or more groups (106) of digital objects (202) available for users to access. A user (102) can retrieve a subset of digital objects (202) from a group (106) of digital objects (202) in the database (104) such that:1) the user can access the data (202) the user (102) wants, without disclosing to the database (104) the specific digital objects (202) actually desired; and2) the user (102) can not access additional information (202) from the database (104) without the consent of the database (104).

Objects (202) in the database (104) are stored in one or more different groups (106). The user (102) identifies some particular objects (202) of interest in the database (104), and additionally to which groups (106) those objects (202) belong. The user (102) then sends (302) a request to the database (104), specifying only the groups (106) containing the desired objects (202), but does not specifically identify the particular digital objects (202) desired. At his point, an electronic commerce transaction might take place, where the user (102) pays for access to a specified number of digital objects (202). The database (104) then encrypts (304) all digital objects (202) in each requested group (106) into ciphertext (206). In addition, a key (204) for each ciphertext (206) is encrypted (306). The database (104) then sends back (308) to the user (102) both the ciphertexts (206) and the associated encrypted keys (208).

At this point, the database (104) knows only that the user (102) desires one or more digital objects (202) from a particular group (106) of digital objects in the database (104), but is unable to determine which particular objects (202) are of interest.

The user identifies (310) the ciphertexts (206) of the desired digital objects (202), and their associated keys (208). Next, the user re-encrypts (312) the identified keys (208), and returns (314) the re-encrypted keys (506) to the database (104). The database decrypts (316) the keys (506) to the extent that it is able—i.e., the database (104) reverses the encryption it previously applied to those keys (506). However, the database (104) is unable to identify which digital objects (202) the keys (506) are associated with, because the keys (512) remain encrypted with the user's encryption scheme. The database (104) now sends (318) the keys (512) back to the user (102).

Once the user (102) receives the keys (512) back from the database (104), the next step is simply to decrypt (320) them using the user's own decryption scheme (604), thus revealing the unencrypted keys (204). Finally, the user (102) uses those keys (204) to decrypt (322) the appropriate digital object ciphertexts (206).

Since the database (104) is unable to determine which keys (204) it has decrypted, user (102) privacy is maintained. And, since the user (102) cannot gain access to any key (204) unless the database (104) first decrypts it, the user (102) will not be able to access any more objects (202) than are authorized. Thus, both constraints discussed above have been satisfied.

The present invention does not require multiple databases. Processing is digital object (202) oriented instead of bit oriented. User (102) privacy is guaranteed without any computational constraint and without additional constraints on the “honesty” of the database (104). This means that the user's interest in specific digital objects (202) is not disclosed. The security of the database (104) is based on the assumption of the intractability of computing discrete logarithms, which forms the basis of many existing digital signature schemes and the Diffie-Hellman key exchange protocol. See W. Diffie and M. Hellman, “New directions in cryptography,”IEEE Transactions on Information Theory,Vol. IT-22, No. 6, pp. 644–654, November 1976.

The present invention also provides a balance between user (102) privacy and communication cost. Communication cost can be reduced by decreasing the size of a digital object group (106), while a large digital object group (106) size gives better user (102) privacy protection.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A cryptographic system, or cryptosystem, has an encryption key to convert plaintext into ciphertext and a decryption key to recover the plaintext from ciphertext. If the encryption key and the decryption key are identical, the cryptosystem is called a symmetric key cryptosystem. If the encryption key and the decryption key are different and it is computationally infeasible to determine the decryption key from the mathematically-related encryption key, the cryptosystem is called an asymmetric key cryptosystem, or a public key cryptosystem. For illustrative purposes, the preferred embodiments described here make reference to symmetric key cryptosystems for encryption and decryption. It will be apparent to those skilled in the art, however, that asymmetric key cryptosystems could also be used. See, for example, A. Menezes, P. Oorschot, and S. Vanstone,Handbook of Applied Cryptography,CRC Press, 1996, or C. Kaufman, R. Perlman, and M. Speciner,Network Security-Private Communication in A Public World,PTR Prentice Hall, Englewoor Cliffs, N.J., 1995.

For purposes of clarity, we use e(k, m) to denote encryption of a digital object m with key k in a symmetric key cryptosystem; and d(k, c) to denote the decryption of a ciphertext c with key k in a symmetric key cryptosystem.

FIG. 1is a model of a data access system between a user102and a database104. The system contains a user102, and a database104. The database104maintains groups106of digital objects m202. The user102wishes to access digital objects202in the database104by subscribing to the database's service, or by paying the database104with electronic cash, or by other means as required by the database104. A connection108between the user102and the database104could be any standard communication media, such as the Internet or other wide area network. Further, the database104maintains one or more groups106of digital objects m, and the user102is interested in retrieving digital objects202from the group of N digital objects {m, i=1, 2, . . . , N}106in the database104. InFIG. 1, the illustrated database104contains Groups A through G; however it will be appreciated that the present invention is applicable to a database104containing any number of groups106. It should also be noted that the particular manner in which the user102discovers the desired group106is not material to the present invention. All that is required is that the user102, either directly or through the use of client software operated by the user102, be aware of the digital object202the user wants, and the group106in which that object202is located.

FIG. 2is a block diagram of a group106of digital objects202contained within the database104. A group106contains one or more digital objects202. The number of digital objects202in a group106is determined by the operator/maintainer of the database104, and may be determined by factors not within the scope of the present invention. For purposes of the present invention, however, it will be noted from the description that decreasing the size of a group106reduces communication cost, but also decreases privacy protection for the user102. Initially, encryption is performed upon all objects202in the group106, as indicated below. Thus, each digital object202in the group106will have a ciphertext206and a key204, and each key204will additionally have an associated ciphertext208.

FIG. 3shows a flowchart of the operation of a preferred embodiment of the present invention. The database104and user102have agreed on some prime number p, such that p=vq+1, where q is a large prime number, for example 160 bits in length, and v is a large integer, for example 800 bits in length. The prime number q is chosen such that p will be prime as well. When the user102wants to retrieve digital objects202from the group106, the user102sends302a request and optionally the corresponding payment to the database104. Upon receipt of the request, the database104generates303a random number R, 0<R<p−1, and N keys ki, i=1, 2, . . . , N, for a symmetric key cryptosystem in a fashion well known in the art. One key k is associated with each digital object m. The database then encrypts304each digital object mi202in the group106with ki,204using the symmetric key cryptosystem to obtain ciphertext ci=e (ki, mi), i=1, 2, . . . , N206. Finally, the database104encrypts306the keys204themselves to obtain si=kiRmod p, i=1, 2, . . . , N208.

FIG. 4is a block diagram that further illustrates the encryption performed on a digital object202by the database104. The digital object202and its associated key204are provided to the cryptosystem406, to produce the ciphertext206, e(ki, mi). Similarly, using a prime number p404, the key204and random number R402, the key204itself is encrypted into ciphertext208via the cryptosystem406.

FIG. 5ais a block diagram illustrating the process carried out by the user102of re-encrypting312the key204. In addition to the key ciphertext208, a prime number p404and random number w502are processed through the encryption algorithm (sijwjmod p, as described above)504to obtain thee re-encrypted key506.

Similarly,FIG. 5billustrates the partial decryption314performed by the database104on the re-encrypted key506. Using the previously-generated random number R402and prime number p404, the re-encrypted key506is then decrypted314using the decryption algorithm (Wj1/r mod(p−1)mod p)508to obtain the partially decrypted key U510.

FIG. 6aillustrates the step of transforming the partially decrypted key U510into the unencrypted key K204. The partially decrypted key U510, the random number w502, and prime number p404are input into the use decryption algorithm (Uj1/wj mod(p−1)mod p)602, thus revealing the unencrypted key K204.

Then, as shown inFIG. 6b,key k204and ciphertext c206are input into the cryptosystem decryption algorithm (d(kij, cij))604to obtain the digital object m202.

FIG. 7is a block diagram of an apparatus that is a preferred embodiment of the present invention. Note that the apparatus can be implemented either as hardware, firmware, or software. The user102has a user bus726through which each of the user modules communicate. Similarly, the database104has a database bus728. The user bus726and database bus728communicate via connection108. The user102requests a group from the database104using the requesting module714. The user generates random numbers using the random number generating module718. Transmissions from the database104to the user102are received by the receiving module716. Data is sent from the user102to the database104via the transmitting module722. User102encryption is performed by the encrypting module720, and user102decryption by the decryption module724.

Focusing on the database104modules illustrated inFIG. 7, the database104generates random numbers using the random number generating module702. Transmissions from the user102to the database104are received by the receiving module710. Transmissions from the database104to the user102are sent by the transmitting module708. The database104also has a key generating module704for generating keys204, an encrypting module706, and a decrypting module712.

First, it can be easily seen from this description that the user102can obtain the desired digital objects m1j202by decrypting ciphertexts cij206with computes kij=Uj1/wj mod(p−1)mod p, j=1, 2, . . . , n. That is, if both the database104and user102follow the protocol, the user102gets the desired information. However, under no circumstances is the database104able to pinpoint which digital objects202are being retrieved by the user102. In order for the database104to find out which digital object202the user102is interested in retrieving, the database104would need to figure out which sij208is being used to compute Wj=sijwjmod p506by the user102. However, the only information available to the database104is Wj=sijwjmod p, 1, 2, . . . , n and sij, i=1, 2, . . . , N. Since wj's are randomly chosen and kept secret by the user102, it is equally likely that all sij's208are being used in computing Wj=sijwjmod p, j=1, 2, . . . , n. Therefore, the user's privacy is satisfied without having to rely on any computational assumptions.

Next, we consider database104security. Without loss of generality, assume that the user102has paid and retrieved m1, m2, . . . , mj202. The user102then tries to recover mj+1, which the user102is not authorized to access, without the database's104help. This problem is equivalent to, given s1208(1), k1204(1), s2208(2), k2204(2), . . . , sj, kj, and sj+1, finding kj+1such that sj+1=kj+1Rmod p. One approach to solving this problem is to find R402from, for example, sj=kjRmod p and then compute kj+1=sj+11/R(p−1)mod p. But this is equivalent to solving the discrete logarithm problem, and is therefore not feasible. The second approach is to express sj+1in terms of multiplication or division of s1, s2, . . . , sj. Then kj+1can be found from a corresponding expression in terms of k1, k2, . . . , kj. However, since k1, k2, . . . , kjand kj+1are all independently and randomly chosen, finding the relationship between the sj's is also not computationally feasible.

Finally, digital objects202are encrypted with a symmetric key cryptosystem and the encryption keys204are protected using large exponentiations. To recover the digital objects202from the ciphertexts206, an eavesdropper must be able to break the symmetric key cryptosystem or solve the discrete logarithm problem. Both are computationally infeasible for well-designed ciphers and exponentiations with large prime modulus.