日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】国密算法sm4 CBC模式加解密

發(fā)布時(shí)間:2023/12/10 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】国密算法sm4 CBC模式加解密 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.什么是CBC模式?
CBC模式的全稱是Cipher Block Chaining模式(密文分組鏈接模式),之所以叫這個(gè)名字,是因?yàn)槊芪姆纸M像鏈條一樣相互連接在一起。
在CBC模式中,首先將明文分組與前一個(gè)密文分組進(jìn)行異或運(yùn)算,然后再進(jìn)行加密。

異或運(yùn)算:

異或,英文為exclusive OR,縮寫成xor

異或(xor)是一個(gè)數(shù)學(xué)運(yùn)算符。它應(yīng)用于邏輯運(yùn)算。異或的數(shù)學(xué)符號(hào)為“⊕”,計(jì)算機(jī)符號(hào)為“xor”。其運(yùn)算法則為:

a⊕b = (?a ∧ b) ∨ (a ∧?b)

如果a、b兩個(gè)值不相同,則異或結(jié)果為1。如果a、b兩個(gè)值相同,異或結(jié)果為0。

異或也叫半加運(yùn)算,其運(yùn)算法則相當(dāng)于不帶進(jìn)位的二進(jìn)制加法:二進(jìn)制下用1表示真,0表示假,則異或的運(yùn)算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進(jìn)位,所以異或常被認(rèn)作不進(jìn)位加法。

異或略稱為XOR、EOR、EX-OR

程序中有三種演算子:XOR、xor、⊕。

使用方法如下

z = x ⊕ y

z = x xor y

二.CBC模式加解密過程如下:

1.加密過程例如以下:

  • ?首先將數(shù)據(jù)依照8個(gè)字節(jié)一組進(jìn)行分組得到D1D2......Dn(若數(shù)據(jù)不是8的整數(shù)倍,用指定的PADDING數(shù)據(jù)補(bǔ)位)
  • ?第一組數(shù)據(jù)D1與初始化向量iv異或后的結(jié)果進(jìn)行DES加密得到第一組密文C1(初始化向量I為全零)
  • 第二組數(shù)據(jù)D2與第一組的加密結(jié)果C1異或以后的結(jié)果進(jìn)行DES加密,得到第二組密文C2
  • 之后的數(shù)據(jù)以此類推,得到Cn
  • 按順序連為C1C2C3......Cn即為加密結(jié)果。
  • 2. 解密密過程例如以下:

  • 首先將數(shù)據(jù)依照8個(gè)字節(jié)一組進(jìn)行分組得到C1C2C3......Cn
  • 將第一組數(shù)據(jù)進(jìn)行解密后與初始化向量I進(jìn)行異或得到第一組明文D1(注意:一定是先解密再異或)
  • 將第二組數(shù)據(jù)C2進(jìn)行解密后與第一組密文數(shù)據(jù)進(jìn)行異或得到第二組數(shù)據(jù)D2
  • 之后依此類推。得到Dn
  • 按順序連為D1D2D3......Dn即為解密結(jié)果。
  • 這里注意一點(diǎn),解密的結(jié)果并不一定是我們?cè)瓉淼募用軘?shù)據(jù),可能還含有你補(bǔ)得位。一定要把補(bǔ)位去掉才是你的原來的數(shù)據(jù)。

    三.CBC模式特點(diǎn)

    • cbc模式在進(jìn)行加密之前一定會(huì)與前一個(gè)密文組進(jìn)行異或運(yùn)算,因此即使明文D1與明文D2值相等,密文C1與密文C2也不一定是相等的
    • cbc模式無法單獨(dú)的對(duì)一個(gè)明文組進(jìn)行加密,必須有前一個(gè)密文組,第一個(gè)密文組依賴于IV產(chǎn)生
    • 解密時(shí)如果其中一個(gè)密文組損壞,只要密文分組的長(zhǎng)度沒有發(fā)生變化,則解密時(shí)最多只有2個(gè)分組受到數(shù)據(jù)損壞的影響
    • 資源下載地址?https://download.csdn.net/download/qq_27969037/11327461

    總結(jié)

    以上是生活随笔為你收集整理的【转】国密算法sm4 CBC模式加解密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。