목차

2024년 11월 18일 ・ 읽는 시간 11분

해싱과 암호화는 어떻게 다른가요? 메인 이미지

데이터 보안 관점에서 해싱암호화라는 용어가 자주 등장하는데요. 비슷한 것 같아도 엄연히 다릅니다. 해싱과 암호화는 언제 어떻게 사용해야 될까요? 이번 아티클에서는 해싱과 암호화의 기본 개념, 주요 차이점, 그리고 각각을 언제 사용해야 하는지 알아볼게요.

해싱이란?

해싱이란

해싱은 데이터를 고정된 길이의 문자열, 즉 해시(또는 다이제스트)로 변환하는 일방향 함수예요. 이 과정은 역으로 되돌릴 수 없기 때문에, 해시값만으로는 원본 데이터를 복구할 수 없습니다. 해싱은 주로 데이터 무결성 확인, 즉 파일이 수정되었는지 확인하거나 비밀번호를 안전하게 저장하는 용도로 사용돼요. 토스페이먼츠는 웹훅 데이터의 무결성을 보장하기 위해 데이터의 해시값을 웹훅 헤더에 포함합니다.

좋은 해시 함수는 항상 동일한 입력값에 동일한 해시값을 출력합니다. 또, 두 가지 다른 입력값에 같은 해시 값이 출력되는 해시 충돌이 일어날 확률을 최소화합니다. SHA와 MD5는 자주 사용되는 해시 함수입니다.

  • SHA (Secure Hash Algorithm): SHA-1 (구버전), SHA-256, SHA-3 등 다양한 길이의 해시를 제공하며, 보안용이나 블록체인에 주로 사용됩니다.
  • MD5 (Message Digest Algorithm 5): 데이터 무결성 검사에 사용되지만, 보안이 중요한 용도로는 권장되지 않아요.

해싱이 필요한 이유

  • 비밀번호 저장: 많은 서비스는 비밀번호를 해싱하여 저장합니다. 실제 사용자의 비밀번호를 저장하지 않기 때문에 해킹을 당해도 비밀번호가 노출되지 않습니다.
  • 데이터 무결성 검사: 파일, 파일의 해시값을 함께 수신합니다. 수신한 파일을 직접 해싱해서 수신한 해시값과 비교하여 데이터 무결성을 검증할 수 있어요.
  • 디지털 서명: 디지털 서명을 해시값으로 만들어서 데이터의 진위 여부를 확인할 수 있어요.

암호화란?

암호화는 데이터를 암호화된 형태로 바꿔주는 양방향 과정이에요. 암호화된 데이터는 비대칭 또는 대칭 키로 다시 복호화할 수 있어요. 해싱과 달리 암호화는 데이터를 안전하게 인코딩하고 필요할 때 기존 형태로 복구하기 위해 만들어졌습니다. 해싱과 달리 입력값에 따라 출력값의 길이도 달라질 수 있습니다.

암호화는 데이터를 보호하고, 허용된 수신자만 데이터를 읽을 수 있게 하는 용도로 사용돼요. 토스페이먼츠에서는 지급대행과 같이 강화된 보안 절차가 필요한 서비스에는 API 데이터 요청과 응답을 암호화합니다.

대칭 암호화는 암호화 및 복호화에 같은 키를 사용하는 방법입니다. 대칭 암호화에는 대표적으로 AES, DSE 방법이 있어요. 비대칭 암호화는 공개키와 개인키를 한 쌍으로 사용하여 데이터를 암호화 및 복호화합니다. 공개키로 암호화된 데이터는 개인키로만 복화화가 가능해요. 비대칭 암호화에는 대표적으로 AES, RSA 방법이 있어요.

  • AES (Advanced Encryption Standard): 대칭 암호화 방식 중에서 보안성이 높아 많이 사용됩니다.
  • RSA (Rivest-Shamir-Adleman): 비대칭 암호화의 대표적인 알고리즘으로, 인터넷 통신 보안이나 디지털 서명 등에 자주 쓰입니다.

암호화가 필요한 이유

  • 데이터 전송: 민감한 정보의 데이터는 암호화하여 전송하면 클라이언트와 서버 간 통신 중에 데이터가 노출될 위험이 줄어요.
  • 데이터 저장: 데이터를 물리적 디스크나 온라인 데이터베이스에 저장할 때 암호화하면 데이터를 보호할 수 있어요.
  • 인증 및 디지털 서명: 인증 프로토콜 보안 및 문서나 이메일에 디지털 서명하는 데 암호화는 필수로 사용됩니다.

해싱 vs 암호화: 핵심 차이점 비교

특징해싱암호화
복구 가능성일방향, 복구 불가양방향, 키가 있으면 복구 가능
주요 목적데이터 무결성 확인데이터 기밀성 유지와 안전한 통신
출력 길이고정 길이 (입력 크기와 무관)가변적 또는 암호화 알고리즘 요구사항에 따름
사용 사례비밀번호 저장, 데이터 무결성 검사, 디지털 서명안전한 통신, 데이터 저장, 인증
키 필요 여부키 불필요암호화 키 필수

요약하자면 해싱은 원본 데이터를 되돌릴 필요가 없고 데이터 무결성이 더 중요할 때 사용해요. 암호화는 민감한 데이터를 보호하고 필요할 때 다시 복구해야 할 때 사용합니다. 하지만 때때로 보안 강화를 위해 해싱과 암호화를 동시에 사용합니다.

해싱과 암호화는 둘 다 중요한 데이터 보안 방식이지만, 역할이 다르면서도 서로 보완적이에요. 해싱은 데이터 무결성 확인과 비밀번호 보호에, 암호화는 데이터 기밀성과 접근 제어에 적합합니다. 이 차이를 잘 이해하면 데이터와 통신 보안을 강화하는 데 큰 도움이 될 거예요.

  • 더 궁금한 내용이 있나요?
  • 코드 샘플을 참고하세요
  • 기술지원이 필요한가요?
    실시간 문의|이메일 보내기