해쉬함수는 임의의 길이의 입력메시지에 대하여 고정된 길이의 특징값(해쉬값)을 계산해내는 함수이다. 키가 사용되지 않으므로 입력메시지가 같으면 동일한 해쉬값을 출력한다. 해쉬함수는 다음과 같은 특성을 만족시켜야 한다.
메시지인증코드는 동일한 키를 공유하고 있는 송신자와 수신자가 전송하는 메시지의 인증성을 상대방에게 확인시키기 위해서 계산하는 값이다. 전송하는 메시지와 공유한 키를 입력으로 하여 해쉬값을 계산하는 것이다.
사용자가 입력하는 패스워드를 직접 비밀키로 사용하는 것은 고정된 키를 사용하게 되어 사전공격 등의 방법이 가능하므로 보안성에 문제가 많다. 이를 해결하기 위하여 패스워드 기반 키생성함수(PBKDF2)를 이용하는데 (1)사용자 입력의 패스워드, (2)랜덤한 salt값, (3)반복횟수(iteration)값을 이용하여 난수처럼 보이는 암호키를 생성하여 사용한다. salt값과 반복횟수값은 공격자의 사전공격을 어렵게 하는 중요한 요소이다.