A,B까지는 풀었는데 C문제에서 p, q를 구하는 방법을 모르겠어요. 소인수분해 알고리즘을 여럿 찾아봤는데도 전부 몇 시간을 들여도 완료가 안되더군요.. p나 q를 구해서 풀이하는 게 맞나요? 아니면 다른 풀이 방법이 있는 건가요?
다른 방법으로 접근해야 합니다.
힌트에서 Non-repudiation란 키워드를 얻을 수 있습니다. 위키백과에서는..
부인봉쇄 - 위키백과: 부인봉쇄(Non-repudiation)란 어떤 분쟁에 말린 관계자가 진술서 혹은 계약서의 유효성을 부인하거나 반박할 수 없도록 보장하는 개념이다.
부인방지(부인봉쇄, Non-repudiation)는 계약서를 작성한 당사자가 이것을 작성하지 않았다고 부인하는 것을 막는 개념입니다. 예를 들어 어떤 사람이 자신의 비트코인 계좌로부터 어디로 코인을 송금시켰다면 나중에 안 보냈다고 할 수 없도록 하는 것입니다.
RSA는 공개키(public key), 개인키(private key)가 구분되어 공개키로 암호화한 것은 비공개키로 복호화를 하게 됩니다. 수식으로 나타내면 암호화는
근데 sign_message
의 코드를 보면
def sign_message(self, m):
return pow(bytes_to_long(m), self.d, self.N)
오히려 비공개키
이게 어떻게 작동하는 거냐면 개인키로 서명한 것은 공개키를 사용해야만 유효한 문서가 됩니다. Cody가
더 궁금한 것은 댓글로, 다른 문제 질문은 추가 질문을 해주시면 성실히 답하겠습니다.