Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 암호화 알고리즘
- 스트림 암호
- DoS 종류
- 데이터베이스
- 객체 데이터 모델
- 가상 사설 네트워크
- stream cypher
- 공개키 비밀키
- db
- 암호학
- DDoS 종류
- 파일시스템 DBMS
- 오용탐지
- 데이터베이스 구조
- ZTNA
- block cypher
- VPN 뜻
- RSA
- AES
- 파일시스템 vs DBMS
- des
- 암호화
- ZTN
- 관계 데이터 모델
- dbms
- 대칭키 vs 공개키
- 파일 시스템
- DoS DDoS
- VPN 개념
- VPN
Archives
- Today
- Total
RavenSong's CS log
암호화 알고리즘 종류 및 작동방식 본문
Block Cypher
- 대칭키 암호화 방식
- 평문을 일정한 길이의 블록으로 나누어 암호화 하는 방식
- S/W 구현이 쉬움
- Round를 사용하여 반복적으로 암호화하므로 안전함
- DES, AES 등
- Block Size, Key Size, Round Size, Function 복잡도 = 크면 안전하나, 느려진다
Feistel Cypher 구조
- 대부분 Block Cypher에 사용
- 입력 블록을 반으로 나눈 후 왼쪽, 오른쪽을 바꾸어가며 여러 Round를 수행
DES, AES
DES
- 1972년 NIST Cypher 공모
- 1974년 IBM Lucifer 선정
- 1977년 미정부에서 사용 결정
- Block Size: 64bit
- Key Size: 56bit
- 16Round
AES
- 1997년 NIST 공모
- Block Size: 128bit
- Key Size: 128, 192, 256bit
- 각 키 크기에 따라 10,12,14 Round 수행
적은 처리 능력으로도 빠르게 데이터를 암호화하고 복호화가 가능
-> 온라인 거래 및 보안 통신과 같이 실시간 암호화 및 복호화가 필요한 어플리케이션에 적합함
ECB(Electronic Code Block)
- 각 Block이 서로 독립적(단순하고 병렬처리에 용이)
- 같은 평문에 대해 동일한 암호문 생성이 단점
CBC(Cypher Block Chaining)
- Chain(뒤에 것을 앞에 연결), 최초의 평문 블록 XOR후 결과는 다음 평문 블록과 XOR해서 암호화
- 같은 평문 블록이라도 다음 암호문 블록 생성이 되나, 에러 발생 시 잘못된 정보를 생성하게 됨
- IPSEC, Kerberos5 등에 사용
CFB(Cypher Feed Back)
- FeedBack(출력을 입력으로 초기 블록을 암호화하여 결과를 평문 블록과 XOR)
- 결과는 다음 Encrypt시에 입력으로 사용
- 평문을 직접 암호화하는 것이 아님
- 같은 평문 블록이라도 다른 cypher 블록 생성
- error 발생 시 계속 잘못된 정보가 생성
OFB(Output Feed Back)
- 장단점은 CFB와 동일
- CFB에 비해 빠름
Stream Cypher
- 대칭키 암호화 방식
- Block을 만들 수 없는 경우, 평문을 1bit(or byte, word)씩 순차적으로 암호화하는 방식
- 평문과 난수 키 스트림을 bit씩 단순 XOR(연산이 빠름)
- 일반적으로 Block Cypher에 비해 보안성이 낮음
- 무선통신, 실시간 음성, 영상 스트림 서비스에 적합
- RC4, ChCha, SEAL, SOBER 등
RSA
- 공개키 암호화 방식
- 인수분해를 바탕으로 둔 암호화 알고리즘
- MIT에서 1978년 발표 (3명 공동개발)
- 가장 널리 사용(공인인증서 등)
- Key Size: 1024~4096bits
- DES가 S/W적으로 100배 빠르고, H/W적으로는 1만배 빠름
- Hacker가 공개키 및 암호문을 쉽게 얻더라도 비밀키를 얻으려면 공개키를 인수분해해서 값을 구해야 하는데, 큰수에 대한 인수분해는 매우 많은 수행시간을 요구함
- 현재 사용되는 250자리 RSA암호는 복호화하는데 우주의 나이만큼 걸림
Hash
- 임의의 길이의 데이터를 고정된 길이의 값이나 키로 변환하는 함수
Hash 함수는 암호문을 보고 평문을 유추하는 것이 불가능함
why? -> 위 사진 네 평문은 길이가 다르지만 Hash 결과는 모두 같음 또한 첫째와 둘째 평문은 단어 하나만 다를 뿐인데 Hash 결과가 완전히 다름
Hash함수 문제점
- MD5는 Hash 함수 중 하나로 현재는 안전하지 않다고 여겨짐
1. 약한 충돌저항성: 서로 다른 입력 값에 대해 동일한 Hash 출력이 생성됨
2. 암호학적 해석상의 취약성: Collision 공격 (Hash 충돌을 찾아내는 공격)
3. 보안 관련 취약점: 보안 어플리케이션에 적합하지 않아 현재는 SHA-256 또는 SHA-3 같은 안전한 해시 알고리즘을 권장함 (무작위성 상승)
'암호학' 카테고리의 다른 글
암호화 알고리즘 초 간단 분류 (0) | 2024.04.06 |
---|---|
대칭키 vs 공개키(비대칭키) 개념 및 장단점 (0) | 2024.03.31 |