1. 파일 분석
처음이 주제는 항목을 볼 수 있지만이 문제 RSA 암호 해독 것을 알고있다.
p와 q는 두 개의 큰 소수는 공개 키 N = P는 * q를,
전자는 공개 키로서, 무작위로 선택된 번호
D는 조건식을 만족하는 예와 관련된 번호 : ED = 1 (MOD 피 (N))
피 (N)은 오일러 함수 (φ) (N) = (p - 1) (Q-1) 인
전송 : https://blog.csdn.net/kevin66654/article/details/54087647
pub.key 우리가 암호화 RSA 암호를 해독하는 스크립트 파일을 사용하여 다음 N, E, P, Q, D 공개 키 파일 등을 분석 너무 오래로, 공개 키 인 RSA 암호화 된 파일을 flag.enc.
2. 공공 처리
2.1 공개 키를 추출
16 진수 문자열로 변환 IDA 개방 pub.key는 공개 키를 추출 하였다.
----- PUBLIC KEY를 BEGIN ----- MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9 + 7 + / = AvKr1rzQczdAgMBAAE ----- ----- END PUBLIC KEY
2.2 분석 공개 키 (추출물 즉, N)
에서 http://tool.chacuo.net/cryptrsakeyparse 공개 키가 해결
공개 지수 및 모듈 정보 :
키 길이 : | 256 |
모방 수 : | C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD |
인덱스 : | 65537 (0x10001) |
에 도착
E = 65537
N = 86934482296048119190666062003494800588905656017203025617216654058378322103517 (ADC 진수)
2.3 분석 공개 키 (추출 P, Q)
yahu 또는 사용 http://www.factordb.com/index.php?query=86934482296048119190666062003494800588905656017203025617216654058378322103517을 , Q n 개의 페이지를 분석하여
p = 285960468890451637935629440372639283459
Q = 304008741604601924494328155975272418463
3. 암호 해독 스크립트
수입 gmpy2의 수입 RSA는 E = 65537 N = 86934482296048119190666062003494800588905656017203025617216654058378322103517 P = 285960468890451637935629440372639283459 Q = 304008741604601924494328155975272418463 망막 기억 = (Q-1) * (p-1 ) D = gmpy2.invert (즉, 망막 기억) 키 = rsa.PrivateKey (N, E, INT (d) P, Q) 오픈 (와 " C : \\ 사용자 \\ 10245 \\ 화상 출력 \\ \\ flag.enc " , " RB + " )로서 F : F = f.read () 프린트(rsa.decrypt (F 키))
4.get 플래그!
플래그 {decrypt_256}
CTF의 RSA에 대한 자세한 내용을 원하십니까, 당신은 한 번 봐 걸릴 수 있습니다 https://err0rzz.github.io/2017/11/14/CTF%E4%B8%ADRSA%E5%A5%97%E8%B7%AF/을