🔐 완전동형암호 FHE
데이터를 풀지 않고 암호화된 상태 그대로 계산할 수 있는 암호 기술이에요. 결과를 열어보면 원본으로 계산한 값과 똑같이 나와요.
📦 쉽게 풀면 — 봉인된 상자의 회계사
숫자가 든 봉인된 잠금 상자를 회계사에게 맡긴다고 상상해 보세요. FHE를 쓰면 회계사는 상자를 열지 않고 상자 위에서 계산을 해서, 역시 잠긴 새 상자에 담긴 답을 돌려줄 수 있어요. 안에 든 숫자는 한 번도 보지 못하고, 결과를 열 수 있는 건 오직 나뿐이에요. 요점은 이거예요 — 컴퓨터가 데이터를 계산하는 내내 데이터는 잠겨 있고, 돌아온 잠긴 답도 올바른 값이에요.
🆚 일반 암호화와 뭐가 다른가요?
일반 암호화는 데이터를 저장하거나 전송할 때 보호하지만, 사용하려면 반드시 풀어야 해요 — 그 순간 데이터가 노출되죠. FHE는 데이터를 처리하는 동안에도 보호해요. 암호문이 특별한 구조로 설계돼 있어서, 암호화된 상태로 계산한 결과가 원본으로 계산한 결과와 정확히 같아요. 그래서 "사용 중인 데이터를 위한 암호화"라고 불러요.
| 상태 | 일반 암호화 | FHE |
|---|---|---|
| 💾 저장 중 | ✅ 보호됨 | ✅ 보호됨 |
| 📡 전송 중 | ✅ 보호됨 | ✅ 보호됨 |
| 🧮 연산 중 | ❌ 먼저 풀어야 함 | ✅ 암호화된 채로 유지 |
🔡 '완전'이 무슨 뜻인가요?
잠긴 데이터 위에서 얼마나 많은 계산을 돌릴 수 있느냐를 나타내요. 완전(Fully) 동형암호는 깊이 제한 없이 어떤 계산도 수행할 수 있어요 — 가장 높은 수준의 유연성이에요. 암호화된 숫자를 더하고 곱하는 기본 연산부터 비교, 논리 게이트 등 복잡한 연산도 만들어낼 수 있어요. 약한 형제들과 비교하면 이렇게 달라요:
- ➕ 부분동형암호 (PHE) — 한 종류의 연산만 지원
- 🔢 약간동형암호 (SHE) — 제한된 횟수의 연산만 지원
- ♾️ 완전동형암호 (FHE) — 깊이 제한 없이 임의 계산 지원
⛓️ 크립토에서 FHE를 만나는 이유
대부분의 블록체인은 철저하게 투명해요 — 잔액과 거래 내역이 모두 공개돼 있죠. FHE를 쓰면 기밀 스마트 컨트랙트가 가능해져요. 검증인도, 일반 대중도 실제 숫자를 볼 수 없게 암호화된 값 위에서 계산이 돌아가면서도 결과는 올바르게 나와요. 이를 통해 암호화된 잔액, 프라이빗 DeFi, 기밀 토큰, 밀봉 입찰 경매, 비밀 투표 같은 것들이 가능해지죠. Zama는 이더리움을 비롯한 여러 체인을 위한 FHE 기밀성 레이어를 만들고 있어요.
🛡️ FHE는 격자 기반 어려움 문제(lattice-based hardness)에 기반하기 때문에 양자 내성이 있다고도 알려져 있어요. 단, 이건 기대되는 특성이지 검증된 보장은 아니에요 — 구체적인 방식에 따라 달라질 수 있어요.
🚨 알아둘 점
- 🐢 느려요 — 암호화된 데이터를 계산하면 일반 데이터보다 수십 배 느릴 수 있어요. 도입이 아직 초기 단계인 주된 이유예요
- 🕳️ 출력이 정보를 드러낼 수 있어요 — FHE는 입력을 숨기지만, 아주 구체적인 쿼리의 결과에서 무언가가 유추될 수도 있어요. 접근 규칙은 여전히 중요해요
- 🔑 키가 전부예요 — 복호화 키를 가진 사람이 결과를 열 수 있어요. 키 관리가 실질적인 보안의 경계선이에요
- 🧪 아직 성숙해가는 중 — 동작하고 빠르게 개선되고 있지만, 거친 부분과 바뀌는 툴은 각오해야 해요
❓ 자주 묻는 질문
- FHE를 쓰면 컴퓨터가 내 실제 데이터를 볼 수 있나요?
- 아니요. 연산하는 동안 컴퓨터는 뒤죽박죽 섞인 암호문만 봐요. 잠긴 데이터를 계산하고 잠긴 결과를 돌려줄 뿐이에요. 결과를 열 수 있는 건 오직 키를 가진 나뿐이라서, 내 실제 숫자는 처리 과정에서 한 번도 노출되지 않아요.
- 완전동형암호에서 '완전'이 무슨 뜻인가요?
- 암호화된 상태에서 깊이에 상관없이 어떤 연산이든 수행할 수 있다는 뜻이에요. 부분동형암호는 한 종류의 연산만 가능하고, 약간동형암호는 연산 횟수가 제한돼요. '완전'은 그 제한을 모두 없앤 거예요.
- 서버가 FHE를 쓰면 내 데이터는 완전히 안전한가요?
- FHE는 입력을 숨기지만, 출력이 무엇을 드러내는지까지 보장하지는 않아요. 서버가 내 원본 숫자를 보지 못하더라도, 아주 구체적인 쿼리에서 나온 결과를 복호화하면 여전히 개인 정보가 유추될 수 있어요. 접근 규칙과 세심한 설계는 여전히 중요해요.
- FHE가 왜 아직 널리 쓰이지 않나요?
- 암호화된 데이터를 계산하는 건 일반 데이터보다 훨씬 느려요. 수십 배 이상 차이 나는 경우도 있어요. 이 성능 비용이 FHE 도입이 아직 초기 단계인 주된 이유예요. 다만 빠르게 개선되고 있어요.