# 암호 공학 (Cipher Engineering)

암호 공학(Cipher Engineering)은 암호 알고리즘과 그 구현을 설계하고 평가하며 실제 시스템에 안전하게 적용하는 공학 분야입니다. 다른 공학과 가장 크게 다른 점은 암호가 제 역할을 하고 있는지, 즉 비밀을 지키고 있는지를 사용하면서 직접 확인할 수 없다는 것입니다.

## 자세히 알아보기

일반 프로그램은 실행 결과를 보고 원하는 대로 동작하는지 확인할 수 있고, 오래 써 보면 신뢰가 쌓입니다. 암호는 그렇지 않습니다. 누군가 암호를 깨더라도 그 사실을 알리지 않고 몰래 이용할 수 있기 때문입니다. 아무 문제 없이 오래 쓰였다는 사실이 안전하다는 증거가 되지 못하고, 품질 관리 관점에서 보면 결과를 측정할 수 없는 '통제 불가능한' 설계 문제입니다.

그래서 암호 공학은 다음 원칙으로 신뢰를 보완합니다. 첫째, 키만 비밀이고 알고리즘은 공개되어도 안전해야 한다는 케르크호프스의 원리를 따릅니다. 둘째, 공개 공모와 장기간의 공개 암호 분석을 거친 알고리즘만 표준으로 채택합니다. AES와 SHA-3는 이렇게 여러 해에 걸친 공개 공모를 통해 선정되었습니다. 셋째, 알려진 공격(선형·차분 분석 등)에 대한 안전 여유를 두고 보수적으로 설계합니다. 넷째, 알고리즘이 안전해도 구현에서 무너질 수 있으므로 부채널 공격, 난수 생성, 키 관리까지 함께 다룹니다.

실무 관점에서 가장 중요한 교훈은 "직접 만든 암호를 쓰지 말라"는 것입니다. 검증된 라이브러리와 표준(AES-GCM, ChaCha20-Poly1305, Ed25519 등)을 쓰고, MD5·SHA-1·DES처럼 안전하지 않은 것으로 판명된 알고리즘은 교체해야 합니다.

보안 감사와 버그 바운티도 암호 공학의 연장선에 있습니다. 지갑이나 스마트 컨트랙트가 표준 알고리즘을 쓰더라도 키 생성, 서명 처리, 난수 사용에서 실수가 생길 수 있으므로, 외부 전문가의 코드 감사와 공개적인 취약점 보상 제도로 '보이지 않는 실패'를 찾아내려는 것입니다. 감사를 받았다는 사실이 안전을 보장하지는 않으며, 감사 범위와 이후 변경 사항까지 확인해야 합니다.

## 블록체인·암호화폐에서는

블록체인은 해시 함수와 전자서명의 안전성 위에 서 있습니다. 비트코인은 SHA-256과 secp256k1 타원곡선 서명을, 이더리움은 Keccak-256을 사용합니다. 실제 사고는 알고리즘보다 구현에서 많이 일어났습니다. 서명 시 난수를 재사용해 개인 키가 노출되거나, 취약한 난수로 만든 지갑 키가 복원된 사례가 대표적입니다.

## 쉽게 말하면

자물쇠가 정말 튼튼한지는 써 보면서 알 수 없습니다. 그래서 전 세계 자물쇠 전문가들에게 공개하고 오랫동안 따 보게 한 뒤에야 믿고 쓰는 것과 같습니다.

---
출처: https://achivx.kr/glossary/cipher-engineering-%EC%95%94%ED%98%B8-%EA%B3%B5%ED%95%99-amho-gonghak/ · ACHIVX 용어 사전 · 수정일 2026-10-20
