목차
2023.07.25 - [컴퓨터 보안] - 2. 암호학 개요
2. 암호학 개요
2023.07.24 - [컴퓨터 보안] - 1. 정보보호관리 개념 1. 정보보호관리 개념 1. 정보화 사회 1-1. 정보사회 자동화된 지휘통제시스템과 사이버 전쟁 개념 등장 스마트폰의 보급으로 모바일 환경에서의
bsj54.tistory.com
1. 현대 대칭키 암호
1-1. 현대 블록 암호
확산과 혼돈을 만족시키기 위해 전치 요소와 치환 요소를 결합해 블록 암호를 설계함
- P-박스 (전치 요소)
- 단순, 확장, 축소 P-박스로 나뉨
- 단순 P-박스는 역함수가 존재하나 축소와 확장은 존재 X
- S-박스 (치환 요소)
- 역함수가 존재할 수도, 존재하지 않을 수도 있음
- 역함수가 존재하려면 입력과 출력 비트 수가 동일해야 함
- 합성 암호 (Product Ciphers)
- 치환, 전치, 그 밖의 구성 요소를 결합한 복합적인 암호
- 확산: 암호문과 평문 관계를 숨김 (통계 테스트 저항)
- 혼돈: 암호문과 키의 관계를 숨김 (키의 단일 비트가 변하면 거의 모든 암호문 비트가 변화)
- 라운드: 반복적으로 사용되는 합성 암호
합성 암호 종류 | 특징 | 암호화와 복호화 |
Feistel 암호 | - 좌우 블록을 교환 - 블록, 키, 라운드 수가 강도 결정 블록: 64비트 이상 키: 64비트, 최근은 128비트 라운드 수: 16회 이상 (짝수) |
동일 (보조키 입력이 역순) |
SPN 구조 | - Shannon의 이론에 근거해 치환과 전치 암호를 중첩 - 입력을 소블록으로 나눠 S-box에 입력, 출력을 P-box로 전치 - 역함수 존재 요소만 사용 - 병렬 처리 가능 |
역변환되어야 함 |

- 블록 암호 구현 요소
- 블록 크기: 클수록 보안 ↑, 암호화 속도 ↓
- 키 길이: 길수록 보안 ↑, 암호화 속도 ↓
- 라운드 수: 라운드 수를 증가시켜 보안 강화 가능 (Feistel 암호의 핵심)
- 서브키 생성 알고리즘: 복잡할수록 보안 ↑
- 라운드 함수: 복잡할수록 보안 ↑
- 블록 암호 공격
차분 분석 (Differential Cryptanalysis) |
선택 평문 공격 대응되는 암호문 블록의 비트 차이를 분석 |
선형 분석 (Linear Cryptanalysis) |
마츠이에 의해 개발된 기지 평문 공격 알고리즘의 비선형 구조에서 근사적 선형 관계식을 찾음으로써 선택평문 공격 수행 |
전수공격법 (Exhaustive Key Search) |
모든 경우의 수 조사 경우의 수가 많으면 실현 불가능 |
통계적 분석 (Statistical Analysis) |
빈도 자료와 더불어 통계적 자료로 해독 |
수학적 분석 (Mathematical Analysis) |
수학적 이론으로 해독 |
1-2. 현대 스트림 암호
- 고려사항
- 암호화의 연속이 긴 주기를 가져야 함
- 키 스트림이 진 난수 스트림과 최대한 비슷해야 함
- 키가 충분히 길어야 함 (적어도 128비트)
- 동기식 스트림 암호
- 키스트림과 암호문의 독립적 (정보 유출 가능성 ↓)
One-Time Pad (Vernam 암호) |
샤논에 의해 무조건 안전하다고 증명됨 암복호화 시 배타적 논리합 연산을 사용, 따라서 알고리즘이 서로 역관계 |
귀환 시프트 레지스터 (Feedback Shift Register) |
One-Time Pad의 절충안으로, 하드웨어 구현 용이 시프트 레지스터와 귀환 함수로 구성 |
선형 귀환 시프트 레지스터 (LFSR) |
하드웨어로 쉽게 구현됨 |
비선형 귀환 시프트 레지스터 (NLFSR) |
선형성을 가지면 공격에 취약할 수 있어 더 안전 (= 키스트림값을 알아내도 키 값 유추가 어려움) |
- 비동기식 스트림 암호 (자기 동기식 스트림 암호)
- 평문이나 암호문으로부터의 함수 관계에 의해 키 스트림이 생성 (종속성)
- 암호문 비트가 손상되어도 오류의 전파가 유한함 (ex. CFB 모드)
2. DES (Data Encryption Standard)
2-1. 구조

- 목적: 데이터 암호화
- 블록: 입출력 64-bit
- 키: 56-bit (64-bit에서 parity drop), 16개의 48-bit 서브키를 생성함
- 라운드 함수: Feistel 구조, 16개
- 안전성: 8개의 S-Box (비선형성)
- 복호화: 암호화의 역순
2-2. 취약점
- 쇄도 효과가 크고 완비성이 높아 암호문으로부터 평문 추론이 어려움
- 그러나 전사 공격에 의해 해독됨
2-3. 다중 DES
DES | 2DES | 3DES | |
키 길이 | n | 2n | 3n |
수행 횟수 | $2^{n}$ | $2^{n+1}$ (중간 일치 공격) | $2^{2n}$ |
- 3DES-EDE2
- KPA 가능성 존재
- 3DES-EDE3
- PGP 등에서 사용 중
- 3DES는 모든 키를 동일하게 하면 DES와 같아지는 상호보완성을 가짐
3. AES (Advanced Encryption Standard)
NIST에서 DES의 대체로 레인달(Rijndael)을 채택 (경쟁 방식에 의해 표준화됨)
안전성, 비용, 구현 효율성을 충족하는 알고리즘

- 블록: 입출력 128-bit
- 라운드 함수: SPN 구조, 10 / 12 / 14 라운드
- 키: 라운드 수에 따라 128 / 192 / 256 비트의 키
- 안전성: 8개의 S-Box (비선형성)
- 복호화: 라운드 함수를 역변환
- 라운드 함수 구성
- SubBytes()
- ShiftRows()
- MixColumns(): 확산 제공, 마지막 라운드에서 수행하지 않음
- AddRoundKey()
- 특징: 경량화, S/W와 H/W 구현 용이
4. 기타 대칭키 암호 알고리즘
4-1. 국제 암호 알고리즘
- IDEA: DES 대체용으로 개발됨, PGP(Pretty Good Privacy)로 채택
- RC5: 입출력, 키, 라운드 수 등이 가변이며 매우 빠름
4-2. 국내 암호 알고리즘
- SEED: DES와 유사, 한국인터넷진흥원이 개발
- ARIA: AES와 유사, 국가보안기술연구소(NSRI)가 개발, ISPN의 구조
- HIGHT: 저전력, 경량화
- LEA: NSRI가 개발한 경량 고속 알고리즘
5. 현대 대칭키 암호를 이용한 암호화 기법
NIST에서 모든 블록 암호에 적용 가능한 5가지 운영 모드 정의
모드 | 암호화 |
ECB (Electronic CodeBook) |
$C_{i} = E_{k}(P_{i})$ |
CBC (Cipher Block Chaining) |
$C_{i} = E_{k}(P_{i} \oplus C_{i-1})$ |
CFB (Cipher FeedBack) |
$C_{i} = P_{i} \oplus E_{k}(C_{i-1})$ |
OFB (Output FeedBack) |
$C_{i} = P_{i} \oplus O_{i}$ |
CTR (CounTeR) |
$C_{i} = P_{i} \oplus E_{k}(T_{i})$ |
모드 | 패딩 | 스트림 | 특징 |
ECB | O | X | 독립성 패턴 분석에 취약 DB 암호화 시 병렬 처리에 활용 |
CBC | O | X | 연산 중 메모리 필요 암호 블록이 이전 평문까지 영향을 받아 생성됨 평문 블록의 오류: 모든 암호문에 영향 암호문 블록의 오류: 2개 블록에 영향 (j: 대부분, j+1: 오류 비트와 대응되는 위치) CBC-MAC, IPSec, Kerberos version 5 등에서 사용 |
CFB | X | O (비동기) | 스트림 방식 모드는 복호화 시 암호화 함수 사용 재전송 공격 가능 평문 블록의 오류: 모든 암호문에 영향 암호문 블록의 오류: 2개 블록에 영향 (j: 오류 비트와 대응되는 위치, j+1: 대부분) |
OFB | X | O (동기) | 출력이 평문과 무관해서 오류 전파가 발생하지 않음 사전 준비 가능 초기치(IV)가 바뀌면 암호문이 모두 바뀜 |
CTR | X | O (동기) | 카운터를 사용해 피드백이 불필요 (병렬 처리 가능) |
2023.07.25 - [컴퓨터 보안] - 2. 암호학 개요
2. 암호학 개요
2023.07.24 - [컴퓨터 보안] - 1. 정보보호관리 개념 1. 정보보호관리 개념 1. 정보화 사회 1-1. 정보사회 자동화된 지휘통제시스템과 사이버 전쟁 개념 등장 스마트폰의 보급으로 모바일 환경에서의
bsj54.tistory.com
1. 현대 대칭키 암호
1-1. 현대 블록 암호
확산과 혼돈을 만족시키기 위해 전치 요소와 치환 요소를 결합해 블록 암호를 설계함
- P-박스 (전치 요소)
- 단순, 확장, 축소 P-박스로 나뉨
- 단순 P-박스는 역함수가 존재하나 축소와 확장은 존재 X
- S-박스 (치환 요소)
- 역함수가 존재할 수도, 존재하지 않을 수도 있음
- 역함수가 존재하려면 입력과 출력 비트 수가 동일해야 함
- 합성 암호 (Product Ciphers)
- 치환, 전치, 그 밖의 구성 요소를 결합한 복합적인 암호
- 확산: 암호문과 평문 관계를 숨김 (통계 테스트 저항)
- 혼돈: 암호문과 키의 관계를 숨김 (키의 단일 비트가 변하면 거의 모든 암호문 비트가 변화)
- 라운드: 반복적으로 사용되는 합성 암호
합성 암호 종류 | 특징 | 암호화와 복호화 |
Feistel 암호 | - 좌우 블록을 교환 - 블록, 키, 라운드 수가 강도 결정 블록: 64비트 이상 키: 64비트, 최근은 128비트 라운드 수: 16회 이상 (짝수) |
동일 (보조키 입력이 역순) |
SPN 구조 | - Shannon의 이론에 근거해 치환과 전치 암호를 중첩 - 입력을 소블록으로 나눠 S-box에 입력, 출력을 P-box로 전치 - 역함수 존재 요소만 사용 - 병렬 처리 가능 |
역변환되어야 함 |

- 블록 암호 구현 요소
- 블록 크기: 클수록 보안 ↑, 암호화 속도 ↓
- 키 길이: 길수록 보안 ↑, 암호화 속도 ↓
- 라운드 수: 라운드 수를 증가시켜 보안 강화 가능 (Feistel 암호의 핵심)
- 서브키 생성 알고리즘: 복잡할수록 보안 ↑
- 라운드 함수: 복잡할수록 보안 ↑
- 블록 암호 공격
차분 분석 (Differential Cryptanalysis) |
선택 평문 공격 대응되는 암호문 블록의 비트 차이를 분석 |
선형 분석 (Linear Cryptanalysis) |
마츠이에 의해 개발된 기지 평문 공격 알고리즘의 비선형 구조에서 근사적 선형 관계식을 찾음으로써 선택평문 공격 수행 |
전수공격법 (Exhaustive Key Search) |
모든 경우의 수 조사 경우의 수가 많으면 실현 불가능 |
통계적 분석 (Statistical Analysis) |
빈도 자료와 더불어 통계적 자료로 해독 |
수학적 분석 (Mathematical Analysis) |
수학적 이론으로 해독 |
1-2. 현대 스트림 암호
- 고려사항
- 암호화의 연속이 긴 주기를 가져야 함
- 키 스트림이 진 난수 스트림과 최대한 비슷해야 함
- 키가 충분히 길어야 함 (적어도 128비트)
- 동기식 스트림 암호
- 키스트림과 암호문의 독립적 (정보 유출 가능성 ↓)
One-Time Pad (Vernam 암호) |
샤논에 의해 무조건 안전하다고 증명됨 암복호화 시 배타적 논리합 연산을 사용, 따라서 알고리즘이 서로 역관계 |
귀환 시프트 레지스터 (Feedback Shift Register) |
One-Time Pad의 절충안으로, 하드웨어 구현 용이 시프트 레지스터와 귀환 함수로 구성 |
선형 귀환 시프트 레지스터 (LFSR) |
하드웨어로 쉽게 구현됨 |
비선형 귀환 시프트 레지스터 (NLFSR) |
선형성을 가지면 공격에 취약할 수 있어 더 안전 (= 키스트림값을 알아내도 키 값 유추가 어려움) |
- 비동기식 스트림 암호 (자기 동기식 스트림 암호)
- 평문이나 암호문으로부터의 함수 관계에 의해 키 스트림이 생성 (종속성)
- 암호문 비트가 손상되어도 오류의 전파가 유한함 (ex. CFB 모드)
2. DES (Data Encryption Standard)
2-1. 구조

- 목적: 데이터 암호화
- 블록: 입출력 64-bit
- 키: 56-bit (64-bit에서 parity drop), 16개의 48-bit 서브키를 생성함
- 라운드 함수: Feistel 구조, 16개
- 안전성: 8개의 S-Box (비선형성)
- 복호화: 암호화의 역순
2-2. 취약점
- 쇄도 효과가 크고 완비성이 높아 암호문으로부터 평문 추론이 어려움
- 그러나 전사 공격에 의해 해독됨
2-3. 다중 DES
DES | 2DES | 3DES | |
키 길이 | n | 2n | 3n |
수행 횟수 | $2^{n}$ | $2^{n+1}$ (중간 일치 공격) | $2^{2n}$ |
- 3DES-EDE2
- KPA 가능성 존재
- 3DES-EDE3
- PGP 등에서 사용 중
- 3DES는 모든 키를 동일하게 하면 DES와 같아지는 상호보완성을 가짐
3. AES (Advanced Encryption Standard)
NIST에서 DES의 대체로 레인달(Rijndael)을 채택 (경쟁 방식에 의해 표준화됨)
안전성, 비용, 구현 효율성을 충족하는 알고리즘

- 블록: 입출력 128-bit
- 라운드 함수: SPN 구조, 10 / 12 / 14 라운드
- 키: 라운드 수에 따라 128 / 192 / 256 비트의 키
- 안전성: 8개의 S-Box (비선형성)
- 복호화: 라운드 함수를 역변환
- 라운드 함수 구성
- SubBytes()
- ShiftRows()
- MixColumns(): 확산 제공, 마지막 라운드에서 수행하지 않음
- AddRoundKey()
- 특징: 경량화, S/W와 H/W 구현 용이
4. 기타 대칭키 암호 알고리즘
4-1. 국제 암호 알고리즘
- IDEA: DES 대체용으로 개발됨, PGP(Pretty Good Privacy)로 채택
- RC5: 입출력, 키, 라운드 수 등이 가변이며 매우 빠름
4-2. 국내 암호 알고리즘
- SEED: DES와 유사, 한국인터넷진흥원이 개발
- ARIA: AES와 유사, 국가보안기술연구소(NSRI)가 개발, ISPN의 구조
- HIGHT: 저전력, 경량화
- LEA: NSRI가 개발한 경량 고속 알고리즘
5. 현대 대칭키 암호를 이용한 암호화 기법
NIST에서 모든 블록 암호에 적용 가능한 5가지 운영 모드 정의
모드 | 암호화 |
ECB (Electronic CodeBook) |
$C_{i} = E_{k}(P_{i})$ |
CBC (Cipher Block Chaining) |
$C_{i} = E_{k}(P_{i} \oplus C_{i-1})$ |
CFB (Cipher FeedBack) |
$C_{i} = P_{i} \oplus E_{k}(C_{i-1})$ |
OFB (Output FeedBack) |
$C_{i} = P_{i} \oplus O_{i}$ |
CTR (CounTeR) |
$C_{i} = P_{i} \oplus E_{k}(T_{i})$ |
모드 | 패딩 | 스트림 | 특징 |
ECB | O | X | 독립성 패턴 분석에 취약 DB 암호화 시 병렬 처리에 활용 |
CBC | O | X | 연산 중 메모리 필요 암호 블록이 이전 평문까지 영향을 받아 생성됨 평문 블록의 오류: 모든 암호문에 영향 암호문 블록의 오류: 2개 블록에 영향 (j: 대부분, j+1: 오류 비트와 대응되는 위치) CBC-MAC, IPSec, Kerberos version 5 등에서 사용 |
CFB | X | O (비동기) | 스트림 방식 모드는 복호화 시 암호화 함수 사용 재전송 공격 가능 평문 블록의 오류: 모든 암호문에 영향 암호문 블록의 오류: 2개 블록에 영향 (j: 오류 비트와 대응되는 위치, j+1: 대부분) |
OFB | X | O (동기) | 출력이 평문과 무관해서 오류 전파가 발생하지 않음 사전 준비 가능 초기치(IV)가 바뀌면 암호문이 모두 바뀜 |
CTR | X | O (동기) | 카운터를 사용해 피드백이 불필요 (병렬 처리 가능) |