MAC-I

Message Authentication Code for Integrity

Security →
Introduced in Rel-8 Also in: Radio Access Network

MAC-I is a Message Authentication Code used in 3GPP networks to provide integrity protection and data origin authentication for signaling messages and some user data, ensuring they are unaltered and from an authorized source.

Category
Security
Introduced
Rel-8
Where
Security
Also touches
1 segments
Specifications
6 specs
MAC-I Description Purpose Related Classification Detected Changes Specifications

Description

MAC-I (Message Authentication Code for Integrity) is a cryptographic checksum appended to protocol data units (PDUs) in 3GPP radio access and core network protocols to guarantee their integrity. Unlike MAC-A, which is used for initial authentication, MAC-I is employed for ongoing integrity protection of signaling messages after security contexts are established. It is generated using a dedicated integrity key (IK), a freshness parameter (COUNT), a direction bit, the message itself, and a bearer identity. The most commonly referenced algorithms for its computation are the 128-EEA/128-EIA suites defined for LTE and NR, such as SNOW 3G, AES, and ZUC.

In the protocol stack, MAC-I is primarily associated with the Radio Resource Control (RRC) and Non-Access Stratum (NAS) signaling layers. For example, in LTE (TS 36.323), the PDCP (Packet Data Convergence Protocol) layer is responsible for integrity protection and verification of RRC messages using MAC-I. The transmitting entity (UE or eNodeB) calculates the MAC-I over the RRC PDU and includes it in the packet. The receiving entity independently recalculates the MAC-I using the same inputs and keys. If the calculated value matches the received MAC-I, the message is considered intact and authentic. A mismatch triggers a security failure, typically leading to the release of the radio connection.

The process involves a stateful counter (COUNT) to prevent replay attacks, ensuring that even identical messages sent at different times yield different MAC-I values. The direction bit distinguishes between uplink and downlink traffic, preventing reflection attacks. Architecturally, the integrity key (IK) used for MAC-I is derived during the AKA procedure from the root key K. In EPS, IK is part of the Kasme derivation; in 5GS, it is derived from the KAMF. This creates a cryptographically separated key hierarchy where compromise of traffic keys does not affect authentication keys.

MAC-I's role extends beyond RRC. In the core network, integrity protection for NAS messages between the UE and the MME (in EPS) or AMF (in 5GS) also utilizes a MAC-I mechanism, though the specific algorithm and key may differ (using KNASint). It is a mandatory security feature for all control plane signaling in modern 3GPP networks, forming a vital defense against tampering, message injection, and replay attacks on the air interface and within the network trust boundaries.

Purpose & Motivation

MAC-I was introduced to address the critical need for integrity and origin authentication of control signaling in packet-switched mobile networks. Earlier circuit-switched systems like GSM provided limited signaling protection, primarily focused on radio interface ciphering, leaving control channels vulnerable to manipulation. As networks evolved towards all-IP architectures with LTE and 5G, the risk of attackers modifying or forging signaling messages (e.g., handover commands, bearer setup requests, or paging messages) to disrupt service, cause denial-of-service, or redirect traffic became a paramount concern.

Its creation was motivated by the requirement for a robust, standardized integrity protection mechanism that could be applied hop-by-hop (e.g., over the Uu air interface) and end-to-end (e.g., for NAS). The problem it solves is ensuring that critical network control commands cannot be tampered with without detection. Without MAC-I, an attacker could alter a handover command to force a UE to camp on a malicious cell, or modify a paging message to track a user's location.

Furthermore, MAC-I enables the secure establishment of other security contexts. For instance, the integrity-protected RRC signaling is used to securely transport the ciphering algorithm configuration and the encrypted user plane security mode command. It forms an essential layer in the defense-in-depth strategy for 3GPP networks, working in conjunction with ciphering for confidentiality (using ENC algorithms) and AKA for initial authentication. Its stateful design with counters also addresses the limitation of static message authentication codes by providing replay protection, a crucial feature for time-sensitive mobility procedures.

Classification

Part ofNAS
Specific typesNIAX-MAC

Release Timeline

Detected Changes Across Releases

from 3GPP Change Requests

Specific changes extracted from the „Change history“ tables of 3GPP specifications (1 CRs across 1 releases). Complements the general historical overview above with the evidence-based evolution of this function.

Rel-15 1 change

In Release 15, the specification work included a clarification on the ciphering of the MAC-I. This change provided updated technical details and procedural guidance for the integrity protection function.

  • Clarification on ciphering MAC-I TS 38.323CR0024

Explore further

Broader topics and technologies where MAC-I plays a role.

Defining Specifications

3GPP specifications that define or reference MAC-I, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TR 21.905 vj00 3GPP Technical Terms and Definitions Rel-19
TS 31.102 vj40 USIM Application Specification Rel-19
TS 33.105 vj00 3G Security: Cryptographic Algorithm Requirements Rel-19
TS 33.401 vj10 EPS Security Architecture Rel-19
TS 36.323 vj00 PDCP Protocol Specification Rel-19
TS 38.323 vj00 Packet Data Convergence Protocol (PDCP) Rel-19
Patrick Zandl

About the author: Patrick Zandl (b. 1974)

Telecommunications specialist, technology journalist (founder of the Mobil server), and developer who has been running since 2025 — the largest Czech-language resource on AI-assisted programming. Formerly Chief Wizard Architect at Prusa3D and head of development for Turris at CZ.NIC; currently a consultant and instructor on AI implementation in companies.