하드웨어 보안

암호 처리를 「정수 시간」으로 구현할 때 지켜야 할 것으로 올바른 것은?

  1. A처리 전체를 반드시 1초에 끝내도록 한다
  2. B처리 도중에 시계를 멈춘다
  3. C비밀 값에 따라 조건 분기의 방향, 반복 횟수, 메모리를 읽고 쓰는 주소가 달라지지 않도록 한다
정답과 해설 보기

정답: C. 비밀 값에 따라 조건 분기의 방향, 반복 횟수, 메모리를 읽고 쓰는 주소가 달라지지 않도록 한다

정수 시간이란 처리 시간이 비밀 값에 따라 변하지 않는다는 뜻입니다. 비밀 값으로 if문의 방향이 바뀌면 시간이 변하고, 비밀 값으로 배열 인덱스가 정해지면 캐시 흔적이 변합니다. 그래서 조건 분기 대신 비트 연산으로 양쪽 결과를 계산해 고르거나, 비밀 값으로 테이블을 참조하지 않는 식으로 작성합니다. 컴파일러 최적화로 분기가 생기지 않는지 확인하는 것도 필요합니다.

  • A. 정해진 초 수를 말하는 것이 아닙니다.
  • B. 시계를 멈추는 것이 아닙니다.
  • C. 올바릅니다. 시간이나 캐시 흔적을 비밀로부터 분리합니다.
이 분야 연습하기 분야로 돌아가기

하드웨어 보안의 다른 문제

  1. 캐시 사이드 채널 대책으로서 공유 캐시를 분할(파티셔닝)한다는 개념으로 올바른 것은?
  2. 기밀 처리를 수행하는 시스템에서 CPU의 동시 멀티스레딩(SMT)을 비활성화하는 경우가 있는 이유로 올바른 것은?
  3. PC에 연결한 외부 기기가 DMA를 이용해 메인 메모리의 내용을 멋대로 읽고 쓰는 공격에 대한 대책으로 올바른 것은?
  4. 하드웨어와 소프트웨어 보안에서 중시되는 「다층 방어(defense in depth)」의 개념으로 올바른 것은?
  5. 많은 기기를 제조할 때, 모든 기기에 같은 키를 넣지 않고 기기마다 다른 키를 갖게 하는 이유로 올바른 것은?