평가원 해시 함수 지문 질문
게시글 주소: https://orbi.kr/00074099382
단순히 입찰가의 해시함숫값만을 게시하는게 아니라 논스의 해시함숫값, 논스+입찰가의 해시함슷값을 제시하는 건 다른사람이 노가다로 하나하나씩 찍어서 입찰가 역으로 알아내는걸 방지하기 위함인가요? 논스 더하면 값이 커지니까 찍는 범위가 넓어져 쉽게 찍을 수 없게 되는건가요?
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
난 초인이다.
-
얼버잠 1
-
서연고 가면 흔하게 볼 수 있음? 말 그대로 유니콘
-
또 사람을 팼느냐 매그너스..
-
기하 드릴 사버릴까 12
람쥐가 보내준거 몇개 푸러봣는데 좋드라고 다운은 받아놓긴햇는데..
-
방귀가 너무 많아서 질질 새는데 장애인이냐고 꼽먹었어요
-
4규근본은 선택도 시즌 12였는데... 원래 한석원쌤 기출책 4점기출 말고 10년간...
-
이런말 해도 되나 11
보통 어느선부터 짜르냐 오르비는 알다가도 모르겟네
-
뭘 들어야할지 모르겠음 메가에 들을 사람이 없는데 우짬
-
라스트댄스… 는 통매음 무서우니까 사려야지
-
넌 고1 때는 나랑 모고성적 비슷했는데 왜 지금 나보다 잘하냐 난 인서울 가망 없는거냐
-
성적변화 ㅇㅈ 9
후… 이번만 봐드리겠습니다
-
ㅇ게 뭐하는짓이지
-
물화생2 할 예정이구요 다 절대평가라서 시험 60점만 넘기면 A나오긴 하는데...
-
초보자용 벡터 접근법 12
벡터는 이질적인 파트이기 때문에 많은 사람들이 처음에 어려움을 겪는다. 다음과 같은...
-
나친구항테들켯음
-
밖으로도 잘하면 굽혀지지 않으려나
-
더러운얘기하나 5
오늘 배꼽 빡빡 씻었는데 배꼽 만질때마다 아픔
-
난 참 그대가/406호 프로젝트 첫눈에 널 사랑할 수는 없었을까/캔트비블루 이럴...
입찰가의 해시함수 값을 게시하는 면, 동일한 입찰가는 동일한 hash값을 같습니다.
예를들어 a라는 사람은 (100만원) B라는 사람도 (100만원)을 입찰한다고 가정해봅시다
이때 100만원의 hash 값은 (실제 MD5라는 알고리즘으로 변환했습니다.)
A : 8155bc545f84d9652f1012ef2bdfb6eb 로 동일합니다.
B : 8155bc545f84d9652f1012ef2bdfb6eb 로 동일합니다.
만약 이것을 공개적으로 게시한다면 B와 A는 서로 어떤 가격을 냈는지 알 수 있습니다.
(A와 B의 HASH값이 동일하므로..)
대신 A의 논스를 41959 B의 논스를 18823라고 해봅시다
그렇다고하면
A의 논스의 hash값은 41959 : 2beb774329b2f0fe5e7952cba91c0af7
B의 논스의 hash값은 18823 : a269ef5c1e7623a02a651fad5f2b8905
이 되고
논스+입찰가는
A 1041959 : d34c67f90968d81acd773569f68ab861
B 1018823 : 6070ed3a29a1702c88ada6fa448f96c3
으로 서로 같은 입찰가를 적었지만 A와 B는 이 hash값만 가지고 서로 어떤 입찰가를 적었는지 알 수 없습니다.
논스를 더하는것은 논스 차이가 1정도만 달라져도 크게 달라집니다.
예를들어
1000000 : 8155bc545f84d9652f1012ef2bdfb6eb
1000001 : 59e711d152de7bec7304a8c2ecaf9f0f
1000002 : 877466ffd21fe26dd1b3366330b7b560
이렇게 1정도만 차이났을때 877466ffd21fe26dd1b3366330b7b560 이런 HASH 값을 보고 HASH함수의 역함수를 이용해 1000002이라는 것을 알아낼 수 없기 때문입니다.
와 감사해요
저 함숫값은 실제 모델 사용한건가요?
네 맞습니다 md5라는 hash알고리즘을 이용했습니다.
그런데 예시가 다소 잘못된 것으로 보이는데 '실제'로는
입찰가가 자연수, 논스도 자연수 범위에 있다면 '노가다'를 그래픽카드에 시켜서 조회하면
현실적인 가격 범위 (1원~100억) 정도는 10초이내 찾을 수 있습니다
hash 알고리즘이 공개되었다고하니 1부터 100억까지 하나씩 hash를 변환해서 비교대조해보면 되니까요
1000000 : 8155bc545f84d9652f1012ef2bdfb6eb
1000001 : 59e711d152de7bec7304a8c2ecaf9f0f
1000002 : 877466ffd21fe26dd1b3366330b7b560
...
이런식으로 말이죠
이 hash알고리즘이 알려져있다고 해도 59e711d152de7bec7304a8c2ecaf9f0f을 보고 역으로 계산해서 1000001을 알아낼 순 없지만
1000000 : 8155bc545f84d9652f1012ef2bdfb6eb
1000001 : 59e711d152de7bec7304a8c2ecaf9f0f
1000002 : 877466ffd21fe26dd1b3366330b7b560
...
이런식으로 100억개의 숫자의 hash값을 모두 생성해 hash값을 비교대조해서 알아낼 수 있습니다.
실제로는 숫자가 아니라 긴 문자열 (salt)라는 것을 섞어야 하는데
쉽게 설명하려다보니 경매가에 단순히 숫자를 더하는 것으로 혼란을 주는 제시문이 제공된 듯 합니다.