텍스트를 관련 없는 사람들이 읽을 수 없도록 하는 것이 암호화이며, 컴퓨터를 사용하여 암호화를 수행할 때 사용되는 알고리즘이
암호화 알고리즘이다. 이 분야는 암호 작성과 암호 해독으로 나눌 수 있다.
암호화 시스템은 다음과 같은 구성요소로 이루어져 있다.
송신자: 메세지를 암호화 함
수신자: 메세지를 복호화 함
암호화 기법
복호화 기법
키 매개변수
암호화 시스템에서 암호화 및 복호화 기법은 알고 있으면서 키 매개변수를 모르는 상태에서
암호문으로부터 평문을 복원해내는 사람을 암호 해독자라고 한다.
1) 단순한 기법
1. 카이사르 암호화: 평문에 있는 문자가 알파벳의 N번째 문자라면, 이것을 N+K번째 문자로 교체하는 것이다. 카이사르는 K 값으로 3을 사용했다.
2. 비즈네르 암호화: 평문의 각 문자에 대해 서로 다른 변환표를 사용하여 복잡도를 높인다.
3. 버넘 암호화: 비즈네르 암호화에서 키의 길이를 평문의 길이와 같게 한 것으로 일회용 패드라고도 불리는데, 현재까지 개발된 암호화 기법중에 안전성이 증명된 유일한 암호이다. 암호화할 메시지가 이진수이면 배타적 논리합 연산을 사용할 수 있다. 많은 데이터를 암호화해야할 경우 안전성이 뛰어난 베르남 암호화 기법을 사용하기 어렵기에 암호화/복호화 장치를 사용하게 된다. 이 장치는 의사키를 사용하게 되는데, 암호화/복호화 장치는 실제키인 몇 개의 암호화 변수를 사용하여 평문의 길이와 같은 길이를 갖는 키 스트림을 생성하게 된다. 이렇게 생성된 키 스트림을 가지고 평문에 대해 배타적 논리합 연산을 수행하면 암호문이 생성된다.
2) 공개 키 암호화 시스템
전통적인 암호화 시스템이 가지고 있던 키를 분배하는 문제를 해결하기 위해 개발되었다.
공개키 암호화 시스템에서는 메시지를 보낼 때 송신자는 공개키를 찾아서 공개키를 사용하여 암호화한 다음 전송하게 되고,
메시지를 읽을 때 수신자는 자신이 가지고 있는 비밀 키를 사용히여 복호화한 다음 메시지를 읽게 된다.
이 시스템에서 사용되는 대표적인 알고리즘은 RSA 알고리즘이다. 이 알고리즘을 사용하면 메시지를 선형시간에 암호화 할 수 있다.
메세지 M을 암호화 할 때는 C = P(M) = M^P mod N을 계산하게 되고,
메세지 C를 복호화 할 때는 P = S(C) = C^S mod N 을 계산하게 된다.
https://playground10.tistory.com/192
이 알고리즘에 대한 설명은 위 블로그에 자세히 나와있어 이해하기 좋다!