如何為區塊鏈生成公鑰和私鑰
如何为区块链生成公钥和私钥
公钥加密或称非对称加密体制,是一种使用公钥和私钥对的加密体制它是加密货币协议中最重要的部分之一,它被用于几个地方:加密货币钱包的创建,以确保加密货币只能由所有者使用
,交易签名(数字签名),这是加密货币协议的核心组件简而言之,如果您将加密货币发送给其他人,则使用您的私钥(或使用私钥生成的签名密钥)对该事务进行签名,并且使用您的公钥验证事务所以,如果黑客获得了你的私钥,他们就可以把你的加密货币发给自己
生成公钥和私钥有两种算法例如,比特币协议使用椭圆曲线数字签名算法(ECDSA)在本文中,我将解释rivests shamir adleman (RSA),并与ECDSA进行比较RSA是最早、应用最广泛的公钥密码系统之一它以其创始人Ron Rivest、AdiShamir和Leonard Adleman的名字命名,几乎成为公钥密码的同义词
RSA算法
RSA使用模-n (mod n)算法广泛地使用算术运算对n取余就是x除以n后的余数例如,17取余5 = 2RSA通常由三个主要部分组成(有时添加公钥共享是有意义的):
· 生成公钥和私钥
· 使用生成的公钥加密数据
· 使用生成的私钥解密数据
生成公钥和私钥
为了生成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快
公钥私钥原理私钥证书私钥加密私钥 公钥私钥密码公钥密码体制公钥私钥公钥密码公钥基础设施(pki)是公钥加密算法rsa公钥加密算法有哪些公钥加密方法公钥加密算法rsa私钥版电子营业执照公钥加密算法的核心私钥密码体制私钥加密 公钥解密私钥更新间距私钥签名公钥加密系统公钥加密法公钥加密算法私钥 英文公钥基础设施公钥加密技术公钥基础设施简称为公钥加密和私钥加密公钥证书公钥加密公钥加密体制
泰成逸园分院预约挂号青岛牛皮癣医院
宝宝积食如何清热
-
中国惨绝曼联被利物浦虐哭保级队都没这么惨
云计算 | 2020-09-10
-
高雄市政府证实鸿海确定投资高雄购12万坪
云计算 | 2019-07-16
-
毛小平培育领军企业加速推进物联网产业
云计算 | 2019-07-15