Advertisement

信息隐藏技术--图像置乱

阅读量:

图像置乱

在信息隐蔽技术领域中,图像置乱算是一种典型的手段,在这一过程中经过图像扰乱处理后所得的图片已失去原始识别价值。其主要目的之一在于有效实现图像数据的安全存储与保密传输。

分类:空域置乱、频域置乱、空频域混合置乱

图像置乱在信息管理中扮演着掩盖与防护的角色,在实际应用中不仅能够实现信息的安全传递功能,并且还能为图像处理提供前期准备步骤。

图像置乱变换是一种内容导向的图像加密方法类型。与无法获取解密密钥从而无法从已加密信息中提取信息的过程相似地,在没有了解置乱算法的情况下,恢复原始图像的信息同样面临困难。

基于Arnold变换的图像置乱

通过Arnold变换(亦称作"猫脸变换")对图像进行混乱处理后会将原本具有效意义的信息转化为毫无意义的内容。这一方法可作为预处理手段应用于其他图像处理步骤中,并且同样可用于普通图像加密。

复制代码
    input = imread('./in/lena_std.tif');
    subplot(221), imshow(input), title('原始图像');
    % 将输入的图像转换为灰度图
    img = rgb2gray(input);
    subplot(222), imshow(img), title('灰度图像');
    % 定义Arnold变换的参数
    a = 7;
    b = 11;
    n = 4;
    % 置乱
    [h, w] = size(img);
    N = h;
    arnoldImg = zeros(h, w);
    for i=1:n
    for y=1:h
        for x=1:w
            xx = mod((x - 1) + b * (y - 1), N) + 1;
            yy = mod (a * (x - 1) + (a * b + 1) * (y - 1), N) + 1;
            arnoldImg(yy, xx) = img(y, x);
        end
    end
    img = arnoldImg;
    end
    arnoldImg = uint8(arnoldImg);
    subplot(223), imshow(arnoldImg), title('置乱图像');
    % 复原
    [h, w] = size(arnoldImg);
    resultImg = zeros(h, w);
    N = h;
    for i=1:n
    for y=1:h
        for x=1:w
            xx = mod((a * b + 1) * (x - 1) - b * (y - 1), N) + 1;
            yy = mod(-a * (x - 1) + (y - 1), N) + 1;
            resultImg(yy, xx) = arnoldImg(y, x);
        end
    end
    arnoldImg = resultImg;
    end
    resultImg = uint8(resultImg);
    subplot(224), imshow(resultImg), title('复原图像');
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI助手

基于混沌Logistic加密算法的图像加密与还原

复制代码
    clear, clc;
    input = imread('./in/lena_std.tif');
    % 将输入图像转换为灰度图
    img = rgb2gray(input);
    subplot(221), imshow(input), title('原始图像');
    subplot(222), imshow(img), title('灰度图像');
    % 参数
    x0 = 0.1;
    u = 4;
    num = 500;
    % 利用Logistic混沌映射,对灰度图像进行加密
    [m, n] = size(img);
    % 迭代num次,达到充分混沌状态
    x = x0;
    for i=1:num
    x = u * x * (1 - x);
    end
    % 产生一维混沌加密序列
    a = zeros(1, m * n);
    a(1) = x;
    for i=1:m*n-1
    a(i+1) = u*a(i)*(1-a(i));
    end
    % 归一化序列
    b = uint8(255 * a);
    % 转换为二维混沌加密序列
    c = reshape(b, m, n);
    % 异或操作(加密)
    img1 = bitxor(img, c);
    subplot(223), imshow(img1), title('加密后的图像');
    % 利用Logistic混沌映射,对加密图像进行解密
    % 参数
    x0 = 0.1;
    u = 4;
    num = 500;
    % 利用Logistic混沌映射,对灰度图像进行加密
    [m, n] = size(img1);
    % 迭代num次,达到充分混沌状态
    x = x0;
    for i=1:num
    x = u * x * (1 - x);
    end
    % 产生一维混沌加密序列
    a = zeros(1, m * n);
    a(1) = x;
    for i=1:m*n-1
    a(i+1) = u*a(i)*(1-a(i));
    end
    % 归一化序列
    b = uint8(255 * a);
    % 转换为二维混沌加密序列
    c = reshape(b, m, n);
    img2 = bitxor(img1, c);
    subplot(224), imshow(img2), title('解密后的图像');
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI助手

参考资料

利用混沌Logistic映射算法对图像进行加密与解密过程的研究

该算法以Arnold混乱度理论为基础,在实际应用中能够有效提升数字图像的加密速度与安全性,并通过复杂的置乱操作确保数据的安全性。

全部评论 (0)

还没有任何评论哟~