본문 바로가기

리눅스/linux

Linux 11

문제

The password for the next level is stored in the file data.txt, 
where all lowercase (a-z) and uppercase (A-Z) letters have been rotated by 13 positions
//패스워드는 data.txt 에 있고, 소문자 a-z와 대문자 A-Z는 모든 대문자 및 소문자는 위치상으로 13번 이동

flag가 담겨있는 data.txt파일이 있는 걸 볼 수 있었다.

문제에서 13번 이동되어있다는 것은 카이사르 암호로 추정해볼 수 있었는데


↓ ↓ ↓  내가 전에 카이사르 암호화 알고리즘에 대해 다뤘었다   ↓ ↓ ↓

 

 

 

[카이사르 암호화 알고리즘]

카이사르 암호, 시저 암호 (Caesar cipher)카이사르 암호는 간단한 치환 암호중 하나 <span style="background-color: #ffffff; color: #2021..

shsecurity1.tistory.com

 

 

[카이사르 복호화 알고리즘]

이전 글에서 암호화 알고리즘에 대해서 알아보았으니 이번엔 카이사르 복호화 알고리즘에 대해서 알아보겠습니다.순서만 반대로 진행하면 되기 때문에 암호화 알고리즘을 이해하셨으면 복호

shsecurity1.tistory.com

 


13칸이 이동되면

A가 N으로, B가 O로 치환되며 소문자도 똑같이 생각하면 된다.

 

data.txt파일은 ASCII문자로 구성된 텍스트 파일이고 그 파일을 열어서 확인해봤을 때 

띄어쓰기가 있는것으로 보아 문자열인 것 같았다.

문제랑 별개로 여기서 pw를 알려줄때는 항상  The password is  로 시작해서 Gur cnffjbeq vf는 The password is 인게 보인다 

카이사르 암호 기준으로 암호문(Gur~~9D4), 키(13)가 나온 상황인 것

 

tr명령어를 사용하니 pw가 나왔다.

명령어의 각 부분을 보면

 

  • cat data.txt: data.txt 파일의 내용을 출력
  • |: 파이프 기호로, cat 명령어의 출력을 tr 명령어의 입력으로 전달
  • tr '[A-Za-z]' '[N-ZA-Mn-za-m]': tr 명령어는 문자 치환을 위해 사용하는데 여기서는 대문자와 소문자를 각각 13칸 이동시켜 암호화/복호화를 수행

 

즉,  [A-Za-z]는 모든 알파벳 문자를 나타내고, [N-ZA-Mn-za-m]는 각각 13칸 이동한 알파벳 문자를 나타낸다

 

'리눅스 > linux' 카테고리의 다른 글

Linux 10  (0) 2024.08.07
Linux 9  (2) 2024.03.24
Linux 8  (4) 2024.03.23
Linux 7  (0) 2024.03.20
Linux 6  (1) 2024.03.20