출처 : cryptocontest.kr/ Home - SEC연구소 | 암호분석경진대회 cryptocontest.kr 해당 문제를 풀기 위해서는 library 등이 압축된 파일이 필요하지만 용량 문제로 인해 업로드하지 않았습니다. 압축파일은 위 SEC연구소 홈페이지를 통해 다운받으시면 됩니다. 3번은 블록암호 복호화 문제입니다. (제가 아닌 다른 팀원이 푼 문제였습니다. 1번을 풀고 있었는데 하루만에 풀어와서 놀랐던 기억이 나네요 ㅎㅎ) 우선 문제에서 주어진 블록 암호는 ARIA-128입니다. ARIA-128은 KISA에서 만든 대한민국 표준 블록 암호 알고리즘입니다. 암호화 과정은 문제에 나온 것을 인용하면 다음과 같습니다. 평문 P를 q개의 블록으로 나누어 루프를 돌며 enc과 IV를 이용해 xor 연..
출처 : cryptocontest.kr/ Home - SEC연구소 | 암호분석경진대회 cryptocontest.kr 2020 암호경진대회 2번 문제입니다. 최적화를 통해 해당 암호화 알고리즘을 누가 더 빠르게 동작하도록 만드느냐하는 문제였습니다. 문제에서 요구하는 수정해야될 key_gen과 enc 함수는 다음과 같습니다. void key_gen(u8 *rnd, u8 *key) { u8 key_in[2]; u8 tmp1, tmp2; u16 *key_p; u16 con = 0x9ABC; key_in[0] = key[0]; key_in[1] = key[1]; key_p = (u16*) key_in; int i; for (i = 0; i < ROUND_NUM; i++) { if (i % 2 == 0) { key..
www.acmicpc.net/problem/15973 15973번: 두 박스 표준 입력으로 두 박스의 정보가 한 줄에 하나씩 주어진다. 각 박스의 정보는 왼쪽 아래 꼭짓점 좌표 (x1, y1)과 오른쪽 위 꼭짓점 좌표 (x2, y2)로 구성되는데 이들 좌푯값 x1, y1, x2, y2 (x1 < x2, y1 < y2) www.acmicpc.net 오랜만에 수학 문제를 풀고 싶어서 도전했지만 수학이라기보단 노가다 문제였습니다. 문제는 어렵지 않다. 두 박스가 한 점에서 만나는지 선으로 만나는지 교차하는지 (내부에 포함되는 것 포함) 만나지 않는지를 나누어 계산하면 됩니다. 상대적으로 정답률이 낮은 이유는 아마 여러 경우 중 놓친 것이 있거나 했기 때문일 것입니다. (나도 몇 번 틀렸다.) 구조체를 이용하여..
문제 출처 : cryptocontest.kr/ Home - SEC연구소 | 암호분석경진대회 cryptocontest.kr 1,2,3번은 일반부와 고등부 공통의 문제였습니다. 4,5번에 비해 상대적으로 쉽지만 참고 논문을 이해하는 것은 생각보다 쉽지 않은 문제입니다. 참고 논문 : eprint.iacr.org/2015/802.pdf 1. 문제 접근 : Hill cipher는 고전 암호로써, 행렬의 역연산이 쉽지 않음을 이용합니다. 예를 들어, 임을 계산하기는 쉽지만, 아래와 같이 행렬식 만으로는 어떤 행렬의 곱으로 이루어졌는지 알수 없습니다. (위와 같은 경우도 가능하기 때문에 K가 되는 2x2 행렬이 무엇인지 그리고 평문인 (1,2)를 구하는 것은 어렵다.) 이러한 hill cipher를 어떻게 하면 풀..
지난 8/31까지 진행되었던 암호경진대회 일반부에서 수상하였습니다. 문제 출처 : cryptocontest.kr/notice/?vid=2 공지사항 - SEC연구소 | 암호분석경진대회 cryptocontest.kr 비록 장려상이고 유명하지 않은 대회이지만 처음 참가한 대회에서 수상한 거면 개인적으로 아주 만족스러웠습니다. (처음에는 참가에 의의를 두자! 하고 했었다.) 블로그를 늦게 시작한 탓에 수상을 하였다는 것도 늦게 올렸습니다. 추후에 2020 암호경진대회 문제 풀이 글도 포스팅하겠습니다! 짧게 후기를 쓰면, 대학교 2학년 때 암호학이란 것이 알게 되었고, 이에 관심을 가지다 보니 프로그래밍 언어를 필수적으로 해야했습니다. 2학년 여름방학 때 처음으로 C언어란 것을 혼자 방에서 독학으로 했습니다. 수..