### Re: New result in predicate encryption: disjunction support

On Mon, 5 May 2008, Ariel Waissbein wrote: [Moderator's note: Again, top posting is discouraged, and not editing quoted material is also discouraged. --Perry] Hi list, Interesting. Great work! I had been looking *generic* predicate encryption for some time. Encryption over specific predicates is much older. Malware (e.g., virus) and software protection schemes have been using some sort of predicate encryption or trigger for over two decades in order to obfuscate code. For example, an old virus used to scan hard drives looking for a BBS configuration files in a similar manner and some software protection schemes have encrypted pieces of code that are decrypted only if some integrity checks (predicates) over other pieces of the program are passed. Triggers/predicates are very promising. Yet, they are only useful in certain applications, since eavesdropping one decryption is enough to recover the keys and plaintext. I co-authored a paper were we used this same concept in a software protection application ([1]) and later we formalized this concept, that we called secure triggers, in a paper eventually publised at TISSEC ([2]). We were only able to construct triggers for very specific predicate families, e.g., - p(x)=1 iff x=I for some I in {0,1}^k - q(x,y,z,...)=1 iff x=I_1, y=I_2, z=I_3,...; and finally - r(x)=1 iff x_{j_1}=b_1,...,x_{j_k}=b_k for some b_1,...,b_k in {0,1} and indexes i_1,...,i_k (|x|=k). While these predicates do not cover arbitrary large possibilities, they are implemented by efficient algorithms and require assuming only the existence of IND-CPA secure symmetric ciphers. In [2] we came up with more applications other than sofprot;) [1] Diego Bendersky, Ariel Futoransky, Luciano Notarfrancesco, Carlos Sarraute and Ariel Waissbein. Advanced Software Protection Now. Core Security Technologies Tech report. http://www.coresecurity.com/index.php5?module=ContentModaction=itemid=491 [2] Ariel Futoransky, Emiliano Kargieman, Carlos Sarraute, Ariel Waissbein. Foundations and applications for secure triggers. ACM TISSEC, Vol 9(1) (February 2006). Cheers, Ariel Predicate encryption sounds very different from the work you are referencing above. (In particular, as we discuss in the paper, predicate encryption for equality tests is essentially identity-based encryption.) I refer you to the Introduction and Definition 2.1 of our paper, which should give a pretty good high-level overview. - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### Re: New result in predicate encryption: disjunction support

Jonathan Katz wrote: On Mon, 5 May 2008, Ariel Waissbein wrote: [Moderator's note: Again, top posting is discouraged, and not editing quoted material is also discouraged. --Perry] Hi list, Interesting. Great work! I had been looking *generic* predicate encryption for some time. Encryption over specific predicates is much older. Malware (e.g., virus) and software protection schemes have been using some sort of predicate encryption or trigger for over two decades in order to obfuscate code. For example, an old virus used to scan hard drives looking for a BBS configuration files in a similar manner and some software protection schemes have encrypted pieces of code that are decrypted only if some integrity checks (predicates) over other pieces of the program are passed. Triggers/predicates are very promising. Yet, they are only useful in certain applications, since eavesdropping one decryption is enough to recover the keys and plaintext. I co-authored a paper were we used this same concept in a software protection application ([1]) and later we formalized this concept, that we called secure triggers, in a paper eventually publised at TISSEC ([2]). We were only able to construct triggers for very specific predicate families, e.g., - p(x)=1 iff x=I for some I in {0,1}^k - q(x,y,z,...)=1 iff x=I_1, y=I_2, z=I_3,...; and finally - r(x)=1 iff x_{j_1}=b_1,...,x_{j_k}=b_k for some b_1,...,b_k in {0,1} and indexes i_1,...,i_k (|x|=k). While these predicates do not cover arbitrary large possibilities, they are implemented by efficient algorithms and require assuming only the existence of IND-CPA secure symmetric ciphers. In [2] we came up with more applications other than sofprot;) [1] Diego Bendersky, Ariel Futoransky, Luciano Notarfrancesco, Carlos Sarraute and Ariel Waissbein. Advanced Software Protection Now. Core Security Technologies Tech report. http://www.coresecurity.com/index.php5?module=ContentModaction=itemid=491 [2] Ariel Futoransky, Emiliano Kargieman, Carlos Sarraute, Ariel Waissbein. Foundations and applications for secure triggers. ACM TISSEC, Vol 9(1) (February 2006). Cheers, Ariel Predicate encryption sounds very different from the work you are referencing above. (In particular, as we discuss in the paper, predicate encryption for equality tests is essentially identity-based encryption.) I refer you to the Introduction and Definition 2.1 of our paper, which should give a pretty good high-level overview. Hi Jonathan, and thanks for taking your time to answer. I had already read the Introduction and had a quick --i admit-- read over the paper before posting to the list. I think that the main difference are the applications we are looking at (and I know Sahai's earlier work in obfuscation). Take a look at the first three sentences of our article: Fix a bitstring, that we regard as a secret. Let be given a family of predicates, and secretly draw a predicate from this family according to a known distribution. Think of predicates as functions with range in {true, false}. We consider algorithms that return the secret if their input evaluates to true on the chosen predicate, else they return nothing. Of course, the main difference is that one must hold SK (and f) in order to decrypt messages according to the predicate encryption scheme. Note that if the adversary is given the algorithm i\mapsto SK_{f_i} then predicate encryption turns out to be similar to generic secure triggers. However, we didn't cover predicates evaluating inner product so that's what caught my interest, why I want to analyze how your work applies to other problems (and why I think that the schemes are similar). Cheers, Ariel - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### RE: New result in predicate encryption: disjunction support

[Moderator's Note: Top posting is discouraged. --Perry] What I meant was that the crypogram decrypted with a correct f(I)=1 key yields the encrypted message Meet you at Starbucks at noon 0 whereas decryption with a wrong, f(I)=0, key yields Let's go down to Taco Bell at midnight. Padding with 0's doesn't help. Cheers, Scott -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jonathan Katz Sent: Sunday, May 04, 2008 1:20 PM To: cryptography@metzdowd.com Subject: RE: New result in predicate encryption: disjunction support On Sun, 4 May 2008, Scott Guthery wrote: One useful application of the Katz/Sahai/Waters work is a counter to traffic analysis. One can send the same message to everyone but ensure that only a defined subset can read the message by proper key management. What is less clear is how to ensure that decrytion with the wrong key doesn't yield an understandable (and actionable) message. This is actually pretty easy to do by, e.g., padding all valid messages with sufficiently-many 0s. Decryption with an incorrect key will result in something random that is unlikely to end with the requisite number of 0s (and so will be discarded). - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### Re: New result in predicate encryption: disjunction support

[Moderator's note: Again, top posting is discouraged, and not editing quoted material is also discouraged. --Perry] Hi list, Interesting. Great work! I had been looking *generic* predicate encryption for some time. Encryption over specific predicates is much older. Malware (e.g., virus) and software protection schemes have been using some sort of predicate encryption or trigger for over two decades in order to obfuscate code. For example, an old virus used to scan hard drives looking for a BBS configuration files in a similar manner and some software protection schemes have encrypted pieces of code that are decrypted only if some integrity checks (predicates) over other pieces of the program are passed. Triggers/predicates are very promising. Yet, they are only useful in certain applications, since eavesdropping one decryption is enough to recover the keys and plaintext. I co-authored a paper were we used this same concept in a software protection application ([1]) and later we formalized this concept, that we called secure triggers, in a paper eventually publised at TISSEC ([2]). We were only able to construct triggers for very specific predicate families, e.g., - p(x)=1 iff x=I for some I in {0,1}^k - q(x,y,z,...)=1 iff x=I_1, y=I_2, z=I_3,...; and finally - r(x)=1 iff x_{j_1}=b_1,...,x_{j_k}=b_k for some b_1,...,b_k in {0,1} and indexes i_1,...,i_k (|x|=k). While these predicates do not cover arbitrary large possibilities, they are implemented by efficient algorithms and require assuming only the existence of IND-CPA secure symmetric ciphers. In [2] we came up with more applications other than sofprot;) [1] Diego Bendersky, Ariel Futoransky, Luciano Notarfrancesco, Carlos Sarraute and Ariel Waissbein. Advanced Software Protection Now. Core Security Technologies Tech report. http://www.coresecurity.com/index.php5?module=ContentModaction=itemid=491 [2] Ariel Futoransky, Emiliano Kargieman, Carlos Sarraute, Ariel Waissbein. Foundations and applications for secure triggers. ACM TISSEC, Vol 9(1) (February 2006). Cheers, Ariel Ivan Krsti? wrote: This is fairly interesting: AFAIK the first generalization of predicate encryption to support disjunctions. I find the result mostly interesting mathematically, since I expect we won't be seeing predicate encryption in widespread use anytime soon due to complexity and regulatory concerns. --IK Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products Jonathan Katz and Amit Sahai and Brent Waters Preprint: http://eprint.iacr.org/2007/404 Abstract: Predicate encryption is a new paradigm generalizing, among other things, identity-based encryption. In a predicate encryption scheme, secret keys correspond to predicates and ciphertexts are associated with attributes; the secret key SK_f corresponding to the predicate f can be used to decrypt a ciphertext associated with attribute I if and only if f(I)=1. Constructions of such schemes are currently known for relatively few classes of predicates. We construct such a scheme for predicates corresponding to the evaluation of inner products over N (for some large integer N). This, in turn, enables constructions in which predicates correspond to the evaluation of disjunctions, polynomials, CNF/DNF formulae, or threshold predicates (among others). Besides serving as what we feel is a significant step forward in the theory of predicate encryption, our results lead to a number of applications that are interesting in their own right. -- Ivan Krsti? [EMAIL PROTECTED] | http://radian.org - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED] - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### Re: New result in predicate encryption: disjunction support

Scott Guthery wrote: Those interested in predicate encryption might also enjoy Group Authentication Using The Naccache-Stern Public-Key Cryptosystem http://arxiv.org/abs/cs/0307059 which takes a different approach and handles negation. A group authentication protocol authenticates pre-defined groups of individuals such that: - No individual is identified - No knowledge of which groups can be successfully authenticated is known to the verifier I don't understand this one, could you say it again with more words? - No sensitive data is exposed The paper presents a group authentication protocol based on splitting the private keys of the Naccache-Stern public-key cryptosystem in such a way that the Boolean expression defining the authenticable groups is implicit in the split Shamelessly, Scott - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED] -- http://www.apache-ssl.org/ben.html http://www.links.org/ There is no limit to what a man can do or how far he can go if he doesn't mind who gets the credit. - Robert Woodruff - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### RE: New result in predicate encryption: disjunction support

A group member asked me to elaborate on: - No knowledge of which groups can be successfully authenticated is known to the verifier What this tries to say is that the verifier doesn't need to have a list of all authenticable groups nor can the verifier draw any conclusions about other authenticable groups based on authenticating one group. One useful application of the Katz/Sahai/Waters work is a counter to traffic analysis. One can send the same message to everyone but ensure that only a defined subset can read the message by proper key management. What is less clear is how to ensure that decrytion with the wrong key doesn't yield an understandable (and actionable) message. Cheers, Scott - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### RE: New result in predicate encryption: disjunction support

On Sun, 4 May 2008, Scott Guthery wrote: One useful application of the Katz/Sahai/Waters work is a counter to traffic analysis. One can send the same message to everyone but ensure that only a defined subset can read the message by proper key management. What is less clear is how to ensure that decrytion with the wrong key doesn't yield an understandable (and actionable) message. This is actually pretty easy to do by, e.g., padding all valid messages with sufficiently-many 0s. Decryption with an incorrect key will result in something random that is unlikely to end with the requisite number of 0s (and so will be discarded). - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]

### RE: New result in predicate encryption: disjunction support

Those interested in predicate encryption might also enjoy Group Authentication Using The Naccache-Stern Public-Key Cryptosystem http://arxiv.org/abs/cs/0307059 which takes a different approach and handles negation. A group authentication protocol authenticates pre-defined groups of individuals such that: - No individual is identified - No knowledge of which groups can be successfully authenticated is known to the verifier - No sensitive data is exposed The paper presents a group authentication protocol based on splitting the private keys of the Naccache-Stern public-key cryptosystem in such a way that the Boolean expression defining the authenticable groups is implicit in the split Shamelessly, Scott - The Cryptography Mailing List Unsubscribe by sending unsubscribe cryptography to [EMAIL PROTECTED]