반응형

crypto 75

[UMDCTF] Fragile Foundations - 암호학 / Base64

쉬웠던 암호학 문제 제목이 Fragile Foundations 인데 Foundation 이라는 단어가 '기초' 라는 의미가 있기 때문에 아마도 말장난처럼 Base64 인코딩을 사용하지 않았을까 추측했다. 문제파일로 ciphertext 라는 바이너리 파일이 주어진다. 해당 파일을 notepad++로 열어보면 이런 내용이 들어있다. 알파벳 대소문자 + 숫자로 이루어진걸 보니 Base64로 인코딩된게 맞는거 같다. 확실한건 맨 끝을 보면 되는데 맨 끝에 == 으로 끝나면 Base64로 인코딩된 것이다. 참고로 이 파일은 txt 파일 치고 용량이 꽤 된다. CyberChef(https://gchq.github.io/CyberChef)에서 Base64를 쉽게 디코딩 할 수 있다. ciphertext 파일을 Inp..

CTF/암호학 2022.05.08

[UMDCTF] Low Effort Required - 암호학 / RSA

RSA와 관련된 암호학 문제였다. 사우스 보스턴에 있는 어느 레스토랑에서 public key와 ciphertext를 발견했는데 해독할 수 있냐고 물어본다. 문제파일로 ciphertext, public_key 그리고 encrypt.py 파일이 주어진다. 40030182544273856015788999062464973403472186630147528555052489762516210821795493031619376345647069575950526306492922573846162431037037824967074058132327917359025595463728944947118480605422897682821384491771926743103021286982319660969379132360886299787840185..

CTF/암호학 2022.05.01

[UMDCTF] Baby's First Crypto - 암호학 / Ascii

암호학 문제 문제 제목이 Baby's First 인것과 달리 생각을 조금 해야하는 문제였다. 물론 푸는 스킬 자체는 그렇게 어렵지 않다. 문제파일로 ciphertext 라는 이름의 바이너리 파일이 주어진다. 해당 파일을 HxD를 이용해서 열어보면 이런 내용이 들어있다. 일단 사람이 알아볼 수 없는 글자들이다. 어떻게 디코딩을 해야하나 고민하면서 XOR도 해보고 이것저것 해보다가 CyberChef에 들어가서 주어진 암호문의 각 문자들에서 16진수 D(10진수 13)를 빼봤더니 (https://gchq.github.io/CyberChef) 맨 앞에 플래그 포맷인 UMDCTF가 보였다. 문제는 뒤쪽에 있는 이상한 문자들이었는데 밑줄친 6개의 값들이다. 08 02 03 이런 값들이 D 보다 작은 값이기 때문에 ..

CTF/암호학 2022.04.29

[DwagCTF] Left Foot Two Stomps - 암호학 / RSA

암호학 문제 대회가 끝나고 풀어서 캡쳐가 조금 부족하다. n=960242069 e=347 c=346046109,295161774,616062960,790750242,259677897,945606673,321883599,625021022,731220302,556994500,118512782,843462311, 321883599,202294479,725148418,725148418,636253020,70699533,475241234,530533280,860892522,530533280,657690757,110489031,271790171,221180981,221180981,278854535,202294479,231979042,725148418,787183046,346046109,657690757,530533..

CTF/암호학 2022.04.18

[angstromCTF] Reasonably Strong Algorithm - 암호학 / RSA

암호학 문제이다. 문제 이름이 Reasonably Strong Algorithm 인데 맨 앞글자만 따면 R S A 가 된다. RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙인 알고리즘이다. RSA는 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계된 알고리즘이다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록 하는 d를 구한다.(d는 개인키로 공개하지 않는다) 4. n=pq를 계산한 후 n과 e를 공개한다..

CTF/암호학 2022.03.17
반응형