• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

해시 / MD5 / SHA / 무결성검사 에 관한 정리

전공관련/기타 etc. 2017. 7. 18. 11:24




제일 먼저 해시(Hash) 란 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수를 의미한다.

입력 데이터의 크기에 관계없이 고정된 크기의 출력값을 내도록 설계 되어 있어 항상 같은 길이의 출력을 낸다.


기본적으로는 입력이 달라지면 출력값도 달라져야 하며 두 데이터의 해시값이 다르다면 원 데이터도 달라야 한다.

하지만 이 세상에 가능한 모든 입력데이터를 제한된 길이의 출력 데이터로 매핑해야 하기 때문에 

다른 입력에 대하여 같은 해시값이 나올 수 밖에 없다.

이러한 문제에 대응하기 위해 더 긴 길이의 해시값이 제안되고 있으며, 이러한 문제점으로 인하여 

보안 분야에 사용하기에는 문제가 있다.


일반적으로 해시함수는 데이터를 인코딩 하는 용도로 설계되었기 때문에 

인코딩 된 데이터만을 이용하여 원 데이터를 디코딩 하는 것은 불가능 하다.


흔히 사용되는 해시 함수는 크게 암호화 해시함수(입출력간의 관계를 유추하기 어려움) 비암호화 해시함수로 나뉘며 MD5, SHA 방식은 암호화 해시함수에 속한다.


MD5(Message-Digest algorithm 5) 는 출력값으로 128bit 크기를 갖는 암호화 해시함수다.

128비트로 표현되기 때문에 커버할수 있는 데이터는 2^128 가지 이며, 이는 충분한 값이 아니라

다른 입력에 대하여 동일한 해시값을 내는 충돌 현상이 발견되었다.


SHA 계열은 현재 SHA-2 까지 개발되어 있으며 최대 512bit를 출력값으로 사용하기에 

MD5의 128비트나 SHA-1 까지의 160비트에 비해 훨씬 많은 데이터에 대응이 가능하며

이러한 특성으로 인해 아직까지 충돌현상은 발견되지 않았다.




이러한 해시함수를 통해 데이터마다 고유한(? 이론적으론 고유하지 않지만...) 값으로 매핑이 가능하기 때문에

원본 데이터와 해시값을 갖고 있으면 나중에 복사, 다운로드 등을 통해 옮겨진 데이터의 해시값을 계산하여

원본데이터의 해시값과 비교를 통해 정상적으로 복사, 다운로드가 되었는지 

혹은 외부사용자에 의해 변조 된 부분은 없는지 검사가 가능하다.



= 참고 =

해시함수 : https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98 

MD5 : https://ko.wikipedia.org/wiki/MD5

SHA : https://ko.wikipedia.org/wiki/SHA 

저작자표시 비영리 (새창열림)

'전공관련 > 기타 etc.' 카테고리의 다른 글

[vscode] list를 이용한 extention 백업 및 복구  (0) 2024.10.02
[pycharm] ctrl + 휠로 폰트 크기를 조절하자  (0) 2023.01.10
HOG Feature / Descriptor  (1) 2014.12.10
[LibSVM] libsvm을 이용한 2-class classifier (3) - Optimal parameter를 찾고 자동으로 학습하자!  (14) 2014.02.14
[LibSVM] libsvm을 이용한 2-class classifier (2) - Training/Test (exe파일 이용)  (14) 2014.02.13
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

카테고리

  • 살다보니.. (451)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (121)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (61)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • portugal
  • DSLR
  • SVM
  • 일본
  • DeepLearning
  • 스마트체험단
  • function
  • 매트랩 함수
  • review
  • 후쿠오카
  • utility
  • LIBSVM
  • 크롬
  • Computer Tip
  • 큐슈
  • ColorMeRad
  • CStdioFile
  • ReadString
  • 오봉자싸롱
  • 칼로리 대폭발
  • Convolutional Neural Networks
  • 딥러닝
  • matlab function
  • 매트랩
  • 포르투갈
  • 에누리닷컴
  • Deep Learning
  • random variable
  • 갤럭시노트3
  • matlab

달력

«   2026/04   »
일 월 화 수 목 금 토
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
04-27 22:49

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바