기술적으로이 의도적 인 지연 은 "선형 공격" 과 같은 공격을 방지하는 것입니다 (다른 공격과 이유도 있음) .
공격을 설명하기 위해 입력 된 일련 번호를 검사하여 올바른 일련 번호와 일치하는지 확인하는 프로그램 (이 경우 " xyba ")을 고려하십시오 . 효율성을 위해 프로그래머는 한 번에 하나의 문자를 확인하고 잘못된 문자가 발견 되 자마자 길이를 확인하기 전에 종료하기로 결정했습니다.
올바른 일련 번호는 잘못된 일련 길이보다 처리하는 데 시간이 더 걸립니다. 더 좋은 것은 (공격자에게는) 첫 번째 문자가 올바른 일련 번호가 첫 번째 문자가 잘못된 것보다 오래 걸립니다. 대기 시간의 연속 단계는 매번 하나 이상의 루프가 있기 때문에 정확한 입력을 비교하는 것입니다.
- 따라서 공격자는 4 자 문자열을 선택할 수 있으며 x로 시작하는 문자열 이 가장 오래 걸립니다. (일을 추측하여)
- 그런 다음 공격자는 문자를 x 로 고정 하고 두 번째 문자를 변경할 수 있으며,이 경우 y 가 가장 오래 걸립니다.
- 그런 다음 공격자는 처음 두 문자를 xy 로 수정하고 세 번째 문자를 변경하면 b 가 가장 오래 걸리는 것을 알 수 있습니다.
- 그런 다음 공격자는 처음 세 문자를 xyb 로 수정하고 네 번째 문자를 변경하면 a 가 가장 오래 걸리는 것을 알 수 있습니다.
따라서 공격자는 한 번에 한 문자 씩 일련 번호를 복구 할 수 있습니다.
선형화.
Linearization.docx, 샘플 출력
일련 번호는 4 자이며 각 문자는 128 개의 가능한 값을 갖습니다. 그런 다음 128 4 = 2 28 = 268,435,456 가능한 일련 번호가 있습니다. 공격자가 완전한 일련 번호를 무작위로 추측해야한다면, 약 2 27 = 134,217,728 번의 시도 에서 일련 번호를 추측 할 수
있습니다 . 반면, 위의 선형화 공격을 사용하면 각 문자에 대해 평균 128/2 = 64 추측 만 필요합니다. 총 예상 작업은 약 4 * 64 = 2 8 = 256 추측
입니다. 일의.
기록 된 무술의 상당 부분 이 이것에 맞게 조정되었습니다 (Mark Stamp의 "정보 보안 : 원칙 및 실습"에서 발췌). 또한 위의 계산은 올바른 일련 길이를 계산하는 데 필요한 추측의 양을 고려하지 않습니다.