混沌系统在图像加密中的应用(基于量子混沌映射的伪随机数发生器)

混沌系统在图像加密中的应用(基于量子混沌映射的伪随机数发生器)

前言

量子混沌映射是量子力学中一种重要的现象,它起源于经典混沌理论的研究。经典混沌理论研究的是非线性动力学系统,发现了许多看似随机的现象。然而,量子力学中的数学结构与经典力学存在很大不同,导致经典混沌理论在量子力学中不适用。因此,量子混沌理论的研究成为了量子力学中的一个热门话题。

量子混沌理论的研究不仅在理论物理中有广泛应用,还在量子信息、量子计算、量子物理化学等领域中得到了实际应用。量子混沌映射是量子混沌理论中研究的重点之一,其本质是一种量子系统的动力学演化。量子混沌映射经典混沌映射 的不同之处在于,量子混沌映射考虑了测量和量子干涉等量子效应。

一、伪随机数发生器

伪随机数生成器PRNG)是一种算法,通过使用确定性算法生成看似随机的数字序列。它基于某个起始数字(种子)和一些算法来生成数字序列。因此,如果我们使用相同的种子和算法,它将生成相同的数字序列。因此,PRNG生成的序列虽然看起来随机,但实际上是可预测的,不是真正的随机数序列

真随机数生成器TRNG)是一种硬件设备,它基于真正的物理过程来生成随机数。例如,通过利用热噪声、光子发射或辐射源等不可预测的物理事件,TRNG生成完全随机的数字序列。TRNG生成的序列不受任何算法的影响,因此不可预测和不可重复

但是许多真随机数生成器相对较慢。一个显而易见的解决方案是使用更安全的PRNG。量子混沌理论似乎是一个可以用来提高伪随机数生成器质量的工具

二、量子混沌映射

量子 logistic 映射由Goggin等人于1990年提出。在他们大量的工作中,导出了一个耦合到一组振荡器和具有极低阶量子修正的 logistic 映射的踢量子系统。这个混沌映射由以下方程控制:

在这里插入图片描述

整个方程组只有两个参数,β 和 r 。

三、python代码仿真

按照公式(1)的差分方程组,我们选取 β=4.5,r=3.8,x0=0.1,y0=0,z0=0。迭代100次,可以看出 x 的时序图符合随机分布。
在这里插入图片描述
固定 r ,观察 β-x 的分岔图,可以看出 β > 3 左右就已经让系统进入混沌状态了,代码放下面了。
在这里插入图片描述

import matplotlib.pyplot as plt
import matplotlib.pylab as mpl
from math import exp
mpl.rcParams['font.sans-serif'] = ['Times new roman']

def sys(x, y, z, n):
    for i in range(n):
        x1 = r * (x - abs(x) * abs(x)) - r * y
        y1 = (-y * exp(-2 * b) + exp(-b) * r * ((2 - x - x.conjugate()) * y - x * z.conjugate() - x.conjugate() * z))
        z1 = (-z * exp(-2 * b) + exp(-b) * r * (2 * (1 - x.conjugate()) * z - 2 * x * y - x))
        x = x1
        y = y1
        z = z1
        listx.append(x)  # 将结果写入列表
        listy.append(y)  # 将结果写入列表
        listz.append(z)  # 将结果写入列表
        listt.append(i)  # 将结果写入列表


if __name__ == '__main__':
    listx = []  # 创建列表存放混沌序列 x
    listy = []  # 创建列表存放混沌序列 y
    listz = []  # 创建列表存放混沌序列 z
    listt = []  # 创建列表存放时间序列
    r = 3.8
    b = 4.5
    x0 = 0.1  # 初值设定
    y0 = 0.0  # 初值设定
    z0 = 0.0  # 初值设定
    sys(x0, y0, z0, 1000)  # 初值和迭代次数
# ----------------------------时序图----------------------------------
    plt.figure(1)  # 创建画布
    plt.scatter(listt, listx, c="blue")
    plt.xlabel("t") 
    plt.ylabel("x")  
    plt.show()

原文地址

对量子混沌感兴趣的读者,可以点击链接下载原文,里面有更加具体的介绍背景

基于量子混沌映射的伪随机数发生器

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Owl City、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值