The three ways WPA, WPA2 and WPA3 encrypt Wi-Fi data. Encrypt your own message with each one, using the real algorithms, then play attacker: flip a bit and see which receiver notices, and why an old TKIP network can shut itself down.
Once a device has joined and finished the 4-way handshake, every data frame is encrypted and integrity-checked with a temporal key (TK) shared by that device and the AP. How that is done depends on the cipher suite:
TKIP (WPA, 2003) was a stop-gap that could run on WEP-era hardware through a firmware update. It keeps WEP's RC4 cipher but adds a fresh key for every packet, a packet counter and the Michael integrity check. CCMP (WPA2, 2004) is a clean design built on AES; it is what routers call "AES". GCMP is also AES, in Galois/Counter Mode: faster in hardware at multi-gigabit rates, with a longer 128-bit integrity check. It's used by WPA3-Enterprise 192-bit mode and supported by Wi-Fi 7 devices.
The same data frame protected by each cipher. Boxes aren't to scale; hover or tap one for details.
The 8-byte security header of the frame built in section 2, byte by byte. It carries the packet number in the clear so the receiver can rebuild the per-packet key or nonce and reject replays.
Everything below is computed in your browser with the real algorithms (AES through your browser's Web Crypto; RC4, TKIP key mixing and Michael written out in full). The keys are demo keys, not taken from any real network, and the addresses are made up.
An attacker captures the frame from section 2, changes it, and sends it on to the receiver. The attacker doesn't know the keys. Each receiver below runs its real checks on the changed frame.
Since 802.11n (Wi-Fi 4), the high-throughput rates may only be used with CCMP or GCMP. A device that connects with TKIP (or WEP) is held to the old 802.11a/g rates, 54 Mbps at most. Pick a client:
| WEP | TKIP | CCMP ("AES") | GCMP | |
|---|---|---|---|---|
| Introduced | 1997, the original IEEE 802.11 (40-bit key); 104-bit keys soon after | 2003, Wi-Fi Alliance WPA; in IEEE 802.11i (2004) | 2004, IEEE 802.11i; Wi-Fi Alliance WPA2 | 2012, IEEE 802.11ad (GCMP-128); GCMP-256 in 802.11ac (2013) |
| Called in settings | WEP, "64-bit" or "128-bit" key, Open or Shared Key authentication | TKIP, WPA, "WPA/WPA2 mixed" or "TKIP+AES" | AES, WPA2, WPA3-Personal | GCMP-256, WPA3-Enterprise 192-bit; supported by Wi-Fi 7 devices |
| Cipher | RC4 stream cipher; each packet's key is a 24-bit IV (sent in the clear) plus the shared 40- or 104-bit key, sold as "64-bit" and "128-bit" | RC4 stream cipher (from WEP), 128-bit per-packet key | AES-128, counter mode | AES-128 or AES-256, counter mode |
| Integrity check | CRC-32 ICV only, 32 bits and no key: after changing the data, anyone can recompute it | Michael, 64 bits (weak: roughly 20 bits of real strength), plus WEP's CRC-32 ICV | AES CBC-MAC, 64 bits | GHASH (GMAC), 128 bits |
| What the check covers | Data only | Data plus destination, source and priority | Data plus most of the MAC header (addresses, frame type, QoS TID) | Same as CCMP |
| Keys per packet | The same shared key for every packet and every client; only the 24-bit IV changes, so IVs repeat after a few thousand packets on a busy network | New RC4 key for every packet (key mixing), to avoid WEP's weaknesses | One key; a unique nonce per packet from the packet number | Same as CCMP |
| Replay protection | None | 48-bit TSC | 48-bit PN | 48-bit PN |
| Overhead per frame | 8 bytes (4 IV + 4 ICV) | 20 bytes (8 header + 8 MIC + 4 ICV) | 16 bytes (8 header + 8 MIC) | 24 bytes (8 header + 16 MIC) |
| Fastest data rate | 54 Mbps (802.11a/b/g rates only) | 54 Mbps (802.11a/g rates only) | All rates | All rates; easy to run in parallel in hardware |
| Known attacks | Fluhrer–Mantin–Shamir (2001), KoreK (2004) and PTW (2007): the key is recovered from tens of thousands of captured packets in about a minute; forged and replayed frames are accepted | Beck–Tews (2008) and later: decrypt short packets and inject a few frames; RC4 biases | None practical against the cipher | None practical against the cipher |
| Status | Obsolete: removed from IEEE 802.11 except as the base TKIP is built on (802.11-2024, 12.3.2.1); not allowed in WPA, WPA2 or WPA3 | Deprecated in IEEE 802.11-2012 and marked obsolete in 802.11-2024 (12.2.1); not allowed in WPA3 or on 6 GHz | Mandatory in WPA2 and WPA3 | Optional in WPA3; required for WPA3-Enterprise 192-bit |