DSA
DSA 是专业用于数字签名和验签,并且只有这个作用, 不能用于加密和解密。
在安全性上,DSA和RSA差不多,但是速度比RSA快很多。
Practice from here
数字签名就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
生成消息签名这一行为是由消息的发送者来完成的,也称为“对消息签名”。生成签名就是根据消息内容计算数字签名的值,这个行为意味着“我认可该消息的内容”。
RSA是一种公钥密码算法,它的名字是由它的三位开发者,即Ron Rivest、Adi Shamir 和 Leonard Adleman的姓氏的首字母组成的( Rivest-Shamir-Adleman )。
RSA可以被用于公钥密码和数字签名。
在RSA中,明文、密钥和密文都是数字。RSA的加密过程可以用下列公式来表达:
密文=明文E mod N (RSA加密)
RSA的密文是对代表明文的数字的E次方求mod N的结果。换句话说,就是将
明文和自己做E次乘法,然后将其结果除以N求余数,这个余数就是密文。
加密公式中出现的两个数E
和 N
,到底都是什么数呢? RSA的加密是求明文的E
次方mod N
,因此只要知道E和N这两个数,任何人都可以完成加密的运算。所以说,E
和 N
是RSA加密的密钥,也就是说,E
和 N
的组合就是公钥。
AES是作为DES的替代标准出现的,全称Advanced Encryption Standard,即:高级加密标准。AES加密算法,经历了公开的选拔,最终2000年,由比利时密码学家Joan Daemen和Vincent Rijmen设计的Rijndael算法被选中,成为了AES标准。
AES明文分组长度为128位,即16个字节,密钥长度可以为16个字节、24个字节、或32个字节,即128位密钥、192位密钥、或256位密钥。