728x90
반응형
1. 암호화 기법의 역사
시저암호
- 줄리어스 시저가 사용한 암호체계
- 알파벳을 3칸 이동시키는 치환암호
미국 남북전쟁
- 단어치환과 자리바꿈의 조합
- 알버트 마이어의 깃발신호
울트라와 에니그마 (2차대전 기간)
- 에니그마: 독인 군수업체의 상용 암호화 기계. 3~6개의 회전자로 구성된 복잡한 치환 암호법.
- 울트라: 에니그마 코드를 해독하는 기밀작전
- 보라기계: 일본의 유사한 암호화 기계
2. 암호학 기초
암호화의 목적
- 기밀성
- 데이타가 유휴상태(디스크 등)나 전송상태에서 데이터의 비밀을 유지하는 것
- 무결성
- 인증 없이는 데이터가 변경되지 않음을 보장
- 거짓 정보 삽입이나 전송 과정의 오류 등으로 부터 데이터를 보호
- 메시지 무결성은 디지털 서명으로 유지. 공개키/비밀키 시스템에서도 사용
- 인증
- 시스템 사용자의 신원을 검증
서버 <-- 1. 신원 전달 <-- 클라이언트 --> 2. 암호화된 증명요청 --> <-- 3. 증명 <-- --> 4. 신원검증 -->
- 부인방지
- 메시지를 송신자가 만든 것임을 보장
- 송신자가 송신행위를 부인하는 것을 방지
- 공개키, 비대칭키 암호화로 제공(비밀키, 대칭키는 불가)
3. 암호학의 개념
암호수학
- 암호화 기법은 수학에 기본을 둠.
불리언 수학
- 2진법 계산
논리연산자
- 데이터를 다루기 위한 논리 함수
- AND(^)
- OR(∨)
- NOT(~ 또는 !)
- XOR(⊕)
모듈로 함수(mod)
- 나눗셈의 나머지
일방향 함수
- 해시함수
- 이론적으로는 향후 무력화 될 수 있다
Nonce
- 난수, 임시변수 역할
- 예: IV(초기화 벡터)
제로 지식 증명
- 사실에 대한 증명을 할 때, 그 사실 자체는 공개할 필요가 없음.
지식 분리
- 작업수행을 위한 정보나 권한을 여러 사용자에게 나누는 것.
작업함수
- 암호 시스템의 작업 강도를 작업함수를 사용해서 비용/시간 단위로 측정할 수 있음
- 대입공격을 수행하는데 요구되는 시간과 노력
암호
코드와 암호
- 코드: 단어/구를 표현하는 심볼 암호화 시스템.
- 암호: 본 의미를 숨김. 다양한 기법으로 기밀성을 얻음.
전치암호
- 문자를 재배열하는 암호화 알고리즘
치환암호
- 각 문자나 비트를 다른 문자로 대체하는 암호화 알고리즘
- 시저암호, 복식치환(Vigenere)
- 주기분석법으로 부터 보호 할 수 있지만, 2차 주기분석(기간분석)에는 취약함
일회용 암호(OTP)
- 암호화를 할 때 마다 다른 치환 알파벳을 사용
- 장점: 바른 방법으로 사용된 경우 깨질 수 없는 암호화 기법
- 요구사항
- 암호키는 반드시 랜덤으로 생성 되어야함
- 암호키는 반드시 물리적으로 보호 되어야함
- 각 OTP는 오직 한번 만 사용 돼야 함
- 키의 길이는 암호화된 메시지의 길이와 같아야 함
러닝 키 암호
- 암호화키의 제한된 길이에 의한 취약점과 OTP의 키의 물리적 교환에 의한 문제를 해결한 방법
- 암호화키가 메시지 만큼 길고 일반적인 책에서 선택된다.
블록암호와 스트림암호
- 블록암호
- 암호화 알고리즘을 블록 단위로 적용.
- 예: 전치암호
- 스트림암호
- 한 번에 한 문자 또는 한 비트에 적용.
- 예: 시저, OTP
- 블록암호의 함수로 적용 될 수 있음.
혼돈과 확산
- 혼돈 : 평문과 키 사이의 관계가 복잡해져서 공격자가 분석하는 것이 힘들어 진다.
- 확산 : 평문의 변화가 복수의 변화를 야기해 암호문 전체에 퍼짐.
4. 현대 암호화
- 계산적으로 복잡한 알고리즘과 긴 암호화키를 사용해 암호화 목적을 달성
암호화 키
암호화의 초창기
- 모호함을 통한 보안(알고리즘 비밀성)
현대 암호 시스템
- 암호화키의 비밀성
- 키의 길이가 길수록 암호시스템을 무력화 시키기 어렵다.
대칭키 알고리즘
- 공유된 비밀키를 사용
- 약점
- 비밀키를 교환할 안전한 방법을 가지고 있어야 한다.
- 비밀키로 누구든 메시지를 암복호화 가능 => 부인방지 기능 없음.
- 비밀키 공유 문제로 큰 그룹이 사용하기 힘들다.
- 참여자가 바뀔 때 마다 키가 재생성 되어야 한다.
- 장점
- 동작 속도가 빠르다.
- HW 구현이 가능하다.
![](https://blog.kakaocdn.net/dn/n8SAx/btrsNw4FPPZ/2yGMJ42AkfckArEgvhQwpk/img.png)
비대칭키 알고리즘 (공개키)
- 모든 사용자가 공유된 공개키와 개인만 소유하는 개인키를 가진다.
- 장점
- 새로운 사용자가 생겨도 한 쌍의 개인-공개키만 생성되면 된다.
- 키 폐지 과정으로 쉽게 사용자 제거가 가능.
- 개인키가 노출 되었을 때만 재생성이 필요함.
- 무결성, 인증성, 부인방지 제공
- 새로운 사용자는 자신의 공개키만 생성하면 된다.
- 통신을 시작하는 순간부터 안전한 통신 가능
- 단점
- 작업 속도가 느리다.
![](https://blog.kakaocdn.net/dn/c1B3ev/btrsO3OGYuR/gMCugLO9arMiUkACisYrsk/img.png)
대칭키 vs 비대칭키
대칭키 | 비대칭키 | |
키 개수 | 단일공유키 | 키 쌍집합 |
키 교환 | 다른 채널을 통한 교환 | 채널 내 교환 |
확장성 | 확장 불가능 | 확장 가능 |
처리속도 | 빠름 | 느림 |
주 사용처 | 대규모 암호화 | 데이터, 디지털서명, 디지털봉투, 디지털 인증서의 작은 블록 |
제공기능 | 기밀성 | 기밀성, 무결성, 인증, 부인방지 |
해시 알고리즘
- 공개키 암호시스템이 메시지 다이제스트와 함께 사용되게 되면 디지털 서명기능을 제공
* 메시지 다이제스트: 해시 알고리즘에 의해 생성되는 내용. - MD2, MD3, SHA-0, SHA-1, SHA-2, HMAC
5. 대칭 암호화
DES (데이터 암호화 표준)
- 64비트 블록 암호화
- 유효키 길이 56비트 (총 64비트)
- XOR연산으로 16라운드 암호화 수행
ECB (전자 코드북) 모드
- 가장 간단한 최소한의 보안을 제공
- 충분한 블록이 수집 될 경우 해독가능
- 짧은 전송에만 사용
CBC (암호화 블록 체이닝) 모드
- 각 블럭을 바로 앞의 암호화된 블록과 XOR연산 후 암호화
- 첫 블록은 IV를 구현 후 XOR 함
- 한 블록이 손상되면 다음 블록도 손상되어 복호화 불가능
CFB (암호화 피드백) 모드
- CBC의 스트리밍 암호화 버젼
- 메시지를 블록으로 나누는 대신 블록 크기의 메모리 버퍼를 사용
OFB (출력 피드백) 모드
- CFB와 거의 같은 방식
- 암호화된 이전 블록을 XOR하는 대신 평문 시드값과 XOR함
- 첫 블록에는 IV와 시드값이 사용됨. 다음 시드 값은 이전 시드값에 DES 알고리즘을 적용.
- 장점: 체이닝 함수가 없음. 전송에러가 전송되지 않음.
CTR (카운터) 모드
- CFB, OFB와 같은 스트림 암호화
- 시드값에 카운터를 사용함
- 에러가 전파되지 않음
3DES (3중 DES)
- 64비트 블록암호화가 안전하지 않아서 더욱 진보된 암호화
DES-EEE3
- 3개의 다른키(K1,K2, K3)을 사용해 3번 암호화
- E(K1,E(K2,E(K3,P)))
- 168비트 유효키 길이(총 192비트)
DES-EDE3
- 2번째 동작을 복호화로 대체
- E(K1,D(K2,E(K3,P)))
DES-EEE2
- 2개의 키만 사용
- E(K1,E(K2,E(K1,P)))
- 112비트의 유효키 길이(총 128비트)
DES-EDE2
- 2개의 키를 사용하며 2번째 동작을 복호화로 대체
- E(K1,D(K2,E(K1,P)))
=> 이론적으로는 모두 같은 안정성을 제공한다.
IDEA (국제 데이터 암호화 알고리즘, International Data Encryption Algorithm)
- 64비트 평문/암호문 블록에 대해 동작
- 키 길이 128비트
- PGP에서 구현
블로피시 (Blowfish)
- 64비트 블록에서 동작
- 가변 키 길이 32비트~448비트
- 키 길이가 길면 소비시간이 길어지지만, IDEA나 DES보다 빠름
스킵잭 (Skipjack)
- FIPS 185, EES(날인된 암호화 표준)에 사용되기 위해 승인
- 64비트 블록에서 동작
- 키 길이 80비트
- 혼돈 추가: 암호키들은 날인을 지원
AES (Advanced Encryption Standard)
- FIPS 197: AES 또는 라인돌을 사용
- 128비트 블록처리 지원
- 키 길이: 128, 192, 256 비트
- 128비트 키는 10라운드 암호화
- 192비트 키는 12라운드 암호화
- 256비트 키는 14라운드 암호화
*대칭 암호화 방법표
이름 | 블록크기 | 키 길이 |
AES | 128 | 128, 192, 256 |
라인돌 (Rijndeal) | Variable | 128, 192, 256 |
블로피시(SSH에 사용) | Variable | 1 - 448 |
DES | 64 | 56 |
IDEA (PGP에 사용) | 64 | 128 |
RC2 | 64 | 128 |
RC4 | Streaming | 128 |
RC5 | 32, 64, 128 | 0 - 2040 |
스킵잭 | 64 | 80 |
3DES | 64 | 112, 168 |
투피시 | 128 | 1 - 256 |
대칭키의 관리
- 비밀키의 생성, 배포, 저장, 폐기, 복구, 날인 과정의 보호
대칭키의 생성과 배포
- 오프라인 배포
- 키 관련 자료를 물리적으로 교환하는 것
- 가로채임, 도청, 분실 가능성
- 공개키 암호화
- 초기통신을 공개키로 설정한 뒤 공개키 링크를 통해 비밀키를 교환
- 디피-헬만
- 위의 두 방법이 충분하지 않을 경우 키 교환 알고리즘을 통해 교환.
- 1<g<p 조건의 정수 g와 소수 p를 사용
대칭키의 저장과 폐기
- 저장 요령
- 암호화 키와 암호화 데이터를 같은 장소에 보관하지 말 것.
- 민감한 키는 2명의 개인에게 키의 반쪽씩 제공.
- 사용자가 조직에서 벗어나거나 접근권한이 없어질 경우 키가 변경되어야 하고, 모든 암호화된 자료들은 재암호화 되어야 한다.
키 에스크로와 복구
- 공평한 암호 시스템
- 비밀키가 2개 이상 조각으로 나눠져서 독립된 제 3자에게 주어진다.
키 접근을 위한 정부의 승인을 받으면 법정명령을 제 3자에게 제공하고 키를 제조합 한다.
- 비밀키가 2개 이상 조각으로 나눠져서 독립된 제 3자에게 주어진다.
- 에스크로 암호화 표준: 암호문을 복호화 할 수 있는 기술적 도구를 정부에 제공.
예: 스킵잭 알고리즘
=> 법적, 프라이버시 문제를 해결하기 힘들 것으로 예상되고, 대중이 정부의 잠재적인 침입을 허용하지 않을 것.
6. 암호화 생명주기
- 암호화 알고리즘을 선택 할 때, 암호화 생명주기를 반드시 숙지 해야함.
- 조직에서 사용 가능한 암호화 알고리즘 선택.
예: AES, 3DES, RSA 등 - 정보의 민감성에 따라 알고리즘에 사용될 키 길이를 인지.
- 사용 가능한 안전전송 프로토콜을 나열.
예: TLS, SSL
728x90
반응형
'IT이론 정리노트 > IT보안(CISSP)' 카테고리의 다른 글
CISSP IT보안이론 요약: 보안 모델의 원칙,설계,기능 (0) | 2022.02.09 |
---|---|
CISSP IT보안이론 요약: PKI와 암호학 응용 (0) | 2022.02.08 |
CISSP IT보안이론 요약: 악성코드와 애플리케이션 공격 (0) | 2022.02.06 |
CISSP IT보안이론 요약: 소프트웨어 개발 보안 (0) | 2022.02.06 |
CISSP IT보안이론 요약: 위험과 인적관리 (0) | 2022.02.04 |