정보보안 암호화, 복호화 개념
- 암호화 (Encryption)
평문 ------ 암호화키 ------> 암호화 문장
평문 데이터를 암호화키를 이용해서 암호화 된 문장으로 바꾸거나
이미 암호화 된 문장을 복호화 키를 통해 평문으로 바꾸는 것
- 복호화
암호화문 ------ 복호화키 ------> 평문
A. 암호화 종류
1> 시저 암호화 : 특정 위치를 이동하여 매핑시키는 암호화 방식
암호화키를 2라고 하면 A 에서 2 만큼 이동한 C 에 매핑하는 방법으로
AB를 암호화 하면 2씩 이동시킨 CD 로 암호화 된다 .
시저 암호는 영문자 대상으로 위와 같이 암호화된 문장들을 분석하면 암호화키 숫자를 파악할 수 있어
금방 해독할 수 있는 단점이 있습니다.
2> 단일 치환암호
치환표를 이용하여 문자 매핑시켜서 암호화
3> 다중 치환암호
- 힐 암호화 : 평문의 문자에 정수 값 부여, N개 문자 치환 방법
4> 스트림 암호화
- 비트, 바이트 단위인 키 스트림(Stream) XOR 암호화
- 장점 : 속도가 빠르고, 가볍다 (무선 환경, 하드웨어)
- 동기식 스트림 암호 / 비동기식 스트림 암호
5> 블록 암호화
- 고정된 길이의 입력 블록을 출력 블록으로 변환
- 평문을 고정된 블록 별로 암호화 처리
- Feistel 구조 (역으로 복호화 가능), SPN 구조 (역으로 복호화 불가)
- ECB 모드 : 평문을 블록화 하여 암호화
DES 알고리즘 : 블록을 64 bit 분할
AES 알고리즘 : 블록을 128 bit 분할
단점 : 1개 블록이 해독되면 다른 블록들도 해독 가능
- CBC 모드 : ECB 모드와 동일하게 평문을 블록화 하여 암호화 + 처음에 IV 키값 사용하여 XOR 암호화
강력한 보안 암호화 모드
처음에만 IV 값을 통해 블록을 암호화하고 이후에는 처음 암호화한 블록과 평문 블록 XOR 연산 암호화
병렬처리 불가 X
- CFB 모드 : 패딩없이 블록단위 암호화를 스트림 암호화(Bit단위) 로 수행
평문 길이 = 암호화문 길이
IV 사용
순차적 암호화, 병렬처리 가능
- OFB 모드 : 영상, 음성 데이터, 아날로그 신호에 사용
- CTR 모드 : 평문 블록과 키스트림 XOR 연산 암호화, 카운터가 1씩 증가
B. 암호화 알고리즘 종류
- DES 알고리즘 : 대칭키 암호화, 64 bit 블록단위 암호화, 56 bit 키 (키 길이가 짧음)
XOR, 혼합 암호 (치환 + 전치) 사용
Feistel 구조
- IDEA 알고리즘 : 대칭키 암호화, DES 보다 2배 빠른 암호화, 128 bit 키 사용
- RC5 알고리즘 : DES 보다 10배 빠른 암호화, 32, 64, 128bit 키 사용
- AES 알고리즘 : 미국 표준화 알고리즘
블록길이 - 128, 192, 256 bit 구성
DES 보다 안정성 우수
키 길이 제한 X
- SEED 알고리즘 : 대칭키 블록 암호화 알고리즘 (128 bit 키 블록단위)
블록, 키 크기 - 128 bit
Fistel 구조
암호화 운영모드 (CBC, ECB, CFB, OFB)
- 대칭키 암호화는 공개키 암호화 보다 빠르다.
-> 대칭키 암호화의 키 길이가 짧으므로
- 대칭키 암호화는 암호화키를 송,수신자가 갖고 있어야 해서 노출 위험
-> 공개키는 암호화, 복호화키가 다르다.
C. RSA 암호화
- 공개키 암호화, 소인수분해 이용. 디지털 서명 용도
- 수신자의 공개키로 암호화하면, 수신자는 자신의 수신자 개인키로 복호화
- 전자서명 : 송신자의 개인키로 서명, 송신자의 공개키로 서명 복호화
D. HASH 알고리즘
- 키 없고 복호화 불가 알고리즘 (일방향), 무결성
- 압축 특징 : 고정된 길이로 출력
- 충돌 회피 : 다른 문장을 암호화하여도 동일한 결과
- 종류 : SHA, SHA-1, SHA-256, MD2, MD4, MD5