티스토리 뷰

Etc.

SHA 암호화

skim88 2024. 12. 9. 09:00
반응형
SHA 암호화
SHA 암호화

 

로그인 후 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
반응형