浅谈傅里叶变化在图像加密中的应用
/ 3 min read
分数傅里叶变换(FRFT)是一种扩展的傅里叶变换,允许实数阶的旋转,增加了数据处理的灵活性。在图像加密中,利用FRFT的非线性和敏感性来隐藏信息,将原始图像转换成看似随机的噪声。
我们作为一个可爱的文科生自然不必掌握傅里叶变换的公式,但是需知晓其大致流程
如下图所示

在常见的加密技术中,一般常用的就是对称加密比如AES、非对称加密比如RSA,以及混合加密系统比如SSL/TLS,由于量子计算机的出现,现在aes-128甚至能做到实时硬解,据网传被重点关照的域名,即便使用了tls1.3也会被抓包切片逆向。
由此,更显如FRFT这种基于变换的加密算法的可贵
由于其数学变换的复杂性,能够有效地对抗多种攻击手段,如差分攻击和统计分析等。目前阶段还是主要体现于图像加密方面
构建FRFT加密模型的步骤具体如下:
-
图像预处理
:首先,对输入图像进行预处理。这一步骤可能包括将图像转换成灰度图像,以减少计算量。另外,如果需要,还可以对图像进行缩放,以满足特定的FRFT变换的输入要求。
python import cv2 # 读取图像文件 original_image = cv2.imread('path/to/image.jpg') # 转换为灰度图像 gray_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY) # 缩放图像到FRFT要求的尺寸 resized_image = cv2.resize(gray_image, (size, size))
-
FRFT变换
:接下来,对预处理后的图像执行FRFT变换。这一步需要选择合适的变换阶数,生成分数傅里叶域的图像。
-
假设我们希望对一张256x256像素大小的灰度图像进行加密,我们首先需要确定FRFT变换的阶数α。在本例中,我们选择α=0.75作为变换阶数。此外,我们还需要生成一个与图像同尺寸的密钥矩阵用于后续的加密过程。