异构传感器网络的RNG-CBC密钥管理提升安全性和效率

需积分: 0 0 下载量 62 浏览量 更新于2024-09-07 1 收藏 806KB PDF 举报
本文档探讨了"基于RNG与CBC的异构传感器网络密钥管理方案",针对异构无线传感器网络存在的负载较大和大规模节点被俘获导致的安全隐患问题,提出了创新的解决方案。核心思想是利用随机数生成(Random Number Generation, RNG)和分组链接技术,以构建高效且安全的会话密钥。RNG确保了密钥的随机性和不可预测性,降低了被恶意攻击破解的风险。分组链接技术则通过将节点分组并建立链式连接,有效管理和分发密钥,降低了存储需求,提高了网络的密钥连通性。 在设计中,关键点在于通过在不同簇内广播不同的阶段标志(Phase Signatures),增强了网络的安全性。这种策略使得即使部分节点被攻破,只要其他簇内的节点保持正常,网络通信仍能维持。这种方法不仅有助于减少节点间的信息传输负担,而且当遭遇大规模节点被俘获时,通过阶段标志的动态更新,可以实现局部密钥的重新协商,从而避免全局密钥的泄露,保护了整体网络的安全。 通过理论分析和仿真实验,研究者证明了这一方案的有效性和实用性。它能够在降低存储资源消耗的同时,提升网络的密钥管理效率和安全性。因此,对于异构无线传感器网络的开发者和管理者来说,这个基于RNG和CBC的方法提供了一个值得考虑的解决方案,特别是在处理复杂网络环境中保障数据安全的关键任务上。 关键词:异构传感器网络、随机数生成、分组链接、阶段标志、密钥链,这些关键词都揭示了论文的核心技术和关注点,对于读者快速理解和定位研究内容具有重要意义。此外,文章还得到了国家“863”计划的资金支持,这表明该研究具有一定的科研价值和实际应用前景。

#------(一)方法1:基于指标体系1的结果---- #--------1.数据导入------------- library(xlsx) d1.1 <- read.xlsx('data.xlsx', '2022', encoding = "UTF-8") #读取数据 head(d1.1,10) colnames(d1.1) d1 <- d1.1[,5:ncol(d1.1)] d1 <- abs(d1) #---------2.归一化处理--------------- Rescale = function(x, type=1) { # type=1正向指标, type=2负向指标 rng = range(x, na.rm = TRUE) if (type == 1) { (x - rng[1]) / (rng[2] - rng[1]) } else { (rng[2] - x) / (rng[2] - rng[1]) } } #---------3.熵值法步骤---------- #定义熵值函数 Entropy = function(x) { entropy=array(data = NA, dim = ncol(x),dimnames = NULL) j=1 while (j<=ncol(x)) { value=0 i=1 while (i<=nrow(x)) { if (x[i,j]==0) { (value=value) } else { (value=value+x[i,j]log(x[i,j])) } i=i+1 } entropy[j]=value(-1/log(nrow(x))) j=j+1 } return(entropy) } Entropy_Weight = function(X, index) { pos = which(index == 1) neg = which(index != 1) X[,pos] = lapply(X[,pos], Rescale, type=1) X[,neg] = lapply(X[,neg], Rescale, type=2) P = data.frame(lapply(X, function(x) x / sum(x))) e = Entropy(P) d = 1 - e # 计算信息熵冗余度 w = d / sum(d) # 计算权重向量 list(X = X,P = P, w=w) } #-------4.代入数据计算权重----- # -------二级指标权重------ ind=array(rep(1,ncol(d1))) aa=Entropy_Weight(X = d1,index = ind) weight=as.data.frame(aa["w"]) weigh X <- as.data.frame(aa["X"]) X P <- as.data.frame(aa["P"]) P d1.a <- X[,c(grep("A",colnames(X)))] d1.b <- X[,c(grep("B",colnames(X)))] d1.c <- X[,c(grep("C",colnames(X)))] d1a <- as.matrix(d1.a) d1b <- as.matrix(d1.b) d1c <- as.matrix(d1.c) n1 <- ncol(d1a) n2 <- ncol(d1b) n3 <- ncol(d1c) wa <- weight[1:n1,1] wb <- weight[(n1+1):(n1+n2),1] wc <- weight[(n1+n2+1):(n1+n2+n3),1] wa <- as.matrix(wa,ncol =1) wb <- as.matrix(wb,ncol =1) wc <- as.matrix(wc,ncol =1) indexa <- d1a%%wa indexb <- d1b%%wb indexc <- d1c%*%wc d1abc <- cbind(indexa,indexb,indexc) 参考以上代码,用不同一级指标下分别计算二级指标权重,再求一级指标权重

2023-06-10 上传