第 3 章 - Azure RTOS NetX Crypto 的功能说明

执行概述

本章包含 Azure RTOS NetX Crypto 的功能说明。 NetX Crypto 应用程序中主要包含两种程序执行:初始化和应用程序接口调用。

NetX Crypto 可用作独立的加密库,也可与 ThreadX、NetX 和/或 NetX Secure 一起使用。

AES

  • 算法标准:NetX Crypto 根据 NIST FIPS 197 实现 AES。可在以下位置找到该标准:http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf
  • 支持的密钥长度:128、192、256
  • 支持的模式:
    • CBC、CTR(密钥长度为 128、192 或 256 位)
    • XCBC(密钥长度只有 128 位)
    • CCM8(密钥长度只有 128 位)
  • 内存要求:应用程序指定输入缓冲区和输出缓冲区以及 AES 控制结构。 AES 控制结构维护对 API 的调用之间的 AES 算法状态。 输入缓冲区包含要加密或解密的数据,可以是任意大小。 AES 使用输出缓冲区来存储正在处理的数据。 输出缓冲区大小不能小于输入缓冲区大小,必须是 16 字节(即 AES 块大小)的倍数。 输入和输出缓冲区必须是连续的内存,不能重叠,除非是在就地加密的特殊情况下(为输入和输出使用的内存相同)。 就地加密时,输出缓冲区的起始位置与输入缓冲区的起始位置完全相同,并且输出缓冲区不能小于输入缓冲区。 当 AES 加密就地进行时,无需额外的临时内存。

3DES

  • 算法标准:NetX Crypto 根据 NIST 特别出版物 800-67 修订版 2“有关三重数据加密算法 (TDES) 块加密的建议”(可以在 https://csrc.nist.gov/publications/detail/sp/800-67/rev-2/final 中找到)实现 Tripple DES(TDES,也称为 3DES)
  • 支持的密钥长度:64 * 3 = 192
  • 内存要求:无

在 NetX Crypto 中,术语“3DES”与“TDES”可互换使用。

MD5

  • 算法标准:NetX Crypto 根据 RFC 1321“MD5 消息摘要算法”实现 MD5
  • 内存要求:应用程序必须提供一个 MD5 控制块结构来维护 MD5 操作之间的状态。

SHA1、SHA256/512

  • 算法标准:NetX Crypto 根据 NIST FIPS 出版物 180-4“安全哈希标准”(可以在 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf 中找到)实现 SHA1/256/512

  • 哈希块大小:

    • SHA1:160 位哈希值
    • SHA 224:224 位哈希值
    • SHA 256:256 位哈希值
    • SHA 384:384 位哈希值
    • SHA 512:512 位哈希值
    • SHA 512/224:224 位哈希值
    • SHA 512/256:256 位哈希值

    在 NetX Crypto 中,SHA256 例程用来传递 SHA256 和 SHA224。 SHA512 例程用来传递 SHA512、SHA384、SHA512/224 和 SHA512/256。

  • 内存要求:应用程序必须提供一个 SHA 控制块结构来维护操作之间的状态。

RSA

HMAC

椭圆曲线

  • 标准:NetX Crypto 实现椭圆曲线。 支持的已命名曲线有(仅包括主要字段):

    • P-192
    • P-224
    • P-256
    • P-384
    • P-521

    提示

    支持未压缩格式。 请参阅 SEC1-v1 的 2.3.3 和 2.3.4 部分:http://www.secg.org/sec1-v2.pdf

  • 内存要求:无

ECDSA

ECDH

重要

在 Azure RTOS 6.0 中,ECDH 例程应当仅用于 ECDHE 加密,因为采用静态私钥的 ECDH 要求进行输入点验证以确保安全。

DRBG

符合 FIPS 标准

NetX Crypto FIPS 140-2