CMMC Level 2 Implementation Guide July 25, 2026 · 16 min read

CMMC Encryption Requirements: A Plain-English Guide to FIPS 140-2

Encryption is one of the most technically misunderstood areas of CMMC Level 2. The short version: you need FIPS 140-2 validated cryptography protecting any system that touches CUI, in transit and at rest. The longer version involves understanding what "FIPS-validated" actually means, which algorithms are approved versus prohibited, how to configure Windows and Microsoft 365 to meet the standard, and what an assessor will actually look for when they audit your cryptographic controls. This guide covers all six encryption-related CMMC practices with real implementation steps.

Why FIPS 140-2 Is Not Just About Choosing AES-256

A common misconception is that FIPS 140-2 compliance means using AES-256 encryption. That is part of it, but the standard actually requires that the cryptographic module implementing the algorithm be validated by NIST's Cryptographic Module Validation Program (CMVP). The same AES-256 algorithm running in an unvalidated custom implementation does not satisfy CMMC practice 3.13.11.

What this means practically: Windows' built-in cryptographic modules (the Microsoft implementations of AES, SHA, RSA, and other algorithms in the CNG and FIPS-validated drivers) are validated. BitLocker is built on these validated modules. TLS in Windows and IIS, using the Schannel provider, is validated. Third-party VPN clients and encryption tools may or may not be validated. Always check the vendor's FIPS 140-2 validation certificate, which should be searchable in NIST's CMVP database.

FIPS mode vs. FIPS compliance: Enabling "FIPS mode" via Windows Group Policy is not the same as having FIPS-validated encryption. FIPS mode in Windows restricts the OS to using only FIPS-validated algorithms in its cryptographic calls, which is the right control to enforce. But a third-party application that ships its own OpenSSL or BoringSSL library may bypass Windows' cryptographic layer entirely and use its own unvalidated implementation. Applications that bundle their own crypto need their own FIPS validation certificate.

Practice 3.13.8 - Encrypt CUI During Transmission

3.13.8

Any CUI leaving a system boundary must be encrypted in transit. TLS 1.0 and 1.1 are not acceptable.

This practice requires implementing cryptographic mechanisms to prevent unauthorized disclosure of CUI during transmission unless otherwise protected by alternative physical safeguards. In modern network environments, this means TLS, full stop.

TLS version requirements:

Windows Server / IIS implementation: Disable legacy TLS versions via Group Policy or registry settings. The recommended approach is to use the IIS Crypto tool from Nartac Software to enumerate and configure cipher suites and TLS versions, or to deploy the Microsoft Security Baseline which includes these settings. Verify using SSL Labs' server test or a tool like testssl.sh.

Microsoft 365 implementation: Microsoft 365 uses TLS 1.2 or 1.3 by default for all service-to-service communication. However, client connections may still negotiate TLS 1.0/1.1 if the client OS allows it. Enforce TLS 1.2 minimum on all client machines via Group Policy: Computer Configuration › Administrative Templates › Network › SSL Configuration Settings.

VPN and remote access: Remote access VPN connections must use TLS or IPsec with FIPS-approved algorithms. IKEv2 with AES-256 and SHA-256 is the current standard for IPsec VPNs. Document the cryptographic configuration of your VPN solution in your encryption policy.

Common mistake: Assuming that because your web server uses HTTPS, TLS is properly configured. Many web servers still support TLS 1.0/1.1 as fallback options. Run a TLS audit against every external-facing service and every internal web application that handles CUI.

Practice 3.13.10 - Establish and Manage Cryptographic Keys

3.13.10

Keys that protect CUI must be generated, stored, rotated, and destroyed according to a documented process.

This practice requires establishing and managing cryptographic keys when cryptography is employed within organizational systems. Key management is often the weakest link in an otherwise solid encryption program. You can encrypt everything correctly and still be vulnerable if your encryption keys are stored alongside the data they protect or never rotated.

Key management lifecycle requirements:

Microsoft environment implementation: Use Azure Key Vault or Microsoft Purview to manage cryptographic keys for Azure-hosted workloads. For on-premises environments, Active Directory Certificate Services (AD CS) provides key management for internal PKI. BitLocker recovery keys stored in Entra ID satisfy the key escrow requirement.

Common mistake: Having no documented key management procedure. An assessor reviewing this practice will ask: who generates keys, where are they stored, when were they last rotated, and what happens when an employee with key access leaves? Organizations that treat keys as an afterthought will fail this practice even if their encryption is technically correct.

Practice 3.13.11 - Employ FIPS-Validated Cryptography

3.13.11

The most commonly cited encryption practice in CMMC assessments. The algorithm must be FIPS-validated, not just strong.

This practice requires employing FIPS-validated cryptography when used to protect the confidentiality of CUI. This is the core cryptographic requirement that underpins all other encryption practices.

Approved algorithms and minimum key lengths:

Explicitly prohibited algorithms:

Enabling FIPS mode in Windows: Set the Group Policy "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing" under Computer Configuration › Windows Settings › Security Settings › Local Policies › Security Options. This policy restricts Windows cryptographic APIs to FIPS-validated algorithms and prevents applications from using non-compliant cipher suites through the Windows crypto layer.

Important caveat: Some applications break when FIPS mode is enabled in Windows because they rely on MD5 or SHA-1 internally. Test FIPS mode in a non-production environment before deploying. Applications that fail under FIPS mode are using non-compliant crypto and either need to be updated or evaluated for whether they handle CUI (if they don't touch CUI, they may be out of scope).

Common mistake: Relying on application-layer encryption without verifying the underlying cryptographic module. An application that claims to use AES-256 may be using an embedded, unvalidated library. Check for a FIPS 140-2 or FIPS 140-3 validation certificate. NIST maintains the CMVP database at csrc.nist.gov/projects/cryptographic-module-validation-program.

Practice 3.13.16 - Encrypt CUI at Rest

3.13.16

CUI sitting on a disk that isn't encrypted is a breach waiting for a stolen laptop.

This practice requires protecting the confidentiality of CUI at rest. Encryption at rest protects data when the system is powered off, when storage media is lost or stolen, and during decommissioning when drives are removed from service.

Endpoint implementation (Windows):

Endpoint implementation (macOS): Enable FileVault with AES-128 or AES-256 encryption. While FileVault uses XTS-AES-128 by default, the underlying Apple Secure Enclave and crypto library are FIPS 140-2 validated on modern Macs. Manage FileVault via Intune MDM profiles, and escrow recovery keys to Intune or a documented secure location.

Server implementation: BitLocker for Windows Server volumes containing CUI. For Linux, LUKS (Linux Unified Key Setup) with AES-256 is commonly used; verify the underlying OpenSSL or kernel crypto implementation has FIPS validation. Cloud-hosted storage (Azure Blob, SharePoint, Exchange) is encrypted at rest by Microsoft using BitLocker on the underlying infrastructure, satisfying the server-side requirement for those services.

Database encryption: Databases containing CUI should use Transparent Data Encryption (TDE) in addition to disk-level encryption. SQL Server TDE is available in SQL Server 2008 and later. Azure SQL Database enables TDE by default.

Common mistake: Encrypting the OS drive but leaving data drives unencrypted. BitLocker encrypts the drive it is applied to. A laptop with BitLocker on C: but a 2TB external drive containing CUI backups is not compliant. All drives, volumes, and removable media containing CUI must be encrypted.

Practice 3.5.10 - Cryptographically Protect Passwords

3.5.10

Passwords stored in plaintext or with weak hashing are a critical vulnerability. Store them right.

This practice requires protecting passwords using cryptographic mechanisms. This applies to any system that stores passwords for accounts used to access CUI: Active Directory, web applications, VPN concentrators, network devices, and any other credential store in scope.

Acceptable password storage approaches:

Active Directory: Windows Server 2008 and later stores passwords using AES-256 Kerberos encryption when legacy LAN Manager hash storage is disabled. Ensure the following GPO settings are configured: Network security: Do not store LAN Manager hash value on next password change (enabled), and Network security: LAN Manager authentication level set to "Send NTLMv2 response only. Refuse LM and NTLM."

What is explicitly not acceptable: MD5 password hashes (trivially crackable with rainbow tables), SHA-1 without salting, unsalted SHA-256, or any plaintext credential storage. These are automatic findings in any serious security assessment.

Common mistake: Assuming Active Directory handles this correctly by default. Default Windows environments may still have LAN Manager hash storage enabled for backwards compatibility. Verify this is disabled via Group Policy and that legacy NTLMv1 authentication is blocked across the domain.

Practice 3.1.19 - Encrypt CUI on Mobile Devices

3.1.19

A phone with CUI in email or files is an encrypted endpoint requirement, not an exception.

This practice requires encrypting CUI on mobile devices and mobile computing platforms when such devices are identified as in scope. If employees access CUI via mobile email clients, cloud storage apps, or business applications on personal or corporate phones, those devices are in scope.

iOS implementation: iOS uses AES-256 hardware encryption by default with a secure enclave. The device must have a passcode set to activate data protection (the encryption key is derived in part from the passcode). Manage via Intune MDM: enforce a minimum passcode complexity, enable encryption reporting, and configure remote wipe capability. The Apple cryptographic modules used in iOS are FIPS 140-2 validated (check Apple's Security Certifications page for current validation certificates).

Android implementation: Android has required full-device encryption since Android 6.0, and file-based encryption is the default since Android 7.0. Modern Android devices use AES-256 or AES-128. For corporate-managed Android devices, enforce encryption compliance via Intune or another MDM: require a device passcode, verify encryption is enabled in compliance policies, and block non-compliant devices from accessing corporate resources via Conditional Access.

Scoping consideration: If your organization has a clear policy that CUI is never accessed on mobile devices, and you have technical controls enforcing this (Conditional Access blocking mobile platforms from CUI systems, DLP policies preventing CUI downloads to mobile), mobile devices may be arguable out of scope. However, this requires both a documented policy and a technical enforcement mechanism, not just a policy alone.

Common mistake: Allowing employees to access work email on personal phones without MDM enrollment. Personal phones are not subject to your Group Policy or MDM compliance policies. If CUI flows into a mailbox that is accessed on personal devices, those devices are in scope and must be encrypted and managed. The solution is either MDM enrollment of personal devices or blocking mobile access to CUI systems entirely.

Quick Reference: Approved vs. Prohibited

Algorithm / ProtocolUseStatus
AES-256 (FIPS-validated module)Symmetric encryptionAPPROVED
AES-128 (FIPS-validated module)Symmetric encryptionAPPROVED
RSA-2048+ / ECDSA P-256+Asymmetric / key exchangeAPPROVED
SHA-256, SHA-384, SHA-512HashingAPPROVED
TLS 1.2, TLS 1.3Encryption in transitAPPROVED
bcrypt, PBKDF2, Argon2id, scryptPassword storageAPPROVED
DES / 3DESSymmetric encryptionPROHIBITED
RC4Stream cipherPROHIBITED
MD5 (as security hash)HashingPROHIBITED
SHA-1 (for signatures / certs)HashingPROHIBITED
TLS 1.0 / TLS 1.1 / SSLEncryption in transitPROHIBITED
RSA < 2048 bitsAsymmetricPROHIBITED

What Assessors Actually Look For

Encryption practices are among the most evidence-rich areas of a CMMC assessment. Assessors are not going to take your word for it. They will examine configurations, run tests, and ask for documentation. Here is what to prepare:

Pro tip: Run the Microsoft Security Compliance Toolkit baselines against your environment before an assessment. The STIG and CIS baselines include checks for FIPS mode, TLS version settings, and BitLocker configuration. These produce a gap report that maps directly to what an assessor will review.

How Encryption Connects to the Rest of Your CMMC Program

Encryption practices sit at the intersection of multiple CMMC domains. System and Communications Protection (SC) provides the framework for in-transit encryption and key management. Identification and Authentication (IA) uses cryptographic protections for passwords (3.5.10). Access Control (AC) includes the mobile device encryption requirement (3.1.19). A weak encryption program therefore creates vulnerabilities that ripple across your entire CMMC compliance posture.

Additionally, encryption is a precondition for many other security capabilities. You cannot claim meaningful access controls on CUI if the data is unencrypted on the disk. You cannot claim secure remote access if the VPN uses deprecated cipher suites. Get encryption right first, and a significant portion of your risk posture improves automatically.

Need a Ready-to-Use Encryption Policy?

Our CMMC Level 2 Encryption and Cryptography Policy template covers all six practices with formal policy language, an approved algorithm table, a prohibited algorithm list, key management lifecycle requirements, and a rotation schedule. Built for defense contractors who need documentation that holds up in an assessment.

Download the Encryption Policy Template →

Frequently Asked Questions

FIPS 140-2 is the federal standard for validating cryptographic modules. CMMC practice 3.13.11 requires that any cryptography used to protect CUI must use FIPS-validated modules. The algorithm matters, but so does the implementation. Windows BitLocker, TLS via Schannel, and Microsoft cryptographic libraries are FIPS-validated. Third-party tools that bundle their own crypto libraries may not be. Always verify validation status in NIST's CMVP database at csrc.nist.gov/projects/cryptographic-module-validation-program.
Microsoft 365 uses FIPS 140-2 validated cryptography for data in transit and at rest on Microsoft's infrastructure. However, you still need to ensure TLS 1.0 and 1.1 are disabled on your tenant and client endpoints, endpoint drives are BitLocker-encrypted, and email encryption is configured appropriately. Microsoft's compliance documentation on the Service Trust Portal confirms FIPS validation for core M365 services.
Practice 3.13.16 requires FIPS 140-2 validated encryption for CUI at rest. For Windows endpoints, BitLocker with AES-256 enabled and FIPS mode enforced via Group Policy. For servers, BitLocker on Windows Server or equivalent for Linux. CUI in SharePoint Online, OneDrive, or Exchange is encrypted at rest by Microsoft using BitLocker, satisfying the server-side requirement for those services.
CMMC requires TLS 1.2 or 1.3 with FIPS-validated algorithms. Acceptable TLS 1.2 cipher suites include TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 and TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. TLS 1.3's built-in suites are all acceptable. Cipher suites using RC4, DES, 3DES, or MD5 must be disabled. Enabling FIPS mode in Windows Group Policy automatically restricts available cipher suites to compliant options.
Practice 3.5.10 requires cryptographically protected password storage. Acceptable algorithms are bcrypt, PBKDF2 with SHA-256/512 at high iteration counts, Argon2id, or scrypt. MD5, SHA-1, and unsalted SHA-256 are not acceptable. In Active Directory, disable LAN Manager hash storage via Group Policy and enforce NTLMv2 minimum. For web applications, use a dedicated password hashing library implementing one of the above algorithms.

More Implementation Guides in This Series

🔒 Access Controls (AC) Read → 🔊 Identification & Authentication (IA) Read → 🛡 System & Comms Protection (SC) Read → 📊 Risk Assessment (RA) Read → 📄 Audit & Accountability (AU) Read → 🚨 Incident Response (IR) Read →
🔒

Get the Free CMMC Level 2 Practice Checklist

All 110 NIST SP 800-171 practices organized by domain - formatted for assessment prep. Free PDF, instant access.