国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

這篇具有很好參考價(jià)值的文章主要介紹了des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? ? ? ??

目錄

1、幾個(gè)基本概念

第一個(gè)置換是:初始置換-終止置換-IP置換-初始置換IP

第二個(gè)置換:擴(kuò)展置換(32位到48位)

第三個(gè)置換:壓縮置換(S盒48位到32位)

第四個(gè)運(yùn)算:循環(huán)左移(位數(shù)不變)

第五個(gè)置換:置換選擇pc-1(64位到56位)

第六個(gè)置換:壓縮置換pc-2(56位到48位)

第七個(gè)運(yùn)算:F變換

第八個(gè)置換:P-盒置換(48bit到32bit)

第九個(gè)置換:逆置換

2、子密鑰生成過程

3、des加密過程(迭代)

4、子密鑰算法的流程圖

5、加密算法流程圖


? ? ? ? CSDN上看了很多文章,但是我感覺寫的太過專業(yè)化,很多時(shí)候讀起來很費(fèi)力氣,明明是簡單的過程,但是經(jīng)過復(fù)雜的說法,很難使人一讀就懂。經(jīng)過深入的思考,以及算法報(bào)告是對(duì)學(xué)生理解能力的考核,我認(rèn)為加密算法這么寫更易懂,同樣體現(xiàn)了對(duì)這個(gè)知識(shí)點(diǎn)的學(xué)習(xí)和思考:那么開始吧,首先我們要明白幾個(gè)置換過程,這個(gè)和加密算法無關(guān),你只需要明白這個(gè)置換即可。

1、幾個(gè)基本概念

第一個(gè)置換是:初始置換-終止置換-IP置換-初始置換IP

雖然我寫了四個(gè)置換,是因?yàn)楹芏鄬I(yè)的人用了不同的稱呼,但他們的方法都是一樣的原來是64位的,置換后依然是64位的,所以看到這三個(gè),你就想著這是把原數(shù)據(jù)打亂了,怎么置換呢,首先按照需要加密雙方的約定指定一張表,這張表寫著64位數(shù)字,代表著咱們要加密的64位原文,比如我和另一個(gè)要給他發(fā)消息的人約定了如下表格:

58,50,42,34,26,18,10,2,

60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,

64,56,48,40,32,24,16,8,

57,49,41,33,25,17, 9,1,

59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,

63,55,47,39,31,23,15,7,

我們有64位數(shù)據(jù),此時(shí)將輸入的64位明文的第1位置換到第40位,第2位置換到第8位,第3位置換到第48位。以此類推,最后一位是原來的第7位。置換規(guī)則是規(guī)定的。

此時(shí)我將得到經(jīng)過置換的64位數(shù)據(jù)。

第二個(gè)置換:擴(kuò)展置換(32位到48位)

這個(gè)32位怎么來的不用管,先理解怎么置換的,我把這32位數(shù)據(jù)分為8組,每組我就有4個(gè),如下:

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

每組的4位,我們規(guī)定讓他用一種方法變成6位,怎么變呢?

把每組的最后一個(gè)數(shù)字補(bǔ)到前一組的開頭,像拉火車一樣,車尾接車頭,形成如下的48位數(shù)據(jù):

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

第三個(gè)置換:壓縮置換(S盒48位到32位)

同樣48位怎么來的,先不管,看看置換方法:

我和那個(gè)人收我消息的人規(guī)定的另一張表是用在這的,這表我倆稱之為S盒,而且我倆一起做了8張,每張有4行16列,共64個(gè)方框。

我們將要壓縮的48位分為8組,每組6位,這6位二進(jìn)制數(shù),掐頭去尾,將拿出來的這兩個(gè)數(shù)組成一個(gè)新的數(shù)字,轉(zhuǎn)為十進(jìn)制,作為我和那個(gè)人規(guī)定的S盒這張表的行數(shù)。中間的四個(gè)數(shù)字轉(zhuǎn)為十進(jìn)制,作為列數(shù)。行列確定了表中的一個(gè)加密數(shù)字。當(dāng)然四個(gè)二進(jìn)制數(shù)最大的是1111,就是十進(jìn)制15,所以我倆規(guī)定的這張表有重復(fù)數(shù)字,但是最大數(shù)字是15。這樣6位數(shù)字,變成了表中的一個(gè)數(shù)字,且它最大是1111,共計(jì)8組,6*8變成了4*8。

第四個(gè)運(yùn)算:循環(huán)左移(位數(shù)不變)

左移比較簡單,就是循環(huán)左移,頭尾相接,進(jìn)行移動(dòng),但我倆規(guī)定第一次左移要移動(dòng)一個(gè)位置,其中第一次、第二次、第九次、第十六次是循環(huán)左移一位,其他都是左移兩位。

第五個(gè)置換:置換選擇pc-1(64位到56位)

置換選擇就是置換后,選擇一種方式讀取。我倆還有張表,叫這個(gè)名字--縮小選擇換位表1(置換選擇表1)。

將64位數(shù)據(jù),分為8組,每組8個(gè),是不是這樣的:

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

表里有64個(gè)數(shù)據(jù),但是最后一位我們不要,前七位留著,但不是按照正常的方式讀取,現(xiàn)在我們從下到上讀取,讀取的過程中,我們給他分為兩組,C0和D0,C0是左邊藍(lán)色的部分,拿走28位,D0不僅從下往上,還要從右往左,再拿走28位。

第六個(gè)置換:壓縮置換pc-2(56位到48位)

這次的表你猜對(duì)了,還是我們規(guī)定的,同樣的壓縮,但這是表2。位數(shù)不同,所以方法不同,因?yàn)檫@部分會(huì)用在子密鑰上,所以加了個(gè)pc。

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

這次我們規(guī)定上圖表中的56位數(shù)據(jù),第918、2225、35、38、43、548位被剔除了,這樣就壓縮到了48位。

第七個(gè)運(yùn)算:F變換

F變換是一個(gè)運(yùn)算流程的統(tǒng)稱,這是過程是將32位數(shù)據(jù)擴(kuò)展置換到48位,這48位與pc-2置換后的48位進(jìn)行異或運(yùn)算(異或運(yùn)算兩個(gè)數(shù)相同結(jié)果為0,不同為1),經(jīng)過F變換后,還是48位數(shù)據(jù)。

第八個(gè)置換:P-盒置換(48bit到32bit)

S-盒代替運(yùn)算,每一盒得到4位,8盒共得到32位輸出。這32位輸出作為P盒置換的輸入塊。P盒置換將每一位輸入位映射到輸出位。任何一位都不能被映射兩次,也不能被略去。經(jīng)過P-盒置換的結(jié)果與最初64位分組的左半部分異或,然后左右兩部分交換,開始下一輪迭代。

P-盒置換表(表示數(shù)據(jù)的位置)共32位。將32位的輸入的第16位放在第一位,第七位放在第二位,第二十位放在第三位,以此類推。如下:

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

第九個(gè)置換:逆置換

將初始置換進(jìn)行16次的迭代,即進(jìn)行16層的加密變換,這個(gè)運(yùn)算過程我們暫時(shí)稱為函數(shù)f。得到L16和R16,將此作為輸入塊,進(jìn)行逆置換得到最終的密文輸出塊。逆置換是初始置換的逆運(yùn)算。從初始置換規(guī)則中可以看到,原始數(shù)據(jù)的第1位置換到了第40位,第2位置換到了第8位。則逆置換就是將第40位置換到第1位,第8位置換到第2位。以此類推,逆置換規(guī)則如下。

40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

31

38

6

46

14

54

22

62

30

37

5

45

13

53

21

61

29

36

4

44

12

52

20

60

28

35

3

43

11

51

19

59

27

34

2

42

10

50

18

58 26

33

1

41

9

49

17

57

25

注:DES算法的加密密鑰是根據(jù)用戶輸入的秘鑰生成的,該算法把64位密碼中的第8位、第16位、第24位、第32位、第40位、第48位、第56位、第64位作為奇偶校驗(yàn)位,在計(jì)算密鑰時(shí)要忽略這8位.所以實(shí)際中使用的秘鑰有效位是56位。秘鑰共64位,每次置換都不考慮每字節(jié)的第8位,因?yàn)檫@一位是奇偶校驗(yàn)位,所以64位秘鑰的第8、16、24、32、40、48、56、64位在計(jì)算秘鑰時(shí)均忽略。

2、子密鑰生成過程

明文64-> 初始置換 -> pc-1置換選擇(56bit -> 分組C0D0(每組28bit->兩組都循環(huán)左移 ->? pc-2壓縮置換(48bit),生成了子密鑰key148bit

由于我們需要16輪變換,也稱之為“輪操作”。這個(gè)k1要和R0做異或運(yùn)算,即F變換。得到的48位結(jié)果進(jìn)入S1盒壓縮處理,為32位,和L0交換順序后的64位密文,是我們下一次循環(huán)pc-1置換選擇的初始值。

根據(jù)輪數(shù),將Cn和Dn分別循環(huán)左移1位或2位。

循環(huán)左移每輪移動(dòng)的位數(shù)如下:

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

3、des加密過程(迭代)

明文64->初始置換-> 分組 ->? S盒壓縮處理(16) -> ?逆初始置換IP-1-> 密文

比如我有一句話要傳送給收件人 I love youyy

首先使用ascii(電腦編碼系統(tǒng)),進(jìn)入計(jì)算機(jī)后為二進(jìn)制,如圖:

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

存入計(jì)算機(jī)為:0110 1001i??? ?0010 0001(空格)?? ??0110 1100l??? 0110 1111o?? 0111 0110v??? 0110 0101e?? ??0010 1100(逗號(hào))?? ??0111 1001y??? 0111 1001y

(這里沒有考慮數(shù)據(jù)類型,比如一般int4個(gè)字節(jié),以及物理層傳輸時(shí)的比特流的編碼)

共計(jì)9個(gè)字符。每個(gè)1字節(jié),即8位,共計(jì)72位,此時(shí),我們將數(shù)據(jù)分為多組,每組64位,即我們只要前64位來演示des加密后的密文。目前我們有64bit的明文。

???????? 64bit的明文首先要按照表3-2進(jìn)行IP置換,即原始數(shù)據(jù)的58位放在新數(shù)據(jù)的第1位,原始數(shù)據(jù)的第50位放在新數(shù)據(jù)第2位,以此類推。得到新的64bit數(shù)據(jù)分成L0 R0 左右兩部分,每部分為32bit。

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

首先對(duì)原始數(shù)據(jù)整理一下

序號(hào) 1

0110 ?1001i??????????????????????????

2

0010 ?0001(空格)

3

0110 ?1100l

4

0110 ?1111o

5

0111 ?0110v

6

0110 ?0101e

7

0010 ?1100(逗號(hào))

8

0111 1001y

(好多啊,好麻煩吖,開始考慮這項(xiàng)任務(wù)有沒有必要了)

這里只置換兩行舉例:

序號(hào) 1

1011? 1101????????????

2

1001? 0000

由此我們得到置換后的64bit數(shù)據(jù)。

將此分為L032bit)和R032bit),R0與秘鑰結(jié)合(異或運(yùn)算)后,進(jìn)行S1盒壓縮處理,處理后的數(shù)據(jù)為32位繼續(xù)作為R0,與秘鑰結(jié)合,而原來的R0賦值給L0,即:原來的右半部分成為新的左半部分。用式子表示如下:

Ln = R(n - 1);(不存在R負(fù)1)

Rn = L(n - 1)⊕f(Rn-1,kn-1)

[⊕:異或運(yùn)算 ?Kn是向第N層輸入的48位的秘鑰,f是以Rn-1和Kn為變量的輸出32位的函數(shù)]

如此16輪后,數(shù)據(jù)依然是64bit,而右半部分的R0由幾步運(yùn)算構(gòu)成:擴(kuò)展置換(32bit->48bit);秘鑰置換(Kn的生成,n=0~16);S-盒壓縮處理替代;P-盒置換,最后還有交換和逆置換,完成輸入密文的任務(wù)。

4、子密鑰算法的流程圖

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)

5、加密算法流程圖

des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)文章來源地址http://www.zghlxwxcb.cn/news/detail-474725.html

到了這里,關(guān)于des加密算法最簡單的解釋(更簡單,大白話,讀完就理解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 大白話解析LevelDB: VersionSet

    在 LevelDB 中, VersionSet 類是一個(gè)關(guān)鍵的內(nèi)部組件,負(fù)責(zé)管理數(shù)據(jù)庫的不同版本。這個(gè)類跟蹤了所有的 SSTables(排序字符串表)和它們在數(shù)據(jù)庫中的布局。每次對(duì)數(shù)據(jù)庫進(jìn)行修改時(shí)(如添加、刪除數(shù)據(jù)),LevelDB 會(huì)創(chuàng)建一個(gè)新的 Version 對(duì)象,這個(gè)對(duì)象由 VersionSet 管理。 VersionSe

    2024年01月19日
    瀏覽(22)
  • 大白話聊聊“深度學(xué)習(xí)”和“大模型”

    大白話聊聊“深度學(xué)習(xí)”和“大模型”

    1950年圖靈發(fā)表論文《計(jì)算機(jī)器與智能》( Computing Machinery and Intelligence),提出了“機(jī)器智能”(Machine Intelligent)的概念,并且提出了著名的“圖靈測試”的方法來判斷機(jī)器是否有智能。 1956年,達(dá)特茅斯會(huì)議,“人工智能”(Artificial Intelligent)概念被首次提出,人工智能作

    2024年02月02日
    瀏覽(39)
  • 用大白話舉例子講明白云計(jì)算

    前幾天王堅(jiān)院士在2023云棲大會(huì)上發(fā)表了關(guān)于云計(jì)算的演講,聽得我是熱血沸騰,王院士稱AI和云計(jì)算的結(jié)合是“云計(jì)算的第三次浪潮”,對(duì)此我深表認(rèn)同。但是身邊的很多朋友還不知道云計(jì)算是什么意思,有些人還認(rèn)為百度云和百度云盤是一個(gè)東西,下面我用大白話舉例說明

    2024年02月04日
    瀏覽(26)
  • 用大白話舉例子講明白區(qū)塊鏈

    什么是區(qū)塊鏈?網(wǎng)上這么說: 區(qū)塊鏈?zhǔn)且环N分布式數(shù)據(jù)庫技術(shù),它以塊的形式記錄和存儲(chǔ)交易數(shù)據(jù),并使用密碼學(xué)算法保證數(shù)據(jù)的安全性和不可篡改性。每個(gè)塊都包含了前一個(gè)塊的哈希值和自身的交易數(shù)據(jù),形成了一個(gè)不斷增長的鏈條。 區(qū)塊鏈的特點(diǎn)包括: 分布式:區(qū)塊鏈

    2024年02月04日
    瀏覽(25)
  • 大白話理解-微信小程序獲取授權(quán)

    大白話理解-微信小程序獲取授權(quán)

    微信用戶授權(quán),才可以操作微信官方的某些接口。 簡單來說就是:微信定義了很多接口,然后他們認(rèn)為有一部分是涉及到用戶使用安全的,所以把這一部分劃分了出來,然后這一部分按照功能來拆開各種范圍。于是有了scope列表的東西,scope翻譯為中文是范圍的意思。(定位屬于

    2024年02月02日
    瀏覽(30)
  • Lighting Network(閃電網(wǎng)絡(luò))大白話解析

    Lighting Network(閃電網(wǎng)絡(luò))大白話解析

    通道(Channel),通過在主網(wǎng)宣布通道建立,而后交易雙方轉(zhuǎn)至鏈下交易,把多次交易在鏈下完成,不占用主網(wǎng)資源,交易完成后在主網(wǎng)廣播最終交易結(jié)果,無需更改主網(wǎng)機(jī)制即可實(shí)現(xiàn)吞吐量的提高。 “通道”是一個(gè)邏輯上的概念,實(shí)際使用過程中并沒有“通道”,即使在數(shù)據(jù)傳

    2024年02月04日
    瀏覽(26)
  • 設(shè)計(jì)模式大白話——適配器模式

    設(shè)計(jì)模式大白話——適配器模式

    ? 適配器其實(shí)非常好理解,放到生活中來,我們身邊處處都有這樣的例子,最常見的是用的比較多的各種轉(zhuǎn)接線(如:USB 轉(zhuǎn) Type-C),有了這個(gè)“適配器”,我們就能夠?qū)㈦娔X和手機(jī)等設(shè)備相進(jìn)行連接,而不需要改動(dòng)電腦/手機(jī)的原有接口。 ? 回到編程的世界中,假設(shè)我們的

    2024年02月10日
    瀏覽(27)
  • 別樣的git學(xué)習(xí)--大白話學(xué)git

    希望用更加口語化的語言向大家講述git 的魅力 1、Git-stash (貯存) 想象一下,你正在寫一封重要的郵件,但突然你的老板告訴你需要立即處理另一個(gè)緊急任務(wù)。你還沒完成郵件,不想丟失已寫的內(nèi)容,但你也需要一個(gè)干凈的工作空間來處理新的任務(wù)。在這種情況下,Git 的

    2024年01月24日
    瀏覽(24)
  • 用大白話來講講多線程的知識(shí)架構(gòu)

    用大白話來講講多線程的知識(shí)架構(gòu)

    感覺多線程的知識(shí)又多又雜,自從接觸java,就在一遍一遍捋脈絡(luò)和深入學(xué)習(xí)?,F(xiàn)在將這次的學(xué)習(xí)成果展示如下。 什么是多線程? 操作系統(tǒng)運(yùn)行一個(gè)程序,就是一個(gè)線程。同時(shí)運(yùn)行多個(gè)程序,就是多線程。即在同一時(shí)間,并行做多件事。 “并行”是相對(duì)于我們這些用戶來說的

    2024年02月11日
    瀏覽(24)
  • 大白話說說Docker容器默認(rèn)網(wǎng)絡(luò)模型工作原理

    大白話說說Docker容器默認(rèn)網(wǎng)絡(luò)模型工作原理

    Docker的默認(rèn)網(wǎng)絡(luò)模型 —— 橋接模式(Bridge) 當(dāng)你不做任何特殊設(shè)置時(shí),Docker會(huì)使用一種叫做“橋接模式”的網(wǎng)絡(luò)設(shè)置。這就像是給你的容器小房子安裝了一個(gè)虛擬的橋接網(wǎng)絡(luò)。這座橋連接著容器和你的電腦(宿主機(jī)),還能與外界通信。 虛擬網(wǎng)絡(luò)橋 :想象一下,在你的電

    2024年02月21日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包