암호학 고수분들 도와주세요.
  1. 드림핵에서 배운 암호학의 기본적인 내용 CRT, 확장 유클리드 알고리즘, RSA, Hash function 등등...
    외에도 추가적으로 익힐 만한 기본기는 어떤 것들이 있을까요? 워게임에서 나오는 문제들을 보면 드림핵 강의만으로는 좀 부족하다는 생각이 많이 듭니다.
  2. 암호학 워게임을 접했을 때 취하는 '관점' 같은 게 있을까요? 예를 들어 포너블 문제의 경우 문제의 소스 코드를 보며 의도되지 않은 사항 혹은 엣지 케이스 같은 걸 보려고 하는 편입니다. 암호학 고수분들께서는 암호학 문제를 볼 때 어떤 사항을 체크하시나요?
  3. 암호학 문제가 어떤 사실에 기반하는 지 추측이 된다면 바로 해당 논문이나 익스 코드를 찾아보시는 편인가요? 예를 들어 특정 워게임 문제가 어떤 알고리즘을 활용하는 문제인지 안다면 바로 검색을 활용하시나요 아니면 수학적으로 알고리즘을 직접 시도해 보시나요?
  4. 암호학 워게임을 풀 때 이 정도는 알면 좋다 싶은 논문 혹은 블로그 내용 같은게 있다면 추천해 주실 수 있나요?
  5. 암호학 실력을 늘리는 가장 좋은 방법은 어떤거라고 생각하시나요? 시간적인 효율보다는 정도를 선호하는 편입니다.
작성자 정보
암호는 저도 그렇게 잘하는 편이 아니지만은 그래도 제가 공부하면서 느꼈던 것들 위주로 써볼게요 사실 드림핵 암호학 커리큘럼은 너무 기초적인 이야기밖에 없어서, 오늘 같은 "딸깍"의 시대에 CTF문제 풀기엔 부족한 감이 있긴 하죠... 이런 건 이전에 진행한 weight높은 CTF 라업같은 거 따라가면서(혹은 참여하면서) 어떤 신박한 트릭들이 있고 문제는 어떻게 접근하는지에 집중하면서 보면 배워가는 게 꽤 많았던 것 같습니다. 암호를 진심으로 파보기로 결정했다면, 선형대수와 드림핵에 나오는 기본적인 정수론 내용 등을 익히는 게 중요한 거 같아요. 특히 어려운 문제는 LLL, BKZ 돌리는게 많아서 특히 선형대수에 대한 어느 정도 이해가 있어야 할 것 같습니다. 예전에 공부할 때보던 글인데 LLL이 뭐고, 어디에 어떻게 사용되는지에 대한 대략적인 감 잡는데 도움이 됐던 글이라 아래에 하나 첨부하도록 할게요. [LLL 알고리즘으로 정수 문제 풀기](https://blog.sp301415.com/solving-integer-problems-using-lll/) 저는 암호학 워겜을 풀 때, 특이하게 구현된 부분을 찾으려고 합니다. 일반적으로 RSA, AES같은 걸 사용할 때는 그렇지 않지만, 암호학 워겜에선 특이하게 어떤 과정을 더한다던지, 연산을 다르게 대체한다던지 하는 흐름이 많더군요. 문제에 대한 파악이 끝나면 저는 우선 어떤 알고리즘들을 체이닝해서 성공적으로 flag를 얻어내거나 복구할 수 있을지를 대략적으로 스케치합니다. 그리고 이런 시도들을 gpt에게 계속 던지면서 평가받고, 개념 검증하는 흐름을 flag얻을 때까지 반복하는 거 같습니다. (이 부분은 저도 암호 짬이 응애라... 그냥 현재까지 암호 문제 접하면서 느낀 감상입니다!)