티스토리 뷰

반응형

 

인코딩(Encoding)

주어진 입력에 대한 모든 변환

Ex) 문자열을 뒤집는 함수 X가 있을 때 x -> y를 ABCD에 적용하면 DCBA가 나온다.

 


암호화(Encryption)

출력을 얻기 위해 입력 값과 키를 모두 지정하는 특정한 유형의 인코딩이다.

키를 이용하면 나중에 누가 출력해서 입력을 얻는 함수를 호출할 수 있는지 선택할 수 있다.

암호화를 함수로 나타낸 가장 간단한 형식은 다음과 같다.

(x, k) -> y

 

x : 입력값, k : 키, y : 암호화 결과

 

(y,k) -> x 역함수 복호화(Reverse Function Decryption)도 있음.

알려진 함수에 키를 이용해 출력에서 입력을 얻을 때 사용

 

이때 암호화에 쓰는 키와 복호화에 쓰는 키가 같으면 일반적으로 대칭 키라고 부름.

 

암호화 ((x,k1) -> y) 및 복호화 ((y, k2) -> x) 에 다른 키를 쓰면 비대칭 키(Asymmetric Key)로 암호화가 수행된다고 말함.

 

(k1, k2) : 키 쌍(Key Pair)

k1 : 공개 키(Public Key)

k2 : 개인 키(Private Key)라고 함.

개인 키 소유자는 데이터를 복호화할 수 있음.

 


해싱(Hashing)

함수가 한 방향으로만 작동하는 특정한 유형의 인코딩

해싱 함수의 출력 y에서 입력을 얻을 수 없음.

그러나 출력 y가 입력 x에 해당하는지 확인할 수 있는 방법이 반드시 있어야 하므로 해시는 인코딩과 일치를 위한 한 쌍의 함수로 봄.

x -> y 해싱 함수라면 함수 (x,y) -> boolean 도 있다는 말

 

때때로 해싱 함수는 입력에 임의의 값을 추가할 수도 있는데, (x, k) -> y 이 값을 솔트(Salt)라고 함.

함수를 더욱 강하게 만등ㄹ어 결과에서 입력을 얻는 역함수의 적용 난도를 높일 때 사용함.

반응형