[python] PyCrypto를 사용하여 사설키 암호화하기

사설키(Asymmetric key) 암호화는 공개키와 개인키를 사용하여 데이터를 암호화하고 복호화하는 암호화 방식입니다. PyCrypto는 Python에서 사용할 수 있는 강력한 암호화 라이브러리 중 하나입니다. 이번 포스트에서는 PyCrypto를 사용하여 사설키 암호화를 적용하는 방법을 알아보겠습니다.

먼저, PyCrypto를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.

pip install pycrypto

PyCrypto를 설치한 후, 아래 예시 코드를 사용하여 사설키 암호화를 구현할 수 있습니다.

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP

# 개인키와 공개키 생성
key = RSA.generate(2048)

# 개인키 저장
private_key = key.export_key()
with open('private_key.pem', 'wb') as f:
    f.write(private_key)

# 공개키 저장
public_key = key.publickey().export_key()
with open('public_key.pem', 'wb') as f:
    f.write(public_key)

# 암호화할 데이터
data = b'Hello, World!'

# 공개키로 암호화
cipher = PKCS1_OAEP.new(RSA.import_key(public_key))
encrypted_data = cipher.encrypt(data)

# 개인키로 복호화
cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
decrypted_data = cipher.decrypt(encrypted_data)

print('암호화된 데이터:', encrypted_data)
print('복호화된 데이터:', decrypted_data)

위 코드에서는 먼저 RSA 암호화 알고리즘을 사용하여 개인키와 공개키를 생성합니다. 생성된 키는 각각 ‘private_key.pem’과 ‘public_key.pem’ 파일로 저장됩니다.

다음으로, 암호화할 데이터를 설정합니다. 이 예시에서는 “Hello, World!”를 암호화할 것입니다.

공개키를 사용하여 데이터를 암호화한 후, 개인키를 사용하여 암호문을 복호화합니다. 암호화된 데이터와 복호화된 데이터는 출력됩니다.

위의 예시 코드를 실행하면, 암호화된 데이터와 복호화된 데이터가 정상적으로 출력될 것입니다.

이처럼, PyCrypto를 사용하여 사설키 암호화를 구현할 수 있습니다. PyCrypto를 사용하면 간편하게 암호화 기능을 구현할 수 있으므로, 암호화와 보안 관련 작업을 수행하는 경우 유용하게 사용할 수 있습니다.

참고 자료: