평가원 해시 함수 지문 질문
게시글 주소: https://orbi.kr/00074099382
단순히 입찰가의 해시함숫값만을 게시하는게 아니라 논스의 해시함숫값, 논스+입찰가의 해시함슷값을 제시하는 건 다른사람이 노가다로 하나하나씩 찍어서 입찰가 역으로 알아내는걸 방지하기 위함인가요? 논스 더하면 값이 커지니까 찍는 범위가 넓어져 쉽게 찍을 수 없게 되는건가요?
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
맛있는데
-
근데 좀 정도가 심하다 ㅋㅋㅋ 나랏돈 먹는 공중파가
-
사람들이 대하는 태도가 달라진다는게 무습다
-
수시 다 떨어지면 경찰대라도 가는 게 낫나?? 의대목표라 반수든 재수든 하겠지만...
-
형은 한달에 한번오는 새르비괴물이야
-
벽느껴지네 ㅆㅂ 12
내가 전성기때 하루종일 글싸도 하루에 투데이가 100을 못넘겼는데 현타개씨게 오네
-
216학파들 소신발언 173
브크만 제대로 체화하면 독서는 무적이다 <<이딴 바이럴 좀 안 했으면 좋겠음...
-
QnA게시판 들어가보니 개많이 밀려있음 이게 최다선택 탐구의 무게감인가
-
자주나오는거 4C2, 6C3이런거
-
저 여르비임 19
쪽지좀여
-
풀고싶은데
-
흠냐뇨끼 ㅋㅋ 2
-
초록빛의신호등이밝기도하다서있는저사람도 깜빡이고 서있지만 2
둥긍둥글왕감자대홍단감자
-
화2 질문 6
강준호모의고사 응시하면 40의 벽을 넘기가 너무 어려운데 어나클 계속 반복하면 뚫을 수 있을까요?
-
사탐도 지금보다 쉬웠고 기출로도 쌉가능 지금은 x 국어도 훨씬 난이도 쉽고 수학은...
입찰가의 해시함수 값을 게시하는 면, 동일한 입찰가는 동일한 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)라는 것을 섞어야 하는데
쉽게 설명하려다보니 경매가에 단순히 숫자를 더하는 것으로 혼란을 주는 제시문이 제공된 듯 합니다.