新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > des算法原理

        des算法原理

        作者: 時間:2012-02-17 來源:網(wǎng)絡 收藏

        用S密箱里的值S[j][ m][ n]替換B[j]。8個S密箱如下所示:
        S-BOXE:S1
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 14 0 4 15
        0001 1 4 15 1 12
        0010 2 13 7 14 8
        0011 3 1 4 8 2
        0100 4 2 14 13 4
        0101 5 15 2 6 9
        0110 6 11 13 2 1
        0111 7 8 1 11 7
        1000 8 3 10 15 5
        1001 9 10 6 12 11
        1010 10 6 12 9 3
        1011 11 12 11 7 14
        1100 12 5 9 3 10
        1101 13 9 5 10 0
        1110 14 0 3 5 6
        1111 15 7 8 0 13
        S-BOXE:S2
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 15 3 0 13
        0001 1 1 13 14 8
        0010 2 8 4 7 10
        0011 3 14 7 11 1
        0100 4 6 15 10 3
        0101 5 11 2 4 15
        0110 6 3 8 13 4
        0111 7 4 14 1 2
        1000 8 9 12 5 11
        1001 9 7 0 8 6
        1010 10 2 1 12 7
        1011 11 13 10 6 12
        1100 12 12 6 9 0
        1101 13 0 9 3 5
        1110 14 5 11 2 14
        1111 15 10 5 15 9
        S-BOXE:S3
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 10 13 13 1
        0001 1 0 7 6 10
        0010 2 9 0 4 13
        0011 3 14 9 9 0
        0100 4 6 3 8 6
        0101 5 3 4 15 9
        0110 6 15 6 3 8
        0111 7 5 10 0 7
        1000 8 1 2 11 4
        1001 9 13 8 1 15
        1010 10 12 5 2 14
        1011 11 7 14 12 3
        1100 12 11 12 5 11
        1101 13 4 11 10 5
        1110 14 2 15 14 2
        1111 15 8 1 7 12
        S-BOXE:S4
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 7 13 10 3
        0001 1 13 8 6 15
        0010 2 14 11 9 0
        0011 3 3 5 0 6
        0100 4 0 6 12 10
        0101 5 6 15 11 1
        0110 6 9 0 7 13
        0111 7 10 3 13 8
        1000 8 1 4 15 9
        1001 9 2 7 1 4
        1010 10 8 2 3 5
        1011 11 5 12 14 11
        1100 12 11 1 5 12
        1101 13 12 10 2 7
        1110 14 4 14 8 2
        1111 15 15 9 4 14
        S-BOXE:S5
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 2 14 4 11
        0001 1 12 11 2 8
        0010 2 4 2 1 12
        0011 3 1 12 11 7
        0100 4 7 4 10 1
        0101 5 10 7 13 14
        0110 6 11 13 7 2
        0111 7 6 1 8 13
        1000 8 8 5 15 6
        1001 9 5 0 9 15
        1010 10 3 15 12 0
        1011 11 15 10 5 9
        1100 12 13 3 6 10
        1101 13 0 9 3 4
        1110 14 14 8 0 5
        1111 15 9 6 14 3
        S-BOXE:S6
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 12 10 9 4
        0001 1 1 15 14 3
        0010 2 10 4 15 2
        0011 3 15 2 5 12
        0100 4 9 7 2 9
        0101 5 2 12 8 5
        0110 6 6 9 12 15
        0111 7 8 5 3 10
        1000 8 0 6 7 11
        1001 9 13 1 0 14
        1010 10 3 13 4 1
        1011 11 4 14 10 7
        1100 12 14 0 1 6
        1101 13 7 11 13 0
        1110 14 5 3 11 8
        1111 15 11 8 6 13
        S-BOXE:S7
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 4 13 1 6
        0001 1 11 0 4 11
        0010 2 2 11 11 13
        0011 3 14 7 13 8
        0100 4 15 4 12 1
        0101 5 0 9 3 4
        0110 6 8 1 7 10
        0111 7 13 10 14 7
        1000 8 3 14 10 9
        1001 9 12 3 15 5
        1010 10 9 5 6 0
        1011 11 7 12 8 15
        1100 12 5 2 0 14
        1101 13 10 15 5 2
        1110 14 6 8 9 3
        1111 15 1 6 2 12
        S-BOXE:S8
        Binary d1d6 =>; 00 01 10 11
        / d2..d5 / Dec 0 1 2 3
        0000 0 13 1 7 2
        0001 1 2 15 11 1
        0010 2 8 13 4 14
        0011 3 4 8 1 7
        0100 4 6 10 9 4
        0101 5 15 3 12 10
        0110 6 11 7 14 8
        0111 7 1 4 2 13
        1000 8 10 12 0 15
        1001 9 9 5 6 12
        1010 10 3 6 10 9
        1011 11 14 11 13 0
        1100 12 5 0 15 3
        1101 13 0 14 3 5
        1110 14 12 9 5 6
        1111 15 7 2 8 11

        返回第一步直至8個數(shù)據(jù)塊都被替換。

        把B[1]至B[8]順序串聯(lián)起來得到一個32位數(shù)。對這個數(shù)做如下變換:
        bit goes to bit bit goes to bit
        16 1 2 17
        7 2 8 18
        20 3 24 19
        21 4 14 20
        29 5 32 21
        12 6 27 22
        28 7 3 23
        17 8 9 24
        1 9 19 25
        15 10 13 26
        23 11 30 27
        26 12 6 28
        5 13 22 29
        18 14 11 30
        31 15 4 31
        10 16 25 32

        把得到的結果與L[i-1]作異或運算。把計算結果x給R[i]。

        把R[i-1]的值x給L[i]。

        從a循環(huán)執(zhí)行,直到K[16]也被用到。

        把R[16]和L[16] 順序串聯(lián)起來得到一個64位數(shù)。對這個數(shù)實施II變換的逆變換。

        以上就是DES算法如何加密一段64位數(shù)據(jù)塊。解密時用同樣的過程,只需把16個子密鑰的順續(xù)顛倒過來,應用的順序為K[16],K[15],K[14],...K[1]。


        上一頁 1 2 下一頁

        關鍵詞: des 算法原理

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 读书| 灵山县| 香港 | 铁力市| 漠河县| 石首市| 长顺县| 东源县| 紫金县| 南乐县| 泰顺县| 客服| 乃东县| 自治县| 东安县| 邳州市| 柳林县| 北海市| 青田县| 井研县| 绥棱县| 宣汉县| 锦州市| 万载县| 石林| 福清市| 崇左市| 浪卡子县| 博乐市| 新巴尔虎右旗| 潮州市| 岳阳县| 延长县| 称多县| 阿坝县| 驻马店市| 鹤壁市| 通州市| 彩票| 天门市| 明光市|