Download UM0586 User manual - STMicroelectronics

Transcript
UM0586
9
Contents
ECC algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.1
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2
ECC library functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.3
10
11
9.2.1
ECCinitEC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
9.2.2
ECCfreeEC function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
9.2.3
ECCinitPoint function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
9.2.4
ECCfreePoint function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.2.5
ECCsetPointCoordinate function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.2.6
ECCgetPointCoordinate function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.2.7
ECCgetPointFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.2.8
ECCsetPointFlag function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.2.9
ECCcopyPoint function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.2.10
ECCinitPrivKey function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.2.11
ECCfreePrivKey function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.2.12
ECCsetPrivKeyValue function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.2.13
ECCgetPrivKeyValue function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
9.2.14
ECCscalarMul function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
9.2.15
ECCsetPointGenerator function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
9.2.16
ECDSAinitSign function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
9.2.17
ECDSAfreeSign function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9.2.18
ECDSAsetSignature function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9.2.19
ECDSAgetSignature function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9.2.20
ECDSAverify function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
9.2.21
ECCvalidatePubKey function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2.22
ECCkeyGen function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2.23
ECDSAsign function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
ECC example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
STM32 encryption library settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
10.1
Configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
10.2
STM32_CryptoLibraryVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Cryptographic library performance and memory requirements . . . . 118
11.1
Symmetric key algorithms performance results . . . . . . . . . . . . . . . . . . . .118
11.1.1
Software optimized for speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
11.1.2
Hardware enhanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
DocID14989 Rev 4
5/131