對稱加密演算法----DES加密演算法
一、對稱加密演算法
對稱加密也稱為常規加密、私鑰或單鑰加密。
一個對稱加密由5部分組成:
- 明文(plaintext):這是原始資訊或資料,作為演算法的輸入。
- 加密演算法(encryption algorithm):加密演算法對明文進行各種替換和轉換。
- 金鑰(secret key):金鑰也是演算法的輸入。演算法進行的具體替換和轉換取決於金鑰。
- 密文(ciphertext):這是產生的已被打亂的訊息輸出。
- 解密演算法(decryption algorithm):本質上是加密演算法的反向執行。它使用密文和同一金鑰產生產生原始明文。
常用的演算法包括:
DES(Data Encryption Standard):資料加密標準,速度較快,適用於加密大量資料的場合。
3DES(Triple DES):是基於DES,對一塊資料用三個不同的金鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard):高階加密標準,是下一代的加密演算法標準,速度快,安全級別高;
二、資料加密標準
資料加密標準(Data Encryption Standard, DES)於1977年被美國國家標準局(National Bureau of Standard, NBS),即現在國家標準和技術協會(National Institute of Standards and Technology,NIST)採納為聯邦46(FIPS PUB 46)。這個演算法本身指的是資料加密演算法(Data Encryption Algorithm)。DES採用了64位的分組長度和56位的金鑰長度。它將64位的經過一系列的變換得到64位的輸出,解密則使用了相同的步驟和相同的金鑰。
三、用c++程式實現DES加密和解密
下圖是DES加密演算法的整體流程圖:
64位輸入明文先進行初始置換IP,然後進行16輪相同的函式作用,最後在進行一個逆初始置換輸出64位的密文。上圖的右半部分是金鑰的產生和使用過程,首先64位金鑰壓縮置換後變為56位,然後進行迴圈左移和置換選擇得到子金鑰和每輪的輸入。
每輪的變換過程可以記為下面的公式:
明文輸入的64位,被分成兩部分L和R,R又作為下一輪迭代的L,R經過F函式的作用輸出32位的資料,再與本輪的L異或產生下一輪的R。
下圖解釋了S盒在F函式中的使用方法:
一共有8個S盒,每個S盒都輸入6位,輸出4位。盒Si輸入的第一位和最後一位組成一個二進位制數,用來選擇S盒4行代替值中的一行,中間4位組成的二進位制數用來選擇16列中的一列。選中的是十進位制數轉換成二進位制數後得到輸出的4位二進位制數。
相關文章
- DES對稱資料加密加密
- 加密解密技術—對稱演算法加密加密解密演算法
- DES/3DES/AES 三種對稱加密演算法在 Java 中的實現3D加密演算法Java
- 非對稱加密演算法-RSA演算法加密演算法
- 對稱塊加密演算法加密模式詳解 (轉)加密演算法模式
- 非對稱加密演算法的思考加密演算法
- 應用加密1;非對稱加密演算法揭祕加密演算法
- java 實現 DES加密 解密演算法Java加密解密演算法
- 第四篇:非對稱加密及RSA加密演算法加密演算法
- RSA非對稱加密演算法淺析加密演算法
- Java加密技術(七)——非對稱加密演算法最高階ECCJava加密演算法
- 對稱加密與非對稱加密加密
- 資料加密(對稱加密和非對稱加密)加密
- 編碼與加密(對稱加密與非對稱加密)加密
- DES--------Golang對稱加密之模式問題實戰Golang加密模式
- DES加密加密
- JWT令牌生成採用非對稱加密演算法JWT加密演算法
- 對稱加密、非對稱加密、RSA(總結)加密
- 加密原理詳解:對稱式加密VS非對稱式加密加密
- android典型程式碼系列(三十)------DES加密演算法Android加密演算法
- DES演算法揭秘:資料加密的前沿技術演算法加密
- 對稱加密和非對稱加密(一)初步理解加密
- Android 安全加密:對稱加密Android加密
- Android安全加密:對稱加密Android加密
- https中的對稱加密和非對稱加密HTTP加密
- 懂了!國際演算法體系對稱演算法DES原理演算法
- 一文搞懂對稱加密:加密演算法、工作模式、填充方式、程式碼實現加密演算法模式
- 用vb實現DES加解密演算法(二)--加密 (轉)解密演算法加密
- 對稱加密演算法在C#中的踩坑日常加密演算法C#
- .NET Core加解密實戰系列之——對稱加密演算法解密加密演算法
- 非對稱加密技術- RSA演算法數學原理分析加密演算法
- Android 安全加密:非對稱加密Android加密
- Android安全加密:非對稱加密Android加密
- java使用DES加密方式,實現對資料的加密解密Java加密解密
- 【知識積累】DES演算法之C#加密&Java解密演算法C#加密Java解密
- DES加密演算法在門禁系統中應用 (轉)加密演算法
- DES加密詳解加密
- DES加密簡述加密