티스토리 뷰

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 PropertyCollison-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.

Steps to create HMAC

  · CMAC(Cipher-based Message Authentication Code)

    : AES를 기반으로 설계.

    : Symmetric Key를 사용한 알고리즘.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함