티스토리 뷰
🔐 암호 알고리즘의 두 기둥
대칭 vs 비대칭, 어떤 암호가 더 안전할까?
"인터넷에서 뭔가를 보낼 때, 그게 다른 사람한테 안 보이게 하려면 어떻게 해야 할까?"
이 질문은 정보보안의 가장 핵심적인 주제입니다. 바로 ‘암호화(Encryption)’라는 개념이죠.
이 글에서는 암호화가 무엇인지부터 시작해서, 대칭 암호 방식과 비대칭 암호 방식이 어떻게 다르고, 왜 각각의 방식이 필요한지, 실생활에서 어떤 식으로 사용되는지까지 하나하나 차근차근 풀어드리겠습니다.
🧩 1. 암호화란 무엇인가?
암호화(Encryption)란, 어떤 정보를 특정한 방법으로 알아볼 수 없게 만드는 것입니다.
예:
"오늘 3시에 비밀 장소에서 만나요." → "X5z@#jkL29!x9q"
이렇게 알 수 없는 문자로 바꾸는 과정을 암호화, 다시 원래대로 돌리는 걸 복호화(Decryption)라고 합니다.
그럼 이걸 다시 원래대로 어떻게 돌릴 수 있지? 누구나 풀 수 있으면 안 되잖아?
이 질문에 대한 해답이 바로 암호 알고리즘과 키(Key)입니다.
🔑 2. ‘키(Key)’란 무엇인가?
암호화나 복호화할 때는 항상 어떤 ‘비밀 열쇠’, 즉 키가 필요합니다.
- 암호를 만드는 규칙
- 암호를 풀 수 있는 유일한 단서
마치 자물쇠를 잠글 때 열쇠가 필요하듯, 암호화도 키가 있어야 잠그고 풀 수 있는 구조입니다.
그럼 이 키를 어떻게 관리하느냐에 따라 암호 방식도 달라지는 거야?
맞습니다.
여기서부터 대칭 암호와 비대칭 암호가 갈라집니다.
⚖️ 3. 대칭 암호 알고리즘 (Symmetric Encryption)
🧭 정의
같은 키로 암호화와 복호화를 하는 방식입니다.
송신자: 메시지 → (암호화: 키A) → 암호문
수신자: 암호문 → (복호화: 키A) → 원래 메시지
🗝️ 특징
- 키는 하나
- 보내는 사람과 받는 사람이 공유
- 속도가 빠르고 구조가 단순
💡 예시
- AES
- DES
- RC4
🧪 비유
하나의 집 열쇠를 가족끼리 공유하는 것과 같습니다. → 열쇠가 없으면 아무도 들어갈 수 없습니다.
🏛️ 4. 비대칭 암호 알고리즘 (Asymmetric Encryption)
🧭 정의
서로 다른 키로 암호화와 복호화를 수행하는 방식입니다.
두 개의 키가 필요합니다:
- 공개키: 누구나 볼 수 있음
- 개인키: 나만 알고 있음
송신자: 메시지 → (암호화: 공개키) → 암호문
수신자: 암호문 → (복호화: 개인키) → 원래 메시지
🗝️ 특징
- 공개키로 암호화하고 개인키로만 복호화
- 키 공유가 필요 없음
- 보안성이 높지만 속도는 느림
💡 예시
- RSA
- ECC
- ElGamal
🧪 비유
누구나 편지를 당신의 우체통(공개키)에 넣을 수 있지만, 꺼낼 수 있는 건 당신 혼자입니다(개인키).
🔬 5. 대칭 vs 비대칭 정리
항목 | 대칭 암호 | 비대칭 암호 |
---|---|---|
키 개수 | 1개 (공유 키) | 2개 (공개키 + 개인키) |
키 전달 | 사전에 안전하게 공유 필요 | 공개키만 전달하면 됨 |
보안 수준 | 낮음 (키 유출 시 위험) | 높음 (개인키만 지키면 안전) |
속도 | 빠름 | 느림 |
사용 예시 | 파일 암호화, 내부 통신 | 이메일, 디지털 서명, 인증서 |
🧠 6. 그런데 왜 둘 다 쓰일까?
보안이 더 좋은 비대칭 방식만 쓰면 되는 거 아냐?
현실은 그렇지 않습니다. 비대칭 방식은 속도가 너무 느리기 때문입니다.
그래서 인터넷에서는 두 가지를 함께 사용합니다. 이를 하이브리드 암호화(Hybrid Encryption)라고 합니다.
🔒 실제 시나리오 (예: HTTPS 통신)
- 서버가 공개키를 클라이언트에 보냄
- 클라이언트는 공개키로 대칭키(AES)를 암호화해서 보냄
- 서버는 개인키로 복호화
- 이후부터는 빠른 대칭키로 통신 진행
'자격증 > 정보처리기사' 카테고리의 다른 글
소프트웨어 품질을 어떻게 평가할까? – ISO/IEC 25000 (0) | 2025.04.30 |
---|---|
인터페이스 데이터 포맷 완전 정리 (0) | 2025.04.30 |
라이브러리 vs 프레임워크 차이점 (1) | 2025.04.29 |
선점형(Preemptive) vs 비선점형(Non-Preemptive) 스케줄링 완전 정리 (0) | 2025.04.28 |
프로세스 스케줄링 요약 (0) | 2025.04.28 |
- Total
- Today
- Yesterday
- C/C++
- 보세사
- 회계
- 티스토리챌린지
- 류근관
- 통계
- stl
- 열혈프로그래밍
- 데이터분석
- Python
- 여인권
- 정보처리기사
- 인프런
- 파이썬
- C
- 강화학습
- 일문따
- 오블완
- 통계학
- K-MOOC
- 백준
- 코딩테스트
- c++
- 뇌와행동의기초
- 사회심리학
- 일본어문법무작정따라하기
- 일본어
- 심리학
- 인지부조화
- 윤성우
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |