<암호>
1) 암호의 정의
- 암호란 두 사람이 안전하지 않는 채널을 통하여, 정보를 주고받더라도 제3자는 이 정보의 내용을 알 수 없도록 하는 것
2) 암호에서 많이 쓰이는 용어들
2-1) 암호문
- 제3자가 보더라도 그 내용을 알 수 없도록 변환된 메세지를 말함
2-2) 평문
- 볌환되기 전인 원래의 메세지를 평문이라 함
2-3) 암호화
- 평문을 암호문으로 변환하는 것을 암호화라고 함
<암호의 역사>
1) 고대의 암호
- 고대의 암호에는 전치법과 치환법을 사용하였음
1-1) 전치법
- 평문에 있는 문자들의 순서를 바꿈으로써 암호화하는 기법을 말함
- 평문을 두 문자씩 잘라서, 섞는 방법을 말함
- 즉, 암호문에 사용되는 문자들이 그대로 이용되며, 단지 위치만 바뀜
1-1-1) 전치법의 예시
- 예를 들어, 암호알고리즘을 두 글자씩 잘라서 바꿔서 섞으면, 호암고알즘리 ← 이 처럼 변경이 됨
1-1-2) 전치법의 군사용으로 사용하던 암호 방식
- 군사용으로 사용하던 암호 방식이 있는데, 가늘고 긴 종이를 두른 후 여기에 전달하고자 하는 문장을 봉의 길이 방향으로 씀으로써 암호화를 했음
- 봉의 굵기가 키(Key)가 됨
1-2) 치환법
- 평문의 문자들을 다른 문자로 치환함으로써 암호화 하는 기법
- 치환 법에는 크게 2가지가 존재함
- 시저 암호, 시프트 암호
1-2-1) 시저 암호
- 알파벳 26글자를 알파벳 순서로 세 자씩 오른쪽 이동 시킨 뒤, 해당되는 글자로 치환하여 암호화를 함
- CAESAR를 에시로 하면,
- C를 3글자 이동하면 F로
- A를 3글자 이동하면 D로
- ... 이런식으로 변경을 함
1-2-2) 시프트 암호
- 시저 암호를 일반화한 암호를 말함
- 각 문자를 k번째 뒤 문자로 치환하는 방법
- 여기서 k는 0부터 25까지의 정수 중 하나가 됨
- k는 암호의 key가 됨
- 예를 들어, k=5라면
- A는 알파벳 순서로 5번째 뒤인 F로 치환
- B는 알파벳 순서로 5번째 뒤인 G로 치환
- ....이런식으로 변경
1-2-3) 시프트 암호의 단점
- 경우의 수가 알파벳의 개수인 26가지밖에 없어, 26번만의 시도만으로 암호를 풀 수 있는 매우 취약한 방식
2) 근대 암호
- 근대 암호에는 시프트 암호를 개선하여 새로운 치환법을 고안함
- 비즈네르 암호라고 함
2-1) 비즈네르 암호
- 여러개의 정수 값을 키로 이용함
- 시프트 암호는 k(key)가 한개였지만, 그와 달리 비즈네르 암호는 여러개의 k(key)를 가짐
- 예시
- 다음과 같이 Key가 여러개 가지고, k번째 뒤에 문자로 치환됨
- 길이가 m이면, 26^m개의 키를 가지가 되므로, 매우 안전함
2-2) 이 후의 근대암호
- 일회성 암호체계 안전함을 증명하였고, 암호체계의 2가지 기본원칙인 혼돈과 확산 이론을 제시
- 혼돈 : 평문과 암호문 사이의 상관관계를 숨기는 것을 말함
- 확산 : 평문의 통계적 성격을 암호문 전반에 확산시켜 숨기는 역할을 말함
3) 현대 암호
- 현대 암호에는 2가지가 변화함
- 표준 암호 알고리즘과 공개키 암호 알고리즘
3-1) 표준 암호 알고리즘
- 데이터 보호에 대한 필요성 증가
- DES 대표적인 대칭키 암호 알고리즘가 등장
- AES 암호 알고리즘이 나오기전까지 널리 이용됨
3-2) 공개 암호 알고리즘
- 암호화와 복호와에 서로 다른 키를 사용
- 이 개념을 이용하여, 소인수분해 문제에 기반을 둔 RSA 공개키 암호 알고리즘이 만들어짐
<대칭키 암호>
1) 대칭키 암호의 정의
- 암호화와 복호화에 같은 키 하나를 사용하는 암호 방식
2) 대칭키 암호
- 암호화와 복호화 속도가 빠르다는 장점
- 하지만, 비밀키를 제3자에게 노출하지 않으면서, 송신자와 수신자와 나누어 가지기 어려운것이 단점
3) 대칭키 암호의 종류
- 블록 암호, 스트림암호 두가지의 종류가 존재
3-1) 블록 암호
- 암호문을 만들기 위해 평문을 고정된 크기의 블록을 나누어서, 각 블록마다 암호화 과정을 수행하여, 블록 단위로 암호문을 얻는 대칭키 암호 방식
3-2) 스트림 암호
- 평문과 같은 길이의 키 스트림을 생성하여, 평문과 키를 비트 단위로 XOR하여 암호문을 얻는 대칭키 암호 방식
<공개키 암호>
1) 공개키 암호의 정의
- 암호화와 복호화에 두 개의 서로 다른 키를 사용하는 암호 방식
- 공개키 암호에서 사용하는 두개의 키를 공개키와 개인키라고 함
1-1) 공개키
- 공개되어 있어서, 누구나 공개키를 이용하여 암호화가 가능함
1-2) 개인키
- 아무에게도 공개하지 않고, 자신만 알고 있어야함
- 오직 자신만 개인키를 이용하여 복호화를 할 수 있음
1-3) 공개키 암호의 단점
- 대칭키 암호에 비해 속도가 느림
- 데이터를 암호화할때는 대칭키 암호 방식을 선호
1-4) 공개키 암호는 언제 사용하는가?
- 대칭키 암호의 비밀키를 교환할 때에 공개키 암호 방식을 사용
1-5) 공개키 암호의 예시 알고리즘
- RSA 알고리즘
- 타원곡선 암호 알고리즘
'보안' 카테고리의 다른 글
[보안] 기밀성, 무결성, 가용성 (0) | 2022.05.14 |
---|