密码学相关概念

密码:

密码学中提到的密码(cipher)是一种用于加密和解密的算法,和我们平常所提到的密码(password)是不一样的,password 是一种口令,是用来验证的一组文本字符串。

密钥(key)

密钥是使用密码(cipher)的过程中输入的参数,同一个明文在相同的密码算法下,不同的密钥计算会产生不同的密文。密钥的长度越长,破解的难度也就越大(比如一个8位的密钥就有2^8 ,256种情况)知名的DES算法使用56位密钥,但是还是能在数小时内破解。生气 密钥分为对称密钥和非对称密钥。

对称密钥(Symmetric-key algorithm)

又称共享密钥加密,它在加密和解密的过程中使用相同的密钥,也就是说密钥在通信的两端是共享的,彼此都知道密钥。这样做的优点是计算速度快,但是如果客户端都使用同一个密钥,那凭借这一个密钥不就能破解所有人的密文了吗?但是如果客户端和服务端都维护一个密钥,那服务端需要管理成千上万个密钥(这会给服务器带来极大地负担的吧)。

非对称密钥(public-key cryptography)

又称为公开密钥加密。服务端生成一对密钥,将私钥保存在服务端,公钥可以发布给任何人使用。非对称加密的过程为:
1、服务端生成配对的公钥和私钥。
2、私钥保存在服务端,公钥发送给客户端。
3、客户端使用公钥加密明文传输给服务器。
4、服务端使用私钥解密密文得到明文。

因为加密和解密使用的是不同的密钥,加密和解密不对称,所以称之为非对称加密。


数字签名(digital signature)

当数据在浏览器和服务器之间进行传输时,为了保证数据没有被篡改和掉包,就使用数字签名。(就像我们签合同的时候签名那样,你的专有字迹任何人从理论上来说是造不出来的)。


1、服务端将讲过hash处后生成的摘要信息(digest)使用私钥加密之后生成签名,将签名和报文一起发送给客户端。

2、客户端收到数据后,将签名提取出来并用公钥解密,如果能够正常解密出digest2,那么就认为是对方发的。

3、客户端将报文(text)提取出来做相同的hash处理,得到摘要deigest1,在于digest2对比,若相等,则表示内容没篡改。


数字证书(certificate authority)

简称CA,是一种权威机构给某网站颁发的一种认可凭证。里面包含了真实服务器的公钥和网站的其他一些信息。主要是保证浏览器确定的服务器是真实的服务器。数字证书机构用自己的私钥加密后发送给浏览器,浏览器用数字证书机构的公钥解密后得到真实服务器的公钥。

为什么要使用这个呢?举个栗子吧。

比如说你使用A厂家给你提供的锁和钥匙,只要钥匙能打开锁,那么这两个就是配对的,一旦钥匙或者锁被换,那么门就打不开了,这个时候你是知道肯定有人动过手脚了,但是如果有人同时将钥匙和锁给换了呢,而且被换后的钥匙和锁配对,那么你是如何保证这个锁是A厂家的呢?那就只能找质检部门来检验(权威机构)了。

回到问题当中,如果有人(a)用自己的公钥把真实的浏览器发送给服务器的公钥给换了,然后a用自己的私钥执行同的hash、数字签名,最后得到的结果什么的都没有什么问题,但是浏览器看到的东西并不是服务器给的,而是a给的。所以数字证书就是为了解决这个事情滴。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值