图解密码技术总结一

  1. 对称密码
    加密和解密使用同一密钥,即加密密钥和解密密钥相同。

  2. 非对称密码
    加密密钥和解密密钥不同。

  3. 单向散列函数(防止篡改
    特点:
    (1)单向散列函数主要确认文件完整性。(攻击者可能攻击了文件,使得文件被篡改)。
    (2)输入是消息,输出是散列值
    (3)根据任意长度的消息计算出固定长度的散列值。散列值的长度和消息的长度无关。如SHA-256单向散列函数生成的散列值是256比特,32字节。
    (4)能快速计算出散列值。
    (5)单向散列函数具有抗碰撞性。
    (碰撞:不同的消息产生同一散列值;弱抗碰撞性:找到和该条消息具有相同散列值的另外一条消息很困难;强抗碰撞性:找到散列值相同的两条不同的消息是非常困难的)。

    单向散列函数怎么防止篡改??
    	消息不同散列值不同。
    

    应用:
    (1)检测软件是否被篡改。
    (2)基于口令的加密。PBE,将口令和通过伪随机数生成器产生的随机值混合后计算散列值,然后将该散列值作为加密的密钥。防止针对口令的字典攻击。
    (3)消息认证码。单向散列函数可以构造消息认证码。
    (4)数字签名。
    (5)伪随机数生成器。
    (6)一次性口令。一次性口令通常用于服务器对客户端的合法性认证。

  4. 消息认证码(防止篡改,提供认证)----- MAC
    特点:
    (1)消息认证码主要确认文件完整性,并提供认证。
    (2)输入是任意长度的消息一个发送者与接收者之间共享的密钥,输出是固定长度的数据MAC值
    (3)消息认证码是一种与密钥相关联的单向散列函数。

    消息认证码怎么防止篡改??怎么提供认证??
    	消息不同计算出来的MAC值也不同,所以可以防止篡改;
    	提供认证通过共享密钥实现,要计算MAC值需要发送者和接收者之间共同知晓的共享密钥。
    

    消息认证码的使用步骤:
    图解密码技术总结一_第1张图片

    消息认证码存在的问题:
    (1)密钥配送问题。如果共享密钥落入攻击者手中,消息认证码的作用救失效了。
    (2)无法防止否认。因为发送方和接收方使用的密钥是共享的,它们计算出来的MAC值是一样的。

  5. 数字签名(识别篡改、提供验证、防止否认
    特点:
    (1)数字签名主要确认文件完整性,提供签名和验签服务。
    (2)用私钥加密相当于生成签名,用公钥解密相当于验证签名。
    (3)只有签名密钥能签名,验签密钥不能用于签名。
    (4)签名密钥由发送者持有,验证密钥是任何需要验证签名的人持有。

    数字签名的方法:直接对消息签名;对消息的散列值签名。

    问题一:密文为什么能作为签名使用?
    ····签名生成的密文并非被用于保证机密性,数字签名代表的是只有持有该密钥的人才能偶生成信息(认证符号,消息认证码也是一种认证符号)。

    问题二:数字签名不能保证机密性吗?
    ····不能,数字签名用来表示没有私钥的人无法生成使用该密钥生成的密文。

    问题三:数字签名可以随意复制吗?
    ····可以被扶着,但是不会改变签名者和消息的内容,特定的签名者已经与特定的消息绑定在一起了。

    问题四:消息内容会不会被任意修改?
    ····可以被修改,但是签名本身的作用不是为了防止修改,而是识别修改。因为就算被修改了,也是无法通过验证签名的。

    问题五:签名会不会被重复使用?(如,把别人的数字签名的签名部分提取出来附加在别的消息后面。)
    ····可能被重复使用,但是无法通过验证签名。

    问题六:如何防止否认?
    ····在数字签名中,能够生成签名的密钥是只有发送者才持有的,只有发送者才能够生成签名,因此发送者也就没办法说“这个签名不是我生成的”(MAC就有可能,因为发送者和接收者共享密钥)。
    注意:严格来说,数字签名也不能防止否认,因为数字签名的私钥可能会被窃取(后续待补充)。

  6. 伪随机数生成器
    定义:一种能模拟产生随机数列的算法。

你可能感兴趣的:(密码技术,安全)