最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C BlowFish對稱加密算法詳解

 更新時間:2021年08月16日 10:37:29   作者:PwnGuo  
這篇文章主要介紹了C BlowFish對稱加密算法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

1.算法原理

BlowFish算法基于Feistel網(wǎng)絡(luò),加密函數(shù)迭代執(zhí)行16輪,分組長度為64位,密鑰長度可以從32位到448位。算法由兩部分組成,密鑰擴展部分和數(shù)據(jù)加密部分,密鑰擴展部分將最長最長為448位的密鑰轉(zhuǎn)化成共4168字節(jié)長度的子密鑰數(shù)組,其中,數(shù)據(jù)加密由一個16輪的Feistel網(wǎng)絡(luò)完成,每輪由一個密鑰相關(guān)置換和一個密鑰與數(shù)據(jù)相關(guān)的替換組成。

(1)子密鑰

BlowFish算法子密鑰在加密前預計算產(chǎn)生。

P數(shù)組由18個32位字的子密鑰組成。P1,P2''''''.P18

4個8X32的包含總共1024個32位字的S-box.

子密鑰擴展算法如下:

  1. 按順序使用常數(shù)π的小數(shù)部分初始化P數(shù)組和S-box
  2. 對P數(shù)組和密鑰進行逐位異或,需要時重用密鑰。
  3. 使用當前的P數(shù)組和S-box,對全0和64位分組使用BlowFish算法進行加密,用輸出替代P1,p2,
  4. 使用當前的P和S對第3步的輸出進行加密,并輸出替代P3,P4
  5. 繼續(xù)上面的過程,直到按順序替代所用的P數(shù)組和S-Box中的元素。

2.加密代碼實現(xiàn)

BlowFish由16輪的Fistel網(wǎng)絡(luò)組成,輸入是一個64位的數(shù)據(jù)元素X,將X分成兩個32位部分,XL,XR,加密如下:

void Blowfish_encipher(unsigned long *xl, unsigned long *xr)
{
   unsigned long  Xl;
   unsigned long  Xr;
   unsigned long  temp;
   short          i;
 
   Xl = *xl;
   Xr = *xr;
 
   for (i = 0; i < 16; ++i) {   //16輪的
      Xl = Xl ^ P[i];
      Xr = F(Xl) ^ Xr;
 
      temp = Xl;
      Xl = Xr;
      Xr = temp;
   }
 
   temp = Xl;
   Xl = Xr;
   Xr = temp;
 
   Xr = Xr ^ P[N];
   Xl = Xl ^ P[N + 1];
  
   *xl = Xl;
   *xr = Xr;
}

ANALYZER通過檢測4個8X32的包含總共1024個32位字的S-box.但通過動態(tài)讀取方式時,較難識別。

到此這篇關(guān)于C BlowFish對稱加密算法詳解的文章就介紹到這了,更多相關(guān)C BlowFish對稱加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

隆子县| 七台河市| 龙山县| 东辽县| 上饶县| 左贡县| 会宁县| 桦南县| 芦溪县| 开化县| 卓资县| 平顺县| 沁水县| 大兴区| 林周县| 涡阳县| 扎鲁特旗| 无棣县| 昭平县| 兴和县| 龙泉市| 和平县| 七台河市| 余庆县| 松溪县| 丰台区| 祁阳县| 饶河县| 九寨沟县| 高雄县| 北宁市| 长顺县| 宜兰市| 崇文区| 广安市| 长海县| 松阳县| 响水县| 休宁县| 社旗县| 丘北县|