# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MLA -- Crypto Library

1 January, 2012

- 1
- 2
…
- 5
- 6
- 7
- 8
- 9
…
- 119
- 120

1.1 Introduction
This library provides symmetric and asymmetric cryptographic encryption and decryption functionality for the Microchip
family of microcontrollers with a convenient C language interface.
Description
This library provides symmetric and asymmetric cryptographic encryption and decryption functionality for the Microchip
family of microcontrollers with a convenient C language interface. This crypto library provides support for the AES, TDES,
XTEA, ARCFOUR, and RSA algorithms.
AES, TDES, and XTEA are all symmetric block cipher algorithms, meaning they encrypt/decrypt fixed-length blocks of data
and use the same key for encryption and decryption. To provide a complete model of security, these algorithms should be
used with one of the provided block cipher modes of operation.
AES
is one of the most widely used ciphers available today. It uses 128-, 192-, or 256-bit keys to encrypt 128-bit blocks.
AES supports the Electronic Codebook (ECB), Cipher-Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback
(OFB), Counter (CTR), and Galois/Counter Mode (GCM) modes of operation.
TDES
(Triple DES), based on the DES cipher, is a precursor to AES, and is maintained as a standard to allow time for
transition to AES.
TDES is not recommended for new designs.
TDES uses 56-bit DES keys (64-bits, including parity bits)
to encrypt 64-bit blocks. TDES actually uses up to three distinct keys, depending on the keyring option that the user is using
(hence the name, Triple DES). TDES supports the Electronic Codebook (ECB), Cipher-Block Chaining (CBC), Cipher
Feedback (CFB), and Output Feedback (OFB) modes of operation.
XTEA
gained popularity because it was easy to implement. It uses 128-bit keys to encrypt 64-bit blocks of data.
XTEA is not
recommended for new designs.
ARCFOUR
is a symmetric stream cipher, encrypting or decrypting one byte of data at a time using a single key. It supports
variable key lengths between 40 and 2048 bits.
ARCFOUR is not recommended for new designs.
RSA
is an asymmetric cipher used to encrypt/decrypt a block of data that matches the key size. This library supports 512-,
1024-, and 2048-bit RSA keys. RSA uses a public key scheme in which a user makes one key widely available (the "public
key"). Anyone can use this public key to encrypt a block of data, but only someone who possesses the corresponding
"private key" for that public key can decrypt the data. The RSA algorithm takes a large number of instructions to decrypt data
relative to symmetric key algorithms like AES or ARCFOUR; for this reason it's usually used as part of a key exchange
protocol to exchange symmetric keys from a faster algorithm that will then be used to transmit other data.
1.1 Introduction MLA - Crypto Library Help
7

- 1
- 2
…
- 5
- 6
- 7
- 8
- 9
…
- 119
- 120