1、图像加密
使用扩散加密
图像加密中,扩散处理是在不改变像素点位置的条件下,将任一明文像素点的信息隐藏在尽可能多的密文像素点中。
基于异或运算的扩散处理
正向(i从1到MN)的算法与其逆算法:
逆向(i从MN到1)的算法与其逆算法:
C和S是密码向量,P是明文图像
Python 实现代码:
import numpy as np
import cv2 as cv
def confusion(img, S1, S2):
h, w = img.shape
length = h*w
A = np.array(np.reshape(img, (h*w, 1)))
B = np.zeros_like(A)
B0 = 0
B[0] = cv.bitwise_xor(cv.bitwise_xor(B0, S1[0]), A[0])
for i in range(1, length):
B[i] = cv.bitwise_xor(cv.bitwise_xor(B[i-1], S1[i]), A[i])
C = np.zeros_like(A)
C0 = 0
C[length-1] = cv.bitwise_xor(cv.bitwise_xor(C0, S2[length-1]), B[length-1])
for i in range(length-2,