🔐 1. 대칭키 암호화란?
✔️ 정의
암호화와 복호화에 같은 키(비밀키)를 사용하는 암호화 방식
→ "보내는 사람"과 "받는 사람"이 같은 비밀키를 미리 공유하고 있어야 함
💡 2. 왜 이런 방식이 생겼을까?
현실 예시로 설명할게:
- A가 B에게 편지를 보내면서, 남들이 보지 못하게 하려고 자물쇠로 잠갔다고 해보자.
- B는 그 자물쇠를 열기 위한 열쇠를 가지고 있어야 해.
- 이때 자물쇠와 열쇠는 같은 걸 공유하고 있어야 하겠지?
컴퓨터도 똑같아. 데이터를 암호화해서 보내면, 받은 쪽이 같은 키로 해독해야 하니까 같은 키를 공유해야 하는 거야.
🔁 3. 동작 방식 요약
| 1 | 송신자와 수신자가 같은 비밀키를 사전에 공유함 |
| 2 | 송신자가 데이터를 암호화함 (비밀키 사용) |
| 3 | 암호화된 데이터를 수신자에게 전송 |
| 4 | 수신자가 같은 비밀키로 복호화함 |
🔐 4. 주요 알고리즘
정보처리기사에서는 알고리즘 이름도 기억해두면 좋아.
| DES (Data Encryption Standard) | 오래된 방식, 56비트 키, 현재는 안전하지 않음 |
| AES (Advanced Encryption Standard) | 현재 가장 많이 사용, 빠르고 안전 |
| SEED | 한국 정부에서 개발한 알고리즘 (전자정부에서 많이 사용) |
| RC4/RC5 | 스트림 암호로 많이 쓰임 |
시험에서는 DES는 오래돼서 보안이 약하다는 점,
AES가 가장 많이 쓰이고 안전하다는 점이 자주 나와.
🔐 5. 장점과 단점 (시험 포인트)
| ✅ 장점 | 속도가 빠름, 알고리즘이 단순함 |
| ❌ 단점 | 키 분배가 어려움 (어떻게 안전하게 키를 주고받을까?) 키가 노출되면 모두 해독당함 |
---------------------------------------------------------------------------------------------------------------------------------
🔓 1. 공개키 암호화란?
✔️ 정의
**서로 다른 키 쌍(공개키와 개인키)**을 사용하는 암호화 방식.
→ 암호화와 복호화에 다른 키를 씀.
- 공개키(Public Key): 모두에게 공개됨
- 개인키(Private Key): 본인만 알고 있는 비밀 키
💡 2. 왜 이런 방식이 필요했을까?
현실 상황 예시
- A가 B에게 메시지를 보내고 싶어.
- 그런데 A와 B는 처음 보는 사이야. (비밀키를 미리 공유 못 함)
- 대칭키 방식처럼 "같은 키를 미리 나눌 수가 없음!"
그래서 등장한 방식이야:
"B가 자기만의 **비밀 키(개인키)**를 갖고,
누구든 B에게 보내고 싶으면 공개된 키로 암호화하면 되잖아?"
즉, 누구든 나에게 암호화된 메시지를 보낼 수 있게 하되,
나만이 복호화할 수 있는 구조!
🔁 3. 동작 방식 요약
| 1 | 수신자(B)는 공개키 / 개인키 한 쌍을 생성 |
| 2 | 수신자(B)는 공개키를 인터넷 등으로 공개 |
| 3 | 송신자(A)는 공개키로 메시지를 암호화 |
| 4 | 수신자(B)는 자기만 가진 개인키로 복호화 |
💡 **암호화에 쓴 키(공개키)**로는 복호화가 불가능
오직 개인키로만 복호화 가능
🔐 4. 주요 알고리즘
| RSA | 가장 널리 사용되는 공개키 암호화 방식 |
| ECC | 속도 빠르고 키 길이 짧음. 모바일 기기 등에 적합 |
| DSA | 디지털 서명 전용 알고리즘 |
정보처리기사에선 RSA와 ECC가 가장 자주 나옴.
🔐 5. 장점과 단점 (대칭키와 비교해서 정리)
| ✅ 장점 | 키 분배가 쉬움 (공개키를 누구나 가질 수 있음) |
| ❌ 단점 | 처리 속도가 느림 (계산량 많음) |
| ⚠️ 특징 | 암호화/복호화 키가 다름 (비대칭) |
📦 예시 시나리오 (시험에도 자주 나옴)
| 기밀성 보장 | 📤 암호화: 공개키 / 📥 복호화: 개인키 |
| 전자서명(위조방지) | 📤 서명: 개인키 / 📥 검증: 공개키 전자서명은 반대 구조! 개인키로 “해시값”을 암호화(=서명) → 공개키로 복호화(=검증) |
전자서명과 데이터 암호화에 각각 역방향으로 사용하는 게 포인트야!
--------------------------------------------------------------------------------------------------------------------------------
🔍 1. 해시 암호(해시 함수)란?
임의의 길이를 가진 데이터를 입력하면, 고정된 길이의 값을 출력해주는 함수
- 이 출력값을 해시값(hash value) 또는 **다이제스트(message digest)**라고 해
- 예: “hello” → 2cf24dba5fb0... ← SHA-256 해시값
🎯 해시의 핵심 목적은 "데이터의 무결성 검사"
→ 즉, "데이터가 바뀌지 않았는지 확인"
🧩 2. 왜 해시가 필요할까?
현실에서 예를 들어보자:
- 어떤 문서를 인터넷으로 보냈다고 해
- 받는 사람이 "이게 중간에 바뀐 건지 아닌지" 어떻게 확인할까?
→ 원본 문서에서 해시값을 계산해 같이 보내고,
→ 받은 문서도 다시 해시 계산해서 같은지 비교하는 방식!
즉, 해시는 **데이터의 ‘지문’**이야.
→ 내용이 1글자라도 바뀌면 완전히 다른 해시값이 나와.
🧠 3. 해시 함수의 특징 (암기 + 이해)
| ✅ 고정 길이 출력 | 입력이 길든 짧든 항상 같은 길이의 출력 (ex. SHA-256 → 256bit) |
| ✅ 효율성 | 계산 속도가 빨라야 함 |
| ✅ 충돌 회피성 | 서로 다른 입력이 같은 해시값을 갖지 않도록 해야 함 (충돌이 거의 없도록) |
| ✅ 일방향성 | 해시값만 보고는 원래 데이터를 복원할 수 없음 (복호화 불가능!) |
| ✅ 작은 변화 민감 | 입력이 1비트만 바뀌어도 완전히 다른 해시값이 나옴 |
🔐 4. 해시함수의 주요 용도
| ✅ 전자서명 | 서명할 때 메시지 전체 대신 해시값만 서명 |
| ✅ 비밀번호 저장 | 비밀번호를 해시값으로 변환해서 DB에 저장 (복호화 불가!) |
| ✅ 무결성 검사 | 파일이나 메시지가 중간에 바뀌지 않았는지 확인 |
| ✅ 블록체인 | 블록 간 연결 시 이전 블록의 해시값을 사용해 조작 방지 |
🔑 5. 주요 해시 알고리즘
| MD5 | 128비트 출력, 빠르지만 현재는 충돌 발생 위험이 높아서 보안에 부적합 |
| SHA-1 | 160비트 출력, 한때 많이 사용됨. 현재는 취약점 존재 |
| SHA-2 (SHA-256, SHA-512 등) | 현재 가장 많이 쓰이는 안전한 해시 |
| SHA-3 | SHA-2 이후 차세대 해시, 보안성 강화 |
시험에서는 MD5는 보안에 부적절하다,
SHA-256이 가장 널리 쓰인다 이런 식으로 자주 나와.
'정보처리기사 > 이론설명' 카테고리의 다른 글
| 디자인 패턴 (0) | 2025.09.15 |
|---|---|
| [이론설명 이기적] 제품 소프트웨어 패키징 (2) | 2025.08.07 |
| [이론설명 이기적] 개발보안구축 - 시스템 보안 구축 (4) | 2025.08.02 |
| [이론설명 이기적] 통신 프로토콜 (OSI 7, TCP/IP) (5) | 2025.08.01 |
| [이론설명 이기적] 통신망 기술 (7) | 2025.07.31 |