zoukankan      html  css  js  c++  java
  • 加解密技术(Cryptography)基本概念

    转载自:http://www.cnblogs.com/piyeyong/archive/2010/06/10/1744692.html

    要想实现在不安全的网络上的安全通信,需要考虑3个方面的问题:保密(Privacy),认证(Authentication),完整性(Integrity)。

    1.保密(Privacy)

    数据在网络传输的过程中,需要经过多个中间节点进行转发,因此,数据很容易就被截获,为了保证数据的保密性,就需要对数据进行加密传输,使用密文进行传输。

    图一 加解密数据

    如上图所示,明文数据(plaintext)经过加密算法(Encryption Algorithm)得到密文(ciphertext),在网络中传输,到达目的地后,再经过解密算法(Decryption Algorithm)还原成原文。

    在网络中传输的是密文,即使被第三方截获,也不能解析其含义。注意,这里的加密和解密算法是公开的,如对称算法DES,3DES,非对称算法RSA 等,任何人都可以得到,但是每种算法都需要有一个KEY作为输入,对称算法与非对称算法的区别就在于加密的KEY和解密的KEY是否一样,一致的是对称算 法。

    由于非对称机密在效率上比对称加密慢100倍以上,并不适合对大数据量的原文使用非对称加密,在实际的加密传输过程中,会随即生成一个对称密钥 (session key),使用该对称算法对原文进行加密,同时使用非对称算法将session key进行加密,一起传输给对方,接收者使用private key将session key还原后再用对称算法对数据进行解密。

    2.认证(Authentication)

    数据的接收方在收到数据后,为了验证数据确实是从发送着发送的,而不是第三方冒充的,就需要对发送方进行认证。认证需要使用一个凭据,即数字证书 (Certificate),相当于个人的护照。Certificate由专门的证书管理机构发放,就是我们常说的CA(Certificate Authority)。Certificate含有发放者(Issued by),使用者(Subject),公钥私钥等信息,并且是被CA使用自己的证书签名的。我们验证身份的时候,实际是相信发放证书的CA,就好比我们查看 护照的时候是相信发放证书的国家一样。这里需要详细说明一下签名。

    如上图所示,使用Private key对明文进行加密计算,得到数字签名,改签名只能使用Private key对应的Public key才能解密,重新得到原文。Public key是公开的,所有人都可以得到,并且知道该Public key是属于谁的.如果A要发送数据给B,A就用自己的Private key计算签名,发给B,B再使用A的Public key进行验证,如果能计算出原文,则证明该数据确实是A发送的。而第三方C如果想假冒A给B发送数据,由于没法得到A的private key,就没法对数据进行签名,如果使用任意key签名,B在收到数据后使用A的public key解密时就会发现数据无法还原,从而发现数据是假冒的。实际的应用场景是这样的:

    A首先对要发送的数据计算Hash,只对该Hash进行签名,这样会大大提高效率,然后将原文和签名一起发送(为了保证原文的Privacy,需要 使用B的public key进行加密,只有拥有private key的B本人才能进行解密),B在收到后,使用同样的Hash算法对原文计算Hash(如果原文加密,要先进行解密哦),同时对数字签名使用A的 public key解密,比较两者是否一致,不一致就说明数据不是由A发送过来的。

    由于只有A本人采用与自己的Private key,所以数字签名还具有不可抵赖性。

    3.完整性(Integrity)

    即使数据被加密传输,第三方无法知道传输的内容,但是当第三方还是可以进行破坏活动,例如将数据截取一半,再发给接收者,接收者进行解密后并不知道 数据已经被截断。为了保证传送的数据完整性,需要对接收到的数据进行完整性校验,可以使用hash算法,对原文计算hash,接收者验证hash即可,过 程参照上一小节数字签名部分。

  • 相关阅读:
    BZOJ 1040 (ZJOI 2008) 骑士
    BZOJ 1037 (ZJOI 2008) 生日聚会
    ZJOI 2006 物流运输 bzoj1003
    ZJOI 2006 物流运输 bzoj1003
    NOI2001 炮兵阵地 洛谷2704
    NOI2001 炮兵阵地 洛谷2704
    JLOI 2013 卡牌游戏 bzoj3191
    JLOI 2013 卡牌游戏 bzoj3191
    Noip 2012 day2t1 同余方程
    bzoj 1191 [HNOI2006]超级英雄Hero——二分图匹配
  • 原文地址:https://www.cnblogs.com/langqi250/p/2704376.html
Copyright © 2011-2022 走看看