一种分布式网络控制系统的加密认证方法与流程

文档序号:18923433发布日期:2019-10-19 03:47阅读:152来源:国知局
一种分布式网络控制系统的加密认证方法与流程

本发明属于控制网络安全领域,一种分布式网络控制系统的网络发现协议及加密认证算法。



背景技术:

信息技术革命正在渗透我们社会的每个角落计算机网络技术一日千里。信息技术的飞速发展也导致自动化领域的深刻变革现场总线以及工业以太网就是典型代表。其中工业以太网尤其引人注目工业以太网和现场总线相对于以往自动化技术有很多优势其中开放互联就是一个非常重要的特点和优势。然而事物是相对的在我们享受开放互联这些技术进步的成果的同时应该对它们存在的隐患和可能带来的严重后果要有深刻认识。

针对工业控制系统的各种网络攻击事件日益增多,暴露出工业控制系统在安全防护方面的严重不足。2003年1月,美国俄亥俄州Davis-Besse核电站和其它电力设备受到SQL Slammer蠕虫病毒攻击,网络数据传输量剧增,导致该核电站计算机处理速度变缓、安全参数显示系统和过程控制计算机连续数小时无法工作。2006年8月,美国阿拉巴马州的Browns Ferry核电站3号机组受到网络攻击,反应堆再循环泵和冷凝除矿控制器工作失灵,导致3号机组被迫关闭。2012年,位于美国加州的Chevron石油公司对外承认,他们的计算机系统曾受到专用于攻击伊朗核设施的震网病毒的袭击。

可见工业控制网络的加密认证机制在整个工业网络安全中占有很大比重,尤其对于分布式的控制网络,随时会有设备加入控制网,对于新进设备的认证就更为重要,以往我们单一的采用RSA认证的方式,但随着芯片技术以及集群运算的发展,计算能力指数级增长,RSA在高性能运算面前不再安全。考虑到控制设备一般计算能力有限的特点,一种需要运算量较小的加密认证方法成为分布式控制网络的迫切需要。



技术实现要素:

针对现有技术的不足,一种分布式网络控制系统的网络发现协议及加密认证算法

本发明的技术方案是:

一种分布式网络控制系统的网络发现协议具体按如下步骤进行:

步骤1:控制终端扫描当前分布式控制系统所在网段拥有有效IP地址的设备,将所有被占用的IP地址加入待验证序列;

步骤2:如果待验证序列是空集,执行步骤6,否则执行步骤3;

步骤3:控制终端将步骤1待验证序列中的一个IP地址作为测试IP,建立Scoket连接;如果Scoket建立成功,执行步骤4,否则执行步骤5;

步骤4:运行加密认证算法;

步骤5:将该IP地址从待验证序列中删除,执行步骤2;

步骤6:网络发现协议执行完毕。

所述步骤1,具体按如下步骤进行:

步骤1.1:检测所在网段地址为192.168.a.b;a为当前网络的ip的对应部分,即当前网络ip地址的第三位;

步骤1.2:另b=0;

步骤1.3:ping 192.168.a.b如果返回数据包,则判断该IP为有效IP,加入待验证序列,如果返回超时,则判断该IP为无效IP;

步骤1.4:如果b=256,则执行1.5,否则b的值加一,执行步骤1.3;

步骤1.5:步骤1结束。

一种分布式网络控制系统的加密认证方法,具体按如下步骤进行

步骤1:控制终端A按照RSA算子生成算法生成公钥RSA-Pub-A和密钥RSA-Pri-A,将生成的公钥RSA-Pub-A发送给分布式控制器B,控制终端A进入等待状态;

步骤2:分布式控制器B收到控制终端A的公钥RSA-Pub-A,按照RSA算子生成算法生成公钥RSA-Pub-B和密钥RSA-Pri-B,将生成的公钥RSA-Pub-B发送给控制终端A,分布式控制器B进入等待状态;

步骤3:控制终端A收到分布式控制器B的公钥RSA-Pub-B,通过组合密文向分布式控制器B发送设备信息认证请求,控制终端A进入等待状态;

步骤4:分布式控制器B收到控制终端A的组合密文,对组合密文进行解密,生成设备信息组合密文,返回给控制终端A

步骤5:控制终端A收到分布式控制器B的设备信息组合密文,对设备信息组合密文进行解密,对设备信息进行验证,如成功,系统中注册该设备;如失败,则结束该认证过程。

优选的,所述RSA算子生成算法,按照如下步骤执行:

步骤1:生成随机数δ,ε,δ∈(0,1),ε∈(0,4),δ∈N,ε∈N,另Logistic(1)=δ,集合p={2,3,5,7,11,13,17,19,23,29,31};

步骤2:Logistic(i)=ε*Logistic(i-1)*(1-Logistic(i-1)),其中i≥1,i∈N,生成备选序列

步骤3:将Logistic(i)扩大十倍;

步骤4:如果(Logistic(i)%1)不等于零,执行步骤3,若等于零;执行步骤5;

步骤5:将Logistic(i)对p中所有元素取模,如果结果中有零,将i值加一,回到步骤1;否则执行步骤6,其中对p取模可有效减少步骤6的运算量;

步骤6:运行Miller-Rabin算法对Logistic(i)进行素数验证,如果失败,返回步骤1,验证成功的Logistic(i)作为RSA算子;

步骤7:通过步骤1到步骤6得到两个RSA算子,令其中一个为RSA算子ρ,另一个为RSA算子σ,计算NRSA=ρσ,r=(ρ-1)(σ-1);

步骤8:计算e1,e2使得(e1*e2)mod(r)=1且e1,e2互质,则公钥为(NRSA,e1),密钥为(NRSA,e2)。

优选的,所述的组合密文,包括RSA加密后的生成混沌序列所用的系统时间T,RSA加密后的有效密文长度L和经过混沌加密的有效密文;每次生成组合密文,先获得当前系统时间T,初始化混沌序列,通过混沌序列加密需要发送的信息,作为组合密文的有效部分;最后将生成混沌序列所用的系统时间T和有效密文长度L通过对方的公钥RSA-Pub加密,作为组合密文的开头。

优选的,所述的混沌加密,具体按如下步骤进行:将需要加密的信息字节化,生成字符数组Text,生成字符数组Text长度为L1,逐字节进行处理,第i个字节Text[i]对应混沌序列中的Z[i]=(i,si),TextM[i]=Text[i]–i*(si%i),对Z中的s进行升序排序生成的ZZ[],其中ZZ[j]==(ij,sij),另Ciphertext[j]=TextM[ij],生成的Ciphertext[]即为经过混沌加密的有效密文。

优选的,所述的组合密文解密:具体按如下步骤进行:对组合密文的头部使用本地的密钥RSA-Pri进行解密,获得该组合密文的加密时间T和有效密文长度L,如果系统时间与加密时间T相差超过tmax则认为该组合密文失效,其中tmax为最大允许时间,对组合密文进行重新请求;如果系统时间与加密时间T相差≤tmax,则根据密文的加密时间T和有效密文长度L生成混沌序列Z,对Z中的s进行升序排序生成的ZZ[],其中ZZ[j]==(ij,sij),Text[ij]=Ciphertext[j]+–ij*(sij%ij),Text[]即为解密后的信息。

优选的,所述的初始化混沌序列,按照如下步骤执行:

步骤1:获取系统时间TA1,将其转换成64bit标准Unix timestamp格式,转换后结果为tA1,硬件逻辑电路实现n位的LFSR,n≥64;令其反馈函数为其中为使f为本源多项式的参数组;

步骤2:将Unix timestamp时间tA1作为初值输入LFSR(线性反馈移位寄存器),完成初始化,该方法可是混沌序列具有时变性,增大加密系统的破译难度,并且使密文具有时效性,即使使用暴力破解,也无法在短时间内完成。

步骤3:将初始化完成后的第i个时钟并行输出n位数据转换为数值si,并将(i,si)加入生成的二维混沌序列Z=[(1,s1),(2,s2),…,(i,si)];

步骤4:重复执行步骤3,直至序列长度等于有效密文长度L。

有益效果:

本发明针对分布式网络控制系统,提出一种分布式网络控制系统的网络发现协议,改协议可以实现对该控制网络内的设备进行有效的发现认证,并针对分布式网络控制系统中的嵌入式设备低功耗,计算能力有限等特点,本发明针对RSA加密和混沌加密两种加密方法的不足,提出一种混合加密方法,仅通过RSA加密混沌初始化的关键参数,其他数据使用混沌加密,通过RSA加密和混沌加密生成组合密文,采用组合密文的形式进行通讯,该加密方法解决了以往RSA加密需要大量的计算资源的不足,同时将Unix timestamp时间作为初始化混沌系统的参数,使加密系统是时变的,即使单次密钥被破译,并不影响先去各个密文的安全性,有效性,因为密文具有时效性,即使通过大规模计算破解了密文,该密文也会超过时效而失效,同时生成混沌序列,本发明采用硬件LFSR逻辑电路进行生成,进一步减少了设备的计算负担,并且因为是逻辑电路生成序列,增大了破译难度。

附图说明

图1为本发明具体实施方式的加密验证流程图;

图2为本发明具体实施方式的LFSR原理示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行详细说明。

一种分布式网络控制系统的网络发现协议具体按如下步骤进行:

步骤1:控制终端扫描当前分布式控制系统所在网段拥有有效IP地址的设备,将所有被占用的IP地址加入待验证序列;

步骤2:如果待验证序列是空集,执行步骤6,否则执行步骤3;

步骤3:控制终端将步骤1待验证序列中的一个IP地址作为测试IP,建立Scoket连接;如果Scoket建立成功,执行步骤4,否则执行步骤5;

步骤4:运行加密认证算法;

步骤5:将该IP地址从待验证序列中删除,执行步骤2;

步骤6:网络发现协议执行完毕。

所述步骤1,具体按如下步骤进行:

步骤1.1:检测所在网段地址为192.168.a.b;a为当前网络的ip的对应部分,即当前网络ip地址的第三位;

步骤1.2:另b=0;

步骤1.3:ping 192.168.a.b如果返回数据包,则判断该IP为有效IP,加入待验证序列,如果返回超时,则判断该IP为无效IP;

步骤1.4:如果b=256,则执行1.5,否则b的值加一,执行步骤1.3;

步骤1.5:步骤1结束。

如图2所示,一种分布式网络控制系统的加密认证方法,具体按如下步骤进行

步骤1:控制终端A按照RSA算子生成算法生成公钥RSA-Pub-A和密钥RSA-Pri-A,将生成的公钥RSA-Pub-A发送给分布式控制器B,控制终端A进入等待状态;

步骤2:分布式控制器B收到控制终端A的公钥RSA-Pub-A,按照RSA算子生成算法生成公钥RSA-Pub-B和密钥RSA-Pri-B,将生成的公钥RSA-Pub-B发送给控制终端A,分布式控制器B进入等待状态;

步骤3:控制终端A收到分布式控制器B的公钥RSA-Pub-B,通过组合密文向分布式控制器B发送设备信息认证请求,控制终端A进入等待状态;

步骤4:分布式控制器B收到控制终端A的组合密文,对组合密文进行解密,生成设备信息组合密文,返回给控制终端A

步骤5:控制终端A收到分布式控制器B的设备信息组合密文,对设备信息组合密文进行解密,对设备信息进行验证,如成功,系统中注册该设备;如失败,则结束该认证过程。

优选的,在加密认证方法中,所述RSA算子生成算法,按照如下步骤执行:

步骤1:生成随机数δ,ε,δ∈(0,1),ε∈(0,4),δ∈N,ε∈N,另Logistic(1)=δ,集合p={2,3,5,7,11,13,17,19,23,29,31};

步骤2:Logistic(i)=ε*Logistic(i-1)*(1-Logistic(i-1)),其中i≥1,i∈N,生成备选序列

步骤3:将Logistic(i)扩大十倍;即执行Logistic(i)=10*Logistic(i);

步骤4:执行步骤3后,如果(Logistic(i)%1)不等于零,重复执行步骤3,若等于零;执行步骤5;

步骤5:将Logistic(i)对p中所有元素取模,如果结果中有零,将i值加一,回到步骤1;否则执行步骤6,其中对p取模可有效减少步骤6的运算量;

步骤6:运行Miller-Rabin算法对Logistic(i)进行素数验证,如果失败,返回步骤1,验证成功的Logistic(i)作为RSA算子;

步骤7:通过步骤1到步骤6得到两个RSA算子,令其中一个为RSA算子ρ,另一个为RSA算子σ,计算NRSA=ρσ,r=(ρ-1)(σ-1);

步骤8:计算e1,e2使得(e1*e2)mod(r)=1且e1,e2互质,则公钥为(NRSA,e1),密钥为(NRSA,e2)。

优选的,在加密认证方法中,所述的组合密文,包括RSA加密后的生成混沌序列所用的系统时间T,RSA加密后的有效密文长度L和经过混沌加密的有效密文;每次生成组合密文,先获得当前系统时间T,初始化混沌序列,通过混沌序列加密需要发送的信息,作为组合密文的有效部分;最后将生成混沌序列所用的系统时间T和有效密文长度L通过对方的公钥RSA-Pub加密,作为组合密文的开头。

优选的,在加密认证方法中,所述的混沌加密,具体按如下步骤进行:将需要加密的信息字节化,生成字符数组Text,生成字符数组Text长度为L1,逐字节进行处理,第i个字节Text[i]对应混沌序列中的Z[i]=(i,si),TextM[i]=Text[i]–i*(si%i),对Z中的s进行升序排序生成的ZZ[],其中ZZ[j]==(ij,sij),另Ciphertext[j]=TextM[ij],生成的Ciphertext[]即为经过混沌加密的有效密文。

优选的,在加密认证方法中,所述的组合密文解密:具体按如下步骤进行:对组合密文的头部使用本地的密钥RSA-Pri进行解密,获得该组合密文的加密时间T和有效密文长度L,如果系统时间与加密时间T相差超过tmax则认为该组合密文失效,其中tmax为最大允许时间,对组合密文进行重新请求;如果系统时间与加密时间T相差≤tmax,则根据密文的加密时间T和有效密文长度L生成混沌序列Z,对Z中的s进行升序排序生成的ZZ[],其中ZZ[j]==(ij,sij),Text[ij]=Ciphertext[j]+–ij*(sij%ij),Text[]即为解密后的信息。

如图2所示,优选的,在加密认证方法中,所述的初始化混沌序列,按照如下步骤执行:

步骤1:获取系统时间TA1,将其转换成64bit标准Unix timestamp格式,转换后结果为tA1,硬件逻辑电路实现n位的LFSR,n≥64;令其反馈函数为其中为使f为本源多项式的参数组;

步骤2:将Unix timestamp时间tA1作为初值输入LFSR(线性反馈移位寄存器),完成初始化,该方法可是混沌序列具有时变性,增大加密系统的破译难度,并且使密文具有时效性,即使使用暴力破解,也无法在短时间内完成。

步骤3:将初始化完成后的第i个时钟并行输出n位数据转换为数值si,并将(i,si)加入生成的二维混沌序列Z=[(1,s1),(2,s2),…,(i,si)];

步骤4:重复执行步骤3,直至序列长度等于有效密文长度L。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1