Hash function

hong·2022년 10월 16일
0

22 정보보호

목록 보기
4/8

🔎 Cryptographic hash function

  • 속도 빠름
  • message digest function: 메세지 요약 (256bit)
  • one-way function: m→h(m) 단방향 암호화
  • h(m) collision 많지만, h(m)이 동일한 두 메세지를 찾는 것 어려움

🔎 Message Authentication Code(MAC)

  • 데이터가 변조되었는지 검증할 수 있도록 데이터에 덧붙이는 코드
  • 무결성 제공
  • 일부 메세지에 대한 고정된 크기의 인증자
  • hash function 기반 (메세지와 키 사용) → 넓리 사용 가능. 속도 빠름
    H(key|m)의 취약점을 보안하여 H(m|key) HMAC 개발

👉 역할
→ 메세지 무결성 보호
→ 발신자 ID 확인
→ 부인 봉쇄


🔎 One Time Password

hash function으로 One time password 생성 가능

✔︎ Time-synchronized

시간 동기화 이용

  1. 클라이언트-서버 비밀 키와 기기의 시리얼 넘버(s#) 공유
  2. 클라이언트와 서버 각각 H(s#||key||time)을 계산하여 일치하는지 비교하여 인증
    → 시간 느슨하게 동기화 되어야함 (동기화 시간이 너무 빠르면 인증하기 어려움)

✔︎ Hash chain (=S/Key)

다른 기술과 달리, 클라이언트만 키를 알고 있음(비대칭 개인키와 유사) → 서명 가능

  1. 클라이언트 비밀 키 S 생성
  2. 클라이언트 비밀 키 S 이용하여 f(S), f2(S), f3(S), ..., fn(S) 계산
  3. 클라이언트가 서버에게 fn(S) 공유. 서버는 전달 받은 fn(S) 저장
  4. 클라이언트 fn-1(S) 전달
  5. 서버 전달받은 f(fn-1(S))와 저장해놓은 fn(S) 일치하는지 비교하여 인증

✔︎ Challenge-response

난수 이용

  1. 클라이언트-서버 비밀 키 s 공유
  2. 클라이언트 인증 요청
  3. 서버 난수 R 생성하여 클라이언트에게 전송
  4. 클라이언트 전달 받은 R 이용하여 H(R||s) 계산. 서버에게 전송
  5. 서버 H(R||s) 계산. 클라이언트에게 전달 받은 H(R||s)와 일치하는지 비교하여 인증
profile
🐶 ☕️ 🧳

0개의 댓글