Tech-invite3GPPspaceIETFspace
21222324252627282931323334353637384‑5x
Top   in Index   None   Next

TS 55.205
Specification of the GSM-MILENAGE Algorithms:
an Example Algorithm set for GSM Authentication
and Key Generation Functions A3 and A8

V18.0.0 (PDF)  2024/03  17 p.
V17.0.0  2022/03  17 p.
V16.0.0  2020/06  17 p.
V15.0.0  2018/09  16 p.
V14.0.0  2017/03  17 p.
V13.0.0  2016/01  17 p.
V12.0.0  2014/09  17 p.
V11.0.0  2012/09  17 p.
V10.0.0  2011/04  17 p.
V9.0.0  2009/12  17 p.
V8.0.0  2008/12  17 p.
V7.0.0  2007/06  17 p.
V6.2.0  2006/03  17 p.
Rapporteur:
Mr. Evans, Tim P.
VODAFONE Group Plc

Content for  TS 55.205  Word version:  18.0.0

Here   Top

 

0  Introductionp. 4

This document has been prepared by the 3GPP Task Force, and contains an example set of algorithms which may be used as the GSM authentication and key generation functions A3 and A8. (It is not mandatory that the particular algorithms specified in this document are used - the A3 and A8 functions are operator-specifiable rather than being fully standardised).

1  Scopep. 5

The present document contains an example set of algorithms which may be used as the GSM authentication and key generation functions A3 and A8. (It is not mandatory that the particular algorithms specified in this document are used - the A3 and A8 functions are operator-specifiable rather than being fully standardised).
Clause 3 (normative) introduces the algorithms and describes their input and output parameters. Clause 4 (normative) defines the algorithms. Clause 5 (informative) describes an alternative algorithm that some operators may prefer. Clause 6 (informative) provides test data.
Up

2  Referencesp. 5

The following documents contain provisions which, through reference in this text, constitute provisions of the present document.
  • References are either specific (identified by date of publication, edition number, version number, etc.) or non specific.
  • For a specific reference, subsequent revisions do not apply.
  • For a non-specific reference, the latest version applies. In the case of a reference to a 3GPP document (including a GSM document), a non-specific reference implicitly refers to the latest version of that document in the same Release as the present document.
[1]
TS 35.206: "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Specification of the MILENAGE Algorithm Set: An example algorithm set for the 3GPP authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 2: Algorithm specification".
[2]
TS 35.207: "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Specification of the MILENAGE Algorithm Set: An example algorithm set for the 3GPP authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 3: Implementors' test data".
[3]
TS 35.208: "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Specification of the MILENAGE Algorithm Set: An example algorithm set for the 3GPP authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 4: Design conformance test data".
[4]
TS 33.102: version 3.10.0: "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Security architecture (Release 1999)".
[5]
3GPP TS 03.20 version 8.1.0: "3rd Generation Partnership Project; Digital cellular telecommunications system (Phase 2+); Security related network functions (Release 1999)".
Up

3  Introductory information (normative)p. 5

3.1  Introductionp. 5

Within the security architecture of the GSM system there are security functions A3 and A8. The operation of these functions falls completely within the domain of an individual operator, and the functions are therefore to be specified by each operator rather than being fully standardised. The algorithms specified in this document are examples that may be used by an operator who does not wish to design his own.
The inputs and outputs of the two functions are defined in clause 3.2.
Up

3.2  Algorithm Inputs and Outputsp. 6

The inputs to the algorithms are given in Table 1, the outputs in Table 2 and Table 3 below.
Parameter Size (bits) Comment
Ki128Subscriber key Ki[0]…Ki[127]
RAND128Random challenge RAND[0]…RAND[127]
Parameter Size (bits) Comment
SRES32Signed response SRES[0]…SRES[31]
Parameter Size (bits) Comment
KC64Cipher key KC[0]…KC[63]
Up

3.3  Notationp. 6

3.3.1  Bit/Byte orderingp. 6

All data variables in this specification are presented with the most significant bit (or byte) on the left hand side and the least significant bit (or byte) on the right hand side. Where a variable is broken down into a number of substrings, the leftmost (most significant) substring is numbered 0, the next most significant is numbered 1, and so on through to the least significant. When a variable, with bit length L, is shown in hexadecimal format, bit 0 is the most significant bit of the leftmost hexadecimal digit, and bit L-1 is the least significant bit of the rightmost hexadecimal digit.
Up

3.3.2  List of Symbolsp. 6

=
The assignment operator.
||
The concatenation of the two operands.
The bitwise exclusive-OR operation.
X[i]
The ith bit of the variable X.  (X = X[0] || X[1] || X[2] || …).

4  The GSM-MILENAGE algorithms (normative)p. 6

An example algorithm set for UMTS, called MILENAGE (note 1), is specified in TS 35.206. GSM-MILENAGE makes use of MILENAGE.
Specifically, the functions from the UMTS MILENAGE which we make use of are the following (we prefix all input and output names by "MIL3G-" to distinguish them clearly from the inputs and outputs of A3 and A8):
Function Inputs Output
f2MIL3G-K[0]…MIL3G-K[127]
MIL3G-RAND[0]…MIL3G-RAND[127]
MIL3G-RES[0]…MIL3G-RES[63]
f3MIL3G-CK[0]…MIL3G-CK[127]
f4MIL3G-IK[0]…MIL3G-IK[127]
The GSM-MILENAGE functions are defined as follows:
  • Let (MIL3G-K[0]…MIL3G-K[127]) = (Ki[0]…Ki[127])
  • Let (MIL3G-RAND[0]…MIL3G-RAND[127]) = (RAND[0]…RAND[127])
  • Compute MIL3G-RES, MIL3G-CK and MIL3G-IK from MIL3G-K and MIL3G-RAND, using the MILENAGE functions f2, f3, and f4 respectively
  • Set (KC[0]…KC[63]) =
    (MIL3G-CK[0]…MIL3G-CK[63]) ⊕
    (MIL3G-CK[64]…MIL3G-CK[127]) ⊕
    (MIL3G-IK[0]…MIL3G-IK[63]) ⊕
    (MIL3G-IK[64]…MIL3G-IK[127])
  • Derive SRES from MIL3G-RES using an operator-selected SRES Derivation Function. This function must be precisely specified for the GSM-MILENAGE A3 algorithm to be fully defined. The two main recommended options are as follows (note 2):
  • Recommended SRES Derivation Function #1:
    (SRES[0]…SRES[31]) = (MIL3G RES[0]…MIL3G-RES[31]) ⊕ (MIL3G RES[32]…MIL3G-RES[63]).
  • Recommended SRES Derivation Function #2:
    (SRES[0]…SRES[31]) = (MIL3G RES[0]…MIL3G-RES[31]).
Alternative SRES Derivation Functions may be specified.
Up

5  An alternative algorithm (informative)p. 7

The GSM-MILENAGE algorithms defined in clause 3 are obtained by applying standard 3G-to-2G conversion functions defined in TS 33.102 to the outputs of the UMTS MILENAGE algorithms.
If there is no desire to retain this compatibility with UMTS MILENAGE used in its 2G mode, a much simpler and more efficient algorithm would be to set TEMP = EKi (RAND), where E is the 128-bit block cipher used as a basic building block in MILENAGE, i.e. TEMP = the result of encrypting RAND using the key Ki; then choose non-overlapping substrings of TEMP to be SRES and KC, e.g. SRES = TEMP[0]...TEMP[31] and KC = TEMP[64]…TEMP[127].
This alternative does not form any part of the GSM-MILENAGE algorithms; it is included just for information.
Up

6  Test data for GSM-MILENAGE (informative)p. 8

6.1  Introductionp. 8

The test data sets presented here are derived directly from the MILENAGE test sets in TS 35.208.

6.2  Formatp. 8

The format of each test data set is as follows:
Test Set n
Kisubscriber secret key
RANDrandom challenge
OPoperator-specific MILENAGE constant
OPcderived from OP and Ki — see TS 35.206
MIL3G-RESMILENAGE f2 output, included for information only
SRES#1A3 output SRES, if Recommended SRES Derivation Function #1 is used — see section 4, page 7
SRES#2A3 output SRES, if Recommended SRES Derivation Function #2 is used — see section 4, page 7
MIL3G-CKMILENAGE f3 output, included for information only
MIL3G-IKMILENAGE f4 output, included for information only
KcA8 output (cipher key)
All test data in this tabular format is shown in hexadecimal representation. The first test set is also shown in binary, to show explicitly the relationship between the binary data and the hexadecimal representation.
Up

6.3  Test Setsp. 9

Test Set 1 in binary format
Ki01000110  01011011  01011100  11101000  10110001  10011001  10110100  10011111  10101010  01011111  00001010  00101110  11100010  00111000  10100110  10111100
RAND00100011  01010101  00111100  10111110  10010110  00110111  10101000  10011101  00100001  10001010  11100110  01001101  10101110  01000111  10111111  00110101
OP11001101  11000010  00000010  11010101  00010010  00111110  00100000  11110110  00101011  01101101  01100111  01101010  11000111  00101100  10110011  00011000
OPc11001101  01100011  11001011  01110001  10010101  01001010  10011111  01001110  01001000  10100101  10011001  01001110  00110111  10100000  00101011  10101111
MIL3G-RES10100101  01000010  00010001  11010101  11100011  10111010  01010000  10111111
SRES#101000110  11111000  01000001  01101010
SRES#210100101  01000010  00010001  11010101
MIL3G-CK10110100  00001011  10101001  10100011  11000101  10001011  00101010  00000101  10111011  11110000  11011001  10000111  10110010  00011011  11111000  11001011
MIL3G-IK11110111  01101001  10111100  11010111  01010001  00000100  01000110  00000100  00010010  01110110  01110010  01110001  00011100  01101101  00110100  01000001
Kc11101010  11100100  10111110  10000010  00111010  11111001  10100000  10001011
Test Set 1
Ki465b5ce8  b199b49f  aa5f0a2e  e238a6bc
RAND23553cbe  9637a89d  218ae64d  ae47bf35
OPcdc202d5  123e20f6  2b6d676a  c72cb318
OPccd63cb71  954a9f4e  48a5994e  37a02baf
MIL3G-RESa54211d5  e3ba50bf
SRES#146f8416a
SRES#2a54211d5
MIL3G-CKb40ba9a3  c58b2a05  bbf0d987  b21bf8cb
MIL3G-IKf769bcd7  51044604  12767271  1c6d3441
Kceae4be82  3af9a08b
Test Set 2
Kifec86ba6  eb707ed0  8905757b  1bb44b8f
RAND9f7c8d02  1accf4db  213ccff0  c7f71a6a
OPdbc59adc  b6f9a0ef  735477b7  fadf8374
OPc1006020f  0a478bf6  b699f15c  062e42b3
MIL3G-RES8011c48c  0c214ed2   
SRES#18c308a5e     
SRES#28011c48c     
MIL3G-CK5dbdbb29  54e8f3cd  e665b046  179a5098
MIL3G-IK59a92d3b  476a0443  487055cf  88b2307b
Kcaa01739b  8caa976d   
Test Set 3
Ki9e5944ae  a94b8116  5c82fbf9  f32db751
RANDce83dbc5  4ac0274a  157c17f8  0d017bd6
OP223014c5  806694c0  07ca1eee  f57f004f
OPca64a507a  e1a2a98b  b88eb421  0135dc87
MIL3G-RESf365cd68  3cd92e96   
SRES#1cfbce3fe     
SRES#2f365cd68     
MIL3G-CKe203edb3  971574f5  a94b0d61  b816345d
MIL3G-IK0c4524ad  eac041c4  dd830d20  854fc46b
Kc9a8ec95f  408cc507   
Test Set 4
Ki4ab1deb0  5ca6ceb0  51fc98e7  7d026a84
RAND74b0cd60  31a1c833  9b2b6ce2  b8c4a186
OP2d16c5cd  1fdf6b22  383584e3  bef2a8d8
OPcdcf07cbd  51855290  b92a07a9  891e523e
MIL3G-RES5860fc1b  ce351e7e   
SRES#19655e265     
SRES#25860fc1b     
MIL3G-CK7657766b  373d1c21  38f307e3  de9242f9
MIL3G-IK1c42e960  d89b8fa9  9f2744e0  708ccb53
Kccdc1dc08  41b81a22   
Test Set 5
Ki6c38a116  ac280c45  4f59332e  e35c8c4f
RANDee6466bc  96202c5a  557abbef  f8babf63
OP1ba00a1a  7c6700ac  8c3ff3e9  6ad08725
OPc3803ef53  63b947c6  aaa225e5  8fae3934
MIL3G-RES16c8233f  05a0ac28   
SRES#113688f17     
SRES#216c8233f     
MIL3G-CK3f8c7587  fe8e4b23  3af676ae  de30ba3b
MIL3G-IKa7466cc1  e6b2a133  7d49d3b6  6e95d7b4
Kcdf75bc5e  a899879f   
Test Set 6
Ki2d609d4d  b0ac5bf0  d2c0de26  7014de0d
RAND194aa756  013896b7  4b4a2a3b  0af4539e
OP460a4838  5427aa39  264aac8e  fc9e73e8
OPcc35a0ab0  bcbfc925  2caff15f  24efbde0
MIL3G-RES8c25a16c  d918a1df   
SRES#1553d00b3     
SRES#28c25a16c     
MIL3G-CK4cd08460  20f8fa07  31dd47cb  dc6be411
MIL3G-IK88ab80a4  15f15c73  711254a1  d388f696
Kc84b417ae  3aeab4f3   
Test Set 7
Kia530a7fe  428fad10  82c45edd  fce13884
RAND3a4c2b32  45c50eb5  c71d0863  9395764d
OP511c6c4e  83e38c89  b1c5d8dd  e62426fa
OPc27953e49  bc8af6dc  c6e730eb  80286be3
MIL3G-RESa63241e1  ffc3e5ab   
SRES#159f1a44a     
SRES#2a63241e1     
MIL3G-CK10f05bab  75a99a5f  bb98a9c2  87679c3b
MIL3G-IKf9ec0865  eb32f223  69cade40  c59c3a44
Kc3b4e244c  dc60ce03   
Test Set 8
Kid9151cf0  4896e258  30bf2e08  267b8360
RANDf761e5e9  3d603feb  730e2755  6cb8a2ca
OP75fc2233  a44294ee  8e6de25c  4353d26b
OPcc4c93eff  e8a08138  c203d4c2  7ce4e3d9
MIL3G-RES4a90b217  1ac83a76   
SRES#150588861     
SRES#24a90b217     
MIL3G-CK71236b71  29f9b22a  b77ea7a5  4c96da22
MIL3G-IK90527eba  a5588968  db417273  25a04d9e
Kc8d4ec01d  e597acfe   
Test Set 9
Kia0e2971b  6822e8d3  54a18cc2  35624ecb
RAND08eff828  b13fdb56  2722c65c  7f30a9b2
OP323792fa  ca21fb4d  5d6f13c1  45a9d2c1
OPc82a26f22  bba9e948  8f949a10  d98e9cc4
MIL3G-RES4bc2212d  8624910a   
SRES#1cde6b027     
SRES#24bc2212d     
MIL3G-CK08cef6d0  04ec6147  1a3c3cda  048137fa
MIL3G-IKed0318ca  5deb9206  272f6e8f  a64ba411
Kcd8debc4f  fbcd60aa   
Test Set 10
Ki0da6f7ba  86d5eac8  a19cf563  ac58642d
RAND679ac4db  acd7d233  ff9d6806  f4149ce3
OP4b9a26fa  459e3acb  ff36f401  5de3bdc1
OPc0db1071f  8767562c  a43a0a64  c41e8d08
MIL3G-RES6fc30fee  6d123523   
SRES#102d13acd     
SRES#26fc30fee     
MIL3G-CK69b1cae7  c7429d97  5e245cac  b05a517c
MIL3G-IK74f24e8c  26df58e1  b38d7dcd  4f1b7fbd
Kcf0eaa50a  1edcebb7   
Test Set 11
Ki77b45843  c88e58c1  0d202684  515ed430
RAND4c47eb30  76dc55fe  5106cb20  34b8cd78
OPbf3286c7  a51409ce  95724d50  3bfe6e70
OPcd483afae  562409a3  26b5bb0b  20c4d762
MIL3G-RESaefa357b  eac2a87a   
SRES#144389d01     
SRES#2aefa357b     
MIL3G-CK908c43f0  569cb8f7  4bc971e7  06c36c5f
MIL3G-IKc251df0d  888dd932  9bcf4665  5b226e40
Kc82dbab7f  83f063da   
Test Set 12
Ki729b1772  9270dd87  ccdf1bfe  29b4e9bb
RAND311c4c92  9744d675  b720f3b7  e9b1cbd0
OPd04c9c35  bd2262fa  810d2924  d036fd13
OPc228c2f2f  06ac3268  a9e616ee  16db4ba1
MIL3G-RES98dbbd09  9b3b408d   
SRES#103e0fd84     
SRES#298dbbd09     
MIL3G-CK44c0f23c  5493cfd2  41e48f19  7e1d1012
MIL3G-IK0c9fb816  13884c25  35dd0eab  f3b440d8
Kc3c66cb98  cab2d33d   
Test Set 13
Kid32dd23e  89dc6623  54ca12eb  79dd32fa
RANDcf7d0ab1  d9430695  0bf12018  fbd46887
OPfe75905b  9da47d35  6236d031  4e09c32e
OPcd22a4b41  80a53257  08a5ff70  d9f67ec7
MIL3G-RESaf4a411e  1139f2c2   
SRES#1be73b3dc     
SRES#2af4a411e     
MIL3G-CK5af86b80  edb70df5  292cc112  1cbad50c
MIL3G-IK7f4d6ae7  440e1878  9a8b75ad  3f42f03a
Kc9612b5d8  8a4130bb   
Test Set 14
Kiaf7c65e1  927221de  591187a2  c5987a53
RAND1f0f8578  464fd59b  64bed2d0  9436b57a
OP0c7acb8d  95b7d4a3  1c5aca6d  26345a88
OPca4cf5c81  55c08a7e  ff418e54  43b98e55
MIL3G-RES7bffa5c2  f41fbc05   
SRES#18fe019c7     
SRES#27bffa5c2     
MIL3G-CK3f8c3f3c  cf7625bf  77fc94bc  fd22fd26
MIL3G-IKabcbae8f  d46115e9  961a55d0  da5f2078
Kc75a150df  3c6aed08   
Test Set 15
Ki5bd7ecd3  d3127a41  d12539be  d4e7cf71
RAND59b75f14  251c7503  1d0bcbac  1c2c04c7
OPf967f760  38b920a9  cd25e10c  08b49924
OPc76089d3c  0ff3efdc  6e36721d  4fceb747
MIL3G-RES7e3f44c7  591f6f45   
SRES#127202b82     
SRES#27e3f44c7     
MIL3G-CKd42b2d61  5e49a03a  c275a5ae  f97af892
MIL3G-IK0b3f8d02  4fe6bfaf  aa982b8f  82e319c2
Kcb7f92e42  6a36fec5   
Test Set 16
Ki6cd1c6ce  b1e01e14  f1b82316  a90b7f3d
RANDf69b78f3  00a0568b  ce9f0cb9  3c4be4c9
OP078bfca9  564659ec  d8851e84  e6c59b48
OPca219dc37  f1dc7d66  738b5843  c799f206
MIL3G-RES70f6bdb9  ad21525f   
SRES#1ddd7efe6     
SRES#270f6bdb9     
MIL3G-CK6edaf99e  5bd9f85d  5f36d91c  1272fb4b
MIL3G-IKd61c853c  280dd9c4  6f297bae  c386de17
Kc88d9de10  a22004c5   
Test Set 17
Kib73a90cb  cf3afb62  2dba83c5  8a8415df
RANDb120f1c1  a0102a2f  507dd543  de68281f
OPb672047e  003bb952  dca6cb8a  f0e5b779
OPcdf0c6786  8fa25f74  8b7044c6  e7c245b8
MIL3G-RES479dd25c  20792d63   
SRES#167e4ff3f     
SRES#2479dd25c     
MIL3G-CK66195dbe  d0313274  c5ca7766  615fa25e
MIL3G-IK66bec707  eb2afc47  6d7408a8  f2927b36
Kca819e577  a8d6175b   
Test Set 18
Ki51222502  14c33e72  3a5dd523  fc145fc0
RAND81e92b6c  0ee0e12e  bceba8d9  2a99dfa5
OPc9e87632  86b5b9ff  bdf56e12  97d0887b
OPc981d464c  7c52eb6e  50362349  84ad0bcf
MIL3G-RES28d7b0f2  a2ec3de5   
SRES#18a3b8d17     
SRES#228d7b0f2     
MIL3G-CK5349fbe0  98649f94  8f5d2e97  3a81c00f
MIL3G-IK9744871a  d32bf9bb  d1dd5ce5  4e3e2e5a
Kc9a8d0e88  3ff0887a   
Test Set 19
Ki90dca4ed  a45b53cf  0f12d7c9  c3bc6a89
RAND9fddc720  92c6ad03  6b6e4647  89315b78
OP3ffcfe5b  7b111158  9920d352  8e84e655
OPccb9cccc4  b9258e6d  ca476037  9fb82581
MIL3G-RESa95100e2  760952cd   
SRES#1df58522f     
SRES#2a95100e2     
MIL3G-CKb5f2da03  883b69f9  6bf52e02  9ed9ac45
MIL3G-IKb4721368  bc16ea67  875c5598  688bb0ef
Kced29b2f1  c27f9f34   
Up

$  Change Historyp. 15


Up   Top