제 접근 방법에 문제가 있을까요?

sign함수를 보았을 때
s = inverse(self.k, self.q) * (h + self.x * r) % self.q
인 것을 확인하고 다음과 같이 접근하였습니다.

S1 = inverse(self.k, self.q) * (h(m1) + self.x * r) % self.q
S2 = inverse(self.k, self.q) * (h(m2) + self.x * r) % self.q
S1 - S2 = inverse(self.k, self.q) * (h(m1) - h(m2)) % self.q
S1 - S2과 h(m1) - h(m2)은 알고 있는 정보이므로 inverse(self.k, self.q), self.k를 구하고, 값들을 대입해 self.x도 구해서 token의 sign을 구하려고 했습니다.
그런데 그렇게 구한 k와 x를 이용해 sign을 해봤을 때, m1과 m2를 제외한 다른 모든 메세지는 실제 출력된 값과 제가 구한 sign이 다른 값이 나왔습니다..
혹시 제가 뭔가 간과하고 있는 것이 있을까요?

#crypto
작성자 정보
답변 1
5unkn0wn
강의 수강: 50

self.k를 구하는 과정에는 문제가 없어보입니다. m1과 m2를 제외한 다른 메시지는 sign이 올바르지 않다는 점이 의아하긴 하지만, 아무래도 self.x를 구하는 과정에서 오류가 있지 않을까 싶습니다.

2021.09.02. 12:51
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기