购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1.1
加解密的一般过程

在信息系统中,恶意窃听和攻击的威胁从未间断。加密的目的是让明文转化成密文,通过密文方式发送信息可以防止明文信息被获取。

为方便后续讨论,我们先建立一套标准的语言体系。通常情况下,可将整个过程划分为信息加密、信道和信息解密三个阶段。如图3-1所示,按照常见的提法,将信息的发送方和接收方分别称为Alice和Bob,而将信道中潜在的恶意方称为Carl。

014-1

图3-1 加密和解密的一般过程

Alice加密的过程是:

s = e ( m , k 1 )

其中, e ( x , y )是加密函数, k 1 是加密密钥, m s 分别是明文和密文。

Bob解密的过程是:

m = d ( s , k 1 )

其中, d ( x , y )是解密函数, k 2 是解密密钥。我们用不同的符号表示加密和解密密钥,是因为在许多加密算法中,这两个密钥是不相同的。

Carl总会尝试破解上述过程。他的目的是获取当前乃至之后的所有原文,手段是找到加密算法和密钥。Carl可能采用以下多种方式发起攻击。

显然,这些攻击的强度是递增的。一般考虑较多的是前两种场景。Carl执行上述攻击的前提是他知道Alice和Bob采用的是哪种加密算法。这个假设是否合理呢?密码学理论研究中有一个被广泛认同的Kerckhoffs原则。Kerckhoffs原则指出,在设计密码算法时不能够假设Carl不知道加密算法。换个角度讲,由于系统设计者无法确保Carl对加密算法并不知情(有各种因素会导致消息泄露),因此从安全性的角度考虑必须假设“敌人知道系统”。美国科学家香农在20世纪中叶也独立地论证了这一理论。密码分析是密码学的一个子学科,它研究上述各种情况下破解一套密码算法的方法及计算难度。密码算法设计和密码分析是“矛”和“盾”的关系,它们其实是相辅相成的。 uyg4rLOWQvMmK8bZyXucxzhKoakzxHRlC+RElf5NgblOYWU9w9fkDuHCvHrigXy8

点击中间区域
呼出菜单
上一章
目录
下一章
×