저번 시간에는 고전 암호에 대하여 공부하였다.
이번 시간에는 현대 암호에 대하여 공부할 것이다.
1. 혼돈과 확산
안전한 암호 시스템은 1) 혼돈과 2) 확산의 성질을 만족해야한다.
1) 혼돈
혼돈은 암호문에서 평문의 특성을 알아내기 힘든 성질이다. 단일 치환 암호를 사용하여 같은 두 평문을 암호화하면 출력된 두 암호문은 같다. 공격자는 암호문을 보고 평문이 무엇인지 유추하지는 못하지만 암호문을 생성한 두 평문이 같다는 사실은 안다. 따라서 단일 치환 암호는 혼돈 성질을 만족하지 못하는 암호이다.
2) 확산
확산은 평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질이다. 대부분의 고전 암호에서 찾아보기 힘들다.
2. 대칭키 암호 시스템
송신자와 수신자가 같은 키를 공유해야 하는 암호 시스템이다. 같은 키를 갖고 있어야 하는 특성 상, 대칭키 암호 시스템은 사전에 서로 키를 공유하는 과정이 반드시 필요하다. 현대에서는 많은 데이터가 오가는 네트워크는 도청에 매우 취약하기 때문에 키를 평문으로 공유하면 위험하다.
크게 1) 블록 암호와 2) 스트림 암호로 구분한다.
1) 블록 암호
평문을 정해진 크기의 블록 단위로 암호화하는 암호이다. 만약 평문의 크기가 블록 크기의 배수가 아니어서 블록으로 균등하게 쪼갤수 없다면 평문 뒤에 데이터를 추가하는 패딩을 먼저 수행한다. 블록 암호의 대표적인 예시는 DES와 AES가 있다.
- 패딩 : 평문이 블록 크기의 배수가 될 때까지 데이터를 추가한다.
2) 스트림 암호
송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 XOR하는 암호이다.
만약 송신자와 수신자가 평문 길이 만큼의 스트림을 매번 공유할 수 있다면, 스트림을 모르는 공격자는 암호문을 복호화할 수 없다. 하지만 평문과 같은 길이의 스트림을 안전하게 공유할 수 있다면, 스트림을 공유하는 채널로 평문을 공유하면 되므로 암호화가 필요하지 않다. 그래서 일반적으로 송신자와 수신자는 스트림을 공유하는 대신 시드라고 불리는 작은 값을 공유하고 이를 사전에 합의된 함수의 인자로 넣어 스트림을 생성한다.
스트림 암호는 단순한 연산으로만 구현되기 때문에 속도가 매우 빠르다. 그러나 블록암호보다 안전하지 못하다고 알려져 연산 능력이 부족한 임베디드 기기나 속도가 중요한 환경에서만 제한적으로 사용한다.
3. 대칭키 암호 시스템의 장점과 단점
1) 대칭키 암호 시스템의 장점
- 공개키 암호 시스템에 비해 속도가 빠르다.
2) 대칭키 암호 시스템의 단점
- 송신자와 수신자가 사전에 키를 교환해야 한다.
- 그룹 내에 여러 명이 있을 경우 두 사람마다 서로 다른 키를 생성해야 한다. ( N명 일 때, N(N-1)/2 개의 키 필요)
4. 공개키 암호 시스템
송신자와 수신자가 서로 다른 키를 사용하는 암호 시스템이다. 비대칭키 암호 시스템이라고도 불린다.
송신자는 수신자의 공개키로 데이터를 암호화하여 수신자에게 전송하고, 수신자는 자신의 비밀키로 이를 복호화한다. 공개키는 모두에게 공개되어 있으므로 공개키를 아는 사람은 누구나 수신자에게 암호문을 보낼 수 있다. 그러나 개인키는 수신자만 알고 있으므로, 공격자는 암호문을 도청해도 이를 복호화할 수 없다.
5. 공개키 암호 시스템 장점과 단점
1) 공개키 암호 시스템 장점
- 그룹 내의 사람들이 각자 공개키와 비밀키를 만든 후 공개키만 공개하면 되므로 N명의 사람이 있을 때 2N개의 키만 필요하다. 즉 대칭키 암호 시스템보다 필요한 키 갯수가 훨씬 적다.
- 한번 키를 생성하고 나면 새로운 상대와 통신하더라도 자신의 키를 다시 만드는 필요가 없다.
2) 공개키 암호 시스템 단점
- 대칭키 암호 시스템에 비해 복잡한 연산이 필요하므로 속도가 느리다.
- 대칭키 암호와 같은 안전성을 제공하려면 대칭키 보다 긴 키를 사용해야 한다.
6. 암호의 기능
1) 기밀성
- 오직 인가된 사람, 인가된 프로세스, 인가된 시스템만이 알 필요성에 근거하여 시스템에 접근해야 하는 원칙
- 정보의 소유자가 원하는 대로 정보의 비밀이 유지되어야 한다는 원칙
2) 무결성
- 정해진 절차에 따라 그리고 주어진 권한에 의해서만 변경되어야 한다는 원칙
- 데이터의 변화가 발생하지 않았음을 보증하는 기능
3) 인증
- 정보를 주고 받는 상대방의 신원을 확인하는 기능
- 네트워크에서 서로가 신뢰할 수 있는 것은 인증 시스템이 갖춰져있기 때문이다.
4) 부인 방지
- 정보를 교환한 이후에 교환한 사실을 부인할 수 없게 하는 기능
이번 시간에는 현대 암호에 대하여 공부하였다.
다음시간에는 블록 암호인 DES에 대하여 공부할 것이다.
'개념정리 > Cryptography' 카테고리의 다른 글
6. 패딩과 운영모드 (0) | 2022.08.01 |
---|---|
5. 블록 암호 : AES (0) | 2022.07.28 |
4. 블록 암호 : DES (0) | 2022.07.25 |
2. 고전 암호 (0) | 2022.07.22 |
1. 암호학 개념 (0) | 2022.07.22 |