http://qs321.pair.com?node_id=535809


in reply to Crypt::CBC and varying the key

Hi

If I understand you correctly, you're not doing CBC (cipher block chaining). See this article in Wikipedia. If you are doing CBC, you only need a key and one initialiation vector (IV). The "chaining" is to use the previous block as the IV for the next block before encrypting with the key.

CBC allows you to chain together a message that is bigger than the block size as one unit. Is this not what you want?

Hope this helps, J

Replies are listed 'Best First'.
Re^2: Crypt::CBC and varying the key
by Anonymous Monk on Mar 16, 2006 at 06:57 UTC
    Yes, I know what CBC is. I *use* CBC. But I want to crypt 2 blocks (not in the sense of the cipher but say strings) of data. The second block has another key from the first one. But the IV is carried over. This is to get two levels of access to the data.
      Hi

      It looks like you'll have to modify CBC.pm. In my version (2.14), the 'finish' method deletes the current IV.
      delete $self->{'civ'}; delete $self->{'buffer'}; return $result; }
      You'll have to prevent that from happening, and then add a method to return the current (last) IV, instead of the initial IV
      sub get_civ { return $self->{civ}; }
      I have no idea if or how this affects the security of the two messages.

      Hope this helps, J