티스토리 뷰
Hash Function & MAC
[ Cryptographic Hash Function ]
: 임의의 크기의 데이터를 입력으로 받아 고정된 크기의 Hash 값으로 출력하는 함수.
: H(M) = h의 형식을 지니며, H는 Hash Function, M은 Message, h는 hash code이다.
: 무결성이 보장되어 조작 여부를 알 수 있음.
: Message보다 Hash-code의 길이가 짧아 Hash Collison 문제가 발생할 수 있음.
: One-way Property와 Collison-free Property를 만족해야 함.
→ One-way Property : Message to Hash-code 한 방향으로만 이루어지며, 반대 방향으로 작동할 수 없도록 설계.
→ Collison-free Property : Collison이 생기는 값을 쉽게 알아낼 수 없도록 설계.
: Birthday Paradox에 취약함.
→ Collison이 일어날 확률에 대한 문제로, n bit를 사용한 2^n개의 bit-stream이 있다고 하면, √(2^n)개부터 충돌 가능성이 50% 이상.
→ 때문에 Hash 함수의 Output(Bit의 길이)을 충분히 크게 설정해야함.
[ SHA(Secure Hash Algorithm) ]
: 입력 데이터를 고정된 길이의 Hash 값으로 매핑하는 Hash Function의 일종.
: Collison Resistance를 만족하도록 구현됨.
: SHA-1의 경우 160 bits 길이의 Hash Value를 생성하지만, 안전하지 않아 사용이 권장되지 않음.
[ MAC(Message Authentication Code) ]
: Message의 무결성과 인증을 보장하기 위해 사용되는 Code.
: 결과로 고정 길이의 Mac Tag를 얻을 수 있음.
· HMAC(Hash-based Message Authentication Code)
: Keyed Hash Function을 이용해 MAC을 설계.
: Symmetric Key를 사용한 알고리즘.
◆ 생성 과정
1~3) Private-key의 길이를 Block Size와 맞추기
4) Step 1~3의 결과를 고정 길이의 내부 키(ipad)와 XOR 연산.
5) Step 4의 결과에 text를 뒤에 붙임.
6) Step 5의 결과를 Hashing.
7) Step 1~3의 결과를 고정 길이의 외부 키(opad)와 XOR연산.
8) Step 7의 결과 뒤에 Step 6의 결과를 붙이고, 그 뒤에 text를 붙임.
9) Step 8의 결과를 Hashing.
· CMAC(Cipher-based Message Authentication Code)
: AES를 기반으로 설계.
: Symmetric Key를 사용한 알고리즘.
'컴퓨터 공학 이론 > 컴퓨터 보안' 카테고리의 다른 글
[컴퓨터 보안] Block Chain (0) | 2023.06.08 |
---|---|
[컴퓨터 보안] Digital Signature (0) | 2023.06.08 |
[컴퓨터 보안] Other Public-Key Cryptosystems (0) | 2023.06.08 |
[컴퓨터 보안] Stream Cipher & Block Cipher (0) | 2023.04.27 |
[컴퓨터 보안] Group and Field (0) | 2023.04.27 |