504. 암호화 알고리즘 (대칭키-AES, 비대칭키-RSA/ECC, 일방향-SHA) 적용 기준
핵심 인사이트 (3줄 요약)
- 본질: 암호화 아키텍처는 세상의 모든 데이터를 보호하기 위해 **가장 빠르고 무식하게 잠그는 대칭키(AES), 가장 느리지만 수학적으로 완벽한 신분 확인과 열쇠 교환을 해내는 비대칭키(RSA/ECC), 그리고 영원히 복원 불가능한 블랙홀로 밀어 넣어 지문만 남기는 일방향 해시(SHA)**라는 3개의 톱니바퀴를 정밀하게 맞물려 돌리는 과학적 예술이다.
- 가치: "다 중요하니까 RSA 비대칭키로 싹 다 암호화해!"라는 멍청한 오버엔지니어링(Over-engineering)을 분쇄한다. 각 알고리즘이 가진 속도(Performance)와 보안성(Security)의 치명적 딜레마(Trade-off)를 이해하고, 목적(데이터 저장, 네트워크 통신, 패스워드 증명)에 맞게 핀셋으로 꽂아 넣어 서버 CPU의 낭비를 막고 100만 TPS의 대용량 트래픽을 감당하는 진짜 아키텍트의 능력을 부여한다.
- 융합: 이 3가지 톱니바퀴는 인터넷 뱅킹의 심장인 **HTTPS(TLS 1.3 통신)**에서 그 궁극의 시너지를 폭발시킨다. RSA로 서로의 신분증을 확인하고 1회용 AES 열쇠를 몰래 교환한 뒤, 빛의 속도인 AES로 데이터를 미친 듯이 암호화해 쏘면서, SHA 해시 도장을 찍어 중간에 해커가 편지를 뜯어보지 못하게 무결성(Integrity)까지 방어하는 하이브리드 우주 방어망의 삼위일체다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 세상엔 수백 개의 암호화 알고리즘이 있지만 그 뼈대는 딱 3개다.
- 대칭키 (Symmetric Key - AES): 잠글 때 쓴 열쇠와 풀 때 쓰는 열쇠가 똑같다. (자물쇠 1개, 열쇠 1개)
- 비대칭키 (Asymmetric Key - RSA/ECC): 잠글 때 쓴 열쇠(공개키)로는 절대 못 풀고, 나만 몰래 가진 열쇠(개인키)로만 풀 수 있다. (열쇠가 2개 1세트)
- 일방향 해시 (One-way Hash - SHA): 고기를 갈아서 햄버거 패티로 만든다. 패티를 다시 소고기 모양으로 되돌릴 수(복호화) 없는 '파괴적 단방향' 믹서기다.
-
필요성: 주니어 개발자들은 "가장 안전한 거 하나만 쓰면 안 돼?"라고 묻는다. 불가능하다. 비대칭키(RSA)는 무적에 가깝지만 너무 무거운 수학(소인수분해) 연산을 써서, 동영상 1GB짜리를 암호화하려면 서버 CPU가 터지고 1시간이 걸린다. 반면 대칭키(AES)는 빛처럼 빠르지만, 처음에 친구한테 이 열쇠를 건네주다 해커(우체부)한테 뺏기면 세상이 끝난다. 이 끔찍한 장단점을 교묘하게 섞어서 "열쇠 교환은 무거운 비대칭키로, 1GB짜리 진짜 데이터 전송은 빠른 대칭키로, 데이터 훼손 여부는 가벼운 해시로" 짬짜면처럼 섞어 써야(하이브리드 암호화) 1초 만에 안전한 결제 시스템이 켜지기 때문에 3가지 잣대를 완벽히 숙지해야 한다.
-
💡 비유:
- **대칭키(AES)**는 **'집 현관문 열쇠'**입니다. 열쇠 1개로 잠그고 엽니다. 복사해서 엄마랑 나눠 가지면 엄청 빠르고 편하지만, 우편함에 넣어두고 몰래 가져가라고 하다 도둑이 채가면 끝장납니다(키 교환의 위험).
- **비대칭키(RSA)**는 **'입구가 하나뿐인 투입형 우체통'**입니다. 동네 사람 누구나(공개키) 우체통에 편지(데이터)를 넣을 수 있습니다. 하지만 한 번 들어가면 아무도 못 꺼냅니다. 오직 우체통 바닥을 여는 유일한 마스터키(개인키)를 가진 집배원 아저씨 딱 1명만 편지를 꺼내 읽을(복호화) 수 있습니다.
- **해시(SHA)**는 **'문서 파쇄기'**입니다. 100장짜리 비밀 문서를 징~ 하고 갈아서 '3cm 뭉치'로 만들어버립니다. 다시 종이로 되돌릴 수 없지만, 나중에 똑같은 100장을 가져와서 파쇄기에 넣으면 완벽히 똑같은 모양의 '3cm 뭉치'가 나옵니다. 원본이 같은지만 확인할 때 쓰는 지독한 마법입니다.
-
등장 배경 및 발전 과정:
- 대칭키의 독재와 배달 사고: 로마 시대(시저 암호)부터 세계 대전(에니그마)까지 대칭키만 썼다. 하지만 "이 암호 열쇠를 저 멀리 있는 연합군에게 어떻게 몰래 배달하지?"라는 '키 분배 문제(Key Distribution Problem)' 때문에 독일군이 파멸했다.
- 디피-헬먼과 RSA 혁명 (1970년대): 수학 천재들이 "열쇠 배달하다 털리는 문제를 아예 없애버리자! 잠그는 키와 푸는 키를 수학적으로 쪼개버리자!"라며 인류 역사상 최고의 혁명인 **비대칭키(공개키 암호화)**를 발명하며 인터넷 전자상거래의 길을 뚫었다.
- ECC와 하이브리드의 대통일 (현재): 스마트폰 시대가 왔다. RSA는 키 길이가 무려 2048비트라 모바일 배터리를 광탈시켰다. 그래서 타원 곡선 수학을 써서 키 길이를 256비트로 10배 다이어트시킨 **ECC(타원곡선 암호)**가 모바일과 블록체인을 점령했고, 이 3대장이 모여 완벽한 TLS(HTTPS) 생태계를 지배 중이다.
-
📢 섹션 요약 비유: 이 3가지 알고리즘은 특수부대의 **'전술 포메이션'**입니다. **RSA(비대칭키)**는 헬기를 타고 적진에 투입할 좌표와 무전 암구호를 조용하고 안전하게 건네주는 '은밀한 침투 부대'입니다. **AES(대칭키)**는 헬기에서 내리자마자 M16 소총을 미친 듯이 난사하며 적의 본진 100만 명을 빛의 속도로 뚫어버리는 '람보 돌격대'입니다. **SHA(해시)**는 전투가 끝난 뒤 우리 편 시체에 남의 DNA가 섞였는지 지문만 톡 찍어서 확인하고 버려버리는 깐깐한 '과학 수사대'입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
1. 양방향 암호화: 대칭키(AES) vs 비대칭키(RSA/ECC)
둘 다 나중에 원본으로 100% 되돌릴 수(복호화) 있다.
| 척도 | 대칭키 (Symmetric) - 👑 AES-256 | 비대칭키 (Asymmetric) - 👑 RSA, ECC |
|---|---|---|
| 열쇠의 개수 | 1개 (암호화 Key = 복호화 Key) | 2개 1세트 (Public Key & Private Key) |
| 속도 (Performance) | 미친 듯이 빠름 (고속도로 레이싱) | 미친 듯이 느림 (대칭키보다 약 1,000배 느림) |
| 주요 사용처 | 동영상, DB 데이터, 1GB 압축파일 등 거대한 짐덩어리(Data) 암호화 | 거대한 짐은 안 됨. 100바이트짜리 가벼운 '대칭키 열쇠 자체'를 교환하거나 **'전자 서명'**할 때만 씀. |
| 최대 단점 (아킬레스건) | 열쇠를 상대방에게 넘겨주다가 우체부가 가로채면 세상이 끝남 (키 분배의 딜레마). | 속도가 느려 터져서, 대용량 데이터를 이걸로 암호화하면 서버 CPU가 다 타버림. |
2. 비대칭키의 진짜 마법: '전자 서명 (Digital Signature)'
비대칭키는 2개의 열쇠(공개키, 개인키)가 수학적으로 엮여있어 재미있는 양방향 마술이 가능하다.
- 1번 마법 [기밀성 보장]: 상대방의 '공개키(모두에게 공개)'로 편지를 잠가서 보낸다 ➡ 우주에서 오직 상대방의 '개인키(혼자 숨김)'로만 열 수 있다. (해커가 훔쳐도 못 연다. 암호화의 본질)
- 2번 마법 [전자 서명 / 부인 방지] 💥 핵심: 이번엔 거꾸로 쓴다. 내 '개인키'로 문서를 잠가서(서명해서) 동네방네 뿌린다 ➡ 사람들은 내 '공개키'로 이 문서를 열어본다. 열렸다는 건 무엇을 의미할까? 이 문서가 무조건 '내 개인키'로 잠겼다는 뜻이다. 즉, **"이거 무조건 100% 내가 보낸 문서(도장 쾅)야! 딴 놈이 위조한 게 아니야!"**라는 강력한 신원 인증(Authentication)과 부인 방지 효과를 낳는다. (공인인증서와 JWT 서명의 근간 원리)
3. 일방향 암호화: 해시 함수 (SHA-256)
암호화라고 부르면 안 된다. 복호화(풀기)가 안 되기 때문이다. 지문 인식기와 똑같다.
-
눈사태 효과 (Avalanche Effect): "사과"를 넣으면
A1B2...가 나온다. 근데 "사과." (점 하나 추가)를 넣으면Z9X8...로 완전 100% 딴판인 글씨가 나온다. 단 1비트만 달라도 전체 결과값이 뒤집히기 때문에, 해커가 결과값만 보고 원본을 유추하는 것이 수학적으로 불가능하다. -
주요 사용처:
- 비밀번호 저장: DB에
1234대신해시값을 넣는다. 로그인할 때 친1234를 해시 돌려서 DB의 해시값과 "똑같네?" 비교만(Verify) 할 뿐, 절대 원래 비밀번호를 끄집어내지 않는다. (다음 장 505번 연계) - 무결성 검사 (Checksum): 10GB짜리 영화를 다운받을 때, 다운받기 전의 지문(해시)과 다운 후의 지문을 비교하여 중간에 악성코드가 안 섞였는지 0.1초 만에 팩트 체크한다.
- 비밀번호 저장: DB에
-
📢 섹션 요약 비유: 대칭키는 '자물쇠' (싸고 빠름), 비대칭키는 '인감도장과 열쇠 교환 박스' (느리지만 절대적 증명), 해시 함수는 '지문 인식기' (사람의 몸통을 살려내진 못하지만, 그 사람이 맞는지 그림 대조만 1초 컷으로 해줌)입니다. 이 3개의 부품이 당신의 스마트폰 뱅킹 앱 안에서 1초 동안 미친 듯이 맞물려 돌아가며 당신의 잔고를 지키고 있습니다.
Ⅲ. 융합 비교 및 다각도 분석
1. 비대칭키의 진화: 무거운 코끼리(RSA) vs 날쌘 치타(ECC)
스마트폰과 IoT, 블록체인 시대가 부른 암호학의 세대교체.
| 척도 | RSA (Rivest-Shamir-Adleman) | ECC (Elliptic Curve Cryptography, 타원곡선) 👑 |
|---|---|---|
| 수학적 뼈대 | 두 개의 거대한 소수(Prime Number)를 곱하는 것은 쉽지만, 다시 쪼개는(소인수분해) 것은 미친 듯이 어렵다는 원리. | 타원(물방울 모양) 그래프 위에서 당구공을 튕기며 점을 찾는 미친 수학. 역추적 자체가 우주가 멸망할 때까지 불가능. |
| 열쇠 길이 (Key Size) | 2048 bit ~ 4096 bit (엄청 김, 무거움) | 256 bit (RSA 3072비트 급의 방어력을 고작 256비트로 냄) |
| 서버/기기 부하 | CPU를 미친 듯이 퍼먹고 배터리 광탈. | CPU 소모가 1/10 수준으로 가볍고 빛의 속도로 연산함. |
| 비즈니스 트렌드 | 옛날부터 써온 레거시 웹(PC 시대 HTTPS). | 비트코인(블록체인) 지갑 주소 생성, 모바일 앱(iOS/Android) 인증서, IoT 기기의 절대 표준. |
과목 융합 관점
-
네트워크 (TLS/SSL 핸드셰이크의 완벽한 하이브리드 교향곡): 이 3개의 알고리즘이 뭉쳐서 세상을 구원한 기적이 바로
HTTPS통신이다.- 클라이언트가 네이버 서버에 접속하면, 네이버는 자기 신분증(인증서)과 **비대칭키 공개키(RSA/ECC)**를 준다.
- 클라이언트는 받은 네이버의 공개키로 "우리 둘이 이번 통신에서만 몰래 쓸 1회용 대칭키(AES)"를 암호화해서 네이버에 몰래 던져준다. (해커가 이 패킷을 훔쳐도, 네이버의 개인키가 없어서 AES 키를 꺼내볼 수 없다!)
- 네이버가 1회용 대칭키(AES)를 무사히 넘겨받았다. 이제부터 둘은 무거운 RSA는 집어던지고, 빛의 속도인 **대칭키(AES)**로 웹 페이지 10MB짜리 데이터를 미친 듯이 암호화해서 주고받는다.
- 이때 중간에 해커가 데이터를 변조할까 봐, 패킷 끝에 해시(SHA-256) 지문을 쾅쾅 찍어서 무결성을 보장하며 날린다. 아키텍처의 완벽한 삼위일체다.
-
📢 섹션 요약 비유: 이 하이브리드 아키텍처는 **'마피아의 마약 거래 작전'**과 똑같습니다. 처음 만나서 진짜 우리 조직원이 맞는지 얼굴 확인하고 비밀 암구호를 귀에 대고 1초 속삭이는 것(무거운 인증과 열쇠 교환)이 **비대칭키(RSA)**입니다. 확인이 끝나면 무거운 양복을 찢어 던지고 셔츠 바람으로 트럭 100대 분량의 마약(데이터)을 초광속으로 주고받는 것(실제 통신)이 **대칭키(AES)**입니다. 그리고 트럭 화물칸 봉인이 뜯기지 않았는지 도장을 확인하는 게 **해시(SHA)**입니다. 이 3가지 콤보 덕분에 우린 스타벅스 와이파이에서도 안심하고 계좌 이체를 할 수 있습니다.
Ⅳ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — 무지성 RSA 만능주의가 부른 로그인 서버 마비 사태: 스타트업 신입 개발자가 "보안은 무조건 빡세게!"라며 10MB짜리 동영상 파일 업로드 기능 전체를
RSA-4096(최고 등급 비대칭키) 알고리즘으로 암호화해서 DB에 넣도록 짰다. 배포 직후, 유저 10명이 동시에 10MB 동영상을 올리자 서버 CPU가 100%를 치며 서버가 폭발해 버렸다. RSA는 문자열 한두 줄(100바이트) 용이지 메가바이트(MB) 단위를 씹어먹을 수 있는 소화 기관을 가지지 않았기 때문이다.- 아키텍트의 해결책: 암호화 알고리즘의 용도(Context)와 연산 비용(Cost)을 망각한 오버엔지니어링의 대참사다. 아키텍트는 꿀밤을 때리고 즉각 롤백(Rollback) 시켜야 한다. "대용량 파일, DB 칼럼(주민번호 등), 유저의 장문 텍스트는 묻지도 따지지도 말고 무조건 **대칭키(AES-256-GCM)**로 암호화하라! 비대칭키(RSA/ECC)는 오직 그 AES 열쇠를 교환할 때나, 짧은 JWT 토큰에 '서명(Signature)' 도장을 찍을 때만 핀셋으로 써야 서버가 숨을 쉰다!"는 명확한 아키텍처 가이드를 내리꽂아야 한다.
-
시나리오 — 구시대 해시 함수(MD5)의 방치와 레인보우 테이블 털림: KISA 보안 감사가 떴다. 감리관이 소스코드를 보더니 시뻘건 얼굴로 소리쳤다. "비밀번호 암호화에 왜
MessageDigest.getInstance("MD5")를 쓰셨습니까? 당장 탈락입니다!" 개발자는 억울해했다. "단방향 해시(Hash) 쓰면 된다면서요? MD5도 해시 잖아요!" 감리관이 웃으며 인터넷에서 해커가 쓰는 '레인보우 테이블(MD5 정답 엑셀표)' 사이트를 열어, 그 DB에 찍힌 해시값을 넣었다. 1초 만에 평문 비밀번호password123!이 툭 튀어나왔다. 단방향의 전제가 완전히 박살 난 것이다.- 아키텍트의 해결책: 암호화 알고리즘의 노후화(Outdated Cryptography) 징후 방치다. 암호학의 세계에서 "어제 안전했던 룰이 오늘도 안전하다"는 보장은 없다. MD5와 SHA-1은 스마트폰 CPU로도 1초에 1억 번 돌려버리는 허접한 장난감이 되어 이미 10년 전에 사망 선고를 받았다. 아키텍트는 젠킨스(CI)의 SonarQube(정적 분석기) 룰셋을 튜닝하여,
MD5,SHA-1,DES,RC4같은 저주받은 낡은 키워드가 소스코드 텍스트에 단 1바이트라도 감지되는 순간 빌드를 즉각 폭파(Fail)시켜 낡은 기술의 유입을 물리적으로 봉쇄해야 한다. (현재 최소 기준은SHA-256,AES-256,RSA-2048이다.)
- 아키텍트의 해결책: 암호화 알고리즘의 노후화(Outdated Cryptography) 징후 방치다. 암호학의 세계에서 "어제 안전했던 룰이 오늘도 안전하다"는 보장은 없다. MD5와 SHA-1은 스마트폰 CPU로도 1초에 1억 번 돌려버리는 허접한 장난감이 되어 이미 10년 전에 사망 선고를 받았다. 아키텍트는 젠킨스(CI)의 SonarQube(정적 분석기) 룰셋을 튜닝하여,
도입 체크리스트
- 조직적: 블록 암호 모드(Block Cipher Mode) 중 EBC 모드를 사형시켰는가? 대칭키(AES)를 쓸 때, 암호화 덩어리(블록)를 어떻게 쪼개서 엮을지 모드(Mode)를 정해야 한다. 멍청한 개발자는 자바 디폴트인
AES/ECB를 그냥 쓴다. ECB 모드는 똑같은 평문을 넣으면 똑같은 암호문 그림이 나와서, 펭귄 사진을 암호화하면 펭귄 윤곽선이 그대로 노출되는 끔찍한 결함(펭귄 짤방의 전설)이 있다. 아키텍트는 앞 블록의 암호문과 뒤 블록 평문을 섞어서 꼬아버리는AES/CBC또는 무결성 씰까지 붙여주는 궁극의AES-GCM모드만을 사내 코딩 표준 라이브러리로 템플릿화하여 강제 배포해야 한다. - 기술적: 양자 내성 암호(PQC)로의 크립토 어질리티(Crypto-Agility)를 설계했는가? 10년 안에 구글의 양자 컴퓨터가 상용화되면, 지금 철통같이 믿고 있는 RSA-2048과 ECC(비대칭키)가 단 10분 만에 휴지 조각처럼 뚫리는 멸망의 날(Q-Day)이 온다. 아키텍트는 소스 코드 내부에
Cipher.getInstance("RSA")라고 하드코딩(Hard-coding)을 쳐 박아두면 절대 안 된다. 언제든지 외부 설정 파일(Config)의 스위치만 딸깍! 바꾸면, 소스코드 수정 단 1줄 없이도 밑바닥 암호화 엔진이 양자 내성 알고리즘(CRYSTALS-Kyber 등)으로 1초 만에 휙 갈아 끼워지는 '암호화 민첩성(Agility)' 인터페이스(Strategy 패턴) 뼈대를 지금 당장 구축해 둬야 한다. (다음 장 506번 연계)
안티패턴
-
"내가 만든 짱 쎈 독자적 암호화! (Roll Your Own Crypto)": 전 세계 보안 학계가 가장 조롱하고 혐오하는 중2병 안티패턴. 알고리즘 좀 배웠다는 개발자가 "AES는 해커들도 원리를 다 알잖아? 내가 시프트(Shift) 연산이랑 XOR 비트 연산 막 섞어서 100번 꼬아 만든 나만의 'K-암호'를 쓰면 해커가 코드를 몰라서 절대 못 뚫겠지! ㅋㅋㅋ (Security through Obscurity)" 라며 독자 코딩을 한다. 해커는 역어셈블리(Decompile)로 10분 만에 그 똥 코드를 까보고, 취약한 수학적 반복 패턴(난수 충돌 등)을 찾아내 1초 만에 암호를 해독해 버린다. "현대 암호학은 소스코드를 전 세계 해커에게 100% 다 까발려도, '비밀 키(Key)' 딱 하나만 없으면 1,000년 동안 수학적으로 풀 수 없는 글로벌 표준(AES, RSA)만을 절대 신앙으로 섬겨야 한다."
-
📢 섹션 요약 비유: 독자적 암호를 만드는 것은 **'동네 철물점 아저씨가 남는 철판으로 용접해서 금고를 만드는 것'**과 같습니다. 동네 꼬마는 못 열겠지만, 다이아몬드 절단기를 가져온 프로 은행 강도 앞에서는 이음새가 1초 만에 박살 납니다. 은행 금고는 무조건 설계도를 전 세계에 공개하고 1만 명의 전문가가 10년간 두드려 패도 흠집 하나 안 난 **'스위스제 글로벌 표준 금고(AES/RSA)'**를 수입해서 써야 합니다.
Ⅴ. 기대효과 및 결론
정량/정성 기대효과
| 구분 | 무지성 암호화 알고리즘 혼용 및 낡은 MD5 방치 (AS-IS) | 목적에 맞는 3대 알고리즘 분리 적용 및 AES-GCM 강제 (TO-BE) | 개선 효과 |
|---|---|---|---|
| 정량 | RSA로 대용량 데이터 암호화하여 서버 CPU 사용률 90% | 데이터는 AES-GCM으로 깎고, 서명만 ECC로 빼서 CPU 15% | 암호화 오버헤드 감소로 서버 TPS 성능 및 응답 속도 5배 폭증 |
| 정량 | KISA/금융위 보안 감리 시 MD5/DES 적발로 연 10건 탈락 | SAST 린터로 구형 알고리즘 원천 봉쇄 0건 통과 | 국가 보안 표준(Compliance) 심사 적발에 따른 릴리즈 지연 0% |
| 정성 | "이 데이터 어떻게 잠그지?" 개발자마다 다른 로직 삽질 | "통신은 TLS, DB는 AES, 비번은 Bcrypt" 명확한 룰 | 아키텍처 의사결정의 투명성 확보 및 개발자 보안 피로도(Fatigue) 멸망 |
미래 전망
- 동형 암호 (Homomorphic Encryption)의 판도 체인지: 현재 AES의 가장 큰 약점은, 클라우드(AWS) 데이터 분석 서버가 DB 데이터를 읽고 평균이나 통계를 내려면 무조건 한 번은 암호를 풀어(복호화) 평문으로 만들어야 한다는 것이다. 해커는 이 찰나의 순간을 노려 메모리를 턴다. 10년 뒤의 미래 암호학은 **'동형 암호'**가 씹어 먹는다. 암호화된
##$^과&**@이라는 텍스트를 해독하지 않은 쓰레기 문자열 상태 그대로 더하고 뺐는데, 나중에 고객이 안전한 폰에서 복호화해 보면 정확히1+2=3이라는 정답이 나오는 흑마법이다. 클라우드에서 영구적으로 '평문 노출 없는 100% 무균 연산' 시대가 도래한다. - 클라우드 KMS(키 관리 시스템)의 절대 종속: 아무리 AES-256을 써도, 개발자가 암호 키(열쇠)를 깃허브 소스코드에
String key="1234"로 올리면 게임 오버다. 알고리즘의 퀄리티 싸움은 끝났다. 미래의 암호화 승패는 **"알고리즘을 뭘 쓰냐"가 아니라 "열쇠(Secret Key)를 어떻게 완벽하게 런타임에서 격리 보관하느냐"**로 넘어갔다. AWS KMS나 HashiCorp Vault 같은 인프라 금고(Key Vault)와의 융합 설계가 암호화 아키텍처의 알파이자 오메가로 격상되었다. (이전 장 479번 연계)
참고 표준
- FIPS 140-3 (미국 연방 정보 처리 표준): "미국 정부에 소프트웨어 팔려면 낡은 거 다 버리고 이 알고리즘 목록(AES, SHA-3 등)만 써라!"고 전 세계 표준을 강제(멱살 잡기)해 버린 절대 법전. KISA 가이드라인도 100% 이 족보를 베껴서 업데이트한다.
- NIST Post-Quantum Cryptography (PQC) 표준화: 미국 국립표준기술연구소가 양자 컴퓨터의 멸망(Q-Day)을 막기 위해, 10년간 전 세계 수학 천재들을 모아놓고 배틀로얄을 시켜 최근 확정한 '새로운 양자 내성 암호 표준 알고리즘(CRYSTALS-Kyber 등)'의 위대한 가이드라인. (다음 장 506번)
암호화 알고리즘(대칭, 비대칭, 해시)은 소프트웨어 공학이 인류 역사 2,000년의 수학 천재들에게 빌려온 **'가장 차갑고 비정한 신뢰(Trust)의 방패'**다. 네트워크라는 인터넷의 바다는 해커들이 당신의 패킷을 팝콘 먹으며 구경하는 투명한 어항과 같다. 기술사는 내 데이터가 투명한 바다를 건너가는 사실(도청)을 쿨하게 인정하고 포기해야 한다. 대신, 해커가 그 패킷을 낚아채서 100년 동안 슈퍼컴퓨터로 쳐다봐도 절대 1비트의 진실조차 알아낼 수 없게, 수학이라는 압도적이고 영원한 우주의 법칙으로 데이터를 자물쇠 채우고 짓뭉개버려야 한다. 목적에 맞춰 가장 가볍고 튼튼한 자물쇠(AES)를 고르고, 열쇠는 비대칭(RSA/ECC) 마법으로 가장 은밀하게 넘겨주며, 누구도 편지 봉투에 칼을 대지 못하게 해시(SHA)로 씰링(Sealing)하는 것. 이 완벽한 3중 방어의 톱니바퀴를 설계하는 자만이 1조 원짜리 비즈니스 트래픽을 안전하게 목적지로 배송하는 숭고한 배달의 기수가 될 수 있다.
- 📢 섹션 요약 비유: 이 3가지 암호화 아키텍처는 왕이 쓴 **'1급 비밀 편지 배달 작전'**과 같습니다.
- 대칭키(AES): 편지 내용을 아무도 못 읽게 이탈리아어(왕과 장군만 아는 비밀 언어)로 번역해서 쓰는 것입니다 (초고속).
- 비대칭키(RSA): 근데 장군이 이탈리아어를 모릅니다. 그래서 이탈리아어 '사전(열쇠)'을 튼튼한 금고에 넣고, 장군만 100% 열 수 있는 특수 자물쇠(공개키/개인키 마법)로 꽉 잠가서 따로 배달하는 것입니다 (은밀하고 안전함).
- 해시(SHA): 편지 봉투 입구에 왕의 피와 뜨거운 촛농을 부어 '왕가의 인감도장(무결성 지문)'을 꽉 찍어버리는 것입니다. 중간에 스파이가 편지를 살짝 뜯어보려고 촛농을 건드리는 순간 도장 자국이 박살 나고 돌이킬 수 없게 되어 1초 만에 위조 사실이 뽀록나는(무결성 훼손 탐지) 최고의 방어막입니다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| 암호화 실패 (A02) | OWASP Top 10에서 2위를 차지한 비극. 이 3가지 톱니바퀴의 용도를 모르고 "비밀번호를 AES(대칭키)로 암호화해서 나중에 풀어볼게~"라는 멍청한 짓을 할 때 터지는 전 국민 데이터 유출 사태. (이전 장 479번) |
| 비밀번호 저장 (Bcrypt / Salt) | 해시(SHA) 함수의 가장 위대한 응용처. 해시는 복호화(풀기)가 안 되니까, 비밀번호를 저장할 때 가장 제격이다. 해커가 DB를 털어도 절대 원래 비번 1234를 알아낼 수 없는 흑마법. (다음 장 505번) |
| HTTPS (TLS 1.3 통신) | 대칭키(속도) + 비대칭키(키 교환) + 해시(무결성) 이 3명의 삼총사가 1팀으로 완벽하게 어우러져 돌아가는 인터넷 역사상 최고이자 최종 진화형 융합 인프라 방벽. |
| 디지털 서명 (Digital Signature) | 비대칭키(RSA/ECC)를 거꾸로 쓰는 기발한 발상. 내 개인키로 문서를 잠가서 뿌리면, 내 공개키를 가진 전 국민 누구나 문서를 열어보며 "와! 이거 사칭이 아니라 진짜 대통령이 보낸 문서 맞네!"라고 100% 확신(부인방지)하게 하는 도장. |
| 양자 내성 암호 (PQC) | 비대칭키(RSA/ECC) 형님들이 조만간 쳐들어올 양자 컴퓨터한테 1초 만에 찢어발겨질 예정이라, 부랴부랴 인류가 새로 만들고 있는 격자(Lattice) 기반의 무지막지한 수학 방패. (다음 장 506번) |
👶 어린이를 위한 3줄 비유 설명
- 내가 친구한테 엄청 큰 장난감(대용량 데이터)을 보낼 건데, 도둑이 못 뺏어 가게 아주 빠르고 튼튼한 **'자물쇠(대칭키-AES)'**로 잠갔어요. 자물쇠를 풀 수 있는 열쇠도 딱 1개뿐이죠!
- 그런데 이 '단 하나뿐인 열쇠'를 친구한테 전해주다가 도둑이 훔쳐 가면 큰일 나잖아요? 그래서 열쇠는 **'친구만 열 수 있는 특수 마법 상자(비대칭키-RSA)'**에 넣어서 아주 조심스럽게 따로 배달했어요!
- 마지막으로 친구가 박스를 받기 전에, 도둑이 중간에 장난감을 다른 걸로 바꿔치기하지 않았는지 확인하려고 상자 겉에 **'내 손도장(일방향 해시-SHA)'**을 꾹 찍어서 보냈어요. 이 3가지 마법을 섞어 쓰는 완벽한 배달법을 **'암호화 알고리즘 삼총사'**라고 부른답니다!