-
Cryptographic Backdoor
안녕하세요, 최근에 연달아 다소 난이도 있고 재미 없는 내용을 올렸는데 이번 글에서는 약간의 배경 지식을 필요로 하지만 굉장히 흥미로운 주제를 가지고 왔습니다. 꼭 암호학에 관심이 없더라도 읽어보면 재밌을만한 내용이니 편하게 즐겨주세요. Introduction Privacy vs National security 디지털 시대가 도래하면서 개인의 프라이버시와 국가 안보 사이에서 딜레마를 겪는 일이 많아지고 있습니다. 2015년 샌버너디노 총기 난사 사건 당시 수사기관은 애플에게 테러리스트의 휴대폰 잠금을 풀어줄 것을 요청했지만 애플은 이를 거부했고, 2017년 웨스트민스터 테러에서도 암호화된 테러리스트의 Whatsapp 대화를 풀어내지 못했습니다....
-
S/W 멤버십 기술 블로그 고치기
이 블로그에 있는 버그와 문제점을 고쳤습니다. 태그 시스템이 제대로 동작하지 않습니다. 거의 모든 태그를 눌러도 404 오류가 나타납니다. 태그 기능을 추가하였습니다. 일부 글의 작성자가 표시되지 않습니다. 모두 올바르게 표시되도록 수정하였습니다. 일부 글이 표시되지 않습니다. 모두 보이도록 수정하였습니다. 검색 기능이 동작하지 않습니다. 정상 동작하도록 수정하였습니다. 사실 저는 알고리즘 문제풀이를 주로 하고, 실제 소프트웨어 등의 코드를 다뤄 본 경험은 별로 없습니다. 그래서 소프트웨어 디버깅의 일종의 체험과 배움을 하는 것에 의의를 뒀습니다. 이 글은 “단순히 어떤 버그가 있었고...
-
PS에서의 런타임 에러와 디버깅
서론 알고리즘 문제를 온라인 저지에서 풀다 보면 다양한 종류의 채점 결과 (verdict)를 받게 됩니다. 백준 온라인 저지의 경우 통상적으로 볼 수 있는 채점 결과만 ‘맞았습니다!!’, ‘틀렸습니다’, ‘시간 초과’, ‘메모리 초과’, ‘컴파일 에러’, ‘런타임 에러’, ‘출력 초과’, ‘출력 형식이 잘못되었습니다’ 등 8가지나 됩니다.1 그런데 애석하게도 이 중에 좋은 결과는 오로지 ‘맞았습니다!!’ 하나뿐이고, 나머지는 모두 안 좋은 결과입니다. 이 안 좋은 결과들의 의미는 대부분 명확합니다. ‘틀렸습니다’는 말 그대로 출력 내용이 정답이 아니었던 것이고, ‘시간 초과’는 말 그대로...
-
Gumbel softmax
소개 언어 모델, 어텐션 메커니즘, 강화학습 등 다양한 문제에서 이산확률변수(discrete random variable)를 모델링해야 할 때가 있습니다. 하지만, 뉴럴 네트워크를 가지고 이러한 이산확률변수를 표현하는 것은 매우 어렵습니다. 왜냐하면 역전파(backpropagation) 알고리즘으로 미분 불가능(혹은 기울기가 0)인 레이어를 학습할 수 없기 때문입니다. 이러한 이산적인 연산을 sigmoid나 softmax 함수로 대체하는 것을 고려해 볼 수도 있습니다. 하지만, 이산적인 상태를 표현해야 하는 경우에는 이러한 함수를 사용할 수 없습니다. 또 다른 방법인 몬테카를로 방식으로 이산적인 연산의 gradient를 추정할 수 있지만 이 경우 큰...
-
APIO 2020
APIO 2020 올해 학생들 성적은 1금5은으로 예년과 비슷한 편으로 보인다. 반딧불이 300점 만점에 300점을 받아서, 2015년 이후 첫 APIO 만점과 함께 금메달을 얻었다. 반딧불 학생은 올해 IOI 국가대표이기도 한데, 아직 고등학교 1학년이니 앞으로도 좋은 결과가 기대된다. 그 뒤를 이어 이온조, 최서현, 장태환, 김지훈, 최은수 학생이 은메달을 얻었다. 모두 축하합니다! 1. 벽 칠하기 Subtask 1 (12점) 특정 벽을 칠할 수 있는 일꾼이 누구인지 고정되어 있다. 고로 색에 대해서 신경쓸 필요가 없고, 각 일꾼들이 문제의 조건에 맞게...