rsa加解密原理 rsa在线加密解密工具

数字签名非常普遍:
了解数字签名前先了解一下SHA-1摘要,RSA非对称加密算法 。然后再了解数字签名 。
SHA-1SHA-1(secure hash Algorithm )是一种数据加密算法 。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程 。
单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性 。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保证了其安全性 。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或信息摘要的输出 。
该算法输入报文的长度不限,产生的输出是一个160位的报文摘要 。输入是按512 位的分组进行处理的 。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应 。
通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改 。
总之:SHA-1是一种单向的、位数固定为160为的数据加密算法,在不同平台上,平台本身内嵌SHA-1的实现,直接调用相应函数即可 。
RSA加密算法RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的 。RSA取名来自开发他们三者的名字 。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准 。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 。

rsa加解密原理 rsa在线加密解密工具


RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密 。
RSA的算法涉及三个参数,n、e1、e2 。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度 。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1 。(n,e1),(n,e2)就是密钥对 。其中 (n,e1)为公钥,(n,e2)为私钥 。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 mod n;B=A^e1 mod n;(公钥加密体制中,一般用公钥加密,私钥解密)e1和e2可以互换使用,即:
A=B^e2 mod n;B=A^e1 mod n;
如果客户端开发,我们只是关心加密算法:我们需要n(模量)和e(指数),将这两个放到平台rsa密码函数里生成密码 。然后再调用rsa加密函数生成一串数字即可发往服务器 。
非对称加密1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统” 。相对于“对称加密算法”这种方法也叫做“非对称加密算法” 。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey) 。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密 。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法 。

推荐阅读