파이썬으로 AES(AES-256, AES-128) 암호화하기

AES(Advanced Encryption Standard)는 현재 가장 널리 사용되는 대칭키 암호화 알고리즘 중 하나입니다. 이번 글에서는 파이썬을 사용하여 AES-256 및 AES-128 암호화를 수행하는 방법에 대해 알아보겠습니다.

AES-256 암호화

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

# 암호화할 데이터와 키를 입력받습니다.
data = "암호화할 데이터"
key = get_random_bytes(32)  # 32바이트(256비트)의 랜덤 키 생성

# AES-256 암호화 객체를 생성합니다.
cipher = AES.new(key, AES.MODE_EAX)

# 데이터를 암호화합니다.
ciphertext, tag = cipher.encrypt_and_digest(data.encode())

# 암호화된 데이터와 태그를 출력합니다.
print("암호화된 데이터:", ciphertext)
print("태그:", tag)

위 코드에서는 Crypto 모듈의 AESget_random_bytes 클래스를 사용합니다. 데이터와 키를 입력받은 후 AES.new() 메서드를 사용하여 AES-256 암호화 객체를 생성합니다. 그리고 encrypt_and_digest() 메서드를 사용하여 데이터를 암호화하고, 암호화된 데이터와 태그를 출력합니다.

AES-128 암호화

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

# 암호화할 데이터와 키를 입력받습니다.
data = "암호화할 데이터"
key = get_random_bytes(16)  # 16바이트(128비트)의 랜덤 키 생성

# AES-128 암호화 객체를 생성합니다.
cipher = AES.new(key, AES.MODE_EAX)

# 데이터를 암호화합니다.
ciphertext, tag = cipher.encrypt_and_digest(data.encode())

# 암호화된 데이터와 태그를 출력합니다.
print("암호화된 데이터:", ciphertext)
print("태그:", tag)

AES-128 암호화는 AES-256 암호화와 동일한 방식으로 수행됩니다. 다른 점은 키의 길이가 16바이트(128비트)로 고정되며, get_random_bytes() 메서드를 사용하여 랜덤 키를 생성합니다.

결론

이번 글에서는 파이썬을 사용하여 AES-256 및 AES-128 암호화를 수행하는 방법을 살펴보았습니다. 이러한 암호화 알고리즘은 데이터 보호 및 보안 관련 작업에 널리 사용됩니다. 만약 암호화된 데이터를 복호화하려면, 복호화 객체를 생성하고 decrypt() 메서드를 사용하여 수행해야합니다. 암호화 및 복호화에 대한 더 자세한 내용은 pycryptodome 라이브러리의 문서를 참조하세요.

해시태그

#암호화 #파이썬