KASUMI

Last updated
KASUMI
General
Designers Mitsubishi Electric
Derived from MISTY1
Cipher detail
Key sizes 128 bits
Block sizes 64 bits
Structure Feistel 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.

Contents

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

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

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

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

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

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

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

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:

intS7[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:

intS9[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

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

Related Research Articles

In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks. They are specified elementary components in the design of many cryptographic protocols and are widely used to encrypt large amounts of data, including in data exchange protocols. It uses blocks as an unvarying transformation.

Data Encryption Standard Early unclassified symmetric-key block cipher

The Data Encryption Standard is a symmetric-key algorithm for the encryption of digital data. Although its short key length of 56 bits makes it too insecure for modern applications, it has been highly influential in the advancement of cryptography.

Differential cryptanalysis is a general form of cryptanalysis applicable primarily to block ciphers, but also to stream ciphers and cryptographic hash functions. In the broadest sense, it is the study of how differences in information input can affect the resultant difference at the output. In the case of a block cipher, it refers to a set of techniques for tracing differences through the network of transformation, discovering where the cipher exhibits non-random behavior, and exploiting such properties to recover the secret key.

International Data Encryption Algorithm

In cryptography, the International Data Encryption Algorithm (IDEA), originally called Improved Proposed Encryption Standard (IPES), is a symmetric-key block cipher designed by James Massey of ETH Zurich and Xuejia Lai and was first described in 1991. The algorithm was intended as a replacement for the Data Encryption Standard (DES). IDEA is a minor revision of an earlier cipher Proposed Encryption Standard (PES).

The Mersenne Twister is a general-purpose pseudorandom number generator (PRNG) developed in 1997 by Makoto Matsumoto and Takuji Nishimura. Its name derives from the fact that its period length is chosen to be a Mersenne prime.

In cryptography, linear cryptanalysis is a general form of cryptanalysis based on finding affine approximations to the action of a cipher. Attacks have been developed for block ciphers and stream ciphers. Linear cryptanalysis is one of the two most widely used attacks on block ciphers; the other being differential cryptanalysis.

XOR swap algorithm

In computer programming, the exclusive or swap is an algorithm that uses the exclusive or bitwise operation to swap the values of two variables without using the temporary variable which is normally required.

In cryptography, a Feistel cipher is a symmetric structure used in the construction of block ciphers, named after the German-born physicist and cryptographer Horst Feistel, who did pioneering research while working for IBM; it is also commonly known as a Feistel network. A large proportion of block ciphers use the scheme, including the US Data Encryption Standard, the Soviet/Russian GOST and the more recent Blowfish and Twofish ciphers. In a Feistel cipher, encryption and decryption are very similar operations, and both consist of iteratively running a function called a "round function" a fixed number of times.

In cryptography, Lucifer was the name given to several of the earliest civilian block ciphers, developed by Horst Feistel and his colleagues at IBM. Lucifer was a direct precursor to the Data Encryption Standard. One version, alternatively named DTD-1, saw commercial use in the 1970s for electronic banking.

Serpent (cipher)

Serpent is a symmetric key block cipher that was a finalist in the Advanced Encryption Standard (AES) contest, where it was ranked second to Rijndael. Serpent was designed by Ross Anderson, Eli Biham, and Lars Knudsen.

DES-X Block cipher

In cryptography, DES-X is a variant on the DES symmetric-key block cipher intended to increase the complexity of a brute-force attack using a technique called key whitening.

In cryptography, Khufu and Khafre are two block ciphers designed by Ralph Merkle in 1989 while working at Xerox's Palo Alto Research Center. Along with Snefru, a cryptographic hash function, the ciphers were named after the Egyptian Pharaohs Khufu, Khafre and Sneferu.

In cryptography, NewDES is a symmetric key block cipher. It was created in 1984–1985 by Robert Scott as a potential DES replacement.

<span class="mw-page-title-main">Boomerang attack</span> Form of cryptanalysis

In cryptography, the boomerang attack is a method for the cryptanalysis of block ciphers based on differential cryptanalysis. The attack was published in 1999 by David Wagner, who used it to break the COCONUT98 cipher.

SM4 (cipher) Block cipher used in Chinese wireless standards

ShangMi 4 (SM4) is a block cipher used in the Chinese National Standard for Wireless LAN WAPI and also used with Transport Layer Security.

In cryptography, M8 is a block cipher designed by Hitachi in 1999. It is a modification of Hitachi's earlier M6 algorithm, designed for greater security and high performance in both hardware and 32-bit software implementations. M8 was registered by Hitachi in March 1999 as ISO/IEC 9979-0020.

Simon (cipher) Family of lightweight block ciphers

Simon is a family of lightweight block ciphers publicly released by the National Security Agency (NSA) in June 2013. Simon has been optimized for performance in hardware implementations, while its sister algorithm, Speck, has been optimized for software implementations.

The Lai–Massey scheme is a cryptographic structure used in the design of block ciphers. It is used in IDEA and IDEA NXT. The scheme was originally introduced by Xuejia Lai with the assistance of James L. Massey, hence the scheme's name, Lai-Massey.

Garbled circuit is a cryptographic protocol that enables two-party secure computation in which two mistrusting parties can jointly evaluate a function over their private inputs without the presence of a trusted third party. In the garbled circuit protocol, the function has to be described as a Boolean circuit.

LEA (cipher) Republic of Korea national standard block cipher

The Lightweight Encryption Algorithm is a 128-bit block cipher developed by South Korea in 2013 to provide confidentiality in high-speed environments such as big data and cloud computing, as well as lightweight environments such as IoT devices and mobile devices. LEA has three different key lengths: 128, 192, and 256 bits. LEA encrypts data about 1.5 to 2 times faster than AES, the most widely used block cipher in various software environments.

References

  1. "Draft Report of SA3 #38" (PDF). 3GPP. 2005.
  2. 1 2 "General Report on the Design, Speification and Evaluation of 3GPP Standard Confidentiality and Integrity Algorithms" (PDF). 3GPP. 2009.
  3. Matsui, Mitsuru; Tokita, Toshio (Dec 2000). "MISTY, KASUMI and Camellia Cipher Algorithm Development" (PDF). Mitsubishi Electric Advance. Mitsubishi Electric corp. 100: 2–8. ISSN   1345-3041. Archived from the original (PDF) on 2008-07-24. Retrieved 2010-01-06.
  4. US 7096369,Matsui, Mitsuru&Tokita, Toshio,"Data Transformation Apparatus and Data Transformation Method",published Sep. 19, 2002,issued Aug. 22, 2006
  5. 1 2 Orr Dunkelman; Nathan Keller; Adi Shamir (2010-01-10). "A Practical-Time Attack on the A5/3 Cryptosystem Used in Third Generation GSM Telephony".{{cite journal}}: Cite journal requires |journal= (help)
  6. "3GPP TS 35.202: Specification of the 3GPP confidentiality and integrity algorithms; Document 2: Kasumi specification". 3GPP. 2009.
  7. Kühn, Ulrich. Cryptanalysis of Reduced Round MISTY. EUROCRYPT 2001. CiteSeerX   10.1.1.59.7609 .
  8. Elad Barkan, Eli Biham, Nathan Keller. Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication (PDF). CRYPTO 2003. pp. 600–616.{{cite conference}}: CS1 maint: multiple names: authors list (link)
  9. Elad Barkan, Eli Biham, Nathan Keller. "Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication by Barkan and Biham of Technion (Full Version)" (PDF).{{cite web}}: CS1 maint: multiple names: authors list (link)
  10. Eli Biham, Orr Dunkelman, Nathan Keller. A Related-Key Rectangle Attack on the Full KASUMI. ASIACRYPT 2005. pp. 443–461. Archived from the original (ps) on 2013-10-11.{{cite conference}}: CS1 maint: multiple names: authors list (link)