[python] PyCrypto를 사용하여 암호화된 데이터의 무결성 검증 방법

PyCrypto는 파이썬에서 암호화 작업을 수행하는 데 사용되는 모듈입니다. 암호화는 데이터를 보호하기 위해 사용되는 중요한 보안 기술입니다. 그러나 데이터만 암호화하는 것으로는 안전하지 않습니다. 암호화된 데이터의 무결성을 확인해야합니다. 이러한 검증 절차를 통해 데이터가 조작되지 않았음을 확인할 수 있습니다.

암호화된 데이터의 무결성 검증 과정

  1. 암호화된 데이터 및 원본 데이터 생성 ```python from Crypto.Hash import SHA256 from Crypto.Cipher import AES

def encrypt_data(data, key): cipher = AES.new(key, AES.MODE_ECB) ciphertext = cipher.encrypt(data) return ciphertext

def calculate_hash(data): hash_object = SHA256.new(data) return hash_object.digest()

data = “Hello, World!” key = b’SecretKey12345678’ encrypted_data = encrypt_data(data, key) hash_data = calculate_hash(data)


2. 암호화된 데이터와 해시 값 전달
  ```python
  # 암호화된 데이터 및 해시 값 전송
  # 암호화된 데이터와 해시 값은 함께 전송되어야합니다.
  send_data(encrypted_data, hash_data)
  1. 데이터 무결성 검증 ```python def verify_data(encrypted_data, hash_data, key): # 암호화된 데이터의 무결성 검증 hash_object = SHA256.new(encrypted_data) hash_value = hash_object.digest() if hash_data != hash_value: raise Exception(“데이터가 조작되었습니다.”)

    # 복호화된 데이터 가져오기 cipher = AES.new(key, AES.MODE_ECB) decrypted_data = cipher.decrypt(encrypted_data)

    return decrypted_data

# 암호화된 데이터 및 해시 값 수신 encrypted_data, hash_data = receive_data()

try: # 데이터 무결성 검증 decrypted_data = verify_data(encrypted_data, hash_data, key) print(“데이터 무결성이 확인되었습니다.”) print(“복호화된 데이터는:”, decrypted_data.decode()) except Exception as e: print(“데이터 무결성 검증에 실패했습니다.”, e) ```

위의 코드를 통해 PyCrypto를 사용하여 암호화된 데이터의 무결성을 검증하는 방법을 알아보았습니다. 데이터의 무결성을 확인하여 데이터 조작을 방지할 수 있습니다. 이러한 보안 절차는 중요한 정보를 보호하고 데이터 누출을 방지하는 데 도움이 됩니다.


참고 문서: