【转】国密算法sm4 CBC模式加解密
生活随笔
收集整理的這篇文章主要介紹了
【转】国密算法sm4 CBC模式加解密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.什么是CBC模式?
CBC模式的全稱是Cipher Block Chaining模式(密文分組鏈接模式),之所以叫這個名字,是因為密文分組像鏈條一樣相互連接在一起。
在CBC模式中,首先將明文分組與前一個密文分組進行異或運算,然后再進行加密。
異或運算:
異或,英文為exclusive OR,縮寫成xor
異或(xor)是一個數學運算符。它應用于邏輯運算。異或的數學符號為“⊕”,計算機符號為“xor”。其運算法則為:
a⊕b = (?a ∧ b) ∨ (a ∧?b)
如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。
異或也叫半加運算,其運算法則相當于不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位,所以異或常被認作不進位加法。
異或略稱為XOR、EOR、EX-OR
程序中有三種演算子:XOR、xor、⊕。
使用方法如下
z = x ⊕ y
z = x xor y
二.CBC模式加解密過程如下:
1.加密過程例如以下:
2. 解密密過程例如以下:
這里注意一點,解密的結果并不一定是我們原來的加密數據,可能還含有你補得位。一定要把補位去掉才是你的原來的數據。
三.CBC模式特點
- cbc模式在進行加密之前一定會與前一個密文組進行異或運算,因此即使明文D1與明文D2值相等,密文C1與密文C2也不一定是相等的
- cbc模式無法單獨的對一個明文組進行加密,必須有前一個密文組,第一個密文組依賴于IV產生
- 解密時如果其中一個密文組損壞,只要密文分組的長度沒有發生變化,則解密時最多只有2個分組受到數據損壞的影響
- 資源下載地址?https://download.csdn.net/download/qq_27969037/11327461
總結
以上是生活随笔為你收集整理的【转】国密算法sm4 CBC模式加解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】SVN各种颜色状态
- 下一篇: 多国相继暴发!海关总署最新提醒警惕这一疾