前言據(jù)記載,公元前400年,古希臘人發(fā)明了置換密碼。1881年世界上的第一個電話 保密專利出現(xiàn)。在第二次世界大戰(zhàn)期間,德國軍方啟用“恩尼格瑪”密碼機, 密碼學(xué)在戰(zhàn)爭中起著非常重要的作用。 隨著信息化和數(shù)字化社會的發(fā)展,人們對信息安全和保密的重要性認識不斷提高, 于是在1997年,美國國家標(biāo)準(zhǔn)局公布實施了“美國數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)”, 民間力量開始全面介入密碼學(xué)的研究和應(yīng)用中,采用的加密算法有DES、RSA、SHA等。 隨著對加密強度需求的不斷提高,近期又出現(xiàn)了AES、ECC等。 使用密碼學(xué)可以達到以下目的: 保密性:防止用戶的標(biāo)識或數(shù)據(jù)被讀取。 數(shù)據(jù)完整性:防止數(shù)據(jù)被更改。 身份驗證:確保數(shù)據(jù)發(fā)自特定的一方。 加密算法分類對稱加密算法: 對稱加密采用了對稱密碼編碼技術(shù),它的特點是文件加密和解密使用相同的密鑰 發(fā)送方和接收方需要持有同一把密鑰,發(fā)送消息和接收消息均使用該密鑰。 相對于非對稱加密,對稱加密具有更高的加解密速度,但雙方都需要事先知道密鑰,密鑰在傳輸過程中可能會被竊取,因此安全性沒有非對稱加密高。 常見的對稱加密算法:DES,AES,3DES等等 非對稱加密算法: 文件加密需要公開密鑰(publickey)和私有密鑰(privatekey)。 接收方在發(fā)送消息前需要事先生成公鑰和私鑰,然后將公鑰發(fā)送給發(fā)送方。發(fā)送放收到公鑰后,將待發(fā)送數(shù)據(jù)用公鑰加密,發(fā)送給接收方。接收到收到數(shù)據(jù)后,用私鑰解密。 在這個過程中,公鑰負責(zé)加密,私鑰負責(zé)解密,數(shù)據(jù)在傳輸過程中即使被截獲,攻擊者由于沒有私鑰,因此也無法破解。 非對稱加密算法的加解密速度低于對稱加密算法,但是安全性更高。 非對稱加密算法:RSA、DSA、ECC等算法 消息摘要算法: 消息摘要算法可以驗證信息是否被篡改。 在數(shù)據(jù)發(fā)送前,首先使用消息摘要算法生成該數(shù)據(jù)的簽名,然后簽名和數(shù)據(jù)一同發(fā)送給接收者。 接收者收到數(shù)據(jù)后,對收到的數(shù)據(jù)采用消息摘要算法獲得簽名,最后比較簽名是否一致,以此來判斷數(shù)據(jù)在傳輸過程中是否發(fā)生修改。 Python加密庫PyCrypto是 Python 中密碼學(xué)方面最有名的第三方軟件包??上У氖?,它的開發(fā)工作于2012年就已停止。 其他人還在繼續(xù)發(fā)布最新版本的 PyCrypto,如果你不介意使用第三方的二進制包,仍可以取得Python 3.5 的相應(yīng)版本。 比如,可以在 Github 上找到了對應(yīng)Python3.5的PyCrypto 二進制包。 幸運的是,有一個該項目的分支PyCrytodome 取代了 PyCrypto 。為了在 Linux 上安裝它, 你可以使用以下pip 命令: pip3 install -ipycryptodome 在Windows 系統(tǒng)上安裝則稍有不同: pip3 install -ipycryptodomex DES加密 全稱為Data EncryptionStandard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法 入口參數(shù)有三個:Key、Data、Mode Key為7個字節(jié)共56位,是DES算法的工作密鑰; Data為8個字節(jié)64位,是要被加密或被解密的數(shù)據(jù); Mode為DES的工作方式,有兩種:加密或解密 3DES(即Triple DES)是DES向AES過渡的加密算法, 使用兩個密鑰,執(zhí)行三次DES算法, 加密的過程是加密-解密-加密 解密的過程是解密-加密-解密 AES加密 高級加密標(biāo)準(zhǔn)(英語:Advanced EncryptionStandard,縮寫:AES),這個標(biāo)準(zhǔn)用來替代原先的DES AES的區(qū)塊長度固定為128 比特,密鑰長度則可以是128,192或256比特(16、24和32字節(jié)) 大致步驟如下: 1、密鑰擴展(KeyExpansion), 2、初始輪(Initial Round), 3、重復(fù)輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey, 4、最終輪(Final Round),最終輪沒有MixColumns。 普通方式 面向?qū)ο蠓绞?/p> RSA加密 公鑰加密算法,一種非對稱密碼算法 公鑰加密,私鑰解密 3個參數(shù): rsa_n, rsa_e,message rsa_n, rsa_e 用于生成公鑰 message: 需要加密的消息 安裝 pip install rsa 使用 |
|
|
來自: 昵稱16619343 > 《區(qū)塊鏈》