精品国产亚洲一区二区三区|亚洲国产精彩中文乱码AV|久久久久亚洲AV综合波多野结衣|漂亮少妇各种调教玩弄在线

<blockquote id="ixlwe"><option id="ixlwe"></option></blockquote>
  • <span id="ixlwe"></span>

  • <abbr id="ixlwe"></abbr>

    縱觀加密算法的技術發(fā)展路線

    前言

    本文將嘗試論述加密算法的發(fā)展史和一些關鍵的加密算法。由于個人水平有限,如果出現(xiàn)謬誤,還望各位不吝賜教。

    加密算法

    加密算法乍一聽貌似和大部分人的日常生活十分遙遠,但實際卻密切相關。從網(wǎng)絡層到主機文件層,無論那層加密應用或協(xié)議背后都是由各種加密算法所支撐。即便你不用任何加密產(chǎn)品,凡是使用https的網(wǎng)站都已經(jīng)使用了加密協(xié)議TLS/SSL。你也被動享受了加密算法帶來的隱私保護,及通訊安全。今天我們拋開淺層的應用來扒一扒各種有趣的加密算法。

    在扒加密算法前先稍微科普一下,加密算法主要作用是把明文變成密文。加密算法加密后,明文會變成密文,防止信息泄露。雖然看起來和亂碼很像,但密文不是亂碼。大部分亂碼是由于編碼不一致導致。編碼不屬于加密算法,編碼無法把明文變成密文,只是改變了一種顯示格式而已。所以base64只是一種編碼而已,它不是加密算法,不具備加密能力,不能保障您的明文安全。所以,以后要聽哪家說我們使用了base64進行加密,趕緊屏蔽。

    加密算法的加密需要符合以下三點訴求:

    1.機密性:保證數(shù)據(jù)即使被盜取,小偷也不知道是啥。

    2.完整性: 保證數(shù)據(jù)在傳輸過程中即使被劫持修改,接收方能夠發(fā)現(xiàn)信息已被截取,而選擇換掉。

    3.可用性:保證加密算法的開銷、復雜度都在可用范圍。

    結(jié)合上述訴求,加密算法的發(fā)展主要經(jīng)歷了古典密碼和現(xiàn)代密碼兩個重要時期。

    古典密碼

    最早記載

    早期加密算法主要使用在軍事中,歷史上最早關于加密算法的記載出自于周朝兵書《六韜.龍韜》中的《陰符》和《陰書》。其中記載:

    太公曰:“主與將,有陰符,凡八等。有大勝克敵之符,長一尺。破軍擒將之符,長九寸。降城得邑之符,長八寸。卻敵報遠之符,長七寸。警眾堅守之符,長六寸。請糧益兵之符,長五寸。敗軍亡將之符,長四寸。失利亡士之符,長三寸。諸奉使行符,稽留,若符事聞,泄告者,皆誅之。八符者,主將秘聞,所以陰通言語,不泄中外相知之術。敵雖圣智,莫之能識?!?

    武王問太公曰:“… 符不能明;相去遼遠,言語不通。為之奈何?” 太公曰:“諸有陰事大慮,當用書,不用符。主以書遺將,將以書問主。書皆一合而離,三發(fā)而一知。離者,分書為三部。三發(fā)而一知者,言三人,人操一分,相參而不相知情也。此謂陰書。敵雖圣智,莫之能識?!?/p>

    簡單來說,陰符是以八等長度的符來表達不同的消息和指令,屬于密碼學中的替代法,在應用中是把信息轉(zhuǎn)變成敵人看不懂的符號,但知情者知道這些符號代表的含義。這種符號法無法表達豐富的含義,只能表述最關鍵的八種含義。陰書作為陰符的補充,運用了文字拆分法直接把一份文字拆成三分,由三種渠道發(fā)送到目標方手中。敵人只有同時截獲三分內(nèi)容才可能破解陰書上寫的內(nèi)容。

    上述樸素的加密算法思想主要使用了替換法。無獨有偶,在遙遠的西方加密算法也大規(guī)模使用于戰(zhàn)爭之中。在希羅多德(Herodotus)的《歷史》中記載了公元前五世紀,希臘城邦和波斯帝國發(fā)生多次沖突和戰(zhàn)爭。這些戰(zhàn)爭中希臘城邦中廣泛使用了移位法進行加密處理戰(zhàn)爭通訊信息,使波斯帝國難以獲得希臘城邦的軍事情報,也就無法提前做軍事部署。

    希臘城邦用來傳輸軍事信息、命令的每段文字都有固定的字數(shù),接密者手中會有一份文字移位說明。解密者拿到密文后,根據(jù)文字移位說明進行解密,從而破解其中的軍事命令或消息。

    凱撒密碼

    古典密碼主要采用的就是移動法和替換法。經(jīng)過逐漸發(fā)展和完善,最有名的莫過于凱撒密碼。凱撒密碼有兩種模式——移位法和替換法。其中,移位法就是讓明文都向固定方向移動特定位數(shù),例如I love you右移動4位就變成了M pszi csy。但英文或拉丁文,字母出現(xiàn)的頻率并不一致。以英文字母為例:字母e出現(xiàn)頻率明顯高過其他字母。在獲得足夠多的密文樣本后,可以通過頻率計算準確找到移位規(guī)則,從而破解密文。同時由于需要可逆操作,所以實際上密鑰的數(shù)量是有限的,只有25種可能。因此,完全可以通過暴力破解來對密文進行解密。

    于是大部分凱撒密碼在實際應用中都采用了第二種模式——替換法。定義一張明文密文映射表

    這種方式可以在一定程度上解決密鑰可窮舉的問題,但仍對大數(shù)據(jù)量的頻率攻擊束手無策。

    后來,這種模式發(fā)展為,靠引入一些特定參數(shù)來擾亂頻率,這在一定程度上提高了解密的難度,但仍屬于替換法和移位法的范疇。

    古典密碼后期發(fā)展出維吉尼亞密碼、ROT5/13/18/47、摩爾斯密碼等一系列密碼種類。但都是以替換法和移位法為核心基礎,安全性也主要是靠算法不公開來保證。所使用的加密算法只能算是現(xiàn)在加密算法的雛形,或者僅作為可以借鑒的最初加密思路。

    現(xiàn)代加密算法

    古典加密算法本質(zhì)上主要考慮的是語言學上模式的改變。直到20世紀中葉,香農(nóng)發(fā)表了《秘密體制的通信理論》一文,標志著加密算法的重心轉(zhuǎn)移往應用數(shù)學上的轉(zhuǎn)移。于是,逐漸衍生出了當今重要的三類加密算法:非對稱加密、對稱加密以及哈希算法。這三類算法在現(xiàn)實場景中也往往組合起來使用,以發(fā)揮最佳效果。

    對稱加密算法

    對稱加密算法是使用最廣泛的加密算法之一。常用的對稱性加密算法有DES算法、AES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法、IDEA算法等。對稱加密的特點是,加密和解密兩方使用同一密鑰進行加、解密。加密算法本身泄露不會對安全性造成影響,密鑰才是安全性的關鍵。按照原理不同,對稱加密可以大體分成流加密和分組加密兩種類型。

    流加密

    流加密是將明文按字符逐位地,對應地進行加密的一類對稱密碼算法。流加密中最有名的算法是RC4和GSM。流加密算法相對簡單,明文和密鑰按位對其做約定的運算,即可獲得密文。

    最簡單的模型是異或流加密例如:

    由于流加密原理簡單,其算法結(jié)構(gòu)存在弱點,如果密鑰流又多次重復使用,只要泄露局部明文,攻擊者很容易算出密鑰。另外,由于是按位進行加密,攻擊者即使對數(shù)據(jù)進行篡改,也不會破壞原有數(shù)據(jù)結(jié)構(gòu),接收者很難發(fā)現(xiàn)其中變化。流加密雖然是一種快捷高效的加密方法,但其安全性較低,不建議用戶使用流加密對關鍵信息進行加密。

    分組加密

    分組加密內(nèi)部實現(xiàn)則復雜的多,每一個加密塊都會經(jīng)歷至少16輪運算,其代表算法有DES和AES。目前推薦使用AES,DES已經(jīng)不在安全。

    DES

    DES是較早時期的對稱加密標準,在當時得到了廣泛的應用。隨著計算機性能地不斷提高,暴力破解DES變得越來越容易。所以DES已經(jīng)不再安全,近十幾年逐漸地被3DES和AES代替。

    DES核心主要分成初始置換、輪函數(shù)、逆置換三步。

    初始置換:把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、R0兩部分,每部分長32位,其置換規(guī)則為將輸入的第58位換到第1位,第50位換到第2位……依此類推,最后一位是原來的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位,其置換規(guī)則見下表:

    58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,

    62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

    57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,

    61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

    輪函數(shù):DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位(每組的第8位作為奇偶校驗位),產(chǎn)生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術,其中將加密的文本塊分成兩半。使用子密鑰對其中一半應用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。

    逆置換:DES 使用 16 輪循環(huán),使用異或、置換、代換、移位操作四種基本運算。最后經(jīng)過16次迭代運算后,得到L16、R16,將此作為輸入進行逆置換,逆置換正好是初始置換的逆運算,由此即得到密文輸出,解密過程則是整套加密過程的逆運算。

    AES

    AES的誕生是為了替代原先的DES,它已經(jīng)被多方分析論證,在全世界范圍廣泛使用,是目前最為安全的對稱加密算法之一。近十年,AES已然成為對稱密鑰加密中最流行的算法之一。不同于它的前任標準DES,AES使用的是代換-置換網(wǎng)絡,而非Feistel架構(gòu)。

    大多數(shù)AES計算是在一個特別的有限域內(nèi)完成的,加密過程是在一個4×4的字節(jié)矩陣上運作,這個矩陣又稱為“狀態(tài)(state)”,其初值就是一個明文區(qū)塊(矩陣中一個元素大小就是明文區(qū)塊中的一個Byte)。加密時,各輪AES加密循環(huán)(除最后一輪外)均包含4個步驟:

    AddRoundKey——矩陣中的每一個字節(jié)都與該次輪密鑰(round key)做XOR運算;每個子密鑰由密鑰生成方案產(chǎn)生。

    SubBytes——通過一個非線性的替換函數(shù),用查找表的方式把每個字節(jié)替換成對應的字節(jié)。

    ShiftRows——將矩陣中的每個橫列進行循環(huán)式移位。

    MixColumns ——為了充分混合矩陣中各個直行的操作。這個步驟使用線性轉(zhuǎn)換來混合每列的四個字節(jié)。最后一個加密循環(huán)中省略MixColumns步驟,以另一個ddRoundKey取代。

    模式

    無論是AES還是DES他們內(nèi)部都支持不同的加密模式,每一種模式的安全性和效率都大不相同。這里,只簡單介紹兩種最常見的模式ECB和CBC

    ECB模式加密效率高,但安全性低,模式如下圖:

    每次都是Key對單獨塊進行加密,容易被對方破解。但由于每個模塊之間毫無關聯(lián),所以可以并發(fā)運算,極大地提高了加密效率。通常,ECB的加密效率比CBC高5-6倍。

    CBC加密效率雖然沒有ECB高,但安全性則高得多。模式如下圖:

    每塊加密引入一個IV,每塊的IV都不同,需要上一塊進行迭代,最終完成整個加密過程。由于每塊的IV和密文塊有關,所以無法采用并發(fā)的模式,必須串行整個過程。

    如果不是出于極高的性能要求,建議還是采用CBC模式進行加密,該模式更為安全、可靠。

    非對稱加密算法

    非對稱加密算法和對稱加密算法的最大區(qū)別在于,加密的密鑰和解密的密鑰不再是一個。這就像兩個人互對暗號一樣。這種加密方式主要為了應對“多個加密者,一個解密者”的模式,對稱密鑰只能解決解密用戶為一對一的關系。

    于是在這種多對一的關系中就出現(xiàn)了一個公鑰體系。一個公鑰對應一個私鑰。公鑰是公開的,任何數(shù)據(jù)發(fā)送者都用公鑰對數(shù)據(jù)進行加密,但公鑰加密的內(nèi)容只有私鑰才能解開。其中著名的算法包括DSA算法、RSA算法、Elgamal算法、背包算法、Rabin算法、D-H算法、ECC算法。背后的數(shù)學原理從大數(shù)分解到復雜的橢圓曲線上的離散對數(shù)問題,非常復雜。這里,筆者就不做展開。

    雖然背后的數(shù)學支撐不同,但模式類似,均采用公私鑰密鑰對的方式,公鑰解密私鑰加密的信息,私鑰解密公鑰加密的信息。非對稱加密算法的執(zhí)行效率成為這種算法實際應用的最大阻礙。大部分應用主要把非對稱加密算法用在身份驗證中,并不會在通訊中使用。

    哈希算法

    哈希算法也是非常常見的加密算法之一。他和對稱算法以及非對稱算法最大的區(qū)別是,它不是用來做數(shù)據(jù)傳輸,而是對數(shù)據(jù)是否被篡改加以驗證,防止不法分子篡改數(shù)據(jù)。它的特點是無論原文多長都會變成固定長度的字符串,只能加密不能解密(只能單向運算)。對于不同的輸入,理論上會生成不同的輸出(部分算法已出現(xiàn)大規(guī)模碰撞,碰撞就是指不同明文相同密文的情況)。

    常見哈希算法包含MD5、SHA-1和SHA 224/256/512等。其中,MD5和SHA-1已經(jīng)被證明不再安全,所以,建議使用SHA256/512等安全性高的算法。

    數(shù)據(jù)庫加密算法

    上述加密算法已經(jīng)廣泛應用在各個領域。隨著云和大數(shù)據(jù)的高速發(fā)展,數(shù)據(jù)庫也逐漸從安全的局域網(wǎng)環(huán)境,向私有云甚至公有云遷移。云環(huán)境下服務器變得不再可信,數(shù)據(jù)庫遷移到云上,面臨更加嚴峻的挑戰(zhàn),數(shù)據(jù)云上安全問題成為不可回避的問題。數(shù)據(jù)庫中保存著關鍵數(shù)據(jù),云上主機存在眾多不安全隱患,所以云上數(shù)據(jù)庫加密成為解決這些安全隱患的一劑良藥。

    數(shù)據(jù)庫加密不同于文件加密和通訊加密等常見加密。數(shù)據(jù)庫加密需要特別關注加密算法是否存在膨脹性,并對加密算法的性能有苛刻的要求。而對稱加密中的流加密在運行效率和解決數(shù)據(jù)膨脹上有天然優(yōu)勢,只可惜在一定情況下安全性較弱。有部分安全廠商采用這種方式提供數(shù)據(jù)庫加密服務。

    但更穩(wěn)妥的做法是采用對稱加密中的分組加密(AES)進行相關加密處理。分組加密安全性高,在安全方面比較有保障,但需要解決由于數(shù)據(jù)塊大小限制帶來的膨脹問題。這需要根據(jù)具體情況或字段設計足夠精妙的使用方案,來針對不同字段或類型解決膨脹問題,最終形成完美的數(shù)據(jù)庫加密方案。

    密碼算法是保障信息安全的核心技術,尤其是最關鍵的銀行業(yè)核心領域長期以來都是沿用3DES、SHA-1、RSA等國際通用的密碼算法體系及相關標準,為從根本上擺脫對國外密碼技術和產(chǎn)品的過度依賴。

    近年來國家有關機關和監(jiān)管機構(gòu)站在國家安全和長遠戰(zhàn)略的高度提出了推動國密算法應用實施、加強行業(yè)安全可控的要求。擺脫對國外技術和產(chǎn)品的過度依賴,建設行業(yè)網(wǎng)絡安全環(huán)境,增強我國行業(yè)信息系統(tǒng)的“安全可控”能力顯得尤為必要和迫切。

    具體而言,國產(chǎn)密碼算法(國密算法)是指國家密碼局認定的國產(chǎn)商用密碼算法,比如,在金融領域目前主要使用公開的SM2、SM3、SM4三類算法,分別是非對稱算法、哈希算法和對稱算法。

    以SM4算法為例:SM4分組密碼算法是我國自主設計的分組對稱密碼算法,用于實現(xiàn)數(shù)據(jù)的加密/解密運算,以保證數(shù)據(jù)和信息的機密性。要保證一個對稱密碼算法的安全性的基本條件是其具備足夠的密鑰長度,SM4算法與AES算法具有相同的密鑰長度分組長度128比特,因此在安全性上高于3DES算法。

    安華金和的數(shù)據(jù)庫加密產(chǎn)品DBCoffer以及系列產(chǎn)品DBCoffer_mysql_tde、DBCoffer_oracle_tde和DBCoffer_dameng_tde正是采用這種加密算法,安全且嚴禁的加密方式以及巧妙的實現(xiàn)手法,以分組加密方法完成了不同情景下對數(shù)據(jù)庫數(shù)據(jù)的加密能力。為廣大用戶的數(shù)據(jù)安全保駕護航。

    極客網(wǎng)企業(yè)會員

    免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。

    2017-09-19
    縱觀加密算法的技術發(fā)展路線
    前言本文將嘗試論述加密算法的發(fā)展史和一些關鍵的加密算法。由于個人水平有限,如果出現(xiàn)謬誤,還望各位不吝賜教。加密算法加密算法乍一聽貌似和大部分人的日常生活十分遙遠,但實際卻密切相關。

    長按掃碼 閱讀全文