컴퓨터과학 (CS)/Computer Security

[컴퓨터 λ³΄μ•ˆ] ν•΄μ‹œν•¨μˆ˜ (μ •μ˜, 효과, μš©λ„, μ’…λ₯˜, κ΅¬ν˜„, 약점)

희은w 2020. 4. 8. 08:20

일방ν–₯ ν•΄μ‹œν•¨μˆ˜

μ •μ˜

ν•΄μ‹œν•¨μˆ˜ 쀑 역상저항성, 제2역상저항성, μΆ©λŒμ €ν•­μ„±μ„ 가지고 μžˆλŠ” ν•¨μˆ˜

  • ν•΄μ‹œν•¨μˆ˜ : μž„μ˜ 길이의 메세지λ₯Ό 일정 κ³ μ • 길이의 해쉬 κ°’μœΌλ‘œ λ³€ν™˜μ‹œμΌœμ£ΌλŠ” 단방ν–₯μ„± ν•¨μˆ˜/μ•Œκ³ λ¦¬μ¦˜

  • 역상 μ €ν•­μ„±(preimage resistance) : 제 1 역상 곡격에 λŒ€ν•˜μ—¬ μ•ˆμ „ν•œ 것

    제 1 역상 곡격 : ν•΄μ‹œκ°’μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, κ·Έ ν•΄μ‹œκ°’μ„ 좜λ ₯ν•˜λŠ” μž…λ ₯값을 μ°ΎλŠ” 곡격

    단방ν–₯ μ•”ν˜Έν™”μ™€ κ΄€λ ¨ 있음

  • 단방ν–₯ μ•”ν˜Έν™” : A => f => B (μ•”ν˜Έν™”) A <= f^(-1) <= B (λ³΅ν˜Έν™”) f의 μ—­ν•¨μˆ˜λ₯Ό ꡬ할 수 μ—†μ–΄μ„œ λ‹€μ‹œ A둜 μ—­μ‚°(λ³΅ν˜Έν™”)ν•  수 μ—†λŠ” μ•”ν˜Έν™”
  • 제 2 역상 μ €ν•­μ„±(second preimage resistance) : 제 2 역상 곡격에 λŒ€ν•˜μ—¬ μ•ˆμ „ν•œ 것

    제 2 역상 곡격 : μž…λ ₯값이 μ£Όμ–΄μ Έ μžˆμ„ λ•Œ, κ·Έ μž…λ ₯κ³Ό 같은 ν•΄μ‹œκ°’μ„ 좜λ ₯ν•˜λŠ” λ‹€λ₯Έ μž…λ ₯값을 μ°ΎλŠ” 곡격

  • 좩돌 μ €ν•­μ„±(collision resistance) : ν•΄μ‹œ μΆ©λŒμ— λŒ€ν•΄ μ•ˆμ „ ν•œ 것

    M2 ≠ M1 일 λ•Œ, H(M1) = H(M2) 인 M1κ³Ό M2인 μŒμ„ μ°ΎκΈ° 어렀움

    ν•΄μ‹œ 좩돌 곡격 (birthday attack) : ν•΄μ‹œ ν•¨μˆ˜μ˜ 좜λ ₯값이 κ³ μ •λ˜μ–΄ μžˆμ§€ μ•Šκ³ , ν•΄μ‹œ 좩돌이 μΌμ–΄λ‚˜λŠ” 두 μž…λ ₯값을 μ°ΎλŠ” 곡격

효과

  • μ••μΆ• 효과

    ν•΄μ‹œ ν•¨μˆ˜κ°€ λ°˜ν™˜ν•˜λŠ” μž‘μ€ ν•΄μ‹œκ°’λ§ŒμœΌλ‘œλ„ κ±°λŒ€ν•œ 크기의 데이터 무결성을 보μž₯ν•  수 μžˆλŠ” 효과

    ex_) SHA-256은 100GB의 파일 무결성을 256bit의 ν•΄μ‹œκ°’μœΌλ‘œ 보μž₯ν•  수 μžˆλ‹€κ³  함

  • λˆˆμ‚¬νƒœ 효과

    μ•„μ£Ό μž‘μ€ λ³€ν™”λ‘œλ„ 결과값이 μ „ν˜€ λ‹€λ₯΄κ²Œ λ„μΆœλ˜λŠ” 효과

    λ˜ν•œ λ³€κ²½λ˜λŠ” 뢀뢄에 μžˆμ–΄ μ–΄λ– ν•œ κ·œμΉ™μ„±λ„ 찾을 수 μ—†μŒ

μš©λ„

  1. μ •λ³΄μ˜ 무결성 확인

    μžμ‹ μ΄ 받은 μ•”ν˜Έν™”μ˜ 결과에 결손이 μ˜μ‹¬λœλ‹€λ©΄?

    곡개된 ν•΄μ‹œκ°’κ³Ό 검사합(Checksum)을 λΉ„κ΅ν•˜λ©΄ 검증할 수 있음

    ν•΄μ‹œ 값을 λ°μ΄ν„°μ˜ μ§€λ¬Έμ²˜λŸΌ ν™œμš©ν•˜λŠ” 경우

  2. μ•”ν˜Έ μ €μž₯

    μ•”ν˜Έ μ €μž₯ μ‹œ κ·ΈλŒ€λ‘œ μ €μž₯ν•˜μ§€ μ•Šκ³  ν•΄μ‹œν•¨μˆ˜λ‘œ μ•”ν˜Έν™”ν•˜μ—¬ μ €μž₯ν•΄μ•Ό DBκ°€ λ…ΈμΆœλ˜μ–΄λ„ μ•”ν˜Έκ°€ λ…ΈμΆœλ˜μ§€ μ•ŠμŒ

  3. ν•΄μ‹œν…Œμ΄λΈ”μ—μ„œμ˜ ν™œμš©

    데이터 λͺ©λ‘μ—μ„œ νŠΉμ • 데이터λ₯Ό μ‘°νšŒν•  λ•Œ, ν‚€ κ°’μœΌλ‘œ 탐색 λ²”μœ„λ₯Ό 쀄일 수 있음

ex_) OTP, 메세지 인증 μ½”λ“œ, ...

μ’…λ₯˜

  • μ•”ν˜Έν•™μ  ν•΄μ‹œν•¨μˆ˜
    • MD5 계열
    • SHA 계열
      • SHA-1
      • SHA-2
  • λΉ„μ•”ν˜Έν•™μ  ν•΄μ‹œν•¨μˆ˜

MD5

: Message-Digest algorithm

128bit 값을 μƒμ„±ν•˜λŠ” ν•΄μ‹œ ν•¨μˆ˜

SHA2

: Secure Hash Algorithm

SHA-0은 λ―Έκ΅­ NSA에 μ˜ν•΄ λ§Œλ“€μ–΄μ§

160bit 값을 μƒμ„±ν•˜λŠ” ν•΄μ‹œ ν•¨μˆ˜

SHA-0κ³Ό SHA-1에 λŒ€ν•œ 곡격은 이미 λ°œκ²¬λ˜μ—ˆμŒ

SHA-2에 λŒ€ν•œ 곡격은 아직 λ°œκ²¬λ˜μ§€ μ•Šμ•˜μŒ

κ΅¬ν˜„

  • λ‚˜λˆ—μ…ˆ 법 : h(k) = k mod m
  • κ³±μ…ˆλ²„
  • μœ λ‹ˆλ²„μ„€ 해싱법

약점

  1. μ—­μ‚° 말고도 원본 값을 μ•Œμ•„λ‚΄λŠ” 방법은 λ‹€μ–‘ν•˜λ‹€.
  • λ°©λŒ€ν•œ 경우의 수λ₯Ό μ‚¬μ „μ˜ ν˜•νƒœλ‘œ λ§Œλ“  ν›„ λŒ€μ‘°ν•΄λ³΄λŠ” 방식 (Rainbow attack)

  • μž„μ˜μ˜ 수λ₯Ό λ¬΄μ°¨λ³„μ μœΌλ‘œ λŒ€μž…ν•˜μ—¬ μ°Ύμ•„λ‚΄λŠ” 방법 (Brute-force attack)

  • μ•”ν˜Έ μ²΄κ³„μ˜ 물리적인 κ΅¬ν˜„ κ³Όμ •μ˜ 정보λ₯Ό 기반으둜 ν•˜λŠ” 곡격 방법 (side channel attack)

    • μ†Œμš” μ‹œκ°„ 뢄석
    • μ „λ ₯ λͺ¨λ‹ˆν„°λ§ 곡격
    • μ „μžκΈ°νŒŒ 곡격
    • μŒμ„± μ•”ν˜Έ 해독
    • μ°¨λΆ„ 였λ₯˜ 뢄석
    • μž”μ‘΄ 데이터
    • 둜우 ν•΄λ¨Έ 곡격
  1. 좩돌 쌍의 쑴재

    SHA-1도 좩돌 쌍이 λ“œλŸ¬λ‚œ 적이 있음

    λΉ„λ‘˜κΈ° μ§‘μ˜ 원리에 μ˜ν•΄ μž…λ ₯보닀 좜λ ₯이 μž‘μ€ 값이라면 좩돌 쌍이 λ‚˜νƒ€λ‚  수 밖에 μ—†λ‹€.

    ν•˜μ§€λ§Œ μ΄λŸ¬ν•œ 좩돌쌍의 경우λ₯Ό λ„μΆœν•˜λ €λ©΄ μ–΄λ§ˆμ–΄λ§ˆν•œ κ°€μΉ˜μ˜ 경제적 λΉ„μš©μ΄ λ“€κΈ° λ•Œλ¬Έμ—, κ·Έλ ‡κ²Œ λ¬Έμ œκ°€ λ˜μ§€λŠ” μ•ŠλŠ”λ‹€κ³  ν•œλ‹€.

μ°Έκ³  : http://www.ktword.co.kr/word/abbr_view.php?m_temp1=1211

https://velog.io/@zuyonze/%ED%95%B4%EC%8B%9C%ED%95%A8%EC%88%98%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0

https://hsp1116.tistory.com/35

https://steemit.com/kr/@yahweh87/2

λ°˜μ‘ν˜•