文章仅做学习记录用,内容多摘自 https://blog.csdn.net/gogo_wei/java/article/details/81879876
1.密码学与密码编码学
密码学是研究如何保护信息安全性的一门科学,它分为密码编码学和密码分析学。其中,密码编码学主要研究对信息进行编码,实现信息的隐蔽。密码分析学主要研究加密消息的破译或消息的伪造。二者相互独立,又相互依存,在矛盾与斗争中发展,对立统一。
2.功能
-
机密性
仅有发送方和指定的接收方能够理解传输的报文内容。窃听者可以截取到加密了的报文,但不能还原出原来的信息,即不能得到报文内容。 -
鉴别
发送方和接收方都应该能证实通信过程所涉及的另一方, 通信的另一方确实具有他们所声称的身份。即第三者不能冒充跟你通信的对方,能对对方的身份进行鉴别。 -
报文完整性
即使发送方和接收方可以互相鉴别对方,但他们还需要确保其通信的内容在传输过程中未被改变。 -
不可否认性
如果人们收到通信对方的报文后,还要证实报文确实来自所宣称的发送方,发送方也不能在发送报文以后否认自己发送过报文。
3.术语
明文:能直接代表原文含义的信息
密文:经过加密处理之后,隐藏原文含义的信息
加密:将明文转换成密文的实施过程
解密:将密文转换成明文的实施过程
密钥:控制加密或解密过程的可变参数,分为加密密钥和解密密钥
密码体制由五要素组成,P(Plaintext明文集合),C(Ciphertext密文集合),K(Key密钥集合),E(Encryption加密算法),D(Decryption解密算法)
4. 加密基本原理
无论是用手工或机械完成的古典密码体制,还是采用计算机软件方式或电子电路的硬件方式完成的现代密码体制,其加解密基本原理都是一致的。都是基于对明文信息的替代或置换,或者是通过两者的结合运用完成的。
替代(substitution cipher):有系统地将一组字母换成其他字母或符号;
例如‘help me’变成‘ifmq nf’(每个字母用下一个字母取代)。置换(Transposition cipher):不改变字母,将字母顺序重新排列;
例如‘help me’变成‘ehpl em’(两两调换位置)。
5.安全性划分
-
无条件安全
也就是绝对无破解可能 -
计算上安全
能够保证攻破密码所花费的成本比起破译后获得的利益高
任何密码系统的应用都需要在安全性和运行效率之间做出平衡,密码算法只要达到计算安全要求就具备了实用条件,并不需要实现理论上的绝对安全。1945年美国数学家克劳德·E·香农在其发布的《密码学的数学原理》中,严谨地证明了一次性密码本或者称为“弗纳姆密码”(Vernam)具有无条件安全性。但这种绝对安全的加密方式在实际操作中需要消耗大量资源,不具备大规模使用的可行性。事实上,当前得到广泛应用的密码系统都只具有计算安全性。
6.设计原则
- 在持有明文、秘钥的情况下使用加密算法进行加密要尽量简单、反之亦然
- 在没有解密秘钥的情况下、无法计算出明文或者计算出明文所花费成本大于解密后获得的利益