如何为区块链生成公钥和私钥?

公钥加密或称非对称加密体制,是一种使用公钥和私钥对的加密体制。它是加密货币协议中最重要的部分之一,它被用于几个地方:加密货币钱包的创建,以确保加密货币只能由所有者使用,交易签名(数字签名),这是加密货币协议的核心组件。简而言之,如果您将加密货币发送给其他人,则使用您的私钥(或使用私钥生成的签名密钥)对该事务进行签名,并且使用您的公钥验证事务。所以,如果黑客获得了你的私钥,他们就可以把你的加密货币发给自己。

生成公钥和私钥有两种算法。例如,比特币协议使用椭圆曲线数字签名算法(ECDSA)。在本文中,我将友们rivests – shamir – adleman
(RSA),并与ECDSA进行比较。RSA是最早、应用最广泛的公钥密码系统之一。它以其创始人Ron Rivest、AdiShamir和Leonard
Adleman的名字命名,几乎成为公钥密码的同义词。

RSA算法

RSA使用模-n (mod n)算法广泛地使用算术运算。对n取余就是x除以n后的余数。例如,17取余5=2。RSA通常由三个主要部分组成(有时添加公钥共享是有意义的):

· 生成公钥和私钥

· 使用生成的公钥加密数据

· 使用生成的私钥解密数据

生成公钥和私钥

为了生成RSA的公钥和私钥,Alice和Bob(这两个虚构的角色已经成为讨论密码学的行业标准)执行以下步骤:

1. 选择两个较大的素数p和q,数值越大,RSA越难破解,但编码解码的时间越长。

2. 计算n=pq和z=(p – 1)(q – 1)。

3. 选择一个小于n的数e,除1外没有公因数,z或它们的最大公约数(gcd)等于1,gcd(e,
z)等于1。在这种情况下,e和z是相对素数。e将用于加密。

4. 求一个数d,使ed – 1能被z整除,另一种方法是对z=1取余。d将用于解密。

5. Bob或Alice提供给世界的公钥是一对数字(n, e),而私有密钥必须是秘密的,是一对数字(n, d)。

使用生成的公钥加密数据

假设Alice想传递一个讯息给Bob,由位”模式表示整数m(明文消息),其中m < n。加密的明文消息m c m ^=e mod
n密文c将发送给Bob。注意,Alice使用的是Bob的公钥加密消息。

使用生成的私钥解密数据

要解密收到的密文,Bob计算m=c^d mod这需要使用他的私钥(N,d)。

RSA的安全性依赖于这样一个事实:对于快速分解(素因子分解)数字,没有已知的算法。在本例中,公共值n放入p和q中。

RSA与ECDSA的比较

在ECDA中,私钥是随机生成的整数。在比特币协议中,它是256位(32字节)整数。ECDSA还可以使用相同的算法,使用不同的椭圆曲线生成公钥。比特币协议使用Secp256k1。在RSA中,密钥(公钥、私钥和签名)很大,密钥生成很慢。

另一方面,RSA易于实现,而ECDSA难以实现。2010年12月,PlayStation
3遭到黑客攻击,原因是索尼没有正确实施该算法。这就是为什么建议使用已经测试过的库(如OpenSSL)来生成ECDSA密钥对的原因。

大约一年前,我实现了一个名为eccpem的开源库,并安装了GitHub,它生成ECDSA密钥对,并使用OpenSSL库将它们存储在.pem文件中。

结论

大多数加密货币协议使用ECDSA(我认为这是有意义的)而不是RSA。至少有两个原因:

· ECDSA使用的内存比RSA少得多。

· ECDSA比RSA快。

私钥是怎么来的?

原始的私钥格式是256位的二进制(2的256次方),大概长接下来这样:

1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1
0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1
0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0
0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1
1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1
1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0
01 0 0 1 0 0 1 1 1 1 0

私钥本质上是数字,相当于从1 到2^256(2的256次方)之间选一个数字。

硬币正面为1,反面为0,抛硬币256次,记录下来全过程就相当于生成了一个私钥。但是到底的时间是宝贵的,肯定不能通过抛硬币来生成私钥。

私钥都是由钱包来生成的,而不是人设定的

由于私钥的原始格式非常长,直接由用户设定是非常麻烦的。所以这个工作由钱包来完成了。为了保证私钥的安全性,钱包会“非常随机”的来生成私钥。

所以到底在创建钱包的时候,是不需要设定私钥的,而是设定“转账密码”或者“开启APP的PIN码”之类的密码,他们并不是私钥!

目前很多钱包都是HD钱包(什么是HD钱包?)只需要备份助记词即可,简化了创建新私钥和备份私钥的方式。

公钥是怎么来的?

我们已经讲了:

公钥:由私钥生成的。公钥的作用是跟签名配合用来证明“我就是私钥的主人。

公钥是需要公开出去的,所以公钥需要具备几个特性

公钥必须由私钥生成,这样才能证明“我就是私钥的主人”

公钥不能倒推得出私钥,不然相当于把私钥告诉别人

私钥通过椭圆曲线加密生成了公钥。

之所以用椭圆曲线,是因为他满足了上面提到的2个特性:

私钥可以通过椭圆曲线加密非常容易的创建公钥,他俩具有一一对应的关系。

通过公钥来求出私钥是非常困难的。

椭圆曲线加密有多安全呢?

RSA加密算法是生活中常用的加密手段,到底登陆网银,支付宝的时候就会用到。这种加密算法已经用了很多年,历史证明RSA是非常安全的(至少到目前为止)。

如果把两者进行比较的话:

假如破解RSA算法需要的能量只够烧开一瓢水,

那么破解椭圆曲线密码需要的能量够把整个地球上的水都烧开。

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/qukuai/297589.html

(0)
鸟叔鸟叔
上一篇 2023年 3月 27日
下一篇 2023年 3月 27日

相关推荐

  • GAT币怎么样?可以购买吗?

    长期看好,目前生态建设缓慢,平台规划与布局有考虑gat这块,增强gat的流通才能提现价值!投票上币这块做的很失败,项目方多但没有体现出竞争优势和特色,所以说机制设计的有问题,gat区的币有必要提高整体的质量,激活gat区的币的交易同时带动gat! 比特时代曾经山寨币的王牌交易所 如今沦落自此实在惋惜!gat作为新一台的时代平台币其发行总量太多,在平台币中可谓…

    区块链 2023年 3月 13日
  • 恒星币/XLM币是什么币?现在还适合入场吗?

    只需几步即可轻松买币,支持购买比特币等99种数字货币 恒星币是基于 Ripple 代码修改创建的恒星支付网络中的基础数字货币,总量为1000亿,每年增加1%。恒星支付网络以恒星币为基础货币,用户能够通过其转账任意一种货币,包括美元、欧元、人民币、日元或者比特币,简便易行快捷,交易确认在几秒以内完成。 恒星作为一个老币,技术和应用都不错,有又财团和庄家操盘,未…

    区块链 2022年 11月 25日
  • 狗狗币交易所下载最新_狗狗币交易所安卓手机app

    只需几步即可轻松买币,支持购买比特币等99种数字货币 欧易是一款软件,提供诸多数字货币,而且你能选择不同投资类型,海量内容自由搜索,有需要的快来下载吧。 下载客户端领取盲盒,最高开出6w元数字货币 欧易特色1.这里还能够为用户们带来各种安全的交易保障,让你不用担心自己的信息会泄露。2.强大的搜索引擎支持,软件页面非常简单,功能非常全面,3.毕竟,这与赚钱有关…

    2022年 12月 9日
  • VOL币是什么币?VOL币现在价格怎么样?

    首先知道这个项目是在朋友圈看到的,号称是波场的原班技术团队和CTO陈志强的一个项目,关键是涨幅高达100多倍,实际上今天来看,众筹价到今天的比价涨幅173倍,真的挺吓人的。 打开官网和资料披露这个项目其实存在挺多的糟点,首先是项目创始人陈志强的人品问题,因为与孙宇晨闹掰了出来干的这个项目,但是后来被孙给爆料在职期间侵吞财产,并且挖角技术人员。 其次该项目采用…

    区块链 2023年 1月 1日
  • CAKE币怎么挖矿?CAKE币挖矿详细图解教程

    1.首先,需要下载一个token pocket钱包 2.苹果手机最好使用国外ID下载,进入之后点击币安智能链,创建钱包(一定要是币安链钱包),这个密码一定要记清楚,助记词需要用纸抄写下来,一定不能搞丢了。 3.点击收款,查看收款地址或者二维码图片,然后使用币安提现把你的bnb(bnb可以转最小金额0.1个用来抵扣手续费)和cake通过币安链(bsc)转账到t…

    2022年 12月 4日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信