cryptographic coprocessor

14
Katedra počítačů FEL ČVUT Praha Karlovo náměstí 13, 121 35 Praha 2 Cryptographic coprocessor Tomáš Davidovič 16. 6. 2008

Upload: wyoming-meyer

Post on 30-Dec-2015

17 views

Category:

Documents


3 download

DESCRIPTION

Cryptographic coprocessor. Tomáš Davidovič 16. 6. 2008. Introduction. Asymmetric cryptography RSA – Integer factorization ECC – Elliptic Curve Cryptography Points on an Elliptic Curve Basic operation – scalar point multiplication Q = k * P – compute via add-and-double - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Cryptographic coprocessor

Katedra počítačůFEL ČVUT Praha

Karlovo náměstí 13, 121 35 Praha 2

Cryptographiccoprocessor

Tomáš Davidovič16. 6. 2008

Page 2: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

2

Introduction

Asymmetric cryptography RSA – Integer factorization ECC – Elliptic Curve Cryptography Points on an Elliptic Curve Basic operation – scalar point

multiplication Q = k*P – compute via add-and-double ECDLP – Elliptic Curve Discrete

Logarithm Problem, determine k from Q and P

Page 3: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

3

EC – point addition – real numbers

Page 4: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

4

EC – discrete

Cannot use real numbers Coordinates from GF(2m) Two coordinate systems

Affine coordinates (x, y) – mul & div Projective coordinates (x, y, z) – mul only

Two bases in GF(2m) Polynomial – am-1xm-1+am-2xm-2+…+a1x+a0

Normal – am-1x2^(m-1)+am-2x2^(m-2)+…+a1x2+a0x

Page 5: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

5

EC – required operations

Addition, subtraction Bitwise XOR in both bases

Squaring Simple (but different) comb. logic in both

Multiplication Bit-serial (m cycles) Digit-serial multiplier in both (m/D cycles)

Division Polynomial b. via Extended Euclid’s

Algorithm Normal b. via Little Fermat Theorem (costly)

Page 6: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

6

Block diagram

Previous work

Page 7: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

7

Polynomial squaring

1 0 1 0 0 0 11 1 0 11. ®

1 0 1 0 0 0 12. 1 0 10 1

10 1 0 11

0 1 0 0 0 13. 1 0 10 1

11 0 11

1 0 14. 1 0 10 1

1 1

1 1

1 0

1 0 1 0 0 0 1

1 1 0 1

0 1 1 1 0 1

1 1 1 0 1

1 1 1 0

Page 8: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

8

Multiplication – bit-serial

Page 9: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

9

Multiplication – digit-serial

Bit-serial – C = A*B Multiplies by 1 bit at a time

Digit-serial – C = A*B; Digit – multiply by D bits at a time C = 0; i = 0; (D = 2) C = C + A*B[i] + (A<<1)*B[i+1] Shift A left by 2; i = i + 2; Repeat until i

= m

Page 10: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

10

Micro-controller

Page 11: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

11

Verification

Some functions base specific Wrappers

Algorithms universal Test algorithms Use algorithms to verify design Quality – code coverage

Statement coverage – each line used Branch coverage – each if taken both

ways

Page 12: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

12

Results – area

Page 13: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

13

Results – speed (cycles)

Page 14: Cryptographic coprocessor

16. 6. 2008 Cryptographic coprocessor

14

Wrap Up

Coprocessor Both bases implemented Both coordinate systems evaluated

Verification 100% Branch and statement coverage Everything passes

Comparison Normal D=6 and poly D=1 equal in size Normal faster than poly when equal size