Download - Cryptographic coprocessor
![Page 1: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/3.jpg)
16. 6. 2008 Cryptographic coprocessor
3
EC – point addition – real numbers
![Page 4: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/6.jpg)
16. 6. 2008 Cryptographic coprocessor
6
Block diagram
Previous work
![Page 7: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/8.jpg)
16. 6. 2008 Cryptographic coprocessor
8
Multiplication – bit-serial
![Page 9: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/10.jpg)
16. 6. 2008 Cryptographic coprocessor
10
Micro-controller
![Page 11: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/12.jpg)
16. 6. 2008 Cryptographic coprocessor
12
Results – area
![Page 13: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/13.jpg)
16. 6. 2008 Cryptographic coprocessor
13
Results – speed (cycles)
![Page 14: Cryptographic coprocessor](https://reader035.vdocuments.net/reader035/viewer/2022072013/56812c4e550346895d90d538/html5/thumbnails/14.jpg)
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