ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 해시(hash)
    컴퓨터 공부 ver 0.2/알아두면 좋은 내용들 2010. 10. 31. 13:45
    반응형
    1. hash의 사전적 의미
    a. 다진 고기 요리, 해시 요리
    a-1. 음식(food), 식사
    b. (작품, 연구 등을) 되우려낸 것, 고쳐 만듦, 개작, 재탕((over, out))
    c. 뒤범벅, 뒤죽박죽
    d. (컴퓨터)잡동사니, 쓰레기((기억 장치 속에 있는 불필요하게 된 데이터))
    참고: 네이버 영어사전

    2. Hashing(해싱)
    - 해싱은 하나의 문자열을 원래의 것을 상징하는 더 짧은 길이의 값이나 키로 변환하는 것이다. 짧은 해시 키를 사용하여 항목을 찾으며 원래의 값을 이용하여 찾는 것보다 더 빠르기 때문에, 해싱은 데이터베이스 내의 항목들을 색인하고 검색하는데 사용된다.
    - ex) 데이터베이스 내에 있는 사람들의 그룹
    Abernathy, Sara
    Epperdingle, Poscoe
    Moore, Wilfred
    Smith, David

    이러한 이름들 각각은 데이터베이스 내에서 개인들 데이터의 키가 될 수 있다. 데이터베이스 검색 수법은 일치하는 것이 먼저 발견될 때까지 각 이름들을 글자단위로 확인하기 시작해야만 한다. 그러나, 만약 이름들 각각이 해시 된다면, 각 이름별로 4자리의 고유한 키(자린수는 데이터베이스 내에 들어있는 이름의 수에 따라 다르다.)를 생성하는 것이 가능해진다.
    7864 Abernathy, Sara
    9802 Epperdingle, Poscoe
    1990 Moore, Wilfred
    8822 Smith, David

    어떤 이름을 찾는 작업는 먼저 해시 값을 계산하고, 그 다음에 그 값을 사용하여 일치여부를 비교하는 작업으로 구성된다. 일반적으로 이렇게 하는 것은, 각 문자가 26개의 경우를 갖는 예측할 수 없는 값의 길이에서 찾는 것보다, 각각이 오직 9개의 경우를 갖는 네 자리수에서 일치하는 것을 찾는 것이 더 빠르다.

    - 해시 알고리즘을 해시 함수라고 부른다. 해싱은 빠른 속도의 데이터 검색 외에도, 전자서명을 암호화하고 복호화하는 데에도 사용한다. 전자서명은 해시 함수를 이용하여 변환된 다음, 해시값(이를 요약 메시지라고 부른다.)과 전자서명이 별도로 전송된다. 수신자는 송신자가 사용한 해시함수와 같은 것을 사용하여, 서명으로부터 요약 메시지를 뽑아내어 그것을 이미 수신한 요역 메시지와 비교한다. 그 비교 결과는 같아야만 전자서명이 유효한 것이다.

    - 해시 함수는 원래 값이나 키를 색인하는데 사용되며, 그 값이 관련된 데이터가 검색될 때마다 다시 사용된다. 그러나, 해싱은 항상 한 쪽 방향으로만 연산된다. 따라서, 해새된 값을 분석함으로써 해시 함수를 추출해내는 역방향 공학은 필요가 없다. 사실, 이상적인 해시함수는 그러한 분석에 의해 추론할 수 없어야 한다. 또한, 우수한 해시 함수는 서로 다른 두 개의 입력에 대해, 동일한 해시 값을 생산해서는 안된다. 만약 그렇게 되면, 충돌이 생긴다. 충돌 위험성이 매우 적은 해시 함수라야 훌륭한 해시 함수로 평가된다.

    - 데이터베이스 저장이나 검색에 잘 적용되는 해시 함수는 오히려 암호화나 에러검출 목적으로 잘 듣지 않을 수도 있다. 암호화에 사용되는 잘 알려진 해시 함수들이 몇 개 있다. 이러한 것들에는 전자서명을 요약 메시지라고 불리는 더 짧은 값으로 바꾸는 데 사용되는 요약 메시지 해시 함수 MD2, MD4, MD5 등과, 더 큰 요약 메시지 (60비트)를 만드는 표준 알고리즘인 SHA 등이 포함된다.
    참고: 텀즈 컴퓨터 용어 사전(http://www.terms.co.kr)

    3. Hash Function
    - Hash Function 또는 해시 알고리즘(Hash Algorithm)은 임의의 데이터로부터 일종의 짧은 "전자 지문"을 만들어 내는 방법이다. 
    - 해시 함수는 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어 내며, 이 결과를 흔히 해시 값(hash value)이라 한다. 해시 함수는 결정론적으로 작동해야 하며, 따라서 두 해시 값이 다르다면 그 해쉬값에 대한 원래 데이터도 달라야 한다. (역은 성립하지 않는다.) 
    - 해쉬 함수의 질은 기대되는 입력 영역에서 얼마나 적은 해시 충돌(서로 다른 두 데이터의 해시 값이 같은 경우)을 일으키느냐로 결정되는데, 충돌이 많이 날수록 서로 다른 데이터를 구별하기 어려워지고 데이터를 검색하는 비용을 늘리기 때문이다.

    - 특징
    모든 해시 함수의 가장 기본적인 성질은 두 해시 값이 다르다면 원래의 데이터도 어딘가 다르다는 것이다. 이 특징은 해시 함수가 결정적이기 때문이다. 반대로 해시 함수는 단사 함수가 아니다. 같은 해시값을 가진다면, 원래의 입력값이 같다는 것을 시사하지만 보장해주지는 않는다. 원래 입력의 한 비트만 바뀌더라도 해시 함수의 성질로 인해 해시 값은 크게 달라진다.
    반응형

    댓글

Designed by Tistory.