Cryptology Academy · 강의

AES로 실제 파일 암호화하기

OpenSSL과 Python으로 실제 파일을 AES로 암호화하고 복호화합니다.

레슨 4/413개 단계

AES로 실제 파일 암호화하기은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

이론을 실제로 적용해 보겠습니다. 이 레슨에서는 Python에서 AES-GCM을 사용하여 실제 파일을 암호화하고 복호화합니다. AES-GCM은 인증 암호화에 권장되는 모드입니다.

AES-GCM을 사용하는 이유

AES-GCM은 연관 데이터가 포함된 인증 암호화(AEAD)를 제공합니다. 데이터를 암호화하고 AND 16바이트 인증 태그도 생성합니다. 변조가 발생하면 복호화하기 전에 이를 감지할 수 있습니다.

AES-GCM 구성 요소

입력값: 32바이트 키, 12바이트 난수 논스, 평문, 선택 사항인 연관 데이터(AAD). 출력값: 암호문, 16바이트 인증 태그. 암호화할 때마다 논스는 고유해야 합니다.

cryptography 라이브러리 설치

pip install cryptography PyCA에서 제공하는 Python cryptography 라이브러리는 권장되는 암호화 라이브러리입니다. 이 라이브러리는 OpenSSL을 감싸며, 고수준 레시피와 저수준 hazmat 기본 요소를 모두 제공합니다.

Python에서 AES-GCM 암호화

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(bit_length=256) nonce = os.urandom(12) aad = b'file_version_1' aesgcm = AESGCM(key) ciphertext = aesgcm.encrypt(nonce, plaintext, aad)

Python에서 AES-GCM 복호화

try: plaintext = aesgcm.decrypt(nonce, ciphertext, aad) except Exception: print('Decryption failed — tampered or wrong key') 태그 검증에 실패하면 decrypt()가 예외를 발생시킵니다. 이 예외를 절대 무시하지 마십시오.

파일 암호화 작업 흐름

with open('input.bin', 'rb') as f: plaintext = f.read() ciphertext_with_tag = aesgcm.encrypt(nonce, plaintext, None) # Store: nonce (12 bytes) + ciphertext_with_tag with open('output.enc', 'wb') as f: f.write(nonce + ciphertext_with_tag)

파일 복호화 작업 흐름

with open('output.enc', 'rb') as f: data = f.read() nonce = data[:12] ciphertext_with_tag = data[12:] plaintext = aesgcm.decrypt(nonce, ciphertext_with_tag, None)

논스 관리

AES-GCM에서 12바이트 난수 논스를 사용하면 충돌 가능성이 무시하기 어려운 수준이 되기 전까지 같은 키로 최대 2^32번 암호화할 수 있습니다. 그 이후에는 키를 교체하십시오.

명령줄에서 OpenSSL 사용

# Encrypt: openssl enc -aes-256-cbc -pbkdf2 -in plain.txt -out encrypted.bin # Decrypt: openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out plain.txt 참고: CBC 모드입니다. 최신 OpenSSL에서 인증 암호화를 사용하려면 -GCM 플래그를 추가하십시오.

키 저장 모범 사례

소스 코드에 키를 절대 하드코딩하지 마십시오. 환경 변수, AWS KMS, HashiCorp Vault 또는 OS 키체인을 사용하십시오. 키를 정기적으로 교체하십시오. 담당자가 조직을 떠나면 키를 폐기하십시오.

확인 문제

AES-GCM이 암호문이 변조되었음을 감지하면 어떻게 됩니까?

복습

이제 Python에서 AES-GCM으로 파일을 암호화할 수 있습니다. 다음에는 비대칭 암호화로 넘어가 RSA를 처음부터 배워 보겠습니다.
무료로 시작

AI 튜터와 함께 Cryptology Academy을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
67
레슨
261

자주 묻는 질문

“AES로 실제 파일 암호화하기” 강의는 무료인가요?

네 — “AES로 실제 파일 암호화하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“AES로 실제 파일 암호화하기”에서 뭘 배우나요?

OpenSSL과 Python으로 실제 파일을 AES로 암호화하고 복호화합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“AES로 실제 파일 암호화하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 대칭 암호화 개념
  2. AES 구조: 라운드 및 상태 행렬
  3. AES 키 확장 및 키 크기
  4. AES로 실제 파일 암호화하기
← Cryptology Academy(으)로 돌아가기