数字签名算法(什么叫数字签名)
实现数字签名的方法有很多。目前,公钥加密技术广泛应用于数字签名中。1994年,美国标准与技术协会公布了数字签名标准,使得公钥加密技术得到广泛应用。
公钥加密系统采用非对称加密算法。DES属于对称加密算法,EDI不属于加密算法,RSA和13SA都属于非对称加密算法,是第一个既能用于数据加密又能用于数字签名的算法。易于理解和操作,安全性高,所以比较常见。
RSA加密算法是一种非对称加密算法。RSA广泛应用于公钥加密和电子商务中。
RSA是由罗恩·瑞文斯特、阿迪·萨莫尔和伦纳德·阿德曼在1977年提出的。
当时三个人都在麻省理工工作。RSA是由他们三个姓氏的首字母组成的。
1973年,在英国政府通信总部工作的数学家Clifford Cocks在一份内部文件中提出了类似的算法,但他的发现被列为机密,直到1997年才发表。
RSA算法的可靠性是由分解最大整数的难度决定的。换句话说,分解一个最大整数越困难,RSA算法就越可靠。如果有人找到了一个快速的因式分解算法,那么用RSA加密的信息的可靠性肯定会下降的极其厉害。
但是找到这样算法的可能性很小。今天,只有短的RSA密钥才能被强有力的手段破解。到目前为止,世界上还没有可靠的方法来攻击RSA算法。只要密钥长度足够长,RSA加密的信息实际上是无法破解的。
1983年,麻省理工学院在美国申请了RSA算法的专利。本专利于2000年9月21日到期。因为算法在申请专利之前就已经公布了,所以这个专利在世界上大多数其他地方都不被认可。
RSA公钥密码系统。所谓的公钥密码系统使用不同的加密密钥和解密密钥,是一种“从已知的加密密钥推导出解密密钥在计算上不可行”的密码系统。
在公钥密码体制中,加密密钥(公钥)PK是公开信息,而解密密钥(秘密密钥)SK需要保密。加密算法e和解密算法d也是公开的。虽然解密密钥SK是由公钥PK决定的,但是用一个大数字N来计算欧拉函数phi(N)是不可能的,所以不能从PK中计算出SK。
基于这一理论,1978年出现了著名的RSA算法,它通常由一对RSA密钥组成,其中一个是密钥,由用户保存;另一种是公钥,可以公开,甚至可以在网络服务器上注册。
为了提高安全强度,RSA密钥至少有500位长,一般建议使用1024位。这使得加密的计算量非常大。为了减少计算量,在传输信息时,通常采用传统加密方法和公钥加密方法相结合的方法,即利用改进的DES或IDEA密钥对信息进行加密,然后利用RSA密钥对会话密钥和信息摘要进行加密。对方收到信息后,用不同的密钥解密,可以查看信息汇总。
RSA算法是第一个可以同时用于加密和数字签名的算法,易于理解和操作。RSA是研究最广泛的公钥算法,30年来经过各种攻击的检验,逐渐被人们所接受。到2017年,RSA被普遍认为是最好的公钥方案之一。