Ads
巴打睇緊邊本書? 我都想買返本睇下 :^(
bitcoin and cryptocurrency technology
mastering bitcoin
Thanks :^(
如果想學埋數學,就唔係睇cryptocurrency既書啦
要睇Forouzan既Cryptography and Network Security
咁要符合咩條件先可以叫做cryptographic hash function呢?
0. 要好快就計得到
當然唔係講緊人肉可以好快計到,而係電腦可以好快計到
一部家用電腦閒閒得一秒鐘可以計到2000萬次SHA256
如果用埋GPU行parallel processing仲可以一秒幾億次
1. 你估我唔到(hiding / pre-image resistance)
你比個hash function output我,我係無好快既方法估到你個input係乜。
換句話講呢個係1-way function. 所有有inverse既function 都唔係1-way function
例如sin, cos, tan就唔係1-way, 因為有時機都唔洗禁就知input係咩
sin(x) = 1
=> x = pi/2
如果果個係cryptographic hash function
SHA256(x)=7d1a54127b222502f5b79b5fb0803061152a44f92b37e23c6527baf665d4da9a
咁x=咩呢???
如果我唔開估既話,你係好難好難好難搵得到個x係"abcdefg"
因為SHA256既inverse function係無closed form, 甚至連approximation既close form都無
如果真係要估,唯一方法就即係暴力破解,由0開始逐個逐個慢慢試。
2. 防撞(collision resistance)
就算好似連登仔咁高智商,都搵唔到兩個唔同input,經過hash function計算後得出同一個output
留意我係話「連登仔都搵唔到」,唔係話呢D inputs唔存在。
事實上呢D inputs一定存在。
用一個簡單既例子(Birthday Problem): 你有無可能起你既facebook friend list入面搵到兩個人係同一日出世?一定有可能。
一年最多得365日(唔計潤年),假設你有365個朋友,可能真係咁「橋」你366個朋友都係唔同日子出世。
但係如果你有366個朋友,咁就肯肯定,至少有其中兩個人既生日日期一樣。
同樣道理
SHA256既output係256bits, 即係話佢既可能既output數只有2^256個。
(每個bit只可以係1或者0 兩個可能性, 有256個位,所以係2^256)
只要你有恆心試下2^256+1咁多個input, 就肯定搵到其中兩個inputs會得出同一個output
因為好重要,所以要重覆多一次:導致SHA256 output一樣既inputs一定存在,問題係搵唔搵得到/有無快既方法搵得到。
SHA256面世到而家都未有人搵到唔同input但係一樣output既case
因為output數量實在太多
2^256大約等於10^77, 而呢個世界上見得到既atom數都只不過係10^80
你想挑戰一下既話,可以去http://passwordsgenerator.net/sha256-hash-generator/
試下入唔同既string,睇下SHA256既output
如果你真係咁犀利搵到兩條唔同string ,得出黎既SHA256 output係一樣,請通知一聲,呢個發現夠你揚名立萬
Ads
皮已正
btw有無睇過呢兩段片?
同樣正到出汁
Ever wonder how Bitcoin (and other cryptocurrencies) actually work?
https://www.youtube.com/watch?v=bBC-nXj3Ng4
How secure is 256 bit security?
https://www.youtube.com/watch?v=S9JGmA5_unY
睇過第一條 同樣地深入淺出
不過樓主解釋多啲,幫助多好多
Ads
我就係想講依樣野