현대오토에버가 개발하는 가상 검증 플랫폼은 차량 내 제어기, 시스템, 차량을 가상화하고 가상주행환경도 구축해 차량에 대한 통합 시뮬레이션을 할 수 있다. 가상 검증 플랫폼을 차량 소프트웨어 개발에 적용한다면, 차량이나 제어기의 실물이 제작되기 전에 미리 소프트웨어를 개발하고 검증할 수 있다. 이를 통해 차량 소프트웨어의 개발에 필요한 기간을 단축하고, 더 높은 안정성을 지닌 차량을 개발할 수 있게 된다.
현대오토에버의 기술자인 BOJ군은 새로운 차량 소프트웨어의 개발에 전념하고 있다. 이제 마지막으로 남은 것은 가상 검증 플랫폼을 통해 해당 소프트웨어가 실제로 잘 작동하는지 확인하는 것이다. 그러나 BOJ군은 가상 검증 결과 소프트웨어의 충격적인 결함을 찾아내었다. BOJ군이 개발한 소프트웨어는 숫자로만 이루어진 14자리 비밀번호를 입력해야 작동을 시작하도록 프로그래밍되어 있다. 그런데, 일부 환경에서는 비밀번호에 대한 정보가 손실되는 것이었다! 해결할 방법이 없을까 고민하던 와중 차량 내부의 시계가 BOJ군의 눈에 들어왔다.
해당 소프트웨어는 총 48개의 시계 정보를 읽어오거나 조정할 수 있다. 처음에 앞에 있는 24개의 시계는 1타입 시계이며, 뒤에 있는 24개의 시계는 2타입 시계이다. 특이하게도 각 시계는 시침만 있으며, 시침은 시계 방향 순서대로 1시부터 24시까지 표현할 수 있다. 새 비밀번호를 설정하면 소프트웨어는 각 시계의 시침을 설정한다. 각 시계는 전부 동일하게 생겼으므로, 같은 타입끼리는 물론이요 다른 타입들끼리도 서로 구분이 불가능하다.
여러 번의 가상 검증을 통해 BOJ군은 주행 중에 발생할 수 있는 현상을 두 가지로 분류했다. 차량 소프트웨어는 다양한 환경에서도 정상적으로 작동해야 하므로 차량 주행 도중에 두 현상이 여러 번 발생할 수도 있다.
소프트웨어는 어떤 변형들이 어떤 방식으로 가해졌는지 알지 못한다. 만약 비밀번호를 알아야 하는 상황이 오면, 소프트웨어는 시계들의 시침을 읽고 비밀번호를 복원해야 한다.
시계에 정보를 저장한다는 아이디어는 좋았지만, BOJ군은 어떻게 해야 다양한 환경에서 시시각각 변하는 시계들의 상태를 보고 비밀번호를 알아낼 수 있을지 감을 잡지 못하고 있다. BOJ군을 위해 비밀번호를 저장하고 알아내는 프로그램을 작성해 주자.