Prologue

그리스 내 교통시스템 프로젝트를 진행하면서 AMKA, Passport 등 민감한 개인정보를 입력받아 전송해야 하는 기능이 필요

초기에는 RSA와 ECC 중 고민했으나, 보다 가벼운 ECC를 사용하기로 결정함.

보안 요구사항 (하이브리드 암호화)

  1. 서버에서 비대칭 키쌍(공개키/개인키) 생성
  2. 공개키를 API로 클라이언트에 전달
  3. 클라이언트는 대칭키(AES 등)를 생성해 폼 데이터 암호화
  4. 대칭키를 공개키로 암호화
  5. 암호화된 데이터 + 암호화된 대칭키를 서버로 전송
  6. 서버는 개인키로 대칭키 복호화, 이후 데이터 복호화 및 처리

👉 ECC 기반 암호화 방식 중 ECIES(Integrated Encryption Scheme) 를 이용하기로 결정.

처음에는 ECIES 자체가 하이브리드 암호화 방식인지 몰랐음… 의사소통을 원활히 하기 위해 기본적인 정의를 우선 학습함.

ECC 기반 암호화 유형