Lecture 1.1 1.2
作者: bao_zijian@163.com Cryptographic Hash Functions 性質: 1.collision free nobody can find x and y sun that x!=y and H(x)=H(y) 應用:if H(x)=H(y) then x=y.這裡H(x)和H(y)只有236bits,所以很節約空間。 2.Hiding given H(x),it is infeasible to find x. 3.謎題友好(比特幣需要的性質) 如果對於任意n位輸出值y,假定k選自高階最小熵分布,如果無法找到一個可行的方法,在比2的n次方小很多的時間內找到x,保證H(k||x)=y 成立,那麼我們稱雜湊函數H為謎題友好。
Lecture 1.3 作者: bao_zijian@163.com Hash pointers and authenticated data structures
key idea: 1. Take any pointer-based data structure 2. Replace pointers with cryptographic hashes
Modifications to any block will propagate forever
Merkle tree: binary tree with hash pointers
Lecutre 1.4 作者: bao_zijian@163.com Digital Signatures
1.( sk, pk) := genKey(keysize) sk: secret signing key pk: public verification key 2.sig := sign( sk, message) 3.isValid := verify( pk, message, sig) 其中 1.2.can be randomized algorithms,我理解的是1這個產生密鑰是一個隨機的演算法,sign也是一個隨機演算法。
要求 1.correctness sk, pk = genKey(keysize)→verify(pk, message, sign(sk, message)) == true 2.unforgeability (EUF-CMA security) adversary given pk may adaptively query oracle for sign(mi) cannot output a valid signature pair (σ, m’) for any new message m’
Lecture 1.5 作者: bao_zijian@163.com
public key is an identity Anybody can get an identity with genKey Collisions statistically negligible To “speak” as pk, sign using sk Keys are pseudonyms 這裡有一篇比較好的部落格介紹: http://blog.csdn.net/qishuo_java/article/details/48137989