Dean, <div><br></div><div>After getting info from you, and reading a few blogs that have done this, it&#39;s becoming clearer, thank you for your feedback.</div><div><br></div><div>J<br><br><div class="gmail_quote">On Thu, Nov 10, 2011 at 10:18 AM, Dean Macinskas <span dir="ltr">&lt;<a href="mailto:dmacinskas@geobridge.net">dmacinskas@geobridge.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">








<div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">All blocks need to be 16 bytes.  So for example, if the
file is 2,000,005 bytes, you&#39;d encrypt 125,000 16-byte blocks; you then have 5
bytes left over, to which you&#39;d add 11 padding bytes, which can be any binary
value and then encrypt that last block.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Some schemes add a header to the beginning of the file with the cleartext
length, so the decrypter can easily discard the padding.  Also, consider
using CBC mode with a non-zero IV, which has some security advantages.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt">
<a href="mailto:pycrypto-bounces@lists.dlitz.net" target="_blank">pycrypto-bounces@lists.dlitz.net</a> [mailto:<a href="mailto:pycrypto-bounces@lists.dlitz.net" target="_blank">pycrypto-bounces@lists.dlitz.net</a>] <b>On
Behalf Of </b>John Matthew<br>
<b>Sent:</b> Thursday, November 10, 2011 12:10 PM<br>
<b>To:</b> PyCrypto discussion list<br>
<b>Subject:</b> Re: [pycrypto] Public Key encryption of files<u></u><u></u></span></p>

</div><div><div></div><div class="h5">

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">Dean, thanks for the reply<u></u><u></u></p>

<div>

<p class="MsoNormal"><u></u> <u></u></p>

</div>

<div>

<p class="MsoNormal"><u></u> <u></u></p>

</div>

<div>

<p class="MsoNormal">Ah, I see.  If I want to encrypt a 2mb file with
a Symmetric Key, it just has to have a &quot;16 byte padding&quot;
for AES, or do all the chunks need to be 16 bytes?<u></u><u></u></p>

<div>

<p class="MsoNormal"><u></u> <u></u></p>

</div>

<div>

<p class="MsoNormal" style="margin-bottom:12.0pt">J<u></u><u></u></p>

<div>

<p class="MsoNormal">On Thu, Nov 10, 2011 at 5:17 AM, Dean Macinskas &lt;<a href="mailto:dmacinskas@geobridge.net" target="_blank">dmacinskas@geobridge.net</a>&gt; wrote:<u></u><u></u></p>

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">John,</span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Unless the file is small, the typical
way to encrypt a file is to use a symmetric key, like TDES or AES. 
Asymmetric key crypto is usually too slow for bulk encryption; you use a
symmetric key for that, and store/export the symmetric key using asymmetric key
protection.</span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">The block size of a public key is fixed
by the length of the key; in other words, if you generate a 2048 bit key, the
block size is 2048 bits (256 bytes).  Symmetric key block length is set by
the algorithm: 8 bytes for TDES, 16 for AES.  Any data you encrypt has to
be padded to a multiple of the block length.</span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">If you use RSA, there are a couple of
rules for encrypting data, one of which is that the data has to be numerically
less than the public modulus.  This is usually accomplished by setting the
left-most bit (MSB) of the data block to zero; another reason why using a
public key directly is not a good choice for bulk encryption.</span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">HTH,</span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Dean</span><u></u><u></u></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span><u></u><u></u></p>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:pycrypto-bounces@lists.dlitz.net" target="_blank">pycrypto-bounces@lists.dlitz.net</a>
[mailto:<a href="mailto:pycrypto-bounces@lists.dlitz.net" target="_blank">pycrypto-bounces@lists.dlitz.net</a>]
<b>On Behalf Of </b>John Matthew<br>
<b>Sent:</b> Tuesday, November 08, 2011 11:59 AM<br>
<b>To:</b> <a href="mailto:pycrypto@lists.dlitz.net" target="_blank">pycrypto@lists.dlitz.net</a><br>
<b>Subject:</b> [pycrypto] Public Key encryption of files</span><u></u><u></u></p>

</div>

<p class="MsoNormal"> <u></u><u></u></p>

<p class="MsoNormal">First
off, pycrypto is awesome!  Thank you for creating it!<u></u><u></u></p>

<div>

<p class="MsoNormal"> <u></u><u></u></p>

</div>

<div>

<p class="MsoNormal">I&#39;d
like to use Public Keys to encrypt files, is this something that seems
appropriate for file encryption?<u></u><u></u></p>

</div>

<div>

<p class="MsoNormal"> <u></u><u></u></p>

</div>

<div>

<p class="MsoNormal">I&#39;ve
noticed that the encrypt method for RSA keys is only 256 bytes, which seems
rather small.<u></u><u></u></p>

</div>

<div>

<p class="MsoNormal"> <u></u><u></u></p>

</div>

<div>

<p class="MsoNormal">I
know I could wrap that in a generator, but was hoping for some feedback on
another way or a configuration change to increase that number.<u></u><u></u></p>

</div>

<div>

<p class="MsoNormal"> <u></u><u></u></p>

</div>

<div>

<p class="MsoNormal">Thanks
for your contribution, and help.<u></u><u></u></p>

</div>

<div>

<p class="MsoNormal"> <u></u><u></u></p>

</div>

<div>

<p class="MsoNormal">J<u></u><u></u></p>

</div>

</div>

</div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
pycrypto mailing list<br>
<a href="mailto:pycrypto@lists.dlitz.net" target="_blank">pycrypto@lists.dlitz.net</a><br>
<a href="http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto" target="_blank">http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto</a><u></u><u></u></p>

</div>

<p class="MsoNormal"><u></u> <u></u></p>

</div>

</div>

</div></div></div>

</div>


<br>_______________________________________________<br>
pycrypto mailing list<br>
<a href="mailto:pycrypto@lists.dlitz.net">pycrypto@lists.dlitz.net</a><br>
<a href="http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto" target="_blank">http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto</a><br>
<br></blockquote></div><br></div>