对称密码算法:
是指加密和解密使用相同的密钥,典型的有DES、RC5、IDEA(分组加密),RC4(序列加密);
非对称密码算法:
又称为公钥加密算法,是指加密和解密使用不同的密钥(公钥用于加密,私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥。于是A用这个公钥加密消息,B收到密文后用自己的与之匹配的私钥解密即可。反过来也可以用私钥加签公钥验签。也就是说对于给定的公钥有且只有与之匹配的私钥可以解密,对于给定的私钥,有且只有与之匹配的公钥可以解密。典型的算法有RSA,DSA,DH;
如何理解非对称加密呢?
如上图:
第一步:首先Client向Server发起请求。
第二,三步:是指Server把公钥传递给Client。
第四,五步:Client获得公钥后,通过公钥进行加密秘钥,并把秘钥传递回Server。
第六步:Server通过私钥将传递过来的数据进行解密
第七,八步:最后两步不至于上图所示的一点点内容,它是指后期的一系列操作。
散列算法:
散列变换是指把文件内容通过某种公开的算法,变成固定长度的值(散列值),这个过程可以使用密钥也可以不使用。这种散列变换是不可逆的,也就是说不能从散列值变成原文。因此,散列变换通常用于验证原文是否被篡改。典型的算法有:MD5,SHA,CRC等。
关于CA及数字证书
CA证书是什么:
CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。
CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。
CA 也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。
如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。
CA证书格式:
数字证书的格式遵循X.509标准,X.509是由国际电信联盟(ITU-T)制定的数字证书标准,规范了公开密钥认证、证书吊销列表、授权证书、证书路径验证算法等。
证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。