❶ 加密方式有幾種
加密方式的種類:
1、MD5
一種被廣泛使用的密碼散列函數,可以產生出一個128位(16位元組)的散列值(hash value),用於確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於1992年公開,用以取代MD4演算法。這套演算法的程序在 RFC 1321 標准中被加以規范。
2、對稱加密
對稱加密採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。
3、非對稱加密
與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密。
如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。
(1)加密技術過程圖片擴展閱讀
非對稱加密工作過程
1、乙方生成一對密鑰(公鑰和私鑰)並將公鑰向其它方公開。
2、得到該公鑰的甲方使用該密鑰對機密信息進行加密後再發送給乙方。
3、乙方再用自己保存的另一把專用密鑰(私鑰)對加密後的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應的公鑰加密後的信息。
在傳輸過程中,即使攻擊者截獲了傳輸的密文,並得到了乙的公鑰,也無法破解密文,因為只有乙的私鑰才能解密密文。
同樣,如果乙要回復加密信息給甲,那麼需要甲先公布甲的公鑰給乙用於加密,甲自己保存甲的私鑰用於解密。
❷ 古典加密技術中最基本的兩種演算法是什麼
替代演算法和置換移位法。
1.替代演算法
替代演算法指的是明文的字母由其他字母或數字或符號所代替。最著名的替代演算法是愷撒密碼。凱撒密碼的原理很簡單,其實就是單字母替換。我們看一個簡單的例子:
明文:abcdefghijklmnopq
密文:defghijklmnopqrst
若明文為student,對應的密文則為vwxghqw 。在這個一一對應的演算法中,愷撒密碼將字母表用了一種順序替代的方法來進行加密,此時密鑰為3,即每個字母順序推後3個。由於英文字母為26個,因此愷撒密碼僅有26個可能的密鑰,非常不安全。
為了加強安全性,人們想出了更進一步的方法:替代時不是有規律的,而是隨機生成一個對照表。
明文:abcdefghijklmnopqrstuvwxyz
密文:xnyahpogzqwbtsflrcvmuekjdI
此時,若明文為student,對應的密文則為 vmuahsm 。這種情況下,解密函數是上面這個替代對照表的一個逆置換。
不過,有更好的加密手段,就會有更好的解密手段。而且無論怎樣的改變字母表中的字母順序,密碼都有可能被人破解。由於英文單詞中各字母出現的頻度是不一樣的,通過對字母頻度的統計就可以很容易的對替換密碼進行破譯。為了抗擊字母頻度分析,隨後產生了以置換移位法為主要加密手段的加密方法。
2.置換移位法
使用置換移位法的最著名的一種密碼稱為維吉尼亞密碼。它以置換移位為基礎的周期替換密碼。
前面介紹的替代演算法中,針對所有的明文字母,密鑰要麼是一個唯一的數,要麼則是完全無規律可尋的。在維吉尼亞密碼中,加密密鑰是一個可被任意指定的字元串。加密密鑰字元依次逐個作用於明文信息字元。明文信息長度往往會大於密鑰字元串長度,而明文的每一個字元都需要有一個對應的密鑰字元,因此密鑰就需要不斷循環,直至明文每一個字元都對應一個密鑰字元。對密鑰字元,我們規定密鑰字母a,b,c,d……y,z對應的數字n為:0,1,2,3……24,25。每個明文字元首先找到對應的密鑰字元,然後根據英文字母表按照密鑰字元對應的數字n向後順序推後n個字母,即可得到明文字元對應的密文字元。
如果密鑰字為deceptive , 明文為 wearediscoveredsaveyourself,則加密的過程為:
明文: wearediscoveredsaveyourself
密鑰: deceptivedeceptivedeceptive
密文: zicvtwqngrzgvtwavzhcqyglmgj
對明文中的第一個字元w,對應的密鑰字元為d,它對應需要向後推3個字母,w,x,y,z,因此其對應的密文字元為z。上面的加密過程中,可以清晰的看到,密鑰deceptive被重復使用。
古典密碼體制將數學的方法引入到密碼分析和研究中。這為現代加密技術的形成和發展奠定了堅實的基礎。
❸ 一篇文章搞定密碼學基礎
密碼技術是網路安全的基礎,也是核心。現在對隱私保護、敏感信息尤其重視,所以不論是系統開發還是App開發,只要有網路通信,很多信息都需要進行加密,以防止被截取篡改,雖然很多人每天都在用密碼學的知識,但並不是人人都知道,謹以此篇科普一下~~~
PS:2016.7.10 補充 散列函數與消息摘要
明文M:原始數據,待加密的數據
密文C:對明文進行某種偽裝或變換後的輸出
密鑰K:加密或解密中所使用的專門工具
加密E:用某種方法將明文變成密文的過程
解密D:將密文恢復成明文的過程
一個密碼系統由五元組(M、C、K、E、D)組成,如圖所示
對稱密碼體制 :對信息進行明/密文變換時,加解和解密使用相同密鑰的密碼體制
非對稱密碼體制 :對信息進行明/密文變換時,加密和解密密鑰不相同的密碼體制
在非對稱密碼體制中,每個用戶都具有一對密鑰,一個用於加密,一個用於解密,其中加密密鑰可以公開,稱之為公鑰,解密密鑰屬於秘密,稱之為私鑰,只有用戶一人知道。
混合加密體制 :同時使用對稱密碼和非對稱密碼的體制
對稱加密的一個很大問題就是通信雙方如何將密鑰傳輸給對方,為了安全,一般採取帶外傳輸,也就是說如果加密通信是在網路,那麼密鑰的傳輸需要通過其他途徑,如簡訊,即使如此,也很難保證密鑰傳輸的安全性。非對稱加密加解最大的優點是事先不需要傳輸密鑰,但速度慢,因此實際應用中,經常採取混合密碼體制。假設A與B要實現保密通信,工作過程如下:
Hash函則腔數也稱為 散列函數 ,它能夠對不同長度的輸入信息,產生固定長度的輸出。這種固定長度的輸出稱之為原消息的散列或者 消息摘要 ,消息摘要長度固定且比原始信息小得多,一般情況下,消息摘要是不可逆的,即從消息摘要無法還原原文,為什麼說一般情況下呢,中國出了個牛人王小雲,感興趣的自行Google~~~
散列演算法:散列演算法就是產生信息散列值的演算法,它有一個特性,就是在輸入信息中如果發生細微的改變,比如給變了二進制的一位,都可以改變散列值中每個比特的特性賀洞,導致最後的輸出結果大相徑庭,所以它對於檢測消息或者密鑰等信息對象中的任何微小的變化非常有用。
一個安全的散列演算法H需要滿足:
數字簽名是指發送方以電子形式簽名一個消息或文件,簽名後的消息或文件能在網路中傳輸,並表示簽名人對該消禪盯枯息或文件的內容負有責任。數字簽名綜合使用了消息摘要和非對稱加密技術,可以保證接受者能夠核實發送者對報文的簽名,發送者事後不抵賴報文的簽名,接受者不能篡改報文內容和偽造對報文的簽名。
數字簽名需要做到兩點:
數字簽名的過程與示意圖:
數字證書是一種權威的電子文檔,由權威公正的第三方認證機構(CA)簽發,廣泛用於涉及需要身份認證和數據安全的領域。
數字證書種類:
數字證書功能:
1、信息保密
2、身份確認
3、不可否認性
4、數據完整性
數字證書的格式:
最簡單的可以是:公鑰、名稱和證書授權中心的數字簽名,目前 X.509 是一種通用的證書格式,它的第三個版本目前使用廣泛,證書內容包括:版本、序列號、簽名演算法標識、簽發者、有效期、主體、主體公開密鑰、CA的數字簽名、可選型等等
❹ 一篇文章帶你理解DES對稱加密演算法
對稱加密演算法,尤其是經典的DES(Data Encryption Standard),在通信加密領域扮演著重要角色。其核心理念在於通信雙方共享一個密鑰,使用該密鑰進行數據的加密與解密,確保信息傳輸的機密性。
DES演算法由IBM在1970年代開發,設計目的是為商用和計算機通信提供高效、安全的加密方案。它基於一個56位的密鑰,對64位的塊數據進行加密和解密操作。盡管現代技術對其安全性提出了挑戰,DES在非國防領域仍具有強大的應用性和研究價值。
DES演算法的工作原理如下:首先,雙方協商並確定一個密鑰,該密鑰對通信中的數據進行加密和解密操作,且一旦密鑰泄露,所有加密信息都將暴露。加密過程包括一系列的置換、移位和異或操作,最終生成密文。
具體加密流程如下:明文數據首先被分割成64位塊,其中前32位為左半部分L,後32位為右半部分R。使用密鑰生成一系列的子密鑰,每個子密鑰用於後續的運算。接著,數據通過一系列的置換、擴展、選擇、移位、異或等操作,經過16輪迭代後,產生最終的密文。每輪迭代中,R值經過擴展、選擇、移位和異或後,與對應的子密鑰進行運算,然後與L值交換,成為下一輪的R值。最終,經過16輪迭代後,左半部分和右半部分交換位置,再通過IP-1置換,得到最終的密文。
解密過程與加密過程類似,但使用的是逆向運算。即從密文開始,逆向執行所有運算,最終恢復到原始明文。DES演算法的加密和解密過程均依賴於同一密鑰,體現了對稱加密的特性。
DES演算法的加密過程涉及復雜的運算和操作,包括但不限於置換(IP和IP-1)、擴展置換(E)、選擇函數(S盒)、移位(循環移位)和異或運算。這些步驟旨在確保數據的加密過程難以被破解,同時保證解密過程的可逆性。
總結而言,DES演算法通過其獨特的密鑰管理和運算機制,為通信安全提供了堅實的保障。盡管隨著技術的發展,其安全性受到質疑,但DES演算法在加密技術歷史上占據著不可忽視的地位,對於研究新的加密標准和演算法具有重要的啟示作用。理解DES演算法的工作原理和流程,對於深入掌握對稱加密技術具有重要意義。
❺ 信息加密技術的加密技術分析
加密就是通過密碼算術對數據進行轉化,使之成為沒有正確密鑰任何人都無法讀懂的報文。而這些以無法讀懂的形式出現的數據一般被稱為密文。為了讀懂報文,密文必須重新轉變為它的最初形式--明文。而含有用來以數學方式轉換報文的雙重密碼就是密鑰。在這種情況下即使一則信息被截獲並閱讀,這則信息也是毫無利用價值的。而實現這種轉化的演算法標准,據不完全統計,到現在為止已經有近200多種。在這里,主要介紹幾種重要的標准。按照國際上通行的慣例,將這近200種方法按照雙方收發的密鑰是否相同的標准劃分為兩大類:一種是常規演算法(也叫私鑰加密演算法或對稱加密演算法),其特徵是收信方和發信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。比較著名的常規密碼演算法有:美國的DES及其各種變形,比如3DES、GDES、New DES和DES的前身Lucifer; 歐洲的IDEA;日本的FEAL N、LOKI?91、Skipjack、RC4、RC5以及以代換密碼和轉輪密碼為代表的古典密碼等。在眾多的常規密碼中影響最大的是DES密碼,而最近美國NIST(國家標准與技術研究所)推出的AES將有取代DES的趨勢,後文將作出詳細的分析。常規密碼的優點是有很強的保密強度,且經受住時間的檢驗和攻擊,但其密鑰必須通過安全的途徑傳送。因此,其密鑰管理成為系統安全的重要因素。另外一種是公鑰加密演算法(也叫非對稱加密演算法)。其特徵是收信方和發信方使用的密鑰互不相同,而且幾乎不可能從加密密鑰推導解密密鑰。比較著名的公鑰密碼演算法有:RSA、背包密碼、McEliece密碼、Diffe Hellman、Rabin、Ong Fiat Shamir、零知識證明的演算法、橢圓曲線、EIGamal演算法等等⑷。最有影響的公鑰密碼演算法是RSA,它能抵抗到目前為止已知的所有密碼攻擊,而最近勢頭正勁的ECC演算法正有取代RSA的趨勢。公鑰密碼的優點是可以適應網路的開放性要求,且密鑰管理問題也較為簡單,尤其可方便的實現數字簽名和驗證。但其演算法復雜,加密數據的速率較低。盡管如此,隨著現代電子技術和密碼技術的發展,公鑰密碼演算法將是一種很有前途的網路安全加密體制。這兩種演算法各有其短處和長處,在下面將作出詳細的分析。 在私鑰加密演算法中,信息的接受者和發送者都使用相同的密鑰,所以雙方的密鑰都處於保密的狀態,因為私鑰的保密性必須基於密鑰的保密性,而非演算法上。這在硬體上增加了私鑰加密演算法的安全性。但同時我們也看到這也增加了一個挑戰:收發雙方都必須為自己的密鑰負責,這種情況在兩者在地理上分離顯得尤為重要。私鑰演算法還面臨這一個更大的困難,那就是對私鑰的管理和分發十分的困難和復雜,而且所需的費用十分的龐大。比如說,一個n個用戶的網路就需要派發n(n-1)/2個私鑰,特別是對於一些大型的並且廣域的網路來說,其管理是一個十分困難的過程,正因為這些因素從而決定了私鑰演算法的使用范圍。而且,私鑰加密演算法不支持數字簽名,這對遠距離的傳輸來說也是一個障礙。另一個影響私鑰的保密性的因素是演算法的復雜性。現今為止,國際上比較通行的是DES、3DES以及最近推廣的AES。
數據加密標准(Data Encryption Standard)是IBM公司1977年為美國政府研製的一種演算法。DES是以56 位密鑰為基礎的密碼塊加密技術。它的加密過程一般如下:
① 一次性把64位明文塊打亂置換。
② 把64位明文塊拆成兩個32位塊;
③ 用機密DES密鑰把每個32位塊打亂位置16次;
④ 使用初始置換的逆置換。
但在實際應用中,DES的保密性受到了很大的挑戰,1999年1月,EFF和分散網路用不到一天的時間,破譯了56位的DES加密信息。DES的統治地位受到了嚴重的影響,為此,美國推出DES的改進版本-- 三重加密(triple Data Encryption Standard)即在使用過程中,收發雙方都用三把密鑰進行加解密,無疑這種3*56式的加密方法大大提升了密碼的安全性,按現在的計算機的運算速度,這種破解幾乎是不可能的。但是我們在為數據提供強有力的安全保護的同時,也要化更多的時間來對信息進行三次加密和對每個密層進行解密。同時在這種前提下,使用這種密鑰的雙發都必須擁有3個密鑰,如果丟失了其中任何一把,其餘兩把都成了無用的密鑰。這樣私鑰的數量一下又提升了3倍,這顯然不是我們想看到的。於是美國國家標准與技術研究所推出了一個新的保密措施來保護金融交易。高級加密標准(Advanced Encryption Standard)美國國家技術標准委員會(NIST)在2000年10月選定了比利時的研究成果Rijndael作為AES的基礎。Rijndael是經過三年漫長的過程,最終從進入候選的五種方案中挑選出來的。
AES內部有更簡潔精確的數學演算法,而加密數據只需一次通過。AES被設計成高速,堅固的安全性能,而且能夠支持各種小型設備。AES與3DES相比,不僅是安全性能有重大差別,使用性能和資源有效利用上也有很大差別。雖然到現在為止,我還不了解AES的具體演算法但是從下表可以看出其與3DES的巨大優越性。
還有一些其他的一些演算法,如美國國家安全局使用的飛魚(Skipjack)演算法,不過它的演算法細節始終都是保密的,所以外人都無從得知其細節類容;一些私人組織開發的取代DES的方案:RC2、RC4、RC5等。 面對在執行過程中如何使用和分享密鑰及保持其機密性等問題,1975年Whitefield Diffe和Marti Hellman提出了公開的密鑰密碼技術的概念,被稱為Diffie-Hellman技術。從此公鑰加密演算法便產生了。
由於採取了公共密鑰,密鑰的管理和分發就變得簡單多了,對於一個n個用戶的網路來說,只需要2n個密鑰便可達到密度。同時使得公鑰加密法的保密性全部集中在及其復雜的數學問題上,它的安全性因而也得到了保證。但是在實際運用中,公共密鑰加密演算法並沒有完全的取代私鑰加密演算法。其重要的原因是它的實現速度遠遠趕不上私鑰加密演算法。又因為它的安全性,所以常常用來加密一些重要的文件。自公鑰加密問世以來,學者們提出了許多種公鑰加密方法,它們的安全性都是基於復雜的數學難題。根據所基於的數學難題來分類,有以下三類系統目前被認為是安全和有效的:大整數因子分解系統(代表性的有RSA)、橢圓曲線離散對數系統(ECC)和離散對數系統 (代表性的有DSA),下面就作出較為詳細的敘述。
RSA演算法是由羅納多·瑞維斯特(Rivet)、艾迪·夏彌爾(Shamir)和里奧納多·艾德拉曼(Adelman)聯合推出的,RAS演算法由此而得名。它的安全性是基於大整數素因子分解的困難性,而大整數因子分解問題是數學上的著名難題,至今沒有有效的方法予以解決,因此可以確保RSA演算法的安全性。RSA系統是公鑰系統的最具有典型意義的方法,大多數使用公鑰密碼進行加密和數字簽名的產品和標准使用的都是RSA演算法。它得具體演算法如下:
① 找兩個非常大的質數,越大越安全。把這兩個質數叫做P和Q。
② 找一個能滿足下列條件得數字E:
A. 是一個奇數。
B. 小於P×Q。
C. 與(P-1)×(Q-1)互質,只是指E和該方程的計算結果沒有相同的質數因子。
③ 計算出數值D,滿足下面性質:((D×E)-1)能被(P-1)×(Q-1)整除。
公開密鑰對是(P×Q,E)。
私人密鑰是D。
公開密鑰是E。
解密函數是:
假設T是明文,C是密文。
加密函數用公開密鑰E和模P×Q;
加密信息=(TE)模P×Q。
解密函數用私人密鑰D和模P×Q;
解密信息=(CD)模P×Q。
橢圓曲線加密技術(ECC)是建立在單向函數(橢圓曲線離散對數)得基礎上,由於它比RAS使用得離散對數要復雜得多。而且該單向函數比RSA得要難,所以與RSA相比,它有如下幾個優點:
安全性能更高 加密演算法的安全性能一般通過該演算法的抗攻擊強度來反映。ECC和其他幾種公鑰系統相比,其抗攻擊性具有絕對的優勢。如160位 ECC與1024位 RSA有相同的安全強度。而210位 ECC則與2048bit RSA具有相同的安全強度。
計算量小,處理速度快 雖然在RSA中可以通過選取較小的公鑰(可以小到3)的方法提高公鑰處理速度,即提高加密和簽名驗證的速度,使其在加密和簽名驗證速度上與ECC有可比性,但在私鑰的處理速度上(解密和簽名),ECC遠比RSA、DSA快得多。因此ECC總的速度比RSA、DSA要快得多。
存儲空間佔用小 ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多,意味著它所佔的存貯空間要小得多。這對於加密演算法在IC卡上的應用具有特別重要的意義。
帶寬要求低 當對長消息進行加解密時,三類密碼系統有相同的帶寬要求,但應用於短消息時ECC帶寬要求卻低得多。而公鑰加密系統多用於短消息,例如用於數字簽名和用於對對稱系統的會話密鑰傳遞。帶寬要求低使ECC在無線網路領域具有廣泛的應用前景。
ECC的這些特點使它必將取代RSA,成為通用的公鑰加密演算法。比如SET協議的制定者已把它作為下一代SET協議中預設的公鑰密碼演算法。