SRP에서 N의 값이 조건에 맞지 않을 경우 문제점

bugiii의 이미지

안녕하세요?

Secure Remote Password Protocol을 사용하려고 합니다. 구현은 설명대로 차근차근 따라하기만 하면 문제될 것이 없었습니다.

동작은 데모 사이트에서 해보시면 어떻게 되는 것인지 아실 수 있습니다. 신기하게도 서버와 클라이언트가 주고 받는 값들만으로는 사용자의 암호나 서로간의 비밀키, 세션키를 알아내기 힘들면서 정확하게 인증을 할 수 있습니다.

그런데, 궁금한 점이 하나 있어서 질문 드립니다. SRP의 나머지 연산에 사용하는 N은 non-smooth prime이어야만 하고 보안을 위해서 safe prime이 되도록 권장한다고 합니다.

이 N의 값이 위의 조건에 맞지 않는다면, 어떤 문제가 있고 그 문제로 세션키 S나 양측의 비밀키에 해당하는 a, b가 역으로 계산될 소지가 있는 것인지 궁금합니다. 왜 그러한 조건이 있는 것인지 궁금합니다. (해당 사이트에 설명과 참조 문헌이 있기는 합니다만, 과문한 탓에 제대로 이해를 하지 못하고 있습니다.)

감사합니다.