DES算法為密碼體質(zhì)中的對(duì)稱密碼體制,又被稱為美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn),是1972年美國(guó)IBM公司研制的對(duì)稱密碼體制加密算法。 明文按64位進(jìn)行分組,密鑰長(zhǎng)64位,密鑰事實(shí)上是56位參與DES運(yùn)算(第8、16、24、32、40、48、56、64位是校驗(yàn)位, 使得每個(gè)密鑰都有奇數(shù)個(gè)1)分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。 實(shí)際應(yīng)用中注意的幾個(gè)問題: 1、數(shù)據(jù)補(bǔ)位 DES加密解密就是將數(shù)據(jù)按8字節(jié)一段進(jìn)行DES加密或解密,得到一段8個(gè)字節(jié)的密文或明文,最后一段不足8字節(jié)的(通常補(bǔ)全00或者FF),需要根據(jù)實(shí)際需求來定,之后按順序連在一起。 2、ECB模式 ECB模式(電子密本方式)按8字節(jié)一段進(jìn)行DES加密或解密得到明文或者密文,最后不足8字節(jié)的按要求補(bǔ)全8字節(jié) 加密步驟: (1)將加密數(shù)據(jù)塊分成以8字節(jié)為單位的數(shù)據(jù)塊,表示為D0、D1、D2等。最后的數(shù)據(jù)塊有可能是1~8個(gè)字節(jié)。 (2)如果最后(或唯一)的數(shù)據(jù)塊的長(zhǎng)度是8字節(jié)的話,轉(zhuǎn)到第三步;如果不足8字節(jié),則在其后(根據(jù)規(guī)定)補(bǔ)全8字節(jié),如果達(dá)到8字節(jié)長(zhǎng)度,則轉(zhuǎn)到第三步。 (3)按照下圖ECB加密模式所述的算法使用指定密鑰對(duì)每一個(gè)數(shù)據(jù)塊進(jìn)行加密。 (4)計(jì)算結(jié)束后,所有加密后的數(shù)據(jù)塊依照原順序連接在一起組成加密密文。 優(yōu)點(diǎn):1、加密方式簡(jiǎn)單有利于加密計(jì)算;2、單步加密錯(cuò)誤誤差不會(huì)被傳送; 缺點(diǎn):1、可以對(duì)明文進(jìn)行主動(dòng)攻擊,明文數(shù)據(jù)不易隱藏。 3、CBC模式 CBC模式(密文分組鏈接方式) 加密步驟: (1)將明文數(shù)據(jù)以8字節(jié)一組分組,得到D1...Dn(不足補(bǔ)位)。 (2)將D1與初始向量I異或后的結(jié)果進(jìn)行DES加密運(yùn)算得到第一組密文C1。 (3)D2與第一組加密數(shù)據(jù)C1異或后進(jìn)行DES加密運(yùn)算得到第二組密文C2。 (4)以此類推,將最后的加密結(jié)果C1....Cn拼接起來組成密文C。 優(yōu)點(diǎn):1、安全性高于ECB方式,不容易被主動(dòng)攻擊; 缺點(diǎn):1、不利于并行計(jì)算;2、誤差傳遞;3、需要初始化向量IV。 LKT加密芯片支持DES-CBC、DES-ECB和國(guó)際上通用的對(duì)稱和非對(duì)稱加密算法,多種型號(hào)的加密芯片支持UART、IIC、SPI、USB等不同接口,滿足不同客戶的不同需求。 |