混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)

混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)

  • 前言
  • 一、逆时间对称性分析
  • 二、具有逆时间对称性的单晶格状混沌与拟周期流
    • 1.逆时间对称性及哈密顿能量函数
    • 2.数值仿真
  • python代码

前言

续接混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.3)

一、逆时间对称性分析

混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第1张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第2张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第3张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第4张图片

二、具有逆时间对称性的单晶格状混沌与拟周期流

1.逆时间对称性及哈密顿能量函数

混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第5张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第6张图片

2.数值仿真

在这里插入图片描述
在这里插入图片描述
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第7张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第8张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第9张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第10张图片
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第11张图片
注意系统(3.49)产生的保守运动不能形成任何类型的吸引子。从前面两种情形下可以看出,不同的初始条件会形成不同的动态特性,诸如保守混沌、拟周期 运动,有点类似于耗散系统中隐藏的动态。
混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.4)_第12张图片

python代码

import numpy as np
from scipy.integrate import odeint
import matplotlib.pylab as mpl
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
mpl.rcParams['font.sans-serif'] = ['Times new roman']  # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

def dmove(Point, t, sets):
    a, k = sets
    x, y, z = Point
    return np.array([y * (y*y - a*a) + z * (z*z - a*a),
                     -x * (x*x - a*a) + y * z * (z*z - a*a),
                     -x * (x*x - a*a) - y * y * (y*y - a*a) + k])

t = np.arange(0, 1000, 0.01)  # 时间序列 总共有 100/0.01=10000 个点
T = np.linspace(0,100,len(t))
par_a = 2
par_k = 1

par = [par_a, par_k]
P = odeint(dmove, (-2, 2, 0), t, args=(par,))
H = 1 / 2 * (P[:, 0]**2 + P[:, 1]**2 + P[:, 2]**2)  # 哈密顿能量
dH_dt = par_k * P[:, 2]

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(P[:, 0], P[:, 1], P[:, 2], lw=0.7, c="b")
ax.set_xlabel('x', fontsize=12)
ax.set_ylabel('y', fontsize=12)
ax.set_zlabel('z', fontsize=12)
plt.tight_layout()
ax.set_title("")
ax.grid()

plt.figure()
plt.plot(P[:, 0], P[:, 1], lw=1, c="b")
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

plt.figure()
plt.plot(P[:, 1], P[:, 2], lw=1, c="b")
plt.xlabel("y", fontsize=15)
plt.ylabel("z", fontsize=15)

plt.figure()
plt.plot(P[:, 0], P[:, 2], lw=1, c="b")
plt.xlabel("x", fontsize=15)
plt.ylabel("z", fontsize=15)

plt.show()

你可能感兴趣的:(python,图像处理,算法)