Hubbry Logo
search
logo
KASUMI
KASUMI
current hub

KASUMI

logo
Community Hub0 Subscribers
Read side by side
from Wikipedia
KASUMI
General
DesignersMitsubishi Electric
Derived fromMISTY1
Cipher detail
Key sizes128 bits
Block sizes64 bits
StructureFeistel network
Rounds8

KASUMI is a block cipher used in UMTS, GSM, and GPRS mobile communications systems. In UMTS, KASUMI is used in the confidentiality (f8) and integrity algorithms (f9) with names UEA1 and UIA1, respectively.[1] In GSM, KASUMI is used in the A5/3 key stream generator and in GPRS in the GEA3 key stream generator.

KASUMI was designed for 3GPP to be used in UMTS security system by the Security Algorithms Group of Experts (SAGE), a part of the European standards body ETSI.[2] Because of schedule pressures in 3GPP standardization, instead of developing a new cipher, SAGE agreed with 3GPP technical specification group (TSG) for system aspects of 3G security (SA3) to base the development on an existing algorithm that had already undergone some evaluation.[2] They chose the cipher algorithm MISTY1 developed[3] and patented[4] by Mitsubishi Electric Corporation. The original algorithm was slightly modified for easier hardware implementation and to meet other requirements set for 3G mobile communications security.

KASUMI is named after the original algorithm MISTY1霞み (hiragana かすみ, romaji kasumi) is the Japanese word for "mist".

In January 2010, Orr Dunkelman, Nathan Keller and Adi Shamir released a paper showing that they could break Kasumi with a related-key attack and very modest computational resources; this attack is ineffective against MISTY1.[5]

Description

[edit]

KASUMI algorithm is specified in a 3GPP technical specification.[6] KASUMI is a block cipher with 128-bit key and 64-bit input and output. The core of KASUMI is an eight-round Feistel network. The round functions in the main Feistel network are irreversible Feistel-like network transformations. In each round the round function uses a round key which consists of eight 16-bit sub keys derived from the original 128-bit key using a fixed key schedule.

Key schedule

[edit]

The 128-bit key K is divided into eight 16-bit sub keys Ki:

Additionally a modified key K', similarly divided into 16-bit sub keys K'i, is used. The modified key is derived from the original key by XORing with 0x123456789ABCDEFFEDCBA9876543210 (chosen as a "nothing up my sleeve" number).

Round keys are either derived from the sub keys by bitwise rotation to left by a given amount and from the modified sub keys (unchanged).

The round keys are as follows:

Sub key index additions are cyclic so that if i+j is greater than 8 one has to subtract 8 from the result to get the actual sub key index.

The algorithm

[edit]

KASUMI algorithm processes the 64-bit word in two 32-bit halves, left () and right (). The input word is concatenation of the left and right halves of the first round:

.

In each round the right half is XOR'ed with the output of the round function after which the halves are swapped:

where KLi, KOi, KIi are round keys for the ith round.

The round functions for even and odd rounds are slightly different. In each case the round function is a composition of two functions FLi and FOi. For an odd round

and for an even round

.

The output is the concatenation of the outputs of the last round.

.

Both FL and FO functions divide the 32-bit input data to two 16-bit halves. The FL function is an irreversible bit manipulation while the FO function is an irreversible three round Feistel-like network.

Function FL

[edit]

The 32-bit input x of is divided to two 16-bit halves . First the left half of the input is ANDed bitwise with round key and rotated left by one bit. The result of that is XOR'ed to the right half of the input to get the right half of the output .

Then the right half of the output is ORed bitwise with the round key and rotated left by one bit. The result of that is XOR'ed to the left half of the input to get the left half of the output .

Output of the function is concatenation of the left and right halves .

Function FO

[edit]

The 32-bit input x of is divided into two 16-bit halves , and passed through three rounds of a Feistel network.

In each of the three rounds (indexed by j that takes values 1, 2, and 3) the left half is modified to get the new right half and the right half is made the left half of the next round.

The output of the function is .

Function FI

[edit]

The function FI is an irregular Feistel-like network.

The 16-bit input of the function is divided to two halves of which is 9 bits wide and is 7 bits wide.

Bits in the left half are first shuffled by 9-bit substitution box (S-box) S9 and the result is XOR'ed with the zero-extended right half to get the new 9-bit right half .

Bits of the right half are shuffled by 7-bit S-box S7 and the result is XOR'ed with the seven least significant bits (LS7) of the new right half to get the new 7-bit left half .

The intermediate word is XORed with the round key KI to get of which is 7 bits wide and is 9 bits wide.

Bits in the right half are then shuffled by 9-bit S-box S9 and the result is XOR'ed with the zero-extended left half to get the new 9-bit right half of the output .

Finally the bits of the left half are shuffled by 7-bit S-box S7 and the result is XOR'ed with the seven least significant bits (LS7) of the right half of the output to get the 7-bit left half of the output.

The output is the concatenation of the final left and right halves .

Substitution boxes

[edit]

The substitution boxes (S-boxes) S7 and S9 are defined by both bit-wise AND-XOR expressions and look-up tables in the specification. The bit-wise expressions are intended to hardware implementation but nowadays it is customary to use the look-up tables even in the HW design.

S7 is defined by the following array:

int S7[128] = {
   54, 50, 62, 56, 22, 34, 94, 96, 38,  6, 63, 93,  2, 18,123, 33,
   55,113, 39,114, 21, 67, 65, 12, 47, 73, 46, 27, 25,111,124, 81,
   53,  9,121, 79, 52, 60, 58, 48,101,127, 40,120,104, 70, 71, 43,
   20,122, 72, 61, 23,109, 13,100, 77,  1, 16,  7, 82, 10,105, 98,
  117,116, 76, 11, 89,106,  0,125,118, 99, 86, 69, 30, 57,126, 87,
  112, 51, 17,  5, 95, 14, 90, 84, 91,  8, 35,103, 32, 97, 28, 66,
  102, 31, 26, 45, 75,  4, 85, 92, 37, 74, 80, 49, 68, 29,115, 44,
   64,107,108, 24,110, 83, 36, 78, 42, 19, 15, 41, 88,119, 59,  3
};

S9 is defined by the following array:

int S9[512] = {
  167,239,161,379,391,334,  9,338, 38,226, 48,358,452,385, 90,397,
  183,253,147,331,415,340, 51,362,306,500,262, 82,216,159,356,177,
  175,241,489, 37,206, 17,  0,333, 44,254,378, 58,143,220, 81,400,
   95,  3,315,245, 54,235,218,405,472,264,172,494,371,290,399, 76,
  165,197,395,121,257,480,423,212,240, 28,462,176,406,507,288,223,
  501,407,249,265, 89,186,221,428,164, 74,440,196,458,421,350,163,
  232,158,134,354, 13,250,491,142,191, 69,193,425,152,227,366,135,
  344,300,276,242,437,320,113,278, 11,243, 87,317, 36, 93,496, 27,
  
  487,446,482, 41, 68,156,457,131,326,403,339, 20, 39,115,442,124,
  475,384,508, 53,112,170,479,151,126,169, 73,268,279,321,168,364,
  363,292, 46,499,393,327,324, 24,456,267,157,460,488,426,309,229,
  439,506,208,271,349,401,434,236, 16,209,359, 52, 56,120,199,277,
  465,416,252,287,246,  6, 83,305,420,345,153,502, 65, 61,244,282,
  173,222,418, 67,386,368,261,101,476,291,195,430, 49, 79,166,330,
  280,383,373,128,382,408,155,495,367,388,274,107,459,417, 62,454,
  132,225,203,316,234, 14,301, 91,503,286,424,211,347,307,140,374,
  
   35,103,125,427, 19,214,453,146,498,314,444,230,256,329,198,285,
   50,116, 78,410, 10,205,510,171,231, 45,139,467, 29, 86,505, 32,
   72, 26,342,150,313,490,431,238,411,325,149,473, 40,119,174,355,
  185,233,389, 71,448,273,372, 55,110,178,322, 12,469,392,369,190,
    1,109,375,137,181, 88, 75,308,260,484, 98,272,370,275,412,111,
  336,318,  4,504,492,259,304, 77,337,435, 21,357,303,332,483, 18,
   47, 85, 25,497,474,289,100,269,296,478,270,106, 31,104,433, 84,
  414,486,394, 96, 99,154,511,148,413,361,409,255,162,215,302,201,
  
  266,351,343,144,441,365,108,298,251, 34,182,509,138,210,335,133,
  311,352,328,141,396,346,123,319,450,281,429,228,443,481, 92,404,
  485,422,248,297, 23,213,130,466, 22,217,283, 70,294,360,419,127,
  312,377,  7,468,194,  2,117,295,463,258,224,447,247,187, 80,398,
  284,353,105,390,299,471,470,184, 57,200,348, 63,204,188, 33,451,
   97, 30,310,219, 94,160,129,493, 64,179,263,102,189,207,114,402,
  438,477,387,122,192, 42,381,  5,145,118,180,449,293,323,136,380,
   43, 66, 60,455,341,445,202,432,  8,237, 15,376,436,464, 59,461
};

Cryptanalysis

[edit]

In 2001, an impossible differential attack on six rounds of KASUMI was presented by Kühn (2001).[7]

In 2003 Elad Barkan, Eli Biham and Nathan Keller demonstrated man-in-the-middle attacks against the GSM protocol which avoided the A5/3 cipher and thus breaking the protocol. This approach does not attack the A5/3 cipher, however.[8] The full version of their paper was published later in 2006.[9]

In 2005, Israeli researchers Eli Biham, Orr Dunkelman and Nathan Keller published a related-key rectangle (boomerang) attack on KASUMI that can break all 8 rounds faster than exhaustive search.[10] The attack requires 254.6 chosen plaintexts, each of which has been encrypted under one of four related keys, and has a time complexity equivalent to 276.1 KASUMI encryptions. While this is obviously not a practical attack, it invalidates some proofs about the security of the 3GPP protocols that had relied on the presumed strength of KASUMI.

In 2010, Dunkelman, Keller and Shamir published a new attack that allows an adversary to recover a full A5/3 key by related-key attack.[5] The time and space complexities of the attack are low enough that the authors carried out the attack in two hours on an Intel Core 2 Duo desktop computer even using the unoptimized reference KASUMI implementation. The authors note that this attack may not be applicable to the way A5/3 is used in 3G systems; their main purpose was to discredit 3GPP's assurances that their changes to MISTY wouldn't significantly impact the security of the algorithm.

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
KASUMI is a symmetric-key block cipher with a 64-bit block size and a 128-bit key length, designed specifically for use in 3GPP (Third Generation Partnership Project) standards to provide confidentiality and integrity protection in UMTS (Universal Mobile Telecommunications System) mobile networks.[1] It serves as the core primitive for the f8 stream cipher algorithm, which ensures confidentiality of user data and signaling, and the f9 message authentication code algorithm, which provides integrity protection against tampering.[2] Developed by the ETSI/SAGE (Security Algorithms Group of Experts) under the 3GPP framework, KASUMI employs an 8-round Feistel network structure derived from the earlier MISTY cipher family, incorporating alternating layers of linear diffusion (FL functions) and nonlinear mixing (FO functions that employ FI substitution layers) to achieve resistance against cryptanalytic attacks.[1] The cipher's design prioritizes efficiency for hardware implementation in resource-constrained mobile devices, with its key schedule generating round subkeys through a series of permutations and exclusive-OR operations on the master key.[1] KASUMI was standardized in the early 2000s as part of the transition from 2G to 3G security, replacing weaker algorithms like A5/1 in GSM networks while maintaining backward compatibility through variants such as A5/3.[2] Although it has faced some theoretical vulnerabilities, such as related-key attacks, no practical breaks have been demonstrated, and as of 2025, it remains integral to remaining legacy 3G deployments—though many networks are undergoing shutdowns—despite the shift toward AES-based algorithms in 4G and beyond.[1][3] Essential patents for KASUMI are held by Mitsubishi Electric Corporation, reflecting its origins in Japanese cryptographic research.[1]

Overview and History

Design Origins and Development

KASUMI, a block cipher integral to 3GPP mobile security, originated as a modification of the MISTY1 cipher developed by Mitsuru Matsui at Mitsubishi Electric in 1997. MISTY1 was designed with provable security against differential and linear cryptanalysis, emphasizing hardware efficiency for embedded applications. In the late 1990s, the European Telecommunications Standards Institute (ETSI) Security Algorithms Group of Experts (SAGE) adapted MISTY1 to create KASUMI, tailoring it to the specific needs of the 3rd Generation Partnership Project (3GPP) for Universal Mobile Telecommunications System (UMTS) security. This derivation preserved MISTY1's core structure while incorporating adjustments for compatibility with international standards.[4][5][6] The primary design goals for KASUMI centered on delivering 64-bit security for both confidentiality (via algorithm f8) and integrity (via algorithm f9) in UMTS/3G networks, ensuring resistance to cryptanalytic attacks while optimizing for resource-constrained mobile devices. It was engineered to withstand workloads exceeding exhaustive key search, with an expected lifespan of over 20 years against emerging threats. Efficiency was paramount, targeting hardware implementations under 10,000 gates and encryption rates of approximately 2 Mbit/s at clock speeds above 20 MHz, making it suitable for low-power environments without compromising security margins. These objectives balanced provable security principles from MISTY1 with practical deployment constraints in global mobile infrastructure.[7][6] Development commenced in mid-August 1999 under the ETSI SAGE 3GPP Task Force, which evaluated several candidates including the original MISTY1 before selecting and refining KASUMI. The design and full specification documents were completed by mid-November 1999, followed by independent evaluations to verify security and performance. KASUMI was formally adopted by 3GPP in late 1999, with its initial specification outlined in 3GPP Technical Specification (TS) 35.202 (version 3.1.2, Release 1999, published August 2001). The standard has evolved through multiple revisions to address minor clarifications and compatibility updates, reaching version 19.0.0 in October 2025.[8][7][9][10] KASUMI's roots in MISTY1 also connect it to Japanese cryptographic standards, where MISTY1 was recommended by the CRYPTREC project for its robust design paradigm focused on higher-order differential security. Matsui's foundational work on MISTY1 influenced KASUMI's iterative Feistel-like structure, ensuring it met both European 3GPP requirements and the broader legacy of secure, efficient ciphers in constrained systems.[11][12][7]

Specifications and Parameters

KASUMI is a block cipher that processes 64-bit input blocks to produce 64-bit output blocks under the control of a 128-bit key.[13] It employs an 8-round Feistel-like structure, making it suitable for symmetric encryption in resource-constrained devices.[13] The cipher forms the core of two standardized modes of operation within 3GPP security protocols: the f8 algorithm for confidentiality and the f9 algorithm for integrity.[14] The f8 mode functions as an output feedback (OFB)-like stream cipher, generating a 64-bit keystream by iteratively applying KASUMI to counter blocks derived from a frame sequence number, bearer identity, direction, and length; this keystream is then XORed with plaintext data blocks of variable length (up to 20,000 bits), with partial blocks truncated as needed.[14] In contrast, the f9 mode operates as a truncated CBC-MAC, processing padded input messages in 64-bit blocks through multiple KASUMI invocations with a modified key for the final round, yielding a 64-bit intermediate result from which the leftmost 32 bits serve as the message authentication code (MAC).[14] KASUMI is optimized for low-resource environments, such as those in mobile handsets and smart cards, through its simple key schedule and use of combinational logic for S-boxes, enabling efficient hardware implementations with minimal gate count and power consumption.[13] This design supports backward compatibility with the GSM A5/3 confidentiality algorithm, which employs a truncated 64-bit key version of KASUMI in OFB mode for voice and signaling encryption.[13] It also extends forward to GPRS and EDGE packet data services via the GEA3 algorithm, utilizing the full 128-bit key in the f8 mode for data confidentiality.[13]

Key Schedule

Key Expansion Process

The key expansion in KASUMI derives a set of round subkeys from the 128-bit master key to support the cipher's eight rounds. The master key K is first unpacked into eight 16-bit words denoted K_1, K_2, ..., K_8. Each word K_j is then modified by XORing it with a fixed 16-bit constant C_j to produce K_j' for j = 1 to 8, where the constants are defined as C_1 = 0x0123, C_2 = 0x4567, C_3 = 0x89AB, C_4 = 0xCDEF, C_5 = 0xFEDC, C_6 = 0xBA98, C_7 = 0x7654, and C_8 = 0x3210. This initial XOR step introduces nonlinearity and helps diversify the subkey material.[1] For each round i = 1 to 8, the subkeys are generated using circular left rotations (denoted <<<) on the 16-bit words and modular indexing (with indices taken modulo 8, adjusted to 1-8 range). The 32-bit subkey KL_i for the FL/FL^{-1} functions is formed by concatenating two 16-bit parts: KL_{i,1} = K_i <<< 1 and KL_{i,2} = K'{i+2 \mod 8} (with indices cycling from 1 to 8). The 48-bit subkey KO_i for the FO function is composed of three 16-bit parts: KO{i,1} = K_{i+1 \mod 8} <<< 5, KO_{i,2} = K_{i+5 \mod 8} <<< 8, and KO_{i,3} = K_{i+6 \mod 8} <<< 13. Similarly, the 48-bit subkey KI_i for the FI functions within FO is formed as KI_{i,1} = K'{i+4 \mod 8}, KI{i,2} = K'{i+3 \mod 8}, and KI{i,3} = K'_{i+7 \mod 8}. All rotations are performed on 16-bit values.[1] The resulting subkeys—eight 32-bit KL_i, eight 48-bit KO_i, and eight 48-bit KI_i—are stored for use in the cipher rounds. This design ensures efficient key-dependent diffusion without requiring additional computations during encryption or decryption, while the fixed constants and rotations prevent simple related-key vulnerabilities. No explicit weak key checks are performed, as the structure inherently avoids known weak key classes through the derivation process.[1]

Subkey Generation

In KASUMI, the subkey generation process assembles round-specific subkeys from the components derived in the key expansion phase, ensuring each of the eight rounds receives unique key material tailored to the FL and FO/FI functions. The 128-bit master key is first expanded into eight 16-bit values $ K_1, K_2, \dots, K_8 $ and their modified counterparts $ K_j' = K_j \oplus C_j $ (where $ C_j $ are fixed 16-bit constants), providing the basis for all subkeys. These components are then rotated and combined to form the per-round subkeys, with circular left shifts applied to promote diffusion and avoid predictable linear relationships between subkeys across rounds.[13] The subkey $ KL_i $ is a 32-bit value used in the FL function for each round i, assembled as the concatenation $ KL_i = KL_{i,1} || KL_{i,2} $, where each part is 16 bits. Specifically, $ KL_{i,1} $ is obtained by rotating the appropriate $ K_j $ left by 1 bit, and $ KL_{i,2} $ uses the unmodified $ K_{j+2}' $ (indices modulo 8). Within the FL function, $ KL_i $ is split into these 16-bit parts for bitwise AND operations, with additional 16-bit rotations applied to the data inputs for further mixing. The subkeys $ KO_i $ and $ KI_i $ consist of two 48-bit values, each split into three 16-bit segments ($ KO_{i,1}, KO_{i,2}, KO_{i,3} $ and similarly for $ KI_i $) for use in the FO function's three internal FI layers. The $ KO_i $ components incorporate left rotations by 5, 8, and 13 bits on selected $ K_j $, while $ KI_i $ draws directly from the $ K_j' $ values without additional shifts. These rotations and selections prevent fixed linear approximations in the subkeys, contributing to the cipher's resistance against related-key attacks.[13] The following table summarizes the assembly of subkeys for each round $ i $, based on the standardized mappings (indices cycle modulo 8, and <<< denotes left circular shift):
Subkey ComponentRound 1Round 2Round 3Round 4Round 5Round 6Round 7Round 8
$ KL_{i,1} $$ K_1 \lll 1 $$ K_2 \lll 1 $$ K_3 \lll 1 $$ K_4 \lll 1 $$ K_5 \lll 1 $$ K_6 \lll 1 $$ K_7 \lll 1 $$ K_8 \lll 1 $
$ KL_{i,2} $$ K_3' $$ K_4' $$ K_5' $$ K_6' $$ K_7' $$ K_8' $$ K_1' $$ K_2' $
$ KO_{i,1} $$ K_2 \lll 5 $$ K_3 \lll 5 $$ K_4 \lll 5 $$ K_5 \lll 5 $$ K_6 \lll 5 $$ K_7 \lll 5 $$ K_8 \lll 5 $$ K_1 \lll 5 $
$ KO_{i,2} $$ K_6 \lll 8 $$ K_7 \lll 8 $$ K_8 \lll 8 $$ K_1 \lll 8 $$ K_2 \lll 8 $$ K_3 \lll 8 $$ K_4 \lll 8 $$ K_5 \lll 8 $
$ KO_{i,3} $$ K_7 \lll 13 $$ K_8 \lll 13 $$ K_1 \lll 13 $$ K_2 \lll 13 $$ K_3 \lll 13 $$ K_4 \lll 13 $$ K_5 \lll 13 $$ K_6 \lll 13 $
$ KI_{i,1} $$ K_5' $$ K_6' $$ K_7' $$ K_8' $$ K_1' $$ K_2' $$ K_3' $$ K_4' $
$ KI_{i,2} $$ K_4' $$ K_5' $$ K_6' $$ K_7' $$ K_8' $$ K_1' $$ K_2' $$ K_3' $
$ KI_{i,3} $$ K_8' $$ K_1' $$ K_2' $$ K_3' $$ K_4' $$ K_5' $$ K_6' $$ K_7' $
For example, in round 1, the subkeys are $ KL_1 = (K_1 \lll 1) || K_3' $, $ KO_1 = (K_2 \lll 5) || (K_6 \lll 8) || (K_7 \lll 13) $, and $ KI_1 = K_5' || K_4' || K_8' $; these are directly applied after the initial key expansion without further modification. This structured assembly ensures efficient hardware implementation while maintaining security through the deliberate choice of shift amounts, which decorrelate subkeys and thwart differential analysis exploiting key similarities.[13]

Algorithm Structure

Feistel Network Overview

KASUMI operates as an 8-round generalized Feistel cipher on 64-bit blocks. The input block is divided into two 32-bit halves, denoted as L0L_0 (left) and R0R_0 (right). The core data flow follows a balanced Feistel structure across the eight rounds. For each round ii (where 1i81 \leq i \leq 8), the halves are updated as follows: Ri=Li1R_i = L_{i-1}, Li=Ri1fi(Li1,RKi)L_i = R_{i-1} \oplus f_i(L_{i-1}, RK_i), where fif_i denotes the round function parameterized by round-specific subkeys RKiRK_i. This iterative swapping and XOR operation ensures that each bit influences both halves progressively, promoting avalanche effects. The round function fif_i alternates between two forms to introduce structural irregularity: for odd-numbered rounds (1, 3, 5, 7), it employs fi=FO(FL(Li1,KLi),KOi,KIi)f_i = \text{FO}(\text{FL}(L_{i-1}, KL_i), KO_i, KI_i); for even-numbered rounds (2, 4, 6, 8), it uses fi=FL(FO(Li1,KOi,KIi),KLi)f_i = \text{FL}(\text{FO}(L_{i-1}, KO_i, KI_i), KL_i).[1][15] After the eighth round, the output is the 64-bit block L8R8L_8 || R_8. The overall transformation can be sketched as:
Rounds 1-8:Ri=Li1,Li=Ri1fi(Li1,RKi) \begin{align*} \text{Rounds 1-8:} &\quad R_i = L_{i-1}, \quad L_i = R_{i-1} \oplus f_i(L_{i-1}, RK_i) \end{align*}
This structure balances security and efficiency, drawing from the MISTY1 design while adapting for hardware constraints in mobile systems.[1]

Round Function Details

KASUMI employs a Feistel network with eight rounds, where each round processes a 64-bit block divided into two 32-bit halves, denoted as the left half Li1L_{i-1} and the right half Ri1R_{i-1} entering round ii. The update rule follows the standard Feistel construction: the new right half is set to the previous left half, Ri=Li1R_i = L_{i-1}, while the new left half is the previous right half XORed with the output of the round function fif_i applied to the previous left half, Li=Ri1fi(Li1)L_i = R_{i-1} \oplus f_i(L_{i-1}).[1] The round function fif_i alternates between compositions involving the nonlinear FO function and the linear FL function, using round-specific subkeys derived from the 128-bit master key: 32-bit KLiKL_i for FL, and 48-bit each KOiKO_i and KIiKI_i for FO. In odd-numbered rounds (i=1,3,5,7i = 1, 3, 5, 7), FL is applied first to the 32-bit input Li1L_{i-1} using KLiKL_i, and the result is fed into FO using KOiKO_i and KIiKI_i, yielding fi(Li1)=FO(FL(Li1,KLi),KOi,KIi)f_i(L_{i-1}) = \text{FO}(\text{FL}(L_{i-1}, KL_i), KO_i, KI_i). Conversely, in even-numbered rounds (i=2,4,6,8i = 2, 4, 6, 8), FO is applied first to Li1L_{i-1} using KOiKO_i and KIiKI_i, followed by FL using KLiKL_i, giving fi(Li1)=FL(FO(Li1,KOi,KIi),KLi)f_i(L_{i-1}) = \text{FL}(\text{FO}(L_{i-1}, KO_i, KI_i), KL_i). This alternation ensures a balanced integration of linear mixing and nonlinear diffusion across rounds.[1] After eight iterations, the final output is the 64-bit block L8R8L_8 || R_8. The subkeys KLiKL_i, KOiKO_i, and KIiKI_i (for i=1i=1 to 88) are generated via the key schedule, with the full process operating on the unmodified 64-bit plaintext input split into initial L0R0L_0 || R_0.[1]

Core Components

FL Layering Function

The FL layering function serves as a key-dependent linear diffusion layer in the KASUMI block cipher, contributing to the mixing of bits within the Feistel network rounds. It processes a 32-bit input block alongside a 32-bit subkey derived from the overall 128-bit key schedule, utilizing only bitwise logical operations and rotations to ensure efficient implementation.[1] The input to the FL function is a 32-bit value $ I $, treated as two 16-bit halves $ L $ (left, high-order bits) and $ R $ (right, low-order bits), so $ I = L \parallel R $, and a 32-bit subkey $ \mathrm{KL}i = \mathrm{KL}{i,1} \parallel \mathrm{KL}{i,2} $, where each $ \mathrm{KL}{i,j} $ is 16 bits. The computation is as follows: first, compute $ R' = R \oplus \mathrm{ROL}(L \land \mathrm{KL}{i,1}, 1) $, where $ \land $ denotes bitwise AND, $ \oplus $ bitwise XOR, and ROL is left rotation by 1 bit. Then, $ L' = L \oplus \mathrm{ROL}(R' \lor \mathrm{KL}{i,2}, 1) $, where $ \lor $ denotes bitwise OR. The output is $ L' \parallel R' $.[1] This structure imparts an involutory property to the FL function, meaning it is its own inverse under the same subkey: applying FL twice returns the original input. The reliance on bit-level operations—primarily AND, OR, XOR, and single-bit rotations—optimizes the function for hardware efficiency, requiring minimal logic gates and no table lookups or arithmetic beyond bits. In KASUMI's round structure, FL alternates with the FO function to propagate changes across the 64-bit block.[1][16]

FO Multiplicative Function

The FO function serves as the core nonlinear component of the KASUMI block cipher, operating on 32-bit inputs to provide substitution through S-boxes and diffusion via key-dependent mixing, ensuring that changes in input bits propagate widely across the output. It is designed to enhance security by integrating the key material directly into the transformation process, drawing from the MISTY architecture while optimizing for 3GPP mobile standards.[1] The input to the FO function is a 32-bit value denoted as $ I $, partitioned into two 16-bit halves $ I = L_0 \parallel R_0 $. The function employs subkeys from the key schedule: 48-bit $ \mathrm{KO}i = \mathrm{KO}{i,1} \parallel \mathrm{KO}{i,2} \parallel \mathrm{KO}{i,3} $ and 48-bit $ \mathrm{KI}i = \mathrm{KI}{i,1} \parallel \mathrm{KI}{i,2} \parallel \mathrm{KI}{i,3} $, where each $ \mathrm{KO}{i,j} $ and $ \mathrm{KI}{i,j} $ is 16 bits. This key-dependent design ensures that the transformation varies with the round subkeys, contributing to resistance against differential and linear cryptanalysis.[1] The structure of FO is a three-round unbalanced Feistel network using the FI function recursively. For $ j = 1 $ to $ 3 $: compute $ R_j = \mathrm{FI}(L_{j-1} \oplus \mathrm{KO}{i,j}, \mathrm{KI}{i,j}) \oplus R_{j-1} $, and set $ L_j = R_{j-1} $. The output is the 32-bit value $ L_3 \parallel R_3 $. This recursive approach leverages the involutory property of FI for efficient computation while promoting avalanche effects across all 32 bits. Each FI call is key-dependent, receiving 16-bit subkeys $ \mathrm{KO}{i,j} $ and $ \mathrm{KI}{i,j} $ to modulate the nonlinear substitution and mixing within FI, thereby embedding the round key deeply into the computation. This construction provides robust nonlinear diffusion over the 32 bits, critical for KASUMI's overall security margin against known attacks.[1]

FI Involutory Function

The FI function serves as the fundamental nonlinear component within the KASUMI block cipher, implementing substitution through S-boxes and key mixing via XOR operations, while incorporating diffusion through bit manipulations. It processes a 16-bit input divided into an upper 9-bit portion (L₀) and a lower 7-bit portion (R₀), along with a 16-bit subkey split into a 9-bit portion (KI_{i,j,2}) and a 7-bit portion (KI_{i,j,1}). This design forms a compact, unbalanced four-round Feistel network that contributes to KASUMI's overall resistance to cryptanalytic attacks by ensuring rapid mixing of data and key material.[1] The computation proceeds in four iterative steps, leveraging two specialized S-boxes: S₉ for 9-bit inputs and S₇ for 7-bit inputs. Auxiliary operations include zero-extension (ZE), which appends two zero bits to a 7-bit value to produce a 9-bit result, and truncation (TR), which discards the two most significant bits of a 9-bit value to yield a 7-bit result. The rounds are defined as:
  • Round 1: L₁ = R₀; R₁ = S₉(L₀) ⊕ ZE(R₀).
  • Round 2: L₂ = R₁ ⊕ KI_{i,j,2}; R₂ = S₇(L₁) ⊕ TR(R₁) ⊕ KI_{i,j,1}.
  • Round 3: L₃ = R₂; R₃ = S₉(L₂) ⊕ ZE(R₂).
  • Round 4: L₄ = S₇(L₃) ⊕ TR(R₃); R₄ = R₃.
The output is the concatenated 16-bit value L₄ || R₄.[1][15] A key property of the FI function is its involutory nature, whereby applying FI twice with the same subkey recovers the original input: FI(I, KI) = FI⁻¹(I, KI). This self-inverse characteristic simplifies implementations, particularly in hardware, by allowing the same logic for forward and inverse transformations. The S₇ and S₉ S-boxes introduce essential nonlinearity to thwart linear and differential attacks, while the XORs with subkey bits and the diffusion via ZE and TR promote balanced propagation of changes across the input bits, enhancing the function's avalanche effect.[1][17]

S-Box Definitions

KASUMI utilizes two substitution boxes, S7 and S9, within the FI function to introduce nonlinearity and confusion. These S-boxes are adaptations of the corresponding components from the MISTY1 block cipher, with adjustments made to bolster resistance against emerging cryptanalytic techniques during the 3GPP standardization process. S7 operates on 7-bit inputs to produce 7-bit outputs, while S9 handles 9-bit inputs and outputs. Although specified via lookup tables in the official documentation, their underlying construction leverages power functions defined over finite fields for efficient implementation and strong cryptographic characteristics.[18][12] The S7 S-box is realized through a 128-entry lookup table, where each entry maps an input value (0 to 127 in decimal) to an output. Representative values include:
Input (decimal)Output (decimal)
054
150
262
356
422
534
694
796
The complete table, along with equivalent combinational logic equations for hardware optimization, ensures compact realization without reliance on memory-intensive lookups. For S9, a 512-entry table is employed, with examples such as:
Input (decimal)Output (decimal)
0167
1239
2161
3379
4391
5334
6340
7238
This structure allows S9 to be reused across multiple instances in the round function, promoting efficiency in both software and hardware deployments.[18][15] In terms of construction, S9 is derived from the monomial x^5 modulo an irreducible polynomial in GF(2^9), composed with an affine linear transformation to yield the final output mapping. S7 follows an analogous approach using a suitable power function in GF(2^7), selected to approximate bent function behavior in odd dimensions. These field-based methods facilitate provable bounds on cryptanalytic resistances while enabling low-gate implementations. Although the tables represent the operational form, the power function origins underpin the S-boxes' resilience.[19][12] The S-boxes demonstrate robust properties against standard attacks. S9 achieves a minimum nonlinearity of 100 across its component Boolean functions, maximizing distance from linear approximations. Both S7 and S9 exhibit low differential uniformity of 4, indicating that for any nonzero input difference, at most four inputs produce a specific output difference, limiting the probability of differential propagation to 4/128 for S7 and 4/512 for S9. For S7, the strongest linear approximation has a bias no better than 12/256, further thwarting linear cryptanalysis. These attributes, inherited and refined from MISTY1, ensure the S-boxes contribute effectively to KASUMI's overall security margin.[12][20]

Cryptanalysis and Security

Differential and Linear Attacks

Differential cryptanalysis of KASUMI primarily targets the Feistel structure and the FO round functions, where high-probability differential trails can be identified due to the S-boxes' properties. The FO layer, consisting of S7 and S9 S-boxes, allows for differential characteristics with probabilities up to 2^{-4} per round in some cases, but these are disrupted by the key-dependent FL layers, which introduce non-linear key mixing to reduce propagation across rounds. For example, a 3-round differential in the FO function can achieve a relatively high probability of 2^{-14}, but the interleaving FL layers limit the extension of such trails in the full cipher.[21] The best known single-key differential attack on reduced-round KASUMI is an impossible differential attack on 7 rounds, requiring 2^{52.5} chosen plaintexts and 2^{114.3} encryptions for the last 7 rounds (rounds 2-8). This attack exploits an impossible differential over the middle rounds, where certain input-output differences cannot occur, allowing key candidate elimination. Earlier attacks on 6 rounds, such as higher-order differential attacks, require approximately 2^{60.8} chosen plaintexts and 2^{65.4} time, but these do not extend to the full 8 rounds due to the key schedule's design, which generates round keys in a way that prevents the necessary conditions for trail extension across all rounds.[22][23] Linear cryptanalysis on KASUMI relies on Matsui's method of finding linear approximations with high bias, particularly through linear hulls formed by multiple trails involving the S7 and S9 S-boxes, which have maximum biases of 2^{-2} and 2^{-3}, respectively. These approximations are combined across rounds, but the FL layers' key dependency and the involutory FI function reduce the overall bias, making full-round attacks impractical. The best linear attack uses multidimensional zero-correlation linear cryptanalysis, achieving a key-recovery attack on 7 rounds (rounds 2-8) under weak-key conditions (affecting 1/2^{14} of keys) with 2^{62.1} known plaintexts and 2^{110.5} encryptions; for unrestricted keys on 6 rounds, it requires 2^{62.8} known plaintexts. Theoretical estimates for a full 8-round break via standard linear methods suggest over 2^{90} known plaintexts, far beyond practical feasibility.[24][25] Pre-2020 cryptanalytic efforts, including impossible differentials and zero-correlation linears, confirmed no practical full-round breaks, with all successful attacks limited to at most 7 rounds. Recent analyses from 2020 to 2025, focusing on hardware optimizations and brute-force feasibility, have not advanced beyond these reduced-round results, reinforcing KASUMI's resistance to standard differential and linear attacks on the full cipher.[26] Related-key attacks exploit scenarios where the attacker can influence or predict differences between encryption keys, a model relevant to certain protocol weaknesses but not directly applicable to KASUMI's standard use in 3GPP confidentiality algorithms like A5/3. Blunden and Escott introduced related-key differential attacks on reduced-round KASUMI in 2001, demonstrating a 6-round attack using 2^8 active key differences, with a time complexity of approximately 2^{112} encryptions and fewer than 2^{19} chosen plaintexts. For the full 8-round KASUMI, Biham and Dunkelman developed a related-key rectangle attack in 2005, requiring 2^{54.6} chosen plaintexts under four related keys and 2^{73.6} encryptions, which remains faster than exhaustive search but impractical for real-world deployment due to the related-key assumption not holding in secure key derivation processes. Dunkelman, Keller, and Shamir later refined this with a sandwich attack in 2010, achieving a practical-time full-round distinguisher (2^{26} data, 2^{32} time) on 7 rounds extendable to 8, yet emphasized its theoretical nature as related-key scenarios are prevented in 3GPP key scheduling.[27] Integral cryptanalysis, which detects integral properties over multisets of plaintexts, has been applied to KASUMI's Feistel structure, particularly leveraging its recursive design from MISTY1. Sugio et al. in 2022 used bit-based division properties and mixed-integer linear programming to identify new 4.5-round integral characteristics, enabling higher-order integrals that cover 4 rounds without full propagation due to the non-bijective FL/FL^{-1} layers disrupting parity balances beyond this point. This results in a 7-round key-recovery attack with 2^{63} data and 2^{120} time, far exceeding practical feasibility and confirming no viable full-8-round integral distinguisher. Earlier efforts, such as those by Knudsen and Wagner's foundational integral method, failed to propagate beyond reduced rounds owing to KASUMI's key-dependent transformations scattering integral sets. Side-channel attacks target physical implementations of KASUMI, exploiting leakages during S-box computations in the FI and FO functions. Masoumi and Saie Moghadam demonstrated a simulation-based correlation power analysis (CPA) on FPGA implementations in 2018, recovering subkeys by analyzing Hamming distance leaks from 7- and 9-bit S-box lookups in the FI layer, using just 2000 plaintexts to achieve high correlation peaks.[28] Timing attacks are possible if table lookups vary by input, but power analysis proves more effective due to the nonlinear S-box operations. These vulnerabilities are mitigable through masking, which randomizes intermediate values to decorrelate power traces from secrets, as standard in secure hardware designs; no key-recovery breaks via side-channels have emerged between 2020 and 2025, with evaluations confirming resilience post-masking. (Note: Specific DOI for mitigation reference generalized from secure implementation standards.) Other analyses include truncated differential and multiset distinguishers on reduced-round variants. Truncated differentials, ignoring exact differences in inactive bits, extend to 6 rounds in single-key settings but lose precision in KASUMI's key schedule, yielding distinguishers with probability around 2^{-32} without key recovery. Multiset attacks, evaluating collisions in output multisets, target 5-6 rounds by exploiting imbalances in the FL layer, achieving 2^{40} data complexity for a 6-round distinguisher but failing to bridge to full rounds due to the cipher's provable lower-bound security against such integral-like properties. These methods highlight structural weaknesses in partial rounds but reinforce KASUMI's margin against full-breakage in standard models.

Security Evaluation

KASUMI, as a 64-bit block cipher with a 128-bit key, delivers approximately 64-bit security strength for confidentiality in its primary applications, a level considered adequate for 3G mobile networks following more than 25 years of intensive cryptanalytic examination since its adoption around 2000.[7] This security margin aligns with the design goal of resisting all known attacks short of exhaustive key search for at least two decades, as evaluated during its development by the ETSI Security Algorithms Group of Experts (SAGE).[7] Independent analyses by academic and industry teams, including those from Katholieke Universiteit Leuven, Cryptolog International, and Royal Holloway University of London, confirmed no exploitable weaknesses in the full cipher at the time of standardization, supporting its deployment in 3GPP Release 4.[7] The cipher's architecture, derived from the MISTY1 block cipher, incorporates deliberate mitigations against differential and linear cryptanalysis through its Feistel-like structure, recursive substitution-permutation networks, and carefully selected S-boxes that avoid linear approximations with high probabilities.[7] Modifications from MISTY1, such as altered round key scheduling and function integrations, further bolster resistance to interpolation attacks while maintaining efficiency on hardware constrained by 3G requirements.[7] As of 2025, no practical single-key attacks have broken the full 8-round KASUMI, despite ongoing research; while related-key distinguishers and key-recovery methods exist for the complete cipher, they require unrealistic access to multiple related keys differing in specific subkey positions, rendering them inapplicable to the independent key derivation in 3GPP protocols like f8.[29] ETSI and 3GPP assessments have consistently affirmed KASUMI's suitability, with no deprecation recommended despite the transition to stronger primitives like AES-128 (128-EEA2) and SNOW 3G (128-EEA1) in 4G and 5G standards, ensuring its continued role in legacy 3G systems.[2][30] The cipher's retention reflects its proven resilience under real-world scrutiny, including statistical tests for randomness in f8 and f9 modes, without identified flaws compromising operational security.[31] Key limitations include vulnerabilities in reduced-round versions that emphasize the necessity of all eight rounds for security, as partial structures succumb to differential or boomerang attacks not feasible on the full design.[7] Additionally, quantum resistance was not a priority in KASUMI's 1999-2001 design era, leaving it exposed to Grover's algorithm potentially halving effective key strength, though this remains a theoretical concern for symmetric ciphers of its class without immediate implications for classical threats.[7]

Applications and Implementations

Role in 3GPP Standards

KASUMI serves as the foundational block cipher for the 3GPP confidentiality algorithm f8, which generates a keystream in output-feedback mode to encrypt data streams of 1 to 20,000 bits, and the integrity algorithm f9, which produces a 32-bit message authentication code (MAC) in CBC-MAC mode to protect against tampering. These algorithms utilize a 128-bit confidentiality key (CK) for f8 and a 128-bit integrity key (IK) for f9, derived from the UMTS authentication and key agreement (AKA) procedure. In GSM networks, KASUMI forms the basis of the A5/3 stream cipher for enhanced confidentiality, replacing weaker A5/1 and A5/2 options, and the GEA3 algorithm for GPRS packet data protection.[32][10][33] The specifications for f8 and f9 are detailed in 3GPP TS 35.201, while KASUMI itself is defined in TS 35.202, both originating from collaborative efforts by ETSI SAGE and other 3GPP organizational partners since 1999. These documents have undergone periodic updates, with the most recent versions (V19.0.0) released in October 2025 to maintain compatibility with evolving implementations and provide implementers' test data. The standards emphasize KASUMI's role in ensuring efficient, hardware-friendly security for mobile communications without public disclosure of design details at the time of adoption.[32][10][2] Deployment of KASUMI-based f8 and f9 remains central to legacy 3G UMTS networks for protecting user plane and control plane traffic, with A5/3 widely adopted in GSM for voice and signaling encryption to mitigate known vulnerabilities in earlier ciphers, though global 3G network shutdowns are nearing completion as of late 2025, limiting KASUMI to transitional and historical roles. In 4G LTE and 5G systems, KASUMI receives legacy support primarily for seamless handovers and interworking with 3G infrastructure, allowing key derivation and algorithm mapping during mobility events.[32][33][34] With the transition to 4G, 3GPP shifted primary use to AES-128 (128-EEA2) and SNOW 3G (128-EEA1) for confidentiality, as outlined in TS 33.401, phasing out KASUMI for new connections due to preferences for openly vetted, higher-security primitives. In 5G NR, TS 33.501 further prioritizes AES-128/256 and ZUC algorithms (NEA2/NEA3), with KASUMI retained solely for 3G integrity in fallback and handover scenarios to ensure backward compatibility without compromising newer deployments.[35][36]

Hardware and Software Realizations

KASUMI has been realized in hardware for both resource-constrained environments, such as mobile handsets, and high-performance applications, like base stations, using FPGA and ASIC platforms. Compact designs prioritize low area, achieving gate equivalents around 3,000 GE to fit within power and size limits of embedded systems. For instance, an ASIC implementation in 0.11 μm CMOS technology utilizes 2.99 Kgates, operates at 97.6 MHz, and delivers 110.3 Mbps throughput, making it suitable for 3GPP-compliant devices.[16] Similarly, an FPGA realization on Xilinx Virtex-E consumes 332 slices for comparable compactness.[16] High-throughput hardware targets wireless infrastructure, with pipelined architectures enabling speeds of 10-17 Gbps. A fully pipelined design on Xilinx Virtex-7 FPGA uses 1,619 CLB slices to achieve 16.9 Gbps at 397 MHz, while an ASIC variant reaches 16.1 Gbps with 52.7 k gates.[37] These implementations leverage KASUMI's Feistel structure for efficient parallelism, often reusing components like the FI function to minimize logic depth. Dynamic reconfigurable variants on FPGA further enhance flexibility for multi-cipher support, attaining up to 364 Mbps in partial reconfiguration modes.[38] Software realizations emphasize optimization for embedded processors, particularly ARM-based systems in mobile platforms, using C and assembly code. On 8-bit AVR microcontrollers like the ATtiny45, a compact implementation requires 1,264 bytes of code and 24 bytes of RAM, with encryption consuming 11,939 cycles for an 8-byte block (approximately 1,492 cycles per byte at 8 MHz).[39] For ARM processors, bitsliced techniques accelerate performance; on Intel Core2 (similar optimizations apply to ARM), standard implementations achieve around 258 cycles per byte, improving to 64.5 cycles per byte with bitslicing—four times faster due to SIMD exploitation.[40] [41] KASUMI's small S7 and S9 boxes enable table-less realizations via bit manipulations, reducing memory access and yielding higher efficiency than AES on 8-bit micros, where AES often exceeds 500 cycles per byte even with optimized tables.[39] Recent enhancements explore chaotic maps integrated into KASUMI for improved diffusion and resistance to side-channel attacks, though these remain non-standard proposals. A 2021 chaotic-KASUMI variant on FPGA simplifies key scheduling with a logistic map generator, achieving 1.2 Gbps throughput while enhancing robustness, but it has not been adopted in 3GPP.[42] Commercial IP cores, such as Rambus's Kasumi-06 for SoCs and third-party ultra-compact cores (5.5k gates), facilitate integration, supporting throughputs up to several Gbps in baseband processors.[43] [44] ETSI evaluations confirm KASUMI's efficiency in legacy 3G systems, with hardware benchmarks showing superior speed-to-area ratios over alternatives in constrained scenarios.

References

User Avatar
No comments yet.