해시함수
- 해시함수는 임이의 길이를 갖는 메시지를 입력받아 고정된 길이의 해시값을 출력하는 함수이다.
- 해시 함수를 사용하는 목적은 메시지의 오류나 변조를 탐기 위해, 즉 데이터의 무결성을 제공하기 위해 사용한다.
해시 함수의 특징
- 어떤 입력 값에도 항상 고정된 길이의 해시값을 출력한다.
- 눈사태 효과 : 입력 값의 아주 일부만 변경되어도 전혀 다른 결과 값을 출력한다.
- 출력된 결과 값을 토대로 입력값을 유추할 수 없다.
SHA(Secure Hash Algorithm)
해시(Hash)의 종류에는 MD 알고리즘 및 SHA 알고리즘이 있습니다. 이번 포스팅에서는 비트코인에서 사용되는 알고리즘인 SHA256 함수에 대해서 알아보도록 하겠습니다.
SHA(Secure Hash Algorithm)알고리즘은 미국 NSA에 의해 만들어졌습니다. 160비트의 값을 생성하는 해시 함수로, MD4가 발전한 형태입니다. MD5보다 조금 느리지만 좀 더 안전한 것으로 알려져 있으며, SHA에 입력하는 데이터는 512비트 크기의 블록이며 알고리즘의 동작원리는 아래 그림과 같습니다.
SHA 알고리즘은 크게 SHA-1과 SHA-2로 나눌 수 있으며 종류에 따른 성능은 아래의 표와 같습니다.
SHA-1은 안드로이드 인증서명에도 사용되며 160비트를 16진수의 수(4비트씩)들로 표현하면 40글자가 되겠네 ?
ex)256은 그러면 64글자
http://www.convertstring.com/ko/Hash/SHA256
-일정한 길이를 반환해 준다
'Computing > Algorythm' 카테고리의 다른 글
합의 알고리즘 (0) | 2019.07.19 |
---|---|
결정론적 알고리즘 (0) | 2019.07.19 |
동적프로그래밍 vs Memoization (0) | 2018.12.18 |
Sequence Alignment Algorithm (0) | 2018.12.18 |
Ford Fulkerson Algorithm (0) | 2018.12.18 |