我的第一本算法书--安全加密

1. 互联网传输时发生的四个主要问题

a. 窃听

A向B发送消息,有可能被X监听到;

b. 假冒

A向B发送消息,然而B有可能是X冒充的,反之,B向A发送消息,也有可能是X冒充的;

c. 篡改

A向B发送消息,B收到的消息有可能是被X篡改过的;

d.事后否认

A向B发送消息,但A对B有恶意,A否认发送了消息给B;

为了解决第一个问题会使用加密技术,第二个、第三个问题会使用消息验证码MAC或数字签名,第四个问题会使用数字签名,

然而数字签名技术存在“无法确认公开密钥的制作者”,要想解决这个问题就要引入“数字证书CA”。

2. 哈希函数

哈希函数可以把给定的数据转化成固定长度的无规律数值,哈希函数具备不可逆转的计算,所以其数值摘要可以应用于各种各样的场景。

3. 密钥

密钥有两种:分别为“共享密钥加密”---对称密钥,“公开密钥加密”---非对称密钥;

a. 共享密钥加密是加密和解密使用相同密钥的一种方式,由于加、解密密钥相同,所以这种算法也叫做“对称加密”;

b. 公开密钥加密是加密和解密使用不同密钥的一种方式,加密用的密钥叫做“公开密钥”,解密用的密钥叫做“私有密钥”,公开密钥是不怕别人知道的,所以公开密钥会发布到网上供对方用于数据的加密使用,而私有密钥是保密的,是不被其他人知道。

4. 公开密钥可靠性问题

a. 假设A生成公开密钥PA、私有密钥SA,B生成公开密钥PB、私有密钥SB,坏人X也生成公开密钥PX、私有密钥SX,A要向B传送数据,首先A要获得B的公开密钥PB,假设在获取的过程中被X监听到了,X将自己的公开密钥PX代替了B的公开密钥PB(同样也可以替换A发送给B的公开密钥),所以A发送的加密数据能够被X通过密钥SX解密,因为X能够获取到B的公开密钥,所以X可以将A发过来的数据解密之后发送给B,B收到信息通过SB私有密钥解密,然后将数据通过X的公开密钥PX进行加密返回给A,由于公开密钥使用的是X的,所以数据只能被X通过PX私有密钥进行解密,X将解密收的数据通过A的公开密钥PA加密在发送给A...A和B的整个过程都被X监听到了,这就带来了传输的不可靠性!因为A不知道加密消息是B传来的,或者B不知道加密消息是A传来的,为了解决这个问题就要用到“数字证书”。

5. 混合加密

      共享密钥加密存在无法安全传输,而公开密钥有存在加密速度比较慢的问题,综合这两种情况而引入了“混合加密”技术;混合加密的原理是,数据加密采用较快的共享密钥加密,不过加密使用的密钥则需要使用没有密钥分配为的公开密钥。

6. 迪菲-郝尔蛮密钥交换

时间问题,先省略。。。

7. 消息认证码

消息认证码可以实现“认证”和“篡改”这两个功能,密文的内容在传输过程中可能会被篡改,这会导致解密后的内容发生变化,从而产生误会。假设A发送数据123给B,中途被X改成了456,B没有意识到这个问题,将数据解析为了456,为了解决这个问题,A生成了一个用于制作消息认证码的密钥,然后使用安全的方法将密钥发送给了B,接下来A将密钥+密文生成一个值,这个值就叫做消息认证码MAC,A将MAC和密文发送给了B,和A一样,B也使用同样的方法来生成MAC,然后发送给A,经过对比,B可以确认自己的值与A的值是一样的。其实消息认证码MAC就是由密文和密钥来生成的。但是在使用MAC时,生成的一方与检测的一方持有相同的密钥,所以不能确定MAC有哪方生成的,这个问题可以通过数字签名来解决。

8.数字签名

数字签名是只有发信人才能够生成的,因此使用它可以确定是谁发送的消息。A将公开的密钥发送给B,A使用私有密钥加密信息,加密后的消息就是数字签名,A将消息和数字签名发送给B,B使用公共密钥对发送来的数据进行解密,B对解密后的消息进行确认,看他是否和收到的消息一致。因为私有密钥是只有A有,所以加密的发送报文只能是A,而B使用公共密钥来对该数据进行解密,从而来确定数据是否来自A。

9.数字证书

公开密钥加密和数字签名还是无法保证可信的信息发送者,为了解决这个问题,引入了数字证书。A持有公共密钥PA和私有密钥SA,现在想要将公开密钥PA发送给B,A首先需要向认证中心CA申请发行证书,证明公开密钥确实由自己生成,认证中心里保管着他们自己准备的公开密钥PC和私有密钥SC,A将公开密钥和邮箱地址的个人信息发送给CA认证中心,CA确认完毕后,使用自己的私有密钥SC,根据A的资料生成数字签名,CA将生成的数字签名和资料放进同一个文件夹中,然后把这个文件发送给A,这个文件就是数字证书,A将作为公开密钥的数字证书发送给B,B收到数字证书之后确认证书里的邮件地址确认时是从A的地址,接着B获取了认证中心的公开密钥,对证书内的签名进行验证,判断是否为认证中心给出的签名,证书中的签名只能用认证中心的公开密钥PC进行验证,如果没有异常就可以确定证书是它们发行的,确定了认证中心,且邮件地址是A,B从认证中心取出A的公开密钥,这样公开密钥就传送到了B这里;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值