利索能及
我要发布
收藏
专利号: 2022106825820
申请人: 济南职业学院
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-07
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种PLC安全通信的实现系统,其特征在于,该系统由密码服务中心和PLC终端组成;

所述密码服务中心由S盒生成器、密钥生成器、密钥计数器和国密模块组成;

所述PLC终端由国密模块、可变S盒ZUC算法、缓冲区、发送模块和接收模块组成,其中发送模块由同步标识计数器、同步数据生成器和异或单元组成;接收模块由数据分离器、密钥流分拣器和异或单元组成;所有PLC终端均集成发送模块和接收模块,可实现双向通信,双模块共享国密模块、可变S盒ZUC算法和缓冲区。

2.一种PLC安全通信的实现方法,其特征在于:

A1:S盒生成器基于Logistic混沌映射和改进型粒子群算法构造S盒,密钥生成器随机生成密钥K,密钥计数器记录密钥K的编号m;

A2:国密模块将S盒、密钥K和密钥编号m进行基于SM2或SM4的加密并发送至PLC终端;

A3:PLC发送模块进行ZUC加密和数据发送;

A4:PLC接收模块进行数据接收和ZUC解密。

3.根据权利要求2所述的一种PLC安全通信的实现方法,其特征在于,S盒生成器基于Logistic混沌映射和改进型粒子群算法构造S盒包括以下步骤:B1:基于Logistic映射作为混沌模型生成256个元素,Logistic模型为xn+1= xn*μ*(1‑xn),x∈[0,1], μ∈[3.5699456,4],在允许区间范围内随机选取x0、μ,根据模型计算x序列{x0、x1... x255};

B2:对x序列中元素扩大100倍并进行取整运算:{Xn}=[xn*100],将获得的正整数{Xn}集合编码为[X0 X1 X2 ... X255]的粒子形式;

B3:构造适应度函数,通过权衡S盒的非线性度Ns、差分均匀度δs、雪崩度Bs构造函数f(s)=asfs(Ns)+adfd(δs)+aBfB(Bs),这里定义fs(Ns)=Ns,fd(δs)=δs,fB(Bs)=Bs,as、ad、aB表示加权系数,f(s)越大则S盒综合性能越优良,适应度函数完整形式如下:f(s)= (1‑1)

B4:构造改进型粒子群算法:

(1‑2)

上式中,C1为自我认知因子;rand1()为[0,1]范围内的随机数;Pi(t)为粒子i从开始到t时刻为止搜寻过程中遇到的最优位置;Xi(t)为粒子i在t时刻所在的位置;所述位置即Xi(t)的元素排列;Pi(t)‑Xi(t)为粒子Xi(t)到Pi(t)的汉明距离;C1rand1()(Pi(t)‑Xi(t))为t时刻自我学习速度集合,所谓速度集合指Xi(t)在变化过程中交换项Q(x,y)的集合,其中x为目标项,x、y为排列顺序号而非真实数值,C1rand1()(Pi(t)‑Xi(t))经过四舍五入处理得到整数z,随机挑选Xi(t)中所有和Pi(t)不同项中的z个数值进行交换以使Xi(t)的对应项与Pi(t)相同;

C2为社会认知因子;rand2()为[0,1]范围内的随机数;G(t)为所有粒子从开始到t时刻为止搜寻过程中遇到的最优位置;Xi(t)为粒子i在t时刻所在的位置;G(t)‑Xi(t)为粒子Xi(t)到G(t)的汉明距离;C2rand2()(G(t)‑Xi(t))为社会学习速度集合,若社会学习速度集合和自我学习速度集合存在相同的目标项,则以社会学习速度的交换项为准并舍去自我学习速度的交换项;

Vmax为速度集合上限;Vi(t+1)为粒子i在t+1时刻应该更新的速度集合;Xi(t+1)为粒子i在t+1时刻应该更新的位置;

B5:基于改进型粒子群算法优化S盒;

所述B5步骤包括:

B51:进行参数设定,包括设置种群规模M;设定自我认知因子C1=0.3;设定社会认知因子C2=0.3;设定最大迭代次数Nmax;设定适应度函数理想值f(s)g;在解空间内随机选取M个解作为粒子群的初始位置Xi(0),i∈[1,M];设定粒子群最大速度Vmax;

B52:初始化最优解,设置0时刻各粒子的最优位置Pi(0)=Xi(0),从M个粒子中找到粒子群的全局最优位置G(0)=argmax{f(P1(0))...f(Pi(0))...f(PM(0))},迭代次数T=0;

B53:迭代优化,利用公式1‑2进行粒子群的迭代计算,获取粒子i在t+1时刻的速度集合Vi(t+1)和位置Xi(t+1);

利用公式1‑1计算粒子i在位置Xi(t+1)的适应度值f(Xi(t+1));

利用公式2‑1更新粒子i经过的局部最优位置:

(2‑1)

 利用公式2‑2更新所有粒子经过的全局最优位置:

G(t+1)=argmax{f(P1(t+1))...f(Pi(t+1))...f(PM(t+1))} (2‑2)迭代次数T=T+1;

B54:重复上述过程完成t时刻所有M个粒子的计算,当迭代次数T达到Nmax或已获得适应度函理想结果时,迭代结束,最终的正整数{Xn}排列即为理想的S盒结构。

4.根据权利要求2所述的一种PLC安全通信的实现方法,其特征在于,国密模块将S盒、密钥K和密钥编号m进行基于SM2或SM4的加密并发送至PLC终端包括以下步骤:C1:生成新的密钥K后密钥计数器进行计数操作获得密钥编码m,服务中心和PLC通过国密SM2或SM4算法构建非对称或对称加密通道,服务中心将加密后的S盒、密钥K和密钥编码m发送至PLC终端;

C2:PLC终端通过国密模块对SM2或SM4算法进行解密,获取的S盒和密钥K发送给可变S盒ZUC算法,密钥编码m发送给同步标识计数器;

C3:可变S盒ZUC算法的固定S盒替换为服务中心下发的可变S盒Sflexible(L1)和Sflexible(L2),此时系统内各PLC终端设备的ZUC算法架构、密钥K和密钥编码m相同;

C4:服务中心根据PLC终端密钥消耗情况周期性更新下发新的S盒、密钥K和密钥编码m。

5.根据权利要求2所述的一种PLC安全通信的实现方法,其特征在于,PLC发送模块进行ZUC加密和数据发送包括以下步骤:D1:PLC建立子线程,子线程使用密钥K和ZUC算法生成密钥字并存储于缓冲区,每个密钥产生的加密轮次由用户自定义,而每个加密轮次产生的密钥字是32位,由ZUC算法特性决定,为保证工控实时性,密钥字的生成和存储总是超前正在使用的密钥编号;

D2:获取缓冲区内的密钥流和二进制明文进行按位异或生成密文流;

D3:同步标识计数器记录加密过程中正在使用的密钥编号m、ZUC算法基于该密钥的加密轮次n,ZUC算法基于该加密轮次生成的的密钥字编号p;

D4:同步数据生成器将密文流c和同步标识m、n、p进行组合处理形成数据流d,即d=c||m||n||p;

D5:PLC发送模块完成数据封装后发送给其他PLC的接收模块。

6.根据权利要求2所述的一种PLC安全通信的实现方法,其特征在于,PLC接收模块进行数据接收和ZUC解密包括以下步骤:E1:数据分离器分割密文数据和同步标识数据,密文数据c全部放行,同步标识数据m||n||p发送至密钥流分拣器;

E2:为避免发送端部分数据流丢失造成的后续数据解密失败,密钥流分拣器根据数据分离器提取的同步标识数据的编号对缓冲区内的密钥流进行放行;

E3:异或单元将密文和密钥流进行按位异或生成明文流。