ETSI/SAGE
Specification
Version: 1.1
Date: 6th September 2006
Specification of the 3GPP Confidentiality and
Integrity Algorithms UEA2 & UIA2.
Document 2: SNOW 3G Specification
The SNOW 3G algorithm is the core of the standardised 3GPP
Confidentiality and Integrity algorithms UEA2 & UIA2.
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 1 of 37
Document History
10th January 2006
Publication
6th September 2006
No change to the algorithm specification at all, just
removal of an unwanted page header
V1.0
V1.1
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 2 of 37
PREFACE
This specification has been prepared by the 3GPP Task Force, and gives a detailed
specification of the 3GPP Algorithm SNOW 3G. SNOW 3G is a stream cipher that forms the
heart of the 3GPP confidentiality algorithm UEA2 and the 3GPP integrity algorithm UIA2.
This document is the second of four, which between them form the entire specification of
3GPP Confidentiality and Integrity Algorithms:
• Specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 &
UIA2.
Document 1: UEA2 and UIA2 Algorithm Specifications.
• Specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 &
UIA2.
Document 2: SNOW 3G Algorithm Specification.
• Specification of the 3GPP Encryption and Confidentiality Algorithms UEA2 &
UIA2.
Document 3: Implementors’ Test Data.
• Specification of the 3GPP Encryption and Confidentiality Algorithms UEA2 &
UIA2.
Document 4: Design Conformance Test Data.
The normative part of the specification of SNOW 3G is in the main body of this document.
The annexes to this document are purely informative. Annex 1 contains remarks about the
mathematical background of some functions of SNOW 3G. Annex 2 contains implementation
options for some functions of SNOW 3G. Annex 3 contains illustrations of functional
elements of the algorithm, while Annex 4 contains an implementation program listing of the
cryptographic algorithm specified in the main body of this document, written in the
programming language C.
Similarly the normative part of the specification of the UEA2 (confidentiality) and the UIA2
(integrity) algorithms is in the main body of Document 1. The annexes of those documents
and Documents 3 and 4 above, are purely informative.
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 3 of 37
Blank Page
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 4 of 37
TABLE OF CONTENTS
1. Outline of the Normative Part of the Document.................................................................8
2.
Introductory Information ....................................................................................................8
2.1. Introduction.................................................................................................................8
2.2. Notation ......................................................................................................................8
3. Components of SNOW 3G ...............................................................................................10
3.1. Functions used in different Components of SNOW 3G ...........................................10
3.2. Linear Feedback Shift Register (LFSR) ...................................................................10
3.3. Finite State Machine (FSM) .....................................................................................10
3.4. The Clocking Operations ..........................................................................................11
4. Operation of SNOW 3G ...................................................................................................12
4.1. Initialisation ..............................................................................................................12
4.2. Generation of Keystream ..........................................................................................13
5. Definition of Tables used in SNOW 3G...........................................................................14
ANNEX 1 Remarks about the mathematical background of some operations of the
SNOW 3G Algorithm...............................................................................................................17
1.1 MULx and MULxPOW ............................................................................................17
1.2 The S-Box S1 used in the FSM .................................................................................17
1.3 The S-Box SQ used in the S-Box S2 .........................................................................17
1.4 The S-Box S2 used in the FSM .................................................................................18
1.5 Interpretation of the 32-bit words contained in the LFSR as elements of
GF(232)..............................................................................................................................18
ANNEX 2
Algorithm
Implementation options for some operations of the SNOW 3G
19
2.1. The S-Box S1 used in the FSM .................................................................................19
2.2. The S-Box S2 used in the FSM .................................................................................19
2.3. The functions MULα and DIVα used in the LFSR....................................................19
2.4. Definitions of tables for the FSM .............................................................................20
2.5. Definitions of tables for the LFSR............................................................................28
ANNEX 3 Figures of the SNOW 3G Algorithm..................................................................30
SNOW 3G Algorithm during key initialisation................................................................30
SNOW 3G Algorithm during keystream-generation ........................................................31
ANNEX 4 Simulation Program Listing................................................................................32
4.1. Header file ................................................................................................................32
4.2. Code..........................................................................................................................32
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 5 of 37
REFERENCES
3rd Generation Partnership Project; Technical Specification Group Services and
System Aspects; 3G Security; Security Architecture (3G TS 33.102 version 6.3.0).
3rd Generation Partnership Project; Technical Specification Group Services and
System Aspects; 3G Security; Cryptographic Algorithm Requirements; (3G TS
33.105 version 6.0.0).
Specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
Document 1: UEA2 and UIA2 specifications.
Specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
Document 2: SNOW 3G specification.
Specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
Document 3: Implementors’ Test Data.
Specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
Document 4: Design Conformance Test Data.
P. Ekdahl and T. Johansson, “A new version of the stream cipher SNOW”, in
Selected Areas in Cryptology (SAC 2002), LNCS 2595, pp. 47–61, Springer-
Verlag.
J. Daemen, V. Rijmen, “The design of Rijndael”, Springer Verlag Series on
Information Security and Cryptography, Springer Verlag, 2002, ISBN 3-540-42580-
2.
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 6 of 37
NORMATIVE SECTION
This part of the document contains the normative specification of the SNOW 3G algorithm.
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 7 of 37
1. Outline of the Normative Part of the Document
Section 2 introduces the algorithm and describes the notation used in the subsequent sections.
Section 3 defines the basic components of the algorithm.
Section 4 defines the operation of SNOW 3G.
Section 5 contains tables defining functions used in SNOW 3G.
2.
Introductory Information
2.1.
Introduction
Within the security architecture of the 3GPP system there are standardised algorithms: A
confidentiality algorithm UEA2, and an integrity algorithm UIA2. These algorithms are fully
specified in a companion document. Each of these algorithms is based on the SNOW 3G
algorithm that is specified here.
SNOW 3G is a word-oriented stream cipher that generates a sequence of 32-bit words under
the control of a 128-bit key and a 128-bit initialisation variable. These words can be used to
mask the plaintext. First a key initialisation is performed, i.e. the cipher is clocked without
producing output, see 4.1. Then with every clock tick it produces a 32-bit word of output, see
4.2.
2.2. Notation
2.2.1. Radix
We use the prefix 0x to indicate hexadecimal numbers.
2.2.2. Bit ordering
All data variables in this specification are presented with the most significant bit on the left
hand side and the least significant bit on the right hand side. Where a variable is broken down
into a number of sub-strings, the left most (most significant) sub-string is numbered 0, the
next most significant is numbered 1 and so on through to the least significant.
For example if a 64-bit value X is subdivided into four 16-bit substrings P, Q, R, S we have:
X = 0x0123456789ABCDEF
with
P = 0x0123, Q = 0x4567, R = 0x89AB, S = 0xCDEF.
In binary this would be:
X = 0000000100100011010001010110011110001001101010111100110111101111
with P = 0000000100100011
3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2.
SNOW 3G Algorithm Specification Version 1.1
page 8 of 37