<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, May 9, 2015 at 4:58 AM, Francois BERENGER <span dir="ltr"><<a href="mailto:francois.berenger.fun@gmail.com" target="_blank">francois.berenger.fun@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Wed, May 6, 2015 at 11:06 PM, Lars Luthman <span dir="ltr"><<a href="mailto:mail@larsluthman.net" target="_blank">mail@larsluthman.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>On Wed, 2015-05-06 at 10:15 +0200, Francois BERENGER wrote:<br>
> I was thinking about something along those lines:<br>
><br>
> compression(clear_text) = (compression_dictionary, compressed_text)</span></blockquote></span></div></div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>....<br>
</span>Wouldn't such an algorithm suffer from the same problem as using a block<br>
cipher in ECB mode?</blockquote><div><br></div></span><div>For performance reasons, I think I will use a block cypher in counter mode.<br>I need an encryption mode that can parallelize. </div></div></div></div></blockquote><div> </div><div>Parallel....?</div><div><br></div><div>That implies a single large message or stream or perhaps critical low latency needs.</div><div>Multiple messages are by their multiple nature easy to parallelize and pipeline.</div><div><br></div><div>Designing something that is fast because it is amenable to parallel processing has the</div><div>risk of enabling parallel processing attacks for decryption.   If the design is not</div><div>constrained the other guy might have a deeper hardware budget. <br><br>Compilers are important tools for parallel compiling.<br><a href="http://www.pgroup.com/products/freepgi/freepgi_ref/ch01.html">http://www.pgroup.com/products/freepgi/freepgi_ref/ch01.html</a><br><a href="http://en.wikipedia.org/wiki/Automatic_parallelization">http://en.wikipedia.org/wiki/Automatic_parallelization</a><br>Grad students in Illinois for decades worked on KAI compiler tools.<br><a href="http://www.intel.com/pressroom/archive/releases/2000/cn040600.htm">http://www.intel.com/pressroom/archive/releases/2000/cn040600.htm</a><br>So look into the advanced compiler offerings from Intel.<br><br>Some of the best optimizations are still done by modern Fortran compilers</div><div>so code in FORTRAN, C, C++ and compare and contrast the results.</div><div>A number of older compiler manuals can be informative:<br><a href="http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_Developer/books/MproCplrDbx_TG/sgi_html/ch04.html">http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_Developer/books/MproCplrDbx_TG/sgi_html/ch04.html</a></div><div>The MIPSpro compiler has been reincarnated as the Pathscale compiler and has</div><div>much of the same technology.  The -keep flag keeps intermediate temp files that also have "love notes"</div><div>that can often describe why an optimization was impossible.  These can be used to clarify code<br>so the compiler can do more.  The AMD compiler is another fork of MIPSpro from China?<br><br>The llvm compiler is giving gcc serious competition.   They are both improving as a result.</div><div><br></div><div>Then there are GPUs once the data motion problems are sorted good things are possible.</div><div>Portability is a risk with GPU hardware.</div><div><br></div><div>Have fun and leave some cycles for the OS to operate.</div><div><br></div><div><br><br><br></div><div> </div></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">  T o m    M i t c h e l l</div></div>
</div></div>