《智能变电站密钥安全系统的实现.docx》由会员分享,可在线阅读,更多相关《智能变电站密钥安全系统的实现.docx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要针对智能变电站对密钥的性能需求,建立安全性与实时性需求模型,明确密钥安全系 统的基本功能,进而构建完整密钥安全系统以充分保障密钥安全。根据IEC61850和 IEC62351标准的密钥安全需求,各合并单元密钥安全系统应采用相同的密钥生成算法,保 证密钥一致性;具备主动攻击检测的灵敏性;生成的密钥具备随机性和混沌性;采用星型 拓扑结构,保证通信网络的稳定性;采用对称报文加解密密钥,满足通信实时性。论文在Quartus II软件上设计密钥安全系统各功能模块,并利用ModelSim-Altera软件 对各功能模块和总体整合模型进行仿真。其中设计密钥生成模块,采用基于有限域的二元 对称多项式密钥生
2、成算法,据仿真结果观察密钥生成功能实现情况;设计随机数生成模块, 生成高随机性的随机数验证数据可靠性;设计密钥保存模块,采用高级加密标准算法生成 报文安全信息,避免密钥暴露在信道中被攻击者截获;设计主动攻击检测模块,对攻击者 常见攻击手段进行防御。整合以上模块,在FPGA硬件平台上实现密钥安全系统的功能与性能测试,验证密钥 安全系统确保密钥安全的能力。根据测试结果,密钥安全系统可在软件和硬件两个层面实 现对智能变电站中报文信息加解密密钥的安全保护,并且能够降低密钥泄漏风险、保护密 钥免受常见攻击手段干扰,具有较好的实时性、安全性性能。关键词:智能变电站;密钥安全;密钥安全系统;FPGA求。/(
3、% + % + 工2 + + %)_()J=()()J=()+X2+.+ Xm)i 产 +% m(2)式(2)中,xl ,x2,xm取各节点ID, aij,m,n为自定义系数,mod为求余运算,q为 大素数,mod (q)即为在有限域GF (2128)下将得到的结果取模。二元对称多项式构成 密钥池,在保证高连通率的基础上,也能增强网络的安全性。并且采用对称密钥满足轻量 性的要求,运算相对简便,实时性更好。综上所述,采用基于有限域的二元对称多项式密钥生成算法进行智能变电站密钥安全 系统的实现。3.2.高级加密标准算法+ :明文轮密钥加字节代换1.1.行移位|列混合|是1轮密钥加字节代换行移位轮密
4、钥加密文(结束)图3-1 AES算法加密结构图1977年美国数据加密标准(DES)算法正式公布,尽管设计缜密,能够有效防御各种新兴的密码分析方式,但是由于密钥有效长度较短,最终被攻击者利用穷举法破解。20世 纪初,高级加密标准(AES)取代了 DES,作为目前最为安全的对称加密算法,AES算法 的运算速度很快,占用资源较少,可在8位处理器上实现,具有较高的易实现性和经济性。AES算法加密结构如图3-1,总体算法包括字节代换模块、行移位模块、列混合模块 和轮密钥加模块四个部分,四个部分为一轮。查阅资料知,对128位数据应进行十轮加密 循环。采用此算法时,应将明文按照AES算法规则构成4*4的字节
5、矩阵,与轮密钥进行异 或运算。字节代换模块的作用是将来自站控层密钥管理中心的随机数与第一轮轮密钥相加后 的明文,通过S盒代换为另一个对应数据。实现S盒的手段主要分为有限域法和查表法, 而查表法的实现速度比有限域法更快,故通过查表进行字节代换,原理如图3-2。出)001劭20()3Q1I州2。20。22例的0的1的2的35()0S()lS02S()3S10S11sn513$2021$22$2330$3132S33 S , 1 图3-2字节代换原理行移位的作用是将每行元素进行移位,每一行移位位数不同。第一行不移位,第二行 循环左移一位,第三行循环左移两位,第四行循环左移三位,原理如图3-3。010
6、24030001020310ci0213f02。1310。20“22。23。22“232030的3203333303132图3-3行移位原理列混合是在有限域中进行多项式乘法运算并取余,列混合后的结果 c。)=双九)*尤)mod(一+1),实际应用中通过矩阵进行运算。轮密钥加是将列混合模块的输出(前九轮)或行移位模块的输出(第十轮)与本轮对 应的轮密钥在有限域内的加法操作。本文中为满足实时性,提高运算速度,轮密钥固定为 密钥生成模块生成的密钥。基于AES算法的安全性等优点,选择此算法作为密钥安全信息的生成算法,经密钥保 存模块生成密钥安全信息进行密钥确认,进一步保障密钥安全。第4章密钥安全系统各
7、功能模块及整合确定主要算法后,可以对密钥安全系统各功能模块进行具体设计。密钥安全系统的主 要功能模块包括密钥生成模块、随机数生成模块、密钥保存模块、主动攻击检测模块等部 分,各模块具体功能详叙如下文。完成各功能模块之后,对各模块进行整合,并对完整密 钥安全系统进行软件调试。1.2. 密钥安全系统构架智能变电站密钥安全系统安装于各合并单元,通过接收站控层密钥管理中心(KMC) 发送的密钥材料与随机数,安全高效地完成密钥协商功能。智能断路器智能断路器智能断路器智能断路器智能断路器智能断路器智能断路器智能断路器智能断路器图4-1智能变电站密钥安全系统结构模型其结构模型如图4-1所示,智能变电站中,合
8、并单元主要对一次互感器传输过来的电 气量进行合并和同步处理,并将处理后的数字信号按照特定格式转发给间隔层设备使用的 装置,是智能变电站信息共享的重要节点。因而建立以站控层为中心,合并单元为节点的 星型拓扑结构,作为密钥安全系统结构模型。采用星型拓扑结构具有以下优点:易维护管理,星型拓扑结构中心节点对所有其他节点的信息通信起枢纽作用,所以只 要对中心节点重点关注维护,就不会引发大的事故。更新配置灵活,在中心节点连接处增加或拆除终端设备,仅涉及该终端设备,易于操 作,影响范围小,适应性强。易隔离和检测故障,中心节点与各节点直接相连,支路节点检测出故障后,删除隔离 故障节点对其他支路无影响;中心节点
9、也可以根据影响范围立即检测出是否故障,并启动 备用方案。尽管物理星型拓扑的实施费用高昂,然而星型拓扑的优势却使其具有更高的性价比。 各支路节点设备通过各自独立的线缆连接到中心节点设备,即使某根线缆出现问题也只会 影响到该节点的设备,而其他支路仍可正常运行。综合考虑,选此结构作为密钥安全系统 结构模型。密钥安全系统主要完成功能如图4-2所示,运作流程如图4-3所示。密钥安全系统II密钥协商主动攻击防御I1fI I ZI高混沌性 高随机性 防中间人攻击 防重放攻击图4-2密钥安全系统主要功能Q A各节点ID 随机数xlz主动攻击检测模块正确ID密钥生成模块密钥 x|z 密钥保存模块报文安全信息随机
10、数 xlz密钥确认模块密钥 (输出) 图4-3密钥安全系统运作流程图4-2中密钥安全系统具备密钥协商与主动攻击防御功能,密钥协商后的密钥应具备 高混沌性与高随机性,主动攻击防御主要针对常见的攻击手段如中间人攻击和重放攻击 等。被动攻击是攻击者自身潜伏在通信网络中对信息进行窃取,具有很强的隐蔽性,很难 被检测出来,故对被动攻击主要采取预防手段。图4-3为密钥安全系统运作流程图各模块具体功能,首先输入各节点ID和站控层随机数,检测无误后向下传递生成密钥,保存后生成报文安全信息,发送给其他合并单元确认 后,输出密钥。1.3. 密钥生成模块密钥生成模块是密钥协商的基础。根据检测无误的节点ID和生成算法
11、,得到所有参 与协商节点ID共同影响的唯一密钥。由于该模块所在的密钥安全系统位于各合并单元,故接收信号时默认该模块所在合并 单元参与密钥协商。由此,省去判别该合并单元是否参与密钥协商的标志位的过程,进一 步提高了程序运行的速度。图4-4为密钥生成模块的工作原理图,向该模块输入参与密钥协商节点的ID,需要说 明的是,该模块接收的并不是直接的ID明文,而是经过主动攻击检测模块检测后输出的 各节点ID标志位,这样做的好处是,将预设的8个8位节点ID数据直接以1个8位数据 进行传输,可以提高传输效率,符合实时性要求。将ID数据进行求和,分别与预设系数 相除,得到二元对称多项式的二元,并与自定义多项式系
12、数矩阵幕次相乘,得到唯一密钥。(开始)Flow StatusQuartos II 64-8it VersionRevision NameTop-level Entity NameFamilyTotal logic elementsTotal combinational functionsDedicated logic registersTotal registersTotal pinsTotal virtual pinsTotal memory bitsEmbedded Multiplier 9-bit elementsTotal PLLsDeviceTiming Models图4-4密钥生成
13、模块原理图图4-5为密钥生成模块的前向仿真结果,由于目前密钥生成算法设置的系数矩阵各元 素数值较小,因而占用内存的逻辑资源比较少,在系统整合后会对系数进行调整。Flow SummarySuccessful - Mon Apr 22 12:25:36 201912.1 Build 177 11/07/2012 SJ Web Edition createcreateCydone II427/8,256(5%)335 / 8,256 ( 4%)128 / 8,256 ( 2 %)128137 / 182 ( 75 % )00/165,888(0 %)10 / 36 ( 28 % )0/2(0 %)E
14、P2C8F256C6Final图4-5密钥生成模块前向仿真Msgs/ /create_vlg_tst/eadivec-NoData-/ /create_vlg_tst/dk-NoData-/ /create_vlg_tstAnu2-NoData-/ /create_vlg_tstAnu3/ /aeate_vlg_tstAnu4-NoData-NoData-/ /aeate_vlg_tstAnu5-NoData-/ /CTeate_vlg_tst/mu6/ /CTeate_vlg_tstArxj 7-NoData-NoData-/CTeate_vlg_tst/mu8-NoData-/aeate_
15、vlg_tst/rst /aeate_vlg_tstAey /aeate_vlg_tstl/x /aeate_vlg_tstl/y-NoData-NoData-NoData-NoData-I0Q00000g0。00。000加0000000。000000000(欧)000000。皿。0。000000啦 OOOCKnoion:1000oooooooooooodoooooodoooooooooioo1 1111* ,1oooooooooooodooooooooooooodoooio图4-6密钥生成模块后向仿真图4.6为密钥生成模块的后向仿真结果,默认mul参与协商,选取mu2,mu3,mu6,mu8
16、 共同参与协商,计算得出x,y。理论上,各ID之和为20,预设系数为5和7,则x为4, y 为2,与后向仿真图4.6中最后两行二进制数据“10(F和“010”相同。代入密钥生成算法,与 系数矩阵塞次相乘,最终得出128位密钥,图中倒数第三行即为生成密钥,结果为6 7 21 5 91281010111000,在系数矩阵为8 3 4时(具体公式见第三章第一节),与理论结果相 同,可知密钥生成模块能够生成所有参与协商节点ID共同影响的唯一密钥。4.3. 随机数生成模块随机数生成模块是密钥安全系统高随机性的保障。当接收到时钟信号上升沿时自动产生一组随机数。在密钥安全系统中,判断两轮随机数是否一致,是防
17、重放攻击的主要手段,在需要对重放攻击进行防御的数据传输过程中都需要随机数。随机数生成模块用途广泛,在信道中传输的报文信息,都需要与随机数一同传输。传输过程中一旦被攻击者截获利用,随机数将起到重要的示警作用。合并单元向KMC发送通信请求后,KMC会向各合并单元发送密钥材料和随机数;密钥生成后,各节点进行确认时,也需要发送随机数。在仅考虑一次密钥协商的前提下,俩次随机数也不能一致。Flow SummaryFlow StatusQuartus II 32-bit VersionRevision NameTop-level Entity NameFamilyTotal logic elementsTo
18、tal combinational functionsDedicated logic registersTotal registersTotal pinsTotal virtual pinsTotal memory bitsEmbedded Multiplier 9-bit elementsTotal PLLsDeviceTiming ModelsSuccessful - Wed Apr 10 13:36:39 2019 12.1 Build 177 11/07/2012 SJ Web Edition random randomCydone II8 / 4,608 ( 1%)8 / 4,608
19、 ( 1%)8 / 4,608 ( 1%)8 19/89(21%)00/119,808(0 %)0 / 26 ( 0 % )0/2(0 %)EP2C5T144C6Final图4-7为随机数生成模块原理图,在复位时给随机数赋初值,之后按图4-7过程,从 7:0共8位随机数的第0位开始,通过循环移位,和第7位与操作后赋值等操作,生成新 的随机数。图4-8为随机数生成模块的前向仿真,本模块构成简单,占用逻辑资源少于百 分之一。图4-9为随机数生成模块的后向仿真,图中每个上升沿对应随机数为 848fh6f,8,hde,8,hcd每个时钟周期,产生随机数不同,满足随机性要求。4.4. 密钥保存模块密钥保
20、存模块的主要作用是,利用密钥生成模块生成的密钥,对KMC发送的随机数 采用AES算法进行加密,生成报文安全信息,同时调用随机数生成模块,产生新的随机数, 与报文安全信息一起发送给密钥确认模块进行确认。避免了确认过程中,密钥暴露在信道 中被攻击者截获的情况发生。通过AES算法对来自KMC的随机数进行加密,要求该随机数必须为128位,否则无 法完成加密功能,算法本身特性对此进行了限制。多个不同的合并单元进行密钥确认时, 密钥确认接收方同时接收报文安全信息与随机数,报文安全信息与自身产生报文相比较, 而随机数则与上轮接收随机数相比较,随机数相同判断重放攻击发生。图4-10密钥保存模块原理图图4-10
21、为密钥保存模块原理图,输入来自站控层密钥管理中心的随机数与密钥生成模 块生成的密钥,经过AES加密算法十轮计算,得到128位报文安全信息。图4-11为密钥 保存模块的前向仿真,从图中可以看出本模块占逻辑资源较多,达到一半左右,主要原因 是多个128位数据进行AES算法的S盒调用以及列混合等步骤,进行十轮循环计算,寄存 器占用较多;图4-12为密钥保存模块后向仿真,通过输入KMC发来的随机数,利用密钥 生成模块生成的密钥作为轮密钥,首先对两者异或操作,之后查表法字节代换,行移位, 列混合,加轮密钥生成报文安全信息message即图4-12中最后一行的与理论值一致。利用该报文 进行密钥确认,当各合
22、并单元密钥确认信息一致时,可以确定输出密钥一致。Flow SummaryFlow StatusQuartos II 64-Bit VersionRevision NameTop-level Entity NameFamilyTotal logic elementsTotal combinational functionsDedicated logic registersTotal registersTotal pinsTotal virtual pinsTotal memory bitsEmbedded Multiplier 9-bit elementsTotal PLLsDeviceTimi
23、ng ModelsSuccessful - Mon Apr 22 14:16:00 2019 12.1 Build 177 11/07/2012 SJ Web Edition save saveCydone II38,880 / 68/416 ( 57 % )38,880 / 68,416 ( 57 % ) 128 / 68,416 ( 1 %) 128386 / 622 ( 62 %) 00/1,152,000 (0 % )0 / 300 ( 0 %)0/4(0%)EP2C70F896C6Final图4-11密钥保存模块前向仿真Msgs/ /save_vlg_tst/eachvecVA/sa
24、ve_vlg_tst/dk /save_vlg_tst/key D-,/save_vlg_tst/kmcrand/ /save_vlg_tst/rst/save_vlq_tst/messaqe1 ooooooooo. ooooooooo.1100001111.oaooooooooooooodoooooooooooooooooooodoooooooooooooooooooo(|ooooooooooooooooooooi|iooooooooooooooooooooooooooooooooooooooo 10 io moooQooooooooooooopooooooooooooooooooooioo
25、oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo llioiliuoioilliooilioillLliaoooiiiiooooiiiiooooiiiiooooiiiiooodiiiiooooiiiiooooiiiidoooiiiiooooiiiiooooiiiiooooiiiiooodiiiioooooiioooiiooooiioooiioioioiio I图4-12密钥保存模块后向仿真45主动攻击检测模块Flow SummaryFlow StatusQuartus II 64-Bit VersionRevisi
26、on NameTop-level Entity NameFamilyTotal logic elementsTotal combinational functionsDedicated logic registersTotal registersTotal pinsTotal virtual pinsTotal memory bitsEmbedded Multiplier 9-bit elementsTotal PLLsDeviceTiming ModelsSuccessful - Mon Apr 22 17:48:27 2019 12.1 Build 177 11/07/2012 SJ We
27、b Edition search searchCydone II154/14,448(1%)150 / 14,448 (1%) 17/14,448 ( mu8共同参与协商,硬件测试中根据 实际实验条件,选择其中的mul、mu2进行验证。根据改进的密钥生成算法将x、y取为 参与协商的ID之和的五等分和七等分,矩阵系数取64位二进制数与x、y进行塞次运算 并求和。随机数生成模块,分别用于站控层密钥管理中心发来随机数与报文安全信息确认,由 于工作原理相同为节约篇幅,最终密钥安全系统中只采用了一个该模块验证重放攻击,报 文安全信息确认过程中的随机数校验已省略。该模块工作原理为,将初始值进行一系列移 位
28、和与或操作生成新的随机数。密钥保存模块,用于报文安全信息的生成,将128位数据分为16个8位数据构成4 乘4方阵进行字节代换,字节代换部分为满足实时性,采用查表法完成,之后进行行移位, 行移位是将不同行的元素进行不同位数的移位,比如第一行循环左移一位,第二行循环左 移两位,依此类推。为了能在计算机中快速实现列混合,采用矩阵来实现多项式乘法运算。 轮密钥加则采用已生成密钥,每轮列混合结束后加入轮密钥,再对应查表字节代换。十轮 后得到最终报文安全信息,留待发送给其他合并单元。主动攻击检测模块,保障密钥安全性的主要手段之一,首先将接收到的节点ID与预 存的ID池进行比照,防止ID篡改与中间人通过假I
29、D进行攻击,之后对来自站控层密钥 管理中心的随机数进行重复确认,防御攻击者重复放置截获的某次密钥材料进行攻击,确 认后将本次随机数进行保存,代替上次随机数,为下次检测做好准备。密钥确认模块,密钥安全信息之前已经生成,需要节点之间两两通信。但考虑到两两 通信过于繁琐,在实际场所中对于接收方和发送方的判定耽误大量时间,导致密钥生成后 报文信息已失效,不如将该信息统一发送回站控层密钥管理中心进行统一确认。本次验证 中,主要关注密钥一致性是否成功实现。除上述模块外,还需要数码管显示模块对生成密钥进行输出显示,根据选用的不同型 号的两台FPGA进行程序编写。由于显示过程中通过数码管显示,而数码管数量有限
30、,故 对128位数据进行转换,转为十六进制。1位十六进制数等于4位二进制数,可以将128 位二进制数据变为32位十六进制数据。合并单元mul采用Cyclone IV系列中的 EP4CE115F29c7芯片,在计数达到预设值时进行下一轮显示。合并单元mu2采用CycloneFlow StatusQuartus II 64-Bit VersionRevision NameTop-level Entity NameFamilyDeviceTiming ModelsTotal logic elementsTotal combinational functionsDedicated logic regi
31、stersTotal registersTotal pinsTotal virtual pinsTotal memory bitsEmbedded Multiplier 9-bit elementsTotal PLLs/system_vig_tst/eachvecXystem_4g_tst/dk1O/system_vig_tstAmCTand0000000000000000000./system_vg_tst#st1 /system_vg_tstAey/system_vig_tst/ed00000106sto5sto一wsto3sto一,2sto1StlL,0stoO/system_vig_t
32、stiessage/system_vg_tstAingstoO-J/system_vig_tst/seg 10000110/system_vig_tst/seg21111001O“/system_vig_tst/seg30011001ystem_vig_tst/seg401001006,/system_vg_tst/seg50100001cP /system_vlg_tst/seg60000011ooooooooDOOOOOOOOlOOQOOOOOOOOOOOtXXX)000000(X)1: :ooc 工oooooooodioooooooo.3ooo00o65loooooooodooooooood)00000000000001001ioo io hoc101111ooooooooooooooooaooooooooc10000000061000000001D00000000oooooooodloooooooobooooooodoooooooodooooooood)1101111010111101001001000C0111100匚0)匚mooo i)0-fooo lobo100100ooloiooo)0