18
FPGA Implementation of RC6 including key schedule Hunar Qadir Fouad Ramia

FPGA Implementation of RC6 including key schedule

Embed Size (px)

DESCRIPTION

FPGA Implementation of RC6 including key schedule. Hunar Qadir Fouad Ramia. Introduction. RC6 is a symmetric key block cipher derived from RC5 One of the five finalists chosen for AES Works on a block size of 128 bits Specified as RC6- w/r/b Supports key sizes of 64, 128, and 256 bits. - PowerPoint PPT Presentation

Citation preview

Page 1: FPGA Implementation of RC6 including key schedule

FPGA Implementation of RC6 including key schedule

Hunar Qadir

Fouad Ramia

Page 2: FPGA Implementation of RC6 including key schedule

Introduction

RC6 is a symmetric key block cipher derived from RC5

One of the five finalists chosen for AES Works on a block size of 128 bits Specified as RC6-w/r/b Supports key sizes of 64, 128, and 256

bits

Page 3: FPGA Implementation of RC6 including key schedule

Goal of our project

Implementation of RC6 in hardware FPGA as the target technology Implementation of key schedule/generator

in addition to encryption/decryption Study/compare the performance of our

design

Page 4: FPGA Implementation of RC6 including key schedule

Motivation

Why RC6?SecuritySimplicityPerformance

Why FPGAs?Higher performance than software solutions

Reprogrammable (FPGA vs. ASICs)

Page 5: FPGA Implementation of RC6 including key schedule

RC6 Algorithm

Key ScheduleUser supplies a key of b bytes 2r + 4 words (w bits each) are derived and

stored in the array S [0, 2r + 3] Array is used in both encryption and

decryption

Page 6: FPGA Implementation of RC6 including key schedule

RC6 Algorithm (continued) Encryption

Plain text stored in four w-bit input registers A, B, C, D

B = B + S [0]D = D + S [1]for i = 1 to r do{

T = (B X (2B + 1)) <<< lg wu = (D X (2D + 1)) <<< lg wA = ((A t) <<< u) + S [2i]C = ((C u) <<< t) + S [2i+

1](A, B, C, D) = (B, C, D, A)

}A = A + S [2r + 2]C = C + S [2r + 3]

*Figure taken from RC6 paper by Ron Rivest

Page 7: FPGA Implementation of RC6 including key schedule

RC6 Algorithm (continued) Decryption

Cipher text stored in four w-bit input registers A, B, C, D

C = C – S [2r + 3]A = A – S [2r + 2]for i = r downto 1 do{

(A, B, C, D) = (D, A, B, C)u = (D X (2D + 1)) <<< lg wt = (B X (2B + 1)) <<< lg wC = ((C – S [2i + 1]) >>> t) uA = ((A – S [2i]) >>> u) t

}D = D – S [1]B = B – S [0]

Page 8: FPGA Implementation of RC6 including key schedule

Development Environment

Use VHDL to simulate hardware implementation CAD tools used:

ALDEC Active HDL Synplify Pro 8.5 for synthesis Xilinx ISE 7.1 for implementation

Selection of a target FPGA Xilinx Virtex XCV1000

Page 9: FPGA Implementation of RC6 including key schedule

RC6 Pin-out Diagram

Page 10: FPGA Implementation of RC6 including key schedule

RC6 Key Schedule Module

Page 11: FPGA Implementation of RC6 including key schedule

RC6 Core Module

Page 12: FPGA Implementation of RC6 including key schedule

RC6 Block diagram

Page 13: FPGA Implementation of RC6 including key schedule

Control Unit

Page 14: FPGA Implementation of RC6 including key schedule

Control Signals

Page 15: FPGA Implementation of RC6 including key schedule

Implementation results

Min. Period (ns) : 22.881

Max. Frequency (MHz) : 43.7

Throughput Including key generation 27 Mbit/sec

Throughput Encryption/Decryption only 266 Mbit/sec

Page 16: FPGA Implementation of RC6 including key schedule

Comparing FPGA with software implementationsRC6 Key setup Encryption Decryption

FPGA at 43.7 MHZ

188 cycles

4305 ns

21 cycles

480 ns

21 cycles

480 ns

ANSI C at 200 MHZ

2,350 cycles

11,800 ns

616 cycles

3080 ns

566 cycles

2830 ns

Java (JIT) at 200 MHZ

14,300 cycles

71,400 ns

1010 cycles

5050 ns

955 cycles

4775 ns

Assembly at 200 MHZ

N/A 254 cycles

1270 ns

254 cycles

1270 ns

Page 17: FPGA Implementation of RC6 including key schedule

Comparing FPGA with software implementations (continued)

Page 18: FPGA Implementation of RC6 including key schedule

Conclusion & Future Work

Pros and Cons of Key Schedule on board

Advantages Disadvantages

With Key Schedule No need to reload the

Round keys every time the

user changes the input

Key

1- Lower throughput

2- More hardware resources

Without Key Schedule 1- Higher throughput

2- Less hardware resources

Every time the input key is

changed, the round keys

must be reloaded to the

FPGA

Future Work: Compute round keys on the fly