Linux Crypto 엔 hash 알고리즘 모듈이 들어가 있습니다.
1. HASH 란 무엇인가?
HASH 란 결정형(Deterministic procedure) 단방향 알고리즘입니다.
풀어서 설명하면 어떤 데이터가 있는데 이 데이터의 결과값의 크기는 항상 지정된 크기로 나오게 되고 한번 Hash 과정을 거치면 원래 데이터가 무엇이었는지를 역으로 풀어 볼 수가 없다는 뜻입니다.
HASH 알고리즘 중에 MD5 를 예를 들면
출력 크기 : 128bit(16Byte)
원본 데이터 : "MKKIM_BABO"
출력 데이터 : "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\x09\x98\xec\xf8\x42\x7e"(여기서 '\x' 는 구분자 이므로 실제 데이터는d41d8cd98f00b204e9800998ecf8427e" 입니다.)
로 나오다고 가정할 때, 입력 데이터의 크기에 상관 없이 출력 데이터의 길이는 무조건 128bit(16Byte) 이고 출력 데이터를 바탕으로 원본 데이터인 "MKKIM_BABO" 를 역추적할 수가 없습니다.
Hash 는 암호화가 아닙니다. 암호화는 암호/복호가 가능해야 하는데 hash 는 복호가 불가능합니다.
그러므로 보내진 데이터가 오염없이 정상적인 데이터인지를 확인하는 용도로 사용된다고 보면 됩니다.
1. HASH 란 무엇인가?
HASH 란 결정형(Deterministic procedure) 단방향 알고리즘입니다.
풀어서 설명하면 어떤 데이터가 있는데 이 데이터의 결과값의 크기는 항상 지정된 크기로 나오게 되고 한번 Hash 과정을 거치면 원래 데이터가 무엇이었는지를 역으로 풀어 볼 수가 없다는 뜻입니다.
HASH 알고리즘 중에 MD5 를 예를 들면
출력 크기 : 128bit(16Byte)
원본 데이터 : "MKKIM_BABO"
출력 데이터 : "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\x09\x98\xec\xf8\x42\x7e"(여기서 '\x' 는 구분자 이므로 실제 데이터는d41d8cd98f00b204e9800998ecf8427e" 입니다.)
로 나오다고 가정할 때, 입력 데이터의 크기에 상관 없이 출력 데이터의 길이는 무조건 128bit(16Byte) 이고 출력 데이터를 바탕으로 원본 데이터인 "MKKIM_BABO" 를 역추적할 수가 없습니다.
Hash 는 암호화가 아닙니다. 암호화는 암호/복호가 가능해야 하는데 hash 는 복호가 불가능합니다.
그러므로 보내진 데이터가 오염없이 정상적인 데이터인지를 확인하는 용도로 사용된다고 보면 됩니다.
'development' 카테고리의 다른 글
[crypto] Async MD5 example (0) | 2011.10.17 |
---|---|
[crypto] 설치된 암호화 알고리즘 블럭의 목록을 확인해 보려면? (0) | 2011.10.13 |
[kernel] 동기화 기능. completion() (0) | 2011.10.10 |
[crypto] ASync crypto 와 Sync crypto api 함수명 특징 (0) | 2011.10.10 |
[linux_kernel] scatterlist example (0) | 2011.09.27 |