That's correct. If you look at the workflow (http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29) you'll realize that you can't skip intermediate blocks when decrypting.

Regards,
Torsten


Am 18.01.2013 16:02, schrieb Chris Hacking:
I believe this depends on the mode of operation… some modes, like CTR,
should be able to skip ahead, while I believe that others (like CBC)
cannot. In effect, each previous block acts an initialization vector for
the next one.

Incidentally, if you’re using hardware that supports crypto in silicon
(the latest generation of CPUs, for example), you’ll get much better
speed than any software implementation can give you, especially in a
managed language (a C/C++ implementation might use inline assembly to
call the hardware-accelerated functionality, but C# can’t do that).

*From:*Ray Kelly [mailto:vbisb...@yahoo.com]
*Sent:* Friday, 18 Jan 2013 5:39 AM
*To:* dev-crypto-csharp@bouncycastle.org
*Subject:* [dev-crypto-csharp] Help with CFB8, Skipping Bytes

I am working on a project using bouncycastle in c#.  Speed is crucial to
what I am doing (every millisecond counts).   I have a CFB8 stream using
AesFastEngine/No Padding.   I have specific chunks that I do not care
about decrypting.  I would like to know if there is any way to not
decrypt a chunk of data in the middle of my stream.  So for instance:

100 bytes comes in, decrypt it
20,000 bytes comes in, do NOT decrypt it
100 bytes comes in, decrypt it

In this scenario now, the 3rd chunk does not decode properly unless I
decode the 2nd chunk.   I am pretty sure this is proper behavior, but I
am wondering if there is any way to code around this or get the cipher
back on track again.   Thanks for your help!

Ray



Reply via email to