title: AES encryption with BouncyCastle: AESEngine, AESFastEngine OR AESLightEngine?
body: <p>I want to port this simple JAVA example...</p>
  
  <p><a href="https://stackoverflow.com/questions/4243650/aes-encryption-decryption-with-bouncycastle-example-in-j2me">AES Encryption/Decryption with Bouncycastle Example in J2ME</a></p>
  
  <p>...to C# and have the two following 3 questions:</p>
  
  <ol>
  <li><p>As I understand, the JAVA example uses AESEngine for encryption/decryption operations. What is the difference between AESEngine and AESFastEngine and AESLightEngine? Unfortunately I don't understand the information given in the documentation: <a href="http://www.bouncycastle.org/docs/docs1.6/index.html" rel="nofollow noreferrer">http://www.bouncycastle.org/docs/docs1.6/index.html</a></p></li>
  <li><p>I want to use a new encryption-key for every file I encrypt. Which block cipher modes of operation should I use: AES.CBC, AES.CFB, AES.ECB OR AES.OFB <a href="http://www.bouncycastle.org/docs/docs1.6/index.html" rel="nofollow noreferrer">http://www.bouncycastle.org/docs/docs1.6/index.html</a></p></li>
  <li><p>Is my assumption correct that in my case I don't have to use an iv / salt (which means I have to use <strong>a static iv</strong>?) since I use AES.KeyGen128() for key generation and use it only once?<br>
  <a href="http://www.bouncycastle.org/docs/docs1.6/index.html" rel="nofollow noreferrer">http://www.bouncycastle.org/docs/docs1.6/index.html</a></p></li>
  </ol>
  
  <p>Hope my questions do not cause too much confusion ;-) I but I appreciate every answer, clarification or feedback you can give me.</p>
  
  <p>Mike</p>