中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > [組圖]一種基于KEELOQ的改進(jìn)加密算法及其在單片機(jī)中的實(shí)

        [組圖]一種基于KEELOQ的改進(jìn)加密算法及其在單片機(jī)中的實(shí)

        作者: 時(shí)間:2011-04-29 來源:網(wǎng)絡(luò) 收藏

        3.1 學(xué)習(xí)過程
          所謂學(xué)習(xí),就是使用戶在主機(jī)端中注冊登記的過程。引進(jìn)隨機(jī)數(shù)RANDOM,對每一次學(xué)習(xí)來說,它所產(chǎn)生的隨機(jī)數(shù)是不一樣的,它所發(fā)送的數(shù)據(jù)也是變化的、不可預(yù)知的,提高了安全性。另外,RANDOM和序列號SN、出廠密鑰MKEY一起生成加解密密鑰EN_KEY,使得EN_KEY不再依賴于出廠密鑰MKEY,用戶可以隨時(shí)對加解密密鑰EN_KEY進(jìn)行修改,這樣也提高了安全性。
          進(jìn)入學(xué)習(xí)模式后,用戶端經(jīng)三次數(shù)據(jù)發(fā)送完成整個(gè)學(xué)習(xí)。過程如下:
          (1)用戶端產(chǎn)生隨機(jī)數(shù)RANDOM,與MKEY、SN經(jīng)后發(fā)送。主機(jī)接收到數(shù)據(jù)解密后,比對MKEY和SN,確認(rèn)用戶是本系統(tǒng)用戶(比對MKEY)并且是一個(gè)新用戶(SN不在EEPROM中)時(shí),開辟空間,保存SN和RANDOM。
          (2)用戶端和主機(jī)端分別利用密鑰生成生成,由MKEY+SN+RANDOM生成EN_KEY,并存入相應(yīng)的存儲空間。
          (3)用戶端利用EN_KEY對SN、RANDOM、SYNC、MKEY進(jìn)行并發(fā)送。主機(jī)接收到數(shù)據(jù)后,比對MKEY、RANDOM、SN正確后把SYNC存入相應(yīng)空間,請求第二次發(fā)送(只雙向通信中才有請求功能)。
          (4)用戶端收到發(fā)送請求后(如果是單向通信,則等待后直接發(fā)送)再對SN、RANDOM、SYNC、MKEY后發(fā)送。因?yàn)镾YNC是每次改變的,所以這次數(shù)據(jù)位和上一次發(fā)送的數(shù)據(jù)位改變在50%以上。
          (5)主機(jī)在接收到數(shù)據(jù)解密后,比對同步碼SYNC,如果用戶和主機(jī)的同步碼變化規(guī)律相同則學(xué)習(xí)成功。
          三次發(fā)送即完成一次學(xué)習(xí)過程。第二次學(xué)習(xí)時(shí)隨機(jī)數(shù)重新產(chǎn)生,所以要求學(xué)習(xí)時(shí)三次數(shù)據(jù)發(fā)送是連續(xù)的,否則無效。以上各步中有任何一次數(shù)據(jù)比對失敗則學(xué)習(xí)失敗。主機(jī)端在前二次接收到數(shù)據(jù)后等待24s仍未見用戶發(fā)送數(shù)據(jù)則學(xué)習(xí)失敗。學(xué)習(xí)失敗后用戶需重新學(xué)習(xí)。
          隨機(jī)數(shù)則利用的計(jì)數(shù)器產(chǎn)生,有兩種方法供選用:
          (1)單次操作完畢后,的計(jì)數(shù)器一直不停地計(jì)數(shù),在外界對它進(jìn)行再次操作或者要發(fā)送數(shù)據(jù)時(shí)停止計(jì)數(shù)。因?yàn)橥饨绲牟僮骰虬l(fā)送的時(shí)間是不定的,所以計(jì)數(shù)寄存器里面的數(shù)是隨機(jī)的。
          (2)可以對按鍵或操作時(shí)間進(jìn)行計(jì)時(shí)。用戶每次按鍵或操作的時(shí)間都是不定的,并且按鍵從抖動(dòng)到穩(wěn)定的時(shí)間也是不定的,對它進(jìn)行計(jì)時(shí),如果把間隔的時(shí)間取得合適,即可得到近似隨機(jī)數(shù)。
        3.2 發(fā)送過程
          在數(shù)據(jù)發(fā)送前,必須先對數(shù)據(jù)進(jìn)行加密。數(shù)據(jù)加密的過程如下:
          (1)重新定制非線性表。原是用64位密鑰去加密32位的明碼數(shù)據(jù),現(xiàn)在把它改為64位密鑰去加密64位的明碼數(shù)據(jù),密文長度也為64位,可按原規(guī)律擴(kuò)展非線性表即可。
          (2)對數(shù)據(jù)進(jìn)行分組。盡管應(yīng)用場合針對小型系統(tǒng)(數(shù)據(jù)傳輸量較小),但還是必須對所要加密的數(shù)據(jù)進(jìn)行分組。在使用分組時(shí),對明文尾部不滿一個(gè)整組的碎片采用填充隨機(jī)數(shù)的辦法將其擴(kuò)充為一個(gè)整組,然后進(jìn)行正常加密。即數(shù)據(jù)分組長度、密鑰長度和輸出密文長度均為64位。
          (3)把同步碼的變化反映到各組數(shù)據(jù)中。同步碼每次發(fā)送時(shí)均會改變,它是保證系統(tǒng)每次發(fā)送的密文都不一樣的根本。只需進(jìn)行分配、疊代、移位、異或等簡單的變換即可完成反映的任務(wù)。
          (4)封裝。算法經(jīng)封裝后可方便地被各種程序調(diào)用。算法的入口參數(shù)有三個(gè):EN_KEY、Data、Mode。其中EN_KEY為64位的加密密鑰;Data為64位被加密或被解密的數(shù)據(jù);Mode為工作方式,有加密或解密兩種。
          HCS300芯片發(fā)送的數(shù)據(jù)主要由固定碼和加密碼組成。固定碼34bit,加密碼32bit。固定碼主要由28位序列號、4位功能碼(按鍵信息)和2位標(biāo)志組成。加密碼則由16位同步碼、28位序列號(可擴(kuò)展)、4位功能碼組成。經(jīng)后可用于數(shù)據(jù)加密的格式如圖2所示。

        本文引用地址:http://www.antipu.com.cn/article/172855.htm



        圖2 數(shù)據(jù)發(fā)送格式

          在發(fā)送時(shí)還要加入檢錯(cuò)和糾錯(cuò)功能。檢錯(cuò)視系統(tǒng)的要求可選奇偶校驗(yàn)、CRC校驗(yàn)等。糾錯(cuò)可以用漢明碼。該碼的實(shí)現(xiàn)原理是在數(shù)據(jù)中加入幾個(gè)校驗(yàn)位,并把數(shù)據(jù)的每個(gè)二進(jìn)制位分配在幾個(gè)奇偶校驗(yàn)組中;當(dāng)某位出錯(cuò)后,就會引起有關(guān)的幾個(gè)校驗(yàn)組的值發(fā)生變化。這不但可以發(fā)現(xiàn)錯(cuò)誤,還能指出哪一位,為自動(dòng)糾錯(cuò)提供了依據(jù)。
        3.3 接收過程
          算法的解密密鑰由學(xué)習(xí)時(shí)接收并存儲在EEPROM中。其加密和解密的密鑰是一樣的,解密是加密的逆過程。接收過程主要包括序列號搜索、比對、解密、同步碼的比對等過程。接收方的程序流程如圖3所示。


        圖3 接收流程圖

          本文提出的技術(shù)的加密算法中的實(shí)現(xiàn)技術(shù),可以節(jié)約硬件成本,減少對硬件的依賴,改善系統(tǒng)性能,擴(kuò)展了在數(shù)據(jù)加密領(lǐng)域的應(yīng)用,特別適合應(yīng)用于無線傳輸領(lǐng)域的小型系統(tǒng)的數(shù)據(jù)加密。隨著射頻技術(shù)、無線技術(shù)和藍(lán)牙技術(shù)的發(fā)展,射頻卡身份證的實(shí)施,其應(yīng)用領(lǐng)域可以擴(kuò)展到身份識別、安全管理、防盜報(bào)警、考勤、收費(fèi)、無線抄表、智能監(jiān)控、隨機(jī)檢測器、標(biāo)識信息等諸多領(lǐng)域。


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉