密码学学习总结

一、密码学基础

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

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

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

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

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

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.1、消息认证码

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

者共享的秘钥,使用一个算法(可以是哈希算法,对应的就是hmac),输出固定的长度数据tag。(无法向第三方证明这个消息是教官发送的)

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)密码只是信息安全中的一环,人更重要。

posted @ 2021-08-16 22:30  月光下的脚步  阅读(1338)  评论(0编辑  收藏  举报