Information Security/Info.Security

해쉬 알고리즘, SHA

petitCoding 2012. 4. 12. 10:59

SHA (Secure Hash Algorithm)

 

대표적인 해시 알고리즘으로 미국에서 개발되었다.

초기에 SHA-0으로 시작해서 SHA-1, SHA-256, SHA-224 등이 개발되었고,

SHA-1은 이 SHA함수들 중에서 가장 많이 쓰인다.

이 SHA 알고리즘은 보통 TLS/SSL등과 같은 보안 통신에서 메시지의 무결성을 검증하기 위해 사용되며,

비슷한 알고리즘으로 MD5가 있다.

 

또한 이 해시함수는 비밀번호와 같이 단방향으로 암호화 해야 할 경우에도 요긴하게 사용된다.

 

Openssl 라이브러리에서 이 SHA 알고리즘을 볼 수 있는데, 이 함수의 모습은 다음과 같다.

 

 

unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md);

 

또는

 

int SHA_Init(SHA_CTX *c);
int SHA_Update(SHA_CTX *c, const void *data, size_t len);
int SHA_Final(unsigned char *md, SHA_CTX *c);

 

 

 

간단하게 짜본 비밀번호 해싱 프로그램 (openssl 을 사용)

- openssl의 sha.h 파일 참조

- libcrypto.so 라이브러리 사용

- Openssl Version 1.0.0

 

#include <openssl/sha.h>

char *passwd, *out;

passwd = malloc(128);

out = malloc(32);

printf("input your PW : ");
scanf("%s", passwd);

SHA256(passwd, strlen(passwd), out);

 

> gcc -o test test.c -lcrypto

 

해시함수에 대한 자세한 내용은

 

여기를 클릭

 

 

 

 

반응형

'Information Security > Info.Security' 카테고리의 다른 글

Asterisk 1.6 - TLS 설정하기  (0) 2012.04.16
Openssl - Cipher 고르기  (0) 2012.04.12
ARP & ARP Spoffing  (0) 2012.04.12
Information Classification  (0) 2012.04.12
The big three  (0) 2012.04.12