why not use -nopad when calling openssl enc, and add the zero padding
yourself?

  > echo -n 'aaaaaaaa' > topsecret.txt
  > head -c8 /dev/zero >> topsecret.txt
  > xxd topsecret.txt
  0000000: 6161 6161 6161 6161 0000 0000 0000 0000  aaaaaaaa........ 
  > openssl enc -des-cbc -K 0101010101010101 -iv 0000000000000000 \
    -nosalt -in topsecret.txt -nopad | xxd
  0000000: f90a ba97 690c af10 6161 6161 6161 6161  ....i...aaaaaaaa

which matches your other tool, i think?  :o)

but something seems very wrong.  your encrypted result contains your
plaintext.  i feel very stupid, but i do not undersand why.  that ciphertext
should be the padding xored with the previous block, encrypted.

what am i missing?

andrew


On Tue, Oct 29, 2013 at 03:54:50PM +0100, Luis Rocha wrote:
> Ok so I read more about it and for DES a block consists of 64 bit = 16 hex
> characters....
> The X.923 padding attaches to a complete message block another block of
> zeros: A = 00 00 00 00 00 00 00 00
> 
> so I created a text file with 64 bits (16 hex characters)
> 
> $echo -n 'aaaaaaaa' > topsecret.txt
> $xxd topsecret.txt
> 6161 6161 6161 6161
> 
> Then encrypted it with a weak key and iv = 0.
> openssl enc -des-cbc -K 0101010101010101 -iv 0000000000000000 -nosalt -in
> topsecret.txt | xxd
> f90a ba97 690c af10 ea3b c77a e91d efe2
> 
> Made the same exercise in the tool:
> In the tool (GUI) using DES CBC mode with the same key '0101010101010101'
> the output is:
> F90A BA97 690C AF10 6161 6161 6161 6161
> 
> 
> Much better now...the first block matches....so I think the differences are
> due to the padding. Does it sound right?
> 
> 
> On Tue, Oct 29, 2013 at 3:18 PM, Luis Rocha <luiscro...@gmail.com> wrote:
> 
> > Thank you Victor!
> >
> > In the cryptool I'm only able to introduce the 8 bytes key and not the IV.
> > The documentation from CrypTool says" CBC mode is used with zero
> > initialization vector and X.923 padding."
> >
> > user@debian:~$ openssl enc -des-cbc -K 0101010101010101 -iv
> > 0000000000000000 -nosalt -in topsecret.txt | xxd
> > 8a08 216b 7f88 7ec4
> >
> > In the tool (GUI) using DES CBC mode with the same key '0101010101010101'
> > the output is '255B DF6C 2E64 E96A' but I didnt figure out what they mean
> > by "zero initialization vector and X.923 padding".
> >
> > btw: the tool is quite amazing for learning crypto stuff
> >
> > https://www.cryptool.org/images/ct1/presentations/CrypToolPresentation-en.pdf
> >
> > Best,
> > Luis
> >
> >
> >
> >
> > On Tue, Oct 29, 2013 at 12:40 AM, Viktor Dukhovni <
> > openssl-us...@dukhovni.org> wrote:
> >
> >> On Mon, Oct 28, 2013 at 11:48:22PM +0100, Luis Rocha wrote:
> >>
> >> > + Filename topsecret.txt which only contains the character 'a'
> >> > + Encrypt it with DES using CBC mode with key and iv = 0 produces the
> >> > result '32ea a0fa 4f77 fb92'
> >> >
> >> > user@debian:~$ openssl enc -des-cbc -K 0 -iv 0 -nosalt -in
> >> topsecret.txt
> >> > 0000000: 32ea a0fa 4f77 fb92                      2...Ow..
> >>
> >> Note, "0" is not a valid DES key, nor a valid DES iv.  To be a
> >> valid key it needs to be 8 bytes with the right parity bits.  So
> >>
> >> I don't believe that you can expect well-defined behaviour with
> >> the specified inputs.
> >>
> >> > If I use the cryptool 1.4.31 to do the same exercise the result is
> >> > '0C29 5D71 8258 D464'
> >>
> >> What does "same" mean?  What is the syntax for key/iv in that utility?
> >>
> >> > I also noticed that openssl generates the same output for different
> >> modes
> >> > of des e.g.
> >> >
> >> > user@debian:~$ openssl enc -des-ecb -K 0 -iv 0 -nosalt -in
> >> topsecret.txt |
> >> > xxd
> >>
> >> For a single block with a zero IV, the output of ECB and CBC is
> >> naturally the same.  If you use a non-zero IV, you'll observe that
> >> CBC and ECB produce different results.
> >>
> >> > While if I do the same in Cryptool the output for the ECB mode is:
> >> >
> >> > '841B D8A4 2931 FCF5'
> >>
> >> Which shows that this tool is not in fact using a zero IV, likely
> >> because your input is invalid.
> >>
> >> --
> >>         Viktor.
> >> ______________________________________________________________________
> >> OpenSSL Project                                 http://www.openssl.org
> >> User Support Mailing List                    openssl-users@openssl.org
> >> Automated List Manager                           majord...@openssl.org
> >>
> >
> >
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to