雜湊函式

Hash Function

Index

What is Hash?

性質與應用

Examples

What is Hash?

What is Hash?

8ae0ba66

What is Hash?

雜湊函式(英語:Hash function)又稱雜湊演算法,是一種從任何一種資料中建立小的數字「指紋」的方法。雜湊函式把訊息或資料計算成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立一個叫做雜湊值(又叫雜湊值)(hash values,hash codes,hash sums,或hashes)的指紋。 --Wikipedia

What is Hash?

  • 輸入資料
  • 處理
  • 輸出
  • 好的雜湊演算法不能逆推!

What is Hash?

8ae0ba66

What is Hash?

input

hash sum

性質與應用

性質與應用

承諾、指紋、識別

性質

  • 確定性
    • 雜湊值不同,輸入不同
  • 不可逆性
    • 暴力破解?

應用

  • 檢驗資訊正確性
  • 識別機密資料
  • 提高處理效能

應用

漏洞?

Hash Collision

  • 不同輸入、相同雜湊值
  • 輸出有限,理論上一定有機會碰撞
  • 影響功能

Hash Collision

  • SHAttered.io
  • 已知的SHA-1碰撞
  • 比暴力破解快很多(100,000)
  • 代表SHA-1理論上被攻破

Chosen-Prefix Collision

  • 任意兩個給定的p1和p2
  • 攻擊的演算法可以算出 m1 與 m2
  • hash(p1//m1) == hash(p2//m2)

Chosen-Prefix Collision

  • shattered.io:是 identicial-prefix,實際上的用途沒那麼大
  • chosen-prefix有較強的實際用途
  • 可用於製造假的 SSL 網站安全憑證

Examples

Examples

名稱 輸出長度
MD4 128bits 已淘汰
MD5 128bits 不安全
SHA-0 160bits 立刻被取代
SHA-1 160bits 不安全
SHA-2系列* 224~512bits 安全
SHA-3系列(Keccak) 可變(常見256bits) 安全
BLAKE2 可指定 安全、高速
Whirlpool 512bits 安全但不普及

*SHA-224, SHA-256, SHA-384, SHA-512等

感謝聆聽

Code

By Claire Pan

Code

  • 22