 <p><code>StreamWriter</code> writes UTF8 text characters to a stream.<br> You're writing <code>plaintext.ToString()</code> as text for the ciphertext.</p> <p>This returns <code>"System.Byte[]"</code>, which does not translate into 16 bytes of UTF8.</p>