ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4팀_임예은_Write_Ups(Suninatas_18)
    2021/Write-Ups 2021. 11. 16. 18:45

    써니나타스 18번 문제를 풀이하겠습니다.

    우선 18번 문제에 들어가면 다음과 같은 문구와 함께 숫자로 된 문장이 뜨게 됩니다. 그리고 제목의 Cipher I이라는 단어에서 이것이 시저 암호를 의미한다는 것을 확인할 수 있습니다. 그런데 시저 암호는 알파벳으로 구성된 암호문으로 숫자와는 연관이 없습니다. 따라서 이 숫자들이 바로 시저 암호로 해석되는 것이 아닌, 이 숫자들로 알파벳 문장을 알아내어 그 문장을 시저 암호로 해독해야한다는 것을 알 수 있습니다.

    여기까지 알아낸 뒤 그렇다면 이 숫자들을 어떻게 알파벳으로 바꿀것인가를 고민한 결과 가장 대표적인 아스키 코드가 생각났습니다. 따라서 이 숫자들을 아스키 코드 번역기에 넣고 결과를 확인하자

    VG9kYXkgaXMgYSBnb29kIGRheS4gVGhlIEF1dGhLZXkgaXMgVmVyeVZlcnlUb25nVG9uZ0d1cmkh 이라는 문장이 나왔고, 이 문장을 다시 시저암호 해독기에 넣자

    sd9hvuhdxujdvpyky29hfdoebp4dsdeifbc1adeiwuhdxujdsjsvbswizkiry25ksd9rw0a1zjhe이라는 의미없는 문장이 나왔습니다. 혹시 이게 키 값인가 하는 생각도 들었지만 이렇게 의미없는 문장을 키 값으로 줄 리 없다는 생각이 들었고, 역시 키 값은 아니었습니다. 문제의 힌트가 시저 암호였으니 시저 암호로 변환하는 것은 틀리지 않았다고 가정할 때, 생각해볼 수 있는 가능성은 두 가지였습니다.

     

    1. 아스키코드가 아닌 다른 방법으로 변환한 후 다시 시저 암호 해독기로 번역해야한다.

    2. 시저 암호 해독기로 나온 암호문이 또 다른 방식으로 암호화되어있어 올바른 문장이 나오지 않은 것이다.

     

    만약 1번 가정이 옳다면 처음부터 다시 해야하기 때문에 더욱 막막해지므로 우선 2번을 채택하여 생각해보았습니다.

    하지만 여전히 마땅한 해결 방안이 떠오르지 않는 것은 마찬가지였기 때문에 구글링을 하던 중, Base64라는 것을 알게 되었습니다. Base64란 쉽게 말해 화면에 표시되는 아스키코드로만 나타내는 방식으로, 해독 방법은 우선 문자의 바이트값을 2진수로 변환한 뒤 위쪽부터 6비트씩 잘라 나온 2진수를 10진수로 나타낸다. 그리고 그 10진수에 해당하는 Base64변환표의 문자를 가져와 표기하는 것입니다.

     

    Base64로 암호화한 여러 문장들과 아까 얻은 문장이 비슷한 느낌이 들어 왠지 해결방안이 맞는것 같아 Base64 해독기를 찾아 아까 시저 암호로 해독해 나온 문장을 넣어보았습니다.

    다음과 같이 키값이 나온 것을 확인할 수 있습니다.

    그리고 키 값을 auth에 집어넣으면 다음과 같이 풀었다는 문구가 뜨게 됩니다.(한 번 푼 후 스크린샷을 찍기위해 다시 정답을 넣은 것이라 이미 풀었다는 표시가 뜨게 되었습니다.)