이 늅늅이가 팀에서 NACTF를 나가게 되었다. 다른 분야는 이미 대부분 풀려있었기에 암호학만 잡고 풀어보았다.

라고 해도 별로 많이 못 풀어서 아쉽다.

Vyom's Soggy Croutons (50)

 

보아하니 카이사르다.

key값을 17로 해보니 flag를 얻을 수 있었다.

FLAG : nactf{et_tu_brute}

 

Loony Tunes (50)

 

pig.jpg가 있는 것을 확인할 수 있었다.

 

보아하니 freemason 암호화같다.

freemason 암호화 기법을 찾아보니 이러하였다.

FLAG : nactf{th_th_th_thats_all_folks}

 

Dr. J's Group Test Randomizer: Board Problem #0 (100)

 

문제를 읽어보니 middle-square method가 사용되었다고 한다.

middle-square method는 seed값을 이용하여 첫 seed를 제곱한 값에서 첫 seed와 똑같은 길이의 수를 가운데서 뽑아내고, 그 값을 다음 seed 값으로 사용한다.

따라서 첫 값을 구하면 다음 값을 유추해 낼 수 있을 것이다.

 

우선 random으로 만들어지는 값을 봤다.

 

처음 나온 값인 6263488612262025 에서 중간 8자리의 48861226를 제곱해보니, 다음 수인 2387419406223076를 얻을 수 있었다.

그렇다면 다음 숫자는 2387419406223076의 중간 8자리인 41940622의 제곱인 1759015773746884터이고, 그 다음 수는 1759015773746884의 중간 8자리 숫자인 01577374의 제곱인 2488108735876일 것이다.

 

FLAG : nactf{1_l0v3_chunky_7urn1p5}

 

Reversible Sneaky Algorithm #0 (125)

 

RSA문제다.

플래그 값을 hexdump로 변환하여 다시 10진수로 바꿔서 띄워 놓은 듯 하다.

rsa.txt를 열어보니 공개키 n값과 개인키 d값, 암호문으로 추정되는 c값이 주어졌다.

 

RSA는 복호화할 때, C**D MOD N 이라는 연산 과정으로 복호화된다.

 

결과 값을 문자로 변환시키면 flag를 얻을 수 있다.

FLAG : nactf{w3lc0me_t0_numb3r_th30ry}

+ Recent posts