摘要:密碼學在信息安全方面起著重要的作用,而它又是圍繞對稱密鑰和非對稱密鑰技術展開著。對稱密鑰和非對稱密鑰技術應用在數據加密、身份認證和數字簽名等。是保證信息具備保密性、可靠性、完整性和不可抵賴性的有效工具。
關鍵詞:對稱密鑰 非對稱密鑰 加密
0 引言
《網絡運行與維護》是計算機信息管理專業的一門核心課程。本課的關鍵內容是密碼學,而密碼學又是圍繞對稱密鑰和非對稱密鑰技術展開的。同時對稱密鑰和非對稱密鑰的應用非常廣泛,這就要求學生對這部分內容掌握得相當扎實。為此有針對性地采取適當的方式開展實驗教學。真正做到實驗學生做,思路學生想,疑難學生議,錯誤學生析,使學生的綜合能力在實驗過程中得到最大限度的提高。
1 對稱密碼
對稱加密算法是應用較早的加密算法,技術成熟。在對稱加密算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理后,使其變成復雜的加密密文發送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的唯一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密算法有DES、IDEA和AES。
2 非對稱密碼
非稱加密算法使用兩把完全不同但又是完全匹配的一對鑰匙——公鑰和私鑰。在使用非稱加密算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時采用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。非稱加密算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密信息,發信方必須首先知道收信方的公鑰,然后利用收信方的公鑰來加密原文;收信方收到加密密文后,使用自己的私鑰才能解密密文。顯然,采用非對稱加密算法,收發信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由于不對稱算法擁有兩個密鑰,因而特別適用于分布式系統中的數據加密。廣泛應用的非對稱加密算法有RSA算法和美國國家標準局提出的DSA。以非對稱加密算法為基礎的加密技術應用非常廣泛。除了用于加密數據和傳送對稱密鑰外,還應用在身份認證、數字簽名和數字證書等方面。
通過上述介紹;似乎我們對密碼學的知識有了一定的了解。實際上密碼學的原理和技術非常難懂,它牽涉到比較深的數學方面的知識;由于高職學生的數學基礎較差,要想通過理論教學要求學生理解并掌握這些知識,那是絕對不可能的。但是這部分知識對于《網絡運行與維護》這門課非常重要。如何解決這個問題呢?我們首先考慮的是實驗教學方法。
根據學校的現實環境,采取什么實驗教學法,才能使學生理解并掌握密碼學的知識呢?我們首先想到利用PGP軟件技術,利用PGP軟件制作相應的實驗,以促進學生加深對密碼學的理解。
3 PGP軟件
PGP技術是一個基于非對稱加密算法RSA公鑰體系的郵件加密技術,也是一種操作簡單、使用方便、普及程度較高的加密軟件。PGP技術不但可以對電子郵件加密,防止非授權者閱讀信件;還能對電子郵件附加數字簽名,使收信人能明確了解發信人的真實身份;也可以在不需要通過任何保密渠道傳遞密鑰的情況下,使人們安全地進行保密通信。
PGP技術創造性地把RSA非對稱加密算法的方便性和傳統加密體系結合起來,在數字簽名和密鑰認證管理機制方面采用了無縫結合的巧妙設計,使其幾乎成為最為流行的公鑰加密軟件包。
PGP使用兩個密鑰來管理數據:一個用以加密,稱為公鑰(Public Key);另一個用以解密,稱為私鑰(Private Key)。公鑰和私鑰是緊密聯系在一起的,公鑰只能用來加密需要安全傳輸的數據,卻不能解密加密后的數據;相反,私鑰只能用來解密,卻不能加密數據。
現在廣泛使用的公共密鑰系統是基于PGP方式。它是一個基于RSA公鑰加密體系的開源軟件,但它與RSA加密算法又有所不同。確切地說,PGP使用的是RSA和傳統算法DES結合的新算法——IDEA(受專利保護)。
4 利用PGP完成的實驗
4.1 生成公鑰和私鑰
在PGP里面,最有特色的或許就是它的密鑰管理。PGP包含四種密鑰:一次性會話密鑰、公開密鑰、私有密鑰和基于口令短語的常規密鑰。
用戶使用PGP時,應該首先生成一個公開密鑰/私有密鑰對。其中公開密鑰可以公開,而私有密鑰絕對不能公開。PGP將公開密鑰和私有密鑰用兩個文件存儲,一個用來存儲該用戶的公開/私有密鑰,稱為私有密鑰環;另一個用來存儲其他用戶的公開密鑰,稱為公開密鑰環。
為了確保只有該用戶可以訪問私有密鑰環,PGP采用了比較簡潔和有效的算法。當用戶使用RSA生成一個新的公開/私有密鑰對時,輸入一個口令短語,然后使用散列算法(例如SHA-1)生成該口令的散列編碼,將其作為密鑰,采用CAST-128等常規加密算法對私有密鑰加密,存儲在私有密鑰環中。當用戶訪問私有密鑰時,必須提供相應的口令短語,然后PGP根據口令短語獲得散列編碼,將其作為密鑰,對加密的私有密鑰解密。通過這種方式,就保證了系統的安全性依賴于口令的安全性。
4.2 利用PGP加密數據
學生利用PGP導出功能,可以導出公鑰。試驗中要求學生互相傳送公鑰,當發送者用PGP加密一段明文時,PGP首先壓縮明文,然后用PGP建立一個一次性會話密鑰,采用傳統的對稱加密算法加密剛才壓縮后的明文,產生密文。然后用接收者的公開密鑰加密剛才的一次性會話密鑰,隨同密文一同傳輸給接收方。接收方首先用私有密鑰解密,獲得一次性會話密鑰,最后用這個密鑰解密密文。這個實驗使學生認識了公鑰和私鑰的作用和用法,理解了私鑰的保密性和公鑰的公開性,以及與對稱密鑰的區別。
4.3 利用PGPmail數字簽名
在PGPmail中,你可以用它來加密保護你的郵件信息和文件中的隱私,唯有接收者通過他們的私鑰才能讀取。你也可以對信息和文件進行數字簽名,使之保證其可靠性。
實驗中,通過學生互相發送郵件,對郵件內容用對方的公鑰加密文件,以防止非授權者閱讀,還對郵件加上數字簽名而使收信人可以確信郵件是你發來的。它采用了審慎的密鑰管理,一種RSA和傳統加密的雜合算法,用于數字簽名的郵件文摘算法,加密前壓縮等。
通過這個實驗,學生了解到用于數字簽名的郵件文摘算法,就是理論上的摘要函數,用私鑰加密這個摘要函數,就相當于數字簽名。這個過程既保證了發送數據的完整性又保證了數據來源的可靠性。
5 結束語
這些實驗加深了學生對理論的認識,同時也知道了理論如何用于實踐。在加強實驗的過程中,也讓學生體會到理論學習的重要性。教師也體會到安排一個好的實驗,不但能驗證理論教學的作用,還能促進學生對理論教學的興趣。