????? 本文主要是了解加解密的基礎(chǔ)知識(shí)吁恍,首先我們了解什么是加解密及分類客蹋,然后我們談到加解密的系統(tǒng)組成,接著我們看對(duì)稱加密算法及當(dāng)今一些加密算法介紹棘捣,最后我們了解非對(duì)稱加密及現(xiàn)今的一些非對(duì)稱加密算法。
什么加解密及分類:
????? 數(shù)據(jù)加密就是原來為明文的文件或者數(shù)據(jù)通過某種算法進(jìn)行處理以后休建,使其變成不可讀的一段代碼乍恐,通常這種稱為“密文“,使其需要輸入相應(yīng)密鑰以后才能顯示出來原本可讀的內(nèi)容测砂。
???? 加解密算法是密碼學(xué)的核心技術(shù)茵烈,從設(shè)計(jì)理念上可以分為兩大基本類型:對(duì)稱加密、非對(duì)稱加密邑彪。
加解密系統(tǒng)基本組成:
?????? 加解密系統(tǒng)典型組件一般包括:加解密算法瞧毙、加密密鑰、解密密鑰寄症。其中加解密算法自身是固定不變的宙彪,并且一般都是公開的;密鑰則是最關(guān)鍵的信息有巧,需要安全地保存起來释漆,甚至通過特殊硬件進(jìn)行保護(hù)。一般來說篮迎,對(duì)同一種算法男图,密鑰需要按照特定算法每次加密前隨機(jī)生成示姿,長度越長,則加密強(qiáng)度越大逊笆。
????? 加密過程中栈戳,通過加密算法和加密密鑰,對(duì)明文進(jìn)行加密难裆,獲得密文子檀。
???? 解密過程中,通過解密算法和解密密鑰乃戈,對(duì)密文進(jìn)行解密褂痰,獲得明文。
????? 根據(jù)加解密過程中所使用的密鑰是否相同症虑,算法可以分為對(duì)稱加密和非對(duì)稱加密缩歪。兩種模式適用于不同的需求,恰好形成互補(bǔ)谍憔。某些時(shí)候可以組合使用匪蝙,形成混合加密機(jī)制。
????? 并非搜友加密算法都是可以從數(shù)學(xué)上得到證明韵卤。公認(rèn)的高強(qiáng)度的加密算法和實(shí)現(xiàn)往往經(jīng)過長時(shí)間各方面充分實(shí)踐論證后骗污,才被大家所認(rèn)可,但也不代表其絕對(duì)不存在漏洞沈条。因此,有人說自行設(shè)計(jì)和發(fā)明加密算法且不公開不就可以了嗎诅炉?這也很容被攻破蜡歹,無法在安全上得到保障。密碼學(xué)實(shí)現(xiàn)的安全是通過算法所依賴的數(shù)學(xué)問題來提供涕烧,并非通過對(duì)算法的實(shí)現(xiàn)過程進(jìn)行保護(hù)月而。
對(duì)稱加密算法:
????? 對(duì)稱加密算法,就是加解密過程的密鑰是相同的议纯。該算法優(yōu)點(diǎn)是加解密效率高且加密強(qiáng)度都很高父款。缺點(diǎn)是參與方都需要提前知道密鑰,一旦有人泄露或者安全性被破環(huán)瞻凤;密鑰在安全環(huán)境分發(fā)也是一個(gè)問題憨攒。
???? 對(duì)稱加密從實(shí)現(xiàn)原理上可以分為兩種:分組密碼和序列密碼。
??? 分組密碼:將明文切分為定常數(shù)據(jù)塊作為基本加密單位阀参,應(yīng)用最為廣泛肝集。
??? 序列密碼:每次只對(duì)一個(gè)字節(jié)或字符進(jìn)行加密處理,且密碼不斷變化蛛壳,只用在一些特定領(lǐng)域杏瞻,如數(shù)字媒介的加密等所刀。
??? 分組對(duì)稱加密代表算法包括DES、3DES捞挥、AES浮创、IDEA等:
???? DES(Data EncryptionStandard):經(jīng)典的分組加密算法,1977年由美國聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)采用FIPS-46-3砌函,將64位明文加密為64位密文斩披,其密鑰長度為64位(包含8位校應(yīng)碼)。優(yōu)點(diǎn)(速度較快胸嘴,適用于加密大量數(shù)據(jù)的場(chǎng)合)雏掠,現(xiàn)在已經(jīng)很容易被暴力破解;
???? 3DES(Triple DES):是基于DES的算法劣像,對(duì)一塊數(shù)據(jù)用三個(gè)不同的密鑰進(jìn)行三次加密(加密-解密-加密)乡话,強(qiáng)度更高,但是現(xiàn)在也被認(rèn)為不夠安全耳奕。
???? AES(Advanced EncryptionStandard):高級(jí)加密標(biāo)準(zhǔn)绑青,對(duì)稱算法,是下一代的加密算法標(biāo)準(zhǔn)屋群,速度快闸婴,安全級(jí)別高,在21世紀(jì)AES 標(biāo)準(zhǔn)的一個(gè)實(shí)現(xiàn)是Rijndael 算法芍躏;目前尚未有有效破解手段邪乍。
???? IDEA(International DataEncryption Algorithm):1991年密碼學(xué)家JamesMassey與來學(xué)嘉聯(lián)合提出。使用128位密鑰提供非常強(qiáng)的安全性对竣;
????? 序列密碼庇楞,又稱為流密碼。序列密碼具有實(shí)現(xiàn)簡單否纬、便于硬件實(shí)施吕晌、加解密處理速度快、沒有或只有有限的錯(cuò)誤傳播等特點(diǎn)临燃,因此在實(shí)際應(yīng)用中睛驳,特別是專用或機(jī)密機(jī)構(gòu)中保持著優(yōu)勢(shì),典型的應(yīng)用領(lǐng)域包括無線通信膜廊、外交通信乏沸。1949年Shannon證明了只有一次一密的密碼體制是絕對(duì)安全的,這給序列密碼技術(shù)的研究以強(qiáng)大的支持溃论,序列密碼方案的發(fā)展是模仿一次一密系統(tǒng)的嘗試屎蜓,或者說“一次一密”的密碼方案是序列密碼的雛形。如果序列密碼所使用的是真正隨機(jī)方式的钥勋、與消息流長度相同的密鑰流炬转,則此時(shí)的序列密碼就是一次一密的密碼體制辆苔。代表算法包括RC4等。
非對(duì)稱加密算法:
????? 非對(duì)稱加密是現(xiàn)代密碼學(xué)歷史上一項(xiàng)偉大的發(fā)明扼劈,可以很好的解決對(duì)稱加密提前分發(fā)密鑰的問題驻啤,形成了與對(duì)稱加密的互補(bǔ)。
????? 對(duì)稱加密算法在加密和解密時(shí)使用的是同一個(gè)秘鑰荐吵;而非對(duì)稱加密算法需要兩個(gè)密鑰來進(jìn)行加密和解密骑冗,這兩個(gè)秘鑰是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key先煎,簡稱私鑰)贼涩。
????? 私鑰一般需要通過隨機(jī)算法生成,公鑰可以根據(jù)私鑰生成薯蝎。公鑰一般是公開的遥倦,他人可以獲取的;私鑰一般是個(gè)人持有占锯,他人不能獲取袒哥。是否很熟悉呢?這就是區(qū)塊鏈?zhǔn)褂玫暮诵募用芩惴ā?/p>
?????? 非對(duì)稱加密算法的有點(diǎn)是公私鑰分開消略,不安全通道也可以使用堡称。缺點(diǎn)是處理速度往往比較慢,一般比對(duì)稱加解密算法慢2~3個(gè)數(shù)量級(jí)艺演;加密強(qiáng)度也往往不如對(duì)稱加密算法却紧。
????? 非對(duì)稱加密算法的安全性往往需要基于數(shù)學(xué)問題來保障,目前主要有基于大數(shù)質(zhì)因子分解胎撤、離散對(duì)數(shù)啄寡、橢圓曲線等經(jīng)典數(shù)學(xué)難題進(jìn)行保護(hù)。代表算法包括RSA哩照、ElGamal、橢圓曲線(ECC)懒浮、SM2等系列算法飘弧。
?????? RSA:RSA是1977年由羅納德·李維斯特(RonRivest)、阿迪·薩莫爾(AdiShamir)和倫納德·阿德曼(LeonardAdleman)一起提出的砚著。當(dāng)時(shí)他們?nèi)硕荚诼槭±砉W(xué)院工作次伶。RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的。三人于2002年因此獲得圖靈獎(jiǎng)稽穆。
????? Diffie-Hellman密鑰交換:基于離散對(duì)數(shù)無法快速求解冠王,可以在不安全的通道上,雙方協(xié)商一個(gè)公共密鑰舌镶。
????? ElGamal:由Taher ElGamal設(shè)計(jì)柱彻,利用了模運(yùn)算下求離散對(duì)數(shù)困難的特性豪娜。被應(yīng)用在PGP等安全密鑰。
????? 橢圓曲線(ECC):現(xiàn)代備受關(guān)注的算法系列哟楷,基于對(duì)橢圓曲線上特定點(diǎn)進(jìn)行特殊稱發(fā)逆運(yùn)算難以計(jì)算的特性瘤载。最早1985年由NealKoblitz和VictorMiller分別獨(dú)立提出。ECC系列算法一般被認(rèn)為具備較高的安全性卖擅,但加解密計(jì)算過程往往比較費(fèi)時(shí)鸣奔;這個(gè)我們好像也比較熟悉,BTC中使用的算法正是它惩阶。
????? SM2(ShangMi2):國家商用密碼算法挎狸,由國家密碼管理局于2010年12月17日發(fā)布,同樣基于橢圓曲線算法断楷,加密強(qiáng)度優(yōu)于RSA系列算法锨匆。
????? 非對(duì)稱加密算法一般適用于簽名場(chǎng)景或密碼協(xié)商,但不適用于大量數(shù)據(jù)加解密脐嫂。目前普遍認(rèn)為RSA類算法可能在不遠(yuǎn)將來被破解统刮,一般推薦采用安全度更高的橢圓曲線系列算法。
????? 以上就是我們談到的內(nèi)容账千,來自相關(guān)書籍及網(wǎng)絡(luò)侥蒙,總結(jié)及記錄加深自己的認(rèn)識(shí)與思考及給大家更好的查看信息,如有誤敬請(qǐng)諒解匀奏。