Re: New result in predicate encryption: disjunction support

2008-05-06 Thread Jonathan Katz

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

2008-05-06 Thread Ariel Waissbein
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

2008-05-05 Thread Scott Guthery
[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

2008-05-05 Thread Ariel Waissbein
[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

2008-05-04 Thread Scott Guthery
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

2008-05-04 Thread Jonathan Katz

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]