# Suite B

La Suite B de la NSA fue un conjunto de algoritmos criptográficos públicos aprobados por el NIST y disponibles comercialmente, certificados por la NSA, que podían ser usados como base criptográfica por aplicaciones comerciales y también para ciertos tipos de información clasificada de los Sistemas de Seguridad Nacional de los Estados Unidos hasta nivel Top Secret (CNSSP-15). La Suite B también sirvió como una base criptográfica interoperable para información clasificada y no clasificada. La Suite B establecía dos categorías: suficiente para proteger la información hasta nivel SECRET, llamada Suite 1, y suficiente para proteger la información TOP SECRET, llamada Suite 2. Para niveles de secreto más alto la NSA tiene la Suite A.
Para productos que usaban la Suite B como base criptográfica, la NSA creó certificaciones de productos hardware y software, usables para datos clasificados en Sistemas de Seguridad Nacional (NSS). Creó una para productos de tipo GOTS (GOTS-for-secret) y otra para productos de tipo COTS (CSfC). Muchos factores se tienen que cumplir para determinar si un dispositivo particular debe ser usado para satisfacer un requisito particular, como por ejemplo: la calidad e la implementación del algoritmo criptográfico, requisitos operacionales de actividades asociadas con la aprovación de claves y gestión de claves o requisitos de interoperabilidad. Hay varias formas de probar, evaluar y certificar equipos criptográficos como por ejemplo: Cryptographic Module Verification Program (CMVP), Common Criteria Evaluation and Validation Scheme (CCEVS) o la evaluación por parte de la NSA.
Para potenciar el uso de la Suite B la NSA:
* Trabajó con el NIST y con IETF para asegurar de que los estándares de la industria y protocolos incluían los algoritmos de la Suite B.
* Realizó muchas iniciativas de infraestructura para que se incorporaran los algoritmos de la Suite B (Ej. DoD Public Key Infrastructure (PKI), Key Management Infrastructure (KMI) y la Suite B-compliant commercial PKI ).

## Motivación

Los algoritmos de la Suite A, certificados por la NSA para su uso con información clasificada del Gobierno Federal de los Estados Unidos eran usados en productos de Tipo 1. Antes de que un producto reciba esta certificación, tiene que superar un riguroso proceso de análisis y prueba que asegure la integridad y habilidad del dispositivo para cumplir los estándares de seguridad exigidos por la NSA. Este proceso puede ser caro y requerir mucho tiempo tanto para el gobierno como para la industria. Además, lo entornos con productos de Tipo 1 generalmente son considerados complejos y difíciles de manejar porque los requisitos y procesos para la protección del dispositivo y sus algoritmos son significativos. En definitiva, desarrollar la criptografía construida a propósito para la NSA (GOTS) no era eficiente ni eficaz y producía un sobrecoste en tiempo y dinero. Para solucionar ese problema era necesario aprovechar que la industria ofrecía soluciones comerciales que ofrecían grado de seguridad aceptables excepto para ciertos casos especiales. Por otro lado el tiempo apremiaba ya que la revolución de los PC hacía imposible a la NSA mantener el cifrado fuera del alcance de los usuarios comunes y de la industria.
Por todas estas razones la NSA desarrolló proyectos que establecieran formas de securizar comunicaciones de información clasificada sin requerir certificación de tipo 1 y la Suite B, certificada por la NSA para proteger información no clasificada y la mayoría de la información clasificada (CNSSP-15), surgió como respuesta a esta situación problemática.

## Historia

El 16 de febrero de 2005, en la conferencia de RSA, la NSA presentó su estrategia y recomendaciones para la securización de información gubernamental sensible y no clasificada Indicaban que la NSA y el NIST habían estado trabajando para ofrecer un conjunto público de algoritmos avanzados y estandarizados, llamado Suite B, que pudieran ser usados para proteger información clasificada y no clasificada.
En octubre de 2012 el CNSSP 15 (Committee on National Security Systems Policy 15) específica el uso de estándares públicos para protocolos y algoritmos criptográficos de interoperabilidad que protejan los sistemas de seguridad nacional (NSS, del inglés National Security Systems) Este documento se refiere a RSA, DH y DSA como algoritmos heredados y requiere que su uso se suspenda antes del 1 de octubre de 2015 para a partir de entonces confiar exclusivamente en algoritmos ECC para criptosistema de clave pública.
En julio de 2015 se emitió el CNSS Advisory Memorandum 02-15 anunciando la actualización de la lista de algoritmos criptográficos que se pueden usar en organizaciones que ejecutan Sistemas de Seguridad Nacional (NSS) clasificados o no clasificados, y para proveedores que construyan productos usados en NSS. Un posterior documento llamó al conjunto de nuevos algoritmos como Suite de Algoritmos de Seguridad Nacional Comercial o Suite CNSA (del inglés Commercial National Security Algorithm Suite). Esta actualización fue justificada por la NSA debido al progreso en la computación cuántica y se indicaba que ese progreso a largo plazo provocaría que la criptografía de curvas elípticas fuera inutilizable y se tendría que en el futuro se tuviera que evolucionar a algoritmos resistentes a la computación cuántica. En la Suite CNSA no se permite DSA y se anula la obligatoriedad de usar algoritmos ECC para criptosistema de clave pública, soportando RSA y DH, alegando razones económicas.
Además, el documento pasa el estatus de algoritmos de heredado a soportado por razones económicas y no quere obligar a los operadores de NSS a pagar por dos actualizaciones criptográficas: primero de RSA / Diffie-Hellman a ECC y luego desde ECC hasta criptografía resistente a algoritmos cuánticos. Además, también insinúan otras razones, diciendo que la NSA ha llegado a apreciar que algunos de estos sistemas heredados estarán disponibles por mucho más tiempo de lo que habína planeado y que la comunidad externa parece estar cambiando un poco hacia el uso de otras curvas elípticas.
En julio de 2018, el RFC 8423 la NSA reemplazó la Suite B por la Suite CNSA.

## Ventajas

Respecto a la Suite A mejora el rendimiento, elimina los flujos de trabajo engorrosos y estrictos requisitos de manejo, permiten interoperabilidad y soporta dispositivos móviles disponibles comercialmente, todo ello a un menor coste. Suite‐B representó, en su momento, la criptografía comercial disponible más fuerte, más segura y más eficiente

## Algoritmos

La Suite B está formada por el subconjunto de los algoritmos criptográficos aprobados por el NIST siguientes:
* Algoritmo de cifrado simétrico: Advanced Encryption Standard (AES) - FIPS 197, con tanaño de clave 128 bits (para hasta SECRET) o 256 bits (para hasta TOP SECRET) usados con Modo Galois/Counter (GCM).
* Algoritmo de firma digital: Elliptic-Curve Digital Signature Algorithm (ECDSA) - FIPS 186-2, con ECC 128 bits de seguridad usando P-256 (hasta nivel SECRET) o con 192 bits de seguridad usando P-384 (hasta nivel TOP SECRET).
* Establecimiento de claves: Elliptic-Curve Diffie-Hellman (ECDH) o Elliptic Curve MQV (ECMVQ) - NIST Special Publication 800-56, con 256-bit prime mod. (hasta nivel SECRET) o con 384-bit prime modulus (hasta nivel TOP SECRET). En 2008 ECMVQ fue eliminado debido a sus debilidades y por ciertas restricciones de patentes.
* Función hash criptográfica: SHA-2 - FIPS 180-2, SHA-256 (hasta nivel SECRET) y SHA-384 (hasta nivel TOP SECRET)
Inicialmente ECDH y ECDSA eran los únicos algoritmos de clave pública de la lista. Posteriormente se habilitó el uso de RSA, DH y DSA con un módulo de 2048 bits para hasta el nivel SECRET, manteniendo ECDH y ECDSA como los únicos para nivel TOP SECRET. El CNSSP 15 se refirió a RSA, DH y DSA como algoritmos heredados y requirió que su uso se suspendiera antes del 1 de octubre de 2015 para a partir de entonces confiar exclusivamente en algoritmos ECC para criptosistema de clave pública.

## Protocolos

Distintos protocolos de Internet se han adaptado para usar Suite B. Por ejemplo:
* IPsec: IETF RFC 4869 Suite B Cryptography for IPsec, que fue sustituido por IETF RFC 6379 Suite B Cryptographic Suites for IPsec
* TLS: IETF RFC 5246 The Transport Layer Security (TLS) Protocol Version 1.2 y IETF RFC 5430 Suite B Cipher Suites for TLS, el cual fue sustituido por IETF RFC 6460 Suite B Profile for Transport Layer Security (TLS).
* SSH: IETF RFC 5647 “AES Galois Counter Mode for the Secure Shell Transport Layer Protocol”
* S/MIME: IETF RFC 5008 "Suite B in Secure/Multipurpose Internet Mail Extensions (S/MIME)", que fue sustituido por IETF RFC 6318.