US 7006999 B1 Abstract A method for enabling privacy and trust in electronic communities is disclosed. A major impediment to using recommendation systems and collective knowledge for electronic commerce is the reluctance of individuals to reveal preferences in order to find groups of people that share them. An equally important barrier to fluid electronic commerce is the lack of agreed upon trusted third parties. We propose new non-third party mechanisms to overcome these barriers. Our solutions facilitate finding shared preferences, discovering communities with shared values, removing disincentives posed by liabilities, and negotiating on behalf of a group. We adapt known techniques from the cryptographic literature to enable these new capabilities.
Claims(3) 1. A method for anonymously establishing a proving individual as a member of a group for purposes of establishing a community recommendation without liability, wherein the proving individual has a private key, comprising the computerized steps of:
forging an identification transcript for at least one unknown private key, wherein the transcript comprises at least one forged commitment, at least one forged challenge, and at least one forged response, the step of forging performed by any of one or more computers;
calculating a valid commitment based on the proving individual's private key, the step of calculating a valid commitment performed by any of one or more computers;
transmitting the at least one forged commitment and the valid commitment to a verifying individual, the step of transmitting the at least one forged commitment and the valid commitment performed by any one or more computers;
receiving a verifying challenge from the verifying individual, the step of receiving the verifying challenge performed by any one or more computers;
calculating a valid challenge based on the at least one forged challenge and the verifying challenge, the step of calculating the valid challenge performed by any of one or more computers;
calculating a valid response based on the valid challenge and the valid commitment, the step of calculating the valid response performed by any of one or more computers;
transmitting the at least one forged challenge, the valid challenge, the at least one forged response, and the valid response to the verifying individual, the step of transmitting the at least one forged challenge performed by any of one or more computers;
verifying that the at least one forged challenge and the valid challenge are consistent with the verifying challenge, the step of verifying that the at least one forged challenge and the valid challenge are consistent performed by any of one or more computers;
verifying that the at least one forged response is consistent with the at least one forged commitment and the at least one forged challenge, the step of verifying that the at least one forged response is consistent with the at least one forged commitment and the at least one forged challenge performed by any of one or more computers; and
verifying that the valid response is consistent with the valid commitment and the valid challenge, the step of verifying that the valid response is consistent with the valid commitment and the valid challenge performed by any of one or more computers.
2. The method of
3. The method of
the transcript comprises a plurality of forged commitments, a plurality of forged challenges, and a plurality of forged responses.
Description The present application is related to commonly assigned U.S. patent application Ser. No. 60/134,179, entitled “Method For Increasing the Efficiency of Negotiations without Revealing Information”, which was filed May 13, 1999 concurrently with the present application. The present invention relates to the field of electronic commerce, and in particular to a method for enabling privacy and trust in electronic communities. With the advent of the World Wide Web and the ease of entry enabled by the Internet, electronic commerce is becoming an increasing reality, with a consequent growth in the number and variety of information providers and e-commerce sites. While this growth generates a diverse set of offerings from which consumers can only benefit, it also makes it hard for people to choose, in part because it is difficult to judge a priori the value of the offerings. In addition, since providers of electronic commerce sometimes lack recognizable reputations and can offer similar services, it is seldom possible to make optimal decisions as to which sites to access and which ones to avoid. As with many other situations where choice is costly, people resort to a cooperative mechanism which relies on the collective search performed by a whole community to find desirable and useful sites. Large groups of people surfing and buying on their own can sample a much larger information space than single individuals, and any exchange of relevant findings can increase the awareness of possibly interesting sites. Even though recommendations, both personal and institutional, can be unreliable and highly idiosyncratic, they decrease the cost of searching for optimal sources of information, while leading to the discovery of new sites and improved ways of surfing the Web. Given these considerations, one would expect to find within the Web sites and communities that issue useful recommendations on a number of topics. See W. C. Hill, L. Stead, M. Rosenstein and G. Furnas, “Recommending and evaluating choices in a virtual community of use”, proc. CHI'95, (1995), 194-201; C. Avery and R. Zeckhauser, “Recommender systems for evaluating computer messages”. Communications of the ACM 40, (1997), 88-89; and N. Glance, D. Arregui, and M. Dardenne, “Knowledge pump: supporting the flow and use of knowledge”, in Information Technology for Knowledge Management. Eds. U. Borghoff and R. Pareschi, Springer (1998). This information can then be used to create recommendations for other users and to identify similar individuals, thereby helping to make informal communities apparent. But while a great deal of economically useful information is distributed widely within groups of people such as large organizations, communities of practice (see B. A. Huberman and T. Hogg, “Communities of practice: performance and evolution”, Computational and Mathematical Organization Theory 1, (1995), 73-92), scientific communities and the economy at large, privacy issues make it hard to successfully exploit that knowledge. The limitations range from having to assess the quality of a recommendation from a group whose preferences might differ from the inquirer, to the natural reticence people have to reveal their preferences to an anonymous group with possibly different values. One issue that makes recommender systems perform below their potential is the difficulty of convincing potential advice-takers of the credibility and reliability of the recommendations. This depends in part on the willingness of potential recommenders to make available the right information at the right times. An important factor that dissuades potential recommenders from participating effectively is the risk that failed advice could lead to bruised reputations and liabilities. P. Samuelson, “Liability for Defective Electronic Information”, Communications of the ACM 36, (1993), 21-26. As in the physical world, there exist a number of useful mechanisms to circumvent problems of privacy, trust and liability. For example, a useful strategy for maintaining privacy consists in the anonymous posting of information. In recommender systems this can be useful when the recommendations are based on coarse characteristics such as the number of people voting for a particular choice. But anonymity has the drawback of preventing users from learning the usefulness of recommendations from particular people, track trends over time, and to use reputations which are built up over repeated interactions. The consistent use of pseudonyms can address some of these issues, but not all. One drawback of pseudonyms is that the very link which establishes reputation over time becomes a vulnerability if authorship can be established by other means for any pseudonymous message. Issues of privacy can also be tackled by the use of trusted third parties to mediate the exchange of information. However, it can be difficult to get everyone in a community to agree on a suitable third party, particularly when new users continually enter the system. Furthermore, the collection of all information by a single third party can lead to a system-wide failure if such a party is compromised. What is truly desirable is the enhancement of privacy and trust in electronic communities without having to resort to anonymity, pseudonymity, or trusted third parties. A major impediment to using recommendation systems and collective knowledge for electronic commerce is the reluctance of individuals to reveal preferences in order to find groups of people that share them. An equally important barrier to fluid electronic commerce is the lack of agreed upon trusted third parties. A method for enabling privacy and trust in electronic communities is disclosed to overcome these barriers by facilitating the processes of finding shared preferences, discovering communities with shared values, removing disincentives posed by liabilities, and negotiating on behalf of a group. An embodiment of the present invention provides a method for anonymously establishing a proving individual as a member for group, wherein the proving individual has a private key. An identification transcript is forged for least one unknown private key, wherein the transcript includes at least one forged commitment, at least one forged challenge, and at least one forged response. A valid commitment is calculated based on the proving individual's private key. The at least one forged commitment and a valid commitment are transmitted to a verifying individual. A verifying challenge is received from the verifying individual and a valid challenge is calculated based on the at least one challenge and the verifying challenge. A valid response is calculated based on the valid challenge in the valid commitment. The at least one forge challenge, the valid challenge, the at least one forged response, and the valid response are transmitted to the verifying individual. The identification transcript may comprise a commitment, a challenge, and a response from a Schnorr identification protocol. The method may also include the step of verifying that the forged challenge and the valid challenge are consistent with the verifying challenge. The method may also include the step of verifying to the forged response is consistent with a forged commitment and a forge challenge, and the step of verifying that the valid response is consistent with the valid commitment and in the valid challenge. Another embodiment of the present invention provides a method for a signing individual to deniably sign a document intended for a recipient, wherein the signing individual as a private key and public key and the recipient has a public key. An identification transcript is forged for an unknown private key, wherein the transcript comprises a forged commitment, a forged challenge, and a forged response. A random factor is calculated and a valid commitment is calculated based on the random factor. A for a fine challenge is calculated as a cryptographic hash of the document, the forged commitment, the valid commitment, the signing individual's public key, in the recipient's public key. A valid challenge is calculated based on the verifying challenge on the forged challenge. A valid response is calculated based on the random factor, the valid challenge, in the signing individual's private key. The method may further include testing the forged identification transcript by verifying that the forged commitment, the forged challenge, and the forged response are consistent. The method may also include testing a valid identification transcript by verifying that the valid commitment, the valid challenge, and a valid response are consistent, and testing the challenge by verifying that the valid challenge and the forged challenge are consistent with the verifying challenge. The techniques of the present invention may be used to enhance privacy and trust in electronic communities without having to resort to anonymity, pseudonymity, or trusted third parties, through the novel application of existing cryptographic techniques. In particular, solutions are proposed to the problems of finding shared preferences, discovering communities with shared values and removing the disincentives posed by liabilities. In addition we propose a mechanism that allows an individual to negotiate on behalf of a group by proving membership in that group without revealing one's identity. An embodiment of the present invention may also include steps shown in the flowchart Another embodiment of the present invention, shown by flowchart The method may also include steps shown in the flowchart The methods shown in The mechanisms we propose rely on a variety of cryptographic techniques, which in turn exploit the use of two fundamental cryptographic primitives: hash functions and public key systems. For the benefit of the reader unfamiliar with this field we now describe the general properties of these two primitives. In general, cryptographic functions operate on inputs such as “messages” and “keys”, and produce outputs such as “ciphertexts” and “signatures”. It is common to treat all of these inputs and outputs as large integers according to some standardized encoding. Throughout this specification, the reader should assume that any value involved in a cryptographic function is a large integer, no matter what it may be called. A cryptographic hash function, H, is a mathematical transformation that takes a message m of any length, and computes from it a short fixed-length message, which we'll call H(m). This fixed length output has the important property that there is no way to find what message produced it short of trying all possible messages by trial and error. Equally important, even though there may exist many messages that hash to the same value, it is computationally infeasible to find even two values that “collide”. This practically guarantees that the hash of a message can “represent” the message in a way which is very difficult to cheat. An even stronger property that we will require is that the output of a cryptographic hash function cannot be easily influenced or predicted ahead of time. Thus someone who wanted to find a hash with a particular pattern (beginning with a particular prefix, say) could do no better than trial and error. In practice, hash functions such as MD- Public key encryption (or signature) rely on a pair of related keys, one secret and one public, associated with each individual participating in a communication. The secret key is needed to decrypt (or sign), while only the public key is needed to encrypt a message (or verify a signature). A public key is generated by those wishing to receive encrypted messages, and broadcasted so that it can be used by the sender of the message to encode it. The recipient of this message then uses his own private key in combination with his public key to decrypt the message. While slower than secret key cryptography, public key systems are preferable when dealing with networks of people that need to be reconfigured fairly often. Popular public key systems are based on the properties of modular arithmetic. 3.1. Motivation and Intuition It is often the case that a group of individuals shares a number of preferences while being unaware of the existence of each other. While the Internet provides mechanisms for speeding up the process of discovering people with similar interests, it does not remove the disincentive inherent in having to disclose private information to unknown people while searching for a community that shares a given set of preferences. Consider, for example, the problem of finding someone from whom to request a recommendation about a particular topic. This can be difficult if one is reluctant to reveal one's preferences to people who might or might not share them. It would be useful to design a mechanism that circumvents this problem. In what follows we present a procedure that allows for a group of individuals to privately search for others with similar preferences while keeping their preferences private. Furthermore, this discovery process is made operational by producing keys that are available only to members of the group and allow them to communicate with each other. Another application of this mechanism for community discovery obtains recommendations from users with similar interest profiles without contacting them directly. This application can be used in e-commerce situations to recommend products likely to be of interest based on the preferences of similar users. By maintaining both privacy and selectivity based on reputations, this mechanism allows for precise recommendations. Community discovery can also be useful in creating additional services. For instance, as discussed in section These techniques could be useful not only for users providing information but also for those requesting recommendations. Examples include determining the majority opinion in a group without revealing individual preferences, or identifying significant but unpopular viewpoints. Furthermore, these protocols allow queries over a set of topics without revealing the particular question of interest. This could be useful when a sudden shift of interest in particular questions or products might change the group behavior in undesirable ways, e.g., causing changes in price levels before an e-commerce transaction is completed. 3.2 Details of our Approach Community Discovery: Our approach to community discovery uses an idea that goes back to work by Bellare and Micali on non-interactive oblivious transfer. M. Bellare and S. Micali, “Non-interactive oblivious transfer and applications”, proc. Crypto '89, 547-557. Anyone can ask a question Q by posting it on a bulletin board. For simplicity, assume that Q is a yes/no question, although our techniques generalize to arbitrary multiple-choice questions. We can associate an unpredictable random “challenge” with each question Q in a standard way, by taking the challenge to be the hash of Q together with some system-wide public keys. To answer a question Q, create two public keys y Now anyone can encrypt a message that you can read only if you answered a question in a certain way. Suppose that A wants to send B a message M, but A only wants B to be able to read it if B answered no to question Q. Then A encrypts the message using y Community-Wide Conference Key: The mechanism described above is already enough for the community to find itself and begin a discussion. It might be desirable to generate a single key that was known to all members of the community to facilitate a community-wide discussion. One way to achieve this is to have any member of the community choose a secret key and encrypt it so that every other community member can decrypt it. For example, if I answered no to question Q, then I can choose a random “community-wide conference key” and encrypt it using the “no” public key for every answerer. All of these encryptions can be posted anonymously if desired, and signed with a proof of anonymous group membership as described in Section Private Preference Matching: The community discovery techniques described above could be repeated for a number of different questions. Then A could send B a message which B could read only if B answered each question a certain way, by encrypting the message so that all of the corresponding keys were necessary to decrypt. Another approach to multiple shared preferences is to perform a “secure distributed computation” to find people who answered questions in a compatible way. This can be done quite efficiently in the case where compatibility is measured by the number of yes/no questions that were answered in common. A basic preference-matching function takes as input two lists of yes/no answers and a threshold. It outputs “true” if the number of answers where the two lists match is at or above the threshold. The one-against-many variant takes as input a “query” answer list, a “database” of answer lists, and a threshold. It outputs pointers to all answer lists in the database that have a sufficiently large match with the query list. The many-against-many variant is similar, except there are two database lists, or a single list compared against itself. There are a number of techniques in the cryptographic literature for two or more parties to compute these kind of preference matching functions, under a wide variety of assumptions about the fault model, the amount of information leakage, the communication model, and so forth (surveyed in M. Franklin and M. Yung, “Varieties of secure distributed computing”, proc. Sequences II Workshop, 1991). In the Appendix, we present one technique that is somewhat easier to describe, and quite efficient. Note that this scheme leaks a small amount of additional information, i.e., the number of matches in two preference lists rather than the one-bit decision about whether the number of matches exceeds some threshold. This is not an inherent limitation. It is a design trade-off to achieve greater efficiency. 4.1 Motivation and Intuition Finding someone satisfying a number of shared preferences is not enough in order to obtain a valuable recommendation. A potential recommender might be concerned about the liability that would result if the recommendation turned out to be of negative value to the requester. This is a concern for a number of communities, including malpractice-sensitive doctors, financial advisors, or even members of a recommendation system such as Xerox's Knowledge Pump (see Glance, Arregui, and Dardenne, referenced above). While anonymity might address this problem, it then generates another one, which has to do with the lack of a reputation that could be built over time. Pseudonyms allow reputations to be built over time, but they are “brittle” in the sense that uncovering the author of any message would establish the authorship of all messages with that pseudonym. Another possible approach is a contract in which the parties explicitly agree to waive liability, but this may be cumbersome and costly to devise, especially when multiple jurisdictions are involved. We propose the use of “deniable signatures” to allow reputations and limited associations without fear of liability. With a deniable signature, the recipient of a recommendation knows it came from a person with an appropriate reputation, but cannot prove that connection to anyone else. A further enhancement can give deniable signatures that are “convertible”. The signer keeps an additional secret for each signed message which, when revealed, converts a deniable signature into an “ordinary” signature that is clearly and convincingly connected to the signer. This could give the recommender the flexibility to avoid liability as a default, while maintaining the ability to prove authorship if necessary. A further enhancement can distribute the conversion mechanism among many parties, to prevent the signer from being coerced to convert a deniable signature against his will. 4.2 Our Approach Deniable signatures have been the focus of much attention in the cryptographic literature in recent years. In what follows, we describe one particularly efficient approach to deniable signatures that relies on ideas from Cramer, Damgaard and Schoenmakers (R. Cramer, I. Damgaard and B. Schoenmakers, “Proofs of partial knowledge and simplified design of witness hiding protocols”, proc. Crypto '94, 174-187) and Jakobsson, Sako and Impagliazzo (M. Jakobsson, K. Sako and R. Impagliazzo, “Designated verifier proofs and their applications”, proc. Eurocrypt '96, 143-154). It relies on a technique to prove knowledge of one out of two secret keys without revealing which is known. To begin, we describe a generic kind of three-round proof of knowledge. The Schnorr protocol is an example that fits the model we describe. C. Schnorr, “Efficient signature generation by smart cards”, Journal of Cryptology 4 (1991), 161-174. The prover knows a secret key that corresponds to a given public key. To authenticate himself to a verifier, the prover wishes to demonstrate knowledge of the secret key. They proceed as follows: -
- 1. Prover→Verifier: cryptographic commitment based on prover's secret key;
- 2. Verifier→Prover: random challenge based on verifier's random coin flips;
- 3. Prover→Verifier: consistent response to challenge;
- 4. Verifier accepts if response is consistent with commitment, challenge, and prover's public key. This is convincing to the verifier because it would have been very difficult for the prover to compute a consistent response without knowing the secret key.
To create a one-out-of-two proof of knowledge, another trick is needed. Many of these three-round proofs of knowledge (including the Schnorr protocol) have the remarkable property that it is very easy to forge transcripts—without knowing the secret key. The forger works backwards, starting with a (third-round) random response, and then choosing a (second-round) random challenge. Given these, it easy to compute a (first-round) commitment that will complete a valid transcript. (Of course, this doesn't contradict the security of the proof of knowledge, since there is a big difference between being able to forge a transcript by working backwards, and being able to fool a verifier in real-time going forwards.) For the one-out-of-two proof of knowledge, the Prover forges a transcript ahead of time for the secret key that he does not know. Then the protocol is as follows: -
- 1. Prover→Verifier: commitment
_{1}, commitment_{2}; - 2. Verifier→Prover: challenge (only one!);
- 3. Prover→Verifier: challenge
_{1}, response_{1}, challenged_{2}, response_{2 }such that challenge_{1}+challenge_{2}=challenge; - 4. Verifier tests the following:
- (a) consistency of commitment
_{1}, challenge_{1}, response_{1}, public key_{1}; - (b) consistency of commitment
_{2}, challenge_{2}, response_{2}, public key_{2}; - (c) challenge=challenge
_{1}+challenge_{2}.
- (a) consistency of commitment
- 1. Prover→Verifier: commitment
The intuition behind this protocol is that the Prover is free to split the Verifier's challenge so that one of the pieces matches the pre-forged transcript. This leaves the Prover to respond to the other piece of the challenge, which he can do because he knows that secret key. If the Prover knows neither secret key, then it is very unlikely that the Verifier's challenge can be split to match two pre-forged transcripts. These interactive protocols can be converted into non-interactive signature schemes by using the Fiat-Shamir heuristic. U. Feige, A. Fiat and A. Shamir, “Zero-knowledge proofs of identity”, Journal of Cryptology 1 (1988), 77-94. The idea is that the signer plays the role of the Prover, but computes the Verifier's challenge himself using a cryptographically strong hash function such as MD Now we can describe the deniable signature scheme at an intuitive level (see Appendix for details). Sign a message using the non-interactive version of a one-out-of-two proof of knowledge, where the two public keys belong to the signer and the receiver. That is, the signer is proving knowledge of either his own private key or the receiver's private key. This signature could only have been produced by the signer or the receiver, and thus it is completely convincing to the receiver (by process of elimination!). However, no third party can tell whether the signer or the receiver has created this signature, and so the signer has deniability. For convertibility, the signer takes advantage of the freedom that he has in generating the forged transcript. Instead of beginning his forgery with a random third-round response, the forger computes this value as the output of a cryptographic hash function. Revealing the input to the hash function would be convincing evidence as to which part of the transcript was forged, and thus which secret key must have been known to the signer. It is easy to distribute the conversion function among many parties, by using a sum of hash outputs instead of a single hash output to compute the forged response, where each party knows only one of the hash inputs. 5.1 Motivation and Intuition It is often the case that membership in a particular group or community can be valuable for establishing one's credentials, reputation or even for negotiating with another group or firm on behalf on one's group. And yet, there are many situations when one might desire to remain anonymous in case the group that one belongs to has an image or value that could be negative to the firm. Finally, group membership could be established without revealing the particular individual identity, which could be used as authorization or capability for some transaction or to negotiate with a firm or individual on behalf of the whole group. There are a number of schemes in the cryptographic literature that can be used to solve these problems. We show one such scheme by adapting the approach from the previous section. One drawback of what we present here is that the effort involved (and the size of the messages) is proportional to the size of the group. It may be desirable to hide one's identity within a smaller group, giving up a degree of anonymity for greater efficiency. 5.2 Approach The deniable signature scheme from the previous section relied on a kind of “one-out-of-two” proof of knowledge. The message signer proved that he knew either his own private key or the recipient's private key. This technique generalizes easily to a 1-out-of-n proof of knowledge, which is useful for anonymously proving membership in a group. It also generalizes to a t-out-of-n proof of knowledge, which is useful for anonymously demonstrating negotiating power. These generalizations can be realized as either an interactive identification protocol or a non-interactive signature scheme. We describe both of these generalizations following. See Cramer, Damgaard, and Schoenmakers, referenced above. For a 1-out-of-n proof of knowledge, the prover begins by forging the Schnorr transcript for the n−1 private keys that he does not know. Then the protocol is as follows: -
- 1. Prover→Verifier: commitment
_{1}, . . . , commitments_{n}; - 2. Verifier→Prover: challenge (only one!);
- 3. Prover→Verifier: challenge
_{1}, response_{1}, . . . , challenge_{1}, response_{n }such that challenge_{1}+. . . +challenge_{n}=challenge; - 4. Verifier tests the following:
- (a) consistency of commitment
_{i}, challenge_{i}, response_{i}, public key_{i }for every i, 1≦i≦n; - (b) challenge=challenge
_{1}+. . . +challenges_{n}.
- (a) consistency of commitment
- 1. Prover→Verifier: commitment
The intuition is as in the one-out-of-two case. The prover has the freedom to choose all but one of the challenges, and can use his knowledge of the secret key to respond to the one challenge he cannot control. The Verifier cannot tell which transcripts were forged ahead of time. For proving knowledge of t-out-of-n private keys, everything is the same as before except for the relationship of challenge, challenge Signature versions of both of these protocols can be derived by using the Fiat-Shamir heuristic as before. More details of the cryptographic schemes described in this section can be found in the Appendix. The signature version of the 1-out-of-n proof of knowledge is useful for distributing community-wide conference keys as discussed in Section There are variations on these ideas in the cryptographic literature that allow for “identity escrow”. This means that the true identity of the prover or signer might be recoverable under exceptional circumstances (e.g., with a search warrant). Relatively efficient implementations can be found in J. Camenisch and M. Stadler, “Efficient group signatures schemes for large groups”, Proc. Crypto '97, 410-424; and J. Kilian and E. Petrank, “Identity Escrow”, Proc. Crypto '98, 169-185. These schemes also scale well as the size of the group increases, which is not the case for the simpler schemes described in this section. In this specification, a number of new techniques for finding members of groups sharing similar preferences and obtaining their recommendations in ways that protect privacy while also allowing reputations to be built and updated have been introduced. Moreover, these mechanisms do not require the creation of trusted third parties and their attendant problems. Reputations are extremely valuable in the context of electronic commerce, for when authenticated they provide a mechanism for trust to established, thus circumventing a number of costly transactions. F. Fukuyama, “Trust: the social virtues and the creation of prosperity”, Free Press (1996). Trust is an important component of an efficient market, since fake postings of particular messages can lead to inefficient allocation of resources. Witness the recent posting of a bogus Bloomberg financial news story, which sent shares of a small technology company soaring 31 percent in one day, only to fall to previous values when the story proved false. The New York Times, Apr. 8, 1999. Another application we designed consists in the removal of the disincentive associated with the liability implied in issuing recommendations, thus making recommender systems more effective. Finally, we showed how individuals can prove membership in groups without revealing their identity, thus paving the way for negotiations between groups that seek to remain anonymous and firms that could profit from dealing with them. These mechanisms involve trade-offs among computational efficiency, the leaking of information and ease of use. These trade-offs can be resolved differently depending on the specific application. For example, one may want to make it easier for new people to join a community by lowering the number of passwords and preferences that need to be listed, at the expense of reduced privacy. Another instance would be one in which everybody in a group shares the same key, which is a simple and secure procedure as long as no one leaves the group. Additional trade-offs appear when one considers spoofing, whereby people can present false preferences in order to gain access to privileged information or to deter others from gaining an advantage from a weak adversary. One response might be anonymity, but at the cost of losing the benefit of reputation building. Another one could be analogous to biological situations, where false signaling is used by many organisms to deter attack or to gain access to valuable resources. A strategy that has evolved to address the problem of spoofing in that context is for signals themselves to be costly to produce, and thus to imitate. A. Zahavi and A. Zahavi, “The Handicap Principle: A Missing Piece of Darwin's Puzzle”, Oxford Univ. Press (1997). Similar strategies could be applied to electronic communities by increasing the number of challenges needed to access a given group, or by imposing a waiting period. On the other hand, this could deter legitimate new people from joining the group. Moreover, even if the trade-offs could be negotiated successfully, there remains the problem of misusing these techniques, as in the case of fraudulent financial transactions, insider trading or the unauthorized collection of personal data. In spite of the great potential for electronic commerce that the Web is enabling through its global reach, there are vast areas of knowledge and expertise that remain untapped for lack of mechanisms that ensure privacy and trust. The techniques that we proposed make it easier to access vast repositories of information that are not readily known to producers and consumers, thus leading to improvements in economic efficiency through the more focused use of resources. Discrete Log Problem: Let p be a large prime, and let q be a large prime factor of p−1. Let g be an element of order q modulo p. That is, g, g Discrete Log Based Community Discovery: The values p and g are system-wide parameters. The challenge associated with question Q is the cryptographic hash of Q, p, and g. To answer the question Q with b=0 or b=1, choose a random x between 1 and q, and compute y One example of a discrete log based public key encryption scheme that can be used is due to ElGamal. T. ElGamal, “A public key cryptosystem and a signature scheme based on discrete logarithms,” IEEE Transactions on Information Theory 31 (1985), 469-472. In the ElGamal public key encryption scheme, the public key for a user is some g, p, y, and the corresponding private key is the discrete log x such that g (see S. Goldwasser and S. Micali, “Probabilistic public key encryption,” Journal of Computer and System Sciences 28 (1984), 270-299): Let p, q be two large primes such that p≡q≡ Private Preference Matching: Here is a protocol for Alice and Bob to evaluate the basic preference-matching function using any xor-homomorphic encryption scheme. Alice and Bob each encrypt their answers to the survey bit-by-bit using Alice's public key. Alice sends her encrypted answers (c A related approach can evaluate the many-against-many version and other variants. Each participant encrypts his answers to the survey using the same system-wide public key. These encrypted answers are stored in the system database. To find if two participants have similar preferences, the database computes encryptions of the bitwise xor's of their answers, and then send these encryptions (in a random order) to a separate entity that knows the system-wide private key. This separate entity can decrypt and count the number of zeroes, and then report back whether there was a high match or not. Schnorr Public Key Signature Scheme: In the Schnorr public key signature scheme, the public key for a user is some g,p,y, and the corresponding private key is the discrete log x such that g Deniable Schnorr Signature: Suppose that party i wants to deniably sign a message m to party j. The deniable signature will be z -
- 1. Forge a transcript [z
_{j}, c_{j}, u_{j}] of a Schnorr identification protocol for prover j, by choosing random u_{j},c_{j }ε [1 . . . q] and computing z_{j}=g^{u}_{ j }/y_{j}^{c}_{ j }mod p; - 2. Choose a random r
_{i }ε [1 . . . q] and compute z_{i}=g^{r}_{ i }mod p. (to “begin” the id protocol for prover i.); - 3. Compute c=H(m, z
_{i}, z_{j}, y_{i}, y_{j}, p, g), and let c_{i}=c−c_{j }mod q; - 4. Compute u
_{i}=r_{i}+c_{i}x_{i }mod q. (To “complete” the id protocol for prover i.).
- 1. Forge a transcript [z
A deniable signature is valid if the two identification transcripts are valid, and if the challenges add up to the hash output as indicated. This signature could only be efficiently computed by someone who knows the private key of party i or party j. That is why it is convincing to party j when he receives it, and why it is deniable by party i afterwards. Anonymous Group Membership: For notational convenience, assume the group is parties -
- 1. Prover (party
**1**)→Verifier: z_{1}, . . . , z_{n}, where z_{1}=g_{r}_{ 1 }mod p for a random r_{1}ε [1 . . . q]; - 2. Verifier→Prover: c random in [1 . . . q];
- 3. Prover→Verifier: (c
_{1},u_{1}), . . . , (c_{n},u_{n}) such that c=c_{1}+. . . +c_{n }mod q and such that u_{1}=r_{1}+c_{1}x_{1 }mod q. - 4. Verifier accepts if z
_{i}y_{i}^{c}_{ i }=g^{u}_{ i }mod p for all i, 1≦i≦n, and if c=c_{1}+. . . +c_{n }mod q.
- 1. Prover (party
For the signature version of anonymous group membership, the signer computes this own challenge c=H(m, z Anonymous Group Power: For notational convenience, assume the group is parties -
- 1. Prover→Verifier: z
_{1}, . . . , z_{n}, where z_{1}=g^{r}mod p for a random r_{1 }ε [1 . . . q] for every i, 1≦i ≦t; - 2. Verifier→Prover: C ε [1 . . . q];
- 3. Prover→Verifier: (c
_{1},u_{1}), . . . , (c_{n},u_{n}) such that u_{i}=r_{i}+c_{i}x_{i }mod q for every i, 1≦i≦t, and such that c_{i}=f(i) mod q for the unique polynomial f of degree at most n−t satisfying f(**0**)=c mod q and f(j)=c_{j }mod q for all j, t+1≦j≦n; - 4. Verifier accepts if z
_{i}y_{i}^{c}_{ i }=g^{u}_{ i }mod p for all i, 1≦i≦n, and if there is a polynomial f of degree at most n−t such that f(0)=c mod q and f(i)=c_{i }mod q for all i, 1≦i≦n.
- 1. Prover→Verifier: z
For the signature version of anonymous group power, the signer computes his own challenge c=H(m, z It should be appreciated that the description herein is merely illustrative, and should not be read to limit the scope of the invention nor the claims hereof. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |