安全矩阵

 找回密码
 立即注册
搜索
查看: 7426|回复: 0

网络安全攻防:密码技术之密码算法

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2021-1-29 22:15:27 | 显示全部楼层 |阅读模式
原文链接:网络安全攻防:密码技术之密码算法

从密码学的发展历史来看,可以分为古典密码学和现代密码学。


古典密码学主要依靠人工计算和非常简单的机械,并且以人的主观意识完成设计和应用。主要应用对象通常就是文字信息,利用简单的密码算法实现文字信息的加密和解密,安全性不高却蕴含数学艺术。从数学的角度,置换(Permutation)和代替(Substitution)是古典密码学两种基本的加密运算。置换是指改变明文字符的排列方式,如古代斯巴达人将写着明文的羊皮缠在木棍上,再从木棍的方向读出,相当于横着写,竖着读,改变明文字母的排列顺序;代替是指对标准文字符号的修改与替换,如《高卢记》中记载的加密算法是将罗马字母用希腊字母替换。显然,通过古典加密后得到的密文,将与明文保持着一致的频率统计特性,这也是古典密码的一个致命弱点。

1949年,香农(Shannon)发表了《保密系统的通信理论》一文,被认为是现代密码学的奠基之作。事实上,古典加密算法往往只是单个的代替或置换操作,随着人类对密码学的深入研究,以及计算机运算能力的提高,简单的置换和替代运算极易被破解,无法满足安全性需求。因此,现代密码学就是要寻求基于简单运算来构造复杂算法的数学方法,形成安全性较高的加密算法。当然,现代密码学的应用对象已不再只是简单的明文字符,而是以明文比特位作为考察对象。从数学的角度,现代密码算法就是重复混合应用置换和替代运算,实现对明文的扩散(Diffusion)和混淆(Confusion)效果,目的是为了能抵抗对手攻破密码体制。扩散就是让明文中的每一位影响密文中的多个位,或让密文中的每一位受明文中多个位的影响,以此隐蔽明文的统计特性;混淆就是将密文与密钥之间的统计关系变得尽可能复杂,使对手即使获取了关于密文的一些统计特性,也无法推测密钥。“揉面团”可以用来形象地比喻扩散和混淆,而反复揉捏的过程,其实就是现代密码算法经常使用的乘积和迭代方法,可以取得比较好的扩散和混淆效果。

现代密码体制的基本加密和解密过程如图1所示。

图1  现代密码体制的基本加密和解密过程

其中,M表示明文、C表示密文、E表示加密函数、D表示解密函数、K表示加密或解密时使用的密钥。

加密的数学表达式:C=EK(M)
解密的数学表达式:M=(M)

由此也可以看出,为了确保加密体制的正确性,加密函数E和解密函数D都必须确保是一一映射的数学函数。

现代密码算法的设计必须遵循基尔霍夫准则,即一个好的密码算法不能依赖算法本身的保密性,而是算法必须公开,那么密码算法的安全性仅依赖于密钥的保密性。事实上,这也是有别于古典密码算法的标志性准则,即古典密码算法都是依赖于加密算法的精巧性和保密性,一旦算法被公开其安全性也将无从谈起,而现代密码算法则强调算法接受公开的考验和分析,敌人在没有密钥的情况下,即使完全清楚解密的运算过程也无从破解。

从现代密码的密钥管理角度,假如加密密钥和解密密钥相同,则称为对称密码,加密密钥和解密密钥不同则称为非对称密码,也即公钥密码。

图2给出了古典密码和现代密码的算法分类。

图2  古典密码和现代密码的算法分类

微信公众号:计算机与网络安全
ID:Computer-network


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-20 21:43 , Processed in 0.012577 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表