
✅博主简介:本人擅长建模仿真、数据分析、论文写作与指导,项目与课题经验交流。项目合作可私信或扫描文章底部二维码。
-
在计算机迅猛发展和互联网用户不断增加的背景下,图像成为人们生活和工作中不可或缺的重要工具。然而,网络黑客窃取重要图像数据的行为对政治安全、社会稳定以及个人隐私构成极大威胁。图像具有数据量大、冗余度高、相邻像素相关性强的特点,需要新的加密方法来保护图像数据安全。混沌系统因其对参数变化的敏感性和较强的伪随机性,适用于加密领域。
-
具体加密步骤
- 密钥生成:求出图像的汉明距离、汉明逆距离、汉明反距离、像素和,然后将这四个数与用户的输入值相加得到密钥值。
- 混沌序列生成:将密钥代入到改进的 Chen’s 方程中,得到中间序列。
- 加密过程:结合中间序列,使用扩散、zigzag 置乱、DNA 编码等方法对原图像进行加密,得到密文图像。
- 扩散操作可以使图像像素值更加均匀地分布,增加破解难度。
- zigzag 置乱可以打乱图像像素的位置,进一步提高安全性。
- DNA 编码则利用 DNA 分子的编码规则对图像进行编码,增加加密的复杂性。
-
创新点
此算法创新性地将 zigzag 置乱、DNA 编码、改进的 Chen’s 混沌结合到一起,提升了加密效果。通过多种加密方法的组合,增加了加密的强度和安全性,使得破解更加困难。
二、基于粒子群算法的图像加密方法
-
优化混沌方程系数
首先使用粒子群算法优化改进的 Chen’s 混沌方程的系数。粒子群算法是一种优化算法,可以通过不断调整混沌方程的系数,使其生成的混沌序列更加随机和复杂,从而提高加密效果。 -
生成加密序列
- 将优化后的系数代回改进的 Chen’s 混沌方程并生成序列。
- 同时,将密钥代入改进的 4D 超混沌方程中,得到第二条混沌序列。
- 将这两条混沌序列组合后对图像进行扩散置乱得到密文图像。
-
适应度函数确定
适应度函数的求法是将图像进行 SHA256 处理得到对应的哈希值,再将哈希值异或处理后与用户输入值相加得到密钥。将密钥与当前改进的 Chen’s 混沌方程的系数代入方程中,得到第一条混沌序列。然后,将密文图像中各个通道的信息熵、UACI、NPCR 的和的相反数作为适应度函数值。信息熵反映了图像的随机性,UACI 和 NPCR 则衡量了加密前后图像的差异程度。通过优化适应度函数,可以提高加密算法的性能。 -
创新点
此算法创新性地提出了序列组合方法,为图像加密算法的构建提供了一种新的思路。通过将不同混沌序列组合起来进行加密,增加了加密的复杂性和安全性,同时利用粒子群算法优化混沌方程系数,提高了加密效果。
三、算法验证与应用
-
模拟仿真
使用 Matlab 平台对提出的两种图像加密算法进行模拟仿真。仿真结果表明,这两种算法均符合图像加密算法的要求,能够有效地保护图像数据安全。 -
图像加密系统制作
制作图像加密系统,为进一步推广和应用这两种算法提供了便利。图像加密系统可以方便用户对图像进行加密和解密操作,提高了算法的实用性和易用性。 -
意义与价值
通过本的工作,为图像加密领域的研究和应用提供了新的思路和方法。这两种基于改进 Chen's 混沌的图像加密算法具有较高的安全性和实用性,可以为保护图像数据安全提供有效的解决方案。
import numpy as np
# 计算汉明距离
def hamming_distance(image):
# 计算汉明距离的具体实现
pass
# 计算汉明逆距离
def hamming_inverse_distance(image):
# 计算汉明逆距离的具体实现
pass
# 计算汉明反距离
def hamming_opposite_distance(image):
# 计算汉明反距离的具体实现
pass
# 计算像素和
def pixel_sum(image):
# 计算像素和的具体实现
pass
# 改进的 Chen's 混沌方程
def improved_chens_equation(key):
# 改进的 Chen's 混沌方程的具体实现
pass
# DNA 编码
def dna_encoding(image):
# DNA 编码的具体实现
pass
# zigzag 置乱
def zigzag_scrambling(image):
# zigzag 置乱的具体实现
pass
# 扩散操作
def diffusion(image, sequence):
# 扩散操作的具体实现
pass
# 图像加密方法
def image_encryption(image, user_input):
hamming_dist = hamming_distance(image)
hamming_inv_dist = hamming_inverse_distance(image)
hamming_opp_dist = hamming_opposite_distance(image)
pixel_sum_val = pixel_sum(image)
key_value = hamming_dist + hamming_inv_dist + hamming_opp_dist + pixel_sum_val + user_input
intermediate_sequence = improved_chens_equation(key_value)
encrypted_image = diffusion(image, intermediate_sequence)
encrypted_image = zigzag_scrambling(encrypted_image)
encrypted_image = dna_encoding(encrypted_image)
return encrypted_image

import numpy as np
import hashlib
# 改进的 Chen's 混沌方程
def improved_chens_equation(coefficients, key):
# 改进的 Chen's 混沌方程的具体实现
pass
# 改进的 4D 超混沌方程
def improved_4d_hyperchaotic_equation(key):
# 改进的 4D 超混沌方程的具体实现
pass
# 粒子群算法优化混沌方程系数
def particle_swarm_optimization():
# 粒子群算法优化混沌方程系数的具体实现
pass
# 信息熵计算
def information_entropy(image):
# 信息熵计算的具体实现
pass
# 计算 UACI
def unified_average_change_intensity(image1, image2):
# 计算 UACI 的具体实现
pass
# 计算 NPCR
def number_of_pixels_change_rate(image1, image2):
# 计算 NPCR 的具体实现
pass
# 图像加密方法
def image_encryption_with_pso(image, user_input):
# 使用粒子群算法优化改进的 Chen's 混沌方程的系数
optimized_coefficients = particle_swarm_optimization()
# 生成第一条混沌序列
key1 = hashlib.sha256(image.tobytes()).hexdigest()
key1 = int(key1, 16) ^ user_input
sequence1 = improved_chens_equation(optimized_coefficients, key1)
# 生成第二条混沌序列
sequence2 = improved_4d_hyperchaotic_equation(key1)
# 组合混沌序列并进行扩散置乱
combined_sequence = np.concatenate((sequence1, sequence2))
encrypted_image = diffusion(image, combined_sequence)
# 计算适应度函数值
entropy = information_entropy(encrypted_image)
uaci = unified_average_change_intensity(image, encrypted_image)
npcr = number_of_pixels_change_rate(image, encrypted_image)
fitness_value = -(entropy + uaci + npcr)
return encrypted_image, fitness_value

3万+

被折叠的 条评论
为什么被折叠?



