23
Fast Software AES Encryption Dag Arne Osvik 1 Joppe W. Bos 1 Deian Stefan 2 David Canright 3 1 Laboratory for Cryptologic Algorithms, EPFL, CH-1015 Lausanne, Switzerland 2 Dept. of Electrical Engineering, The Cooper Union, NY 10003, New York, USA 3 Applied Math., Naval Postgraduate School, Monterey CA 93943, USA 1 / 20

Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Fast Software AES Encryption

Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3

1Laboratory for Cryptologic Algorithms, EPFL, CH-1015 Lausanne, Switzerland2Dept. of Electrical Engineering, The Cooper Union, NY 10003, New York, USA

3Applied Math., Naval Postgraduate School, Monterey CA 93943, USA

1 / 20

Page 2: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Fast Software AES Encryption

Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3

Presented by: Onur Ozen1

1Laboratory for Cryptologic Algorithms, EPFL, CH-1015 Lausanne, Switzerland2Dept. of Electrical Engineering, The Cooper Union, NY 10003, New York, USA

3Applied Math., Naval Postgraduate School, Monterey CA 93943, USA

1 / 20

Page 3: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Outline

Introduction

MotivationRelated WorkContributions

The Advanced Encryption Standard

Target Platforms

The 8-bit AVR MicrocontrollerThe 32-bit Advanced RISC MachineThe Cell Broadband Engine ArchitectureThe NVIDIA Graphics Processing Unit

Conclusions

2 / 20

Page 4: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Motivation

Advanced Encryption Standard

Rijndael announced in 2001 as the AES.

One of the most widely used cryptographic primitives.

IP Security, Secure Shell, TruecryptRFID and low-power authentication methodsKey tokens, RF-based Remote Access Control

Many intensive efforts to speed up AES in both hard- and software.

Related workE. Kasper and P. Schwabe. Faster and Timing-Attack Resistant AES-GCM. CHES 2009.

P. Bulens, et al. Implementation of the AES-128 on Virtex-5 FPGAs AFRICACRYPT 2008.

O. Harrison and J. Waldron. Practical Symmetric Key Cryptography on Modern Graphics Hardware. USENIX Sec. Symp. 2008.

S. Rinne, et al. Performance Analysis of Contemporary Light-Weight Block Ciphers on 8-bit Microcontrollers. SPEED 2007.

K. Shimizu, et al. Cell Broadband Engine Support for Privacy, Security, and Digital Rights Management Applications. 2005.

3 / 20

Page 5: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Contributions

New software speed records for various architectures

Target both ends of the performance spectrumlow-end microcontrollershigh-end architectures processing many streams simultaneously

Specific optimizations for each platform

one of the most widely used processors for mobile applicationsefficient single stream AES version (T -table based)

Synergistic processing elements of the Cell broadband enginewidely available in the PS3 video game consolesingle instruction multiple data (SIMD) architectureprocess 16 streams in parallel (bytesliced)

NVIDIA graphics processing unitfirst AES decryption implementationsingle instruction multiple threads (SIMT) architectureprocess thousand of streams in parallel (T -table based)

4 / 20

Page 6: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Contributions

New software speed records for various architectures

8-bit AVR microcontrollers

compact, efficient single stream AES version

32-bit Advanced RISC Machine

one of the most widely used processors for mobile applicationsefficient single stream AES version (T -table based)

Synergistic processing elements of the Cell broadband engine

widely available in the PS3 video game consolesingle instruction multiple data (SIMD) architectureprocess 16 streams in parallel (bytesliced)

NVIDIA graphics processing unit

first AES decryption implementationsingle instruction multiple threads (SIMT) architectureprocess thousand of streams in parallel (T -table based)

4 / 20

Page 7: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

The Advanced Encryption Standard

Fixed block length version of theRijndael block cipher

Key-iterated block cipher with128-bit state and block length

Support for 128-, 192-, and256-bit keys

Strong security propertiesonly related key attackson AES-192 and AES-256no attacks on full AES-128

Very efficient in hardware andsoftware

(Created by Jeff Moser)

5 / 20

Page 8: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Round Function Steps

1 SubBytes:

S-box

a00 a01 a02 a03

a10 a11 a13

a20 a21 a22 a23

a30 a31 a32 a33

b00 b01 b02 b03

b10 b11 b13

b20 b21 b22 b23

b30 b31 b32 b33

a12 b12

2 ShiftRows:a00 a01 a02 a03

a10 a11 a13

a20 a21 a22 a23

a30 a31 a32 a33

a12

a00 a01 a02 a03

a11 a13

a22 a23

a33

a12 a10

a20 a21

a30 a31 a32

3 MixColumns:

a00 a02 a03

a10 a13

a20 a22 a23

a30 a32 a33

b00 b02 b03

b10 b13

b20 b22 b23

b30 b32 b33

a12 b12

2 3 1 1

1 2 3 1

1 1 2 3

3 1 1 2

×

a01

a11

a21

a31

b01

b11

b21

b31

4 AddRoundKey:a00 a01 a02 a03

a10 a11 a13

a20 a21 a22 a23

a30 a31 a32 a33

a12

k00 a01 k02 k03

k10 a11 k13

k20 a21 k22 k23

k30 k31 k32 k33

k12

b00 b01 b02 b03

b10 b11 b13

b20 b21 b22 b23

b30 b31 ab32 b33

b12

6 / 20

Page 9: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Efficient T -table implementation

Combine SubBytes, ShiftRows, MixColumns using the standard“T -table” approach. Update each column (0 ≤ j ≤ 3):

[sj0, sj1, sj2, sj3]T = T0[ac00]⊕ T1[ac11]⊕ T2[ac22]⊕ T3[ac33]⊕ kj ,

where each Ti is 1KB and kj is the jth column of the round key.

Ti ’s are rotations of one table.

Example (j = 0):

a01 a02 a03

a10 a13

a20 a21 a23

a30 a31 a32

a12

s01 s02 s03

s11 s13

s21 s22 s23

s31 s32 s33

s12

k00

k10

k20

k30

s00

s10

s20

s30

a00

a11

a33

T0 T1 T3T2a22

7 / 20

Page 10: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Target Platforms

NVIDIA GPUs

Atmel AVRs

ARM

© DigiKey

© IBM Systems

Cell B.E

8 / 20

Page 11: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Microcontrollers

AVR

Modified Harvard architecture

32 · 8-bit registers

3 · 16-bit pointer registers

Registers are addressable

Mostly single-cycle execution12 to 384KB flash memory

0 to 32KB SRAM

0 to 4KB EEPROM

ARM

Harvard/von Neumannarchitecture

16 · 32-bit registers available

Conditional execution

Optional modification of flags

Mostly single-cycle execution

Load/store multiple registers

Inline barrel shifter9 / 20

Page 12: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Microcontrollers – Results

ReferenceKey Encryption Decryption Code size

scheduling (cycles) (cycles) (bytes)

8-bit AVR microcontroller

Rinne et al. precompute 3,766 4,558 3,410Poettering (Fast) precompute 2,474 3,411 3,098Poettering (Furious) precompute 2,739 3,579 1,570Poettering (Fantastic) precompute 4,059 4,675 1,482Otte precompute 2,555 6,764 2,070Otte precompute 2,555 3,193 2,580

New - Low RAM precompute 2,153 2,901 1,912New - Fast precompute 1,993 2,901 1,912

32-bit ARM microprocessor

Atasu et. al precompute 639 638 5,966New precompute 544 - 3,292

10 / 20

Page 13: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Cell Broadband Engine Architecture

Use the Synergistic Processing Elements

runs at 3.2 GHz128-bit wide SIMD-architecturetwo instructions per clock cycle (dual pipeline)in-order processorrich instruction set: i.e.all distinct binary operationsf : {0, 1}2 → {0, 1} are present.

“Expensive” QS22 Blade Servers (2× 8 SPEs)

PCI express cards:cryptographic accelerator ({ 4, 8 } SPEs)

“Cheap” PS3 video game console (6 SPEs)

11 / 20

Page 14: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Dual pipeline – Example

Balancing pipeline loads may lead to more instructions but fewer cycles.16-way SIMD xtime: a · x (a ∈ F28

∼= F2[x ]/(x8 + x4 + x3 + x + 1))Similar techniques for 16-way SIMD S-box lookups.

x x

and cmp-gt rotate-left

shift-left and and gather

xor form-mask

xtime (x) rotate-right

and

xor

xtime (x)

4 even, 1 oddlatency: 8 cycles

3 even, 4 oddlatency: 20 cycles

2

4

2

2

2

4 4

2

4

4

4

2

2

12 / 20

Page 15: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

SPU Results Comparison

0

5

10

15

20

Encryption Decryption

12.4

17.1

11.313.9

Cycles/byte

K. Shimizu et al. 2005

This article

Throughput per PS3: 13.8 (encryption) and 10.8 Gbps (decryption)

13 / 20

Page 16: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

NVIDIA Graphic Processing Units

Contain 12-30 simultaneousmultiprocessors (SMs):

8 streaming processors (SPs)16KB 16-way banked fastshared memory8192/16384 32-bit registers8KB constant memory cache6KB-8KB texture cache2 special function unitsinstruction fetch andscheduling unit

GeForce 8800GTX:16 SMs @ 1.35GHz

GTX 295:2× 30 SMs @ 1.24GHz

SP SP

SP SP

SP SP

SP SP

Scheduler

SFU SFU

Regi

ster

File

16KB

Sha

red

Mem

Const $ Text $

SP SP

SP SP

SP SP

SP SP

Scheduler

SFU SFU

Regi

ster

File

16KB

Sha

red

Mem

Const $ Text $

SP SP

SP SP

SP SP

SP SP

Scheduler

SFU SFU

Regi

ster

File

16KB

Sha

red

Mem

Const $ Text $

14 / 20

Page 17: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

AES GPU Implementation

Each thread processes multiple blocks→ hide memory latency using double buffering!

Group multiple (e.g., 16) threads into stream groups→ share a common key, expanded in texture/shared memory

Execute 16 (scheduling-unit) stream groups per thread block→ allows any caching to shared memory with no collisions!

Launch multiple thread blocks per grid→ increase device utilization!

All global memory access is coalesced→ maximize memory access throughput!

15 / 20

Page 18: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

AES GPU Implementation (cont.)

On-the-fly version→ all threads cache 1st round key to shared memory

Texture-memory version→ threads of same stream group share a common key

Round-key read – Shared/texture memory

Threads of same stream group share a common key.

streamgroup

thread

16 / 20

Page 19: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

AES GPU Implementation (cont.)

PTX pre-expanded key (benchmark-only) version→ threads in a thread block share 1 key.

Round-key (broadcast) read– Constant memory

Threads in same thread block share a common key.

17 / 20

Page 20: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

AES GPU Implementation (cont.)

T -tables placed in shared memory:

T-table read– Shared memoryAvg: 35% collisions

Still the fastest! Will further improve on Fermi…

Even with collisions → greatest speedup!

18 / 20

Page 21: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

GPU Results Comparison

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Encryption Decryption

1.3

1.71

0.70.52

0.640.65

0.32 0.32

Cycles/byte

S. A. Manavski 2007 (8800GTX)

J. Yang et al. 2007 (ATI HD 2900 XT)

O. Harrison et al. 2008 (8800GTX)

This article (8800GTX) PTX

This article (8800GTX)

This article (single-GPU GTX295)

Encryption: 30.9 and 16.8 Gbps on single GTX 295 GPU and 8800GTX.

Decryption: 30.8 and 16.6 Gbps on single GTX 295 GPU and 8800GTX.

19 / 20

Page 22: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Conclusions

Our new AES-128 software speed records for encryption and decryptionx times faster compared to the previous records

8-bit AVR1.24× encryption1.10× decryptionsmaller code size

32-bit ARM1.17× encryption

Cell Broadband Engine (SPE)1.10× encryption1.23× decryption

NVIDIA GPU1.2× encryption1.34× encryption (kernel-only)First decryption implementation

All numbers subject to further improvements

To be continued. . .

20 / 20

Page 23: Fast Software AES Encryption...Fast Software AES Encryption Dag Arne Osvik1 Joppe W. Bos1 Deian Stefan2 David Canright3 Presented by: Onur Ozen 1 1Laboratory for Cryptologic Algorithms,

Conclusions

Our new AES-128 software speed records for encryption and decryptionx times faster compared to the previous records

8-bit AVR1.24× encryption1.10× decryptionsmaller code size

32-bit ARM1.17× encryption

Cell Broadband Engine (SPE)1.10× encryption1.23× decryption

NVIDIA GPU1.2× encryption1.34× encryption (kernel-only)First decryption implementation

All numbers subject to further improvements

To be continued. . .20 / 20