KC

Ciphering Key

Security →
Introduced in Rel-8

KC is the 64-bit ciphering key derived from subscriber authentication and used with the A5 algorithm to encrypt data and signaling over the radio interface in GSM and early 3GPP systems.

Category
Security
Introduced
Rel-8
Where
User Equipment › SIM/USIM
Specifications
2 specs
KC Description Purpose Related Classification Specifications

Description

The Ciphering Key (KC) is a fundamental security element defined in 3GPP specifications, particularly in TS 31.102 (USIM application) and TS 31.113 (UICC security). It is a 64-bit symmetric key utilized exclusively by the A5 family of stream cipher algorithms (e.g., A5/1, A5/2, A5/3) to provide over-the-air encryption for the radio link between the Mobile Station (MS) and the Base Transceiver Station (BTS) in GSM and its evolutionary paths. Architecturally, KC resides within the security architecture of the Subscriber Identity Module (SIM) or Universal Subscriber Identity Module (USIM) on the UICC, and within the network's Authentication Centre (AuC) in the Home Location Register (HLR). It is never transmitted over the air; instead, it is generated independently by both the mobile device and the network using shared secret information.

The operational lifecycle of KC begins with subscriber authentication. When a mobile device attaches to the network, the AuC generates a random challenge (RAND) and, using the shared secret key Ki (unique to the subscriber's IMSI) and the A3 authentication algorithm, computes both a signed response (SRES) for verification and the ciphering key KC using the A8 key derivation algorithm. The RAND is sent to the mobile. The SIM/USIM, possessing the same Ki, performs identical computations to generate its own SRES (sent back for authentication) and the identical KC. Upon successful authentication, the network instructs the MS to commence ciphering using a specific A5 algorithm variant, and both parties use the locally stored KC to initialize the A5 cipher's keystream generator.

During a call or data session, the A5 algorithm uses KC as a seed to generate a pseudo-random keystream. This keystream is then XORed with the plaintext data (voice frames or signaling messages) to produce ciphertext for transmission over the Um radio interface. The process is symmetric: the receiver uses the same KC and algorithm to regenerate the identical keystream and decrypt the data. KC is typically refreshed for each new session or can be changed during a call via a ciphering mode update procedure to enhance security. Its role is confined to the radio access link; core network transport uses separate security mechanisms like IPsec. The management and storage of KC within the UICC are governed by strict security protocols to prevent extraction, forming a critical part of the system's trust anchor.

Purpose & Motivation

KC was created to solve the critical problem of eavesdropping on analog cellular radio communications, which were inherently insecure. Before digital encryption in GSM, anyone with a radio scanner could listen to calls. The introduction of KC and the A5 ciphers in the GSM standard was a landmark step in providing mandatory, baseline confidentiality for millions of cellular users. It addressed the growing privacy concerns as mobile telephony became widespread and the radio spectrum a shared, public medium.

The motivation stemmed from the need for a lightweight, efficient encryption mechanism that could operate within the severe computational and latency constraints of late-1980s mobile hardware. The design chose a 64-bit key length as a compromise between security strength and implementation feasibility. The system's elegance lies in its derivation from the existing authentication framework (using Ki and A3/A8), avoiding the need to transmit the key itself. This "generate-on-both-sides" model significantly reduced the key exposure risk compared to systems that might distribute session keys in the clear.

However, the historical context also includes its limitations. The initial A5/1 and A5/2 algorithms, and the 64-bit key length, were later found to be cryptographically weak against sophisticated attacks, reflecting the export control regulations and computational assumptions of its time. The evolution to 3G (UMTS) addressed these weaknesses by introducing a stronger, 128-bit Ciphering Key (CK) and new algorithms (e.g., KASUMI), but KC remained essential for backward compatibility in GSM and for roaming scenarios. Its specification in USIM documents (TS 31.102) ensures that modern UICCs can still support legacy GSM security when needed, highlighting its role in the long-term evolution and interoperability of cellular security.

Classification

Part ofAUC
Specific typesA5/1
Related approachesUSIM

Evolution Across Releases

Rel-8 Initial

Specified within the USIM application (TS 31.102) and UICC security (TS 31.113) frameworks for LTE/EPC. While LTE itself uses stronger EPS encryption keys (e.g., KeNB), KC's definition was maintained to ensure USIMs could support fallback to 2G GSM networks and for compatibility in CSFB scenarios, integrating legacy security into the new architecture.

Explore further

Broader topics and technologies where KC plays a role.

Defining Specifications

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

SpecificationTitleRelease
TS 31.102 vj40 USIM Application Specification Rel-19
TS 31.113 v1800 USAT Interpreter Byte Code Specification Rel-8
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.