<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于SRAM工藝FPGA的加密方法介紹

基于SRAM工藝FPGA的加密方法介紹

作者: 時(shí)間:2012-05-02 來(lái)源:網(wǎng)絡(luò ) 收藏

系統加電時(shí),單片機將ASET置為低電平,經(jīng)過(guò)一個(gè)非門(mén),變成高電平使移位寄存器處于置位狀態(tài)。在配置完成后,單片機將ASET信號置為高電平,經(jīng)非門(mén)使移位寄存器正常工作。利用移位寄存器電路產(chǎn)生偽隨機碼的電路非常簡(jiǎn)單,反饋邏輯也便于修改。

5 單片機驗證偽碼的程序

在位尋址區(20H~2FH)定義了字節變量WORD1、WORD2、WORD3、WORD4、WORD5,用來(lái)存儲移位寄存器的40個(gè)狀態(tài)。其中Q0對應WORD1.0,Q1對應WORD1.1……Q39對應WORD5.7。同時(shí),在位尋址區定義了WORD6、WORD7、WORD8、WORD9,用來(lái)進(jìn)行后面的反饋邏輯計算。單片機一上電,首先將ASET腳清零,同時(shí),也將PNMA腳清零,將初值55H作為移位寄存器的初始狀態(tài),接著(zhù)完成的上電配置工作。配置完成后,單片機檢測來(lái)自的外部中斷CONFDONE。如果配置完成,CONFDONE為高電;否則,為低電平。在檢測到CONFDONE為高電平,即配置完成后,單片機將ASET腳置為1,使能內的偽碼發(fā)生電路工作,單片機產(chǎn)生偽隨機碼的流程。配置完成后,首先將Q0輸出到PNMA引腳,接著(zhù)計算反饋邏輯輸入,將參與反饋運算的幾個(gè)狀態(tài)運算結果存在中間變量MID_VARY中。然后,對各個(gè)狀態(tài)進(jìn)行右移,為了提高運算效率,使用了帶進(jìn)位C的字節循環(huán)右移指令。移位完成后,將MID_VARY存入Q39,再將新的Q0輸出到PNMA引腳,程序循環(huán)執行產(chǎn)生偽隨機碼。

單片機核心源程序如下:

CLR ASET;單片機上電后將ASET位清0
CLR PNMA
MOV WORD1,#55h
MOV WORD2,#0
MOV WORD3,#0
MOV WORD4,#0
MOV WORD5,#0;將55H作為移位寄存器的初值PEIZHI:
……;進(jìn)行FPGA的配置工作
JB CONFDONE,PNPRODUCE;根據CONFDONE判斷配置是否完成
LJMP PEIZHI;否則繼續配置
PNPRODUCE:SETB ASET;配置完成后,將ASET腳置1
XMQLOOP:MOV C,Q0
MOV PNMA,C;將Q0輸出到PNMA引腳,作為PN碼
MOV C,Q0
MOV WORD6.0,C;用WORD6單元的0位來(lái)存Q0的狀態(tài)
MOV C,Q2
MOV WORD7.0,C;用WORD7單元的0位來(lái)存Q2的狀態(tài)

; MOV C,Q21
MOV WORD8.0,C;用WORD8單元的0位來(lái)存Q21的狀態(tài)
MOV C,Q23
MOV WORD9.0,C;用WORD9單元的0位來(lái)存Q23的狀態(tài)
MOV ACC,WORD6
XRL A,WORD7
XRL A,WORD8
XRL A,WORD9;通過(guò)異或指令,計算反饋邏輯
MOV C,ACC.0;反饋邏輯為Qin=Q0;
XOR Q2 XOR Q21 XOR Q23
MOV MID_VARY,C;將運算后的狀態(tài)存到MID_VARY中右移運算
MOV ACC,WORD1
RRC A;移位Q7~Q0
MOV WORD1,A;移位后,保存到WORD1單元中
MOV ACC,WORD2
RRC A;移位Q15~Q8
MOV WORD2,A;移位后,保存到WORD2單元中
MOV Q7,C;將Q8的值賦到Q7
MOV ACC,WORD3
RRC A;移位Q23~Q16
MOV WORD3,A;移位后,保存到WORD3單元中
MOV Q15,C;將Q16的值賦到Q15
MOV ACC,WORD4
RRC A;移位Q31~Q24
MOV WORD4,A;移位后,保存到WORD4單元中
MOV Q23,C;將Q24的值賦到Q23
MOV ACC,WORD5
RRC A;移位Q39~Q32
MOV WORD5,A;移位后,保存到WORD5單元中
MOV Q31,C;將Q32的值賦到Q31
MOV C,MID_VARY;將前面反
饋計算的值賦給Q39
MOV Q39,C
LJMP XMALOOP??;繼續產(chǎn)生下一代PN碼元

6 其它及比較

的FPGA進(jìn)行,除了可以利用單片機實(shí)現外,還可以用E2PROM的CPLD實(shí)現。與用單片機實(shí)現相比,利用CPLD的優(yōu)點(diǎn)在于可實(shí)現高速偽碼,但要在硬件電路中增加一塊CPLD芯片,使整個(gè)硬件電路復雜化,增加了成本。本文提供的考慮到配置完成后單片機處于空閑狀態(tài),此時(shí)利用單片機進(jìn)行加密,不需要增加任何電路成本,使得整個(gè)系統硬件結構十分簡(jiǎn)潔。本文提出采用長(cháng)偽隨機碼來(lái)實(shí)現加密。如果采用其它的算法產(chǎn)生驗證信息,并增加單片機與FPGA工作時(shí)信息實(shí)時(shí)交互,使得獲取驗證信息的難度足夠大,也可以達到類(lèi)似的加密效果。

本文引用地址:http://dyxdggzs.com/article/155043.htm
上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 方法 介紹 加密 FPGA SRAM 工藝 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>