encrypt_pytorch_tensor

PyTorch tensor의 암호화

Engine.encrypt_pytorch_tensor(tensor, secret_key, level)
비밀 키를 사용하여 PyTorch tensor를 암호화합니다. 다자간 연산의 경우 지원하지 않습니다. tensor의 device는 CPU 혹은 CUDA로 설정할 수 있고 엔진과 일치해야 합니다. 메세지는 Engine.slot_count크기의 단위로 인코딩되며 메시지의 길이가 slot count로 나누어떨어지지 않을 경우, 0으로 패딩되어서 인코딩 됩니다.
  • 인풋:
    • tensor: torch.Tensor
    • SecretKey
    • level: optional
      • 지정된 경우에는 해당 최대 곱셈 횟수에 필요한 만큼만 인코딩을 합니다. 레벨이 낮을 수록 차지하는 공간이 작지만 최대 곱셈 횟수가 줄어듭니다.
  • 아웃풋:
    • Plaintext

Examples

CPU

import torch

from desilofhe import Engine

engine = Engine()
secret_key = engine.create_secret_key()

tensor = torch.tensor([1, 2, 3, 4])
ciphertext = engine.encrypt_pytorch_tensor(tensor, secret_key)
ciphertext_level_2 = engine.encrypt_pytorch_tensor(tensor, secret_key, level=2)

GPU

import torch

from desilofhe import Engine

engine = Engine(mode="gpu")
secret_key = engine.create_secret_key()

tensor = torch.tensor([1, 2, 3, 4], device="cuda")
ciphertext = engine.encrypt_pytorch_tensor(tensor, secret_key)

Engine.encrypt_pytorch_tensor(tensor, public_key, level)
공개 키를 사용하여 PyTorch tensor를 암호화합니다. tensor의 device는 CPU 혹은 CUDA로 설정할 수 있고 엔진과 일치해야 합니다. 메세지는 Engine.slot_count크기의 단위로 인코딩되며 메시지의 길이가 slot count로 나누어떨어지지 않을 경우, 0으로 패딩되어서 인코딩 됩니다.
  • 인풋:
    • tensor: torch.Tensor
    • PublicKey
    • level: optional
      • 지정된 경우에는 해당 최대 곱셈 횟수에 필요한 만큼만 인코딩을 합니다. 레벨이 낮을 수록 차지하는 공간이 작지만 최대 곱셈 횟수가 줄어듭니다.
  • 아웃풋:
    • Plaintext

Examples

CPU

import torch

from desilofhe import Engine

engine = Engine()
secret_key = engine.create_secret_key()
public_key = engine.create_public_key(secret_key)

tensor = torch.tensor([1, 2, 3, 4])
ciphertext = engine.encrypt_pytorch_tensor(tensor, public_key)
ciphertext_level_2 = engine.encrypt_pytorch_tensor(tensor, public_key, level=2)

GPU

import torch

from desilofhe import Engine

engine = Engine(mode="gpu")
secret_key = engine.create_secret_key()
public_key = engine.create_public_key(secret_key)

tensor = torch.tensor([1, 2, 3, 4], device="cuda")
ciphertext = engine.encrypt_pytorch_tensor(tensor, public_key)