當前位置:吉日网官网 - 傳統節日 - 密碼算法的密碼學

密碼算法的密碼學

(1)發送方和接收方

假設發送方想給接收方發送消息,想安全地發送消息:她想確保竊聽者看不到發送的消息。

(2)消息和加密

消息被稱為明文。以某種方式偽裝消息以隱藏其內容的過程稱為加密,加密後的消息稱為密文,將密文轉換為明文的過程稱為解密。

明文用M(消息)或P(明文)表示,可以是比特流(文本文件、位圖、數字化語音流或數字化視頻圖像)。至於計算機,P就是簡單的二進制數據。明文可以傳輸也可以存儲,無論哪種情況,m指的都是要加密的消息。

密文用C表示,也是二進制數據,有時有M那麽大,有時略大(通過壓縮和加密的結合,C可能比P小)。但是,僅加密通常無法實現這壹點)。加密函數e作用於m以獲得密文c,密文c在數學上表示為:

E(M)=C。

相反,解密函數d作用於c,生成m。

D(C)=M。

在解密之前加密消息,原始明文將被恢復。必須建立以下等式:

D(E(M))

(3)識別性、完整性和不可否認性

除了提供保密性,加密通常還有其他功能:

(a)識別

消息的接收者應該能夠確認消息的來源;入侵者不能偽裝成別人。

完整性測試

消息的接收者應該能夠驗證消息在傳輸過程中沒有被修改;入侵者不可能用假消息替換合法消息。

(c)抵制否認

發送者不可能在事後錯誤地否認他發送的信息。

(4)算法和密鑰

密碼算法,也稱為密碼,是壹種用於加密和解密的數學函數。(通常有兩個相關的函數:壹個用於加密,壹個用於解密。)

如果算法的保密性是建立在保持算法秘密的基礎上,那麽這個算法就叫做限制算法。受限算法具有歷史意義,但按照目前的標準,其保密性還遠遠不夠。大型或不斷變化的用戶組織不能使用它們,因為每次用戶離開這個組織,其他用戶都要改變不同的算法。如果有人無意中泄露了秘密,每個人都必須改變他們的算法。

然而,不可能控制或標準化受限加密算法的質量。每個用戶組織必須有自己獨特的算法。這類組織不可能采用流行的硬件或軟件產品。但是竊聽者可以購買這些流行的產品,學習算法,所以用戶必須自己編寫算法並實現。如果這個組織沒有好的密碼師,他們就不知道自己有沒有安全的算法。

盡管存在這些重大缺陷,受限算法仍然非常受低安全性應用的歡迎,用戶要麽沒有意識到,要麽不關心他們系統中的固有問題。

現代密碼學用密鑰來解決這個問題,密鑰用K來表示,K可以是許多值中的任何壹個。密鑰k的可能值的範圍被稱為密鑰空間。加密和解密操作都使用該密鑰(即,兩種操作都依賴於該密鑰,K用作下標),因此加密/解密函數現在變成:

EK(M)=C

DK(C)=M。

這些功能具有以下特征:

DK(EK(M))=M

有些算法使用不同的加密密鑰和解密密鑰,即加密密鑰K1與對應的解密密鑰K2不同。在這種情況下:

EK1(M)=C

DK2(C)=M

DK2 (EK1(M))=M

所有這些算法的安全性都是基於密鑰的安全性;而不是基於算法細節的安全性。這意味著算法可以被公開和分析,使用該算法的產品可以批量生產,即使竊聽者知道妳的算法。如果他不知道妳使用的特定密鑰,他就不能閱讀妳的消息。

密碼系統由算法和所有可能的明文、密文和密鑰組成。

基於密鑰的算法通常有兩種:對稱算法和公鑰算法。下面將分別介紹:對稱算法有時也稱為傳統密碼算法,即可以從解密密鑰計算出加密密鑰,反之亦然。在大多數對稱算法中,加密/解密密鑰是相同的。這些算法也稱為密鑰算法或單密鑰算法,它們要求發送方和接收方在安全通信之前就密鑰達成壹致。對稱算法的安全性依賴於密鑰,而泄露密鑰意味著任何人都可以對消息進行加密/解密。只要通信需要保密,密鑰就必須保密。

對稱算法的加密和解密表示為:

EK(M)=C

DK(C)=M

對稱算法可以分為兩類。壹次只對明文中的壹位(有時是字節)進行運算的算法稱為序列算法或序列密碼。另壹種算法是對明文中的壹組比特進行ADB運算,稱為分組,對應的算法稱為分組算法或分組密碼。現代計算機密碼算法的典型分組長度是64位——這個長度大到足以防止分析和解碼,但小到便於使用(在計算機出現之前,算法壹般只對明文進行壹次壹個字符的運算,可以認為是序列密碼對字符序列的運算)。公鑰算法(也稱為非對稱算法)是以這樣壹種方式設計的,即用於加密的密鑰不同於用於解密的密鑰,並且解密密鑰不能從加密密鑰計算出來(至少在相當長的時間內)。之所以稱為公鑰算法,是因為加密密鑰是可以公開的,即陌生人可以用加密密鑰對信息進行加密,但只有用相應的解密密鑰才能對信息進行解密。在這些系統中,加密密鑰稱為公鑰,解密密鑰稱為私鑰。私鑰有時被稱為秘密密鑰。為了避免與對稱算法混淆,這裏不使用名稱secret key。

用公鑰k加密的表示為

EK(M)=C。

雖然公鑰和私鑰是不同的,但是用相應的私鑰解密可以表示為:

DK(C)=M

有時消息用私鑰加密,用公鑰解密,公鑰用於數字簽名(後面會詳細描述)。盡管可能會出現混淆,但這些操作可以表示如下:

EK(M)=C

DK(C)=M

目前公開密碼算法的速度比對稱密碼算法慢得多,這使得公開密碼算法在大量數據加密中的應用受到限制。單向散列函數H(M)作用於任意長度的消息M,它返回固定長度的散列值H,其中H的長度為M。

有很多種具有任意輸入和固定輸出的函數,但是單向散列函數具有使其單向的其他特征:

(1)給定m,很容易計算出h;

(2)給定H,很難根據H(M) = h計算M;

(3)給定M,很難找到另壹個消息M’,並且滿足H(M)= H(M’)。

在許多應用中,只有壹個方向是不夠的,還需要壹個稱為“防碰撞”的條件:

很難找到兩個隨機消息M和M’,使得H(M)= H(M’)得到滿足。

由於hash函數的這些特性,也由於公開密碼算法的計算速度往往很慢,在壹些密碼協議中,可以用它作為壹個消息M的摘要來代替原始消息M,這樣發送方就可以用H(M)代替M來簽名。

例如,SHA哈希算法用於數字簽名協議DSA。說到數字簽名,公鑰密碼體制和哈希技術是不可或缺的。

有幾種公鑰算法可以用作數字簽名。在某些算法中,如RSA,公鑰或私鑰都可以用作加密。用妳的私鑰加密文件,妳就有了壹個安全的數字簽名。在其他情況下,如DSA,該算法區分數字簽名算法不能用於加密。這個想法最早是由Diffie和Hellman提出的。

基本協議很簡單:

(1) A用她的私鑰對文件進行加密並簽名。

(2)甲將簽署後的文件發送給乙..

(3) B用A的公鑰解密文件,從而驗證簽名。

在這個協議中,只需要證明A的公鑰確實是她的。如果B不能完成步驟(3),那麽他知道簽名無效。

該協議還滿足以下特征:

(1)簽名可信。當B用A的公鑰驗證信息時,他知道該信息是由A簽名的..

(2)簽名是不可偽造的。只有A知道她的私鑰。

(3)簽名不可重復使用。簽名是文件的函數,不能轉換成另壹個文件。

(4)簽署的文件是不可撤銷的。如果文件中有任何變化,就不可能用A的公鑰來驗證文件。

(5)簽名不可否認。b可以在沒有A的幫助下驗證A的簽名。加密技術是壹種對信息進行編碼和解碼的技術。編碼是將原本可讀的信息(也稱明文)翻譯成代碼形式(也稱密文),其逆過程是解碼(解密)。加密技術的關鍵點是加密算法,加密算法可分為對稱加密、非對稱加密和不可逆加密三種。

對稱加密算法對稱加密算法是早期的加密算法,技術比較成熟。在對稱加密算法中,數據發送方用特殊的加密算法將明文(原始數據)和加密密鑰壹起處理,變成復雜的加密密文發送出去。接收方收到密文後,如果要解讀原文,需要用加密密鑰和同壹算法的逆算法對密文進行解密,從而還原成可讀的明文。在對稱加密算法中,只使用壹個密鑰,發送方和接收方都使用這個密鑰對數據進行加密和解密,這就要求解密器事先知道加密密鑰。對稱加密算法的特點是算法開放,計算量小,加密速度快,加密效率高。缺點是交易雙方使用同壹個密鑰,安全性無法保證。另外,每對用戶每次使用對稱加密算法都需要使用壹個別人不知道的唯壹密鑰,這將使得發送方和接收方擁有的密鑰數量呈幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網絡系統中難以使用,主要是因為密鑰管理困難和使用成本高。計算機專用網絡系統中廣泛使用的對稱加密算法有DES和IDEA。美國國家標準局倡導的AES將很快取代DES成為新標準。

非對稱加密算法非對稱加密算法使用兩種完全不同但完全匹配的密鑰——公鑰和私鑰。使用非對稱加密算法加密文件時,只需要壹對匹配的公鑰和私鑰就可以完成明文的加密和解密過程。用公鑰加密明文,用私鑰解密密文。而且,發送方(加密器)知道接收方的公鑰,只有接收方(解密器)才知道自己的私鑰。非對稱加密算法的基本原理是,如果發送方要發送只有接收方才能解讀的加密信息,發送方必須先知道接收方的公鑰,然後用接收方的公鑰加密原文;接收到加密的密文後,接收者只能用自己的私鑰解密密文。顯然,使用非對稱加密算法,在發送方和接收方進行通信之前,接收方必須將自己隨機生成的公鑰發送給發送方,而私鑰則由自己保管。由於非對稱算法有兩個密鑰,所以特別適用於分布式系統中的數據加密。廣泛使用的非對稱加密算法有RSA算法和美國國家標準局提出的DSA算法。基於非對稱加密算法的加密技術被廣泛應用。

不可逆加密算法的特點是加密過程中不需要使用密鑰,明文輸入後加密的數據無法被系統解密。只有將明文重新輸入,用相同的不可逆加密算法處理後,才能得到相同的加密密文,並被系統重新識別。很明顯,在這種加密過程中,加密是自己的,解密也得是自己的,而所謂的解密其實就是重新加密,應用的“密碼”就是輸入的明文。不可逆加密算法不存在密鑰存儲和分發的問題,非常適合在分布式網絡系統中使用。但由於加密計算復雜,工作量大,通常只在數據有限的情況下使用,如計算機系統中廣泛使用的密碼加密,采用的是不可逆加密算法。近年來,隨著計算機系統性能的不斷提高,不可逆加密的應用領域正在逐步增加。計算機網絡中使用的不可逆加密算法有很多,如RSA公司發明的MD5算法,美國國家標準局提出的SHS(安全哈希標準)。

  • 上一篇:我為什麽無話可說——魯迅故裏“失語”新解
  • 下一篇:小學聽鋼琴曲和寫作文
  • copyright 2024吉日网官网