티스토리 뷰
반응형

로그인 후 Session 유지 및 검증을 할때 JWT를 많이 활용한다. JWT 생성 시 특정 값을 암호화하여 사용하는데 암호화 함수 중 SHA에 대해 정리해본다.
SHA 암호화
일련의 해시 함수들을 가리키는 암호화 알고리즘 패밀리. 주로 메시지나 데이터의 무결성을 확인하는 데 사용. 여러 버전이 존재하며, 각 버전은 출력 해시 길이에 따라 구분다.
ex) SHA-1, SHA-256, SHA-3
SHA 암호화 Process
1. 입력 메시지 준비: 암호화하려는 데이터 또는 메시지를 준비한다.
2. 패딩 (Padding):입력 메시지의 길이를 일정한 블록 크기로 맞추기 위해 패딩을 추가한다.
3. 메시지 스케줄링 (Message Scheduling): 입력 메시지를 블록 단위로 나누어 처리한다.
4. 압축 함수 (Compression Function): 각 블록을 처리하여 이전 블록의 해시 값을 사용하여 새로운 해시 값을 생성한다.
5. 최종 해시 값 출력: 모든 블록을 처리하면 최종적인 해시 값이 출력된다.
SHA 암호화 함수 종류
주요 차이점은 해시 길이와 보안 강도이다
1. SHA-1
- 해시 길이: 160 비트 (20 바이트)
- 주로 사용되지 않는 추세이며, 취약점이 발견되었다. 충돌 공격에 취약하다는 문제가 있어, 현재는 보안 목적으로 권장되지 않는다.
2. SHA-256
- 해시 길이: 256 비트 (32 바이트)
- 현재까지는 안전하다고 여겨지는 해시 함수 중 하나. 블록체인 기술에서는 주로 SHA-256이 쓰인다.
3. SHA-512
- 해시 길이: 512 비트 (64 바이트)
- 더 긴 해시 길이를 가지며, 더 강력한 보안을 제공할 수 있다. 계산 비용이 더 높다는 단점이 있다. 높은 보안 수준이 필요할 때 SHA-512을 사용할 수 있다.
일반적으로 보안 강도는 해시 함수의 출력 길이와 직접 관련이 있다.
더 긴 해시는 충돌 공격에 대한 저항력이 높아지며, 더 안전해진다.
더 긴 해시를 생성하는 데는 더 많은 계산 비용이 들 수 있다.
반응형
'Etc.' 카테고리의 다른 글
git이 고장났을때 (1) | 2024.12.11 |
---|---|
잘 안알려진 Visual Studio Code 단축키 (0) | 2024.12.10 |
VSCode에서 새창 코드의 언어 설정하기 (0) | 2024.12.05 |
SOLID 원칙이란? (1) | 2024.12.01 |
Visual Studio Code Snippet (for React) (0) | 2024.11.30 |
- Total
- Today
- Yesterday
반응형