평가원 해시 함수 지문 질문
게시글 주소: https://orbi.kr/00074099382
단순히 입찰가의 해시함숫값만을 게시하는게 아니라 논스의 해시함숫값, 논스+입찰가의 해시함슷값을 제시하는 건 다른사람이 노가다로 하나하나씩 찍어서 입찰가 역으로 알아내는걸 방지하기 위함인가요? 논스 더하면 값이 커지니까 찍는 범위가 넓어져 쉽게 찍을 수 없게 되는건가요?
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
ㄹ
-
어렵농
-
단무지 ‘단무지’는 원래 ‘다꾸앙’, ‘다꽝’으로 불렸는데 이는 일본어...
-
6평에서 5받고 좌절하다(이전게시글참고) 1달 빡세게 조지고 윤성훈 쌤 실모 3회차...
-
존나 귀찮네 어차피 뭐 계속 간섭이나할텐데 내가 생각이 그런다고 바뀌겠냐...
-
친구들 결혼하고 애아빠 되는 게 부러워 질 때가 있음. 2
종족 번식 본능이라는 게 이성으로만 통제되는 것은 아닌 것 같다는 생각이 들 때가...
-
화작 확통 생윤 사문 6모 42351(생윤 1주차 였음) 7모 23421 100일...
-
조용히 올라가는 추신수
-
걍 수업때 자꾸보고싶은사람 들으셈 선생님이 보고싶으면 공부잘됨
-
걔가 남매사랑 채널 들가보라함 가보니 ㅅㅂ
-
ㅇㅇ
-
전엔 안 그랬던 거 같은데
-
수학의 단권화 랩핑만 뜯은 제품 구매하실 분 있나요? 수능한권은 수2랑 확통 랩핑 안뜯었습니다.
-
하하하핫.. 서바 성적보다 자랑스러워서 올려봄니다
-
여긴 맨날 싸워 6
들어올때마다 싸우고 이씀
입찰가의 해시함수 값을 게시하는 면, 동일한 입찰가는 동일한 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)라는 것을 섞어야 하는데
쉽게 설명하려다보니 경매가에 단순히 숫자를 더하는 것으로 혼란을 주는 제시문이 제공된 듯 합니다.