> -----Original Message-----
> From: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Sent: Saturday, July 27, 2019 7:39 AM
> To: Pascal Van Leeuwen <pvanleeu...@verimatrix.com>
> Cc: Horia Geanta <horia.gea...@nxp.com>; Milan Broz <gmazyl...@gmail.com>; 
> Herbert Xu <herb...@gondor.apana.org.au>; dm-
> de...@redhat.com; linux-cry...@vger.kernel.org
> Subject: Re: [dm-devel] xts fuzz testing and lack of ciphertext stealing 
> support
> 
> On Sat, 27 Jul 2019 at 00:43, Pascal Van Leeuwen
> <pvanleeu...@verimatrix.com> wrote:
> >
> > > -----Original Message-----
> > > From: Horia Geanta <horia.gea...@nxp.com>
> > > Sent: Friday, July 26, 2019 9:59 PM
> > > To: Pascal Van Leeuwen <pvanleeu...@verimatrix.com>; Ard Biesheuvel 
> > > <ard.biesheu...@linaro.org>
> > > Cc: Milan Broz <gmazyl...@gmail.com>; Herbert Xu 
> > > <herb...@gondor.apana.org.au>; dm-devel@redhat.com; linux-
> > > cry...@vger.kernel.org
> > > Subject: Re: [dm-devel] xts fuzz testing and lack of ciphertext stealing 
> > > support
> > >
> > > On 7/26/2019 1:31 PM, Pascal Van Leeuwen wrote:
> > > > Ok, find below a patch file that adds your vectors from the 
> > > > specification
> > > > plus my set of additional vectors covering all CTS alignments combined
> > > > with the block sizes you desired. Please note though that these vectors
> > > > are from our in-house home-grown model so no warranties.
> > > I've checked the test vectors against caam (HW + driver).
> > >
> > > Test vectors from IEEE 1619-2007 (i.e. up to and including "XTS-AES 18")
> > > are fine.
> > >
> > > caam complains when /* Additional vectors to increase CTS coverage */
> > > section starts:
> > > alg: skcipher: xts-aes-caam encryption test failed (wrong result) on test 
> > > vector 9, cfg="in-place"
> > >
> > > (Unfortunately it seems that testmgr lost the capability of dumping
> > > the incorrect output.)
> > >
> > > IMO we can't rely on test vectors if they are not taken
> > > straight out of a spec, or cross-checked with other implementations.
> > >
> >
> > First off, I fully agree with your statement, which is why I did not post 
> > this as a straight
> > patch. The problem is that specification vectors usually (or actuaclly, 
> > always) don't cover
> > all the relevant corner cases needed for verification. And "reference" 
> > implementations
> > by academics are usually shady at best as well.
> >
> > In this particular case, the reference vectors only cover 5 out of 16 
> > possible alignment
> > cases and the current situation proves that this is not sufficient. As we 
> > have 2 imple-
> > mentations (or actually more, if you count the models used for vector 
> > generation)
> > that are considered to be correct that disagree on results.
> >
> > Which is very interesting, because which one is correct? I know that our 
> > model and
> > hardware implementation were independently developed (by 2 different 
> > engineers)
> > from the IEEE spec and match on results. And our hardware has been used 
> > "out in
> > the field" for many years already in disk controllers from major silicon 
> > vendors.
> > But that's still not a guarantee .... So how do we resolve this? Majority 
> > vote? ;-)
> >
> 
> Thanks for the additional test vectors. They work fine with my SIMD
> implementations for ARM [0], so this looks like it might be a CAAM
> problem, not a problem with the test vectors.
> 
Thanks for the heads up! As the engineer actually responsible for our hardware
implementation, I can now sleep at night again :-)

Not that I was too worried - the design has been in active use for nearly 12 
years
already without any known issues, but still ...

> I will try to find some time today to run them through OpenSSL to double 
> check.
> 
> 
> [0] 
> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?h=xts-cts

Regards,
Pascal van Leeuwen
Silicon IP Architect, Multi-Protocol Engines @ Verimatrix
www.insidesecure.com

Reply via email to