Encryption Routines for PIC24, dsPIC, and PIC32
  Software Libraries
  Application Notes
  Code Examples
  Data Sheets
  Development Tools
  MCU & DSC Overview
  8-bit
  16-bit
  32-bit
  Application Design Centers
Encryption Routines for PIC24, dsPIC, and PIC32

Summary

Microchip offers a reliable security solution for embedded applications built on the 16- and 32-bit microcontroller platform. This solution is provided by means of a single library. This library features the symmetric key encryption/decryption functions Advanced Encryption Standard (AES) and Triple-Data Encryption Algorithm (Triple-DES). These algorithms are also recommended by most Internet Engineering Task Force (IETF), Federal Information Processing Standards (FIPS) and IPSec standards.)

Features

Optimized for speed, code size and RAM usage

Library functions tested for adherence to applicable standards

Application note describes APIs

Several examples of use are provided for each library function

All Microchip 16-bit Families supported


Typical Applications

Web access

Secure XML transactions

Virtual Private Networks (VPN)

Secure transfer of stored calibration data


Cryptographic Functions: 16-bit MCUs and DSCs

Cryptographic Algorithm

Applicable Specification

Cryptographic Function(1)

Code Size (bytes)

Data Rate(2) (Kbytes,sec)

T-DES

FIPS 46-3

Basic Encryption and Decryption

7500

19.8 (16 MIPS)

49.5 (40 MIPS)

AES (128-bit)

FIPS 197

Basic Encryption

3018

74.1 (16 MIPS)

184.7 (40 MIPS)

Notes:
1) AES and T-DES data rate represents the average of the data rates for performing basic encryption and decryption functions for a single block of data.

2) Wrapper functions are used in combination with the underlying basic encryption and/or decryption functions for the respective algorithm (AES,T-DES).

Cryptographic Functions: 32-bit MCUs

Cryptographic Algorithm

Cryptographic Function

CPU Cycle Times in uSec (1,2)

Throughput (Kbytes/sec)

AES (128-bit)

Create Session Key

40.45

764

Encryption Block

20.45

Decrypt Block

20.45

AES (192-bit)

Create Session Key

48.83

634.4

Encryption Block

24.63

Decrypt Block

24.63

AES (256-bit)

Create Session Key

57.68

544.4

Encryption Block

28.70

Decrypt Block

28.70

AES Library for PIC32 MCUs Memory Usage:

With MIPS32 Instructions: 14.9 KB

With MIPS16 Instructions: 13.9 KB

Notes:
1) Speed (Time) optimized -03 loops unrolled.

2) PIC32 MCU running at 80 MHz.


Encryption software can be downloaded below as part of the Data Encryption Libraries.

Downloads