打字猴:1.703864715e+09
1703864715
1703864716 待签名信息:256位
1703864717
1703864718 签名:512位
1703864719
1703864720 注意,严格来讲,虽然ECDSA只能签署256位的信息,但这存在问题,因为信息在签署之前总是已经经过哈希压缩,因此,任何大小的信息都能被有效签署。
1703864721
1703864722 使用ECDSA时,确保随机性良好来源至关重要,因为不良来源将可能导致密钥信息的泄露。这一点不难理解,如果你使用了不良随机来生成密钥,那么该密钥就可能不安全。但是ECDSA的古怪就在于,即使你仅仅只是在生成签名时使用了不良随机,而你使用的密钥完美无缺,你的个人密钥还是有可能泄露(熟悉DSA的人都知道这是DSA的古怪之处,但并不针对椭圆曲线)。接着游戏就结束了,如果你的个人密钥泄露,对手就可以伪造你的签名。因此,我们在实践中要特别注意使用良好随机来源,使用不良随机来源是安全系统的一个常见缺陷。
1703864723
1703864724 数字签名作为密码学基础,我们对其讨论就此结束。在下一节,我们将讨论对打造加密货币会带来帮助的一些数字签名应用。
1703864725
1703864726
1703864727 加密货币及加密术
1703864728
1703864729 如果你一直在期待比特币使用的加密算法,我们可能会让你失望了,比特币并没有使用任何加密术,因为并没有加密的需要。加密术只是因为现代密码学而变得可能成为众多技术中的一个,很多技术(如承诺方案)在某种程度上隐藏信息,但是与加密术有所不同。
1703864730
1703864731 [1]DSA (Digital Signature Algorithm),电子签名算法。——译者注
1703864732
1703864733 [2]TLS(Transport Layer Security),传输层安全协议,用于在两个通信应用程序之间提供保密性和数据完整性。——译者注
1703864734
1703864735
1703864736
1703864737
1703864738 区块链技术驱动金融:数字货币与智能合约技术 [:1703863910]
1703864739 区块链技术驱动金融:数字货币与智能合约技术 1.4 公钥即身份
1703864740
1703864741 让我们来看一下与数字签名并行的一个有用技巧,基本想法是从数字签名模式中拿出一个公共验证密钥,并将其与一个人或一个系统参与者的身份对等。如果你见到一条消息的签名被公钥pk正确验证,那么你可以认为pk就是在表达这条消息。你真的可以将公钥认为是参与者或者系统的一方,他可以通过签署声明而发布声明。从这个角度来说,公钥就是身份,让某人能为pk身份发声,他必须知道相应的密钥sk。
1703864742
1703864743 将公钥视为身份的一个结果是,你可以随时制定新的身份——你可以简单通过数字签名方案中的generateKeys程序,生成新的密钥对sk和pk。pk是你可以使用的新的公共身份,sk是相应的密钥,只有你自己知道并可以让你代表身份为pk发声。在实践中,你可能会使用pk的哈希作为你的身份,这是因为公钥很大。如果是这样的话,为了验证消息来自你的身份,人们会需要验证:(1)你的身份确实是pk的哈希;(2)信息能经过公钥pk验证。
1703864744
1703864745 此外,在默认情况下,你的公钥pk基本上看起来是随机的,也并没有人能够通过检查pk发现你的现实身份(当然,一旦你开始使用这个身份发表声明,这些声明可能泄露信息,而让别人将你的真实身份与pk联系起来。我们很快会更详细地讨论这个问题)。你可以生成一个看起来随机的新身份,看起来像人群中的一张脸,但这些都只有你能够控制。
1703864746
1703864747 去中心化身份管理
1703864748
1703864749 公钥和私钥的体系,帮助我们引入去中心化的身份管理的理念。你可以自己作为用户注册,而无须到一个中央机构注册为系统用户。你不需要别人给你一个用户名,你也不需要告诉任何人你会使用什么名字。如果你想要新的身份,可以随时生成一个,而且想要多少就生成多少。如果你希望拥有五个不同的名字,没有问题!那就生成五个身份。如果你想匿名一阵子,你可以生成一个新的身份,使用一段时间,然后弃之不用。有了去中心化身份管理,所有这一切都变得可能。事实上,这就是比特币对待身份的方式。这些身份在比特币语言中被称为地址。你可以常常听到地址这个词,用于比特币或加密货币相关的内容中,而地址其实就是公钥的哈希值。作为去中心化身份管理方案的一部分,它就是某人凭空捏造的一个身份而已。
1703864750
1703864751
1703864752 安全性与随机性
1703864753
1703864754 你可以不经过中央机构而生成一个身份的概念可能看起来有悖常理。毕竟,如果有人刚好就生成了跟你一样的密钥,他不就能偷走你的比特币吗?
1703864755
1703864756 我们给你的回答是,别人生成一个与你的相同256位密钥的概率如此之小,在实践中,我们不需要担心它会发生。总而言之,我们保证这种情况绝不会发生。
1703864757
1703864758 一般来说,与新手的直觉不同的是,概率系统是不可预测且难以推理的,反面的常常是真的——统计学理论使得我们可以精确地量化我们感兴趣的事件的概率,并对该系统行为做出自信的推论。
1703864759
1703864760 但还有一个精妙之处:概率保证只有在密钥为随机产生时为真。在现实系统中,随机的生成常常是薄弱环节。如果两个用户的电脑使用同样的随机来源或者使用可预测的随机,那么理论保证不再适用。所以,在生成密钥时使用良好随机源至关重要,以确保实践保证与理论保证相符。
1703864761
1703864762 乍一看,去中心化身份管理可能极具匿名性及隐秘性。毕竟,你可以自己创建一个看起来很随机的身份,同时也不用告诉任何人你的真实身份是什么。但事实并不是这么简单,随着时间的推移,你创建的身份会做出一系列的声明。人们看到这些声明便知道拥有这个身份的人做出了特定的一系列行为。他们能够开始将细节联系起来,从这一系列的行为推断出你的真实身份。随着时间的推移,一个观察者可以将这些事情联系起来,并推断出这样的结论:“天,这个人的行为好像乔(Joe),可能这个人就是乔。”
1703864763
1703864764 换句话说,在比特币系统中,你不需要明确地注册或揭露你的真实身份,但是你的行为模式本身可能是可识别的。这就是比特币等加密货币的基本隐秘性问题,我们将会在第6章专门讨论这个问题。
[ 上一页 ]  [ :1.703864715e+09 ]  [ 下一页 ]