On Wed, Apr 07, 2010 at 06:58:05PM +0100, David Woodhouse wrote:

> As you can see, the results all got much faster once I got back in time
> to about mid-2007. Using 'git-bisect' I was able to find the offending
> commit which had caused the performance degradation:
> http://git.infradead.org/users/dwmw2/openssl-parsecvs.git/commitdiff/25e9f96b

That would be:

    http://cvs.openssl.org/chngview?cn=16371

Likely this is in part intended to address timing attacks. At first
glance, the assembly code seems to have two implementations of AES, a fast
one and a slow one, and some code at the top to choose between them. There
is also a magic number (512 I think) that I am guessing selects the fast
path for blocks of 512 bytes and up and the slow path for smaller blocks.

Can someone confirm that what we are seeing is a work-around for DJB's
cache timing attack on AES? If so, I would guess that the timing attack
is believed to be impractical for large blocks, so the fast path is used
only for sufficiently large inputs... 

Are there sound estimates of how quickly the timing signal degrades with
the input size? How conservative is the 512-byte cutoff

-- 
        Viktor.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to