編碼和加密的區(qū)別
編碼和加密的區(qū)別
IT術(shù)語中有編碼和加密這兩個詞語,行業(yè)內(nèi)人士基本都知道編碼和加密是兩個概念,但業(yè)余愛好者卻有時候?qū)⑦@兩個概念等同化,下面學(xué)習(xí)啦小編跟你講講編碼和加密的區(qū)別。
一、編碼與解碼的本質(zhì)區(qū)別
編碼絕對不是加密。加密是可以算是一種編碼的操作。
編碼和加密的區(qū)別說通俗一點,在于編碼是通常希望別人解碼的。 而加密是不希望的。
編碼更多的是為了轉(zhuǎn)換格式,加密是為了安全。
解碼,是編碼的逆過程。解密,是加密的逆過程。
二、加密概述
加密,是以某種特殊的算法改變原有的信息數(shù)據(jù),使得未授權(quán)的用戶即使獲得了已加密的信息,但因不知解密的方法,仍然無法了解信息的內(nèi)容。 在航空學(xué)中,指利用航空攝影像片上已知的少數(shù)控制點,通過對像片測量和計算的方法在像對或整條航攝帶上增加控制點的作業(yè)。
三、密碼學(xué)中加密的安全性
加密之所以安全,絕非因不知道加密解密算法方法,而是加密的密鑰是絕對的隱藏,現(xiàn)在流行的RSA和AES加密算法都是完全公開的,一方取得已加密的數(shù)據(jù),就算知道加密算法也好,若沒有加密的密鑰,也不能打開被加密保護(hù)的信息。單單隱蔽加密算法以保護(hù)信息,在學(xué)界和業(yè)界已有相當(dāng)討論,一般認(rèn)為是不夠安全的。公開的加密算法是給黑客和加密家長年累月攻擊測試,對比隱蔽的加密算法要安全得多。
在密碼學(xué)中,加密是將明文信息隱匿起來,使之在缺少特殊信息時不可讀。雖然加密作為通信保密的手段已經(jīng)存在了幾個世紀(jì),但是,只有那些對安全要求特別高的組織和個人才會使用它。在20世紀(jì)70年代中期,強(qiáng)加密(Strong Encryption) 的使用開始從政府保密機(jī)構(gòu)延伸至公共領(lǐng)域, 并且目 前已經(jīng)成為保護(hù)許多廣泛使用系統(tǒng)的方法,比如因特網(wǎng)電子商務(wù)、手機(jī)網(wǎng)絡(luò)和銀行自動取款機(jī)等。
加密可以用于保證安全性, 但是其它一些技術(shù)在保障通信安全方面仍然是必須的,尤其是關(guān)于數(shù)據(jù)完整性和信息驗證;例如,信息驗證碼(MAC)或者數(shù)字簽名。另一方面的考慮是為了應(yīng)付流量分析。
四、編碼的字符種類
字符編碼是一套法則,使用該法則能夠?qū)ψ匀徽Z言的字符的一個集合(如字母表或音節(jié)表),與其他東西的一個集合(如號碼或電脈沖)進(jìn)行配對。
1.文字編碼
文字編碼(Text encoding)使用一種標(biāo)記語言來標(biāo)記一篇文字的結(jié)構(gòu)和其他特征,以方便計算機(jī)進(jìn)行處理。
2.語義編碼
語義編碼(Semantics encoding),以正式語言乙對正式語言甲進(jìn)行語義編碼,即是使用語言乙表達(dá)語言甲所有的詞匯(如程序或說明)的一種方法。
3.電子編碼
電子編碼(Electronic encoding)是將一個信號轉(zhuǎn)換成為一個代碼,這種代碼是被優(yōu)化過的以利于傳輸或存儲。轉(zhuǎn)換工作通常由一個編解碼器完成。
4.神經(jīng)編碼
神經(jīng)編碼(Neural encoding)是指信息在神經(jīng)元中被如何描繪的方法。
5.記憶編碼
記憶編碼(Memory encoding)是把感覺轉(zhuǎn)換成記憶的過程。
6.加密
加密(Encryption)是為了保密而對信息進(jìn)行轉(zhuǎn)換的過程。
7.譯碼
譯碼(Transcoding)是將編碼從一種格式轉(zhuǎn)換到另一種格式的過程。
小編推薦:加密技巧
1.不要使用老的加密算法
企業(yè)應(yīng)當(dāng)停止使用DES等老的加密算法,也不要使用其親戚3DES(三重數(shù)據(jù)加密標(biāo)準(zhǔn))。
2.使用企業(yè)支持的最長的加密密鑰
建議企業(yè)盡可能使用最大長度的密鑰,這可以使那些無法訪問后門的企業(yè)難以破解企業(yè)的加密。當(dāng)今,AES 128可謂強(qiáng)健,但如果可能,不妨使用AES 512 或更長的密鑰。
3.多層加密
建議企業(yè)盡可能地利用多層加密,這可以增加攻擊者的困難。如果有可能,不妨對數(shù)據(jù)庫的每個字段、每個表以及整個數(shù)據(jù)庫都進(jìn)行加密。
4.安全存儲加密密鑰
企業(yè)面臨的最大問題可能并不是加密算法被美國的國安局留下后門,而是密碼本身僅僅是加密方案的一部分。對于基礎(chǔ)架構(gòu)的其它要素,如密鑰管理系統(tǒng),企業(yè)也必須保證其安全。攻擊者都愿意對付安全系統(tǒng)的最薄弱環(huán)節(jié)。如果攻擊者很容易就可以竊取密鑰,為什么還會費力破解加密算法呢?
有的企業(yè)將保護(hù)其數(shù)據(jù)的密鑰給第三方,尤其是在企業(yè)將數(shù)據(jù)存儲在公共云中并由云供應(yīng)商加密和保護(hù)時。這里的問題是,企業(yè)無法控制密鑰,而是必須相信云供應(yīng)商的雇員會安全地保存密鑰。
如果企業(yè)可以實施一種可以將密鑰控制在云中的加密系統(tǒng),就會安全得多。自動處理加密的云加密網(wǎng)關(guān)可以幫助公司實現(xiàn)這種安全。
5.確保正確實施加密
事實上,實施加密系統(tǒng)并非易事,因為它有許多動態(tài)部件,任何一個部件都有可能成為一個薄弱環(huán)節(jié)。你必須進(jìn)行大量調(diào)查,確保正確實施加密。
在實施加密過程中,哪些方面容易出錯?除了密鑰容易遭受攻擊,還有CBC(密碼分組鏈接)的實施方式。使用CBC,可以用同樣長度的隨機(jī)文本塊(也稱為初始化向量)對純文本進(jìn)行異或運算,然后對其進(jìn)行加密,產(chǎn)生一個加密文本塊。然后,將前面產(chǎn)生的密文塊作為一個初始化向量對下一個純文本塊進(jìn)行異或運算。
CBC的正確實施要求在開始每個過程時都有一個新的初始化向量。一個常見的錯誤是用一個不加改變的靜態(tài)初始化向量來實施CBC。如果正確實施了CBC,那么,如果我們在兩個不同的場合加密了文本塊,所生產(chǎn)的密文塊就不會相同。
6.不要忽視外部因素
公司幾乎無法控制的外部因素有可能破壞加密系統(tǒng)的安全性。例如,SSL依賴于數(shù)字證書,而且這些因素依賴于嵌入在瀏覽器(如IE、火狐、Chrome等)中的根證書頒發(fā)機(jī)構(gòu)的完整性。但是,我們?nèi)绾沃榔涫欠窨尚?,或者這些證書頒發(fā)機(jī)構(gòu)不是某外國情報機(jī)構(gòu)的幌子?你是否覺得這聽起來牽強(qiáng)附會,但卻有可能是事實。
此外,DNS也是不得不重視的弱點。只要DNS被攻克,攻擊者就可以使用釣魚技術(shù)繞過加密。
當(dāng)然,這里強(qiáng)調(diào)的是加密問題的各種可能性。一個正確實施的加密系統(tǒng)只能在一種情況下被攻克,即測中密鑰,在短時間內(nèi)猜對密鑰并非不可能,但其可能性微乎其微。