[CS] 해시 알고리즘 (Hash Algorithm)

2024. 11. 26. 18:56·CS
728x90
728x90

해시 알고리즘

  - 임의의 길이를 가진 입력 값을 고정된 길이의 해시 값 또는 해시 코드로 변환하는 함수
  - 결과 값의 길이가 고정되어 있음
  - 해시 값은 입력 값에 대해 고유 식별자 역할을 함
     ※ 단, 충돌 가능성이 존재하기 때문에 완벽한 고유성을 보장하지 않으나, 이러한 충돌이 발생한 확률은 매우 낮도록 설계됨
  - 일방향성 (One-way Property)
     : 해시 값을 통해 원 입력 값을 역으로 추론하는 것이 거의 불가능함
  - 계산 속도 빠름
 
 


MD5 (Message Digest 5)

  - 길이 : 128비트
  - SHA에 비해 충돌 공격에 취약함
     → 현재는 보안에 민감한 애플리케이션에 사용하지 않음
     ※ 충돌 공격
        : 두 개의 서로 다른 입력 값이 같은 해시 값을 만들어 내는 공격
  - 길이 : 128비트
 

SHA (Secure Hash Algorithm)

  i. SHA-1
     · 길이 : 160비트
     · 보안성이 약화되어 더 이상 권장되지 않음
  ii. SHA-2
     · 현재 가장 널리 사용됨
     · SHA-256 : 256비트 / 블록체인 및 보안 인증서에서 많이 사용됨
     · SHA-512 : 512비트 / 데이터 저장 시 높은 보안성이 요구될 때 사용됨
  iii. SHA-3
     · 가장 최신 버전
     · 강력한 충돌 저항성과 보안성 제공
 

bcrypt

  - 비밀번호 저장에 특화된 해싱 함수
  - 기존 시스템과의 호환성이 뛰어남
  - CPU 공격 방어
  - 고유한 랜덤 데이터(Salt)를 추가하여, 동일한 비밀번호라도 다른 해시 값을 생성함

     → 레인보우 테이블 공격 방어

          : 해시 값을 역추적하여 원래의 입력 값을 알아내는 것

  - 슬로우 해싱 (Slow Hashing)

     : 의도적으로 연산을 느리게 만듦

        → 공격자가 대량의 해시를 빠르게 계산하지 못하도록 함

  - 비용 인자 설정 가능

     : 하드웨어 성능이 개선되더라도, 해싱 과정을 의도적으로 느리게 만들 수 있음

        → 브루트 포스 공격 방어

             : 가능한 모든 입력 값을 하나씩 대입하여 비밀번호를 찾아내는 것

 

scrypt

  - 비밀번호 저장에 특화된 해싱 함수
  - 병렬 공격 방어
  - bcrypt에 비해 보안성이 높음
  - GPU/ASIC 공격 방어
 
 
 

320x100
반응형

'CS' 카테고리의 다른 글

[CS] CI/CD  (3) 2024.11.27
[CS] 웹 보안(Web Security)과 주요 취약점  (0) 2024.11.25
[CS] 캐싱 유형  (0) 2024.11.24
[CS] 백엔드 개발자 로드맵 따라가기 (진행중)  (0) 2024.11.23
[CS] 캐싱 전략  (0) 2024.11.21
'CS' 카테고리의 다른 글
  • [CS] CI/CD
  • [CS] 웹 보안(Web Security)과 주요 취약점
  • [CS] 캐싱 유형
  • [CS] 백엔드 개발자 로드맵 따라가기 (진행중)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    Hotkeys
    jsp
    SEO
    SQL
    cs
    tailwindcss
    http
    Swing
    SWAGGER
    Android
    C#
    zapier
    오블완
    개발일지
    CSS
    java
    면접
    Wordpress
    티스토리챌린지
    jQuery
    Codeigniter
    SpringBoot
    errorNote
    HTML
    vuejs
    git
    php
    js
    typeScript
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[CS] 해시 알고리즘 (Hash Algorithm)
상단으로

티스토리툴바