암호 시스템·공격 모델·안전성
암호 용어와 공격자의 능력을 구분하고 키 공간·공격 비용을 계산합니다.
1. 암호 시스템의 구성
평문은 보호할 원래 정보, 암호문은 암호화 결과다. 암호화 알고리즘과 키를 함께 사용하며 정당한 복호화 절차로 원래 평문을 얻는다.
C = Enc(K_enc, P)
P = Dec(K_dec, C)
P는 평문, C는 암호문이다. 대칭키 방식은 공유 비밀을 사용하고, 공개키 방식은 공개키·개인키의 관계를 사용한다. 알고리즘이 공개되어도 키를 모르면 보호가 유지되도록 설계한다는 것이 케르크호프스 원리의 핵심이다. 공개키 알고리즘이라는 뜻과 알고리즘 공개 원칙은 구별한다.
고전 암호에서 치환은 기호를 다른 기호로 바꾸고, 전치는 기호의 위치를 바꾼다. 현대 암호는 여러 변환과 키 연산을 반복해 단순한 빈도·패턴 분석에 대응한다.
2. 키 공간과 전수조사
가능한 키가 모두 동일 확률의 n비트 값이면 키 공간은 2^n이다. 키를 중복 없이 시도하고 정답을 판별할 수 있을 때 최악에는 전체를, 평균적으로는 약 절반을 조사한다.
키 공간 = 2^n
평균 시도 ≈ 2^(n-1)
평균 시간 ≈ 평균 시도 횟수 / 초당 시도 횟수
학습용 16비트 키라면 후보는 65,536개다. 초당 1,024개를 시험한다면 평균 약 32초, 전체 조사 약 64초다. 실제 암호의 권장 키 크기나 실제 공격 속도를 나타내는 예는 아니다.
256비트를 출력하더라도 원천 비밀이 1,024가지뿐이고 나머지가 결정적으로 만들어지면 가능한 출력도 최대 1,024가지다. 출력 길이와 엔트로피·실제 보안 강도는 다르다. 알고리즘 취약점, 키 생성, 구현과 운용도 함께 본다.
3. COA·KPA·CPA·CCA
| 공격 모델 | 공격자에게 주어진 능력 | 판별 기준 |
|---|---|---|
| COA·암호문 단독 공격 | 암호문만 관찰 | 원문 대응쌍 없음 |
| KPA·기지 평문 공격 | 이미 알려진 평문·암호문 쌍 확보 | 평문을 임의로 선택한 것은 아님 |
| CPA·선택 평문 공격 | 고른 평문의 암호화 결과 획득 | 입력할 평문을 선택 |
| CCA·선택 암호문 공격 | 고른 암호문의 복호화 결과·반응 획득 | 복호화에 넣을 암호문을 선택 |
CCA의 ‘선택’은 목표 암호문을 그대로 복호화해 달라고 요청하면 된다는 뜻이 아니다. 안전성 모델에서는 그런 자명한 질의를 제한하고, 다른 질의로 목표의 보호가 깨지는지를 본다. 필기에서는 세부 보안 게임의 증명보다 누가 어느 입력을 선택하고 어떤 결과를 얻는지를 구분한다.
4. 주요 분석·구현 공격
| 구분 | 이용하는 단서 |
|---|---|
| 빈도 분석 | 언어·기호의 출현 빈도 |
| 차분 분석 | 입력 차이에 따른 출력 차이의 통계 |
| 선형 분석 | 평문·암호문·키 사이의 선형 근사 |
| 중간 일치 공격 | 여러 단계 암호의 중간 결과 비교 |
| 부채널 공격 | 시간·전력·전자파 등 구현 중의 누출 |
| 오류 주입 공격 | 의도적 오류 전후의 결과 차이 |
부채널은 암호 알고리즘의 수학적 약점을 반드시 전제로 하지 않는다. 시간이나 전력에 비밀값의 정보가 반영되는 구현도 문제가 될 수 있다. 상세 차분표 작성·전력 파형 분석 절차는 여기서 확장하지 않는다.
5. 안전성의 의미
정보이론적 안전성은 공격자의 계산 능력과 무관하게 보호되는 성질을 뜻한다. 일회용 패드의 완전 비밀성은 키가 진정한 무작위이고 메시지와 독립적이며 한 번만 쓰이는 등의 조건이 필요하다.
계산적 안전성은 알려진 공격의 시간·자원 비용이 현실적으로 감당하기 어렵다는 뜻이다. ‘키를 못 찾았으니 안전하다’고만 판단하지 않는다. 평문 일부를 추론하거나 메시지를 위조하는 것처럼 요구한 보안 성질이 깨지는 경우도 공격 성공이다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01공격자가 원하는 평문을 선택하여 암호화 결과를 받는 모델은 무엇인가?
선택 평문 공격(CPA)이다. KPA는 이미 알려진 평문·암호문 대응쌍을 이용하며 선택 능력과 구별한다.
02균등한 16비트 키를 초당 1,024개씩 중복 없이 조사할 때 평균 소요시간은 약 얼마인가?
약 32초다. 키 공간 65,536개의 약 절반인 32,768회를 1,024회/초로 나눈다. 정답을 판별할 수 있다는 학습용 조건이다.