1
$\begingroup$

CBC's encryption is not paralelizable but I could divide a 64 block message in 4 16 block parts and encrypt those 4 parts separatly in parallel using a diferent IV for each one. Is this unsecure ? Is there a mode of operation that defines this in particular ?

$\endgroup$
2
  • 3
    $\begingroup$ If you want a mode that is parallelizable, why not use a mode that is parallelizable? For example counter mode (for standard encryption) or galois/counter mode (for authenticated encryption). $\endgroup$
    – Mark
    Jul 25, 2020 at 6:03
  • 1
    $\begingroup$ Also, the CBC mode is an archaic mode of operation that only has Ind-CPA secure. In modern Cryptography, we prefer Ind-CCA that you need authenticated encryption like GCM. $\endgroup$
    – kelalaka
    Jul 25, 2020 at 7:47

2 Answers 2

1
$\begingroup$

That's not a mode, that's the same mode used four times. And yes it's as secure as doing all the blocks sequentially.

$\endgroup$
0
$\begingroup$

Conceptually, parallelising non-parallel mode of operation is an interesting topic.

The problem with that is you essentially would roll your own crypto, which should be an instant red flag.

Having said that, there are some more fundamental challenges with that approach. Block ciphers operate on message blocks of a given size. That size is tightly coupled with the cipher itself, e.g. AES oeprates on 128 bits blocks, and internally this is implemented as a 4x4 matrix of bytes, not bits. As you are using 64 bit block size in your example (if I understand it correctly), you are referring to something like DES or GOST which is another red flag. Not sure I am aware of any popular modern block cipher using this block size.

If you need to parallelize the process, you can use a mode of operation which supports it, as @Mark already mentioned.

If for some reason you are forced to use CBC, e.g. because you don't control the other side of the communication, but still would like to benefit from parallel encryption, why not to split long message before encrypting it and then join it after decryption? Is this what you are suggesting?

One more hint, which might be relevant or not - for CBC, encryption is not parallelisable, but decryption is.

$\endgroup$
1
  • $\begingroup$ 64 blocks, not 64 bit block $\endgroup$ Jul 25, 2020 at 20:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.