📄 加密算法与密钥管理.htm
字号:
<html>
<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>加密算法与密钥管理
</title>
<!--***********-->
</head>
<body bgcolor="#FFFFFF" background="../images/bg3.gif">
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0" align="center"><font size="2" color="#0000FF">加密算法与密钥管理</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0">
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0">
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0">
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0" align="right"><font size="2">摘自:计算机世界</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">
密码系统的两个基本要素是加密算法和密钥管理。加密算法是一些公式和法则,它规定
了明文和密文之间的变换方法。由于密码系统的反复使用,仅靠加密算法已难以保证信
息的安全了。事实上,加密信息的安全可靠依赖于密钥系统,密钥是控制加密算法和解
密算法的关键信息,它的产生、传输、存储等工作是十分重要的。</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">在信息处理系统中,密码学的主要应用有两类:数据的通
信保护和数据的存储保护。在这些应用领域,密码方法的使用与过去在军事、外交上的
传统使用方法有很大的区别。在传统应用中,双方所需的密钥通过另外的安全途径传送;
而在信息处理系统中,密钥的某些信息必须放在机器中。如此一来,总有一些特权用户
有机会存取密钥,这对加密系统的安全是十分不利的。解决这一问题的方法之一是研制
多级密钥管理体制。例如,在二级密钥管理体制中,一级密钥(也称主密钥)存储在安
全区域,用它对二级密钥信息加密生成二级密钥(也称为工作密钥),再用工作密钥对
数据加密。当然,这些动作都应该是连贯的密箱操作。然而纯软件的加密系统难以做到
密箱操作。</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">实际上,无论多么高明的反跟踪技术也难以让人放心,因
为软件跟踪高手会将整个程序分解、剖析。但如果把主密钥、加密算法等关键数据、程
序固化在加密卡中,就能解决密箱操作的难题。主程序将待加密的一组明文数据、一组
二级密钥信息传给加密卡,加密卡则完成以下的工作:用主密钥和加密算法将取得的一
组二级密钥信息加密成工作密钥,再用该工作密钥和加密算法将明文数据加密并将所得
密文经接口返回给主程序。</font>
<h3 style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0">
</h3>
<h3 style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">数据库密码</font>
</h3>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font color="#ffffff"><font size="2">----</font></font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">应用于数据库加密的加密算法称为数据库密码。目前常
用的加密算法可分为三类:</font></p>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">1. 序列密码体制</font></p>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">这种密码直接对当前的字符进行变换,也就是说,以一个
字符为单位进行加密变换。在这种加密体制中,每一字符数据的加密与报文的其他部分
无关。例如,直接对明文加上一串同等长度的乱码(也可看成是密钥),只要所用的乱
码是随机数且不重复使用,就实现了“一次一密”的加密。从理论上讲,真正实现了“一
次一密”的密码是可靠的密码,原则上是不可破译的。这类密码的明文和密文长度一般
不变,传递迅速、快捷;其缺点是密码破译人员比较容易得到明密对照双码,便于其进
行密码分析,同时乱码的产生和管理比较困难,难以真正做到“一次一密”。该类密码
适用于通信领域。</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">2. 分组密码体制</font><p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">应用这类密码时,明文按固定长度分组,对各组数据用不
同的密钥加密(或脱密)。这类密码按分组进行加密变换,一个字符数据不仅与密钥有
关,而且还与其他字符数据有关,密码分析的穷尽量很大。例如传统的64位分组法,它
的穷尽量为264-1,这是一个20位的十进制数,即使用每秒运算万亿次以上的巨型计
算机进行攻击,平均穷尽时间也需要数年。当然这仅仅是理论数据,在攻击密码时还有
其他约束条件,如文字、数据、环境、规律等信息,所以实际所需的攻击时间要短得多。</font><p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">在使用分组密码时,对明文尾部不满一个整组的碎片通常
采用填充随机数的办法将其扩充为一个整组,然后进行正常加密。由于尾组的扩充,使
得密文的长度大于明文的长度。分组密码可用于计算机存储加密,但因为数据库加密后
的数据长度不能改变,所以必须改进分组加密算法的使用方法。</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">3. 公开密钥体制</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">这种体制的一个例子是RSA密码。这类密码的共同缺点
是加/脱密速度较慢,据报道,这类密码的运算速率仅达到其他密码的千分之一到百分之
一。公开密钥体制的密码目前常用于用户认证、数字签名以及密钥传输等,不能适应数
据库加密的速度要求。</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">序列密码和分组密码也称为对称性密码,这类密码加密时
用某个密钥加密,脱密时还用这个密钥脱密。公开密钥密码也称非对称密码,这类体制
的密码具有两个密钥:公钥和私钥,加密时用公钥加密,脱密时必须用私钥脱密。</font><p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">数据库加密系统对数据库密码的要求如下:</font>
<ul><li>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">数据库加密以后,数据量不应明显增加;</font>
<li>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">某一数据加密后,其数据长度不变;</font>
<li>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">加/脱密速度要足够快,数据操作响应时间应该让用户能够接受。</font></ul>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">改变对分组密码算法传统的应用处理方法,使其加密后密
文长度不变,就能满足以上几点要求。这里以数据加密标准DES为例进行说明。</font>
<p style="text-indent: 21; line-height: 17pt; margin-top: 0; margin-bottom: 0"><font size="2">DES是一种对二进制数据进行加密的算法,数据分组长
度、密钥长度和输出密文长度均为64位(现在有人主张使用128位),明文经过16轮的
叠代、乘积变换、压缩变换等编码过程输出密文。关于DES算法以及它对明文数据进行
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -