Cognita Sapiens [847641] · MS 2018 (수정됨) · 쪽지

2019-10-15 21:22:30
조회수 5,193

수국과학 4편 - 16년 9월 A형 해시 함수와 보안

게시글 주소: https://orbi.kr/00024974585





 수국과학 0편 - https://orbi.kr/00024902587

 수국과학 1편 - 17년 수능 보험지문 https://orbi.kr/00024908611

 수국과학 2편 - 16년 9평 A형 소비자 정책 https://orbi.kr/00024918345

 수국과학 3편 - 17년 9평 콘크리트 발전사 https://orbi.kr/00024926865

 쉬는편 - 문제풀이의 가성비 https://orbi.kr/00024961979








 서론에서는 여러가지로 처음 제 방식을 접하는 독자들에게 충격과 흥미를 유발하고 싶어서 다소 흥미가 생길 수 있으면서도 극단적인 사례도 종종 소개할 것입니다. 오늘 소개할 지문은 여태 지문의 풀이 방법에 비해서 상당히 극단적임을 느낄 것입니다.




 하지만 극단적으로 풀었다는 것은 단순히 찍어서 뒷걸음 쥐잡기 마냥 운으로 푼 것이 아니라, 나름 합리적인 근거를 기반으로 대단히 압축적으로 풀었다는 것을 의미합니다. 불완전한 면도 당연히 존재합니다.




 지난 쉬는시간에서 설명한 바는 우리에게 완벽하지 못하더라도 나름 시간을 줄일 수 있다면 의미가 있다는 것입니다. 완벽하게 꼼꼼하게 전부 읽고 일일이 대응하면서 푼다면야 필자도 전혀 부족하지 않지만 시간을 지나치게 잡아먹기에 가치가 떨어집니다.




 1시간이 걸리는 정답률 100%의 풀이가 있다면 절대로 실전에서는 써먹지 못합니다 시험 전체 시간이 80분이니까요. 조금 찝찝한 면이 있더라도 속도를 합리적으로 높일 수 있는 방안이 현실적일 껍니다.









 시작합니다. 첫 문단 읽고 가장 중요해 보이는걸 캐치해봅시다.










 이 문단을 읽고 나서 머릿속에 보통 '해시 함수'라는 용어만 남아 있을 것입니다. 너무나 특이하고 처음 보는 충격적인 단어이기 때문이죠. 그러나 저는 여지껏 칼럼에서 한번도 이런 특별한 용어에 주목한 점은 없습니다.




 마찬가지로 이 지문을 다 읽고 문제를 푸는데 있어서 '해시 함수'라는 용어를 외우거나 특별히 암기할 필요는 없습니다. 선지에서 '해시 함수'라고 언급했다고 해서 그 선지가 정답이 될 후보가 되는 것도 더더욱 아니지요. 이런 특별한 용어 말고 훨씬 더 보편적이고 일반적인 내용을 찾을 수 있습니다.











 앞으로 제가 쓴 책이 마르고 닳도록 강조할 유형이 등장했습니다.




 보안상의 문제도 안고 있는데




 수능 지문에서 보면 무엇인가 문제를 지적한 경우가 많습니다. 어떤 난관에 부딪힌다, 어떤 한계가 있다, 무슨 단점이 있다, 보완이 필요하다 등. 지난번 콘크리트 발전사 지문에서도 인장강도가 약하다는 단점을 지적했죠. 크게 보면 이 단점도 문제입니다.




 따라서 지난 칼럼과 동일한 논리로 이 문제에 신경이 쏠려야합니다. 이번 지문에서는 보안에 문제가 있다고 합니다.




 너무나 당연한 말을 해 봅시다. 여러분이 무언가를 만들었는데 어떤 문제가 발생했다고 상상해봅시다. 초등학생때 다들 글라이더나 물로켓 한번 쯤은 만들어봤죠. 그런데 가끔 잘못 만들면 얘네가 날지 못하는 문제가 발생합니다. 그래서 다시 조립하거나 해체하고 문제를 찾아야했죠.




 무엇이든 문제가 생긴다면 반드시 해결을 하려고 노력할 것이며, 완전히 해결이 안되더라도 가능한한 최소화하고 좀 보완하는 쪽으로 결론을 낼 것입니다. 그렇게 생각한다면 이 지문은 앞으로 이런 보안상의 문제를 해결하는데에 초점을 맞출 것입니다.









 이러고 나서 2문단으로 넘어가겠습니다. 해시 함수에 대해서 주저리주저리 길게 설명한 부분은 특별히 안 읽냐고요? 읽어도 큰 상관은 없으나, 안 읽어도 심각하게 문제가 벌어지지는 않습니다. 가능한한 최소한으로 지문을 읽으면서 넘어가겠습니다.





 





 '보안상의 문제 해결'을 계속 염두에 두어 가면서 지문을 읽으면 비슷한 느낌이 나는 문장이 몇개가 보입니다. 이것들만 좀 찝어보겠습니다.












 데이터의 내용이 변경되었는지 여부를 확인하는 데 이용된다.




 전송받은 해시 값과 비교함으로써 문서가 변경되었는지 확인할 수 있다.









 이 두 문장은 결국 뭘 의미할까요? 보안상의 문제를 해결한다와 연결되는 것입니다. 출제자가 좀 친절하게 각 문장에 '보안'이라는 단어를 넣었다면 훨씬 수월하게 찾을 수 있었겠지만 힌트만 살짝 던져주다 말았습니다. 그래서 찾기가 좀 어려울 수는 있으나 결국 저 두 문장은 앞서 말한 보안상의 문제입니다.




 앞으로 몇몇 유형의 지문을 소개하면서 각 유형을 정리할 것입니다. 오늘 지문의 유형은 바로




 문제와 해결




 이었습니다. 그리고 이런 형식의 지문이 꽤 많으며 모두 동일한 사항을 염두에 두며 읽어야합니다. '해결을 어떻게 했나?'








 짧은 지문이니 남은 2개 문단 마저 한꺼번에 읽으면서, 일맥상통하는 문장을 또 골라보겠습니다.

 

 









 앞에서 말한 보안 문제와 관련된 문장을 몇개만 찝어보다가 맨 마지막 문장을 보면 피식 웃음이 나와야 합니다. 우리가 찾은 주제를 또 확인사살하며 확정시키고 있거든요. 주제를 잘 찾은 학생들은 맨 뒤에 출제자가 칭찬을 해주고 있는 겁니다 너는 참 글을 제대로 읽었구나 라고.




 








 만족시키는 x를 계산하는 것이 매우 어렵다는 것이다.




 서로 다른 데이터를 찾아내는 것이 현실적으로 불가능하다는 것을 의미한다.




 다양한 보안상의 문제를 해결할 수 있다.





 맨 마지막 문장은 우리가 앞에서 찾은 이 지문 주제의 확실한 반복이죠. 처음부터 끝까지 보안상의 문제 해결만 계속 염두에 두면서 관련성 높아보이는 내용을 제대로 이해해왔다면 충분히 문제를 풀어낼 수 있습니다.




 중간에 빼먹은게 있는데 각 보안상의 문제를 지칭하는 단어가 있었습니다. '일방향성'과 '충돌회피성'이 있었는데, 결국 이 두 단어를 풀어쓰면 보안 상의 문제 해결과 관련있다고 합니다. 저 조건들을 만족시키면 보안 상의 문제를 해결할 수 있다하니, 참 훌륭한 요소겠구나 정도로 이해하면 됩니다.









 저는 여기까지 극도로 지문을 압축하고 핵심적으로 읽었습니다. 제가 찝은 문장 말고도 수많은 정보가 해당 지문에 제시되며, 지난 칼럼들과 마찬가지로 수식과 함수도 등장합니다. 그런데 우린 국어를 풀고 있으니 얘네들은 적당히 무시해줍시다. 얘네들까지 완벽히 이해하면야 확실하겠지만 그렇게 큰 도움까지는 안됩니다.




 주제도 정확히 이해했고, 이 주제에 부합하는 요소들을 다 찾았습니다. 어떤 것들을 충족시키면 보안 상의 문제가 해결되는지 당당하게 말할 수 있습니다.




 그래서 이제는 문제를 풀 수 있습니다. 이런 사고방식은 직접 선생님께 어느 학생의 실제 사례라고 들었습니다. 이야길 들어보니까 참 훌륭해서 이번 칼럼에 실었습니다.








 첫번째 문제.








 선지를 쭉 훑으면서 생각을 해봅시다. 보안 상의 문제 해결이 주제였습니다. 그래서 보안에 밀접한 관련이 있는 내용을 찾으면 이게 보입니다.




 





 옳지 않은 것을 고르는 문제인데요, 3번 선지를 보면 서로 다른 해시 함수로 도출한 값은 언제나 동일하다고 합니다. 뭔가 캥기는게 많이 있지 않습니까? 상식적으로 보안의 관점에서 보자면 서로 다른 해시 함수로 도출한 값은 서로 달라야겠죠. 동일하면 들키고 보안이 뚫리겠죠.




 그래서 이런 생각을 한 학생은 3번이 답이라고 생각했답니다. 쉬지 않고 이어서 나머지 문제도 풀어보겠습니다.














 이 문제를 읽고 나서 살짝 눈을 지문으로 돌려서 각각 기호가 뭘 지칭하는지 정도는 확인을 당연히 해야합니다. 아까 우리가 봤던 보안 상의 문제 해결에서 필요한 요소 2가지였네요. 그리고 다시 선지를 바라봅니다.





 그럼 아까 풀었던 방식과 비슷하게 보안의 관점에서 의심스러운 선지를 찾아보겠습니다.









 복원할 수 없데요. 이 부분은 앞서 우리가 찾은 핵심에서도 그대로 드러나는 부분이죠. 그걸 생각하면서 충분히 1번을 찝을 수도 있습니다. 근데 이 학생은 더 단순하게 들어가서, 보안 상의 문제를 해결해야 하니까 당연히 복원할 수 없어야 뒤탈이 없겠다고 생각했답니다.





 그래서 1번 선지가 매우 당연해 보여서 1번을 찝었습니다.









 마지막 문제.











 보기 나와있고 표 나와있고 수식까지 수험생들이 제일 싫어하는 요소는 다 들어가 있습니다. 그러나 쫄지말고, 보기에 너무 신경쓰지도 말고 똑같이 보안 상의 관점에서 한번 선지를 훑어봅시다.




 그럼 또 마음에 드는 문장이 보여야합니다.







 알 수 없데요. 이 서술은 보안 문제에 매우 밀접한 관련이 있습니다. 수능 문제가 보안이 철저하게 지켜지니까, 이 세상 아무도 미리 수능에 어떤 문제가 출제될지 모릅니다. 유출이 안되니까요. 유출됬으면, 보안이 뚫렸으면 누구나 어떤 문제가 나오는지 알겠죠.




 아쉽게도 한국 수능은 최강의 보안 수준과 의식을 자랑하기에 절대로 미리 접근할 수 없습니다. 그러니까 비밀이 지켜지는다는 것은 당연히 보안이 지켜진다는 말일 것입니다.




 그래서 이 문제의 답은 2번이라고 생각했답니다.












 이런 식으로 생각하며 풀었던 이 학생의 결과는 어땟을까요? 3 문제 모두 맞췄답니다.





 물론 항상 오늘 푸는 방식처럼 풀 것은 아닙니다. 오늘의 지문에는 난이도 자체가 그닥 크지 않다는 점, 아주 보편적이고 상식적으로 이해할 수 있다는 점 등의 요소가 있었기 때문에 극도로 간단하게 풀 수 있었습니다.





 저는 좀 친절히 설명하고 반복도 한다고 먼 길을 돌아왔지만, 이렇게나 간단하게 '보안'이라는 개념을 염두에 두면서 답을 총쏘듯이 찍은 학생은 얼마나 빨리 풀었겠습니까? 게다가 이 학생은 전부 맞췄습니다.





 단순히 결과론적인 평가 말고도 우리가 앞서 찾은 주제문과 핵심 문장들을 생각해 보더라도, 충분히 이 학생의 접근은 합리적이었다는 생각이 듭니다. 복원할 수 없다, 알 수 없다, 서로 똑같지 않다 등의 서술은 앞서 찾은 문장에서도 나온 문구였습니다. 상식적으로도 이것들은 보안이 지켜질때 성립하겠지요.









 에이, 결과적으로 무슨 선지가 답이었는지 다 아니까 거꾸로 끼워맞추고 억지로 말을 만들어내는거 아냐? 라는 반응이 나올 수도 있으나 여태 벌써 4개의 지문을 이런 방식으로 접근하여 문제를 풀어왔고, 모든 문제를 확실히 맞히지는 못했으나 찍어서 맞추는 20%는 웃으면서 압도하는 확률로 맞춰왔습니다.




 이런 측면에서 필자는 수능 국어가 참 과학적이라고 생각합니다. 각 상황에 따라 동일한 방식을 적용시키면 아주 비슷비슷하게 나오거든요.

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.

  • Heter0 · 809926 · 19/10/15 21:39 · MS 2018

    흠터레스팅.... 한 풀이방법이네요...
    실전 연습하면서 한번정도는 꼭 염두에 두고 생각해볼만한 방식인 것 같습니다!

  • Cognita Sapiens · 847641 · 19/10/15 23:10 · MS 2018

    저도 이런 방식으로 한달 수업 듣고 나서야 조금씩 깨달았고, 근 2년 + 지금 집필활동 하면서 계속 고민하면서 익숙해졌기에 글도 쓰고 있습니다. 절대로 쉬운 방법은 아니니 차근차근 음미하시고 연습하신다면 충분히 활용하실 수 있을 겁니다. 대신 어렵게 열심히 공부한 만큼 실전에서는 정확성과 속도가 매우 높이 올라갈 겁니다

  • Heter0 · 809926 · 19/10/15 23:20 · MS 2018

    헐... 장문의 답변 감사드립니다...! 꼭 실전에서도 능수능란하게 다룰수 있도록 열심히 할게요!!

  • 에어팟케이스 · 877018 · 19/11/02 15:41 · MS 2019
    회원에 의해 삭제된 댓글입니다.
  • 에어팟케이스 · 877018 · 19/11/02 15:43 · MS 2019

    5번이 틀린 이유가 궁금합니다..

  • 재수할 수 있음에 감사해 · 883158 · 20/03/30 23:01 · MS 2019

    17번에 보기 5번 말씀하시는 건가요?
    저도 갸우뚱해서 지문 찾아가서 봤더니
    같은 해시 함수에 다른 입력값을 넣는 것이더라구요
    문제 보기에서는 다른 해시 함수에 다른 입력값을 넣는거니 틀렸죠