加密
加密
加密,是以某種特殊的演演算法改變原有的信息數據,使得未授權的用戶即使獲得了已加密的信息,但因不知解密的方法,仍然無法了解信息的內容。在航空學中,指利用航空攝影像片上已知的少數控制點,通過對像片測量和計算的方法在像對或整條航攝帶上增加控制點的作業。
密,絕非密密算,密密鑰絕隱藏,流RSA和AES加密演演算法都是完全公開的,一方取得已加密的數據,就算知道加密演演算法也好,若沒有加密的密鑰,也不能打開被加密保護的信息。單單隱蔽加密演演算法以保護信息,在學界和業界已有相當討論,一般認為是不夠安全的。公開的加密演演算法是給黑客和加密家長年累月攻擊測試,對比隱蔽的加密演演算法要安全得多。
密碼,密息隱匿,缺殊息讀。雖密保密段存紀,,求組織。紀,強密( )始政府保密構延伸共領域,且 保護廣泛系統,網商務、網路銀取款。
密保證,技術保障仍必須,尤據完整息驗證;例,息驗證碼()簽。另考慮付流量析。
加密或軟體編碼隱匿(Code Obfuscation)同時也在軟體版權保護中用於對付反向工程,未授權的程序分析,破解和軟體盜版及數位內容的數位版權管理(DRM)等。
儘管加密或為了安全目的對信息解碼這個概念十分簡單,但在這裡仍需對其進行解釋。數據加密的基本過程包括對稱為明文的原來可讀信息進行翻譯,譯成稱為密文或密碼的代碼形式。該過程的逆過程為解密,即將該編碼信息轉化為其原來的形式的過程。
在古代,加密是由許多辦法完成的。在中國較“流行”使用澱粉水在紙上寫字,再浸泡在碘水中使字浮現出來。而外國就不同了,最經典的莫過於伯羅奔尼撒戰爭。公元前405年,雅典和斯巴達之間的伯羅奔尼撒戰爭已進入尾聲。斯巴達軍隊逐漸佔據了優勢地位,準備對雅典發動最後一擊。這時,原來站在斯巴達一邊的波斯帝國突然改變態度,停止了對斯巴達的援助,意圖是使雅典和斯巴達在持續的戰爭中兩敗俱傷,以便從中漁利。在這種情況下,斯巴達急需摸清波斯帝國的具體行動計劃,以便採取新的戰略方針。正在這時,斯巴達軍隊捕獲了一名從波斯帝國回雅典送信的雅典信使。斯巴達士兵仔細搜查這名信使,可搜查了好大一陣,除了從他身上搜出一條布滿雜亂無章的希臘字母的普通腰帶外,別無他獲。情報究竟藏在什麼地方呢?斯巴達軍隊統帥萊桑德把注意力集中到了那條腰帶上,情報一定就在那些雜亂的字母之中。他反覆琢磨研究這些天書似的文字,把腰帶上的字母用各種方法重新排列組合,怎麼也解不出來。最後,萊桑德失去了信心,他一邊擺弄著那條腰帶,一邊思考著弄到情報的其他途徑。當他無意中把腰帶呈螺旋形纏繞在手中的劍鞘上時,奇迹出現了。原來腰帶上那些雜亂無章的字母,竟組成了一段文字。這便是雅典間諜送回的一份情報,它告訴雅典,波斯軍隊準備在斯巴達軍隊發起最後攻擊時,突然對斯巴達軍隊進行襲擊。斯巴達軍隊根據這份情報馬上改變了作戰計劃,先以迅雷不及掩耳之勢攻擊毫無防備的波斯軍隊,並一舉將它擊潰,解除了後顧之憂。隨後,斯巴達軍隊回師征伐雅典,終於取得了戰爭的最後勝利。
雅典間諜送回的腰帶情報,就是世界上最早的密碼情報,具體運用方法是,通信雙方首先約定密碼解讀規則,然後通信—方將腰帶(或羊皮等其他東西)纏繞在約定長度和粗細的木棍上書寫。收信—方接到后,如不把腰帶纏繞在同樣長度和粗細的木棍上,就只能看到一些毫無規則的字母。後來,這種密碼通信方式在希臘廣為流傳。現代的密碼電報,據說就是受了它的啟發而發明的。
加密作為保障數據安全的一種方式,它不是才有的,它產生的歷史相當久遠,它是起源於要追溯於公元前2000年(幾個世紀了),雖然它不是我們所講的加密技術(甚至不叫加密),但作為一種加密的概念,確實早在幾個世紀前就誕生了。當時埃及人是最先使用特別的象形文字作為信息編碼的,隨著時間推移,巴比倫、美索不達米亞和希臘文明都開始使用一些方法來保護他們的書面信息。
近期加密技術主要應用于軍事領域,如美國獨立戰爭、美國內戰和兩次世界大戰。最廣為人知的編碼機器是German Enigma機,在第二次世界大戰中德國人利用它創建了加密信息。此後,由於Alan Turing和Ultra計劃以及其他人的努力,終於對德國人的密碼進行了破解。當初,計算機的研究就是為了破解德國人的密碼,人們並沒有想到計算機帶來的信息革命。隨著計算機的發展,運算能力的增強,過去的密碼都變得十分簡單了,於是人們又不斷地研究出了新的數據加密方式,如利用RSA演演算法產生的私鑰和公鑰就是在這個基礎上產生的。
數據加密的基本過程就是對原來為明文的文件或數據按某種演演算法進行處理,使其成為不可讀的一段代碼,通常稱為"密文",使其只能在輸入相應的密鑰之後才能顯示出本來內容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。
該過程的逆過程為解密,即將該編碼信息轉化為其原來數據的過程。
當今網路社會選擇加密已是我們別無選擇,其一是我們知道在網際網路上進行文件傳輸、電子郵件商務往來存在許多不安全因素,特別是對於一些大公司和一些機密文件在網路上傳輸。而且這種不安全性是網際網路存在基礎——TCP/IP協議所固有的,包括一些基於TCP/IP的服務;另一方面,網際網路給眾多的商家帶來了無限的商機,網際網路把全世界連在了一起,走向網際網路就意味著走向了世界,這對於無數商家無疑是夢寐以求的好事,特別是對於中小企業。為了解決這一對矛盾、為了能在安全的基礎上大開這通向世界之門,我們只好選擇了數據加密和基於加密技術的數字簽名。
加密在網路上的作用就是防止有用或私有化信息在網路上被攔截和竊取。一個簡單的例子就是密碼的傳輸,計算機密碼極為重要,許多安全防護體系是基於密碼的,密碼的泄露在某種意義上來講意味著其安全體系的全面崩潰。
通過網路進行登錄時,所鍵入的密碼以明文的形式被傳輸到伺服器,而網路上的竊聽是一件極為容易的事情,所以很有可能黑客會竊取得用戶的密碼,如果用戶是Root用戶或Administrator用戶,那後果將是極為嚴重的。
還有如果你公司在進行著某個招標項目的投標工作,工作人員通過電子郵件的方式把他們單位的標書發給招標單位,如果此時有另一位競爭對手從網路上竊取到你公司的標書,從中知道你公司投標的標的,那後果將是怎樣,相信不用多說聰明的你也明白。
這樣的例子實在是太多了,解決上述難題的方案就是加密,加密后的口令即使被黑客獲得也是不可讀的,加密后的標書沒有收件人的私鑰也就無法解開,標書成為一大堆無任何實際意義的亂碼。總之無論是單位還是個人在某種意義上來說加密也成為當今網路社會進行文件或郵件安全傳輸的時代象徵!
數字簽名就是基於加密技術的,它的作用就是用來確定用戶是否是真實的。應用最多的還是電子郵件,如當用戶收到一封電子郵件時,郵件上面標有發信人的姓名和信箱地址,很多人可能會簡單地認為發信人就是信上說明的那個人,但實際上偽造一封電子郵件對於一個通常人來說是極為容易的事。在這種情況下,就要用到加密技術基礎上的數字簽名,用它來確認發信人身份的真實性。
類似數字簽名技術的還有一種身份認證技術,有些站點提供入站FTP和WWW服務,當然用戶通常接觸的這類服務是匿名服務,用戶的權力要受到限制,但也有的這類服務不是匿名的,如某公司為了信息交流提供用戶的合作夥伴非匿名的FTP服務,或開發小組把他們的Web網頁上載到用戶的WWW伺服器上,問題就是,用戶如何確定正在訪問用戶的伺服器的人就是用戶認為的那個人,身份認證技術就是一個好的解決方案。
在這裡需要強調一點的就是,文件加密其實不只用於電子郵件或網路上的文件傳輸,其實也可應用靜態的文件保護,如PIP軟體就可以對磁碟、硬碟中的文件或文件夾進行加密,以防他人竊取其中的信息。
加密建立在對信息進行數學編碼和解碼的基礎上。加密類型分為兩種,對稱加密與非對稱加密,對稱加密雙方採用共同密鑰,(當然這個密鑰是需要對外保密的),這裡講一下非對稱加密,這種加密方式存在兩個密鑰,密鑰-- 一種是公共密鑰(正如其名,這是一個可以公開的密鑰值),一種是私人密鑰(對外保密)。您發送信息給我們時,使用公共密鑰加密信息。一旦我們收到您的加密信息,我們則使用私人密鑰破譯信息密碼(被我們的公鑰加密的信息,只有我們的私鑰可以解密,這樣,就在技術上保證了這封信只有我們才能解讀——因為別人沒有我們的私鑰)。使用私人密鑰加密的信息只能使用公共密鑰解密(這一功能應用與數字簽名領域,我的私鑰加密的數據,只有我的公鑰可以解讀,具體內容參考數字簽名的信息)反之亦然,以確保您的信息安全。
最早、最著名的保密密鑰或對稱密鑰加密演演算法DES)Data Encryption Standard)是由IBM公司在70年代發展起來的,並經政府的加密標準篩選后,於1976年11月被美國政府採用,DES隨後被美國國家標準局和美國國家標準協會(American National Standard Institute,ANSI)承認。
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的"每輪"密鑰值由56位的完整密鑰得出來。DES用軟體進行解碼需用很長時間,而用硬體解碼速度非常快。幸運的是,當時大多數黑客並沒有足夠的設備製造出這種硬體設備。在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。當時DES被認為是一種十分強大的加密方法。
隨著計算機硬體的速度越來越快,製造一台這樣特殊的機器的花費已經降到了十萬美元左右,而用它來保護十億美元的銀行,那顯然是不夠保險了。另一方面,如果只用它來保護一台普通伺服器,那麼DES確實是一種好的辦法,因為黑客絕不會僅僅為入侵一個伺服器而花那麼多的錢破解DES密文。
另一種非常著名的加密演演算法就是RSA了,RSA)Rivest-Shamir-Adleman)演演算法是基於大數不可能被質因數分解假設的公鑰體系。簡單地說就是找兩個很大的質數。一個對外公開的為"公鑰"(Public key) ,另一個不告訴任何人,稱為"私鑰"(Private key)。這兩個密鑰是互補的,也就是說用公鑰加密的密文可以用私鑰解密,反過來也一樣。
假設用戶甲要寄信給用戶乙,他們互相知道對方的公鑰。甲就用乙的公鑰加密郵件寄出,乙收到后就可以用自己的私鑰解密出甲的原文。由於別人不知道乙的私鑰,所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方面,由於每個人都知道乙的公鑰,他們都可以給乙發信,那麼乙怎麼確信是不是甲的來信呢?那就要用到基於加密技術的數字簽名了。
甲用自己的私鑰將簽名內容加密,附加在郵件后,再用乙的公鑰將整個郵件加密(注意這裡的次序,如果先加密再簽名的話,別人可以將簽名去掉后簽上自己的簽名,從而篡改了簽名)。這樣這份密文被乙收到以後,乙用自己的私鑰將郵件解密,得到甲的原文和數字簽名,然後用甲的公鑰解密簽名,這樣一來就可以確保兩方面的安全了。
加密技術是最常用的安全保密手段,利用技術手段把重要的數據變為亂碼(加密)傳送,到達目的地后再用相同或不同的手段還原(解密)。
加密技術包括兩個元素:演演算法和密鑰。演演算法是將普通的信息或者可以理解的信息與一串數字(密鑰)結合,產生不可理解的密文的步驟,密鑰是用來對數據進行編碼和解密的一種演演算法。在安全保密中,可通過適當的鑰加密技術和管理機制來保證網路的信息通信安全。
加密技術的應用是多方面的,但最為廣泛的還是在電子商務,VPN和數據安全方面的應用,下面就分別簡敘。
電子商務
電子商務(E-business)要求顧客可以在網上進行各種商務活動,不必擔心自己的信用卡會被人盜用。在過去,用戶為了防止信用卡的號碼被竊取到,一般是通過電話訂貨,然後使用用戶的信用卡進行付款。人們開始用RSA(一種公開/私有密鑰)的加密技術,提高信用卡交易的安全性,從而使電子商務走向實用成為可能。
許多人都知道NETSCAPE公司是Internet商業中領先技術的提供者,該公司提供了一種基於RSA和保密密鑰的應用於網際網路的技術,被稱為安全插座層(Secure Sockets Layer,SSL)。
也許很多人知道Socket,它是一個編程介面,並不提供任何安全措施,而SSL不但提供編程介面,而且向上提供一種安全的服務,SSL3.0已經應用到了伺服器和瀏覽器上,SSL2.0則只能應用於伺服器端。
SSL3.0用一種電子證書(electric certificate)來實行身份進行驗證后,雙方就可以用保密密鑰進行安全的會話了。它同時使用"對稱"和"非對稱"加密方法,在客戶與電子商務的伺服器進行溝通的過程中,客戶會產生一個Session Key,然後客戶用伺服器端的公鑰將Session Key進行加密,再傳給伺服器端,在雙方都知道Session Key后,傳輸的數據都是以Session Key進行加密與解密的,但伺服器端發給用戶的公鑰必需先向有關發證機關申請,以得到公證。
基於SSL3.0提供的安全保障,用戶就可以自由訂購商品並且給出信用卡號了,也可以在網上和合作夥伴交流商業信息並且讓供應商把訂單和收貨單從網上發過來,這樣可以節省大量的紙張,為公司節省大量的電話、傳真費用。在過去,電子信息交換(Electric Data Interchange,EDI)、信息交易(information transaction)和金融交易(financial transaction)都是在專用網路上完成的,使用專用網的費用大大高於網際網路。正是這樣巨大的誘惑,才使人們開始發展網際網路上的電子商務,但不要忘記數據加密。
VPN
越來越多的公司走向國際化,一個公司可能在多個國家都有辦事機構或銷售中心,每一個機構都有自己的區域網LAN(Local Area Network),但在當今的網路社會人們的要求不僅如此,用戶希望將這些LAN連結在一起組成一個公司的廣域網,這個已不是什麼難事了。
事實上,很多公司都已經這樣做了,但他們一般使用租用專用線路來連結這些區域網,他們考慮的就是網路的安全問題。具有加密/解密功能的路由器已到處都是,這就使人們通過網際網路連接這些區域網成為可能,這就是我們通常所說的虛擬專用網(Virtual Private Network ,VPN)。當數據離開發送者所在的區域網時,該數據首先被用戶端連接到網際網路上的路由器進行硬體加密,數據在網際網路上是以加密的形式傳送的,當達到目的LAN的路由器時,該路由器就會對數據進行解密,這樣目的LAN中的用戶就可以看到真正的信息了。
數據安全
電腦已經進入千家萬戶,並且在商業辦公中起著不可替代的作用。電腦中保存的重要數據和機密的數據的安全已經成為所有電腦使用者十分重視的問題。無論是個人的電腦數據或公司的電腦數據,如果一旦泄密,造成的損失和影響將是巨大的。
加密或軟體編碼隱匿(Code Obfuscation)同時也在軟體版權保護中,用於對付反向工程,未授權的程序分析,破解和軟體盜版及數位內容的數位版權管理(DRM)等。
這種加密服務在安卓應用方面尤其明顯,由於打包黨增多,很多尤其的安卓應用都被反編譯,逆向分析,二次打包,所以很多安卓開發者不得不對安卓應用進行加密,然而由於大部分開發者都把主要的目光集中在App開發和運營上,並沒有太多的時間和精力自己研發有效的App加密方法,於是就催生出愛加密這種第三方安卓應用加密服務商,據36氪報道,愛加密是基於 SaaS 交付模式的第三方App加密平台,讓開發者只需5—10分鐘便可在線完成 App 高級加固,為App加上一層保護殼,既可以有效防止App在運營過程中免遭被植入惡意代碼、二次打包、山寨盜版的風險,又可以幫助開發者節省開發時間和成本。
加密演演算法可以分為兩類:對稱加密和非對稱加密
下面的技巧可強化加密的安全性:
1.不要使用老的加密演演算法
企業應當停止使用DES等老的加密演演算法,也不要使用其親戚3DES(三重數據加密標準)。
2.使用企業支持的最長的加密密鑰
建議企業儘可能使用最大長度的密鑰,這可以使那些無法訪問後門的企業難以破解企業的加密。當今,AES 128可謂強健,但如果可能,不妨使用AES 512 或更長的密鑰。
3.多層加密
建議企業儘可能地利用多層加密,這可以增加攻擊者的困難。如果有可能,不妨對資料庫的每個欄位、每個表以及整個資料庫都進行加密。
4.安全存儲加密密鑰
企業面臨的最大問題可能並不是加密演演算法被美國的國安局留下後門,而是密碼本身僅僅是加密方案的一部分。對於基礎架構的其它要素,如密鑰管理系統,企業也必須保證其安全。攻擊者都願意對付安全系統的最薄弱環節。如果攻擊者很容易就可以竊取密鑰,為什麼還會費力破解加密演演算法呢?
有的企業將保護其數據的密鑰給第三方,尤其是在企業將數據存儲在公共雲中並由雲供應商加密和保護時。這裡的問題是,企業無法控制密鑰,而是必須相信雲供應商的僱員會安全地保存密鑰。
如果企業可以實施一種可以將密鑰控制在雲中的加密系統,就會安全得多。自動處理加密的雲加密網關可以幫助公司實現這種安全。
5.確保正確實施加密
事實上,實施加密系統並非易事,因為它有許多動態部件,任何一個部件都有可能成為一個薄弱環節。你必須進行大量調查,確保正確實施加密。
在實施加密過程中,哪些方面容易出錯?除了密鑰容易遭受攻擊,還有CBC(密碼分組鏈接)的實施方式。使用CBC,可以用同樣長度的隨機文本塊(也稱為初始化向量)對純文本進行異或運算,然後對其進行加密,產生一個加密文本塊。然後,將前面產生的密文塊作為一個初始化向量對下一個純文本塊進行異或運算。
CBC的正確實施要求在開始每個過程時都有一個新的初始化向量。一個常見的錯誤是用一個不加改變的靜態初始化向量來實施CBC。如果正確實施了CBC,那麼,如果我們在兩個不同的場合加密了文本塊,所生產的密文塊就不會相同。
6.不要忽視外部因素
公司幾乎無法控制的外部因素有可能破壞加密系統的安全性。例如,SSL依賴於數字證書,而且這些因素依賴於嵌入在瀏覽器(如IE、火狐、Chrome等)中的根證書頒發機構的完整性。但是,我們如何知道其是否可信,或者這些證書頒發機構不是某外國情報機構的幌子?你是否覺得這聽起來牽強附會,但卻有可能是事實。
此外,DNS也是不得不重視的弱點。只要DNS被攻克,攻擊者就可以使用釣魚技術繞過加密。
當然,這裡強調的是加密問題的各種可能性。一個正確實施的加密系統只能在一種情況下被攻克,即測中密鑰,在短時間內猜對密鑰並非不可能,但其可能性微乎其微。