+ All Categories
Home > Documents > Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various...

Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various...

Date post: 30-Apr-2018
Category:
Upload: phungkien
View: 217 times
Download: 3 times
Share this document with a friend
34
Fast Implementations of AES on Various Platforms Joppe W. Bos 1 Dag Arne Osvik 1 Deian Stefan 2 1 EPFL IC IIF LACAL, Station 14, CH-1015 Lausanne, Switzerland {joppe.bos, dagarne.osvik}@epfl.ch 2 Dept. of Electrical Engineering, The Cooper Union, NY 10003, New York, USA [email protected] 1 / 19
Transcript
Page 1: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Fast Implementations of AES on Various Platforms

Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2

1EPFL IC IIF LACAL, Station 14, CH-1015 Lausanne, Switzerland{joppe.bos, dagarne.osvik}@epfl.ch

2Dept. of Electrical Engineering, The Cooper Union, NY 10003, New York, [email protected]

1 / 19

Page 2: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Outline

Introduction

MotivationPrevious WorkContributions

The Advanced Encryption Standard

Target Platforms

The 8-bit AVR MicrocontrollerThe Cell Broadband Engine ArchitectureThe NVIDIA Graphics Processing Unit

Conclusions

2 / 19

Page 3: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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 / 19

Page 4: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Contributions

New software speed records for various architectures

8-bit AVR microcontrollers

compact, efficient single stream AES version

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 / 19

Page 5: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

The Advanced Encryption Standard

Fixed block length version of the Rijndael block cipher

Key-iterated block cipher with 128-bit state and block length

Support for 128-, 192-, and 256-bit keys

Strong security properties → no attacks on full AES-128

Very efficient in hardware and software

5 / 19

Page 6: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES-128 Block Cipher

Algorithm consists of 5 steps:1 Key expansion:

128-bit → Nr + 1 = 11 128-bit round keys2 State initialization:

initial state ← plaintext block ⊕ 128-bit key3 Round transformation:

apply round function on state Nr − 1 times4 Final round transformation:

apply the modified round function

Core of AES, the round function, consists of the following steps:

SubBytes, ShiftRows, MixColumns, and AddRoundKey.

Decryption follows the same procedure- round function steps are the inverse and run in reverse order

6 / 19

Page 7: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES-128 Block Cipher

Algorithm consists of 5 steps:1 Key expansion:

128-bit → Nr + 1 = 11 128-bit round keys2 State initialization:

initial state ← plaintext block ⊕ 128-bit key3 Round transformation:

apply round function on state Nr − 1 times4 Final round transformation:

apply the modified round function

Core of AES, the round function, consists of the following steps:

SubBytes, ShiftRows, MixColumns, and AddRoundKey.

Decryption follows the same procedure- round function steps are the inverse and run in reverse order

6 / 19

Page 8: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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

1 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

2 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

7 / 19

Page 9: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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

1 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

2 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

7 / 19

Page 10: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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

1 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

2 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

7 / 19

Page 11: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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

1 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

2 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

7 / 19

Page 12: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Target Platforms

Cell B.E

NVIDIA GPUs

Atmel AVRs

© IBM Systems

8 / 19

Page 13: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Advanced Virtual RISC Architecture

Modified Harvard architecture

32 · 8-bit registers

16-bit pointer registers

Registers are addressable

Mostly single-cycle execution12 KB to 384KB flash memory

0 to 32KB SRAM

0 to 4KB EEPROM

9 / 19

Page 14: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Encryption Comparison AVR

1400

1600

1800

2000

2200

2400

2600

2800

3000

3200

3400

3600

1500 2000 2500 3000 3500 4000 4500

Cod

e S

ize

in B

ytes

Cycles for Encryption

Rinne et al.Poettering

OtteNew

10 / 19

Page 15: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Decryption Comparison AVR

1400

1600

1800

2000

2200

2400

2600

2800

3000

3200

3400

3600

2500 3000 3500 4000 4500 5000 5500 6000 6500 7000

Cod

e S

ize

in B

ytes

Cycles for Decryption

Rinne et al.Poettering

OtteNew

11 / 19

Page 16: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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)

“Cheap” PS3 video game console (6 SPEs)

12 / 19

Page 17: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

SPU Results Comparison

0

5

10

15

20

Encryption Decryption

12.4

17.1

11.714.4

Cycles/byte

K. Shimizu et al. 2005

This article

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

Work-in-progress, fill both pipelines

Current version: 1752 odd and 2764 even instructions for encryption.13 / 19

Page 18: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

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 / 19

Page 19: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU 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.

Example (j = 0):

T0a01 a02 a03

a10 a13

a20 a21 a23

a30 a31 a32

a12 T1

T2

T3

a00

a11

a22

a33

b00

b10

b20

b30

s01 s02 s03

s11 s13

s21 s22 s23

s31 s32 s33

s12

k00

k10

k20

k30

s00

s10

s20

s30

Optimization approach: launch thread blocks containing multipleindependent groups of 16 (1/2-warp) streams.

15 / 19

Page 20: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU 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.

Example (j = 0):

T0a01 a02 a03

a10 a13

a20 a21 a23

a30 a31 a32

a12 T1

T2

T3

a00

a11

a22

a33

b00

b10

b20

b30

s01 s02 s03

s11 s13

s21 s22 s23

s31 s32 s33

s12

k00

k10

k20

k30

s00

s10

s20

s30

Optimization approach: launch thread blocks containing multipleindependent groups of 16 (1/2-warp) streams.

15 / 19

Page 21: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU 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.

Example (j = 0):

T0a01 a02 a03

a10 a13

a20 a21 a23

a30 a31 a32

a12 T1

T2

T3

a00

a11

a22

a33

b00

b10

b20

b30

s01 s02 s03

s11 s13

s21 s22 s23

s31 s32 s33

s12

k00

k10

k20

k30

s00

s10

s20

s30

Optimization approach: launch thread blocks containing multipleindependent groups of 16 (1/2-warp) streams.

15 / 19

Page 22: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Key expansion:1 On-the-fly:

allows thousands of independent streamsspeed dependent on T -access speedmulti-block speed improvement: cache few round keys / stream inshared memory; 16-streams/group → no bank conflicts!

2 Texture memory:

keys alive between kernel launches: multi-block encryption is fasterthan on-the-fly!thread count limited by texture cache size

3 Shared memory:

16 round key column reads with no bank conflicts → single kernelmulti-block encryption is the fastest!thread count limited by shared memory size

16 / 19

Page 23: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Key expansion:1 On-the-fly:

allows thousands of independent streamsspeed dependent on T -access speedmulti-block speed improvement: cache few round keys / stream inshared memory; 16-streams/group → no bank conflicts!

2 Texture memory:

keys alive between kernel launches: multi-block encryption is fasterthan on-the-fly!thread count limited by texture cache size

3 Shared memory:

16 round key column reads with no bank conflicts → single kernelmulti-block encryption is the fastest!thread count limited by shared memory size

16 / 19

Page 24: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Key expansion:1 On-the-fly:

allows thousands of independent streamsspeed dependent on T -access speedmulti-block speed improvement: cache few round keys / stream inshared memory; 16-streams/group → no bank conflicts!

2 Texture memory:

keys alive between kernel launches: multi-block encryption is fasterthan on-the-fly!thread count limited by texture cache size

3 Shared memory:

16 round key column reads with no bank conflicts → single kernelmulti-block encryption is the fastest!thread count limited by shared memory size

16 / 19

Page 25: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank. All sharedmemory used by 1 thread block → very low device utilization.Lazy approachPlace T -tables in order. On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 26: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank.

All sharedmemory used by 1 thread block → very low device utilization.Lazy approachPlace T -tables in order. On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 27: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank. All sharedmemory used by 1 thread block → very low device utilization.

Lazy approachPlace T -tables in order. On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 28: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank. All sharedmemory used by 1 thread block → very low device utilization.Lazy approachPlace T -tables in order.

On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 29: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank. All sharedmemory used by 1 thread block → very low device utilization.Lazy approachPlace T -tables in order. On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.

combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 30: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank. All sharedmemory used by 1 thread block → very low device utilization.Lazy approachPlace T -tables in order. On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 31: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

AES GPU Implementation (cont.)

Placement of T -tables:1 Constant memory:

simple and very quick approachunless encrypting same block with same key: almost all T -accesses areserializedcombine with any key scheduling algorithm

2 Shared memory:

Collision-free approachTi , i > 0 are rotations of T0: place 1KB T0 in each bank. All sharedmemory used by 1 thread block → very low device utilization.Lazy approachPlace T -tables in order. On average: 6/16 collisions, so remainingreads are parallel. Allows for multiple blocks/SM → higher deviceoccupancy.combine with on-the-fly key scheduling or key expansion in texturememory.

3 Texture memory: ongoing work, but estimates are lower than lazyshared memory approach.

17 / 19

Page 32: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

GPU Results Comparison

0

0.5

1

1.5

2

Encryption Decryption

1.3

1.71

1.56

0.74 0.76

0.17 0.19

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)

This article (GTX295)

Encryption: 59.6 and 14.6 Gbps on the GTX 295 and 8800GTX, respectively.

Decryption: 52.4 and 14.3 Gbps on the GTX 295 and 8800GTX, respectively.

18 / 19

Page 33: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Conclusions

AES-128 software speed records for encryption and decryption

8-bit AVR

1.24× encryption1.10× decryptionsmaller code size

Cell Broadband Engine (SPE)

1.06× encryption1.18× decryption

NVIDIA GPU

1.75× encryptionFirst decryption implementation

All numbers subject to further improvements

To be continued. . .

19 / 19

Page 34: Fast Implementations of AES on Various Platforms · Fast Implementations of AES on Various Platforms Joppe W. Bos1 Dag Arne Osvik1 Deian Stefan2 1EPFL IC IIF LACAL, Station 14, ...

Conclusions

AES-128 software speed records for encryption and decryption

8-bit AVR

1.24× encryption1.10× decryptionsmaller code size

Cell Broadband Engine (SPE)

1.06× encryption1.18× decryption

NVIDIA GPU

1.75× encryptionFirst decryption implementation

All numbers subject to further improvements

To be continued. . .

19 / 19


Recommended