信息加密技術

信息加密技術

一種保護信息的技術
信息加密技術是利用數學或物理手段,對電子信息在傳輸過程中和存儲體内進行保護,以防止洩漏的技術。[1]保密通信,計算機密鑰,防複制軟盤等都屬于信息加密技術。通信過程中的加密主要是采用密碼,在數字通信中可利用計算機采用加密法,改變負載信息的數碼結構。計算機信息保護則以軟件加密為主。目前世界上最流行的幾種加密體制和加密算法有:RSA算法和CCEP算法等。
  • 中文名:信息加密技術
  • 外文名:
  • 适用領域:
  • 所屬學科:
  • 包括:保密通信、計算機密鑰
  • 方法:采用密碼
  • 算法:RSA算法和CCEP算法

簡介

保密通信,計算機密鑰,防複制軟盤等都屬于信息加密技術。通信過程中的加密主要是采用密碼,在數字通信中可利用計算機采用加密法,改變負載信息的數碼結構。計算機信息保護則以軟件加密為主。目前世界上最流行的幾種加密體制和加密算法有:RSA算法和CCEP算法等。為防止破密,加密軟件還常采用硬件加密和加密軟盤。一些軟件商品常帶有一種小的硬卡,這就是硬件加密措施。在軟盤上用激光穿孔,使軟件的存儲區有不為人所知的局部存壞,就可以防止非法複制。這樣的加密軟盤可以為不掌握加密技術的人員使用,以保護軟件。由于計算機軟件的非法複制,解密及盜版問題日益嚴重,甚至引發國際争端,因此對信息加密技術和加密手段的研究與開發,受到各國計算機界的重視,發展日新月異。

應用

在常規的郵政系統中,寄信人用信封隐藏其内容,這就是最基本的保密技術,而在電子商務中,有形的信封就不再成為其代表性的選擇。為了實現電子信息的保密性,就必須實現該信息對除特定收信人以外的任何人都是不可讀取的。而為了保證共享設計規範的貿易夥伴的信息安全性就必須采取一定的手段來隐藏信息,而隐藏信息的最有效手段便是加密。

分析

加密就是通過密碼算術對數據進行轉化,使之成為沒有正确密鑰任何人都無法讀懂的報文。而這些以無法讀懂的形式出現的數據一般被稱為密文。為了讀懂報文,密文必須重新轉變為它的最初形式--明文。而含有用來以數學方式轉換報文的雙重密碼就是密鑰。在這種情況下即使一則信息被截獲并閱讀,這則信息也是毫無利用價值的。按照國際上通行的慣例,将這近200種方法按照雙方收發的密鑰是否相同的标準劃分為兩大類:一種是常規算法(也叫私鑰加密算法或對稱加密算法),其特征是收信方和發信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。比較著名的常規密碼算法有:美國的DES及其各種變形,比如3DES、GDES、New DES和DES的前身Lucifer;歐洲的IDEA;日本的FEAL N、LOKI91、Skipjack、RC4、RC5以及以代換密碼和轉輪密碼為代表的古典密碼等。在衆多的常規密碼中影響最大的是DES密碼,而最近美國NIST(國家标準與技術研究所)推出的AES将有取代DES的趨勢,後文将作出詳細的分析。常規密碼的優點是有很強的保密強度,且經受住時間的檢驗和攻擊,但其密鑰必須通過安全的途徑傳送。因此,其密鑰管理成為系統安全的重要因素。

另外一種是公鑰加密算法(也叫非對稱加密算法)。其特征是收信方和發信方使用的密鑰互不相同,而且幾乎不可能從加密密鑰推導解密密鑰。比較著名的公鑰密碼算法有:RSA、背包密碼、McEliece密碼、Diffe Hellman、Rabin、Ong Fiat Shamir、零知識證明的算法、橢圓曲線、EIGamal算法等等⑷。最有影響的公鑰密碼算法是RSA,它能抵抗到目前為止已知的所有密碼攻擊,而最近勢頭正勁的ECC算法正有取代RSA的趨勢。公鑰密碼的優點是可以适應網絡的開放性要求,且密鑰管理問題也較為簡單,尤其可方便的實現數字簽名和驗證。但其算法複雜,加密數據的速率較低。盡管如此,随着現代電子技術和密碼技術的發展,公鑰密碼算法将是一種很有前途的網絡安全加密體制。

私鑰加密算法

在私鑰加密算法中,信息的接受者和發送者都使用相同的密鑰,所以雙方的密鑰都處于保密的狀态,因為私鑰的保密性必須基于密鑰的保密性,而非算法上。這在硬件上增加了私鑰加密算法的安全性。但同時我們也看到這也增加了一個挑戰:收發雙方都必須為自己的密鑰負責,這種情況在兩者在地理上分離顯得憂為重要。私鑰算法還面臨這一個更大的困難,那就是對私鑰的管理和分發十分的困難和複雜,而且所需的費用十分的龐大。比如說,一個n個用戶的網絡就需要派發n(n-1)/2個私鑰,特别是對于一些大型的并且廣域的網絡來說,其管理是一個十分困難的過程,正因為這些因素從而決定了私鑰算法的使用範圍。而且,私鑰加密算法不支持數字簽名,這對遠距離的傳輸來說也是一個障礙。另一個影響私鑰的保密性的因素是算法的複雜性。現今為止,國際上比較通行的是DES、3DES以及最近推廣的AES。

數據加密标準(Data Encryption Standard)是IBM公司1977年為美國政府研制的一種算法。DES是以56位密鑰為基礎的密碼塊加密技術。它的加密過程一般如下:

①一次性把64位明文塊打亂置換。

②把64位明文塊拆成兩個32位塊;

③用機密DES密鑰把每個32位塊打亂位置16次;

④使用初始置換的逆置換。

但在實際應用中,DES的保密性受到了很大的挑戰,1999年1月,EFF和分散網絡用不到一天的時間,破譯了56位的DES加密信息。DES的統治地位受到了嚴重的影響,為此,美國推出DES的改進版本--三重加密(triple Data Encryption Standard)即在使用過程中,收發雙方都用三把密鑰進行加解密,無疑這種3*56式的加密方法大大提升了密碼的安全性,按現在的計算機的運算速度,這種破解幾乎是不可能的。但是我們在為數據提供強有力的安全保護的同時,也要化更多的時間來對信息進行三次加密和對每個密層進行解密。同時在這種前提下,使用這種密鑰的雙發都必須擁有3個密鑰,如果丢失了其中任何一把,其餘兩把都成了無用的密鑰。這樣私鑰的數量一下又提升了3倍,這顯然不是我們想看到的。于是美國國家标準與技術研究所推出了一個新的保密措施來保護金融交易。高級加密标準(Advanced Encryption Standard)美國國家技術标準委員會(NIST)在2000年10月選定了比利時的研究成果"Rijndael"作為AES的基礎。"Rijndael"是經過三年漫長的過程,最終從進入候選的五種方案中挑選出來的。

AES内部有更簡潔精确的數學算法,而加密數據隻需一次通過。AES被設計成高速,堅固的安全性能,而且能夠支持各種小型設備。AES與3DES相比,不僅是安全性能有重大差别,使用性能和資源有效利用上也有很大差别。雖然到現在為止,我還不了解AES的具體算法但是從下表可以看出其與3DES的巨大優越性。

還有一些其他的一些算法,如美國國家安全局使用的飛魚(Skipjack)算法,不過它的算法細節始終都是保密的,所以外人都無從得知其細節類容;一些私人組織開發的取代DES的方案:RC2、RC4、RC5等。

公鑰加密算法

面對在執行過程中如何使用和分享密鑰及保持其機密性等問題,1975年WHITEFIELD DIFFE和Marti Hellman提出了公開的密鑰密碼技術的概念,被稱為Diffie-Hellman技術。從此公鑰加密算法便産生了。

由于采取了公共密鑰,密鑰的管理和分發就變得簡單多了,對于一個n個用戶的網絡來說,隻需要2n個密鑰便可達到密度。同時使得公鑰加密法的保密性全部集中在及其複雜的數學問題上,它的安全性因而也得到了保證。但是在實際運用中,公共密鑰加密算法并沒有完全的取代私鑰加密算法。其重要的原因是它的實現速度遠遠趕不上私鑰加密算法。又因為它的安全性,所以常常用來加密一些重要的文件。自公鑰加密問世以來,學者們提出了許多種公鑰加密方法,它們的安全性都是基于複雜的數學難題。根據所基于的數學難題來分類,有以下三類系統目前被認為是安全和有效的:大整數因子分解系統(代表性的有RSA)、橢圓曲線離散對數系統(ECC)和離散對數系統(代表性的有DSA),下面就作出較為詳細的叙述。

RAS算法是由羅納多·瑞維斯特(rivet)、艾迪·夏彌爾(Shamir)和裡奧納多·艾德拉曼(Adelman)聯合推出的,RAS算法由此而得名。它的安全性是基于大整數素因子分解的困難性,而大整數因子分解問題是數學上的著名難題,至今沒有有效的方法予以解決,因此可以确保RSA算法的安全性。RSA系統是公鑰系統的最具有典型意義的方法,大多數使用公鑰密碼進行加密和數字簽名的産品和标準使用的都是RSA算法。它得具體算法如下:①找兩個非常大的質數,越大越安全。把這兩個質數叫做P和Q。

②找一個能滿足下列條件得數字E:

A.是一個奇數。

B.小于P×Q。

C.與(P-1)×(Q-1)互質,隻是指E和該方程的計算結果沒有相同的質數因子。

③計算出數值D,滿足下面性質:((D×E)-1)能被(P-1)×(Q-1)整除。

公開密鑰對是(P×Q,E)。

私人密鑰是D。

公開密鑰是E。

解密函數是:

假設T是明文,C是密文。

加密函數用公開密鑰E和模P×Q;

加密信息=(TE)模P×Q。

解密函數用私人密鑰D和模P×Q;

解密信息=(CD)模P×Q。

橢圓曲線加密技術

橢圓曲線加密技術(ECC)是建立在單向函數(橢圓曲線離散對數)得基礎上,由于它比RAS使用得離散對數要複雜得多。而且該單向函數比RSA得要難,所以與RSA相比,它有如下幾個優點:

安全性能更高加密算法的安全性能一般通過該算法的抗攻擊強度來反映。ECC和其他幾種公鑰系統相比,其抗攻擊性具有絕對的優勢。如160位 ECC與1024位 RSA有相同的安全強度。而210位 ECC則與2048bit RSA具有相同的安全強度。 

計算量小,處理速度快 雖然在RSA中可以通過選取較小的公鑰(可以小到3)的方法提高公鑰處理速度,即提高加密和簽名驗證的速度,使其在加密和簽名驗證速度上與ECC有可比性,但在私鑰的處理速度上(解密和簽名),ECC遠比RSA、DSA快得多。因此ECC總的速度比RSA、DSA要快得多。

存儲空間占用小 ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多,意味着它所占的存貯空間要小得多。這對于加密算法在IC卡上的應用具有特别重要的意義。

帶寬要求低 當對長消息進行加解密時,三類密碼系統有相同的帶寬要求,但應用于短消息時ECC帶寬要求卻低得多。而公鑰加密系統多用于短消息,例如用于數字簽名和用于對對稱系統的會話密鑰傳遞。帶寬要求低使ECC在無線網絡領域具有廣泛的應用前景。

ECC的這些特點使它必将取代RSA,成為通用的公鑰加密算法。比如SET協議的制定者已把它作為下一代SET協議中缺省的公鑰密碼算法。

以上綜述了兩種加密方法的各自的特點,并對他們優劣處作了一個簡要的比較,總體來說主要有下面幾個方面:第一、在管理方面,公鑰密碼算法隻需要較少的資源就可以實現目的,在密鑰的分配上,兩者之間相差一個指數級别(一個是n一個是n2)。所以私鑰密碼算法不适應廣域網的使用,而且更重要的一點是它不支持數字簽名。第二、在安全方面,由于公鑰密碼算法基于未解決的數學難題,在破解上幾乎不可能。對于私鑰密碼算法,到了AES雖說從理論來說是不可能破解的,但從計算機的發展角度來看。公鑰更具有優越性。第三、從速度上來看,AES的軟件實現速度已經達到了每秒數兆或數十兆比特。是公鑰的100倍,如果用硬件來實現的話這個比值将擴大到1000倍。第四、對于這兩中算法,因為算法不需要保密,所以制造商可以開發出低成本的芯片以實現數據加密。這些芯片有着廣泛的應用,适合于大規模生産。

縱觀這兩種算法一個從DES到3DES再到Ades,一個從RSA到ECC。其發展角度無不是從密鑰的簡單性,成本的低廉性,管理的簡易性,算法的複雜性,保密的安全性以及計算的快速性這幾個方面去考慮。因此,未來算法的發展也必定是從這幾個角度出發的,而且在實際操作中往往把這兩種算法結合起來,也需将來一種集兩種算法有點于一身的新型算法将會出現,到那個時候,電子商務的實現必将更加的快捷和安全。

優劣比較

以上綜述了兩種加密方法的各自的特點,并對他們優劣處作了一個簡要的比較,總體來說主要有下面幾個方面:

管理方面

第一、在管理方面,公鑰密碼算法隻需要較少的資源就可以實現目的,在密鑰的分配上,兩者之間相差一個指數級别(一個是n一個是n2)。所以私鑰密碼算法不适應廣域網的使用,而且更重要的一點是它不支持數字簽名。

安全方面

第二、在安全方面,由于公鑰密碼算法基于未解決的數學難題,在破解上幾乎不可能。對于私鑰密碼算法,到了AES雖說從理論來說是不可能破解的,但從計算機的發展角度來看。公鑰更具有優越性。

速度方面

第三、從速度上來看,AES的軟件實現速度已經達到了每秒數兆或數十兆比特。是公鑰的100倍,如果用硬件來實現的話這個比值将擴大到1000倍。

算法方面

第四、對于這兩中算法,因為算法不需要保密,所以制造商可以開發出低成本的芯片以實現數據加密。這些芯片有着廣泛的應用,适合于大規模生産。

總結

縱觀這兩種算法一個從DES到3DES再到ADES,一個從RSA到ECC。其發展角度無不是從密鑰的簡單性,成本的低廉性,管理的簡易性,算法的複雜性,保密的安全性以及計算的快速性這幾個方面去考慮。因此,未來算法的發展也必定是從這幾個角度出發的,而且在實際操作中往往把這兩種算法結合起來,也需将來一種集兩種算法有點于一身的新型算法将會出現,到那個時候,電子商務的實現必将更加的快捷和安全。

流行算法

目前世界上最流行的幾種加密體制和加密算法有:RSA算法和CCEP算法等。為防止破密,加密軟件還常采用硬件加密和加密軟盤。n一些軟件商品常帶有一種小的硬卡,這就是硬件加密措施。在軟盤上用激光穿孔,使軟件的存儲區有不為人所知的局部存壞,就可以防止非法複制。n這樣的加密軟盤可以為不掌握加密技術的人員使用,以保護軟件。由于計算機軟件的非法複制,解密及盜版問題日益嚴重,甚至引發國際争端,因此對信息加密技術和加密手段的研究與開發,受到各國計算機界的重視,發展日新月異

軟件保護技術

1、序列号保護

數學算法一項都是密碼加密的核心,但在一般的軟件加密中,它似乎并不太為人們關心,因為大多數時候軟件加密本身實現的都是一種編程的技巧。但近幾年來随着序列号加密程序的普及,數學算法在軟件加密中的比重似乎是越來越大了。

看看在網絡上大行其道的序列号加密的工作原理。當用戶從網絡上下載某個shareware——共享軟件後,一般都有使用時間上的限制,當過了共享軟件的試用期後,你必須到這個軟件的公司去注冊後方能繼續使用。注冊過程一般是用戶把自己的私人信息(一般主要指名字)連同信用卡号碼告訴給軟件公司,軟件公司會根據用戶的信息計算出一個序列碼,在用戶得到這個序列碼後,按照注冊需要的步驟在軟件中輸入注冊信息和注冊碼,其注冊信息的合法性由軟件驗證通過後,軟件就會取消掉本身的各種限制,這種加密實現起來比較簡單,不需要額外的成本,用戶購買也非常方便,在互聯網上的軟件80%都是以這種方式來保護的。

軟件驗證序列号的合法性過程,其實就是驗證用戶名和序列号之間的換算關系是否正确的過程。其驗證最基本的有兩種,一種是按用戶輸入的姓名來生成注冊碼,再同用戶輸入的注冊碼比較,公式表示如下:

序列号=F(用戶名)

但這種方法等于在用戶軟件中再現了軟件公司生成注冊碼的過程,實際上是非常不安全的,不論其換算過程多麼複雜,解密者隻需把你的換算過程從程序中提取出來就可以編制一個通用的注冊程序。

另外一種是通過注冊碼來驗證用戶名的正确性,公式表示如下:

用戶名稱=F逆(序列号)(如ACDSEE)

這其實是軟件公司注冊碼計算過程的反算法,如果正向算法與反向算法不是對稱算法的話,對于解密者來說,的确有些困難,但這種算法相當不好設計。

于是有人考慮到以下的算法:

F1(用戶名稱)=F2(序列号)

F1、F2是兩種完全不同的的算法,但用戶名通過F1算法計算出的特征字等于序列号通過F2算法計算出的特征字,這種算法在設計上比較簡單,保密性相對以上兩種算法也要好的多。如果能夠把F1、F2算法設計成不可逆算法的話,保密性相當的好;可一旦解密者找到其中之一的反算法的話,這種算法就不安全了。一元算法的設計看來再如何努力也很難有太大的突破,那麼二元呢?

特定值=F(用戶名,序列号)

這個算法看上去相當不錯,用戶名稱與序列号之間的關系不再那麼清晰了,但同時也失去了用戶名于序列号的一一對應關系,軟件開發者必須自己維護用戶名稱與序列号之間的唯一性,但這似乎不是難以辦到的事,建個數據庫就可以了。當然也可以把用戶名稱和序列号分為幾個部分來構造多元的算法。

特定值=F(用戶名1,用戶名2,...序列号1,序列号2...)

現有的序列号加密算法大多是軟件開發者自行設計的,大部分相當簡單。而且有些算法作者雖然下了很大的功夫,效果卻往往得不到它所希望的結果。

2、時間限制

有些程序的試用版每次運行都有時間限制,例如運行10分鐘或20分鐘就停止工作,必須重新運行該程序才能正常工作。這些程序裡面自然有個定時器來統計程序運行的時間。這種方法使用的較少。

3、Key File 保護

Key File(注冊文件)是一種利用文件來注冊軟件的保護方式。Key File一般是一個小文件,可以是純文本文件,也可以是包含不可顯示字符的二進制文件,其内容是一些加密過或未加密的數據,其中可能有用戶名、注冊碼等信息。文件格式則由軟件作者自己定義。試用版軟件沒有注冊文件,當用戶向作者付費注冊之後,會收到作者寄來的注冊文件,其中可能包含用戶的個人信息。用戶隻要将該文件放入指定的目錄,就可以讓軟件成為正式版。該文件一般是放在軟件的安裝目錄中或系統目錄下。軟件每次啟動時,從該文件中讀取數據,然後利用某種算法進行處理,根據處理的結果判斷是否為正确的注冊文件,如果正确則以注冊版模式來運行。這種保護方法使用也不多。

4、CD-check

即光盤保護技術。程序在啟動時判斷光驅中的光盤上是否存在特定的文件,如果不存在則認為用戶沒有正版光盤,拒絕運行。在程序運行的過程當中一般不再檢查光盤的存在與否。Windows下的具體實現一般是這樣的:先用GetLogicalDriveStrings( )或GetLogicalDrives( )得到系統中安裝的所有驅動器的列表,然後再用GetDriveType( )檢查每一個驅動器,如果是光驅則用CreateFileA( )或FindFirstFileA( )等函數檢查特定的文件存在與否,并可能進一步地檢查文件的屬性、大小、内容等。

5、軟件狗

軟件狗是一種智能型加密工具。它是一個安裝在并口、串口等接口上的硬件電路,同時有一套使用于各種語言的接口軟件和工具軟件。當被狗保護的軟件運行時,程序向插在計算機上的軟件狗發出查詢命令,軟件狗迅速計算查詢并給出響應,正确的響應保證軟件繼續運行。如果沒有軟件狗,程序将不能運行,複雜的軟硬件技術結合在一起防止軟件盜版。真正有商業價值得軟件一般都用軟件狗來保護。

平時常見的狗主要有“洋狗”(國外狗)和“土狗”(國産狗)。這裡“洋狗”主要指美國的彩虹和以色列的hasp,“土狗”主要有金天地(現在與美國彩虹合資,叫“彩虹天地”)、深思、尖石。總的說來,“洋狗”在軟件接口、加殼、反跟蹤等“軟”方面沒有“土狗”好,但在硬件上破解難度非常大;而“土狗”在軟的方面做的很好,但在硬件上不如“洋狗”,稍有單片機功力的人,都可以複制。

6、軟盤加密

通過在軟盤上格式化一些非标準磁道,在這些磁道上寫入一些數據,如軟件的解密密鑰等等。這種軟盤成為“鑰匙盤”。軟件運行時用戶将軟盤插入,軟件讀取這些磁道中的數據,判斷是否合法的“鑰匙盤”。

軟盤加密還有其它一些技術,如弱位加密等等。随着近年來軟盤的沒落,這種方法基本上退出了曆史舞台。

7、将軟件與機器硬件信息結合

用戶得到(買到或從網上下載)軟件後,安裝時軟件從用戶的機器上取得該機器的一些硬件信息(如硬盤序列号、BOIS序列号等等),然後把這些信息和用戶的序列号、用戶名等進行計算,從而在一定程度上将軟件和硬件部分綁定。用戶需要把這一序列号用Email、電話或郵寄等方法寄給軟件提供商或開發商,軟件開發商利用注冊機(軟件)産生該軟件的注冊号寄給用戶即可。軟件加密雖然加密強度比硬件方法較弱,但它具有非常廉價的成本、方便的使用方法等優點。非常适合做為采用光盤(CDROM)等方式發授軟件的加密方案。

此種加密算法的優點:

不同機器注冊碼不同。用戶獲得一個密碼隻能在一台機器上注冊使用軟件。不同于目前大多軟件采用的注冊方法,即隻要知道注冊碼,可在任何機器上安裝注冊。

不需要任何硬件或軟盤。

可以選擇控制軟件運行在什麼機器、運行多長時間或次數等。

可讓軟件在不注冊前的功能為演示軟件,隻能運行一段時間或部分功能。

在使用注冊号産生軟件(注冊機)時可采用使用密碼、密鑰盤、總次數限制等方法。

方便易用,價格低廉。

這種加密還有以下特點:

1、注冊加密的軟件,隻能在一台機器上安裝使用。把軟件拷貝到其它機器上不能運行。

2、若用戶想在另一機器上安裝運行,必須把軟件在這一機器上運行時的序列号,寄給軟件出版商換取注冊密碼。當然應再交一份軟件費用。

3、此加密方法特别适應在因特網上發布的軟件及用光盤發布的軟件。

相關詞條

相關搜索

其它詞條