Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

해싱과 암호화의 차이점: 정보 보안의 두 가지 핵심 기술 완벽 이해

해싱(Hashing)이란?

해싱은 다양한 유형의 입력 데이터에 대해 진위성과 무결성을 검증할 수 있게 해주는 암호학적 절차입니다. 인증 시스템에서 데이터베이스에 평문(plaintext) 비밀번호를 저장하는 것을 방지하기 위해 널리 활용되며, 파일, 문서 등 여러 형태의 데이터 무결성 확인에도 사용됩니다.

해싱 함수를 부적절하게 사용하면 심각한 데이터 유출 사고로 이어질 수 있습니다. 따라서 민감한 정보를 처음부터 해싱으로 보호하지 않는 것 역시 잘못된 보안 관행입니다.

해싱 함수는 되돌릴 수 없다는 것이 가장 큰 특징입니다. 해싱 함수의 출력값은 고정된 길이의 문자열로, '해시 값(hash value)', '다이제스트(digest)' 또는 간단히 '해시(hash)'라고 불립니다. 이 값들은 원래의 입력값으로 되돌릴 수 없기 때문에 비밀로 유지될 필요가 없습니다.

또한 해싱 함수의 핵심 속성은 동일한 입력값이 항상 동일한 해시 값을 생성한다는 점입니다. 만약 서로 다른 두 입력값이 같은 해시 값을 가진다면 이를 '충돌(collision)'이라고 하며, 이러한 충돌을 계산적으로 쉽게 찾아낼 수 있다면 해당 해시 함수는 보안 관점에서 깨진(broken) 것으로 간주됩니다.

암호화(Encryption)란?

암호화는 평문과 기타 데이터를 인코딩하여, 복호화 키(decryption key)를 가진 승인된 사용자만 접근할 수 있도록 만드는 절차입니다. 이를 통해 민감한 정보가 사이버 범죄자에게 노출되는 것을 방지할 수 있습니다.

암호화는 현대 통신 시스템에서 정보 보안을 달성하는 가장 효과적인 방법입니다. 수신자가 암호화된 메시지를 읽으려면 복호화에 사용되는 비밀번호 또는 보안 키(security key)를 반드시 보유하고 있어야 합니다. 암호화되지 않은 데이터를 '평문(plain text)', 암호화된 데이터를 '암호문(cipher text)'이라고 부릅니다.

암호화의 핵심 개념은 자신에게 전달되지 않은 메시지를 읽거나 데이터를 얻으려는 허가받지 않은 사람으로부터 정보를 보호하는 것입니다. 암호화는 웹이나 임의의 네트워크를 통해 메시지를 전송할 때 보안성을 크게 향상시킵니다.

해싱과 암호화 비교

그렇다면 해싱과 암호화는 구체적으로 어떤 차이가 있을까요? 아래 비교표를 통해 두 기술의 핵심적인 차이점을 살펴보겠습니다.

구분해싱(Hashing)암호화(Encryption)
함수 방식단방향(one-way) 함수로, 입력 파일이나 문자열로부터 고유한 메시지 다이제스트를 생성합니다. 키를 사용하지 않습니다.양방향(two-way) 함수로, 암호화 키로 데이터를 뒤섞고(scramble) 이후 복호화 키로 원래대로 되돌립니다.
사용 목적모든 변경 사항을 감지하고 해시 출력값의 변화를 통해 콘텐츠의 무결성을 검증하는 데 사용됩니다.정보의 기밀성과 보안을 유지한다는 근본 목적을 위해 데이터를 인코딩합니다. 암호문을 평문으로 되돌리려면 개인 키(private key)가 필요합니다.
키 사용 여부키가 전혀 필요하지 않습니다.키를 사용하여 수행됩니다. 대칭 암호화(symmetric encryption)에서는 하나의 키만 사용하며, 비대칭 암호화(asymmetric encryption)에서는 공개 키와 개인 키를 모두 사용합니다.
핵심 목표데이터를 검증하는 것, 즉 정보의 무결성(integrity)을 보호하는 데 목적이 있습니다.데이터를 안전하게 전송하는 것, 즉 정보의 기밀성(confidentiality)을 보호하는 데 목적이 있습니다.