基於SOC的FPSLIC硬體實現分組加密演算法
1 引言:
美國Atmel公司生產的AT94K系列晶元是以Atmel 0.35 的5層金屬CMOS工藝製造。它基於SRAM的FPGA、高性能准外設的Atmel 8位RISC AVR單片機。另外器件中還包括擴展數據和程序SRAM及器件控制和管理邏輯。圖1-1是Atmel公司的FPSLIC內部結構圖。
圖1-1 FPSLIC內部結構圖
AT94K內嵌AVR內核,Atmel公司的FPSLIC可編程SOC內嵌高性能和低功耗的8位AVR單片機,最多還帶有36KB的SRAM,2個UART、1個雙線串列介面,3個定時/計數器、1個8 8乘法器以及一個實時時鍾。通過採用單周期指令,運算速度高達1MPS/MHz,這樣用戶可以充分優化系統功耗和處理速度。AVR內核基於增強型RISC結構,擁有豐富的指令系統以及32個通用工作寄存器。而且所有通用寄存器都與算術邏輯單元ALU相連;另外,在一個時鍾周期內,執行單條指令時允許存取2個獨立的寄存器,這種結構使得代碼效率更高,並且在相同的時鍾頻率下,可以獲得比傳統的CISC微處理器高10倍的數據吞吐量。AVR從片內SRAM執行程序,由於AVR運行代碼存儲在SRAM中,因此它可以提供比較大的吞吐量,這樣可以使其工作在突發模式上。在這種模式上,AVR大多時間都是處於低功耗待機狀態,並能在很短的時間里進行高性能的處理。微處理器在突發模式運行模式下的平均功耗要比長時間低頻率運行時的功耗低得多。FPSLIC的待機電流小於100 ,典型的工作電流為2-3mA/MHz。在系統上電時,FPGA配置SRAM和AVR程序SRAM都能自動地通過Atmel在系統可編程串列存貯器AT17來裝載。
2 FPSLIC硬體的設計實現:
2.1 硬體實現框圖
圖2-1系統硬體實現框圖
圖2-1是為了實現加密演算法的硬體框圖。計算機通過它的串口和FPSLIC的通信埠UART0相連,用來進行數據的傳送和接收。FPSLIC通過AVR的通信埠等待接收主機傳來的信息,通過內部的下載程序將數據進行處理,最後再傳回到主機上。圖2-1中FPGA是一個計數器,此計數器一上電就從0計數,並用進位輸出信號產生一個AVR中斷,即進位輸出信號RCO連接到AVR的中斷信號INTA0。當AVR接收到由計數器的進位信號產生的中斷時,則執行INTA0的中斷服務程序(ISR)。在此期間
,AVR就給INTA0產生的次數計數,並把它放到8位的AVR-FPGA數據匯流排上,這時就會觸發AVR的寫使能信號(FPGA的aWE信號端)和FPGA的I/O SELECT0信號(FPGA的LOAD信號端),同時從AVR——FPGA數據匯流排上將數據載入計數器。數碼管的各極連接在實驗板上的可編程埠,通過引腳配置用來顯示數據。LED指示燈在AVR I/O輸出的D口,直接將數據通過命令PORTD來顯示。FPGA的時鍾通過GCLK5選自AVR單片機的時鍾。我們以DES數據加密為例,由模擬試驗可以得出DES加密的速率為57.024 kbit/s,它大於串口的最大速率19.2kbit/s,因此可以實時進行數據的加密操作。
一個典型的FPSLIC設計通常應該包括以下幾個步驟:
1. 利用聯合模擬軟體建立一個FPSLIC工程。
2. 預先建立一個AVR軟體模擬程序文件。
3. 預先建立一個FPGA的硬體模擬程序文件。
4. 設置和運行AVR-FPGA介面設計。
5. 運行布局前的聯合模擬Pre-layout Converification(這一步是可選擇的)。
6. 運行Figaro-IDS進行FPGA的布局布線。
7. 運行布局後的聯合模擬Pos-layout Converification(這一步是可選擇的)。
8. 器件編程數據下載與實驗驗證。
我們以DES數據加密為例,(新建的工程名為lab1.apj,AVR模擬程序文件為desjiami.asm,FPGA的硬體模擬程序為Count.vhdl)。
2.2 編譯AVR的模擬程序軟體
(以上程序代碼是整個模擬的程序框架,最主要的是對介面進行初始化和對發送和接收部分進行設置,以便進行串口的通信)
2.3器件編程與試驗驗證
1. 將下載電纜ATDH2225的25針的一端從計算機的並行口接出,令一端10針扁平線插入ATSTK94實驗板的J1插頭上。下載電纜的標有紅色的線和J1插頭的第一腳連接。
2. 因為要和計算機串口進行通信,因此要製作一個串口連接電纜,其九針連接電纜的連接關系如下圖2-2。電纜一端連接在計算機的任意串口上,另一端連接在實驗板上的UART0上。連接電纜只需要連接三根線,UART0的2端連接在FPSLIC的發送端,因此它和計算機的串口2端(接收數據端)相連。UART0的3端連接在FPSLIC的接收端,因此它和計算機的串口2端(發送數據端)相連。
&n
bsp; 圖2-2 串口通信連接指示圖
3. 選擇4MHz時鍾,即在實驗板上將JP17設置在靠近板子內側位置,而將JP18不連接,也就是將其連接跳線拔掉。
4. 將直流9V電源接頭插入ATSTK94實驗板的電源插座P3上。
5. 將實驗板上的開關SW10調至PROG位置。開關SW10有編程(PROG)和運行(RUN)兩種連接。在編程位置,用戶可以通過下載電纜和下載程序軟體CPS,將System Designer生成的FPSLIC數據流文件給配置存儲器編程。在運行位置,FPSLIC器件將載入數據流文件並運行該設計。
6. 打開電源開關SW14,即將它調整到ON位置。這時候實驗板上電源發光二極體(紅色)發光,表示實驗板上已經上電。這樣,硬體就連接完畢,等待下一步的數據下載。
7. 單擊OK按鈕,即生成數據流文件,它將下載到ATSTK94實驗板的配置存儲器中,這時,Atmel的AT17配置可編程系統(CPS)窗口被打開,如下圖2-3,並自動給器件編程。
圖2-3 FPSLIC控制寄存器設置對話框
在Procesure下拉列表框中選擇/P Partition,Program and Verify from an Atmel File。在Family下拉列表框中選擇AT40K/Cypress,在Device下拉列表框中選擇AT17LV010(A)(1M)。其餘採用系統的默認值。然後點擊Start Proce按鈕,如果電纜等硬體設置正確,那麼程序將下載到實驗板上。
8. 將開關SW10調至RUN位置,打開串口調試程序Accesspot129軟體。對於Accessport129的設置為:串口為COM1(根據用戶選擇的計算機埠來設定),波特率:9600,校驗位:NONE,數據位為8 ,停止位選擇1,串口開關選擇開;
3 試驗結果:
圖3-1中,下面方框中是要輸入的64比特的明文,(程序中輸入的明文為0123456789ABCDEF),當這64個比特的數據全部輸入完畢後,點擊發送按鈕,在軟體上方的數據接收端顯示出經過DES演算法加密後的密文(85E813540F0AB405)。通過硬體實現的的結果和實際
模擬結果是完全一致的。同時通過數碼管也分別顯示出最後的加密數據。至此整個硬體試驗結束。
圖3-1 Accesspot串口調試軟體顯示的結果圖
從上面的串口調試軟體可以看出,DES演算法的模擬是正確的也是可以在實際中應用的。同理,可以通過以上的方法來實現DES解密和AES等其它的分組加解密。
B. surfer網格化數據時,總提示數據不足(需要3個或更多xyz數據),但使用的.xls文件中有很多個xyz數據
把C列數據類型改數值型試試。方法是選中這列數據>菜單>數據>分列,浮動窗口點下一步>下一步>完成
C. 跪求高人指點:AES加密演算法密鑰和明文都不足128位是該怎麼處理
可以用隨機數填充
D. 重要文件記事本分組加密,求解
分組加密密碼就是酷管家的密碼,可以通過設置密碼時填的電話、還有提問等信息找回。 查看原帖>>
E. DES加密演算法在Linux下運行異樣
只有寫的不好的程序,還沒聽說過報異常的演算法,樓主真乃神人也!
你搞清楚UNIX/Linux同Windows的在處理文件上的區別了嗎?之前我也一度寫過這類東西,Windows的換行同Linux的是不同的,所以如果用終端輸入去測試的話,很可能會有考慮不周的地方,試著用同一個字元串變數去測試,就能知道是否是演算法的問題了。
F. 數據加密技術及其相關演算法
數據加密技術 所謂數據加密(Data Encryption)技術是指將一個信息(或稱明文,plain text)經過加密鑰匙(Encryption key)及加密函數轉換,變成無意義的密文(cipher text),而接收方則將此密文經過解密函數、解密鑰匙(Decryption key)還原成明文。加密技術是網路安全技術的基石。
數據加密技術要求只有在指定的用戶或網路下,才能解除密碼而獲得原來的數據,這就需要給數據發送方和接受方以一些特殊的信息用於加解密,這就是所謂的密鑰。其密鑰的值是從大量的隨機數中選取的。按加密演算法分為專用密鑰和公開密鑰兩種。
專用密鑰,又稱為對稱密鑰或單密鑰,加密和解密時使用同一個密鑰,即同一個演算法。如DES和MIT的Kerberos演算法。單密鑰是最簡單方式,通信雙方必須交換彼此密鑰,當需給對方發信息時,用自己的加密密鑰進行加密,而在接收方收到數據後,用對方所給的密鑰進行解密。當一個文本要加密傳送時,該文本用密鑰加密構成密文,密文在信道上傳送,收到密文後用同一個密鑰將密文解出來,形成普通文體供閱讀。在對稱密鑰中,密鑰的管理極為重要,一旦密鑰丟失,密文將無密可保。這種方式在與多方通信時因為需要保存很多密鑰而變得很復雜,而且密鑰本身的安全就是一個問題。
對稱密鑰是最古老的,一般說「密電碼」採用的就是對稱密鑰。由於對稱密鑰運算量小、速度快、安全強度高,因而目前仍廣泛被採用。
DES是一種數據分組的加密演算法,它將數據分成長度為64位的數據塊,其中8位用作奇偶校驗,剩餘的56位作為密碼的長度。第一步將原文進行置換,得到64位的雜亂無章的數據組;第二步將其分成均等兩段;第三步用加密函數進行變換,並在給定的密鑰參數條件下,進行多次迭代而得到加密密文。
公開密鑰,又稱非對稱密鑰,加密和解密時使用不同的密鑰,即不同的演算法,雖然兩者之間存在一定的關系,但不可能輕易地從一個推導出另一個。有一把公用的加密密鑰,有多把解密密鑰,如RSA演算法。
非對稱密鑰由於兩個密鑰(加密密鑰和解密密鑰)各不相同,因而可以將一個密鑰公開,而將另一個密鑰保密,同樣可以起到加密的作用。
在這種編碼過程中,一個密碼用來加密消息,而另一個密碼用來解密消息。在兩個密鑰中有一種關系,通常是數學關系。公鑰和私鑰都是一組十分長的、數字上相關的素數(是另一個大數字的因數)。有一個密鑰不足以翻譯出消息,因為用一個密鑰加密的消息只能用另一個密鑰才能解密。每個用戶可以得到唯一的一對密鑰,一個是公開的,另一個是保密的。公共密鑰保存在公共區域,可在用戶中傳遞,甚至可印在報紙上面。而私鑰必須存放在安全保密的地方。任何人都可以有你的公鑰,但是只有你一個人能有你的私鑰。它的工作過程是:「你要我聽你的嗎?除非你用我的公鑰加密該消息,我就可以聽你的,因為我知道沒有別人在偷聽。只有我的私鑰(其他人沒有)才能解密該消息,所以我知道沒有人能讀到這個消息。我不必擔心大家都有我的公鑰,因為它不能用來解密該消息。」
公開密鑰的加密機制雖提供了良好的保密性,但難以鑒別發送者,即任何得到公開密鑰的人都可以生成和發送報文。數字簽名機制提供了一種鑒別方法,以解決偽造、抵賴、冒充和篡改等問題。
數字簽名一般採用非對稱加密技術(如RSA),通過對整個明文進行某種變換,得到一個值,作為核實簽名。接收者使用發送者的公開密鑰對簽名進行解密運算,如其結果為明文,則簽名有效,證明對方的身份是真實的。當然,簽名也可以採用多種方式,例如,將簽名附在明文之後。數字簽名普遍用於銀行、電子貿易等。
數字簽名不同於手寫簽字:數字簽名隨文本的變化而變化,手寫簽字反映某個人個性特徵,是不變的;數字簽名與文本信息是不可分割的,而手寫簽字是附加在文本之後的,與文本信息是分離的。
值得注意的是,能否切實有效地發揮加密機制的作用,關鍵的問題在於密鑰的管理,包括密鑰的生存、分發、安裝、保管、使用以及作廢全過程。
G. 文件數據加密怎麼進行
想要對文件數據進行安全加密的話,我們通過域之盾就能夠實現的;我們可在部門分組中選擇對應想要加密的電腦,然後單擊進入防護策略,找到文件加密,選擇對應想要加密的文件類型,進行文件加密即可,勾選上之後點擊確定,然後重啟設置的電腦,設置的這些操作就能夠生效了。
H. 分組加密中當數據不足一組時,填充的方式都有哪些
TLS里,AES填充方式是如果差一個位元組,後面就填0x01差兩個,填0x02 0x02依次類推,差15個分組加密不足一組時,可以任意按你意願特色填充尾部,仍能解密時准確移除填充位元組——通過加密者明確的有效位元組長度。非對稱加密系統御敵有「陰謀」與「陽謀」之分。前者看隱瞞你的意圖來蒙蔽對手,後者則靠一步一步設下的局讓對手無路可走。傳統的加密,就是將明文通過密鑰加密後發給對方。對方在接受到密文後通過密鑰解密。密文想要被解讀,則解密密鑰需要在網路中從加密方傳輸給解密方。這種方式需要我們避免在加密過程中使用密鑰時被別人竊取。。要保護好網路傳輸中的密鑰,這是「陰謀」。而陽謀的方法就是提供兩個密鑰:公鑰和私鑰。公鑰是公開給所有人的密鑰。想要給我發數據的人通過公開的公鑰將數據加密,我在收到密文之後,再通過我獨享的私鑰進行解密。這樣一來,解密密鑰就完全不需要冒著被截獲的危險而在網路中傳輸。講一個新鮮出爐的「黑科技」,就在上個月,Science (科學)雜志刊登一項最新研究:哈佛大學科學家受到「鼻涕蟲」啟發,研製了一種新型止血材料 TA(Tough Adhesives),中文翻譯「強力膠」,名字起得也是簡單粗暴。這種新型材料可以迅速粘連止血,同時又保持極高的組織器官強度。如下圖,心臟上的孔洞都可以直接打個「補丁」,驚喜不驚喜,意外不意外?
I. 電腦硬碟加密為什麼空間不足了
您用什麼方法加密的,我建議您聯系客服試試。
給電腦硬碟加密,我使用的是U盤超級加密3000.
U盤超級加密 3000是國內使用人數最多,評價最好的一款U盤加密軟體和移動硬碟軟體,並且也可以在電腦的硬碟裡面的使用。
J. 數據加密的方法
網路安全防範措施與應用是什麼呢?如果您也想要了解一下網路安全防範措施和應用的話,請從數據加密的方法入手。因此很多人都會問數據加密有哪些方法呢?無巧不成書,最近公布了一個關於數據加密方法的總結,我相信您一定可以找到問題的答案哦。
由於計算機軟體的非法復制,通信的泄密、數據安全受到威脅,解密及盜版問題日益嚴重,甚至引發國際爭端,所以在信息安全技術中,加密技術佔有不可替代的位置,因此對信息加密技術和加密手段的研究與開發,受到各國計算機界的重視,發展日新月異。現在我們就幾種常用的加密演算法給大家比較一下。
DES加密演算法是一種分組密碼,以64位為分組對數據加密,它的密鑰長度是56位,加密解密用同一演算法。DES加密演算法是對密鑰進行保密,而公開演算法,包括加密和解密演算法。這樣,只有掌握了和發送方相同密鑰的人才能解讀由DES加密演算法加密的密文數據。因此,破譯DES加密演算法實際上就是搜索密鑰的編碼。對於56位長度的密鑰來說,如果用窮舉法來進行搜索的話,其運算次數為256。隨著計算機系統能力的不斷發展,DES的安全性比它剛出現時會弱得多,然而從非關鍵性質的實際出發,仍可以認為它是足夠的。不過,DES現在僅用於舊系統的鑒定,而更多地選擇新的加密標准。
RSA加密演算法是目前最有影響力的公鑰加密演算法,並且被普遍認為是目前最優秀的公鑰方案之一。RSA是第一個能同時用於加密和數宇簽名的演算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數據加密標准。RSA加密演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。