1
$\begingroup$

In EEA (EPS Encryption Algorithm) and EIA (EPS Integrity Algorithm), what exactly does the direction (uplink/downlink) indicate? It's confusing because for both encryption and decryption of a given plaintext, the direction has to be same.

This w.r.t the LTE communication.

For your reference, the section B.1 in 33401-g00.zip at https://www.3gpp.org/ftp/Specs/latest/Rel-16/33_series/

$\endgroup$
3
  • $\begingroup$ Can you expand your acronyms to make the question easier to read? $\endgroup$ Oct 16, 2019 at 19:54
  • $\begingroup$ EPS: Evolved Packet System $\endgroup$ Oct 21, 2019 at 16:18
  • $\begingroup$ EEA/EIA: EPS Encryption/Integrity Algorithm $\endgroup$ Oct 21, 2019 at 16:18

1 Answer 1

2
$\begingroup$

The direction bit is set to 0 for uplink direction (from mobile to the network) and set to 1 for downlink direction (from network to the mobile) according to Annex B of TS 33.401. As you stated '0' is used for encryption and decryption in uplink and '1' used for encryption and decryption in downlink.

Taking the example of AES-CTR mode for encryption/decryption (128-EEA2, code name given to this scheme), the counter blocks (T1, T2,..) used for the 128 bit data blocks would be (according to annex B.1.3): UPLINK (Mobile to network)

T1 = COUNT[0]..COUNT[31] | BEARER[0]..BEARER[4] | **0** | 0..0 (26 zeros)| 0..0 (64 zeros)

Tk+1 = Tk++ mod(2^64) // 64 LSBits are incremented for each subsequent block

DOWNLINK (Mobile to network)

T1 = COUNT[0]..COUNT[31] | BEARER[0]..BEARER[4] | **1** | 0..0 (26 zeros)| 0..0 (64 zeros)

Tk = Tk++ mod(2^64)

In my understanding, the direction bit leads to generation of different random blocks (which is XORed with data) in uplink and downlink even when the NAS counter and bearer ID is the same for both direction. One would not want the same random block to be used in both direction. Thus the use of direction bit leads to different nonce in the uplink direction and downlink direction for AES-CTR.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.