數據加密技術

數據加密是實現網絡安全的關鍵技術之一,本文首先介紹加密的基本概念,然後着重討論兩類最常見的加密技術:私用密鑰加密和公開密鑰加密,並詳細探討了它們的特點、發展及今後的研究方向。
加密算法;
 由於Internet的快速發展,網絡安全問題日益受到人們的重視。面臨計算機網絡存在的潛在威脅與攻擊,一個計算機網絡安全管理者要爲自己所管轄的網絡建造起強大、安全的保護手段,可以通過以下六個安全層次完成:即修補和阻止網絡漏洞,加密,認證,防火牆,安全協議和法律事務。
 數據加密技術是網絡中最基本的安全技術,主要是通過對網絡中傳輸的信息進行數據加密來保障其安全性,這是一種主動安全防禦策略,用很小的代價即可爲信息提供相當大的安全保護。
一、加密的基本概念
"加密",是一種限制對網絡上傳輸數據的訪問權的技術。原始數據(也稱爲明文,plaintext)被加密設備(硬件或軟件)和密鑰加密而產生的經過編碼的數據稱爲密文(ciphertext)。將密文還原爲原始明文的過程稱爲解密,它是加密的反向處理,但解密者必須利用相同類型的加密設備和密鑰對密文進行解密。
加密的基本功能包括:
1. 防止不速之客查看機密的數據文件;
2. 防止機密數據被泄露或篡改;
3. 防止特權用戶(如系統管理員)查看私人數據文件;
4. 使入侵者不能輕易地查找一個系統的文件。
 數據加密是確保計算機網絡安全的一種重要機制,雖然由於成本、技術和管理上的複雜性等原因,目前尚未在網絡中普及,但數據加密的確是實現分佈式系統和網絡環境下數據安全的重要手段之一。
 數據加密可在網絡OSI七層協議的多層上實現、所以從加密技術應用的邏輯位置看,有三種方式:
 ①鏈路加密:通常把網絡層以下的加密叫鏈路加密,主要用於保護通信節點間傳輸的數據,加解密由置於線路上的密碼設備實現。根據傳遞的數據的同步方式又可分爲同步通信加密和異步通信加密兩種,同步通信加密又包含字節同步通信加密和位同步通信加密。
 ②節點加密:是對鏈路加密的改進。在協議傳輸層上進行加密,主要是對源節點和目標節點之間傳輸數據進行加密保護,與鏈路加密類似.只是加密算法要結合在依附於節點的加密模件中,克服了鏈路加密在節點處易遭非法存取的缺點。
 ③端對端加密:網絡層以上的加密稱爲端對端加密。是面向網絡層主體。對應用層的數據信息進行加密,易於用軟件實現,且成本低,但密鑰管理問題困難,主要適合大型網絡系統中信息在多個發方和收方之間傳輸的情況。
二、加密技術及其相關問題
1.加密的分類 
   加密類型可以簡單地分爲三種:
1. 根本不考慮解密問題;
2. 私用密鑰加密技術;
3. 公開密鑰加密技術。
 第一種加密技術主要是針對一些像口令加密這樣的類型,它只需要被加密,並與以前的加密進行比較;第二種和第三種加密技術是按如何使用密鑰上的不同來劃分的。以下主要介紹第二種和第三種加密技術。
  (1)私用密鑰加密技術
 私用密鑰加密利用一個密鑰對數據進行加密,對方接收到數據後,需要用同一密鑰來進行解密。這種加密技術的特點是數學運算量小,加密速度快,其主要弱點在於密鑰管理困難,而且一旦密鑰泄露則直接影響到信息的安全性。
 美國數據加密標準及其改進算法
 對稱密鑰加密技術中最具有代表性的算法是IBM公司提出的DES(Data Encryptiorn Standard)算法,該算法於1977年被美國國家標準局NBS頒佈爲商用數據加密標準。DES綜合運用了置換、代替、代數多種密碼技術,把消息分成64位大小的塊,使用56位密鑰,迭代輪數爲l6輪的加密算法。它設計精巧,實現容易,使用方便。"
 DES正式公佈後,世界各國的許多公司都推出自己實現DES的軟硬件產品。美國NBS至少已認可了30多種硬件和固件實現產品。硬件產品既有單片式的,也有單板式的;軟件產品既有用於大中型機的,也有用於小型機和微型機的。.
 三重DES(Triple DES)則是DES的加強版。是一種比較新的加密算法,它能夠使用多個密鑰,主要是對信息逐次作三次加密。
 隨機化數據加密標準(RDES)算法是日本密碼學家Nakao Y.Kaneko T等人於1996年初提出的一種新的DES改進算法。它只是在每輪迭代前的右半部增加了一個隨機置換,其他均與DES相同,目前看來它比DES安全性要好。
* 美國新數據加密標準CLIPPER和CAPSTONEF,
 l984年,美國總統里根簽署154號國家安全決策會(NSDDl45)命令,國家保密局NSA着手製定美國政府非機要機構使用新的加密標準。NSA推行的商業安全通信簽署計劃CCEP完全改變了其密碼政策,密碼的算法不再公開,對用戶只提供加密芯片及其硬件設備。NSA所推出加密芯片命名爲CLIPPER,其加密算法命名爲SKIPJACK,屬於64位分組編碼的對稱密鑰體制。
  CLIPPER主要是用於商用計算機網和通信網中對數據和語言進行加密,它被設計成允許法律監聽的保密通信方式。在使用前需在一種稱爲SCIF的安全設備中進行編程,加解密時需將CLIPPER芯片裝入加密設備中進行。
 l993年4月,美國白宮推出了EES(EscrowedEncryption Standard)加密標準,作爲解決美國國家安全與美國公民需求之間的平衡問題。欲用EES來進行通信的雙方都必須擁有帶Clipper芯片的電信安全設備。
 美國NSA在推出CLIPPER的同時,還推出了軍事通信網中進行數據加密的密碼芯片CAPSTONE,並着手對CAPSTONE進行改進,以作爲繼CLIPPER之後的下一代的數據加密標準。CAPSTONE是在CLIPPER的基礎上加入了數字簽名算法,密鑰交換及相關的數學函數。+
* 新一代加密算法IDEA
 IDEA(International Data Encryption Algorithm)是一種國際信息加密算法。它是1991年的瑞士ETH Zurich由James Massey 和Xueiia Lai發明的),於l992年正式公開,是一個分組大小爲64位,密鑰爲l28位,迭代輪數爲八輪的迭代型密碼體制。密鑰主要是通過二元和,模216加及216+l乘三種運算來完成,IDEA另一特點是用戶可以根據需求選用64位或128位密鑰以滿足所需的安全要求。
   (2)公開密鑰加密技術:
 l976年,Diffie和Hellman首次提出公開密鑰加密體制,即每個人都有一對密鑰,其中一個爲公開的,一個爲私有的。發送信息時用對方的公開密鑰加密,收信者用自己的私用密鑰進行解密。公開密鑰加密算法的核心是運用一種特殊的數學函數一單向陷門函數,即從一個方向求值是容易的。但其逆向計算卻很困難,從而在實際上成爲不可行的。公開密鑰加密技術它不僅保證了安全性又易於管理。其不足是加密和解密的時間長。
  公開密鑰算法有很多,一些算法如著名的揹包算法和McELiece算法都被破譯,目前公認比較安全的公開密鑰算法主要就是RSA算法及其變種Rabin算法,離散對數算法等。
 RSA是Rivet,Shamir和Adleman於1978年在美國麻省理工學院研製出來的,它是一種比較典型的公開密鑰加密算法,其安全性是建立在"大數分解和素性檢測"這一已知的著名數論難題的基礎上,即:將兩個大素數相乘在計算上很容易實現,但將該乘積分解爲兩個大素數因子的計算量是相當巨大的,以至於在實際計算中是不能實現的。RSA被應用於保護電子郵件安全的Privacy Enhanced Mail(PEM)和Pretty Good Privacy(PGP)。
  我國學者陶仁驥。陳世華提出一種基於有限自動機的公開密鑰加密方法:FAPKC0,FAPKC1,FAPKC2,FAPKC3。這是國際上的第一個時序公開密鑰算法,其安全性是建立在非線性有限自動機求逆的困難上的。因爲從數學上,線性有限自動機已有完美的可逆性理論,但迄今爲止未解決非線性有限自動機可逆性理論,它可用於保密通信、數字簽名,易於實現,密鑰量適中,加解密速度快,已受到國際上的關注。此種密碼體制的深人研究方向有:
 ①用大規模集成電路技術實現有限自動機公開密鑰密碼體制;
 ②對有限自動機公開密鑰密碼體制的安全做類似於針對RSA或流密碼那樣的充分分析。
  公開密鑰加密技術在密鑰管理上的優勢使它越來越受到人們的重視,應用也日益廣泛。
2.加密技術發展趨勢|
 ①私用密鑰加密技術與公開密鑰加密技術相結合:鑑於兩種密碼體制加密的特點,在實際應用中可以採用折衷方案,即結合使用DES/IDEA和RSA,以DES爲"內核",RSA爲"外殼",對於網絡中傳輸的數據可用DES或IDEA加密,而加密用的密鑰則用RSA加密傳送,此種方法既保證了數據安全又提高了加密和解密的速度,這也是目前加密技術發展的新方向之一。
 ②尋求新算法:跳出以常見的迭代爲基礎的構造思路,脫離基於某些數學問題複雜性的構造方法。如劉尊全先生提出的劉氏算法,是一種基於密鑰的公開密鑰體制,它採用了隨機性原理構造加解密變換,並將其全部運算控制隱匿於密鑰中,密鑰長度可變。它是採用選取一定長度的分割來構造大的搜索空間,從而實現一次非線性變換。此種加密算法加密強度高、速度快、計算開銷低。
 ③加密最終將被集成到系統和網絡中,例如IPV6協議就已有了內置加密的支持,在硬件方面,Intel公司正研製一種加密協處理器。它可以集成到微機的主極上。
3.密鑰管理t
 對於私用密鑰加密和公開密鑰加密系統來講、並不強調對加密/解密算法的保密。計算機網絡加密的安全性主要是依賴於算法本身的安全性和對密鑰的保護。密鑰主要有會話密鑰(Session Key)、基本密鑰(Basic Key)和主密鑰(Master Key)三種。會話密鑰是通信雙方在會話中使用的密鑰,此種密鑰只在一次會話中有效,會話結束時密鑰就失效;在網絡中用來傳送會話密鑰的密鑰,就是基本密鑰;而對基本密鑰進行加密的密鑰則稱爲主密鑰。網絡中一般是採用這種三級密鑰方案來進行保密通信的。<
 從技術上看,密鑰管理包括密鑰的產生、存儲、分配、使用和銷燬等一系列技術問題,密鑰分配是其中最重要的問題。從根本上講,主要存在兩種網絡密鑰管理:KDC(Key Distribution Center)和Diffie-Hellman方法。KDC使用可信第三方來驗證通信雙方的真實性,產生會話密鑰,並通過數字簽名等手段分自己密鑰。Diffie-Hellmarl方法則不需KDC,通信發起方產生通信會話的私用密鑰,並通過數字簽名或零知識證明等方式安全傳遞通信密鑰。IETF現在正在開發一種基於Diffi-Hellman技術的密鑰交換協議Okaley,從而具有更好的安全性和強立性。目前多密鑰分配是有待深入研究的領域。KotC
 隨着網絡的應用與發展,網絡安全問題日益突出。數據加密是確保計算機網絡安全的一種重要的機制,雖然由於成本、技術和管理上的複雜性,目前尚未在網絡中普及,但數據加密作爲實現網絡環境下數據安全的重要手段之一,必將得到廣泛應用,設計優秀的現代加密技術還融入了防篡改和防否認等數字簽名技術,故其不但適用於企業,而且也適用於其他用戶。s
數據加密技術
  現代社會對信息安全的需求大部分可以通過密碼技術來實現。密碼技術是信息安全技術中的核心技術,它主要由密碼編碼技術和密碼分析技術兩個分支組成。密碼編碼技術的主要任務是尋求產生安全性高的有效密碼算法。以滿足對消息進行加密或認證的要求。密碼分析技術的主要任務是彼譯密碼或僞造認證碼,實現竊取機密信息或進行詐騙破壞活動。這兩個分支既相互對立,又相互依存。信息的安全性主要包括兩個方面即信息的保密性和信息的認證性。保密的目的是防止對手破譯系統中的機密信息,認證的目的是驗證信息的發送者是真正的,而不是冒充的。驗證信息的完整性,即驗證信息在傳送或存儲過程中未被竄改、重放或延遲等。信息的保密性和信息的認證性是信息安全性的兩個不同方面,認證不能自動地提供保密性,而保密也不能自然地提供認證功能。在用密碼技術保護的現代信息系統的安全性主要取決於對密鑰的保護,而不是依賴於對算法或硬件本身的保護,即密碼算法的安全性完全寓於密鑰之中。可見,密鑰的保護和管理在數據系統安全中是極爲重要的。人們目前特別關注的是密鑰託管技術。
一、信息保密技術
 信息的保密性是信息安全性的一個重要方面。保密的目的是防止對手破譯信息系統中的機密信息。加密是實現信息保密性的一種重要手段,就是使用數學方法來重新組織數據,使得除了合法的接收者外,任何其他人要想恢復原先的"消息"(將原先的消息稱作"明文")或讀懂變化後的"消息"(將變化後的消息稱作"密文")是非常困難的,將密文變換成明文的過程稱作解密。可見,加密技術可使一些重要數據存儲在一臺不安全的計算機上,或可以在一個不安全的信道上傳送,只有持有合法密鑰的一方纔能獲得"明文"。所謂加密算法就是對明文進行加密時所採用的一組規則,解密算法就是對密文進行解密時所採用的一組規則。加密算法和解密算法的操作通常都是在一組密鑰控制下進行的,分別稱爲加密密鑰和解密密鑰。根據加密密鑰和解密密鑰是否相同,可將現有的加密體制分爲兩種:一種是私鑰或對稱加密體制、這種體制的加密密鑰和解密密鑰相同,其典型代表是美國的數據加密標準(D E S):另一種是公鑰或非對稱加密體制,這種體制的加密密鑰和解密密鑰不相同並且從其中一個很難推出另一個。加密密鑰可以公開,而解密密鑰可由用戶自己祕密保存,其典型代表是R S A體制。
 根據明文加密方式的不同,又可將私鑰加密體制分爲兩類:一類是流密碼,在這類體制中,明文按字符逐位地被加密;另一類是分組密碼,在這類體制中,先將明文分組(每組含有多個字符),然後逐組地進行加密。
 從社會應用密碼的需求來看,目前國際上最關心的加密技術有兩種:一種是分組密碼。另一種是公鑰密碼。
1.  分組密碼技術
 DES是日前研究最深入、應用最廣泛的一種分組密碼。己有長達20年的歷史。DES的研究大大豐富了設計和分析分組密碼的理論、技術和方法。針對DES,人們研製了各種各樣的分析分組密碼的方法,比如差分分析方法和線性分析方法,這些方法對DES的安全性有一定的威脅,但沒有真正對16輪D E S的安全性構成威脅。自從DES公佈之日起,人們就認爲DES的密鑰長度太短(只有56比特),不能抵抗最基本的攻擊方法--窮搜索攻擊。
 目前,國際上公開的分組密碼算法有100多種,比如,Lucifer、IDEA、SAFER,k-64、RC5、Skipjack、RC2、FEAL一N、REDOC一II、L0KI、CAST、Khuf u、Khafre、MMB、3一WAY、TEA、MacGuffin、SHARK、BEAR、LION、CA.1.1、CRAB、Biowfish、G0 ST、SQUARE和MISTY等。對這些算法感興趣的讀者可在Schneier所著的《Applied Cry ptography:Protocals,Algorithms,and Source CodeinC》一書和會議論文集《FastSoftware Encryption》中找到它們的詳細討論,也可以通過Internet查詢到。美國目前正在制定和評估新的數據加密標準,替代1998年到期的DES。}
2.  公鑰加密技術
 私鑰密碼體制的缺陷之一是通信雙方在進行通信之前需通過一個安全信道事先交換密鑰。這在實際應用中通常是非常困難的。而公鑰密碼體制可使通信雙方無須事先交換密鑰就可建立起保密通信。公鑰算法要比私鑰算法慢得多。在實際通信中,一般利用公鑰密碼體制來保護和分配(交換)密鑰,而利用私鑰密碼體制加密消息。公鑰密碼體制主要用於認證(比如數字簽名,身份識別等)和密鑰管理等。公鑰密碼體制的出現爲解決私鑰密碼體制的密鑰分配開闢了一條廣闊的道路。c
 值得一提的是,在有些文獻中,公鑰密碼體制的含義很廣,不僅包括公鑰加密體制,而且還包括各種公鑰協議比如數字簽名、身份識別協議、密鑰交換協議等,但我們這裏所說的公鑰密碼體制,除了特別聲明外,特指公鑰加密體制。TOUrH
 目前國際上已經有許多種公鑰密碼體制,但比較流行的和被人們認可的公鑰密碼主要有兩類,一類是基於大整數因子分解問題的,其中最典用的代表是RSA公鑰密碼體制:另--類是基於離散對數問題的,比如E lGamal公鑰密碼體制和橢圓曲線公鑰密碼體制。由於分解大整數的能力日益增強,所以對RSA公鑰密碼的安全帶來了一定的威脅,512比特模長的RSA體制已經不安全。人們建議使用l024比特模長,要保證20年的安全就要選擇1280比特模長,增大模長帶來了實現上的難度。而基於離散對數問題的公鑰密碼在目前技術下有512比特模長;就能夠保證其安全性。特別是橢圓曲線上的離散對數的計算要比有限域上的離散對數的計算更困難,能設計出密鑰更短的公鑰密碼體制,因而受到了國際上廣泛的關注,RSA等一些公司已經開發出了符合IEEEP l363標準的橢圓曲線公鑰密碼。
 RSA算法的安全性是基於分解大整數的困難性。在RSA體制中使用了這樣一條基本事實:一般地說,分解兩個大素數之積是一利很困難的事情。
 下面是A使用一個公鑰密碼體制發送信息給B的過程:
 (1)A首先獲得B的公鑰。
 (2)A用B的公鑰加密信息,然後發送給B。
 (3)B用自己的私鑰解密A發送的信息。
 已經製造出了許多不同的RSA加密芯片。RSA算法在美國已申請了專利,將於2000年9月20日到期。破譯RSA的一個直接的方法是分解n,目前的分解能力大概爲130位十進制數,但512比特(l54位十進制數)模長的RSA體制安全性已經受到一定的威脅,人們建議使時l024比特(308位十進制數)模長。關於RSA體制,也有一些別的分析方法,比如選擇密文攻擊、同模攻擊和低指數攻擊等。這些攻擊告誡人們在選擇RSA體制的參數和使用RSA體制時必須遵循一定的規則。tTKh
 除了RSA外,還有一些別的公鑰加密算法,比如E lGamal算法、Rabin算法、McEliece算法、Merkie一Hellman揹包算法、Chor一Rivest揹包算法、有限自動機公鑰算法、橢圓曲線的密碼算法、細胞自動機公鑰密碼算法、LU公鑰密碼算法、多重密鑰的公鑰密碼算法和概率加密算法等。
二、信息認證技術
 信息的認證性是信息安全性的另一個重要方面。認證的目的有兩個:一是驗證信息的發送者是真正的,而不是冒充的:二是驗證信息的完整性.即驗證信息在傳送或存儲過料中是否被竄改,重放或延遲等。
 對密碼系統的攻擊主要有兩類:一類是被動攻擊,對手只是對截獲的密文進行分析:另一類是主動攻擊,對於通過採用刪除、增添、重放和僞造等手段主動向系統注入假消息。認證是防止他人對系統進行主動攻擊(如僞造,竄改信息等)的一種重要技術。
1. 數字簽名技術
 政治、軍事、外交等活動中籤署文件,商業上籤定契約和合同以及日常生活中在書信、從銀行取款等事務中的簽字,傳統上都採用手寫簽名或印鑑。簽名起到認證、覈准和生效作用。隨着信息時代的來臨,人們希望通過數字通信網絡進行遠距離的貿易合同的簽名,數字簽名應運而生,並開始時了商業通信系統,如電子郵遞、電子轉帳、辦公室自動化等系統中。
 一個數字簽名算法主要由兩個算法組成,即簽名算法和驗證算法。簽名者能使用一個(祕密)簽名算法籤一個消息,所得的簽名能通過一個公開的驗證算法來驗證。給定一個簽名,驗證算法根據簽名是否真實來作出一個"真"或"假"的問答。
 目前已有大量的數字簽名算法,如RSA數字簽名算法、EIGamal數字簽名算法、Fiat一Shamir數字簽名算法、Guillou一Quisquarter數字簽名算法、Schnorr數字簽名算法、0ng一Schnorr一Shamir數字簽名算法、美國的數字簽名標準/算法(D S S/D S A)、橢圓曲線數字簽名算法和有限自動機數字簽名算法等。
 A使一個簽名算法對消息x簽名和B驗證簽名(x,y)的過程可描述爲: 
(l)A首先使用他的祕密密鑰對x進行簽名得y。
(2)A然後將(x,y)發送給B。
(3)最後B用A的公鑰驗證A的簽名的合法性
  DSA是美國國家標準技術學會(NIST)的一個標準,它是ElGamal數字簽名算法的一個修改。當選擇p爲512比特的素數時,ElGamal數字簽名的尺寸是1024比特,而在DSA中通過選擇一個160比特的素數可將簽名的尺寸降低爲320比特,這就大大地減少了存儲空間和傳輸帶寬。關於DSA也有一些批評意見,但它已被人們廣泛地接受和應用,它的確爲數字簽名技術的應用提供了一個適當的內核。
2. 身份識別技術
 通信和數據系統的安全性常常取決於能否正確識別通信用戶或終端的個人身份。比如銀行的自動取款機(ATM)可將現款發放給經它正確識別的帳號持卡人。對計算機的訪問和使用、安全地區的出入和放行、出入境等都是以準確的身份識別爲基礎的。身份識別技術能使識別者讓對方識別到自己的真正身份,確保識別者的合法權益。但是從更深一層意義上來說,它是社會責任制的體現和社會管理的需要。
 進入電子信息社會,雖然有不少學者試圖使用電子化生物唯一識別信息(如指紋、掌紋、聲紋、視網膜、臉形等),但由於代價高、準確性低、存儲空間人和傳輸效率低,不適合計算機讀取和判別,只能作爲輔助措施應用。而使用密碼技術,特別是公鑰密碼技術,能夠設計出安全性高的識別協議,受到人們的青睞。
 身份識別的常用方式主要有兩種,一種是使用通行字的方式;另一種是使用持證的方式。通行字是使時最廣泛的一種身份識別方式,比如中國古代調兵用的虎符和現代通信網的拔入協議等。通行字一般由數字、字母、特殊字符、控制字符等組成的長爲5--8的字符串。其選擇規則爲:易記,難於被別人猜中或發現,抗分析能力強,還需要考慮它的選擇方法、使用期、長度、分配、存儲和管理等。通行字方式識別的辦法是:識別者A先輸入他的通行字,然後計算機確認它的正確性。A和計算機都知道這個祕密通行字,A每次登錄時,計算機都要求A輸入通行字。這樣就要求計算機存儲通行字,一旦通行字文件暴露,就可獲得通行字。爲了克服這種缺陷,人們建議採用單向函數。此時,計算機存儲通行字的單項函數值而不是存儲通行字。其認證過程爲:
 1.A將他的通行字傳送給計算機。
 2.計算機完成通行字的單向函數值的計算。
 3.計算機把單向函數值和機器存儲的值比較。
 由了計算機不再存儲每個人的有效通行字表,某些人侵入計算機也無法從通行字的單向函數值表中獲得通行字。當然,這種保護也抵抗不住某些攻擊。不過,它的確是一種簡單而有效的識別方法。
 持證(token)是一種個人持有物,它的作用類似於鑰匙,用於啓動電子設備。使用比較多的是一種嵌有磁條的塑料卡,磁條上記錄有用於機器識別的個人信息。這類卡通常和個人識別號(PIN) 一起使用。這類卡易於製造,而且磁條上記錄的數據也易於轉錄,因此要設法防止仿製。爲了提高磁卡的安全性,人們建議使用一種被稱作"智能卡"的磁卡來代替普通的磁卡,智能卡與普通的磁卡的主要區別在於智能卡帶有智能化的微處理器和存儲器。智能卡已成爲目前身份識別的一種更有效、更安全的方法。智能卡僅僅爲身份識別提供了一個硬件基礎,要想得到安全的識別,還需要與安全協議配套使用。
 
 從實用角度來講,人們最關心的是設計簡單而且能在一個智能卡上實現的安全識別協議。一個安全的身份識別協議至少應滿足以下兩個條件:
 
1.識別者A能向驗證者B證明他的確是A。
2.在識別者A向驗證者B證明他的身份後,驗證者B沒有獲得任何有用的信息,B不能模仿A向第三方證明他是A。
 目前已經設計出了許多滿足這兩個條件的識別協議。比如Schnorr身份識別協議、Okanmto身份識別協議、Guillou-Quisquater身份識別協議和基於身份的識別協議等.這些識別協議均爲詢問-應答式協議。詢問-應答式協議的基本觀點是:驗證者提出問題(通常是隨機選擇一些隨機數,稱作口令),由識別者回答,然後驗證者驗證其真實性。另一類比較重要的識別協議是零知識身份識別協議。零知識的基本思想是:稱爲證明者的一方試圖使被稱爲驗證者的另一方相信某個論斷是正確的,卻又不向驗證者提供任何有用的信息。Feige、Fiat和Shamir基於零知識的思想設計了第一個零知識身份識別協議,稱爲Feige-Fiat-Shamir零知識身份識別協議。
3. 雜湊技術和消息的完整性
 雜湊函數(也稱雜湊算法)就是把任意長的輸入串變化成固定長的輸出串的一種函數。因爲雜湊函數是多對一的函數,所以一定將某些不同的輸入變化成相同的輸入。這就要求給定一個雜湊值,求其逆是比較難的,但給定的輸入計算雜湊值必須是很容易的。
 一個安全的雜湊函數應該至少滿足以下幾個條件:
1. 輸入長度是任意的
2. 輸出長度是固定的,根據目前的計算技術應至少取128比特長,以便抵抗生日攻擊。
3. 對每一個給定的輸入,計算輸出其雜湊值是很容易的。
4. 給定雜湊函數的描述,找到兩個不同的輸入消息雜湊到同一個值在計算上是不可行的,或給定雜湊函數的描述和一個隨機選擇的消息,找到另一個與該消息不同的消息使得它們雜湊到同一個值在計算上也是不可行的。
 攻擊雜湊函數的典型方法是生日攻擊,生日攻擊的基本觀點來自於生日問題:在一個教室裏最少有多少學生時,可使得在這個教室裏至少有兩個學生的生日在同一天的概率不小於50%?這個問題的答案是23。
 目前已研製出適合於各種用途的雜湊算法,這些算法都是僞隨機函數,任何雜湊值都是等可能的。輸出並不以可辨別的方式依賴於輸入。任何輸入串中單個比特的變化,將會導致輸出比特串中大約一般的比特發生變化。利用某些數學難題比如因子分解問題和離散對數問題等設計的雜湊函數有Davies-Price平方雜湊算法、CCITT建議、Juene man雜湊算法、Damgard平方雜湊算法、Damgard揹包雜湊算法、Schnorr的FFT雜湊算法等。這些算法中有的已不安全,而有的仍然是安全的。利用某些私鑰密碼體制比如DES等設計的雜湊函數有Rabin雜湊算法、Winternitz雜湊算法、Quisquater-Girault雜湊算法、Merkle雜湊算法、N-Hash算法等,這種雜湊函數的安全性與所使用的基礎密碼算法有關。不基於任何假設和密碼體制直接設計雜湊函數是當今比較流行的一種設計方法。美國的安全雜湊算法(SHA)就是這類算法,另外還有MD4、MD5、MD2、RIPE-MD、HAVAL等算法。
 美國國家標準與技術局和美國國家安全局共同設計了一個與美國數字簽名算法(DSA)一起使用的安全雜湊算法(SHA),標準是安全雜湊標準(SHS),SHA是用於該標準的算法。SHA的設計原則與MD4算法的設計原則極其相似,它很象是MD4算法的一種變形,但SHA的設計者沒有公開SHA的詳細設計決策。SHA輸入的長度限制在2比特之內,輸出長度爲160比特。
 消息認證是指使意定的接收者能夠檢驗收到的消息是否真實的方法。檢驗的內容包括:證實消息的源和宿、消息的內容是否被竄改過(即消息的完整性)、消息的序號和時間性。可見,消息認證可使接收者識別消息的源和內容的真僞、時間性和意定的信宿。
 消息的源和宿的認證可使用數字簽名技術和身份識別技術,常用的方法有兩種:一種方法是通信雙方事先約定發送消息的數據加密密鑰,接收者只需證實發送來的消息是否能用該密鑰還原成明文就能鑑定發送者。如果雙方使用同一個數據加密密鑰,那麼只需在消息中嵌入發送者的識別符即可。另一種方法是通信雙方事先約定各自發送消息所使用的通行字,發送消息中含有此通行字並進行加密,接收者只需判別消息中解密的通行字是否等於約定的通行字就能鑑定發送者。爲了安全起見,通行字應該是可變的。
 消息的序號和時間性的認證主要是阻止消息的重放攻擊。常用的方法有:消息的流水作業號、鏈接認證符,隨機數認證法和時戳等。消息內容的認證即消息的完整性檢驗常用的方法是:消息發送者在消息中加入一個認證碼並經加密後發送給接收者檢驗(有時只需加密認證碼即可),接收者利用約定的算法對解密後的消息進行運算,將得到的認證碼與收到的認證碼進行比較,若二者相等,則接收,否則拒絕接收。目前實現這種方法的基本途徑有兩條:一條是採用消息認證碼(MAC),另一條是採用竄改檢測碼(MDC)。MAC法利用函數f(x)(f(x)必須滿足一定的條件)和密鑰k將要發送的明文x或密文y變換成r比特的消息認證碼f(x,k)或稱其爲認證符附加在x或y 之後發出,通常將f選爲帶密鑰的雜湊函數。MDC法利用函數f(x)(f(x)必須滿足一定的條件)將要發送的明文x變換成r比特的竄改檢測碼f(x)附加在x之後,在一起加密事先保密認證。當然,也可以只對竄改檢測碼f(x)加密。通常將f選爲不帶密鑰的雜湊函數。接收者收到發送的消息後,按照發送這同樣的方法對接收的數據或解密後的數據的前面部分進行計算,得到相應的r比特串,然後與接收恢復的r比特串逐位進行比較,若完全相同,則認爲收到的消息未被竄改,否則,認爲收到的消息已被竄改。
三,密鑰管理技術
  根據密碼假設,一個密碼系統的安全性取決於對密鑰的保護,而不是對系統或硬件本身的保護。即使在密碼體制公開或密碼設備丟失的情況下,同一型號的密碼機仍可繼續使用。然而一旦密鑰丟失或出錯,不但合法用戶不能提取信息,而且可能會是非法用戶竊取信息。密鑰的保密和安全管理在數據系統安全中是極爲重要的 。
 密鑰管理包括密鑰的產生、存儲、裝入、分配、保護、丟失、銷燬等內容.其中密鑰的分配和存儲可能是最棘手的問題.密鑰管理不僅影響系統的安全性,而且涉及到系統的可靠性、有效性和經濟性。當然,密鑰管理過程中也不可能避免物理上、人事上、規程上等一些問題。
1. 密鑰分配協定
  密鑰分配協定是這樣的一種機制:系統中的一個成員先選擇一個祕密密鑰,然後將它傳送另一個成員或別的成員。傳統的方法是通過郵遞或信使護送密鑰。這種方法的安全性完全取決於信使的忠誠和素質,當很難完全消除信使被收買的可能性。另外,這種方法的傳輸量和存儲量都很大。人們希望能設計出滿足以下兩個條件的密鑰分配協議:
1.傳輸量和存儲量都比較小。
2.每一對用戶U和V都能獨立地計算一個祕密密鑰K。
 目前已經設計出了大量的滿足上述兩個條件的密鑰分配協議,諸如Blom密鑰分配協議,Diffie-Hellman密鑰預分配協議、Kerboros 密鑰分配協議、基於身份的密鑰分配協議等。
 密鑰協定是一個協議,它通過兩個或多個成員在一個公開的信道上通信聯絡建立一個祕密密鑰。在一個密鑰協定方案中,密鑰的值是由兩個成員提供的輸入的一個函數。現有的密鑰協定方案有Diffie-Hellman密鑰交換協議、MTI密鑰協定方案、Girault密鑰協定方案等。
2. 祕密共享技術
 存儲在系統中所有密鑰的安全性可能最終取決於一個主密鑰。這樣做存在兩個明顯的缺陷:一是若主密鑰偶然或有意地被暴露,整個系統就易受攻擊;二是若主密鑰丟失或損壞,系統中的所有信息就不能用了。關於這個問題,Shamir於1979年提出了一種解決方法,稱爲門限法,實質上是一種祕密共享的思想。這種方法的基本觀點是:講一個密鑰K按下述方式破成n個小片k1,k2,......,kn:
1.已知任意t個Ki的值易於計算出K。
2.已知任意t---1個或更少個Ki,則由於信息短缺而不能確定出k。
 將n個小片分給n個用戶。由於要重構密鑰需要t個小片,故暴露一個小片或大到t-1個小片不會危及密鑰,且少於t-1個用戶不可能共謀到密鑰,同時,若一個小片被丟失或損壞,認可恢復密鑰(只要至少有t個有效的小片)。
 人們基於拉格朗日內插多項式法、射影幾何、線性代數、孫子定理等提出了許多祕密共享方案。
3. 密鑰託管技術
 加密技術既可以幫助守法公民和企業保密,又可以被犯罪分子用於掩護其犯罪事實,這就爲政府管理社會,法律執行部門跟蹤犯罪分子帶來了一定的困難。從國家的利益考慮,應該能控制加密技術的使用。美國於1993年提出的密鑰託管加密技術正符合這種要求。密鑰託管有時也叫做密鑰恢復。現在密鑰託管已經是一些系統的派生術語,包括密鑰恢復、受信任的第三方、特別獲取、數據恢復等。近幾年,密鑰託管加密技術已成爲密碼技術研究和應用的焦點。
 美國政府於1993年4月16日通過美國商業部頒佈了具有密鑰託管功能的加密標準(EES)。該標準規定使用專門授權制造的且算法(將該算法稱之爲Skipjack算法,目前已公佈)不予公佈的Clipper芯片實施商用加密。Clipper芯片是實現了EES標準的防竄擾芯片,它是由美國國家安全局(NSA)主持開發的硬件實現的密碼部件。由於加密體制具有在法律許可時可以進行密鑰合成的功能,所以政府在必要時無須花費巨大代價破譯密碼,而能夠直接偵聽。目前我們可以從網上蒐集到近40種不同功能的密鑰託管系統。。。。。。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章