Posted On 2026년 02월 18일

Branchless Sorting Networks – 비밀을 누출하지 않는 정렬

nobaksan 0 comments
여행하는 개발자 >> 기술 >> Branchless Sorting Networks – 비밀을 누출하지 않는 정렬
a computer screen with a bunch of code on it

보안이 중요한 환경에서 정렬 알고리즘의 실행 시간이 데이터에 따라 달라지면 사이드 채널 공격에 취약해집니다. Branchless sorting이 해답입니다.

문제: 타이밍 사이드 채널

일반적인 정렬 알고리즘은 데이터 값에 따라 조건 분기(branch)가 발생합니다. 공격자는 실행 시간 차이를 측정하여 정렬되는 데이터의 패턴을 추론할 수 있습니다.

해결책: Sorting Networks

Sorting network는 고정된 비교-교환 패턴을 따릅니다. 입력 데이터와 상관없이 항상 같은 연산을 수행하므로 타이밍이 일정합니다.

Branchless 구현

// 조건 분기 없는 min/max
int min = y ^ ((x ^ y) & -(x < y));
int max = x ^ ((x ^ y) & -(x < y));

비트 연산으로 조건문 없이 최솟값/최댓값을 계산합니다. CPU의 분기 예측 실패도 방지됩니다.

사용 사례

  • 암호화 키 비교
  • 인증 토큰 검증
  • 금융 데이터 처리
  • SGX/TrustZone 같은 보안 영역

트레이드오프

일반 정렬보다 성능이 떨어질 수 있습니다. 하지만 보안이 최우선인 상황에서는 필수적인 선택입니다.



이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Post

진실이라는 이름의 허상: 헝가리의 ‘탈현실’ 정치와 기술의 역설

어린 시절, 동네 공터에서 친구들과 '진실 게임'을 하던 기억이 난다. 누군가가 눈을 감고 질문을 하면,…

감시의 시대, 우리는 무엇을 포기하고 있는가

2001년 9월 11일 이후 미국은 안보라는 이름으로 자유를 조금씩 저당 잡혔다. 당시만 해도 감시 기술은…

전자라는 가벼운 존재를 무게로 잴 때의 철학

물리학에서 가장 기본적인 입자인 전자가, 실제로는 그 질량이 얼마나 되는지를 정밀하게 측정하는 과제는 우리에게 놀라운…