LTE.docx

上传人:b****1 文档编号:2080497 上传时间:2023-05-02 格式:DOCX 页数:126 大小:1.51MB
下载 相关 举报
LTE.docx_第1页
第1页 / 共126页
LTE.docx_第2页
第2页 / 共126页
LTE.docx_第3页
第3页 / 共126页
LTE.docx_第4页
第4页 / 共126页
LTE.docx_第5页
第5页 / 共126页
LTE.docx_第6页
第6页 / 共126页
LTE.docx_第7页
第7页 / 共126页
LTE.docx_第8页
第8页 / 共126页
LTE.docx_第9页
第9页 / 共126页
LTE.docx_第10页
第10页 / 共126页
LTE.docx_第11页
第11页 / 共126页
LTE.docx_第12页
第12页 / 共126页
LTE.docx_第13页
第13页 / 共126页
LTE.docx_第14页
第14页 / 共126页
LTE.docx_第15页
第15页 / 共126页
LTE.docx_第16页
第16页 / 共126页
LTE.docx_第17页
第17页 / 共126页
LTE.docx_第18页
第18页 / 共126页
LTE.docx_第19页
第19页 / 共126页
LTE.docx_第20页
第20页 / 共126页
亲,该文档总共126页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

LTE.docx

《LTE.docx》由会员分享,可在线阅读,更多相关《LTE.docx(126页珍藏版)》请在冰点文库上搜索。

LTE.docx

LTE

LTE安全功能

 

1概述

本文档对LTE安全技术进行的总结,描述了与安全相关的协议,重点包括:

安全流程梳理。

1.1参考文献

[1]3GPP TS :

"3GPPSystemArchitectureEvolution(SAE);Securityarchitecture".

[2]3GPPRadioResourceControl(RRC);Protocolspecification

[3]3GPPS1applicationprotocol(S1AP)

[4]3GPPX2applicationprotocol(X2AP)

[5]3GPPTS :

"EvolvedUniversalTerrestrialRadioAccess(E-UTRA);PacketDataConvergenceProtocol(PDCP)Specification".

1.2术语

AESAdvancedEncryptionStandard

CKCipherKey

IKIntegrityKey

EARFCN-DLE-UTRAAbsoluteRadioFrequencyChannelNumber-DownLink

EEAEPSEncryptionAlgorithm

EIAEPSIntegrityAlgorithm

eKSIKeySetIdentifierinE-UTRAN(E-UTRAN的密钥组标识)

KDFKeyDerivationFunction(密钥获取功能)

KSIKeySetIdentifier

MAC-IMessageAuthenticationCodeforIntegrity()

NCCNexthopChainingCounter

NHNextHop

SMCSecurityModeCommand

SQNSequenceNumber

HFNHyperFrameNumber

LSMLimitedServiceMode(受限服务模式)

COUNT:

包括上行下行两个变量。

ChainingofKeNB:

从一个KeNB生成另一个KeNB(如切换过程中,根据生成源小区KeNB生成目标小区KeNB)

eKSI:

eKSI是KASME的一个指示,由MME进行分配,作用是在UE和MME中指示一个通过EPSAKA过程产生的NativeKASME,可以进行KASME的重新启用。

eKSI为4bit,最高位指示eKSI值是KASME还是KSGSN,剩余的三位填写KSI值。

在从UE发送给MME的消息中,如果eKSI值为全1,表示没有可用的eKSI。

Mappedsecuritycontext:

跨系统移动,由源系统的安全上下文,映射获得的安全上下文。

比如在UTRAN到E-UTRAN的切换过程中,通过UTRAN的安全上下文获取E-UTRAN的安全上下文。

RefreshofKeNB:

KASME不变情况下的KeNB更新。

通过小区内切换过程,实现的KeNB参数变化。

如在PATHSWITCH后目标eNB根据MME提供的NH/NCC对,发起小区内切换,通知UE采用最新的NCC进行KeNB计算,实现KeNB参数的变化。

PDCPCOUNTs越界时,需要对KeNB,KRRC-enc,KRRC-int,andKUP-en进行Keyrefresh。

Re-keyingofKeNB:

通过新的KASME获取新KeNB。

KeNB,KRRC-enc,KRRC-int,andKUP-enc可以进行Re-keying,由MME发起,通常在NAS安全交互后发生。

UEsecuritycapabilities:

UE支持的EPSAS和NAS的完整性保护和加密算法,以及UE支持的UTRAN和GERAN的加密算法和完整性保护算法。

UEEPSsecuritycapabilities:

UE支持的EPS系统的加密算法和完整性保护算法。

NASCOUNT:

包括上下行两个变量。

UE和MME分别保存。

在UE侧NASCOUNT都保存在USIM中或者UE的非易失性存储设备中。

NASCOUNT=NASoverflowCounter(16位)||NASSN(8位)。

NASSN是在NAS信令交互过程中,NAS头中包含的SequenceNumberIE。

2加密和完整性保护算法

2.1完整性保护

参数说明:

UE与eNB之间的RRC完整性保护由PDCP提供,PDCP以下各层不需要完整性保护。

EIA算法(完整性)的输入参数为:

(1)一个128bit的密钥KRRCint;

(2)一个5bit的承载idBEARER;

(3)一个1bit的传输方向DIRECTION;

(4)密钥流长度LENGTH;

(5)时间和方向的32bit。

特例:

切换过程中的RRC层也需要进行RRC完整性校验码的生成,用于生成ShortMAC-I。

ShortMAC-I根据VarShortMAC-Input作为MESSAGE,根据原服务小区的KRRCint作为KEY,COUNT/BEARER/DIRECTION的bit位全部为1,计算获得;而VarShortMAC-Input由目标小区cellIdentity,原服务小区的PCI和c-RNTI组成。

输入

COUNT

32bit

由HFN和PDCPSN组成,共32bit

BEARER

5bit

取值为“RBidentity"-1

特例:

对于EIA1算法,输入为32bit,高27bit填零,低5bit为BEARER。

DIRECTION

1bit

0—上行,1—下行

MESSAGE

RRC消息内容,即PDCPSDU。

LENGTH

(1)对于EIA1和EIA3,采用流密码加密方式,LENGTH取值为MESSAGE的bit数;

(2)对于EIA2,采用块密码加密方式,LENGTH取值为MESSAGE的字节数。

KEY

128bit

KRRCint

算法

128-bitalgorithms

生成KEYSTREAMBLOCK

EIA0――空算法;

EIA1――基于3G网络的标准算法

sonw3G;

EIA2――增强性加密算法AES;

EIA3――祖冲之算法ZUC;

输出

MAC-I/XMAC-I

32bit

2.2加密

参数说明:

UE与eNB之间的用户面通过PDCP协议进行加密。

128bitEEA算法(加密)的输入INPUT参数为:

(1)一个128bit密钥KUPenc;

(2)一个5bit承载标识BEARER;

(3)1bit传输方向DIRECTION;

(4)密钥流的长度LENGTH;

(5)时间以及方向。

输入

COUNT

32bit

由HFN和PDCPSN组成,共32bit

BEARER

5bit

对于信令数据――“RBidentity"-1

对于业务数据――DRBidentity-1

DIRECTION

1bit

0—上行,1—下行

LENGTH

16bit

Keystreamblock长度,在加密算法中,利用keystreamblock对未加密的数据的消息字段进行操作。

(1)对于EIA1和EIA3,采用流密码加密方式:

LENGTH取值为Keystreamblock的bit数;

(2)对于EIA2,采用块密码加密方式:

LENGTH取值为Keystreamblock的字节数。

对于信令数据――加密数据为PDCPDATA和MAC-I,长度为PDCPDATA长度加上MAC-I长度;而PDCPDATA即为未压缩的PDCPSDU。

对于业务数据――加密数据为PDCPDATA,长度为PDCPDATA长度;而PDCPDATA可以为压缩的PDCPSDU,也可以为未压缩的PDCPSDU。

KEY

128bit

对于信令数据――KRRCenc

对于业务数据――KUPenc

算法

128-bitalgorithms

EEA0――空算法;

EEA1――基于3G网络的标准算法

sonw3G;

EEA2――增强性加密算法AES;

EEA3――祖冲之算法ZUC;

安全加密是针对如下三种类型的PDU。

(1)控制平面SRB数据的PDCPDataPDU:

首先对信令数据进行完整性保护,然后对信令数据和认证码一起加密。

(2)使用12bitSN值的PDCPDataPDU:

此格式适用于携带映射到RLCAM(应答)或RLCUM(非应答)的DRB的数据的PDCPDataPDU,对数据进行加密。

(3)使用7bitSN值的PDCPDataPDU:

此格式适用于携带映射到RLCUM的DRB的数据的PDCPDataPDU,对数据进行加密。

2.3加密和完整性保护的关系

RRC信令,完整性保护结果需要进行加/解密:

对于发送方:

先进行完整性保护(MAC-I计算),后进行加密。

对于接收方:

先进行数据解密,再进行完整性验证(MAC-I校验)。

注:

RRC信令的处理方式正好与NAS信令的处理方式相反。

NAS信令先加密,后进行完整性保护,完整性保护信息不进行加密。

3算法

3.1算法介绍

3.1.1EEA0、EIA0(NULLAlgorithm)

参见36401-AnnexB/。

3.1.1.1EEA0算法

EEA0算法的实现效果和应用全0的KEYSTREAM进行加密效果等同。

KEYSTREAM的长度和输入参数LENGTH相同。

此外,和加密相关的所有操作都应遵循本章所描述的加密算法。

3.1.1.2EIA0算法

EIA0算法的实现效果和生成全0的MAC-I/NAS-MAC和XMAC-I/XNAS-MAC的效果相同。

当应用EIA0算法时,无需进行重保护。

除非接收侧不校验接收到的MAC,否则,所有和完整性保护相关的操作都应遵循本章描述的完整性保护算法。

EIA0仅应用在处于LSM(受限服务模式)的UE进行紧急呼叫时。

注1:

文中提到的重保护是指重新进行完整性保护。

注2:

E-UTRAN中,认为使用2GSIM的UE处于LSM状态。

注3:

EEA0和EIA0没有提供任何安全。

3.1.2128-EEA1

3.1.2.1EEA1算法原理

参见。

128-EIA1基于SNOW3G算法,和UEA2的实现方式相同。

128-EIA1采用流密码加密方式进行加密。

利用LFSR(线性反馈移位寄存器)和FSM(有限状态机)进行更新密钥流。

用新产生的密钥流和明文按位进行异或,从而得出密文。

输出的密钥流以32位为一组,最终可形成z1、z2、…zt之类的密钥流,其中t=(n+31)/32,n为明文的长度(以bit为单位)。

解密过程与加密过程类似。

采用相同的算法和密钥,唯一不同的是对密文进行解密。

3.1.2.2输入和输出

u32f8(u8*CK-Key,u32Count,u32Bearer,u32Direction,u8*Data,u32Length)

表3.1.2.2-1输入参数

参数

大小(bits)

注释

COUNT-C

32

结构取决于输入COUNT-I[0]…COUNT-I[31]

BEAR

5

承载实体BEARER[0]…BEARER[4]

DIRECTION

1

传输方向DIRECTION[0]

CK

128

加解密密钥IK[0]…IK[127]

LENGTH

64

加密的明文的长度(以位为单位)

IBS

LENGTH

输入bit流,inputbitstream

表3.1.2.2-2输出参数

参数

大小(bits)

注释

OBS

LENGTH

输出bit流,outputbitstream

3.1.2.3EEA1算法流程图

图3.1.2.3-1EEA1加解密算法流程,第1部分

如图3.1.2.3-1所示,加解密算法EEA1的流程中第1部分有如下步骤:

1)将输入变量转变为适用于SNOW3G算法的输入变量:

K3

=

IK[0]

||

IK[1]

||

IK[2]

||

||

IK[31]

K2

=

IK[32]

||

IK[33]

||

IK[34]

||

||

IK[63]

K1

=

IK[64]

||

IK[65]

||

IK[66]

||

||

IK[95]

K0

=

IK[96]

||

IK[97]

||

IK[98]

||

||

IK[127]

IV3

=

COUNT-C[0]||COUNT-C[1]||COUNT-C[2]||…||COUNT-C[31]

IV2

=

BEARER[0]||BEARER[1]||…||BEARER[4]||DIRECTION[0]||0||…||0

IV1

=

IV3

IV0

=

IV2

2)根据SNOW3G算法,得到密钥流

图3.1.2.3-2EEA1加解密算法流程,第2部分

如图3.1.2.3-2所示,加解密算法EEA1的流程中第2部分有以下步骤:

1)根据EVAL_M功能计算得到参数IV3/IV2/IV1/IV0。

2)利用1)中得到的参数,在SNOW3G算法的作用下产生密钥流

3)密钥流以4个字节为一组,第一组为z,第二组为z,…,最后一个为z。

3.1.2.4EEA1算法解析

3.1.2.4.1初始化输入参数

1.根据输入参数得到SNOW3G算法需要的参数,如图3.1.2.4-1所示。

图3.1.2.4-1密钥初始化流程

2.根据每个为32-bit字的k0,k1,k2,k3和128-bit变量(由4个32-bit字IV0,IV1,IV2,IV3组成)进行初始化:

s15=k3IV0s14=k2s13=k1s12=k0IV1

s11=k31s10=k21IV2s9=k11IV3s8=k01

s7=k3s6=k2s5=k1s4=k0

s3=k31s2=k21s1=k11s0=k01

FSM初始为:

R1=R2=R3=0;

执行以下步骤,循环32次:

步骤1:

更新FSM(有限状态机)来产生初值F(四个字节)

步骤2:

利用LFSR(线性反馈移位寄存器)以F为输入参数进行密钥初始化

3.1.2.4.2生成密钥流

 

s11

 

s5

 

s2

s1

s0

s15

-1

R1

R3

R2

zt

S2

S1

FSM

图3.1.2.4-2生成密钥流流程

密钥流是一串字(四个字节)组成的位流,以四个字节为一组。

用z1,z1,……zn表示。

其中,n=(LENGTH+31)/32,z1表示最高有效字。

按照最高字到最低字的顺序组合z1||z2||……||zn。

最终得到的密钥流为KS[0],KS[2],……KS[LENGTH-1],其中KS[0]为最高有效位。

如图所示生成密钥流流程:

首先,FSMclock一次,丢弃FSM输出字;然后LFSR在密钥流模式下clock一次。

在n个32-bit字的密钥流生成以后,执行n次以下步骤:

步骤1:

FSMclock,产生一个32-bit输出字F;

步骤2:

计算下一个密钥流字:

zt=Fs0;

步骤3:

LFSR在密钥流模式下clock。

3.1.2.4.3计算得到密文

利用已经生成的密钥流和明文做异或操作,得到密文

对于整数i,有以下表达式,for为循环语句,OBS为密文

for(i=0;i

{

OBS[i]=IBS[i]^KS[i];

}

3.1.3128-EEA2

3.1.3.1EEA2算法原理

128-EEA2算法基于CTR模式的128-bitAES。

AES(ADVANCEDENCRYPTIONSTANDARD)的加密算法有如下几种模式:

CBC(CipherBlockChaining)模式、ECB(ElectronicCodebook)模式、(CFB)CipherFeedback模式、(OFB)OutputFeedback模式、CTR(COUNTER)模式、CMAC模式等。

而EEA2算法采用的就是128位的AES中的CTR模式进行加密的。

AES的加密原理是块加密算法和对称加密算法。

EEA2是以16个字节(128位)为一块,把密钥和明文分成若干块。

用轮密钥的方法来产生密钥,每一轮采用不同的替换函数进行变换,这样可以保证有更高的安全性。

CTR模式(COUNTER)顾名思义就是计数模式,利用COUNT、BEAR、DIRECTION等参数构成一个128位的输入块,用最低位的32位的值做为计数值,每加密一块明文计数就增加一次,这样就会产生T1、T2、T3……Tn等若干输入块,这样在每一块明文加密的过程中采用的输入块都是不相同的,这样的目的就是保证了安全性,不易被破解。

EEA2的CTR模式的加解密过程可以用下面的公式来简易给出:

CTR加密:

Oj=CIPHK(Tj)forj=1,2…n;

Cj=Pj⊕Ojforj=1,2…n-1;

C*n=P*n⊕MSBu(On).

CTR解密:

Oj=CIPHK(Tj)forj=1,2…n;

Pj=Cj⊕Ojforj=1,2…n-1;

P*n=C*n⊕MSBu(On).

其中:

n=(Length)/16;

输入块T1、T2……Tn的关系如下:

T1=COUNT[0]|……COUNT[31]|BEARER[0]|……BEARER[4]|DIRECTION|0^26|0^32|COUNTER[0]……COUNTER[31];

Tn=Tn-1+1;计数的增加通过COUNTER=(COUNTER+1)mod(2^32)来实现。

3.1.3.2输入和输出

表3.1.4.2-1为输入参数,表为输出参数。

表3.1.4.2-1输入参数

参数

大小(bits)

注释

COUNT-C

32

结构取决于输入COUNT-I[0]…COUNT-I[31]

BEAR

5

承载实体BEARER[0]…BEARER[4]

DIRECTION

1

传输方向DIRECTION[0]

IK

128

加解密密钥IK[0]…IK[127]

LENGTH

64

加密的明文的长度(以字节为单位)

T-COUNTER

128

利用以上参数构造的输入块的长度

IBS

LENGTH

输入的明文

表3.1.4.2-2输出参数

参数

大小(bits)

注释

OBS

LENGTH

输出的密文

3.1.3.3EEA2算法流程图

图3.1.4.3-1EEA2加解密算法流程

如图3.1.4.3-1所示,加解密算法EEA2的流程有以下步骤:

1)根据输入参数COUNT、BEARER、DIRECTION等构造输入输入块T1

2)从RRC层获得输入参数KEY;

3)把明文/密文分成若干块,每块的长度为16字节(128位);

4)输入块在轮密钥的作用下通过函数替换产生输出块;

5)输出块和明文做异或操作产生一块密文;

6)计数块T加一,更新计数值,产生新的输入块;

7)执行到最后一块则推出

8)执行步骤4

注意:

若最后一块明文的长度不够16字节(128位),则在加密的过程中要单独处理。

处理完后放到之前产生的密文/明文的后面。

3.1.4128-EIA1

3.1.4.1EIA1算法原理

128-EIA1基于SNOW3G算法,和UIA2的实现方式相同。

3.1.4.2输入和输出

u32f9(constu8*key,u32count,u32fresh,intdir,u8*data,u64length)

算法的输入参数和输出参数见下表。

表3.1.3.2-1输入参数

参数

大小(bits)

注释

COUNT-I

32

结构取决于输入COUNT-I[0]…COUNT-I[31]

FRESH

32

随机数FRESH[0]…FRESH[31]

DIRECTION

1

传输方向DIRECTION[0]

IK

128

完整性密钥IK[0]…IK[127]

LENGTH

64

MESSAGE的长度,比特

MESSAGE

LENGTH

输入bit流

表3.1.3.2-1输出参数

参数

大小(bits)

注释

MAC-I

32

消息鉴权码MAC-I[0]…MAC-I[31]

3.1.4.3EIA1算法流程图

COUNT-I

||

FRESH

||

DIRECTION||0....0COUNT-I

||

0000000000000000||DIRECTION||000000000000000FRESH

IV3

||

IV2

||

IV1

||

IV0

SNOW3G

IK

K3

||

K2

||

K1

||

K0

z1

||

z2

||

z3

||

z4

||

z5

P

||

Q

||

q32||...||q63

||

OTP[0]...OTP[31]

图3.1.3.3-1EIA1完整性保护算法流程,第1部分

如图3.1.3.3-1所示,完整性保护算法EIA1的流程中第1部分有以下步骤:

1)将输入变量转变为适用于SNOW3G算法的输入变量:

K3

=

IK[0]

||

IK[1]

||

IK[2]

||

||

IK[31]

K2

=

IK[32]

||

IK[33]

||

IK[34]

||

||

IK[63]

K1

=

IK[64]

||

IK[65]

||

IK[66]

||

||

IK[95]

K0

=

IK[96]

||

IK[97]

||

IK[98]

||

||

IK[127]

IV3

=

COUNT-I[0]||COU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2