ECDSA算法
椭圆曲线乘法(又称为ECDSA)是密码学重要的非对称加密算法,同时在比特币系统中,私钥的生成使用的也是ECDSA算法。比特币使用了secp256k1标准定义的一条特殊的椭圆曲线和一系列数学常数。
在讲解ECDSA算法之前,先了解一下计算机是如何实现乘法和除法的。
计算机所能完成的基本操作是:+、- 和左移、右移。在计算机中所有的操作都是以二进制的形式在运行,那么对于数字的操作也同样也是这样。
乘法实现
对于计算机而言左移一位代表乘以2,右移一位代表除以2。对于a乘以x而言,只是将a左移x为1的位并累加可得到最后的结果。例如:拿53为例
5的二进制数:0101
3的二进制:0011
则乘法实现的步骤:
1、3的第0位为1,则将5(0101)左移0位,结果仍为5(0101);
2、3的第2位为1,则将5(0101)左移一位,结果为10(1010)–左移一位相当于52=10;
3、将两次结果相加为1111=15
除法实现
计算机除法的实现相对较为复杂,它也可以理解用乘法来实现。
例如:51/3
51的二进制:110011
3的二进制:11
1、从51的第1位开始(从左往右),第一位为1,小于11,结果为0