평가원 해시 함수 지문 질문
게시글 주소: https://orbi.kr/00074099382
단순히 입찰가의 해시함숫값만을 게시하는게 아니라 논스의 해시함숫값, 논스+입찰가의 해시함슷값을 제시하는 건 다른사람이 노가다로 하나하나씩 찍어서 입찰가 역으로 알아내는걸 방지하기 위함인가요? 논스 더하면 값이 커지니까 찍는 범위가 넓어져 쉽게 찍을 수 없게 되는건가요?
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
저도 중학교까지 목동에서나오다가 내신따러 옃동네갔는데 목동에서 절대못받았을내신임 지금 2점초거든요
-
간만에 노추 0 0
보카로 좋아하는 사람중에서도 호불호 갈릴듯
-
에휴다노
-
충격
-
땡깡부리는 아가가 된 석열쿤 9 1
런닝과 팬티만입고,,
-
최적t 커리 3 1
사문은 개념1회독 했고 정법은 처음하는데 Core 강의만 들어도 충분할까요?
-
노래추천 0 0
인공잔디/AKMU 날씨 개덥네
-
갑자기 영어가 안되는데 0 1
왜이럴까요... 마인드의 문제인가 꼭 1나올 필요 없다 생각하니 헤이해지네요 다들...
-
나 영듣하다가 1 1
그래프에서 UK랑 US 거꾸로 읽어서 틀린 적있음ㅋㅋㅋ 역시 ㄹㅈㄷ 허수
-
올해 수능 22 ㅇㅇ
-
문제푸는거 말고 좀더 가시적인 성과를 내는 공부방법 없나 3 0
계속 문제만 푸는데 실력이 올라가는지 잘 모르겠다 실모점수도 비슷비슷하고
-
지금이다지금
-
파스타 너무 많이 해버려서.. 2 2
2인분 푸파했어….
-
언매 실모 2 3
의류 산업에 사용되는 물의 양이 전체 산업의 20%라고 소개했는데요, 제가 생각했던...
입찰가의 해시함수 값을 게시하는 면, 동일한 입찰가는 동일한 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)라는 것을 섞어야 하는데
쉽게 설명하려다보니 경매가에 단순히 숫자를 더하는 것으로 혼란을 주는 제시문이 제공된 듯 합니다.