雜湊函式
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