DLMS算法

2024-09-09

DLMS算法(共3篇)

DLMS算法 篇1

0 引 言

无人机数据链是连接飞行器系统和地面导航控制站的桥梁和纽带[1]。由于无人机数据链处于无线信道中, 它会受到各方面的干扰和衰减, 其中码间干扰是影响它的一个重要方面, 接收机中能补偿或者减小接收信号的码间干扰的补偿器就称为均衡器[2]。现代战争对战场环境的掌控能力要求越来越强, 不仅要求传输测控信号, 还要求传输大容量的视频等信号, 这就要求数据链能有很高的速率。因此高速均衡器的实现就很有必要。

实现高速的方法有很多, 如并行结构, 流水线等。本文采用脉动阵结构来实现高速, 有诸多优点, 其中模块化和规则化是其中很重要的性质, 这使得均衡器可以很容易的进行扩展, 设计出所需的均衡器, 而且它也兼有流水线的优点。

当使用重定时技术进行均衡器的脉动结构设计时, 若使用LMS算法, 将会导致时间超前, 产生非因果系统, 因此, 本文使用DLMS (Delay LMS) 算法, 虽然DLMS的性能比LMS的差, 但是却可以获得很高的频率。

1 DLMS算法和脉动结构

1.1 DLMS算法

DLMS算法的基本迭代方程归结如下:

式中:x (n) =[xn, xn-1, xn-2, …, xn-k+1]T为输入信号, 其中k为滤波器的阶数;w (n) =[wn, wn-1, wn-2, …, wn-k+1]T为更新系数;y (n) 为n时刻均衡器的输出;d (n) 为n时刻的期望输入;e (n) 为n时刻输出的误差;μ为步长因子。

DLMS的原理框图如图1所示。

DLMS与LMS的不同就在于系数更新, DLMS使用过去的误差来更新现在的系数。使用LMS算法必须按照顺序执行, 首先对信号进行滤波, 然后求取误差信号, 再用误差更新系数, 但是DLMS则没有此约束, 它使用过去的误差来更新系数, 这使得滤波器和系数更新模块可以同时工作, 提高了均衡器的工作频率。同时在设计脉动结构时, 由于误差反馈支路上存在延迟, 对系统使用重定时, 避免了时间超前。

与LMS相比, DLMS的收敛速度变差, 对步长因子的要求也更为严格, 算法的收敛条件是[3]:

相对地, LMS算法的收敛条件仅为[4]:

但是为了实现高速, 这种代价是值得的。

1.2 脉动结构

脉动阵结构也被称为脉动阵列, 表示一种有节奏地计算并通过系统传输数据的处理单元网络, 这些处理单元规则地泵入泵出数据以维持规则的数据流。脉动系统的特征就是模块化和规则化, 它由模块化的处理单元组成, 因此可以很容易的进行扩展, 并且阵列是全流水线的, 也就是处理部件的所有通信边沿都包含延时单元, 且整个系统只包含局部互联[5], 这使得数据可以按节奏的通过数据网络, 使系统以很高的速度运行。脉动系统的基本原理框图如图2所示。

脉动阵结构是将线性技术用于规则依赖图上进行设计, 依赖图是一种空间表示, 不分派时间步骤给任何运算, 一般情况下, 对应与t=0的平面, 映射技术把空间表示变换成为一种空间-时间表示, 其中每个节点映射到特定的处理单元, 且调度到特定的时间步骤下[5]。本文滤波器采用的结构如图3所示, 权重w (n) 空间固定, 输入x (n) 以1延时单位从左向右移动, 输出y (n) 无延时地从右向左移动, 其依赖图如图4所示。

2 硬件结构设计

为了将脉动阵结构应用于DLMS算法中, 本文使用割集、重定时技术设计系统结构。割集重定时规则规定根据不同边沿的进入或者出去的方向, 可以超前或者延时这些边沿[6]。割集重定时只影响割集边的权重, 若两个不相连的模块为G1和G2, 则割集重定时包含以下两方面, 一个是从G1到G2的每条边都增加k个延时, 另一个是从G2到G1的每条边减去k个延时。

对LMS算法进行重定时, 在误差反馈路径将产生时间超前, 导致非因果系统, 而使用DLMS, 由于在误差反馈路径上已经有延迟, 只要此延时大于重定时所需的延时, 系统就可以实现。DLMS中的延时越大, 系统性能就越差, 因此选择延时个数最好为重定时的个数, 以保证系统性能。

本文首先利用System Generator对系统进行建模。然后使用Verilog HDL对系统进行编程设计, 以达到更高的运行速率。

2.1 System Generator系统建模

利用System Generator对DLMS进行建模, 设计滤波器为5阶, 其设计框图如图5所示, DLMS的延时设计为5 h。其中的PE模块结构如图6所示。

在图5中的5条斜线处应用割集重定时, 指定从左到右的数据传输路径为进入, 从右到左的数据传输路径为出去, 根据割集重定时规则, 对进入的边沿增加1个延时, 对出去的边沿减少1个延时。可得脉动结构的DLMS[7], 如图7所示, 其中的PE模块如图8所示。

2.2 Verilog HDL设计

利用System Generator 也可以生成完成相同功能的硬件结构, 但由于其中的各个模块都是通用结构, 对于具体应用并没有得到优化, 所以为了实现高速均衡, 应使用Verilog HDL进行设计。本文使用Xilinx公司的Virtex 5系列中的XC5VSX50T芯片作为开发平台, 这种芯片中集成了大量的DSP48E, 很适合均衡器的设计开发。

设计时, 将均衡器分为三个模块进行设计, 分别为滤波器模块、系数更新模块、误差延时模块, 其硬件设计原理图如图9所示。

由于浮点运算不仅要耗费大量的硬件, 而且不利于提高均衡器的速度, 因此本文采用定点运算。设定点运算为16位, 1位符号位, 2位整数位, 13位小数位。这基本上可以满足无人机数据处理的需求, 2位整数位也足以满足数据输入的需求。

由于步长并不需要一个精确的数值, 因此对于步长运算, 使用移位取代乘法器, 简化操作, 节约时间。文中设计为将数据向右移动6位, 即设μ=2-6。

3 仿真测试

本文利用仿真软件Modesim对均衡器进行仿真。所需数据由Matlab产生, 并利用FIR滤波器来模拟信道, 均衡后的信号经Matlab处理后, 绘制星座图, 均衡器测试模型如图10所示。

数据源为Matlab产生 (0 1) 的随机序列, 信道是系数为 (0.9 0.36 0.25 0.107) FIR滤波器。由于硬件乘法器只能进行整数乘法, 所以需将输入的小数左移13位并截位。将得到的输入信号以二进制补码的形式写入文本文件作为Modesim仿真的输入信号。输入信号的分布图如图11所示。

Modesim仿真时, 通过系统任务readmemb将文本文件中的数据读入到寄存器中作为输入信号, 通过仿真得到仿真波形如图12所示, 从图中可以看出输出y_out与期望输入d_in的差距很小。为了更直观地观察输出信号的仿真收敛情况, 可以通过系统任务fdisplay命令将均衡后的数据写入到文本文件, 最后利用Matlab将文本文件中的数据绘制出来, 这样就可以更直观地观察数据的收敛速度和收敛误差。图13为输出信号收敛后的分布图。从图中可以看出, 均衡器达到了良好的效果。

以上程序通过综合, 得到:

从以上结论可以得知, 具有脉动阵结构的DLMS有最高298.063 MHz的工作频率, 达到了预期高速的目的。

4 结 语

本文分析了DLMS算法, 脉动阵结构的特点, 利用重定时技术将脉动结构应用于DLMS算法中, 并通过硬件描述语言verilog将上述结构在FPGA中实现, 数据仿真的效果和最高工作频率都达到了预期的效果。本文只设计了5阶的滤波器, 阶数偏低, 只能处理码间干扰较弱的信号, 但是由于脉动阵结构的模块化和规则化, 这使得均衡器可以很容易的扩展, 以处理较强码间干扰的信号, 并且最高频率也不会有很多损失。本次脉动阵结构DLMS的设计, 为以后更高速均衡器的设计打下了基础, 也为其他算法脉动阵结构的设计指明了方向。

参考文献

[1]陈自力, 孙锦涛, 田庆民.无人机数据链路信道LMS和RLS自适应均衡性能比较[J].无线电工程, 2003, 33 (11) :33-36.

[2]邱天爽.通信中的自适应信号处理[M].北京:电子工业出版社, 2005.

[3]LONG G, LING F, PROAKIS J G.The LMS algorithmwith delayed coefficient adaptation[J].IEEE Transactionson Acoustics, Speech and Signal Processing, 1989, 37 (9) :1397-1405.

[4]赵春晖, 张朝柱, 王立国.自适应信号处理技术[M].北京:北京理工大学出版社, 2009.

[5]PARHI K K.VLSI数字信号处理系统设计与实现[M].北京:机械工业出版社, 2004.

[6]何宾.FPGA数字信号处理实现原理及方法[M].北京:清华大学出版社, 2010.

[7]HERZBERG H.HAIMI-COHEN R.A systolic array reali-zation of an LMS adaptive filter and the effects of delayedadaptation[J].IEEE Transactions on Signal Processing, 1992, 40 (11) :2799-2803.

DLMS算法 篇2

关键词:CORDIC,DLMS,导航抗干扰,空时二维自适应算法

0 引 言

卫星导航 系统是最 近半个世 纪发展起 来的通过 卫星作为通 信平台的 无线电通 信导航系 统 ,该系统能 提供全天候 连续高精 度的位置 、速度和 精密时间 信息 [1], 现在已成为 军事大国 在战争中 获得军事 优势的重 要手段之一 , 所以具备 抗干扰能 力、能够 抵抗来自 不同敌对 力量的各种 干扰的导 航接收机 在未来的 军事应用 中具有重要 的意义。

1 抗干扰方案

目前 ,在导航系 统中应用 比较多的 是空域自 适应算法和 空时联合 自适应算 法。空域 自适应算 法实现简 单 ,耗资源少 , 但由于其 只能在空 域上进行 滤波 , 所以对于宽 带干扰的 抑制能力 有限 , 容易形成 零陷点扩 散和偏移 ;而空时联 合自适应 算法可以 利用每个 天线阵元 后面的延时 抽头来增 加自适应 算法的频 率响应 ,从而提高 算法对宽带 干扰的抗 干扰能力 。空时自 适应算法 的结构如图1所示[2]。

本文采用 功率倒置 算法来实 现自适应 抗干扰 , 该算法是基 于线性约 束最小方 差 (LCMV) 准则的 , 算法使自适 应阵列的 输出功率 最小 [3]。对于导 航信号和 干扰 , 功率倒置算 法均对其 进行抑制 , 输入阵列 信号能量 越大 ,算法零陷 深度就越 深 ,由于干扰 信号通常 情况下为 压制式干扰 ,其能量远 远大于负 信噪比的 导航信号 。所以功率 倒置算法 适合卫星 导航抗干 扰。图2为空时二 维功率倒置 算法结构 框图。

将LMS算法应用 于功率倒 置算法 ,即将第一 路天线接收到的 信号作为 参考信号 , 其他支路 信号通过LMS算法加权 求和逼近 第一路天 线信号 , 相减输出 , 从而使得输 出信号功 率尽量小 。

2 一种无乘法器的 DLMS 算 法设计

在实际工 程中对LMS算法进行 硬件实现 , 如FPGA实现等 , 受限于硬 件处理速 度 , 无法在较 高的采样 率的一个快 拍中完成 迭代运算 ,需要引入DLMS(延时最小 均方 )算法[4]。DLMS算法是在 权值更新 和误差计 算中的乘法 和加减法 运算中引 入延时单 元D, 当前DLMS算法的权值 更新是用 经过延时D以后的误 差信号和 输入信号来 完成的 ,加入延时 信息后的DLMS算法公式 如下。

当延迟小 于系统阶 数时 ,误差梯度 :

此时延迟 后的数据 不降低收 敛速度。 由于采用 空时二维自 适应算法 , 所以系统 阶数较空 域自适应 算法大 ,更适用于 流水线设 计。

在FPGA中 ,乘法器资 源非常宝 贵 ,一般较为 昂贵的FPGA中才有较 多的乘法 器核。设 计使用CORDIC算法实现乘 法运算 ,不过其缺 点是如果 要得到较 高的运算 精度 ,则运算需 要多级 ,会引入较 大的延迟 。若是将 其使用在空 域DLMS算法中 , 并要求较 高的计算 精度 , 则带来的延 迟会引起 梯度估计 的较大误 差 ,同时还会 影响收敛速 度 ; 空时二维 自适应算 法具有较 大的系统 阶数 , 所以CORDIC算法引入 的延迟不 会对梯度 估计造成 较大的误差 ,同时对DLMS算法的收 敛速度也 没有影响 。所以本设 计使用CORDIC算法来实 现DLMS算法中的 乘法运算 ,并结合设 计要求对 相关参数 设计进行 了介绍。

2 . 1 基 于 CORDIC 算 法 的 乘 法 器 设 计

CORDIC ( Coordinate Rotation Digital Computer ) 算法具有圆 周和向量 两种模式 ,在两种模 式下能够 计算正弦 余弦、反正切 、平方根、双 曲余弦正 弦、乘除法 等运算[5]。在CORDIC算法的圆 周模式下 能够完成 乘法运算 , 其迭代方程 如式 (5)~式 (7)所示。

但是传统的CORDIC乘法运算只有满足|z0|<2的情况下,计算结果才是正确的,表1为CORDIC算法的MATLAB仿真结果 ,可以看出 确实|z0| > 2时计算结 果错误。

考虑到FPGA中的运算 都是整数 的运算 , 所以对传统CORDIC乘法运算 进行修改 , 将式 (5)、式 (6) 中的2-i改为2i, 并且迭代 以变量i的降序来 进行。假 设系统的AD采样位数 为16位 , 所以为保 证乘法运 算精度 , 设计16级CORDIC迭代 , 即是变量i从16开始降序 迭代。修改 后的CORDIC运算迭代 结构示意 图如图3所示。运 算的最终输 出为result=y0+ x0z0。表2为修改后 的CORDIC乘法运算 的结果。 从表2中可以看 出 ,在16位位宽下 修改后的CORDIC算法能保 证整数运 算的正确 。

CORDIC算法容易 实现流水 线设计 , 在每一级 迭代之间 (P15、P14、P13…… ) 均可引入 流水线 , 从而提高 设计的速度 。本设计 使用CORDIC乘法单元 代替DLMS算法中的乘 法运算 , 并在CORDIC乘法单元 中引入适 当的流水寄 存器 ,从而提高CORDIC乘法单元 的运行速 度。

2 . 2 空 时 二 维 DLMS 算 法 的 时 域 抽 头 数 设 计

空时二维DLMS算法的参 数设计关 键在于确 定天线阵列 后的抽头 数。抽头 数决定了 空时二维 自适应算 法的阶数 ,同时决定 了算法中 能引入流 水线的上 限和对宽 带干扰的抗 干扰能力 。分析干 扰信号被 抑制的程 度 ,采用求解未 抗干扰前 干扰信号+噪声的功 率和抗干 扰后干扰信 号 + 噪声功率 的比值作 为标准。 用式 (8) 表示 ,INR称为干扰抑 制比 :

使用宽带 干扰建模 进行仿真 , 得到干扰 抑制比结 果如表3所示。从 表3中可以看 出 ,延迟抽头 数P增加会使DLMS算法的干 扰抑制比 增加 , 不过同时 会增加自 相关矩阵R的条件数 , 使R病态 , 导致DLMS算法收敛 性能降低。当P过大时反而会降低干扰抑制比,同时会增加硬件实现 的资源消 耗。所以 系统综合 选取抽头 数P=5。

2 . 3 空 时 二 维 DLMS 算 法 的 simulink 实 现

本文采用Simulink完成算法 设计的仿 真 , 图4为使用CORDIC乘法单元 实现的复 数乘法器 , 其中CORDIC乘法单元 的结构如 图3所示。复 数乘法器 的表达式 为 :

设计使用CORDIC乘法单元 完成式 (9) 中的4个乘法运算 ,再结合一 次加法运 算和一次 减法运算 从而完成复 数乘法器 。CORDIC乘法单元 中具有16级迭代单 元 ,设计插入 流水线以 增加硬件 的运算速 度。由于 抽头数选择 为5,则系统阶 数为5×4-1=19,考虑不影 响梯度的 估计 ,这里设计 在16级迭代单 元中插入8级流水 ,使得梯度估 计延迟数 为11个延迟单 位 ,小于系统 阶数 ,不会影响DLMS算法的收 敛性能。 图5为四天线 、抽头数为5、步长取μ=2-4 的DLMS抗干扰算 法的第一 路天线后 端的4路抽头的 迭代模块 的结构示 意图。

设计中需 要考虑的 一个问题 是要保证 流水线后 的数据同步 地进行处 理。设计 中CORDIC乘法器引 入了8个单位的 延迟 ,再加上4路天线后 时域抽头 输出的yi( n )( i = 1 , 2 , 3 , … , 19 ) 相加过程 中引入两 级加法树 延迟 ,所以y(n) 的延迟是10个单位的 延迟 , 需要将参 考信号d ( n ) 也延迟10个单位后 保持与y ( n ) 的同步 , 同时参考 信号d (n ) 与y (n ) 相减的减 法器后再 加入一级 延迟 , 使得e ( n ) 的延迟数 为11个单位 , 所以需要 将输入信 号u ( n )延迟11个单位后与e(n)相乘得到梯度估计,如图5所示。

3 测试结果及分析

利用Simulink对实测采 集数据进 行算法的 仿真 , 其中采集数 据的参数 为4路天线数 据 , 中频信号 频率为46 . 52 MHz , 带宽为20 . 46 MHz , 采样率为65 . 28 MHz。实验中给 系统添加 了一个50 d B干信比的1 268.52 MHz的单频干 扰信号和 一个65 d B干信比的 宽带QPSK信号 ,信号中心 频率为1 268.52 MHz,带宽为20 MHz,其信号频谱如图6所示。仿真输出结果如图7和图8所示。其中图7为基于CORDIC算法的DLMS抗干扰算 法的输出信号e(n)的频谱,从结果中可以看出,在数字中频18.76±10 . 23 MHz频段 , e (n) 输出的频 率分量与 输入信号 频谱相比较 , 加入的单 频和宽带 干扰被有 效地抑制 了 , 带内功率谱密度 降低为-80 d Bm/Hz, 提高了输 出的信干 噪比。图8为普通DLMS算法与基 于CORDIC算法的DLMS算法的权向 量ω11的收敛曲 线的比较 。从结果中 可以看到 ,基于CORDIC算法的DLMS算法没有 影响算法 的收敛性能 以及最终 的最佳权 向量。

4 结 束语

DLMS算法 篇3

智能电网作为下一代电力能源体系,一个重要的特性就是利用高速、可靠、安全的数据通信网络实现对电力系统高效智能化的运营管理,智能电网的发展对信息安全提出了更高的要求[1]。信息安全就是要保证在通信网络上传输的报文安全。高级量测体系(Advanced Metering Infrastructure,AMI) 作为智能电网实现的第一步[2],遵循IEC62056通信标准的集中器是其中关键的报文传输设备。集中器用于与数十或数百个用户的智能电表进行通信,采集、存储与处理多块电表的数据,承担着电网公司和用户的双向通信任务[3]。AMI的信息在传输与交换过程中,非法人士很容易对通信报文进行入侵、蓄意篡改、伪造或者泄密,这将造成上传数据紊乱、用户计费错误、下传命令失效 / 错误、用电中断和需求侧严重失真等后果[4],进而给电力系统的安全稳定运行和可靠的用电需求带来威胁。智能化的电网运行严重依赖于大量的数据采集和信息处理,须保证数据集中器中传输通信报文的安全性[5],因此,作为AMI系统中数据传输的中心环节,集中器通信安全的研究显得尤为重要。

文献[6] 提出一种基于椭圆曲线密码的数据集中器通信报文混合密码算法,该算法同时具有报文加密和数字签名的功能,具有较强的安全性,但和对称算法相比,计算复杂且速率低,消耗大量硬件资源。文献 [7] 采用基于RSA加密算法的一次一密技术对数据进行处理,同时增加冗余字节、固定长度分组传输的通信方案来保证数据通信的安全性,但RSA算法受到大数产生技术的限制,很难实现一次一密。上述文献虽然主要围绕解决报文加密问题的算法展开研究,但未考虑具体的集中器通信安全防护方案。

本文在阐述集中器面临通信风险的基础上,考虑集中器通信的安全需求,结合设备语言报文规范 /能量计量配套技术规范(Device Language Message Specification/Companion Specification for Energy Metering,DLMS/COSEM)协议安全机制设计的集中器通信安全防护技术方案,注重集中器与通信对象的数据访问控制(双向身份验证)和数据传输安全实现方法。设计中所有数据的加解密均采用硬件方式实现,主站侧配置密码机,集中器、电表中嵌入专用的安全处理芯片即嵌入式安全模块(Embedded Secure Access Module,ESAM),芯片集成AES128对称加密算法并保存加密密钥。根据不同密钥类型与分布特点,文章还设计密钥分散机制,应用椭圆曲线集成加密方案(Elliptic Curve Integrated Encryption Scheme,ECIES)对集中器全局对称密钥进行更新,增加密钥存储安全,进而增强集中器通信安全防护技术方案的可行性。

1 集中器通信安全问题分析

1.1 DLMS 协议安全服务模型

DLMS/COSEM协议是适 用于AMI系统通信的一套国际标准,可以为AMI系统中的各个组成部分提供互相连接、互相操作的服务。协议共分为物理层、链路层、应用层,通信双方采用客户端 / 服务器架构作为数据通信的基础。以集中器为界,分为上行通信和下行通信,上行通信中,主站系统充当客户端,集中器作为服务器;下行通信中,集中器充当客户端,电表作为服务器。DLMS服务安全架构如图1所示。

ACSE用于建立、维护和断开应用连接,x DLMS_ASE提供应用层的数据传输服务[8]。在相对开放的通信环境中,x DLMS_ASE应用层的数据传输服务需要增加相应的安全策略保证通信双方信息的安全性。

1.2 集中器通信安全需求及应对策略

AMI系统与智能电网其他通信系统一样,在其应用环境中存在大量的安全风险。客户端与服务器在应用层之间进行数据交互时,应用服务数据传输常面临的入侵方式有:窃听、截取、伪造、数据篡改、重放等风险;数据存储面临关键应用数据(密钥等)的泄露风险;系统面临未授权设备或非法设备(例如:仿冒主站)进行破坏的风险,因而集中器通信安全需求包括以下方面。

1)通信报文内容安全。集中器的通信报文不得被非授权用户获得,不被肆意篡改,数据集中器接收到的通信报文确为指定通信地址发送过来的真实报文,即集中器通信报文的机密性与完整性。

2)通信报文的有效性和可用性。集中器和通信对象确保数据的有效性和实时性,抵抗重放攻击,一般情况下,在数据传输过程中加入随机数RS,可以保证消息的新鲜性来满足数据的可用性要求。

3)数据集中器通信服务不可否认性。集中器和通信对象不能否认各自发送和接收报文行为[9,10]。

上述的集中器通信安全需求内容中,通常意义下,信息安全需求包括机密性、完整性和可用性3个方面。为了保证这3方面的安全需求,需要采取相应的安全策略。本文设计的的通信安全防护技术包括数据访问控制和数据传输安全,数据访问控制(双向身份验证)为不同的通信信道环境和用户提供了不同安全级别的认证机制,以保证集中器与目标对象的身份认证及接入控制。数据传输安全基于AES128-GCM(加密带认证模式)对称算法,能够有效保证数据传输的机密性和完整性,消息认证码T是用于保障数据完整性传输的有效手段。为满足数据可用性安全需求,在数据传输设计中加入了“询问 - 应答”方式,即用户A向B发出一个一次性随机数RS作为询问,如果收到B发来的应答消息也包含正确的一次性随机数,A就认为消息是新的并接受。通过以上关键技术的应用能很好地满足集中器的通信安全需求。

2 DLMS/COSEM 协议安全机制的关键技术

2.1 分级身份验证的数据访问控制

1.2节提到的数据访问控制(双向身份验证)有3种级别:最低安全级别、低安全级别、高安全级别,本设计中采用的是高安全级别。

高安全级 别(High Level Security,HLS)需要客户端与服务器在建立应用连接中使用双向认证,实际上是一种“挑战 - 应答”的4步验证机制,并在验证过程中采用加密算法和密钥。COSEM-OPEN服务原语与连接类LN(Class_id=15)用于支持HLS认证过程,这种安全级别的验证机制在信道不能充分保证防止偷听和报文反演时采用。客户端与服务器都要通过安全身份认证,HLS双向身份认证流程如图2所示。

由图2可以看出,其具体的4步“挑战 - 应答”验证过程如下。

1)客户端发送一个C to S的“挑战码”至服务器,C to S是一个8字节的随机数,客户端对服务器的挑战包含在AARQ.apdu的calling-authenticationvalue中。

2)服务器发送一个S to C的“挑战码”至客户端,S to C是一个8字节的随机数,服务器对客户端的挑战包含在AARE.apdu的认证码字段中。

3)客户端使用HLS认证机制中Galois消息认证代码(Galois Message Authentication Code,GMAC)算法[11,12]将S to C码进行演算并得到结果f(S to C),然后客户端将f(S to C)返回给服务器。服务器同样以GMAC算法演算S to C码并将演算结果与客户端发来的f(S to C)进行比对,如果比对结果一致则客户端单方面通过服务器的身份认证,否则身份认证失败。

4)如果客户端身份认证成功后,服务器同样以GMAC算法将C to S码进行演算,将计算结果f(C to S)返送给客户端。客户端内部演算C to S码并比对f(C to S)以确定服务器能否通过身份认证,若比对结果正确,则服务器身份认证成功且双方建立应用连接,否则客户端结束本次连接。

以上客户 端与服务 器的4步认证过 程是在AARQ.apdu和AARE.apdu的交互中 实现的。 步骤1由客户端 应用层COSEM-OPEN.request服务原语支持,服务参数Security_Mechanism_Name携带HLS认证标识 符,Calling_Authentication_Value参数携带C to S“挑战码”。步骤2由服务器应用层COSEM-OPEN.response服务原语 支持,服务参数Security_Mechanism_Name携带HLS认证标识符,Responding_Authentication_Value参数携带S to C“挑战码”。完成步骤1、2后,客户端和服务器之间已经建立了普通的应用层连接,但是客户端的安全访问还被限制在连接类LN对象(Class_id=15)的reply_to_HLS_authentication方法上。

步骤3和步骤4是由客户端与服务器中的连接类LN对象的方 法reply_to_HLS_authentication实现,如果步骤3、4都能成功通过验证,应用层连接则完全建立,否则客户端或服务器退出应用连接。此外,连接类LN对象还提供change_HLS_secret的方法,其具体定义参见IEC62056-62标准[13]。

2.2 数据传输安全的最优方案选择

信息安全就是要保证在通信网络上传输的报文安全。DLMS/COSEM标准定义客户端与服务器成功进行访问身份验证后,还应保证数据在传输过程中的机密性、完整性、可用性和鉴权特性,即数据传输安全。AES128-GCM加密算法是为了保证数据传输的机密性,消息认证码T保证数据的完整性及鉴权,帧计数器FC用于数据防重发,随机数RS保证数据交互的可用性。集中器中嵌入ESAM模块实现数据安全传输,x DLMS APDU数据加 / 解密处理框架如图3所示。

为便于读者对集中器ESAM模块数据加解密处理机制的理解,有必要先对图中参数进行简要说明。

其中Tag:帧标签,长度8 bits。通过Global key进行安全 保护,glo-get-request的标签码 是 [200],对应十六进制值为C8 ;glo-set-request的标签码是[201],对应十六进制值为C9。

Len:指明帧长 度字段,包括安全 头(Security Header,SH)、明文 / 密文、T的总长度。

SH:由安全控制域(Security Control,SC)与帧计数器(Frame Counter,FC)组成,即SH=SC||FC。SC是8 bits长度的控制字,包括SC-A、SC-E、SCAE。其中Bit4 :“A”置1表明认证x DLMS APDU,置0表明未认证;Bit 5 :“E”置1表明加密x DLMS APDU,置0表明未加密。FC定长32 bits,由发送方和接收方相互约定进行帧计数,帧计数器的累加能有效防止数据的重发攻击。

T:消息认证码,一个固定大小的数据块加入到消息中然后传输,接收方利用与发送方共享的密钥进行鉴别认证,对加密数据进行校验鉴别消息的完整性,防止数据被有意篡改。

基于DLMS关于SC的定义,针对不同 类型的客户端,DLMS/COSEM协议为数据传输提供了3种安全策略级别:所有信息只加密、所有信息只认证、所有信息既加密又认证。安全策略级别由安全设置(Class_id=64)对象的security_policy属性决定,同时该对象也包含固定值System title属性和传输 全局密钥(global_key_transfer)的方法。不同类型客户端的数据传输安全策略级别见表1所列。

考虑到通 信报文对 机密性、完整性及 鉴权的安全需求,集中器通信安全的最优方案选择安全策略级别3,AES128对称算法采用GCM(加密带认证)模式,对x DLMS APDU进行加密 带认证传输。由图3可见,集中器ESAM模块加密带认证数据操作:输入检查项有P、AAD、EK、IV,返回C及T,集中器给通信对象发送完整的密文组帧格式为Tag||Len||SH||C||T;集中器ESAM模块解密带认证数据操作:输入检查项T、C、AAD、IV、EK,返回P。加密带认证输入 / 输出见表2所列。

由此可见,集中器与ESAM模块加密过程是:将明文数据送入ESAM,ESAM进行密文 +T运算,返回给集中器密文 +T数据包;ESAM模块解密过程是:将密文 +T的数据包送入ESAM,ESAM首先对消息认证码T进行数据校验,校验通过再将密文数据进行解密,返回给集中器有效的明文。

3 集中器通信安全防护技术方案设计

基于对集中器数据访问控制和传输安全关键技术的应用,提出其具体的防护方案,加密机和ESAM的部署架构如图4所示。主站侧配置密码机、集中器和电表中嵌入专用的安全处理芯片ESAM,集中器与电表所有报文数据的加解密均采用硬件方式实现。

3.1 通信安全密钥的类型和分布

集中器通信安全防护系统中,密钥是确定密码算法的一个参数,包含的密钥类型有Global Key、Authentication Key、Public Key、Private Key。

1)Global Key:全局对称密钥即EK、AK,用于通信时信息加 / 解密与认证的对称密钥,生命周期长,包括Global Unicast Encryption Key:非广播通信中时用到加密密钥;Global Broadcast Encryption Key:广播通信时用到的加密密钥,所有表的广播密钥一致;Global Authentication Key:认证密钥。

2)Authentication Key:认证密钥AK,信息需要认证时作为AAD的一部分参与运算,可用于单播 /广播通信。

3)非对称密 钥由密钥 管理系统 产生,包括Public Key和Private Key。公钥用于验证签名和加密信息;私钥用于对信息签名和解密公钥加密的信息。正式运行时,系统密钥分布见表3所列。

需要说明的是,ESAM中集成的AES128加密算法是公开的,若通信双方长期使用同样的密钥,通过对加密密文内容进行足够的统计分析,并对密钥进行大量的的穷举搜索,密文就能够破解,无法保证通信数据绝对的安全性。因此在实际应用中,密钥的生存期越短,破译的机会越小,用户应该对所使用的密钥进行定期或不定期的更新。

3.2 密钥的生成方法和更新机制

本方案采用的是AES128-GCM对称算法,所以相应设计了全局对称密钥的生成及更新机制。全局对称密钥Global Keys的生成采用分散机制,分散顺序先集中器再电表。主站全局密钥经过集中器分散因子得到对应的集中器全局密钥,得到的集中器全局密钥存在于加密机中用于算法计算;集中器全局密钥通过电表分散因子分散得到对应的电表全局密钥,得到的电表全局密钥存在于集中器ESAM模块中用于计算,其具体分散关系如下。

1)集中器全局密钥 =AES128-GCM(加密,主站全局密钥,集中器分散因子),其中集中器分散因子是用于分散得到集中器全局密钥的因子,集中器分散因子 = 集中器号(6 B)||密钥类型(1 B)||密钥版本号(1 B)。

2)电表全局密钥 =AES128-GCM(加密,集中器全局密钥,电表分散因子),其中电表分散因子是用于分散得到电表全局密钥的因子,电表分散因子 =电表表号(6 B)||密钥类型(1 B)||密钥版本(1 B),全局密钥分散过程如图5所示。

集中器全局密钥Global keys更新使用ECIES机制[14],主站先更新集中器的密钥,然后将要更新的电表的密钥发送给集中器,最后由集中器负责更新电表的密钥。密钥更新顺序如图6所示。

更新的主要业务流程:首先主站与集中器建立应用连接,连接建立后主站发起更新集中器对称密钥任务,加密机通过ECIES方式用主站私钥CRK、集中器公钥SPK、参数P1和P2、全局对称密钥Gk导出集中器将要更新的密钥的密文和Tag,并将密钥的密文和Tag组帧“Gk-Tag||Gk-E”传递给集中器。集中器收到密文和Tag后对其进行验证并用ECIES方式导出全局对称密钥Gk。集中器密钥更新完成后,使用更新的Gk加密集中器号IDS得到向主站返回的身份认证信息密文C1,主站收到C1后对其进行解密验证,若验证成功,则密钥更新结束,全局密钥更新流程如图7所示。

3.3 主站与集中器的上行通信安全防护设计

主站与集中器上行通信中,主站充当客户端发送请求命令,集中器作为服务器响应数据,加密带认证的数据传输具体实现流程如下。

1)主站系统与集中器以HLS建立应用连接,即双方身份验证成功后,主站向加密机发起数据抄读命令Get.request。

2)加密机取 随机数RS,用集中器Global Encryption Key对“Get.request||RS”进行加密 得到密文C1,并用集中器Global Authentication Key对密文C1进行签名得到T1,结果C1||T1返回给主站系统。

3)主站系统 以Tag||Len||SH||C1||T1格式组帧,发送给集中器。

4)集中器判断Tag是否为C8,若是,则将C1和T1发送给集中器ESAM。集中器ESAM用Global Authentication Key解密验证T1,合法则用 集中器Global Encrytion Key对密文C1进行解密得到Get.request||RS。

5)集中器执行数据抄读命令Get.request,返回数据抄读结果Get.confirm。

6)集中器通 过ESAM用Global Encryption Key对“Get.confirm||RS”进行加密 得到C2,并用Global Authentication Key对C2进行签名得到T2,结果C2||T2以Tag||Len||SH||C2||T2的帧格式 返回给主站系统。

7)主站判断此帧内容并将C2和T2传给加密机,加密机用Global Authentication Key验签T2,合法则用Global Encryption Key进行解密得到数据Get.confirm和RS’。

8)最后比对随机数RS与RS’,相同则保证了实时数据的可用性,抄读数据成功。

3.4 集中器与电表的下行通信安全防护设计

集中器和电表下行通信中,集中器充当客户端向电表发送请求数据命令,电表作为服务器进行响应,加密带认证的数据传输具体实现流程如下。

1)集中器与电表以HLS建立应用连接,集中器向ESAM取随机数RS。

2)集中器ESAM用电表的Global Encryption Key加密“Get.request||RS”得到密文C1,并用电表Global Authentication Key对密文C1进行签名得到T1,结果以Tag||Len||SH||C1||T1格式组帧发给电表。

3)电表收到分帧后判断Tag是否为C8,若是则将C1和T1发送给电 表ESAM,电表ESAM用Global Authentication Key验证签名T1,合法则用电表Global Encryption Key对密文C1进行解密得到Get.request和RS。

4)电表执行数据抄读命令Get.request,返回数据抄读结果Get.confirm。

5)电表ESAM用Global Encryption Key对“Get.conf irm||RS”进行加密得到C2,并用Global Authentication Key对C2进行签名 得到T2,结果C2||T2以Tag||Len||SH||C2||T2的帧格式返回给集中器。

6)集中器收 到分帧并 发送给ESAM,集中器ESAM用电表Global Authentication Key验签T2,合法则用电表Global Encryption Key对C2进行解密,得到数据Get.confirm和RS’。

7)最后集中器比较随机数RS与RS’,数据一致则存储返回的抄读信息结果。

4 结语

信息安全问题是AMI系统建设中的关键问题,文章通过为每个集中器配置专用的ESAM芯片,实现4步双向身份验证、数据加 / 解密、密钥存储功能,保证信息传输的机密性、完整性、可用性3个方面的安全需求,提高了通信网络的安全性。基于国际规约DLMS/COSEM,把加密工作从主处理器转移到ESAM的硬件加密方案,能有效提高系统对数据的加解密速度,增强AMI系统通信安全防护水平。

摘要:针对高级计量架构(Advanced Metering Infrastructure,AMI)系统中集中器通信安全风险,文章从集中器通信报文的机密性、完整性和可用性的安全需求出发,结合国际规约设备语言报文规范/能量计量配套技术规范(Device Language Message Specification/Companion Specification for Energy Metering,DLMS/COSEM)安全机制,对集中器通信安全防护进行详细设计,具体包括用于通信双方进行身份验证的数据访问控制与对数据传输进行加密带认证保护的数据传输安全,并提出嵌入式安全模块(Embedded Secure Access Module,ESAM)、加密机在内的上行、下行数据交互的硬件加密方案。为降低上行、下行通信过程中密钥的破译风险,采用密钥分散机制生成集中器的全局对称密钥并应用椭圆曲线集成加密方案(Elliptic Curve Integrated Encryption Scheme,ECIES)进行密钥更新,增加了系统硬件加密方案的可行性。研究表明,基于DLMS/COSEM协议的集中器通信安全防护技术能够提高AMI的信息安全防护水平,保证数据传输的机密性、完整性和可用性。

【DLMS算法】推荐阅读:

扩展算法07-16

蝶形算法07-18

区间算法07-18

搜索算法07-19

矩阵算法05-13

回归算法05-15

光流算法05-16

边缘算法05-16

查询算法05-17

映射算法05-26

上一篇:质量的经济性下一篇:网络春晚