时间:2022-02-19|浏览:505
公钥加密或非对称加密系统是一种使用公钥和私钥的加密系统。它是加密货币协议中最重要的组成部分之一,用于几个地方:创建加密货币钱包,以确保加密货币只能由所有者使用,交易签名(数字签名),这是加密货币协议的核心组成部分。简而言之,如果您将加密货币发送给他人,请使用您的私钥(或使用私钥生成的签名密钥)签署事务,并使用您的公钥验证事务。所以,如果黑客得到了你的私钥,他们可以把你的加密货币发给自己。
生成公钥和私钥有两种算法。例如,比特币协议使用椭圆曲线数字签名算法(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密钥对的原因。
用戶喜愛的交易所
已有账号登陆后会弹出下载