密码学概论

密码学是研究如何保障通信安全的学科领域。
在密码学中,有两个主要方面:密码编码学和密码分析学。
密码编码学涉及设计和实现各种加密算法,而密码分析学涉及研究破解密码的技术和方法。
在密码学中,通常使用一种称为「密钥」的参数来控制加密和解密的过程。
待加密的消息称为「明文」,经过加密算法和密钥的处理后得到的消息称为「密文」。加密和解密的过程可以用数学函数表示,通常用以下符号表示:

用一种合适的表示法将明文、密文和密钥的关系体现出来。我们将使用 C=Ek(P) 表示用密钥 K 加密明文 P 得到密文 C,类似的 P=Dk(C) 表示解密密文 C 得到明文 P。
这种表示法清晰地表达了明文、密文和密钥之间的关系,其中 EK 表示加密函数,DK 表示解密函数。密钥 K 是加密和解密的关键,不同的密钥会产生不同的密文,从而保障了通信的安全性。

什么样的算法是可靠的?

密码学的基本规则是假定密码分析者已经知道加密和解密的所有细节,基于这个原则,产生了著名的 Kerckhoff 原则:所有的算法必须是公开,而密钥是保密的。
公开算法的重要性在于,它允许密码设计者与密码学专家广泛交流,从而促进算法的不断改进和加固。
此外,公开算法也会吸引密码学家试图破解密码系统,因为他们可以通过成功攻击来证明自己的聪明才智。但是,如果一个密码算法在公开后经过五年的时间,依然没有被破解,那么这个算法就被认为是非常可靠的。
在密码系统中,真正的秘密存在于密钥中。
密钥的长度是系统设计中的一个关键因素。以一个密码锁为例,如果密钥长度是 2 位数,则可能性有 100 种(00 – 99)。而如果密钥长度是 3 位数,则可能性增加到 1000 种。密钥由相对较短的字符串组成,它相当于从大量可能的加密方法中选择一种。
密钥的长度越长,密码分析者要破解系统所需的工作量就越大,因为他们需要搜索整个密钥空间,这个工作量会随着密钥长度的增加而呈指数级增长。
因此,一个可靠的密码系统采用一个稳定、广泛公开的通用算法,它使用一个秘密的、易变的密钥作为参数。让密码分析者知道加密、解密算法,并把所有的秘密信息全都放在密钥中。
转换密码、替代密码
在密码学中,加密方法可以分为两大类:转换密码和替代密码。
置换密码是一种加密方法,它通过用一个词或符号来代替另一个词或符号,来对明文进行加密。在这种加密方法中,明文符号的顺序被保留,但是明文被伪装起来了。
举例来说,将字母 A 替换成字母 D,B 替换成字母 E,等等,保持了字母的顺序,但是改变了字母的具体对应关系。

替代密码是另一种加密方法,它重新对字母进行排序,但不会伪装明文列。在这种方法中,使用一个不包含任何重复字母的单词或短语作为密钥,密钥用于重新排列原有的符号位置,从而打乱明文的顺序。

与置换密码不同,替代密码不仅改变了字母的具体对应关系,还重新排列了明文的符号位置。
置换密码和替代密码是两种不同的加密方法,它们分别通过不同的方式对明文进行加密,从而实现保密和安全传输的目的。
密码学原则
一、消息必须包含一定的冗余度,再次接收一条消息以后,接收者必须能够通过简单的检查手段和计算来判断该消息的有效性,这种冗余性可以用来阻止主动入侵者发送垃圾信息,也可以防止接收者被诱骗解密垃圾信息。
二、为了对抗重放攻击,必须检测每条收到的消息都是可以被验证是新鲜的,在每一条消息中包含一个仅仅在一段时间内有效的时间戳。
接收方只需要保留该消息 10 秒钟,并且将新到达消息与以前的消息进行比较,就可以过滤掉重复的消息,10 秒钟之前到达的消息可以丢弃,因为发生在 10 秒钟以前的任何重发消息将视为旧消息,应拒绝。


内容优化:ChatGPT
图片来源:Pixabay
内容来源:《计算机网络》

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34560.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月18日 下午4:02
下一篇 2024年4月18日 下午4:04

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注