簽名:計算機與真實世界的映射----算法(程序)
數(shù)字簽名我們在理解這個概念的時候只需要注意簽名兩個字就可以了翔悠,他的本質(zhì)仍然是簽名酗宋,數(shù)字是一個修飾,就是用數(shù)字的方法實現(xiàn)現(xiàn)實世界的簽名癞蚕;
現(xiàn)實世界的簽名成功需要達成目的需要兩個條件:
1所踊,只有你可以制作你自己的簽名浊闪,但任何看到他的人都可以驗證其有效性恼布,
2,我們希望簽名只與某一特定文件發(fā)生聯(lián)系搁宾,因此該簽名不能用于表明你同意或支持另一份不同的文件折汞。
概括起來就是三個屬性:
驗證有效性,
簽名唯一性盖腿,
簽名文件排他性爽待,
這三個屬性針對的對象分別是:
簽名者,
文件翩腐,
非簽名者鸟款。
【題外話:這個事例給我一個視角就是如何通過數(shù)學方式實現(xiàn)一個現(xiàn)實問題,社會活動中抽象出活動的本質(zhì)茂卦,在本質(zhì)活動抽象出數(shù)學公式何什,也就是抽象出一個簽名活動中對象然后找出對象在活動中的本質(zhì)是為具體事務的抽象化〉攘】
算法途徑的映射
而對于數(shù)字簽名方案的數(shù)學實現(xiàn)也是通過三個算法來實現(xiàn)分別對應這簽名者处渣,簽名的文件與簽名者伶贰,簽名者、文件與非簽名者
三個算法分別對應三個算法:
(sk罐栈,pk):=generateKeys(keysize)
sig:=sign(sk,message)
isValid:=verify(pk,message,sig)
不可偽造性游戲中我認為關鍵是sig(sk黍衙,message)是否具有靠譜或者是具備某些特性或特征
同時對于簽名有效性的兩個條件分別是:
1,嘗試次數(shù)可以是一個密鑰大小的多項式函數(shù)荠诬,但是不能更多
2琅翻,當且僅當他成功偽造的機會非常小:小到我們可以假設在實踐中從不會發(fā)生
實踐中的考量:
1浅妆,很多簽名算法是隨機的望迎,因此我們需要隨機性的良好來源
2,實際問題是關于信息的大小凌外,我們是對信息的哈希值進行簽署
比特幣使用的是橢圓曲線數(shù)字簽名算法(ECDSA)是DSA算法利用了橢圓曲線的升級版本辩尊,在這個算法中要求隨機性良好來源至關重要,ECDSA要求generateKeys和sign這兩個算法都是隨機性良好康辑。
這些算法都是一種程序
身份= 地址=哈希值(pk)
通過一個程序使用同樣一個隨機性性來源生成兩個相同的256位密鑰摄欲,這個概率如此之低,在現(xiàn)實中可以忽略不計
現(xiàn)實與理論的唯一的關鍵點或者是不可控點就是良好的隨機來源疮薇。
雖然你一個人可以生成無數(shù)個pk但是胸墙,身份隱秘,行為發(fā)表的聲明無法隱秘按咒,在行為的連續(xù)性上發(fā)現(xiàn)其相似性進而找到與現(xiàn)實世界的映射關系迟隅,這也就不存在隱秘了。