Зашифрованное изображение Pyfhel сохранено как обычное - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть код python, который шифрует изображение с помощью pyfhel (полностью гомоморфное c шифрование). Изображение шифруется путем открытия изображения как массива int и шифрования каждого значения этого массива. Когда я пытаюсь сохранить этот новый массив шифров как новое изображение, я получаю простое изображение. Фактический размер увеличивается. (от 4 кб до 7 кб). Что я делаю неправильно?

Вот код:

from Pyfhel import Pyfhel, PyCtxt
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt


def enc(file,HE):  
    img = Image.open(file)
    plt.imshow(img)
    plt.show()
    imgArrayShaped = np.array(img)
    shape = imgArrayShaped.shape

    imgArrayFlatten = imgArrayShaped.flatten()
    size = imgArrayShaped.size

    listOfChiperText = []

    for i in range (0,size):
        ctxt1 = HE.encryptInt(imgArrayFlatten[i])
        listOfChiperText.append(ctxt1)

    arrayImg = np.array(listOfChiperText)
    arrayImg = arrayImg.reshape(shape)
    recImg = Image.fromarray(arrayImg.astype('uint8'))

    recImg.save("1_c.png")
    return recImg


HE = Pyfhel()           # Creating empty Pyfhel object
HE.contextGen(p=65537, m=1024, flagBatching=True)   # Generating context
       # Key Generation
HE.keyGen()
file = "1.png"
encrImg = enc(file,HE)
plt.imshow(encrImg)
plt.show()

Это результат: первое изображение является простым, второе - зашифрованным.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...