![[정보보안기사] 3. 대칭키 (Block, Stream 암호화)개념 (출제율: 3.0%)]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLg6G0%2FbtqBDayIJAC%2FxUXEKuaeKTZK3zwNxpSlt1%2Fimg.png)
1. 대칭키 암호화
암호화 키와 복호화 키가 동일하다.
빠른 암복호화가 가능하지만 키가 노출될 경우 기밀성이 확보되지 않는다.
확산과 혼돈을 만족시키기 위하여 전치 요소(P-Box)와 치환 요소(S-Box)를 결합하여 설계된다.
그 이외에도 공격 방지 암호를 제공하기 위해서 이동 요소, 교환 요소, 분할 요소, XOR의 조합으로 설계된다.
사용자가 늘어날수록 관리할 키의 개수가 증가하고 정보를 교환하기 위해서 사전에 키를 공유해야 한다.
키 개수: n(n-1)/2
2. P-Box (Permutation Box)
전치 암호를 병렬적으로 수행한다.
단순 P-Box는 역함수가 존재하고 축소, 확장 P-Box는 역함수가 존재하지 않는다.
1) 축소 P-Box
n비트를 입력받아 m비트를 출력하는 P-Box이고 n > m을 만족한다.
입력 bit 중에서 특정 bit는 소실되어서 출력되지 않는다.
2) 확장 P-Box
n비트를 입력받아 m비트를 출력하는 P-Box이고 n < m을 만족한다.
비트를 치환하고 동시에 다음 단계에서 비트의 양을 증가시키고자 할 때 사용한다. (DES 알고리즘)
3. S-Box (Substitution Box)
치환 암호의 축소 모형이며 입력과 출력의 개수가 달라도 상관없다.
입력 bit와 출력 bit가 동일한 경우 역함수가 존재한다.
4. 합성 암호(Product Ciphers)
확산과 혼돈을 통하여 합성 암호화를 한 후 라운드를 통해서 반복적 합성 암호를 사용한다.
1) Feistel 암호
대부분의 대칭키 암호 시스템에서는 Feistel암호를 사용한다.
암호 강도를 결정짓는 요소는 평문 블록의 길이, 키의 길이, 라운드 수이다.
암호화와 복호화 과정이 동일하다. 복호화 과정에서 암호화 마지막 라운드에 쓰인 키를 입력시킨다.
DES, SEED 에서 Feistel 구조를 사용
2) SPN (Substitution-Purmutation Network) 구조
샤논에 의해서 S-Box와 P-Box를 중첩하는 형태로 개발한 암호이다.
입력을 여러 개의 작은 블록으로 나누고 각 블록들을 S-Box에 연산시킨 후 출력을 P-Box에 연산시킨다.
Rijndael, AES, ARIA 에서 SPN 구조를 사용
5. 블록 암호에 대한 공격
1) 차분 분석 (Differential Cryptanalysis)
평문의 한 비트를 변경하면 암호문은 다른 비트 패턴으로 변화하므로 이 변화 형태를 분석하는 공격 (비트의변화)
평문의 일부를 변경하면 암호문이 어떻게 변화하는지 조사 (CPA가 가능해야 한다.)
2) 선형 분석 (Linear Cryptanalysis)
평문 비트와 암호문 비트를 몇 개 정도 XOR 해서 0이 되는 확률 조사하는 방법 (비선형 구조를 선형화 시킴)
XOR이 0이 되는 확률은 50%인데 50%에서 크게 벗어난 비트의 개수를 조사하여 키에 관한 정보를 습득한다.
근사 선형 관계성을 찾았다면 KPA에서 CPA공격이 가능해진다.
3) 전수 공격
가능한 모든 경우에 대해 공격하는 방법.
경우의 수가 적은 경우 효율적인 방법
4) 통계적 분석
통계적인 자료를 통해 해독하는 방법
5) 수학적 분석
통계적 분석을 포함하여 수학적 이론을 이용하여 해독하는 방법
6. 스트림 암호
1) 스트림 암호 개념
평문에 연속되는 Key Stream (0,1)을 적용시켜 평문을 1bit씩 암호화하는 방식
블록 암호화보다 속도는 빠르나 안전성은 낮다.
한 번에 하나의 bit를 암 복호화하기 때문에 하드웨어 구현에 적합하다.
2) 스트림 암호 설계 시 고려사항
암호화의 연속은 긴 주기를 가져야 한다.
키의 랜덤함이 진 난수 범위 안에 있는 모든 값이 골고루 들어갈 수 있게 해야 한다. (랜덤 할수록 해독이 어렵다.)
키의 길이가 충분히 길어야 한다. (128bit 이상)
3) 동기식 스트림 암호
동기식: One-time-Pad → FSR → LFSR →NLFSR, OFB 방식
비동기식: CFB, CTR 방식
키 스트림은 평문 혹은 암호문 스트림과 독립적이다.
암·복호화 시 상호 동기화가 필수적이다.
전송 도중에 변조 되어도 후속 암호문에 영향이 존재하지 않는다.
의도적인 변조를 복호화 단계에서 검출이 불가능하다.
3.1) One-Time-Pad
암호화를 수행할 때마다 랜덤 하게 선택된 키 스트림 사용하고 암호화 및 복호화 시 XOR연산을 사용한다.
샤논에 의해 무조건적인 안전을 만족한다.
키 배송이 먼저 이루어져야 한다.
3.2) 귀환 시프트 레지스터 (FSR)
OTPad의 절충안이고 하드웨어 구현이 더욱 용이하다.
3.3) 선형 귀환 시프트 레지스터 (LFSR)
하드웨어로 쉽게 구성되며 많은 스트림 암호가 이용한다.
3.4) 비선형 귀환 시프트 레지스터 (NLFSR)
LFSR은 선형성 공격에 취약하므로 NLFSR을 이용하여 LFSR보다 안전한 스트림 암호를 설계한다.
4) 비동기식 스트림 암호
평문, 암호문이 키 스트림 생성에 영향을 끼친다.
암호문이 전송 도중 변경 되어도 동기화가 가능하다.
변조된 암호문이 후속 암호문 복호화에 사용되지 않아 오류 파급이 제한적이다.
7. DES
1) DES 구조
2개의 전치 Pbox(초기 전치, 최종 전치)와 16개의 Feistel 라운드 함수로 구성
키의 길이는 64비트이지만 패리티 비트를 사용하여 실제 키 길이는 56비트이다.
2) 3DES
2개의 키를 같은 3중 DES와 3개의 키를 같은 3중 DES가 존재한다.
실제 키의 길이는 112(128-16), 168(192-18)bit이고 총 48라운드를 수행한다.
DES | 3DES | AES | IDEA | |
평문 블록 크기 | 64 | 64 | 128 | 64 |
암호문 블록 크기 | 64 | 64 | 128 | 64 |
키 크기 | 56(parity bit: 8) | 112, 168 | 128, 192, 256 | 128 |
Round 수 | 16 | 48 | 10, 12, 14 | 8.5 |
암호화 방식 | Feistel 방식 | Feistel 방식 | SPN 방식 | 혼합방식 |
암호화 프리미티브 | 치환, 전치 | 치환, 전치 | 치환, 시프트, 비트 혼합 |
8. 나머지 대칭키 알고리즘
국내에서 개발한 알고리즘은 AREA(128,192,256 키 사용), LEA가 있다.
1) IDEA
64비트 평문을 8라운드에 걸쳐 데이터 변환 후 마지막에 한 번 더 키를 작용시켜 64비트 암호문을 생성한다. (8.5 라운드)
128비트의 키를 사용한다.
DES와 달리 S-Box를 사용하지 않는다.
16비트 프로세서에 적합하다.
PGP 데이터 암호 알고리즘으로 채택되었다.
2) RC5
32, 64, 128 비크의 블록을 가지며 속도는 DES의 약 10배이다.
3) SEED
인터넷 ,전자 상거래, 무선 통신 등에서 정보를 보호하기위해 국내에서 개발된 대칭키 블록암호 알고리즘이다.
변형된 Feistel 구조를 사용한다.
4) ARIA
국내에서 개발된 대칭키 알고리즘이며 SPN 구조를 사용한다.
경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었다.
10. 대칭키 암호화 기법
암호 알고리즘의 운영모드는 블록암호의 길이보다 긴 길이의 메시지를 암호화 하기 위한 방법이다.
1) Electronic CodeBook (ECB) 모드
평문은 n개의 n비트 블록으로 분할된다.
마지막 블록 크기가 부족할 경우에 Padding을 사용한다.
블록 간의 독립성(병렬 처리), 오류를 전파하지 않는다.
블록 패턴과 암호 패턴이 동일하게 유지되는 문제 발생 (KPA에 취약하다.)
2) Cipher Block Chainning (CBC) 모드
첫 번째 블록을 암호화할 경우에는 IV를 사용한다.
평문 블록은 암호화되기 전에 이전 암호문 블록과 XOR연산 수행한다. (병렬처리 불가능)
암호문 한 비트의 에러는 해당 블록과 그 다음 블록에 영향을 미친다.
메시지 인증에 활용된다.
3) Cipher FeedBack (CFB) 모드
IV를 암호화한 값과 PT 블록을 XOR하여 암호문 블록을 생성하고 그 암호문 입력으로 다시 암호문을 생성한다.
어떤 블록 암호도 스트림 암호로 바꿀 수 있다.
비동기식 스트림 암호이다.
복호화 과정에서는 특정 암호문의 오류가 계속적으로 이후에 영향을 미치지 않는다.
4) Output Feedback (OFB) 모드
EBC, CBC, CFB의 단점을 보완하였다.
평문이 블록암호 알고리즘의 입력으로 전혀 사용되지 않는다.
오류 전파되지 않음, 순차처리 구조
동기식 스트림 암호이다.
5) CouterR (CTR) 모드
매번 새로운 IV값으로 암 복호화를 수행한다. (Counting 기능도 수행한다.)
오류 전파되지 않는다
동기식 스트림 암호이다.
블록 모드: ECB, CBC
스트림 모드 가능한 블록 모드: CFB, OFB, CTR
출처
1. 대칭키 암호화 기법
'Certification Study > 정보보안기사' 카테고리의 다른 글
[정보보안기사] 6.전자서명과 PKI (Public Key Infrastructure) (출제율: 3.9%) (0) | 2020.02.02 |
---|---|
[정보보안기사] 5. 해시 함수와 응용 (출제율: 1.9%) (0) | 2020.02.01 |
[정보보안기사] 4. 비대칭키 개념 (출제율: 3.4%) (0) | 2020.01.31 |
[정보보안기사] 2. 암호학 개요 (출제율: 2.0%) (0) | 2020.01.16 |
[정보보안기사] 1. 정보보호 관리의 개념 (2) | 2020.01.16 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊