<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.6.4">
</HEAD>
<BODY>
Solution #3 must be the most performance efficient one. However, my sense is that in order to achieve good matching results, the metadata would need to contain some keywords / keyphrases of the actual content which is encrypted. This sounds like exposing important information as unecrypted. Maybe a combination of #1 and #3 could be an option as well. The metadata could be encrypted, loaded into memory, decrypted and queried.
<BR>
<BR>
On Tue, 2013-10-15 at 10:17 +0200, Erik Jan de Wit wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
Don't know how feasible it is, but we could query the encrypted data without decrypting. We still have tables, columns and rows and with encrypted names and values. Then we could parse the sql statement and encrypt the names and values in it and then run it against the database. The returned result is then the only thing that needs to be decrypted. How does that sound? This approach will obviously give away that data in certain columns is the same, and maybe there is more downsides to this that I don't see.

Cheers,
        Erik Jan 

On 14 Oct,2013, at 21:47 , Summers Pittman &lt;<A HREF="mailto:supittma@redhat.com">supittma@redhat.com</A>&gt; wrote:

<FONT COLOR="#737373">&gt; One of the things that came up while discussing offline secure storage </FONT>
<FONT COLOR="#737373">&gt; on Android was how to query encrypted data.</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; The first ideas that I could think of were:</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; 1) Load encrypted files/data/databases into memory, decrypt them, query </FONT>
<FONT COLOR="#737373">&gt; them, return results and GC the decrypted data.</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; 2) magical phonetic encryption</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; 3) Include queryable decrypted metadata along with encrypted payloads.  </FONT>
<FONT COLOR="#737373">&gt; The payloads will not be queryable and only be decrypted if metadata </FONT>
<FONT COLOR="#737373">&gt; matches the query.</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; #1 has some benefits (easy to implement across platforms, doesn't </FONT>
<FONT COLOR="#737373">&gt; require a lot of work) and some draw backs (large datasets would eat </FONT>
<FONT COLOR="#737373">&gt; into available memory, whole dataset would be vulnerable to a VM attack).</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; #2 is a placeholder for better ideas.</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; #3 is interesting because it is a middle of the road approach.  One of </FONT>
<FONT COLOR="#737373">&gt; the options for implementation I thought of would be to annotate fields </FONT>
<FONT COLOR="#737373">&gt; in the VO being stored as &quot;privledged&quot; and they would be the only ones </FONT>
<FONT COLOR="#737373">&gt; encrypted/decrypted when an object is stored or loaded.</FONT>
<FONT COLOR="#737373">&gt; </FONT>
<FONT COLOR="#737373">&gt; wdyt?</FONT>
<FONT COLOR="#737373">&gt; _______________________________________________</FONT>
<FONT COLOR="#737373">&gt; aerogear-dev mailing list</FONT>
<FONT COLOR="#737373">&gt; <A HREF="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</A></FONT>
<FONT COLOR="#737373">&gt; <A HREF="https://lists.jboss.org/mailman/listinfo/aerogear-dev">https://lists.jboss.org/mailman/listinfo/aerogear-dev</A></FONT>


_______________________________________________
aerogear-dev mailing list
<A HREF="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</A>
<A HREF="https://lists.jboss.org/mailman/listinfo/aerogear-dev">https://lists.jboss.org/mailman/listinfo/aerogear-dev</A>
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>