LLL practice 2

hakid29·2023년 7월 30일
0

이어서 CCE2023에 출제되었던 the miracle문제로 연습을 해보자.
다른 부분들은 이 글의 목적에 있어서 지엽적이므로 LLL과 관련 있는 부분만 작성하겠다.
문제 상황의 식은 다음과 같다.

2896state+output=rand+pk2^{896}state + output = rand + pk

여기서 statestaterandrand는 128bit이므로 896bit인 outputoutput과 512bit인 pp에 비해 매우 작다. 따라서 2896,output,p2^{896}, output, p에 대하여 LLL알고리즘을 사용할 수 있다.

[output10289601p00]\begin{bmatrix}output&1&0\\2^{896}&0&1\\p&0&0 \end{bmatrix}

위와 같이 행렬을 구성하고 LLL을 사용한다면, 결과를 MM이라 했을 때, M[i][2]M[i][2]의 값이 28962^{896}에 곱해진 수일 것이며, ii의 경우, M[i][1]M[i][1]이 1인 ii를 찾으면 된다. (outputoutput은 1번 곱해졌기 때문)

실제로 결과를 보자.

첫 번째 행이 찾고자 하는 행임을 알 수 있다. 잘 활용만 한다면 정말 사기적인 기술인 것 같다..

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

많은 도움이 되었습니다, 감사합니다.

답글 달기