479. Cryptographic Failures (암호화 실패 / 민감 데이터 노출)
핵심 인사이트 (3줄 요약)
- 본질: 암호화 실패(Cryptographic Failures)는 과거 '민감 데이터 노출(Sensitive Data Exposure)'로 불렸던 취약점으로, 시스템에 저장되거나(Data at Rest) 네트워크로 전송되는(Data in Transit) 중요한 개인정보(비밀번호, 신용카드, 주민번호)를 암호화하지 않거나, 낡고 뚫린 암호화 알고리즘(MD5, DES)을 써서 해커에게 평문(Plaintext)으로 헌납하는 대참사다.
- 가치: 해커가 SQL 인젝션으로 DB를 뚫고 들어오더라도, 고객의 비밀번호가 강력한 단방향 해시(Bcrypt)로 꼬여있다면 해커가 훔쳐간 데이터는 그저 '의미 없는 쓰레기 문자열'이 되어 고객의 2차 피해(크리덴셜 스터핑)를 원천 차단하는 최후의 방어선 역할을 한다.
- 융합: 웹 서버 통신 구간의 HTTPS/TLS 1.3 강제화, 데이터베이스 암호화(TDE), 그리고 하드코딩된 암호 키를 소스코드에서 분리하여 안전하게 런타임에 주입하는 키 관리 시스템(KMS, Vault) 아키텍처와 결합되어 무결성과 기밀성의 성벽을 완성한다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 데이터를 숨기는 기술(암호화)이 실패한 모든 경우를 뜻한다. 회원가입할 때 비밀번호
1234를 그대로 DB에 박아넣거나, 개발자가Base64(이건 암호화가 아니라 인코딩이다)로 대충 꼬아놓고 "암호화했다!"라고 착각하거나, 서버끼리 통신할 때 암호화되지 않은 HTTP로 데이터를 주고받아 중간에 패킷이 가로채이는(Sniffing) 모든 멍청한 실수들을 포괄한다. -
필요성: 세상에 뚫리지 않는 서버는 없다(제로 트러스트의 전제). 방화벽이 뚫리고, 웹 서버가 뚫리고, 결국 DB까지 털렸을 때, 유일하게 고객을 지킬 수 있는 마지막 희망은 **"털어간 데이터가 암호화되어 있어서 해커가 읽을 수 없는 상태인가?"**이다. 만약 비밀번호가 평문으로 털리면, 해커는 그 아이디와 비밀번호로 고객의 네이버, 카카오, 은행 계좌까지 다 뚫어버린다(Credential Stuffing). 해커에게 데이터를 빼앗기는 것은 막지 못해도, 그 데이터를 '읽는 것'만큼은 절대 허락하지 않기 위해 암호화의 겹겹이 쳐진 락(Lock)이 필요하다.
-
💡 비유: 암호화 실패는 현금 수송차의 **'투명 유리 금고'**와 같습니다. 강도가 현금 수송차(서버)를 총으로 쏴서 멈춰 세우는 것(DB 침투)을 막을 순 없습니다. 그런데 수송차 안에 있는 금고가 투명한 유리로 되어있고 돈다발이 그대로 보인다면(평문 저장), 강도는 유리창을 깨고 돈을 가져갑니다. 하지만 진짜 무거운 **강철 암호화 금고(Bcrypt)**로 돈을 감싸놓았다면, 강도는 금고 통째로 훔쳐 가더라도 10년 동안 열지 못해 결국 돈을 포기하게 됩니다.
-
등장 배경 및 발전 과정:
- 평문의 시대 (낭만의 90년대): 암호화는 CPU를 많이 먹는 사치품이었다. 대부분의 웹사이트가 HTTP로 통신하고 비밀번호를 평문으로 쌩으로 저장했다.
- 해시의 대중화와 레인보우 테이블 (2000년대): 개발자들이 비밀번호를 MD5나 SHA-1로 해시(Hash)해서 저장하기 시작했다. 그러자 해커들은 "아, MD5로
1234를 암호화하면81dc9...이구나"라는 수억 개의 정답지(Rainbow Table)를 엑셀로 미리 만들어놓고 1초 만에 암호를 역추적해 풀어버렸다. - 솔트(Salt)와 최신 암호화 (현재): OWASP Top 10에 만년 상위권으로 자리 잡으며, "MD5 절대 쓰지 마! 비밀번호 뒤에 무작위 쓰레기값(Salt)을 섞고, 그걸 1만 번 꼬아서(Key Stretching) 연산 속도를 일부러 느리게 만드는
Bcrypt,Argon2만 써라!"라는 절대 규약이 현대 백엔드 아키텍처에 강제되었다.
-
📢 섹션 요약 비유: 옛날엔 편지를 그냥 **엽서(HTTP 평문)**에 써서 보냈습니다. 우체부(해커)가 중간에 다 읽었죠. 그래서 **봉투(초기 암호화)**에 넣었습니다. 봉투를 빛에 비추니(레인보우 테이블) 다 보였습니다. 이제는 편지를 아예 **'해독기 없이는 절대 못 읽는 외계어(최신 암호화)'**로 번역해서 보냅니다. 우체부가 훔쳐 가도 평생 읽지 못합니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
1. 암호화 실패를 막는 3대 핵심 아키텍처 타겟
데이터의 상태에 따라 방어 무기가 완전히 달라진다.
- Data in Transit (전송 중인 데이터)
- 현상: 고객이 로그인 버튼을 눌러 내 폰에서 서버로 날아가는 와이파이(Wi-Fi) 허공 구간. 중간에 와이어샤크(WireShark)로 낚아챌 수 있다.
- 방어: 무조건 전 구간 HTTPS (TLS 1.2 이상) 강제 적용. HSTS(HTTP Strict Transport Security) 헤더를 달아서, 클라이언트가 HTTP로 접속하려 하면 브라우저가 강제로 차단하고 HTTPS로만 통신하게 만든다.
- Data at Rest (저장된 데이터)
- 현상: 서버를 뚫고 들어와 DB 하드디스크(.mdf, .ibd 파일)를 통째로 USB에 복사해서 훔쳐 가는 구간.
- 방어: 데이터베이스 레벨의 투명한 데이터 암호화(TDE, Transparent Data Encryption) 적용. OS 레벨의 디스크 암호화(BitLocker). 주민번호 같은 민감 칼럼은 양방향 암호화(AES-256)로 저장.
- 비밀번호 저장 원칙 (Password Hashing)
- 현상: 비밀번호는 관리자도 알면 안 된다. 복호화(풀기)가 불가능한 '단방향 해시'를 써야 한다.
- 방어: 구형 알고리즘(MD5, SHA-1) 즉각 폐기. 무조건
Bcrypt,Argon2,PBKDF2같이 해커의 GPU 연산 속도를 늦추고 Salt를 버무려 레인보우 테이블을 무력화하는 전용 알고리즘을 사용한다.
2. 치명적 함정: 키 관리(Key Management) 아키텍처
아무리 AES-256이라는 미친 암호화를 썼어도, 암호문을 푸는 '열쇠(Key)'를 도둑맞으면 끝이다.
// 💥 최악의 암호화 실패 (하드코딩)
public class CryptoUtil {
// 해커가 깃허브 소스코드만 훔쳐보면 암호키가 대문짝만하게 적혀 있음. 금고 옆에 열쇠를 둔 꼴.
private static final String SECRET_KEY = "my-super-secret-key-12345";
public String encrypt(String data) { return AES.encrypt(data, SECRET_KEY); }
}
-
해결 아키텍처 (Vault / KMS): 소스코드 안에 절대 암호 키를 박아두면 안 된다. 코드는 깃허브에 올라가는 순간 전 세계 공공재다. 암호 키는 소스코드에서 분리하여, AWS KMS(Key Management Service)나 HashiCorp Vault 같은 외부의 가장 깊고 철저히 통제된 '금고 서버'에 따로 보관한다. 앱이 부팅될 때 이 금고 서버에 1회용 인증을 거쳐 런타임 환경 변수로 키를 몰래 주입받아 메모리 위에서만 써야 한다.
-
📢 섹션 요약 비유: 강력한 암호화 알고리즘(AES-256)은 **'100억 원짜리 티타늄 무적 금고'**입니다. 하지만 하드코딩된 암호 키는 그 티타늄 금고 비밀번호를 포스트잇에 적어서 금고 문짝에 붙여놓는 멍청한 짓입니다. 암호화 실패의 90%는 금고가 뚫리는 게 아니라 포스트잇(키 관리 실패)이 털려서 발생합니다.
Ⅲ. 융합 비교 및 다각도 분석
1. 인코딩(Encoding) vs 암호화(Encryption) vs 해시(Hashing)
주니어 개발자들이 면접에서 가장 많이 박살 나는 개념 분리표. (이 세 개를 헷갈리는 순간 회사가 털린다)
| 척도 | 인코딩 (Encoding / Base64) | 암호화 (Encryption / AES, RSA) | 해시 (Hashing / Bcrypt, SHA-256) |
|---|---|---|---|
| 목적 | 보안(숨김) 목적이 아님. 시스템이 데이터(이미지 등)를 안 깨지고 잘 전송/호환하게 포맷만 바꾸는 것. | 훔쳐보지 못하게 숨기는 것 (기밀성). 나중에 다시 풀어봐야(복호화) 함. | 원본을 확인만 하고 싶을 뿐, 원본을 절대 다시 살려낼(복호화) 필요가 없을 때 (무결성, 비밀번호). |
| 복원 가능 여부 | 누구나 1초 만에 원본 복원 가능. (알고리즘 공개됨) | **'비밀 키(Key)'**를 가진 자만이 원본 복호화 가능. | 절대 복원 불가 (단방향). 1글자만 달라도 결괏값이 완전히 달라짐(눈사태 효과). |
| 비유 | "안녕" ➡ 영어로 "Hello" 번역 | "안녕" ➡ 나랑 내 친구만 아는 "삐리빠라뽀" 외계어 | 고기를 갈아서 햄버거 패티로 만듦 (패티를 다시 소고기 모양으로 못 되돌림) |
과목 융합 관점
-
네트워크 (TLS 1.3의 PFS): Data in Transit 암호화 실패를 막기 위해, 최신 통신 규약인 TLS 1.3은 **PFS(Perfect Forward Secrecy, 완전 순방향 기밀성)**를 기본으로 강제한다. 과거엔 서버의 마스터 개인키(Private Key)가 털리면 과거 1년 치 가로챈 패킷 암호문이 모조리 다 풀렸다(재앙). 하지만 PFS는 한 번 통신할 때마다 1회용 세션 키(일회용 비밀번호)를 만들고 버려버리므로, 나중에 마스터 키가 털려도 과거의 통신 기록은 영원히 해독 불가능한 상태로 보호되는 극한의 융합 방어 아키텍처다.
-
클라우드 데브옵스 (Secret Management): 쿠버네티스(K8s) 시대에 YAML 파일 안에 평문으로 DB 비밀번호를 적어놓는(Security Misconfiguration) 실수가 빈발했다. 데브옵스 아키텍트는 소스코드를 젠킨스가 빌드할 때, 평문 비밀번호를 발견하면 즉시 빌드를 박살 내버리는 스캐너(trufflehog 등)를 달고,
K8s Secret이나 외부 Vault를 사용하도록 파이프라인의 생태계를 암호화 친화적으로 강제 개조해야 한다. -
📢 섹션 요약 비유: Base64 인코딩은 한글을 '모스 부호'로 바꾸는 것입니다. 누구나 모스 부호 표만 있으면 1초 만에 해독합니다. 보안율 0%입니다. 암호화는 일기장 글씨를 '투명 잉크'로 쓰는 것입니다. 특수 안경(Key)이 있는 사람만 읽을 수 있습니다. 해시는 일기장을 '문서 파쇄기'에 넣고 갈아버리는 것입니다. 누구도 원본을 복원할 수 없습니다.
Ⅳ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — 구형 해시 알고리즘(SHA-1)과 GPU 병렬 연산의 희생양: 중견기업이 10년 전 짠 사내망을 그대로 쓰고 있었다. 비밀번호는
SHA-1알고리즘으로 단방향 해시되어 DB에 예쁘게 저장되어 있었다. "해시했으니 안전하다!"고 믿었다. 어느 날 해커가 DB를 털어갔다. 놀랍게도 단 하루 만에 전 직원 5만 명의 평문 비밀번호가 다크웹에 공개되었다.- 아키텍트의 해결책: 알고리즘의 노후화(Outdated Cryptography)에 따른 방어력 붕괴다. 10년 전 SHA-1은 훌륭했다. 하지만 지금 해커들은 비트코인 캐던 수천 대의 GPU 팜(병렬 연산)을 돌려 1초에 1,000억 개의 단어를 SHA-1으로 변환해 보고 정답을 맞춰본다(Brute-force). SHA-1은 연산 속도가 너무 빠르다는 게 오히려 독이 된 것이다. 아키텍트는 비밀번호 해싱 알고리즘을 즉시 Bcrypt나 Argon2로 교체해야 한다. 이 알고리즘들은 일부러 CPU나 메모리를 더럽게 많이 먹도록 수학적으로 꼬아놔서(Work Factor 설정), 해커가 1초에 10번밖에 연산을 못 하게 만들어 무차별 대입 공격을 물리적으로 파산시켜 버린다.
-
시나리오 — 난수(Random) 생성기의 규칙성 발견에 의한 세션 하이재킹: 자바 주니어 개발자가 로그인 세션 키나 비밀번호 초기화 임시 코드를 만들 때
Math.random()을 썼다. 테스트해보니 숫자가 엄청 무작위로 잘 나와서 배포했다. 해커가 이 사이트에서 임시 코드를 10번쯤 발급받아 보더니, 그 뒤로 다른 유저의 비밀번호 초기화 코드를 100% 확률로 예측해서 남의 계정을 다 뺏어버렸다.- 아키텍트의 해결책: 의사 난수(Pseudo Random)의 치명적 패턴 노출이다. 프로그래밍 언어의 일반적인
Random()함수는 진짜 무작위가 아니라, 현재 시간을 수학 공식(시드)에 넣고 돌리는 '가짜 무작위'다. 해커가 공식만 유추하면 다음 숫자를 1초 만에 계산해 낸다(암호화 실패). 보안 관련 키, 세션 ID, 토큰을 만들 때는 무조건 성능이 느리더라도 OS의 진짜 미세한 노이즈(마우스 움직임, 팬 속도 등)를 끌어와 절대 예측할 수 없는 난수를 만드는 **CSPRNG (예: Java의SecureRandom클래스)**를 강제로 써야만 예측 해킹을 막을 수 있다.
- 아키텍트의 해결책: 의사 난수(Pseudo Random)의 치명적 패턴 노출이다. 프로그래밍 언어의 일반적인
도입 체크리스트
- 비즈니스적: "암호화로 인한 DB 검색(Query) 성능 저하를 비즈니스가 감내할 수 있는가?" 고객의 주민번호를 AES-256으로 암호화해서 DB에 넣었다(방어 성공). 그런데 다음 날, 콜센터 직원이 "김철수 고객님 주민번호로 검색 좀 할게요!" 라며
SELECT * WHERE jumin='123456'을 쳤는데 1분이 지나도 안 나온다. DB에 있는 1,000만 건의 암호화된 데이터를 일일이 풀어서(복호화) '123456'인지 비교하느라 인덱스(Index)가 박살 난 것이다. 아키텍트는 "완전 일치 검색"이 필요한 암호화 칼럼에는 일방향 해시값을 보조 칼럼(Index용)으로 두는 블라인드 인덱스(Blind Index) 기법을 설계하여, 성능과 보안의 두 마리 토끼를 잡아야 한다. - 조직적: 인증서 만료(Certificate Expiration) 캘린더가 젠킨스에 연동되어 있는가? 수백억 매출을 내는 쇼핑몰이 HTTPS 인증서(SSL) 갱신 날짜를 개발자가 까먹고 퇴사해서, 일요일 아침에 갑자기 브라우저에 "안전하지 않은 사이트입니다"라는 시뻘건 경고창이 뜨며 접속이 다 막히는 코미디 같은 대참사가 1년에 수십 번 일어난다. 암호화 툴을 세팅하는 것도 중요하지만, 이 수동적인 '인증서 라이프사이클'을 AWS ACM이나 Let's Encrypt로 자동 갱신(Auto-renewal)되게 파이프라인에 못 박는 것이 진정한 융합 아키텍처다.
안티패턴
-
"내가 만든 독자적 암호화 알고리즘 (Roll Your Own Crypto)": 수학을 좀 한다는 개발자가 "MD5나 AES는 해커들이 잘 알테니까, 내가 비트 연산을 미친 듯이 섞어서 세상에 없는 나만의 암호화 로직을 짤게! 이러면 절대 못 뚫어!"라고 객기를 부리는 안티패턴. 인류 해킹 역사상 가장 멍청한 자만이다. 암호학은 수십만 명의 천재 수학자와 해커들이 수십 년간 두드려 패고 살아남은 표준 알고리즘(AES, RSA)만이 안전하다. 개인이 방구석에서 짠 알고리즘은 해커의 패턴 분석 툴에 10분 만에 완전히 박살 난다.
-
📢 섹션 요약 비유: 독자적 암호화 알고리즘을 짜는 것은, **'동네 철물점 아저씨가 직접 용접해서 만든 금고'**와 같습니다. 자물쇠를 복잡하게 꼬아놔서 동네 도둑은 못 열지 몰라도, 프로 금고털이범 앞에서는 용접 부위의 틈새(수학적 논리 결함)가 적나라하게 보여 1초 만에 망치로 부서집니다. 금고는 무조건 스위스 은행에서 쓰는 **전 세계가 검증한 글로벌 표준 금고(AES-256)**를 사 와서 써야만 절대 안 뚫립니다.
Ⅴ. 기대효과 및 결론
정량/정성 기대효과
| 구분 | 평문 저장 및 Base64 등 눈속임 인코딩 (AS-IS) | Bcrypt, TLS 1.3, KMS 키 분리 등 완벽한 암호화 적용 (TO-BE) | 개선 효과 |
|---|---|---|---|
| 정량 | DB 털릴 시 100만 명 고객 정보 100% 다크웹에 유출 | 100만 명 정보 털려도 복호화 불가로 실질적 피해 0건 | 치명적 2차 피해 방어 및 기업 파산 리스크 원천 헷지 |
| 정량 | 통신 구간 스니핑으로 매일 10건의 세션 쿠키 탈취 발생 | 전 구간 HTTPS(TLS) 강제로 패킷 훔쳐도 쓰레기값만 보임 | 중간자 공격(MITM) 및 네트워크 단 도청(Sniffing) 100% 차단 |
| 정성 | 소스코드 안에 박힌 비밀번호 때문에 깃허브 공개 불가 | 키를 100% 외부 Vault로 빼내어 코드와 완벽 분리 | 언제든 코드를 오픈소스로 까도 되는 떳떳한 클린 아키텍처 완성 |
미래 전망
- 양자 컴퓨터(Quantum Computing)의 습격과 양자 내성 암호(PQC): 지금 우리가 절대 안 뚫린다고 맹신하는 RSA 공개키 암호화(소인수분해의 어려움에 기반)는, 조만간 튀어나올 구글과 IBM의 양자 컴퓨터 앞에서는 1초 만에 풀려버리는 종이 쪼가리로 전락할 위기에 처해있다. 전 세계 암호학계는 이에 대비하여 양자 컴퓨터로도 수학적으로 풀 수 없는 격자(Lattice) 기반 암호 등 **양자 내성 암호(PQC, Post-Quantum Cryptography)**로 글로벌 인터넷 통신 표준(TLS)을 통째로 들어 엎을 거대한 대이동(Migration)을 준비 중이다.
- 동형 암호 (Homomorphic Encryption)의 상용화: 현재 클라우드에서 암호화된 데이터를 검색이나 통계 분석하려면, 클라우드 안에서 암호를 한 번 평문으로 풀어야(복호화) 해서 그 찰나의 순간에 해커에게 털릴 위험이 있다. 미래에는 '암호화된 텍스트 그 자체'를 풀지 않고도 연산하고 덧셈 뺄셈할 수 있는 궁극의 흑마법인 동형 암호가 상용화되어, 고객의 데이터가 클라우드에서 영원히 평문으로 돌아가지 않는 완전무결한 암호화 처리 생태계가 안착할 것이다.
참고 표준
- FIPS 140-2 / 140-3: 미국 정부가 "암호화 모듈(H/W, S/W) 만들 거면 무조건 이 까다로운 보안 요구사항을 지켜라!"라고 못 박은 글로벌 암호화 절대 규격.
- OWASP Cryptographic Storage Cheat Sheet: 개발자가 암호화 로직을 짤 때 "비밀번호는 Bcrypt 쓰고, 신용카드는 AES-GCM 모드 써라"라고 숟가락으로 입에 떠먹여 주는 OWASP 재단의 완벽한 코딩 정답지.
암호화 실패(Cryptographic Failures)는 단순히 알고리즘 하나 잘못 쓴 실수가 아니다. 그것은 아키텍트가 최악의 상황(시스템 붕괴)을 상상하지 않고, 성벽(방화벽)만 믿고 성안의 금고 문을 활짝 열어둔 **'최후의 방어선에 대한 오만이자 태만'**이다. 소프트웨어 공학에서 가장 슬프고도 확실한 진리는 "언젠가 방화벽은 뚫리고, 데이터베이스는 탈취당한다"는 것이다. 기술사는 성벽이 함락되어 잿더미가 된 최악의 폐허 속에서도, 해커가 훔쳐 간 하드디스크가 절대 풀리지 않는 단단한 '수학적 암호의 철 덩어리'로 남아, 적을 비웃고 고객을 완벽하게 수호하는 최후의 독야청청한 기밀성의 요새를 설계해야만 한다.
- 📢 섹션 요약 비유: 암호화는 전쟁터의 **'문서 파쇄기와 자폭 장치'**입니다. 적군이 쳐들어와 부대가 함락되는 것(해킹)을 막을 수 없다면, 사령관(아키텍트)은 적이 문을 열고 들어오기 1초 전, 모든 작전 지도와 기밀문서(DB 데이터)를 분쇄기에 갈아버리고 불태워(암호화) 적이 가져가도 아무 쓸모없는 쓰레기로 만들어버려야 합니다. 건물을 내어줄지언정 '정보'는 내어주지 않는 혹독한 결단력이 암호화의 본질입니다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| OWASP Top 10 | 2021년 기준 2위(A02)를 차지한 최상위권 위협. 방화벽이 털리는 것보다, 털렸을 때 평문으로 털려서 생기는 사회적 재앙(소송, 파산)의 크기가 너무 압도적이라 최상위 랭크를 유지 중이다. (이전 장 477번) |
| 솔트 (Salt) | 해커가 1초 만에 비밀번호를 역추적하는 '레인보우 테이블' 마법을 분쇄하기 위해, 비밀번호 뒤에 무작위의 짜디짠 소금 텍스트(쓰레기값)를 팍팍 쳐서 암호화를 비틀어버리는 필수 조미료. |
| KMS (Key Management System) | 아무리 단단한 자물쇠(AES)를 채워도, 개발자가 소스코드에 열쇠(Key)를 적어놓으면 털린다. 이 열쇠만 전문적으로 숨겨두고 경비병을 세워두는 AWS/Vault의 금고 관리 시스템. |
| 양자 내성 암호 (PQC) | 앞으로 몇 년 뒤 양자 컴퓨터가 세상의 모든 RSA(공개키) 암호를 빛의 속도로 풀어버릴 대재앙에 대비해, 양자 컴퓨터도 못 푸는 더 더러운 수학 문제를 내는 차세대 인류의 방패. |
| 중간자 공격 (MITM, Man-In-The-Middle) | 암호화 실패(HTTP 통신)가 터졌을 때 해커가 가장 즐겨 쓰는 낚아채기 전술. 사용자 폰과 은행 서버 사이 허공에 앉아서 양쪽의 평문 데이터를 팝콘 먹으며 실시간으로 훔쳐 읽는 행위. |
👶 어린이를 위한 3줄 비유 설명
- 내가 비밀 일기장에 "형아 바보!"라고 적고 책상 위에 그냥 올려두면(평문 저장), 형아가 언제든 쓱 보고 나를 꿀밤 때리겠죠?(해킹당함)
- 그래서 나는 글씨를 **나랑 내 단짝 친구만 아는 '외계어 기호(암호화)'**로 싹 바꿔서 적어놨어요.
- 이렇게 나쁜 사람이 내 일기장(데이터)을 통째로 훔쳐 가더라도, 외계어 해독법(비밀 키)을 모르면 글씨가 무슨 뜻인지 절대 읽을 수 없게 꽁꽁 숨겨버리는 방어 마법을 **'암호화'**라고 한답니다!