encrypt
파이썬 자료구조의 암호화
GLEngine.encrypt(message, secret_key, level)- 비밀 키를 사용하여 리스트 형태의 메시지를 암호화합니다. 메시지의 길이가 최대 형상 크기를 넘어서면 에러가 발생하며, 최대 크기보다 작은 경우에는 0으로 패딩되어서 인코딩 됩니다.
- 인풋:
- message: 파이썬 리스트나 numpy 어레이만 받습니다. dtype은 int, double, complex double 모두 가능합니다.
- GLSecretKey
- level: optional
- 지정된 경우에는 해당 최대 곱셈 횟수에 필요한 만큼만 인코딩을 합니다. 레벨이 낮을 수록 차지하는 공간이 작지만 최대 곱셈 횟수가 줄어듭니다.
- 아웃풋:
- GLPlaintext
import numpy as np
from desilofhe import GLEngine
engine = GLEngine()
secret_key = engine.create_secret_key()
message = np.ones(engine.shape)
ciphertext = engine.encrypt(message, secret_key)
import numpy as np
from desilofhe import GLEngine
engine = GLEngine()
secret_key = engine.create_secret_key()
message = np.ones(engine.shape)
ciphertext = engine.encrypt(message, secret_key, level=3)
Encryption with Plaintext
Engine.encrypt(plaintext, secret_key)- 비밀 키를 사용하여 인코딩 된 평문을 암호화합니다. 생성된 암호문의 최대 곱셈 횟수는 평문의 지정된 최대 곱셈 횟수와 같습니다.
- 인풋:
- GLPlaintext
- GLSecretKey
- 아웃풋:
- GLCiphertext
import numpy as np
from desilofhe import GLEngine
engine = GLEngine()
secret_key = engine.create_secret_key()
message = np.ones(engine.shape)
plaintext = engine.encode(message)
ciphertext = engine.encrypt(plaintext, secret_key)
암호화 자체만 놓고 보면 인코딩과 암호화가 통합된 API를 호출하는 것이 더 빠르기 때문에 분리된 API를 호출하는 것은 권장하지는 않습니다. 동일한 메시지를 여러번 암호화해야하는 경우나, 이미 다른 용도로 인코딩된 메시지를 암호화하는 경우에만 사용하는 것을 추천합니다.