암호의 3요소인 기밀성, 무결성, 가용성에서 무결성을 만족시키기 위한 것이 인증이다.
인증을 사용할 경우 서로 주고 받는 데이터가 중간에 변조 되었는지를 알수 있어(부인 불가:nonrepudiation) 중간자 공격(MIM)을 방어가능 하다.
인증 알고리즘은 다양하기 때문에 가져야하는 대표적인 특성이 존재한다.
한 메시지 m에 대해서, 컴퓨터는 k(암호 키값)소유하는 경우 a(메시지에 대한 인증자 생성 함수를 사용해 생성)를 사용하여
인증자 검증 함수 V(k, m, a) = true 인 인증자를 생성함
인증자를 생성하는 첫번째 방법은 MAC(message authentication code)라고 하며, 이를 인증자 검증 함수를 사용해 검증한다.
MAC 값의 생성은 해시 함수를 사용하며 암호화-인증을 동시에 수행하는 방법을 AEAD라고 하며, AES-GCM, CHACHA20-poly1305 등이 존재한다.
인증자 생성하는 두번째 방버은 디지털 서명 알고리즘이다. 생성된 인증자를 디지털 서명(Signature)라고 한다. 디지털 서명 알고리즘은 아무나 메시지의 신빙성을 확인할 수 있게 한다.Ks로 부터 Kv를 도출하는것이 계산상 불가능하며, Kv는 공개키, Ks는 비밀 키가 된다.
RSA의 예를 들면
ks는 RSA에서 비밀키 d 값이며, 공개키 e 값은 de mod (p-1)(q-1) == 1이 되는 값임
메시지 m에 대해서 H(m)^d 값을 사용해 서명값 a를 생성하고, a ^ e 값을 사용해서 H(m) 값을 도출할 수 있다.
중간자 공격을 방어하기 위해서 CA에서 배포하는 전자 서명을 사용해 신뢰망을 만든다.
이를