0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

3DES算法的動態(tài)加密系統(tǒng)設(shè)計原理

麥克泰技術(shù) ? 來源:3DES ? 2024-03-26 12:24 ? 次閱讀

引言

目前,應(yīng)用在工業(yè)控制領(lǐng)域的加密算法多以CRC加密或者校驗和CHECKSUM加密算法為主,但是此類普通加密算法如果每次發(fā)送的控制指令相同,計算出的加密結(jié)果也是一樣的[1],具有控制數(shù)據(jù)被破解的風險,增加通信的不安全性,這在一些醫(yī)療、金融和汽車電子等特殊領(lǐng)域是不允許的。

1 動態(tài)加密系統(tǒng)原理

本文提出的動態(tài)加密系統(tǒng)包括上位機和下位機兩部分。圖1所示為動態(tài)加密算法原理,在工作過程中,首先由下位機周期性發(fā)送一包隨機種子數(shù)據(jù)(每次發(fā)送數(shù)據(jù)均變化),并按約定的加密算法進行計算加密,結(jié)果記為A,然后上位機接收到此隨機種子后按同樣的加密算法進行加密,然后將控制指令和加密結(jié)果記為B的數(shù)據(jù)整合為一幀數(shù)據(jù)后傳送給下位機,下位機接收到此控制指令后進行數(shù)據(jù)解析,若A=B,則執(zhí)行相應(yīng)控制指令功能,依此通信過程進行循環(huán)。

f711de6c-eb25-11ee-a297-92fbcf53809c.jpg

2 動態(tài)加密系統(tǒng)硬件設(shè)計

2.1 主控芯片 STM32F103RCT6

本設(shè)計中上下位機使用的主控芯片均為STM32F103RCT6,這是一款32位微控制器,最大系統(tǒng)時鐘速度可達72 MHz,為快速實時處理復雜加密算法提供了可能性,片內(nèi)集成FLASH 容量為256 KB,RAM容量為48 KB,具有 UARTCAN通信等模塊[2],STM32F103RCT6集成的豐富片上外設(shè)資源大大簡化了設(shè)計成本及開發(fā)周期。

2.2 STM32 最小系統(tǒng)電路設(shè)計

STM32 最小系統(tǒng)可以直觀地理解為讓單片機正常工作的最小電路,圖2所示為STM32最小系統(tǒng)構(gòu)成,包括電源電路、晶振電路、復位電路和啟動模式配置等[3]。電源電路經(jīng)穩(wěn)壓芯片 REF3133將5V電壓轉(zhuǎn)換為3.3V提供給 MCU。外部晶振電路類似于"心臟"的功能,為單片機提供精準的時鐘頻率以保證正常工作。復位電路為單片機提供上電復位功能,利用電容充電不能瞬間突變的特性,即可完成一次單片機上電復位。BOOTO 引腳配置為低電平,以使MCU從用戶FLASH存儲區(qū)啟動。

f722f206-eb25-11ee-a297-92fbcf53809c.jpg

2.3 CAN通信電路設(shè)計

使用 Philips 半導體公司的 TJA1050 進行 CAN 通信電路設(shè)計,TJA1050是一款高速CAN收發(fā)集成芯片,可以提供差分傳輸總線和差分接收能力,并且全兼容ISO11898 標準[4]。CAN通信電路設(shè)計如圖3所示,其中控制引腳RS接為低電平以配置為正常高速模式。

f73ded90-eb25-11ee-a297-92fbcf53809c.jpg

3 動態(tài)加密系統(tǒng)軟件設(shè)計

3.1 動態(tài)加密算法數(shù)據(jù)包格式定義

出于通信穩(wěn)定性考慮,本設(shè)計采用CAN通信方式,CAN是Controller Area Network的縮寫,是ISO國際標準化的差分傳輸串口通信協(xié)議,具有通信速度快、通信距離遠和可靠性高等優(yōu)點[5],8字節(jié)下位機發(fā)送數(shù)據(jù)包格式定義如下:

f74b8a22-eb25-11ee-a297-92fbcf53809c.png

上位機發(fā)送8字節(jié)數(shù)據(jù)包格式定義如下:

f759c448-eb25-11ee-a297-92fbcf53809c.png

其中包頭和包尾數(shù)據(jù)分別定義為0xAA和0x55,Byte4~Bytel為應(yīng)用3DES加密算法計算結(jié)果(8字節(jié))的中間4位,并采用小端方式存儲,Byte5和Byte6為控制指令模式位,用于控制下位機的工作模式。

3.2 動態(tài)加密算法軟件設(shè)計

DES全稱為 Data Encryption Standard,即數(shù)據(jù)加密標準,是一種使密鑰加密的塊算法,屬于對稱加密算法的一種[6]。由于計算機的計算能力不斷增強,DES算法的密鑰變得較容易被破解,3DES即是在DES算法基礎(chǔ)上,通過增加密鑰長度對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法,使得其安全性得到提高[7],若以EK()、DK()分別表示DES的加密和解密函數(shù),P代表明文,C代表密文,則3DES加密算法可以用以下公式表示:

C=EK3(DK2(EK1(P)))

式中,K1、K2、K3表示總密鑰(24字節(jié))中的8字節(jié)密鑰。

本系統(tǒng)為基于3DES算法的動態(tài)加密設(shè)計,上下位機共同約定的密鑰取為24字節(jié)的十六進制數(shù):0x2B201E00270401C491EFBD27047002236E710B513460A460。T位機傳送8字節(jié)隨機數(shù)種子,其中8字節(jié)隨機數(shù)由C語言自帶的srand和rand標準庫函數(shù)配合使用而產(chǎn)生[8]。上位機在接收到下位機傳送來的8字節(jié)數(shù)據(jù)后進行3DES加密算法加密,然后按照數(shù)據(jù)包的格式回傳數(shù)據(jù)至下位機,下位機接收到此數(shù)據(jù)后進行數(shù)據(jù)解析并執(zhí)行相關(guān)指令功能,具體軟件設(shè)計過程如下:

①對MCU系統(tǒng)初始化配置(包括配置系統(tǒng)時鐘等),并進行CAN通信正常收發(fā)模式和波特率等參數(shù)設(shè)置。

②由下位機周期性向上位機傳送字節(jié)隨機數(shù),并依據(jù)3DES加密算法在同一密鑰下計算8字節(jié)隨機數(shù)加密結(jié)果,取加密結(jié)果的中間4位存入數(shù)組中。

③上位機接收到8字節(jié)隨機數(shù)后,按照與下位機同樣的計算方法計算此隨機數(shù)加密結(jié)果,并按照數(shù)據(jù)格式整合數(shù)據(jù),然后將此數(shù)據(jù)發(fā)送給下位機。

④下位機接收到上位機傳送來的數(shù)據(jù)后,進行解析并對比上傳的加密數(shù)據(jù)是否與保存在本地的加密數(shù)據(jù)一致,一致則執(zhí)行相關(guān)控制指令,不一致則不執(zhí)行相關(guān)功能。

⑤按照步驟②~④周期循環(huán)執(zhí)行通信流程。

具體軟件設(shè)計流程圖如圖4所示。

f762eb18-eb25-11ee-a297-92fbcf53809c.jpg

結(jié)語

將此通信設(shè)計方案應(yīng)用在某汽車電子產(chǎn)品中,針對此應(yīng)用系統(tǒng),設(shè)定通信波特率為500 kbps,下位機CAN通信ID設(shè)為0x18FF 0107,上位機CAN通信ID設(shè)為0x18FF 0108。為了保證通信安全,避免通信內(nèi)容被破解,需要使下位機周期發(fā)送隨機數(shù)種子時間盡量短暫,本設(shè)計定為500 ms。圖5所示為上下位機通信過程中應(yīng)用通信監(jiān)控軟件監(jiān)控到的部分通信數(shù)據(jù)幀。

f774061e-eb25-11ee-a297-92fbcf53809c.jpg

分析圖5可知,在足夠短的通信周期內(nèi),盡管控制模式固定不變,下發(fā)與上傳的通信數(shù)據(jù)每次都發(fā)生變化,這樣就提高了數(shù)據(jù)通信的安全性,減小了通信數(shù)據(jù)幀被第三方破解的概率,使得本設(shè)計方案具有一定的實用價值。

參考文獻

[1]王根義.CRC校驗算法的研究與實現(xiàn)[J].電子設(shè)計工程,2012(9):1674-6236.

[2]意法半導體公司.STM32F103xC芯片數(shù)據(jù)手冊,2015.

[3]李彬,王朝陽,卜濤,等.基于MSP430F149的最小系統(tǒng)設(shè)計[J].國外電子測量技術(shù),2009(12).

[4]郭寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學出版社,1996.

[5]徐爭穎.CAN總線及其網(wǎng)絡(luò)系統(tǒng)的實現(xiàn)[J].自動化與儀表,2005(5).

[6]李聯(lián).信息安全中的DES加密算法[J].現(xiàn)代電子技術(shù),2005(9).

[7]劉建華,趙小強,李晶.基于ARM的3DES加密算法實現(xiàn)

[J].現(xiàn)代電子技術(shù),2009,32(18):37-39.

[8]王瑞胡,計算機中偽隨機數(shù)生成及其在VISUAL C++中的實現(xiàn)[J].計算機與信息技術(shù),2005(9):79-80,84

(作者單位:南京先進激光技術(shù)研究院,南京210038)

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2686

    瀏覽量

    462938
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353809
  • 加密算法
    +關(guān)注

    關(guān)注

    0

    文章

    210

    瀏覽量

    25514
  • 下位機
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    18707

原文標題:3DES 算法的動態(tài)加密系統(tǒng)研究與應(yīng)用

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    3DES算法是什么?

    3DES使用“密鑰包”,其包含3DES密鑰,K1,K2和K3,均為56位(除去奇偶校驗位)。
    發(fā)表于 10-23 09:00

    如何去實現(xiàn)DES加密算法

    DES算法的簡單原理是什么?如何去實現(xiàn)DES加密算法
    發(fā)表于 04-26 07:14

    如何設(shè)計一個基于FPGA的DES加密算法系統(tǒng)

    為了克服傳統(tǒng)DES加密算法流水線的FPGA實現(xiàn)的子密鑰需先后串級計算,密鑰不能動態(tài)刷新的缺點,提出一種新的加密算法,提高DES FPGA實現(xiàn)
    發(fā)表于 04-30 06:29

    DES加密算法是什么

    ,是要被加密或解密的數(shù)據(jù),DES采用16輪運算,每輪產(chǎn)生一個輪密鑰參與到運算中,密鑰與明文運算時采用按位異或的方法(不僅僅是與密鑰異或),但每一位存放的數(shù)據(jù)只有0或1,因此,DES的密鑰空間僅僅只有2^56。2、
    發(fā)表于 07-22 09:13

    3DES算法密鑰長度說明

    3DES算法密鑰長度說明3DES加密算法作為經(jīng)典的對稱加密算法,已經(jīng)廣泛應(yīng)用于各安全相關(guān)行業(yè)的數(shù)據(jù)加解密與身份認證環(huán)節(jié)之中,本文主要針對用戶
    發(fā)表于 07-22 09:37

    des加密算法代碼

    des加密算法代碼 /* d3des.h - * * Headers and defines for d3des.c * Grave
    發(fā)表于 01-16 10:12 ?34次下載

    高速和資源節(jié)約型數(shù)據(jù)加密算法設(shè)計

    介紹了3DES 數(shù)據(jù)加密算法(DDA)的原理,針對利用FPGA 硬件實現(xiàn)3DES 算法,給出了一種可進化IP 核的具體設(shè)計思想,采用可重構(gòu)電路節(jié)省器件內(nèi)部資源,并采用有限狀態(tài)機設(shè)計技
    發(fā)表于 01-16 15:42 ?14次下載

    3DES算法的FPGA高速實現(xiàn)

    摘要:介紹3-DES算法的概要;以Xilinx公司SPARTANII結(jié)構(gòu)的XC2S100為例,闡述用FPGA高速實現(xiàn)3-DES算法的設(shè)計要點及關(guān)鍵部分的設(shè)計。 關(guān)鍵詞:
    發(fā)表于 06-20 14:22 ?1437次閱讀
    <b class='flag-5'>3DES</b><b class='flag-5'>算法</b>的FPGA高速實現(xiàn)

    基于狀態(tài)機和流水線技術(shù)的3DES加密算法及其FPGA設(shè)計

    摘要: 介紹了3DES加密算法的原理并詳盡描述了該算法的FPGA設(shè)計實現(xiàn)。采用了狀態(tài)機和流水線技術(shù),使得在面積和速度上達到最佳優(yōu)化;添加了輸入和輸出接口的設(shè)
    發(fā)表于 06-20 15:22 ?1144次閱讀
    基于狀態(tài)機和流水線技術(shù)的<b class='flag-5'>3DES</b><b class='flag-5'>加密算法</b>及其FPGA設(shè)計

    基于FPGA的DES、3DES硬件加密技術(shù)

    基于FPGA的DES、3DES硬件加密技術(shù) 傳統(tǒng)的加密工作是通過在主機上運行加密軟件實現(xiàn)的。這種方法除占用主機資源外,運算速度較慢,安全性
    發(fā)表于 07-26 22:35 ?1568次閱讀
    基于FPGA的<b class='flag-5'>DES</b>、<b class='flag-5'>3DES</b>硬件<b class='flag-5'>加密</b>技術(shù)

    3DES加密算法的原理及FPGA設(shè)計實現(xiàn)

    摘要: 介紹了3DES加密算法的原理并詳盡描述了該算法的FPGA設(shè)計實現(xiàn)。采用了狀態(tài)機和流水線技術(shù),使得在面積和速度上達到最佳優(yōu)化;添加了輸入和輸出接口的設(shè)計以增強該算法應(yīng)用的靈活性。
    發(fā)表于 11-06 11:10 ?7次下載

    3des加密解密詳細解釋

    3DES,也稱為3DESede或TripleDES,是三重數(shù)據(jù)加密,且可以逆推的一種算法方案。975年美國IBM公司成功研究并發(fā)布了DES
    發(fā)表于 12-09 09:43 ?3w次閱讀
    <b class='flag-5'>3des</b><b class='flag-5'>加密</b>解密詳細解釋

    軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用?

    3DES是三重數(shù)據(jù)加密算法塊密碼的通稱。它相當于是對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法。由于計算機運算能力的增強,原版DES密碼的密鑰長度變得
    的頭像 發(fā)表于 12-24 09:27 ?7675次閱讀
    軟件<b class='flag-5'>加密算法</b>都有哪些,這些<b class='flag-5'>算法</b>在哪些方面得到了應(yīng)用?

    常用算法的分類以及加密算法的選用

    DES是一種分組數(shù)據(jù)加密技術(shù)(先將數(shù)據(jù)分成固定長度的小數(shù)據(jù)塊,之后進行加密),速度較快,適用于大量數(shù)據(jù)加密,而3DES是一種基于
    的頭像 發(fā)表于 02-01 01:25 ?7688次閱讀
    常用<b class='flag-5'>算法</b>的分類以及<b class='flag-5'>加密算法</b>的選用

    3DES數(shù)據(jù)加密算法的原理和使用FPGA設(shè)計的詳細說明

    介紹了3DES 數(shù)據(jù)加密算法(DDA)的原理,針對利用FPGA 硬件實現(xiàn)3DES 算法,給出了一種可進化IP 核的具體設(shè)計思想,采用可重構(gòu)電路節(jié)省器件內(nèi)部資源,并采用有限狀態(tài)機設(shè)計技術(shù)
    發(fā)表于 01-16 10:58 ?18次下載
    <b class='flag-5'>3DES</b>數(shù)據(jù)<b class='flag-5'>加密算法</b>的原理和使用FPGA設(shè)計的詳細說明