zoukankan      html  css  js  c++  java
  • 密码学学习总结

    一、密码学基础

           密码学要解决信息的机密性、完整性和不可否认性。其中:

           机密性:对传递的信息进行加密就可以实现机密性,保证信息不泄漏给未经授权的人。(对称、非对称加密)

           完整性:防止信息被未经授权的人篡改,保证信息不被篡改。(单向散列、消息认证码、数字签名)

          不可否认性:能够保证信息行为人不能否认其信息行为。(对应的技术数字签名)

          身份认证:也能实现身份认证。(对应技术有消息认证、数字签名)

    1.1、密码学基本元素

        明文(plain text):希望得到保密的原始信息

        密文(cipher text):明文经过密码变换后的消息

        加密(encryption):由明文变换为密文的过程

        解密(decryption):由密文恢复出明文的过程

        加密算法(encryption algorithm):对明文进行加密时采用的一组规则

        解密算法(decryption algorithm):对密文进行解密时采用的一组规则

        秘钥(key):控制加密和解密算法操作的信息

    1.2、密码学的分类

           密码学的密码算法可以分为:对称加密(Sysmmetric Cryptography)和非对称加密(Asymmetric Cryptography)

    以及用于确认数据完整性的单向散列(One-Way Hash Funcrion)又称密码校验(Cryptographic Checksum)、指纹

    (Fingerprint)、消息摘要(Message Digest)。

    1.2.1 对称加密

           特点:在加密和解密使用同一秘钥。

           优点:加密或解密运算速度块,加密强度高,算法公开。

           缺点:秘钥分发难,更新周期长,不便于管理。

           对称密码算法有AES算法(Advanced Encryption Standard)又称高级加密标准Rijndael加密发,属于非保密、

    公开披露的,在各种平台上易于实现、速度快,设计简单,密文和明文长度一致,硬件支持、加密芯片。DES

    是对称密码算法,就是老了。对称密码中分组密码模式:ECB(Electronic CodeBook)模式,电子密码本模式,

    明文与密文一一对应,存在一定风险。CBC(Cipher Block Chaining)模式,密文分组链接模式,初始化向量IV,

    每次加密时随机产生。OFB模式称为输出反馈模式,在OFB模式中,XOR所需的比特序列(秘钥流)可以事先通过

    密码算法生成,和明文分组无关。只需要提前准备好所需要的秘钥流,然后进行XOR运算就可以了。具体参考下图:

     

    1.2.2 非对称加密

           非对称密码算法的秘钥分为加密秘钥和解密秘钥。发送者使用加密秘钥(公钥)对消息

    加密,接受者使用解密秘钥(私钥)对密文进行解密。公钥和私钥一一对应,形成秘钥对。

    非对称密码基于数学上的难题,正向生成公钥和私钥很容易,但是通过公钥逆向生成私钥

    是困难的。

        非对称密码算法-RSA

            RSA是非对称加密中最著名的加密算法,与1977年由Rivest、Adi Shamir和Len Adlenman

    三人共同发明的,RSA基于大整数分解素因子困难,一旦发现就能破解,可以用来加密也

    可以用来签名。还有其他的非对称加密,比如ECC、ELGAmal、Rabin。

    1.2.3 混合加密系统

           混合加密就是对称加密和非对称加密的结合。由于对称加密算法速度快,强度高,而非对

    称加密算法效率低,但能够解决秘钥配送问题。因此可以通过非对称加密配送对称秘钥,

    再采用对称秘钥用来加密的方式,实现网络的秘钥配送与通信加密。

           一般实践中,发送者通过数字证书获得接收者的公钥(防止伪装),然后每次生成对称加

    密用的秘钥,用接收者的公钥对对称密码算法的密钥进行加密,同时用对称密码算法的秘钥加

    密数据得到密文。因为对称密码只对当前的一条信息负责,而非对称密码会影响到过完和未来

    所有通信,因此公钥密码强度应该高于对称密码私钥。

           一般是用接受者的公钥加密对称秘钥,35114因为是双向认证,可以用设备的公钥先加密一个VKEK,

    然后设备用私钥解密得到VKEK。因为VEK每一个小时变化,如果用平台的公钥加密的话,非对称

    加密频率太高,那么用VKEK只用一次就好了,但是要保证VEKE的可靠性。

    1.2.4 单向散列

          单向散列技术是为了保证信息的完整性,防止信息被篡改的一项技术,有一个输入和输出,输入称为

    消息,输出称为散列值。特点:一种采集信息的“指纹”的计数;无论消息长度,计算出的长度是不变的;

    快速计算;消息不同,散列值不同,需要具有抗碰撞性,弱抗碰撞性是给定散列值,找到和该消息具

    有相同散列值的另一条消息是困难的,强抗碰撞性是任意散列值,找到散列值相同的两条不同的消息

    是困难的;具有单向性,不可由散列值推出原消息。对应的技术有MD、SHA。

    单向散列函数的应用

    ①检测消息是否被篡改

    ②基于口令的加密:将口令和salt随机数混合计算其散列值。

    ③消息认证码(MAC):将共享密钥和消息混合后计算的散列值,可以检测并防止通信过程中

    的错误、篡改以及伪装。

    ④数字签名。

    ⑤挑战应答(challenge-response)方式认证。

    二、密码学应用

           消息认证码是一种确认完整性并进行认证的计数,输入包括任意长度的消息和一个发送者与接受

    者共享的秘钥,输出固定的长度数据。(无法向第三方证明这个消息是教官发送的)

    2.2、数字签名

           在非对称加密中,私钥用来解密,公钥用来加密。

           在数字签名技术中,私钥用来加密,公钥用来解密。

    2.3、数字证书

         CA私钥加密用户的公钥和一些相关的信息(有效时间、发证机关、序列号)生成数字证书。

    CA机构类似公安局,哈希值类似身份证号,对哈希值签名就是盖章。

    数字证书的组成:

    1、版本;

    2、序列号;

    3、签名算法;(ey:sha256RSA)

    4、签名哈希算法;(ey:sha256)

    5、颁发者;

    6、有效期;

    7、使用者;

    8、公钥;(ey:RSA)

    9、增强型秘钥用法;

    10、使用者秘钥标识符;

    11、颁发机构秘钥标识符;

    12、颁发者备用名称;

    13、使用者备用名称;

    14、指纹算法;(ey:sha1)

    15、指纹;(ey:实际是指纹的密文,在客户端会用CA的公钥解密,是唯一的。最终会用签名算法

    和签名哈希算法对指纹进行签名。)

    2.4、SSL

    2.5、国产密码算法的总结

    ①SM1 :为对称加密,其加密强度与AES相当,该算法不公开,调用该算法时,需要通过加密芯片接口

    进行调用,秘钥长度和分组长度为128位。

    ②SM2 :为非对称加密,基于ECC,该算法已经公开。SM2椭圆曲线公钥密码算法是我国自主设计的

    公钥秘钥算法,包括SM2-1椭圆曲线签名算法、SM2-2椭圆曲线秘钥交互协议、SM2-3椭圆曲线加密

    算法,分别用于实现数字签名秘钥协商和数据加密等功能。与RSA不同,由于该算法基于椭圆曲线上

    点群离散对数难题,故其签名速度和秘钥生成速度都快于RSA,256位的SM2密码强度已经比2048位

    的RSA密码强度高。

    ③SM3:SM3杂凑算法是由我国自主设计的密码杂凑算法,可以参考MD5理解,适用于商用密码应

    用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需

    求。为了保证杂凑算法的安全性,其产生的杂凑值不应太短,例如MD5输出128比特杂凑值,输出

    长度太短,影响其安全性。SHA-1算法的输出长度为160比特,SM3输出的长度为256位,因此SM3

    算法的安全性要高于MD5和SHA算法。

    ④SM4:无线局域网标准的分组数据算法,对称加密、秘钥长度和分组长度均为128位。要保证一

    个对称密码算法的安全性的基本条件是具备足够的秘钥长度,SM4算法和AES算法具有相同的密钥

    长度分组长度128,因此安全性上高于3DES算法。

    三、密码学误用

    3.2、关于密码学的常识

    1)不要使用保密的密码算法

    2)低强度密码比不加密更危险

    3)任何密码都有破解的一天。(量子计算可以在根本上解决此问题,因为量子纠缠可以实现一次性密码本算法)

    4)密码只是信息安全中的一环,人更重要。

  • 相关阅读:
    【转】《基于MFC的OpenGL编程》Part 5 Transformations Rotations, Translations and Scaling
    【转】 《基于MFC的OpenGL编程》Part 10 Texture Mapping
    【转】 《基于MFC的OpenGL编程》Part 11 Blending, Antialiasing and Fog
    win form 托盘功能的实现(引用CSDN)
    C# win form退出窗体时对话框实用
    智能DNS 笔记
    iis无法启动, 找出占用80端口的罪魁祸首
    gvim for windows的剪贴板操作
    内容交换
    Content Networking 读书笔记
  • 原文地址:https://www.cnblogs.com/kwdeblog/p/15150293.html
Copyright © 2011-2022 走看看