-
CakeCTF Cryptography Probs Write-Up
서론 굉장한 버스를 탔던 대회이다. 그럼에도 뉴비 키워준다는 느낌으로 가이딩을 많이 해주셔서 혼자서라면 꽤 많이 삽질했을 법한 부분도 수월하게 넘길 수 있던 것 같다. 물론 내가 참가한 부분은 crypto이므로, 이에 해당하는 5가지 문제를 업솔빙하며 풀이를 적어보려고 한다. discrete-log 문제에서 주어진 코드와 실행 결과는 다음과 같다. from Crypto.Util.number import getPrime, isPrime, getRandomRange def getSafePrime(bits): while True: p = getPrime(bits - 1) q = 2*p + 1 if isPrime(q): return q with open("flag.txt", "rb") as f: flag...
-
ANUSEC 2021 후기
2021년 8월 21일 진행된 전국 고등학생 사이버 보안 경진대회(ANUSEC 2021)에 Hyp3rFlow 팀으로 참가했습니다. 고등학생 3인 대회이므로, Hyp3rFlow에 마침 있던 고등학생 팀원 두 명(cgiosy, junseo)과 함께 참가하게 되었습니다. 실력이 많이 미약한 편이지만, Crypto 파트를 담당하여 풀기로 계획했습니다. cgiosy는 Web, junseo는 reversing이 없는 관계로 pwn을 보고 있었습니다. 대회 결과 총 37팀 중 7등을 하여 아쉽게 수상권에 들지 못했습니다. 아무래도 Crypto 파트에서의 시간 낭비와 알파벳을 의도한대로 읽지 못한 불운이 겹쳤고, pwn 파트에 익숙한 팀원이 없어 점수를 따지 못한...
-
KOI 2020 1차대회 고등부 2교시 풀이
문제 링크 KOI 제공 PDF BOJ - 박 터트리기 BOJ - 햄버거 분배 BOJ - 조명등 1번 - 박 터트리기 BOJ - 박 터트리기 단순 수학입니다. $N < \frac{K(K+1)}{2}$라면 불가능하고, 아닐 경우에는 N%K의 값을 확인하여 적당히 처리해주면 됩니다. #include<bits/stdc++.h> using namespace std; int main(void){ ios::sync_with_stdio(0);cin.tie(0); int N,K; cin>>N>>K; if(K*(K+1)/2>N){ cout<<-1; return 0; } N-=K*(K+1)/2; cout<<K+(N%K?1:0)-1; } 2번 - 햄버거 분배 BOJ - 햄버거 분배 그리디입니다. 가능한 한 왼쪽에 있는 햄버거를 먹게끔 짜면 됩니다. 전체 시간복잡도는...
-
제 4회 생각하는 프로그래밍 대회 Open Contest 후기
딱히 열심히 할 생각이 없었는데 4등한 기념으로 리뷰글 씁니다. 우선, 난이도 배분이 상당히 적절하게 되어있었습니다. 간단한 입출력 문제부터, 어느 정도 심화적인 개념이 필요한 문제까지 고루 분포해있었다고 생각합니다. 다이아 이상의 문제들도 익숙하신 분이라면 아니겠지만, 플레티넘 정도의 문제를 연습하고 계신 분들까지라면 풀어보시는 것도 좋을 듯한 문제셋입니다. A. 고무오리 디버깅 문제의 컨셉과 풀이 모두 굉장히 아기자기한 문제입니다. 문제를 풀며 단 한 가지 걱정이 되었던 것은 한글 입출력인데, 영문자를 취급하듯 코드를 짜도 AC를 받을 수 있었습니다. 변수에 남은 문제의...