BLOG2026-07-20
blog
[🥉 Bronze 2] 코드에 박혀 버린 소인수 — DreamHack safeprime 풀이
안전소수(safe prime)를 쓴다며 RSA 두 벌로 플래그를 절반씩 암호화한 문제. 그런데 소수 생성 함수가 p1을 매 반복마다 고정 상수로 덮어써, 사실상 한 소인수가 소스에 공개돼 있다. N을 그 소수로 나누면 나머지 소인수가 나와 두 RSA를 모두 복호할 수 있다. sympy로 확인해보면 이 상수는 진짜 안전소수 조건(p, 2p+1 모두 소수)을 만족한다 — 문제는 성질이 아니라 그 값이 절대 바뀌지 않는다는 것이다.
#dreamhack#ctf#crypto+3