?? 加密算法與密鑰管理.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 + -