일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 게임 개발
- unity
- 게임개발
- gameplay ability system
- ability task
- Replication
- UI
- rpc
- os
- network object pooling
- 보안
- CTF
- map design
- nanite
- 언리얼엔진
- listen server
- animation
- gas
- 유니티
- Unreal Engine
- gameplay tag
- gameplay effect
- Aegis
- Multiplay
- attribute
- stride
- local prediction
- 언리얼 엔진
- MAC
- photon fusion2
- Today
- Total
Replicated
암호학적 해시 함수(Cryptographic Hash Function), MAC(Message Authentication Code) - HMAC, CMAC 본문
암호학적 해시 함수(Cryptographic Hash Function), MAC(Message Authentication Code) - HMAC, CMAC
라구넹 2025. 4. 19. 19:32해시 함수
- 가변 길이 입력 -> 고정 길이 출력
- 적은 입력 값 변화 -> 완전히 다른 출력값
- 단방향 함수 (One-way function)
빠른 검색을 위한 인덱싱으로 사용
- 충돌 가능성 있음
- Chaining 기법으로 보완
파일 무결성 검증에 사용
암호학적 해시 함수
h(M) = y
- 암호학적 해시 함수 h에 M을 입력하면 해시 값 y 출력
- 부분적 병렬 처리 가능
특성
- 역상 저항성
- 해시 값 y를 이용해 입력 값 M 계산 불가
- == h(M) = y인 y가 주어졌을 때 M을 도출하기 어려움
- 제2 역상 저항성
- 입력값 M, 해시값 y를 이용해 동일한 해시값 y를 출력하는 입력값 M'을 계산할 수 없음
- == h(M) = y일때 동일한 해시값 y를 갖는 M'을 도출하기 어려움
- 충돌 저항성
- 동일한 해시값 y를 갖는 서로 다른 입력 값 2개(M, M')를 계산할 수 없음
- == 동일한 해시 값을 갖는 임의의 서로 다른 입력값을 도출하기 어려움
범위
역상 저항성 > 제2 역상 저항성 > 충돌 저항성
암호학적 해시함수 용도
패스워드 저장
- 솔트값 더해서 해시 돌려서 저장하기
메시지(데이터) 무결성
- MDC(Modification Detection Code), 메시지 해시 돌리고 변조에 강한 채널로 전송.. * 키 안 씀
MAC (Message Authentication Code)
- 메시지에 대한 무결성 강화(변조확인)
- 비밀키와 메시지 M을 이용하여 고정 길이 인증값을 출력
- 수신자와 송신자가 소유한 비밀키를 사용
- 메시지 인증 -> 송신자 확인 가능
HMAC(Hash based MAC)
- 암호학적 해시 함수 기반의 MAC
- 2번의 해시 연산 수행
* n: HMAC의 크기
1. 비밀키 준비
- 최소 n비트 이상 (해시함수 출력 길이)
- 키가 해시 블록 크기(b비트)보다 짧으면 패딩
2. ipad, opad
ipad = 00110110 시퀀스 (0x36을 b 바이트만큼 반복)
opad = 01011100 시퀀스 (0x5C를 b 바이트만큼 반복)
3. 연산
1. 내부 해시
Inner = H( (K ⊕ ipad) || M )
- b비트 패딩된 키랑 ipad XOR하고, 메시지 앞에다가 붙이고, 해시
2. 외부 해시
HMAC(K, M) = H( (K ⊕ opad) || Inner )
- inner 결과(intermediate HMAC)를 b비트로 패딩
- b비트 패딩된 키랑 opad XOR, inner결과 이어붙이고, 해시
- n비트짜리 해시 결과
CMAC (Ciper based MAC)
- 블록 암호 기반의 MAC
- 블록암호 CBC와 유사
- 각 메시지 블록마다 이전 암호문 XOR하고 키를 써서 인크립션
- 왼쪽부터 n비트 선택 -> n-bit CMAC
'소프트웨어 보안개발방법론' 카테고리의 다른 글
안전한 데이터 전송 (0) | 2025.04.19 |
---|---|
AE, AEAD / (Authenticated Encryption, Authenticated Encryption with Associated Data) (0) | 2025.04.19 |
Hybrid Cryptography (0) | 2025.04.19 |
공개키(비대칭키) 암호 - Public Key Cryptography (0) | 2025.04.19 |
비밀키(대칭키) 암호 - Symmetric Key Cryptography (0) | 2025.04.19 |