• <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 經(jīng)典案例

    聯(lián)系方式

    公司名稱:昆山華航電子有限公司
    公司電話:0512-50139595
    公司郵箱:eric@kshuahang.com
    公司地址:江蘇省昆山市善浦西路

    您當(dāng)前的位置:首頁 > 技術(shù)資源 > 芯片解密

    加密存儲(chǔ)芯片AT88SC1616的原理與應(yīng)用技術(shù)


    隨著嵌入式產(chǎn)品性能的日益提高,嵌入式系統(tǒng)在消費(fèi)類電子、汽車、工業(yè)控制和通信等行業(yè)迅速普及;但由于嵌入式系統(tǒng)開發(fā)成本高、研發(fā)周期長,使得關(guān)鍵技術(shù)的加密和重要數(shù)據(jù)的保密問題日益突出。如何在這些嵌入式系統(tǒng)中采用低成本、高效率的方法保護(hù)自己的科研成果不被非法仿制和剽竊,同時(shí)保存一些關(guān)鍵代碼或數(shù)據(jù)已成為困擾許多研發(fā)工程師的問題之一。解決的辦法除了采用法律手段保護(hù)知識(shí)產(chǎn)權(quán)外,另一個(gè)更加簡單有效的方法就是采用加密存儲(chǔ)芯片進(jìn)行硬件電路的加密和重要數(shù)據(jù)的認(rèn)證存儲(chǔ)。

      AT88SCxx系列加密存儲(chǔ)芯片是國際著名芯片廠商Atmel公司生產(chǎn)的具有多用途的加密存儲(chǔ)系列芯片。其中AT88SC1616是該系列芯片的典型代表。由于其具有多達(dá)2KB的EEPROM ,利用I2C串行總線通信,采用認(rèn)證或加密驗(yàn)證等方式進(jìn)行數(shù)據(jù)訪問,因此以其容量大、體積小、使用方便、安全可靠等特點(diǎn),在產(chǎn)品開發(fā)中得到了廣泛的應(yīng)用。

    1 器件簡介

    1.1 引腳說明
                
       如圖1所示, 在嵌入式系統(tǒng)中,AT88SC1616常采用SOIC和PDIP兩種典型封裝。由于器件采用I2C串行總線接口,因此引腳數(shù)目少,體積小。各引腳功能如下:

      SCL――串行時(shí)鐘輸入腳,用來控制器件所有的數(shù)據(jù)輸入和輸出;
       SDA――串行數(shù)據(jù)輸入/ 輸出腳;
       VCC――電源電壓,工作電壓為3.0~5.5V;
       GND――地;
       NC――不連接。

    按此在新窗口瀏覽圖片
    圖1 AT88SC1616典型封裝

    1.2 內(nèi)部結(jié)構(gòu)

      如圖2所示,AT88SC1616加密存儲(chǔ)芯片內(nèi)部結(jié)構(gòu)主要由電源管理復(fù)位模塊、同步傳輸模塊、認(rèn)證單元、密碼校驗(yàn)單元、偽隨機(jī)數(shù)發(fā)生器和EEPROM等幾部分組成。其中電源管理復(fù)位模塊主要對(duì)芯片進(jìn)行供電、提供復(fù)位管理和掉電保護(hù)等功能;同步傳輸模塊用于控制在不同通信方式下數(shù)據(jù)的傳輸;認(rèn)證和密碼校驗(yàn)單元實(shí)現(xiàn)在不同安全等級(jí)下用戶應(yīng)用區(qū)數(shù)據(jù)訪問的安全管理;偽隨機(jī)數(shù)發(fā)生器用于進(jìn)行內(nèi)部加密機(jī)的加密計(jì)算;EEPROM則保存需要加密的重要數(shù)據(jù)和代碼。

    按此在新窗口瀏覽圖片
    圖2 AT88SC1616內(nèi)部結(jié)構(gòu)框圖

    1.3 主要特點(diǎn)

      ① 具有256B的配置存儲(chǔ)區(qū),可根據(jù)不同需要定義芯片序列號(hào)、密碼、密鑰、認(rèn)證種子和廠家信息等。

      ② 提供2KB的用戶應(yīng)用存儲(chǔ)區(qū),可根據(jù)不同安全等級(jí)將該區(qū)劃分為16個(gè)獨(dú)立的應(yīng)用分區(qū),最多可以提供給16個(gè)用戶使用;也可將具有相同安全等級(jí)和密碼的多個(gè)應(yīng)用分區(qū)進(jìn)行合并。

      ③ 高安全性。對(duì)于用戶應(yīng)用區(qū),具有標(biāo)準(zhǔn)訪問、認(rèn)證訪問和加密驗(yàn)證訪問兩種方式,同時(shí)提供多組密碼集供讀寫訪問使用。每個(gè)應(yīng)用分區(qū)在配置區(qū)中都有相應(yīng)的寄存器控制其安全等級(jí)和訪問方式。

      ④ 高可靠性。提供多達(dá)10萬次擦寫次數(shù)和10年的數(shù)據(jù)保存期。

      ⑤ 多種封裝。除8腳的PDIP、SOIC封裝外,還具有智能卡片封裝,可廣泛應(yīng)用于IC卡系統(tǒng)。

      ⑥ 高速度。在I2C串行總線方式下,通信速率最高可達(dá)1000kb/s。

    2 工作原理

    2.1 配置區(qū)結(jié)構(gòu)

       AT88SC1616 邏輯加密芯片是一款串行EEPROM, 共有2KB的用戶應(yīng)用存儲(chǔ)區(qū)和256B的系統(tǒng)配置區(qū),應(yīng)用存儲(chǔ)區(qū)通過配置可劃分成16個(gè)相同容量的應(yīng)用存儲(chǔ)區(qū)。分別受8套(16個(gè))讀、寫密碼的控制, 錯(cuò)誤計(jì)數(shù)最大8次。這16個(gè)應(yīng)用分區(qū)也可以通過配置使用相同的密碼和安全等級(jí)并可自由合并使用。AT88SC1616 配置區(qū)的結(jié)構(gòu)如圖3所示。

    按此在新窗口瀏覽圖片
    圖3 AT88SC1616配置區(qū)結(jié)構(gòu)

      ① DCR: 指定認(rèn)證次數(shù)限制和芯片地址。

      ② AR0~AR7: 確定訪問權(quán)限,初始化時(shí)定義,指定對(duì)應(yīng)的用戶應(yīng)用區(qū)訪問方式,例如是否需要認(rèn)證,是否使用密碼,使用哪一套密碼,是否只讀等等。

      ③ AAC: 認(rèn)證錯(cuò)誤計(jì)數(shù)器。

      ④ PAC: 密碼錯(cuò)誤計(jì)數(shù)器。

      供用戶使用的16個(gè)應(yīng)用存儲(chǔ)區(qū)都各有2個(gè)24位的密碼,可在配置區(qū)對(duì)其讀寫操作進(jìn)行設(shè)置,并且每個(gè)密碼都有計(jì)數(shù)器限制口令驗(yàn)證次數(shù)。

    2.2 芯片使用

      AT88SC1616芯片為用戶訪問應(yīng)用存儲(chǔ)區(qū)提供了標(biāo)準(zhǔn)、認(rèn)證和加密三種方式,既方便用戶根據(jù)實(shí)際情況靈活選擇加密方式,又提高了系統(tǒng)的安全性。在標(biāo)準(zhǔn)訪問方式下,對(duì)用戶應(yīng)用區(qū)的讀寫訪問無任何限制;在認(rèn)證方式下,用戶必須經(jīng)過認(rèn)證,同時(shí)要通過不同用戶區(qū)所設(shè)定的密碼檢驗(yàn)才能正確訪問用戶數(shù)據(jù)區(qū),在這種方式下,總線上傳輸?shù)臄?shù)據(jù)是明文;加密驗(yàn)證模式下訪問用戶區(qū)時(shí)用戶必須首先經(jīng)過認(rèn)證,然后利用認(rèn)證成功后配置區(qū)特定寄存器中更新的數(shù)據(jù)作為密鑰再次進(jìn)行認(rèn)證,最后還要通過不同用戶區(qū)設(shè)定的密碼檢驗(yàn)后才可訪問用戶區(qū),這種方式下總線上傳輸?shù)臄?shù)據(jù)是經(jīng)過加密的密文。

      總體來說,對(duì)芯片的使用可分成初始化、認(rèn)證(加密)和訪問三個(gè)步驟。

    (1) 初始化

      初始化的過程,用戶系統(tǒng)的MCU要將生產(chǎn)廠商信息、分區(qū)設(shè)置、安全等級(jí)和密碼以及加密認(rèn)證所需參數(shù)等寫入芯片的配置區(qū),最后還要進(jìn)行寫熔斷的處理。在實(shí)現(xiàn)的過程中,應(yīng)重點(diǎn)考慮如何對(duì)AT88SC1616的2K配置區(qū)進(jìn)行合理的配置和使用,對(duì)訪問用戶分區(qū)的權(quán)限進(jìn)行有效的控制,因此表1所列幾個(gè)寄存器的配置尤其重要。

    表1 系統(tǒng)配置區(qū)寄存器及功能
    按此在新窗口瀏覽圖片

      在對(duì)配置區(qū)進(jìn)行合理配置的同時(shí),要將認(rèn)證所需的三組重要的參數(shù)寫入到配置區(qū)相應(yīng)的寄存器中。這三組數(shù)分別是:Ci(Cryptograms)認(rèn)證所需的隨機(jī)數(shù),Nc(Identification Number)芯片序列號(hào),Gc(Secret Seeds) 由用戶自定義的F1算法得出的秘密種子。

      初始化時(shí),首先要向第七組寫密碼區(qū)中寫入配置區(qū)的寫入密碼。只有正確寫入該密碼后用戶才可以獲得對(duì)整個(gè)配置區(qū)的寫入權(quán)力,這個(gè)密碼由芯片供應(yīng)商提供。正確寫入密碼后就可以根據(jù)要求對(duì)芯片的各個(gè)寄存器進(jìn)行配置,最后還要根據(jù)用戶需要,按照SEC、PER、CMA、FAB的順序依次向熔斷位寫入0進(jìn)行熔斷處理。注意,芯片一旦被寫熔斷后就無法再對(duì)配置區(qū)的信息進(jìn)行更改。

    (2) 認(rèn)證

      整個(gè)認(rèn)證過程是一個(gè)雙向認(rèn)證的過程,流程如圖4所示。

    按此在新窗口瀏覽圖片
    圖4 認(rèn)證過程

      用戶系統(tǒng)的MCU首先從芯片中讀出Nc和Ci,根據(jù)自定義的F1(Nc,Ks)算法算出Gc,同時(shí)利用芯片內(nèi)部的F2(Gc,Ci,Q0)算法算出Q1,并向芯片發(fā)送初始化認(rèn)證參數(shù)Q1和Q0,其中,Q0是CPU方給出的隨機(jī)數(shù)。芯片內(nèi)部則利用自己的F2邏輯算出Ci+1=F2(Gc,Ci,Q0),同時(shí)得出Q2=F2(Gc,Q1)。芯片收到校驗(yàn)認(rèn)證命令后,判斷是否 Ci+1=Q1,如是,則有Ci+2=F2(Gc,Ci+1),且用Ci+2更新Ci,芯片中的認(rèn)證通過;同時(shí)更新芯片內(nèi)部同組的SK(Session Encryption Key)的值。CPU方接收芯片中更新的Ci后,判斷是否等于Q2,如果通過,則認(rèn)證全部通過。

      上面說的過程是認(rèn)證模式,如果想進(jìn)入加密驗(yàn)證模式的話,需要再次利用認(rèn)證成功時(shí)返回更新的SK值,用它取代Gc,Ci再作為參數(shù);利用F2函數(shù),芯片和MCU方再計(jì)算一次并比較,判斷相等后才進(jìn)入加密認(rèn)證模式。

      上面提到的F2算法,是芯片內(nèi)部的控制邏輯利用Gc、Ci、Q0三個(gè)參數(shù)初始化的一個(gè)DES算法的變種。這個(gè)算法是所有加密解密、完整性認(rèn)證與信息認(rèn)證的關(guān)鍵。

    (3) 訪問用戶區(qū)

      認(rèn)證(加密)成功后就可以發(fā)送命令選擇用戶分區(qū)進(jìn)行數(shù)據(jù)的讀寫訪問了,如果各個(gè)分區(qū)還有讀或?qū)懙拿艽a限制,則還需要向訪問的分區(qū)寫入密碼進(jìn)行校驗(yàn),通過這一步后才能真正完全訪問用戶分區(qū)。此時(shí)如果多個(gè)用戶分區(qū)使用相同的安全等級(jí)和密碼,則可以將這多個(gè)用戶區(qū)進(jìn)行合并。需要說明的是,認(rèn)證一旦成功后,芯片內(nèi)部的加密機(jī)就立即開始啟動(dòng),MCU對(duì)芯片的任何操作都需要根據(jù)芯片加密機(jī)內(nèi)部算法進(jìn)行計(jì)算,以保持與它的同步。特別是向用戶分區(qū)發(fā)送一次寫入命令和數(shù)據(jù)后,要緊接著發(fā)送一次MCU方計(jì)算的加密機(jī)結(jié)果,與芯片內(nèi)部加密機(jī)計(jì)算的結(jié)果進(jìn)行校驗(yàn)。芯片只有接收到正確的校驗(yàn)和后才能將數(shù)據(jù)寫入到相應(yīng)的地址內(nèi),否則數(shù)據(jù)寫不到目的地址,同時(shí)芯片會(huì)返回錯(cuò)誤信息。

    3 芯片功能實(shí)現(xiàn)

    3.1 硬件電路

      由于AT88SC1616加密芯片采用兩線的I2C總線通信方式,因此與微處理器的硬件接口相對(duì)容易。圖5是AT88SC1616與AVR 單片機(jī)Atmegal 128相連的硬件接口電路。由于Atmegal 128內(nèi)部帶有I2C接口,因此它可與AT88SC1616直接相連。在其它嵌入式系統(tǒng)中,AT88SC1616 與其它微處理器的接口同樣簡單,只要與相應(yīng)的I2C接口引腳直接相連即可。如系統(tǒng)的MCU沒有專用I2C接口引腳,可使用一般的I/O引腳(GPIO)與AT88SC1616的時(shí)鐘線和數(shù)據(jù)線相連,采用I2C 模擬方式就可以正常工作。但無論是否進(jìn)行I2C 的模擬,其總線上一定要保證符合I2C總線要求的上拉電阻,以保證其時(shí)序的正確無誤。

    按此在新窗口瀏覽圖片
    圖5 Atmegal 128與AT88SC1616的硬件接口示意

    3.2 軟件實(shí)現(xiàn)

      AT88SC1616采用兩線的I2C通信方式,其控制時(shí)序比較簡單,本文不再贅述。這里重點(diǎn)講述一下芯片使用工作過程。

      AT88SC1616的初始化流程如圖6所示。按照寫入配置區(qū)密碼、分區(qū)訪問方式和讀寫密碼、安全限制和認(rèn)證參數(shù)、熔斷處理的順序,以I2C的通信方式向芯片內(nèi)部各寄存器地址發(fā)送命令和數(shù)據(jù)。由于AT88SC1616內(nèi)部有一內(nèi)存測(cè)試區(qū)(memory test)不受安全和密碼限制,因此為保證I2C讀寫時(shí)序的正確性,可先向該區(qū)進(jìn)行讀寫測(cè)試,然后再向芯片正確寫入各種命令。

    按此在新窗口瀏覽圖片
    圖6 AT88SC1616初始化流程

      用戶區(qū)認(rèn)證流程如圖7所示。無論系統(tǒng)MCU是采用本身I2C接口,還是使用普通I/O口進(jìn)行I2C模擬,軟件的實(shí)現(xiàn)都遵循如前所述的總線時(shí)序。需要注意的是,在啟動(dòng)I2C START信號(hào)前,SCL一定要首先發(fā)送4個(gè)脈沖來啟動(dòng)通信,否則發(fā)送的數(shù)據(jù)和命令不會(huì)被芯片正確接收。這一點(diǎn)與普通I2C器件有所不同,一定要得到重視。

    按此在新窗口瀏覽圖片
    圖7 AT88SC1616認(rèn)證流程

      訪問用戶分區(qū)的流程如圖8所示。可先向用戶分區(qū)寫入數(shù)據(jù)后再讀出以進(jìn)行校驗(yàn)。編程時(shí)要注意,認(rèn)證一旦成功,MCU所有對(duì)芯片的操作都要加上對(duì)內(nèi)部加密機(jī)的計(jì)算,對(duì)芯片發(fā)送命令和數(shù)據(jù)后要緊接著發(fā)送校驗(yàn)和,以和芯片內(nèi)部的加密機(jī)進(jìn)行校驗(yàn),校驗(yàn)和不正確芯片會(huì)返回錯(cuò)誤信息。

    按此在新窗口瀏覽圖片
    圖8 AT88SC1616訪問用戶分區(qū)流程

    4 在嵌入式系統(tǒng)中的應(yīng)用

      由于AT88SC1616具有使用方便、安全可靠等諸多優(yōu)點(diǎn),使其在工業(yè)控制、消費(fèi)類電子、醫(yī)療器械、計(jì)費(fèi)系統(tǒng)等領(lǐng)域具有廣闊的應(yīng)用前景。筆者已將該芯片用于已開發(fā)的選擇性漏電保護(hù)系統(tǒng)中。在這個(gè)系統(tǒng)中的64條供電支路被人為地劃分成4個(gè)區(qū),每個(gè)區(qū)設(shè)定獨(dú)立的電壓、電流和相位。針對(duì)不同區(qū)的管理員,還設(shè)定不同的用戶名和密碼,這些參量都被保存在AT88SC1616的用戶使用區(qū)中。我們?cè)诰S護(hù)系統(tǒng)數(shù)據(jù)安全性方面采用的辦法是,在程序中對(duì)這些參量的讀寫訪問都設(shè)定了密碼,密碼不正確是不能讀寫這些參量的,保證了只有真正的供電分區(qū)管理員才可對(duì)相應(yīng)區(qū)的系統(tǒng)參數(shù)進(jìn)行設(shè)定;同時(shí)采用加密驗(yàn)證訪問方式,使得總線上傳輸?shù)臄?shù)據(jù)是密文,維護(hù)了系統(tǒng)數(shù)據(jù)的安全性。為防止有些不良用戶利用非法手段獲取系統(tǒng)時(shí)序進(jìn)行反匯編,以此達(dá)到破解系統(tǒng)牟取高額利潤的目的,也采用了兩個(gè)辦法來保證整個(gè)系統(tǒng)的安全性,一是系統(tǒng)中不定期地對(duì)芯片進(jìn)行認(rèn)證訪問,系統(tǒng)一次認(rèn)證不成功就返回錯(cuò)誤信息;第二是對(duì)非法的認(rèn)證訪問次數(shù)進(jìn)行錯(cuò)誤限制,錯(cuò)誤一旦超過8次,芯片鎖死,從而維護(hù)了我們的知識(shí)產(chǎn)權(quán)。

      出于安全考慮,每個(gè)芯片要使用唯一的序列號(hào)。筆者還根據(jù)實(shí)際情況設(shè)計(jì)了一款針對(duì)AT88SC1616的簡單實(shí)用的編程器,利用該編程器可在芯片正式使用之前對(duì)其初始化,將序列號(hào)、認(rèn)證參數(shù)、安全等級(jí)、訪問密碼等各種信息寫入配置區(qū),使得每一個(gè)被初始化的芯片都可以直接在其它系統(tǒng)中應(yīng)用,大大提高了效率。

    結(jié)語

      本文詳細(xì)介紹了AT88SC1616的芯片結(jié)構(gòu)、特點(diǎn)、數(shù)據(jù)存儲(chǔ)訪問原理,并以Atmega 128與其接口為例,給出了實(shí)用的硬件接口電路與軟件實(shí)現(xiàn)流程。由于AT88SC1616具有較大的存儲(chǔ)空間、嚴(yán)格的安全性能和簡單可靠的高速數(shù)據(jù)傳輸方式,因此極大地提高了嵌入式系統(tǒng)的數(shù)據(jù)安全性和適用性。我們已將此芯片成功應(yīng)用于選擇性漏電保護(hù)的軟硬件加密系統(tǒng)中。事實(shí)證明利用該芯片既提高了系統(tǒng)的防破解性,又保證了重要數(shù)據(jù)的安全性。另外,我們還根據(jù)其特點(diǎn)設(shè)計(jì)了可用于初始化該芯片的編程器,為大批量生產(chǎn)提供了硬件條件,獲得了良好的效果。AT88SC1616良好的安全性使得它還可更廣泛地應(yīng)用于遠(yuǎn)程抄表、醫(yī)療器械、機(jī)頂盒、汽車、通信、消費(fèi)類家電等嵌入式系統(tǒng)。本文所介紹的方法對(duì)這些應(yīng)用都有很好的參考價(jià)值。

    參考文獻(xiàn)

    1 Atmel. AT88SC1616 DataSheet. 2001
    2 耿德根. AVR高速嵌入式單片機(jī)原理與應(yīng)用. 北京:北京航空航天大學(xué)出版社,2002
    3 何立民. I2C總線應(yīng)用系統(tǒng)設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,1995

    王彥文 教授,研究方向?yàn)殡娏ο到y(tǒng)自動(dòng)化。
    薄勇 碩士研究生,研究方向?yàn)橛?jì)算機(jī)控制。
    孫素麗 碩士研究生,研究方向?yàn)橛?jì)算機(jī)應(yīng)用。





    上一篇:解密方法概述
    下一篇單片機(jī)解密的一般過程
    溫馨提示:
    凡在本公司進(jìn)行電路板克隆業(yè)務(wù)的客戶,必須有合法的PCB設(shè)計(jì)版權(quán)來源聲明,以保護(hù)原創(chuàng)PCB設(shè)計(jì)版權(quán)所有者的合法權(quán)益;
    【 字體: 】【打印此頁】 【返回】【頂部】【關(guān)閉

    [加密存儲(chǔ)芯片AT88SC1616的原理與應(yīng)用技術(shù)]^相關(guān)文章


    主站蜘蛛池模板: 丁香六月婷婷精品免费观看| 国产区女主播在线观看| 亚洲不卡在线观看| 色爱区综合激情五月综合激情| 好吊日视频在线| 亚洲免费视频在线观看| 色偷偷狠狠色综合网| 国色天香社区高清在线观看| 久久综合九色综合欧美狠狠| 精品欧美日韩一区二区| 国产精品爆乳奶水无码视频| 久久亚洲日韩精品一区二区三区| 男人女人做a视频| 国产床戏无遮挡免费观看网站| 一本大道香蕉最新在线视频| 欧美va天堂在线影院| 合租屋第三部小雯怀孕第28章| 91在线老师啪国自产| 新婚张燕被两个局长| 亚洲日韩欧洲无码av夜夜摸| 色噜噜狠狠狠综合曰曰曰| 国产精品视频一区二区三区不卡 | 国产卡一卡二贰佰| heyzo北条麻妃久久| 最新中文字幕免费视频| 免费a级黄色毛片| 黄色毛片在线看| 在线观看黄日本高清视频| 久久精品免费一区二区| 波多野结衣欲乱上班| 国产一级二级三级在线观看| 51久久夜色精品国产| 成年人免费观看视频网站| 亚洲免费人成视频观看| 精品国产一区二区| 国产成人av在线免播放观看| 99爱免费视频| 成年人黄色大片大全| 亚洲va精品中文字幕| 狠狠精品干练久久久无码中文字幕 | a毛片久久免费观看|