密码学-RSA
RSA非对称加密算法,在区块链中有广泛的应用,本文简单介绍下RSA的应用和其原理。
RSA基于的数学原理就是因式分解一个大质数为两个整数极其困难。
概念介绍:
- 密钥对:非对称加密技术中,有一个公钥和一个私钥。
- 公钥,私钥:在RSA中公钥私钥是对等的,你选择一个公开则为公钥,另一个为私钥。但是在实际的应用中,因为公钥是公开的,因此私钥的容器会保存一份公钥。否则哪怕单独知道了私钥,也是无法求出公钥的。否则公钥就可以逆推私钥了不是。
- 摘要:摘要是传输内容的哈希值。
- 签名:使用私钥对摘要进行加密
应用
数据加密:若A想给B发送一个数据,就可以用B的公钥加密数据,在没有被破解的情况下,数据劫持者也无法解析数据,而A可以使用私钥解锁数据。
数据签名:
A要给B发送一个数据,数据是公开的,但是可能被人劫持,然后修改数据内容再进行重新发送,那么B收到的就是虚假的数据。
A使用私钥对数据摘要进行签名,生成签名,同数据一同发送。B收到后,使用公钥解密签名获得摘要。再对数据内容进行hash生成摘要。若两份摘要相同,则数据未被修改。
公钥私钥的长度:随着计算机性能的发展,浮点运算的提高。先后在1999年512位和768位RSA加密先后被破解,如今的RSA算法普遍使用1024位,但是建议使用2048位以保证安全。