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